Training for Software Architects

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
Scroll to Top