Software Architecture
Why? Software architecture provides the infrastructure and concepts within which application functionality is developed and deployed. It is the software architecture which ensures that the application functionality is provided with the required system qualities. Examples of quality requirements include scalability, performance, reliability, integrability, maintainability, security, monitorability/auditability. This course covers architectural requirements, design, documentation and analysis and verification. Commonly used reference (template) architectures like microservices, SOA, Jakarta-EE and AUTOSAR are covered in some detail.
For whom is the course?
The software architecture course covers a wide range of topics
- Lead developers and software designers who want to grow skills with the skills set of a software architect.
- Practicing software architects who want to deepen their understanding and skills.
Course prerequisites
- An understanding of software development
- preferably some experience in software development
- At least basic understanding and experience of application design
- preferably completion of the Domain-Driven Analysis and Design using UML & URDAD course.
Course Content
Candidates who completed this course should have a solid theoretical and practical understanding of
- the field of software architecture including
- the role & responsibilities of a software architect
- what is software architecture including
- software architecture vs application design
- specifying, verifying and quantifying software architecture requirements including
- quantified quality requirements
- making appropriate quality requirement trade-off decisions
- integration and access requirements and
- architectural constraints
- quantified quality requirements
- understand the building blocks of software architecture using
- architectural patterns to provide a structural basis for the system
- architectural tactics to address quality requirements
- integration patterns
- reference architecture and frameworks for different application domains enterprise systems, real-time safety critical systems, IoT, …
- Microservices, JakartaEE, AUTOSAR
- be able to systematically design a software architecture
- following the Systematic Method for Software Architecture Design (SyMAD)
- document a software architecture in a way which complies with the IEEE requirements for a software architecture description.
- following a systematic method to recover the software architecture of an existing system for which there is no software architecture specification
- analyze the software architecture of an existing software system to expose architectural deficiencies and address these.
Interested?
Certification
The Software Architecture course is part of the