- Definition
- Benefits and goals
- Classification of software architecture in the complete development process of IT systems
- Architecture and design solutions
- Functions and tasks
- Interactions: role and environment
Role of a Software Architect:
- What are the tasks of a software architect
- Skills
- Communication und cooperation
- Tools
- Architectural teams
Specification and communication of software architectures:
- Usage of UML for specifying Software Architectures
- Frameworks: TOGAF, FMC, RM/ODP,…
- Definition and relevance of architecture views: component, runtime, distribution
- Aspects of architecture
- Interfaces
- Quality characteristics of technical documentation
- Template based documentation
Approach for developing software architectures:
- Approach and heuristics for the development of architectures: model based, iterative and incremental design
- Design of architectural views: distribution, building blocks and runtime
- Building blocks and their characteristics and different types of building block compositions
- Specification of Software Architectures via UML
- Usage of design principles and architectural pattern
Software architecture and quality:
- Architectural methods for reaching relevant quality goals
- Evaluation of Software Architecture
Tools, methods and techniques for software architects:
- Modelling tools
- Tools for static and dynamical analysis
- Generation tools
- Requirements management tools
- Documentation tools
- Build and configuration management tools
Examples for software architectures:
- continuous example used for exercises
Methode