Zum Inhalt springen
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 Curri­culum covers all your needs!

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

The 2021 update is the result of nearly 12 months of work by more than a dozen experi­enced practi­tioners and resear­chers, 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 curri­culum. Its sources are maintained and published via GitHub.

Goals
The iSAQB Foundation Level Curri­culum aims to be the autho­ri­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 curri­culum is essential (CPSA‑F: Certified Profes­sional for Software Architecture, Foundation Level). More than 20,000 profes­sional software developers 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 evaluating software architectures.

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

Overall structure
The curri­culum consists of five strongly inter­re­lated parts – based upon solid and proven termi­nology.  A (free!) glossary, published at Leanpub, provides defini­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 curri­culum facili­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 defini­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­bi­lities of software archi­tects, in coope­ration and colla­bo­ration with other stake­holders, such as management, business, develo­pment teams and others.

 

Fig: Spectrum of architecture role with centra­lized vs decen­tra­lized responsibility

 

When discussing the role, you need to consider the size and complexity of the system, organiz­a­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

 

Perso­nally, I like the focus on commu­ni­cation and feedback that the curri­culum proposes for the architecture role: explicit commu­ni­cation and feedback are essential ingre­dients of successful system develo­pment. 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­priately clear under­standing of both functional and quality requirements – and the curri­culum 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 develo­pment, 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 develo­pment 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, micro­ser­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 syste­ma­ti­cally design software architectures

 

Archi­tects must pay parti­cular attention to system qualities, such as perfor­mance, flexi­bility, maintaina­bility, and security. The curri­culum 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 externally 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, modula­riz­ation, 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 relati­onships and depen­dencies between elements of your architecture, and syste­ma­ti­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 Additio­nally, 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 curri­culum 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 perso­nally favor a lean and relaxed style of documen­tation. In case your systems require strict and detailed documen­tation, the curri­culum has you covered too!

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

Speci­fi­cally, clari­fying quality requirements is addressed, e. g. by using quality scenarios. In addition, the analysis of quality is covered – together with its metho­dical brethren, the quanti­tative approaches to analyzing and evaluating 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 relati­onship 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 parti­cular 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 curri­culum, the contents of these exercises are up to your trainers. Hands-on exercises are mandatory for parts 1 to 4 of the curri­culum 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 references.

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

Acknow­led­ge­ments
A big „thank you“ to both „m“ and Joachim Praetorius for many and thoughtful impro­ve­ments to a prior version of this article.

References
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 repository of the CPSA-Foundation curri­culum 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 contri­butors, freely available on Leanpub.

Appendix: More than just „commit and push“
Since the iSAQB works inter­na­tio­nally and publishes the curri­culum 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 curri­culum in their workshops and training courses.

The FLWG accepted and merged close to 500 (!) commits on the public Github repository into the main branch of the curri­culum. Eleven active contri­butors shared the work of reviewing, discussing and incor­po­rating these changes. Only a fraction of change requests were contri­buted via GitHub, many others were discussed in person, via email or in countless video- or phone confe­rences with many contributors.

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

 

Fig: Release Process for CPSA-Foundation Level

 

 

 

Teilen Sie diesen Artikel:

Zum Thema passende Artikel

Über die Autor:innen

Dr. Gernot Starke
Organisation
arc42
Land
Deutschland
Gernot Starke, INNOQ Fellow, once studied computer science because he found programming cool and interesting. He still loves coding and the challenges of modern software systems. He is a co-founder of iSAQB and has been leading the „Foundation Level“ working group  for more than 5 years. In addition, he is also the co-founder of the two open-source architecture methodology projects arc42 and aim42. In his day-to-day life, Gernot consults companies from various sectors on systematic software engineering and development, with a focus on software architecture. He regularly conducts training courses on architecture and related topics. The first edition of his (German) book „Effektive Softwarearchitekturen“ was published in 2001 and has been continuously updated since – 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 the 40 CPSA-F learning goals individually.

Bleiben Sie informiert mit dem iSAQB®-Newsletter!

Nach oben scrollen