Edocti
Training tehnic avansat pentru inginerul software de mâine
Edocti Training

Embedded Software Architecture & Design

Avansat
21 h
4.6 (53 recenzii)

Sesiuni programate

Nu există sesiuni disponibile în acest moment.
Embedded Software Architecture & Design

Arhitectură software embedded: Învață un proces riguros pentru a proiecta sisteme embedded fiabile, modulare și extrem de scalabile.

Lucrează hands‑on cu arhitecturi stratificate, design la nivel de componente și modelare structurală prin UML.

Aplică practicile de programare modernă C++ direct la constrângerile hardware embedded și la specificul sistemelor real‑time.

Dobândești experiență practică: ~70% din curs este constituit din laboratoare axate pe construirea unui design arhitectural de la zero.

Cum te ajută acest curs: Îmbunătățești semnificativ mentenabilitatea, testabilitatea și performanța software‑ului din proiectele tale embedded.

Cui i se adresează: Conceput pentru ingineri cu experiență în C/C++ care lucrează la proiecte embedded cu nivel înalt de complexitate.

Cursul include, opțional, discuții despre pattern‑uri arhitecturale avansate, aliniere ISO 26262 și compromisuri decizionale de arhitectură.

Abilități dobândite

Arhitectură Embedded Modelare UML Design de Componente Sisteme Real-Time Pattern-uri Embedded C++ Abstractizare Hardware (HAL) MISRA & Analiză Statică Elemente ISO 26262

Curriculum

Ziua 1 — De la cerințe la arhitectură (realități embedded)

  • Înțelegerea problemei și stakeholderilor; atribute de calitate (safety, performanță, disponibilitate, energie)
  • Capturarea cerințelor și trasabilitate (use cases, non‑funcționale, contracte de interfață)
  • Context, constrângeri HW, bugete de memorie/CPU/energie; riscuri timpurii și ADR‑uri
  • Vederi de arhitectură: context, containere/componente, deployment; mapare pe țintă

Ziua 1 — Modelare structurală pentru sisteme embedded

  • UML cu Enterprise Architect: packages, components, deployment și class diagrams
  • Straturi și frontiere: aplicație, servicii, drivere; patternuri HAL/SAL; puncte de portabilitate
  • Dataflow și model de concurență (event‑driven vs time‑triggered; task graph)
  • Interfețe și contracte: API‑uri, coduri de eroare, pre/postcondiții

Ziua 2 — Comportament, timming și proiectare real‑time

  • State machines corect implementate (ierarhie, Mealy/Moore, mode management, reentrancy)
  • Diagrame de secvență/activitate/timp pentru fluxuri și bugete de timp
  • Scheduling: task‑uri periodice/sporadice, rate‑monotonic vs. EDF, cooperativ vs. preemptiv
  • Priority inversion și ceilings; partitionare pe nuclee; estimarea WCET

Ziua 2 — Tehnici C/C++ pentru embedded

  • Ownership și RAII; smart pointers vs. stocare statică; pimpl și interfețe
  • Polimorfism static vs. dinamic; CRTP; constexpr și configurație la compile time
  • Aritmetică fixed‑point; memory pools, ring buffers și pipe‑uri zero‑copy
  • Cod sigur pentru ISR și patternuri DMA; volatile, atomics, aliniere și endianness

Ziua 3 — Acces la hardware, portabilitate și startup

  • Memory‑mapped I/O și patternuri de acces la registre; bitfields și măști în siguranță
  • Drivere vs. servicii; headere în stil CMSIS; device trees (overview unde e relevant)
  • Secvență de boot și inițializare; noțiuni de secure boot; elemente de linker script (overview)

Ziua 3 — Fiabilitate, diagnoză și testare

  • Strategii de tratare a erorilor; watchdogs și brown‑out; degradare grațioasă
  • Logging/tracing; jurnale de evenimente și contoare de performanță; hook‑uri de telemetrie
  • Analiză statică și MISRA C/C++; teste unitare/integrare; SIL/HIL și fault injection

Ziua 3 — Din model în schelet de cod

  • Maparea modelului pe module și directoare; reguli de dependențe; headere publice vs. private
  • Sistem de build (CMake) și integrare toolchain; feature flags și variante
  • Generarea unui schelet de aplicație; implementarea primului use case și teste CI

Module opționale

Opțional — Safety & security

  • Aliniere ISO 26262 (gândire ASIL, safety mechanisms) — overview
  • Comunicare și flashing securizate; checklist de hardening

Structura zilei de curs

  • Partea 1: 09:00–10:30
  • Pauză: 10:30–10:45
  • Partea 2: 10:45–12:15
  • Pauză de prânz: 12:15–13:15
  • Partea 3: 13:15–15:15
  • Pauză: 15:15–15:30
  • Partea 4: 15:30–17:30

Ai participat la acest curs?

Opinia ta este foarte importantă pentru noi. Spune-ne cum a fost experiența ta și ajută-ne să îmbunătățim acest curs pentru viitorii participanți.

Ofera feedback

Vrei să afli mai multe? Suntem aici să te ajutăm!

Sau scrie-ne direct la training@edocti.com.