Advanced Software Architecture
This course aims to present the most industry-relevant techniques in the area of architectural design and provide the means to document software architectures with standards like UML. It also provides the participants with the necessary knowledge to reduce the technical debt in the software development projects they work on. Moreover, the course has a hands-on approach, which translates into actionable know-how that is relevant to the professional practice of software design.
About the course
The course is given by.
- Quality requirements: motivates the importance of quality requirements in the success of a software architecture; provides a definition of what quality requirements are.
- Creating a software architecture: provides the tools (design principles, design tactics, and architectural patterns) and methods to create a software architecture that satisfies the key requirements and, particularly, the quality requirements related to performance, availability, and security.
- Evaluating a software architecture: describes a qualitative method to assess whether a software architecture is able to provide support for the key system requirements.
- Understand the prevalent role of architectural design in the development lifecycle
- Identify and prioritise the requirements that have the highest impact on the design of a software architecture
- Suggest technical solutions to solve design challenges, e.g., with respect to performance, availability and security requirements
- Be able to identify trade-offs and risks in an architectural designs
Related industrial challenges addressed in the course:
- Improving the chances of delivering a project on time/budget by identifying the design flaws early on
- Reducing technical debt
- Making explicit trade-off decision among the conflicting interests of the stakeholders involved in a software development project
- Tackling security, performance and availability from the early stages of the development process