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