Fundamentals of Software Architecture


This 1-day masterclass is designed to provide you with the knowledge, skills, and roadmap to better understand software architecture and to become an effective software architect. Through interactive course materials and architecture exercises, you’ll learn about architectural characteristics (things like scalability, reliability, fault tolerance, and so on), what they mean, and how to identify which ones are critical for your system. You’ll then learn what it means to “see” the architecture in a system through logical components—the building blocks of a system. Here, you’ll also learn about coupling and how to create loosely coupled systems. Finally, you’ll learn the ins-and-outs of 8 common architectural styles, including microservices, event-driven architecture, modular monolith, and a host of others. Whether you are on the path of developer to architect or already an architect, this masterclass will provide you with the necessary practical hands-on real-world knowledge to understand what software architecture is all about.

Course contents

Architecture Characteristics
– Defining types of characteristics
– Translating business needs to architecture characteristics
– Balancing requirements and characteristics
– Hands-on exercises: Identifying characteristics
Component-Based Thinking
– Seeing the architecture of a system
– Identifying components and services
– Component granularity
– Component coupling
– Creating loosely coupled systems
– Component cohesion
– Hands-on exercises: Identifying components
Architectural Styles
– Architecture styles vs. patterns
– Domain to architecture isomorphism
– Classifying architecture styles
– Layered n-tiered architecture
– Modular monolith
– Microkernel architecture
– Microservices architecture
– Service-based architecture
– Service-oriented architecture
– Event-driven architecture
– Space-based architecture
– Hands-on exercises: Choosing the right architecture

Target audience and prerequisites

This course is for software developers that want to become software architects and for software architects that want to focus on problems within distributed architectures such as microservices and event-driven systems.

24 May 2024