Training for Software Architects
Recommended Courses for Software Architects
Foundation courses
Software architecture courses
Complementing courses
Suggested Knowledge & Skills
Concepts
- Architectural & integration patterns
- to align infrastructure with required organizational capabilities
- Architectural tactics
- to concretely realize quality requirements
- Reference architectures
- as template architectures for specific application domains
- Application frameworks & platforms
- as partially or fully implemented architectural solutions
- Persistence & integration
- architectures, frameworks and platforms
Skills
- A solid understanding of the Unified Modeling Language (UML)
- for both, application and software architecture design
- Functional & non-functional requirements specification
- consistent, implementable, testable, …
- Systematic software architecture design
- following IEEE-4020 compliant process
- Documenting/specifying the software architecture
- using IEEE-42010 compliant description
- Validating and evaluating software architectures
- using IEEE-42030 compliant method
- Assess frameworks, platforms and technologies
- including open standards and vendor solutions
- Estimation and risk assessment
- provide insights into effort required for and risks associated with different software architectures
Roles & Responsibilities
Interface with Business & Clients
- Understand business goals & strategies
- aligning system qualities with organizational capabilities
- capture testable high-level functional & non-functional requirements
Planning
- Participate in effort & risk estimation
- Assist business to make quality attribute trade-offs
Software architecture design
- Design, document & validate
- software architectures for specific systems
- overall systems and integration architecture
- Evaluate software architectures
- identifying options for improvement
Oversight & guidance for developers
- Verify architecture compliance
- that implemented software systems
- Assist with developing prototypes
- to assess novel solutions or technologies
- Provide guidance for improving development processes
- may include defining certifiable development process for high-reliability systems