Edocti
Advanced Technical Training for the Software Engineer of Tomorrow
Edocti Training

Software Architecture and Design — From Requirements to Application Skeleton (3 days)

Intermediate
21 h
4.8 (82 reviews)
Software Architecture and Design — From Requirements to Application Skeleton (3 days)

Software architecture foundations: design scalable, maintainable and robust software systems.

Hands-on with architectural styles, design principles and UML diagrams.

Apply domain-driven design and layered architecture patterns.

Gain practical experience through ~70% labs modeling and coding architectures.

How this helps: improve clarity, maintainability and scalability of projects.

Who it’s for: designed for individuals with dev experience aiming to level up architecture skills.

Includes optional coverage of microservices and cloud-native architectures.

Curriculum

Day 1 — Requirements and System Context
  • Kickoff, goals and scope; stakeholders and constraints
  • Eliciting software requirements (functional & non-functional) for a connected-cars/IoT example
  • Traceability: linking requirements to use cases and quality attributes (performance, safety, security, portability)
  • System context & boundaries; major actors and external systems
  • UML Use Case diagrams in Enterprise Architect; writing good use case narratives
  • Lightweight architecture risks & trade-offs (ATAM-lite) and early spikes/prototypes
Day 1 — From Requirements to Architectural Views
  • Choosing views and notation (C4/UML): context, container/component, deployment
  • Documenting decisions with Architecture Decision Records (ADR)
  • Quality attribute tactics (availability, performance, modifiability) and how they map to design choices
Day 2 — Structural Modeling
  • Component diagrams: responsibilities and interfaces; mapping to teams
  • Deployment diagrams: target HW/OS, processes, and networks; constraints for embedded/Automotive
  • Class analysis: identify core classes, aggregates and boundaries (DDD-lite viewpoints)
  • UML Class diagrams: relationships, multiplicities, packages, layering and dependency rules
  • Design principles: SOLID and coupling/cohesion heuristics; refactoring towards clear boundaries
Day 2 — Behavioral Modeling
  • Sequence diagrams for key scenarios; timing notes and lifelines
  • State machine and activity diagrams for critical logic and workflows
  • Object modeling for concrete scenarios (object and sequence diagrams); scenario walk-throughs
Day 3 — From Models to Code (Forward Engineering)
  • Aligning models with implementation strategy; namespaces/packages and module structure
  • Generate a minimal application skeleton from Enterprise Architect and wire basic components
  • Integrate build, logging and configuration; create stubs and test seams
  • Establishing traceability: link classes/tests to requirements and ADRs
Day 3 — Reverse Engineering and Review
  • Reverse engineering unfamiliar codebases to recover architecture; mapping code to diagrams
  • Peer review of architecture: checklists and risk burndown; maintain the architecture notebook
  • Next steps: governance, versioning of models, living documentation
Capstone — Open discussion and Q&A
  • Architecture of selected open-source projects (top-level walk-through)
  • Short focus on 3–4 GoF patterns that support the design (e.g., Builder, Abstract Factory, Decorator, Visitor)
  • Wrap-up: individual improvement plan

Optional modules

Optional — Automotive accents
  • Safety & security touchpoints (ISO 26262/21434 awareness) in the architecture process
  • Performance budgets and scheduling constraints for embedded targets
  • Supplier integration and interface contracts

Course Day Structure

  • Part 1: 09:00–10:30
  • Break: 10:30–10:45
  • Part 2: 10:45–12:15
  • Lunch break: 12:15–13:15
  • Part 3: 13:15–15:15
  • Break: 15:15–15:30
  • Part 4: 15:30–17:30