Introduction to software architecture

At the end of the course, you will earn a Certificate of Completion from Spirit in Projects.

Do you have a clear vision of what technical solutions should look like? Would you like to plan and structure them effectively? Are you attentive to quality in architecture planning and enjoy communicating technical concepts to stakeholders? If you want to learn the fundamentals of Software Architecture, then this training is perfect for you. Together, we’ll dive deep into the essentials of software architecture, equipping you to develop outstanding technical solutions.

Objectives

  • Develop an understanding of the key terms and responsibilities of a Software Architect
  • Plan the communication and documentation of software architectures
  • Engage in an in-depth exploration of software architecture development
  • Apply relevant quality models and quality goals
  • Examine methods and tools, and confidently apply them in practice

Target groups:

Business Analyst, Requirements Engineer, Usability Expert, Scrum Master, AI Expert, Project Manager, Project Director, Demand Manager, Portfolio Manager, IT Project Director, Test Manager, Tester, Test Automation Specialist, Test Engineer, Enterprise Architect, System Architect, Software Architect, Software Designer, Software Developer and Product Owner

Syllabus

1. Key concepts of software architecture

  • Comparison of definitions of software architecture
  • Definitions and their relation to source code
  • Analogies related to software architecture
  • Benefits and objetives of software architecture
  • Positioning software architecture in the development process
  • Roles and responsibilities of software architecture
  • Architectural and design decisions

2. Description and communication of software architecture

  • Communicating software architectures to various stakeholders
  • Definition of architectural views and their relevance
  • Documentation of architectural views
  • Explanation of overarching technical concepts
  • Description and communication of interfaces
  • Key principles and quality characteristics of technical documentation

3. Development of software architectures

  • Approaches and heuristics for architecture development
  • Designing architectures based on known functional and non-functional requirements
  • Effective use of Black-Box and White-Box strategies
  • Stepwise refinement and detailing of components
  • Design of individual architectural views (e.g., components, distribution, runtime)
  • Mapping architecture to source code
  • Separation of functional and technical elements in architectures
  • Impact of quality requirements
  • Influence of technical decisions and concepts
  • UML notation for different components of software architecture
  • Key architectural patterns (e.g., MVC)
  • Seven design principles
  • Applying dependency and coupling between components

4. Software Architecture and Quality

  • Relevant quality models
  • Tactics, practices and technical methods to achieve quality goals
  • Qualitative evaluation of software architecture using ATAM
  • Checking software architectures for implementation compliance

5. Tools for Software Architects

  • Modeling tools
  • Static analysis tools
  • Dynamic analysis tools
  • Code generation tools
  • Requirements management tools
  • Documentation tools
  • Build systems and tools
  • Configuration management tools

6. Best Practices

Spirit in Projects