Comprehensive Introduction to Software Architecture
Technologists are often unsure as to the role of the architect and also what they should be doing. They are often hesitant to call themselves an architect as they would say that they have had no formal training. This course will provide you with a comprehensive introduction to software architecture. It will help you to understand the role of the architect and how to work with them. It will also provide you with a comprehensive introduction to software architecture and its role in the development process. You will learn about the different types of architecture, the different views of architecture and how to use them.
Objectives
- Understand the role of the architect
- Understand how architects can work with development teams
- Appreciate the relationship between architecture and design
- Explore common architectural patterns such as Microservices
- Managing Architectural Risk
- Handling Architectural Change throughout a Project
- Appreciating the importance of non-functional requirements
- Dealing with Data from an architectural perspective
- Working with Stakeholders
Prerequisites
- General familiarity with software development and IT operations
Contents
Introduction to Architecture
- What is Architecture
- Relationship between Architecture and Design
- What does the Architect do
- Where does the Architect sit in relation to development teams
Capturing Requirements
- Project Success Criteria and the CHAOS Report
- The importance of requirements
- Using Personas
- Using Scenarios
- Effectively capturing requirements
- User Stories
The Importance of Non-Functional Requirements
- Non-Functional Requirements and Architecture
- Scalability
- Reliability
- Maintainability
- Security
- Flexibility
- Resilience
Capturing Architectural Decisions
- The Architectural Decision Record (ADR)
- Writing ADRs
- Maintaining and Managing ADRs
- Storing ADRs
Drawing your Architecture
- C4 Diagrams
- UML Diagrams
- Wardley Mapping
- Ad Hoc Diagrams
- Considering different perspectives
Managing Risk
- Dealing with Architectural Change
- Capturing Architectural Risks
- Communicating Architectural Changes to Stakeholders
Working with Stakeholders
- Who are your stakeholders
- Communication styles for stakeholders
- Helping stakeholders understand the technology
- Managing stakeholders
Data and Architecture
- Data storage options
- Databases
- Data lakes
- Data warehouses
- Lakehouses
- Data Mesh
- Data Fabric
- Making architectural decisions about data
Modern Architectural Patterns and Approaches
- Microservices
- Strangling the Monolith
- Cloud Architectures
- Containerization
- Serverless Architectures
- Persistence Aspects
- Making the Decisions
Validating your Architecture
- Automated Testing of the Architecture
- Fitness Functions


