Skip to content
iSAQB-blog Curriculum-cover-website-310321_2

The (new) Software Architecture Foundation Curriculum

Want to learn Software Architecture? Look no further – the recently released iSAQB Foundation Curriculum covers all your needs!

A group of inter­na­tional software architecture experts has been working on optimizing and stream­lining this systematic education path, resulting in the most systematic and practical curriculum ever.

The 2021 update is the result of nearly 12 months of work by more than a dozen experi­enced practi­tioners and researchers, who collected, curated and incor­po­rated more than 190 change requests and proposals. You can find some more details on the update and release process in the appendix.

This article provides an overview of the curriculum. Its sources are maintained and published via GitHub.

Goals
The iSAQB Foundation Level Curriculum aims to be the author­i­tative and leading source for all accredited software architecture education. If you are attending a training course and aim for the CPSA‑F certification, knowledge of this curriculum is essential (CPSA‑F: Certified Profes­sional for Software Architecture, Foundation Level). More than 20,000 profes­sional software devel­opers have already been certified.

iSAQB software architecture education will provide you with the necessary knowledge to design and commu­nicate a software architecture. Based upon your individual practical experience and existing skills, you will learn to derive architecture decisions from system goals and requirements.

CPSA‑F trainings teach methods and principles for creating, designing, commu­ni­cating, analyzing and evalu­ating software architectures.

Prior to a training course, an overview of the curriculum will give you a good idea of what to expect of such a training.

Overall structure
The curriculum consists of five strongly inter­re­lated parts – based upon solid and proven termi­nology.  A (free!) glossary, published at Leanpub, provides defin­i­tions of key terms and concepts for your conve­nience and reference.

About 40 different learning objectives structure the required skills and knowledge of software architecture in a practical and pragmatic way.

 

Fig: Structure of the iSAQB CPSA-Foundation Curriculum

 

Part 1 – The Fundamentals
This part of the curriculum facil­i­tates a common under­standing of our subject by defining and explaining basic concepts – the what and why of software architecture. You will learn agreed-upon defin­i­tions of software architecture, its goals and benefits. My personal take on this funda­mental part: There is no silver bullet or one single approach that solves all kinds of problems — as decisions will always depend on various influ­encing factors.

Furthermore, this part explains the role of archi­tects and architecture within the complete lifecycle of software systems. It focuses on the major tasks and respon­si­bil­ities of software archi­tects, in cooper­ation and collab­o­ration with other stake­holders, such as management, business, devel­opment teams and others.

 

Fig: Spectrum of architecture role with centralized vs decen­tralized responsibility

 

When discussing the role, you need to consider the size and complexity of the system, organi­za­tional factors, team compo­sition, and other constraints. Knowing the pros and cons of these options will help you find an appro­priate setup for your teams and projects.

 

Fig: Architecture Activities

 

Personally, I like the focus on commu­ni­cation and feedback that the curriculum proposes for the architecture role: explicit commu­ni­cation and feedback are essential ingre­dients of successful system devel­opment. Commu­ni­cation helps to identify risks and agree trade-offs with the stake­holders involved.

Part 2 – Architecture Design Approaches
Architecture work should always start with an appro­pri­ately clear under­standing of both functional and quality requirements – and the curriculum addresses these alongside with constraints and other influ­encing factors.

Designing systems is a highly creative (and sometimes difficult) endeavour – supported by several architectural approaches, methods, patterns, and principles. In this part of your architecture education, you will learn about several of these approaches, such as view-based, incre­mental devel­opment, bottom-up and top-down approaches, domain-driven design and evolu­tionary architecture. Most of the approaches require intensive feedback and therefore are a perfect fit for modern and iterative devel­opment and management approaches.

Architecture patterns should be part of your personal toolbox when deciding on system struc­tures, so the most important and estab­lished patterns will be covered in foundation courses: from layers and tiers to pipes-and-filters, microser­vices and self-contained systems, the clean-architecture patterns (also called hexagonal- or onion architecture) to inter­facing and integration patterns.

 

Fig: Some approaches to system­at­i­cally design software architectures

 

Archi­tects must pay particular attention to system qualities, such as perfor­mance, flexi­bility, maintain­ability, and security. The curriculum addresses these qualities from different angles (see also Part‑4 below). Proven architectural tactics will help you to achieve the desired or required qualities – related to both exter­nally visible and internal properties of systems.

To assess the conse­quences of your design decisions, you need to be aware of the timeless under­lying principles of software design – such as abstraction, modular­ization, black-/white-box, coupling, cohesion, conceptual integrity, and a few others. Even the architectural relevance of the SOLID principles will be covered. Learning to apply them in practice will definitely improve your decisions.

Special attention will be paid to depen­dencies between architectural building blocks: You will analyze the challenges of relation­ships and depen­dencies between elements of your architecture, and system­at­i­cally design and define inter­faces that are easy to learn, use and extend.

Part 3 – Architecture Communication
Since you need to interact with a variety of different stake­holders (see figure below for some examples), it is therefore crucial to learn how to commu­nicate your architecture, its struc­tures, concepts, and decisions effec­tively and efficiently.

 

Fig: Archi­tects commu­nicate with many stakeholders

 

You will learn how to use architectural views (like context- or building-block view) to verbally commu­nicate struc­tural decisions and justify them Additionally, you will learn how to apply these skills to (written) documen­tation too – balancing accuracy, attention to detail and the time required to keep documen­tation up to date.

A small part of the curriculum is devoted to architecture modelling notations, like UML. Expect an iSAQB foundation training course to include a highly condensed summary of practi­cally useful modeling constructs – and pragmatic advice on how to create useful architecture diagrams.

Although I am one of the core committers of the arc42 template, I personally favor a lean and relaxed style of documen­tation. In case your systems require strict and detailed documen­tation, the curriculum has you covered too!

Part 4 – Architecture and Quality
Achieving quality charac­ter­istics and quality attributes belongs to the core tasks of software archi­tects. This part of the curriculum dives deeper into the intri­cacies of the term quality and explains its charac­ter­istics. You will learn about quality models, such as the well-known ISO 25010 standard, from a practical viewpoint.

Specif­i­cally, clari­fying quality requirements is addressed, e. g. by using quality scenarios. In addition, the analysis of quality is covered – together with its methodical brethren, the quanti­tative approaches to analyzing and evalu­ating software architectures.

Part 5 – Practical Examples
Examples are the best learning tool: Only through examples does architectural knowledge become tangible and visible. Experi­enced iSAQB trainers are able to complement the conceptual background from the learning objectives with real life situa­tions and experiences.

Using examples, you will be able to under­stand the relationship between requirements and the technical and architectural solution. In addition, you will be able to under­stand the rationale behind specific architectural decisions (aka design rationale).

Please note – every trainer is free to select their own examples that fit a particular training situation. Think about what kind of examples you want to see and experience prior to attending a training!

Education needs Practice
iSAQB training courses always include intensive practice sessions, where you will tackle specific architectural challenges in small and focused groups. Such exercises help impart knowledge and skills.

Similar to the practical architecture examples from part‑5 of the curriculum, the contents of these exercises are up to your trainers. Hands-on exercises are mandatory for parts 1 to 4 of the curriculum and ensure that the key learning objectives are covered.

Supporting Material
Due to the complex nature of software architecture, it is recom­mended that you attend accredited training classes in case you aim for the iSAQB CPSA-Foundation certification. Such courses have a minimum duration of 3 days, which makes them efficient educa­tional events. In case you want to supplement your training, there are two (free) publi­ca­tions that complement the curriculum:

A compre­hensive glossary of terms plus an annotated collection of software architecture books and refer­ences.

The perfect companion to prepare for the CPSA‑F certification is the exam prepa­ration guide (see refer­ences below). Disclaimer: I am co-author of this book.

Acknowl­edge­ments
A big „thank you“ to both „m“ and Joachim Praetorius for many and thoughtful improve­ments to a prior version of this article.

Refer­ences
The iSAQB Glossary of Software Architecture Termi­nology. A free ebook, defining the terms used in iSAQB curricula. It’s available both as eBook from Leanpub and as an online reference.

The public repos­itory of the CPSA-Foundation curriculum on Github.

The public CPSA download site, where many iSAQB documents are available.

Gernot Starke + Alexander Lorz: Software Architecture Foundation – Exam prepa­ration guide. VanHaren Inter­na­tional, 2021. This book explains all 40 learning goals in details, helping you to prepare for the CPSA‑F certification.

An annotated collection of software architecture books, articles and additional reading. Compiled by iSAQB contrib­utors, freely available on Leanpub.

Appendix: More than just „commit and push“
Since the iSAQB works inter­na­tionally and publishes the curriculum in a variety of languages, updating and releasing this funda­mental document is a rather complex process. The following diagram gives a brief impression.

In addition to incor­po­rating feedback from the architecture community and the iSAQB members themselves, the FLWG (Foundation Level Working Group) received valuable input and sugges­tions from the dozens of inter­na­tional trainers and educators who work with the curriculum in their workshops and training courses.

The FLWG accepted and merged close to 500 (!) commits on the public Github repos­itory into the main branch of the curriculum. Eleven active contrib­utors shared the work of reviewing, discussing and incor­po­rating these changes. Only a fraction of change requests were contributed via GitHub, many others were discussed in person, via email or in countless video- or phone confer­ences with many contributors.

Since 2018, the iSAQB has moved more and more documents to public GitHub repos­i­tories, to release  bug fixes and improve­ments in a timely manner. A defined naming and numbering schema facil­i­tates releases – which are created upon tagging commits.

 

Fig: Release Process for CPSA-Foundation Level

 

 

 

Share this article:

Related Posts

About the Author

Dr. Gernot Starke
Organisation
Location
Germany
Gernot Starke, INNOQ Fellow, is a computer scientist through and through. He finds programming cool and loves the challenges of modern software systems. Gernot is a co-founder of iSAQB and has headed the “Foundation Level” working group for almost 10 years. He is also the co-founder of the two open-source architecture methodology projects arc42 and aim42. In his everyday working life, Gernot advises companies from various sectors on systematic software architecture. He regularly holds training courses on architecture and related topics. The first edition of his book, “Effektive Softwarearchitekturen,” was published in 2001 and has since been continually updated – the latest (9th) edition was published in 2020. Together with Alexander Lorz, he created the (English) “Software Architecture Foundation - CPSA-F Exam Study Guide,” published by VanHaaren International – the only book that explains all 40 CPSA-F learning goals individually.

Stay Up-to-Date with the iSAQB® Newsletter!

Scroll To Top