Software Architecture Foundation: CPSA Foundation® Exam Preparation
By Alexander Lorz and Gernot Starke
()
About this ebook
This internationally renowned education and certification schema defines various learning path for practical software architects. This book concentrates on the foundation level examination.
It explains and clarifies all 40+ learning goals of the CPSA-F© curriculum. In addition, you find step-by-step preparation guide for the examination.
Please beware: This book is not meant as a replacement for existing software architecture books and courses, but strongly focusses on explaining and clarifying the iSAQB CPSA-F foundation.
Related to Software Architecture Foundation
Related ebooks
Software Architecture Foundation - 2nd edition: CPSA Foundation® Exam Preparation Rating: 0 out of 5 stars0 ratingsSoftware Architecture for Busy Developers: Talk and act like a software architect in one weekend Rating: 0 out of 5 stars0 ratingsGet Your Hands Dirty on Clean Architecture: Build 'clean' applications with code examples in Java Rating: 0 out of 5 stars0 ratingsArchitecting ASP.NET Core Applications: An atypical design patterns guide for .NET 8, C# 12, and beyond Rating: 0 out of 5 stars0 ratingsC# Interview Guide: Boost your confidence with answers to hundreds of secret interview questions Rating: 0 out of 5 stars0 ratingsReact Application Architecture for Production: Learn best practices and expert tips to deliver enterprise-ready React web apps Rating: 0 out of 5 stars0 ratingsSolutions Architect's Handbook: Kick-start your career with architecture design principles, strategies, and generative AI techniques Rating: 0 out of 5 stars0 ratingsPractical API Architecture and Development with Azure and AWS: Design and Implementation of APIs for the Cloud Rating: 0 out of 5 stars0 ratingsManaging Technical Debt A Complete Guide - 2021 Edition Rating: 0 out of 5 stars0 ratingsSoftware Design Pattern A Complete Guide - 2020 Edition Rating: 0 out of 5 stars0 ratingsFull Stack Quarkus and React: Hands-on full stack web development with Java, React, and Kubernetes Rating: 0 out of 5 stars0 ratingsRAG-Driven Generative AI: Build custom retrieval augmented generation pipelines with LlamaIndex, Deep Lake, and Pinecone Rating: 0 out of 5 stars0 ratingsOpenID Connect A Clear and Concise Reference Rating: 0 out of 5 stars0 ratingsSoftware Documentation Strategy A Complete Guide - 2020 Edition Rating: 0 out of 5 stars0 ratingsReact and React Native: Build cross-platform JavaScript and TypeScript apps for the web, desktop, and mobile Rating: 0 out of 5 stars0 ratingsDeep Learning for Time Series Cookbook: Use PyTorch and Python recipes for forecasting, classification, and anomaly detection Rating: 0 out of 5 stars0 ratingsApplication Security A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsWSO2 Identity Server Complete Self-Assessment Guide Rating: 0 out of 5 stars0 ratingsReal-World Next.js: Build scalable, high-performance, and modern web applications using Next.js, the React framework for production Rating: 0 out of 5 stars0 ratingsNode.js for Beginners: A comprehensive guide to building efficient, full-featured web applications with Node.js Rating: 0 out of 5 stars0 ratingsAngular Design Patterns and Best Practices: Create scalable and adaptable applications that grow to meet evolving user needs Rating: 0 out of 5 stars0 ratingsMethods of IT Project Management, Fourth Edition Rating: 2 out of 5 stars2/5Angular for Enterprise Applications: Build scalable Angular apps using the minimalist Router-first architecture Rating: 0 out of 5 stars0 ratings
Architecture For You
The New Bohemians Handbook: Come Home to Good Vibes Rating: 4 out of 5 stars4/5The New Bohemians: Cool & Collected Homes Rating: 4 out of 5 stars4/5Cozy Minimalist Home: More Style, Less Stuff Rating: 4 out of 5 stars4/5Lies Across America: What Our Historic Sites Get Wrong Rating: 5 out of 5 stars5/5The Little Book of Living Small Rating: 5 out of 5 stars5/5Brunelleschi's Dome: How a Renaissance Genius Reinvented Architecture Rating: 4 out of 5 stars4/5How to Fix Absolutely Anything: A Homeowner's Guide Rating: 4 out of 5 stars4/5House Rules: How to Decorate for Every Home, Style, and Budget Rating: 4 out of 5 stars4/5Become An Exceptional Designer: Effective Colour Selection For You And Your Client Rating: 3 out of 5 stars3/5Own Your Space: Attainable Room-by-Room Decorating Tips for Renters and Homeowners Rating: 5 out of 5 stars5/5The Nesting Place: It Doesn't Have to Be Perfect to Be Beautiful Rating: 4 out of 5 stars4/5Get Your House Right: Architectural Elements to Use & Avoid Rating: 4 out of 5 stars4/5Feng Shui Modern Rating: 5 out of 5 stars5/5Architecture 101: From Frank Gehry to Ziggurats, an Essential Guide to Building Styles and Materials Rating: 4 out of 5 stars4/5Martha Stewart's Organizing: The Manual for Bringing Order to Your Life, Home & Routines Rating: 4 out of 5 stars4/5Walkable City: How Downtown Can Save America, One Step at a Time Rating: 4 out of 5 stars4/5Move Your Stuff, Change Your Life: How to Use Feng Shui to Get Love, Money, Respect and Happiness Rating: 4 out of 5 stars4/5The Year-Round Solar Greenhouse: How to Design and Build a Net-Zero Energy Greenhouse Rating: 5 out of 5 stars5/5How to Build Shipping Container Homes With Plans Rating: 3 out of 5 stars3/5Live Beautiful Rating: 3 out of 5 stars3/5Home Sweet Maison: The French Art of Making a Home Rating: 4 out of 5 stars4/5Clean Mama's Guide to a Peaceful Home: Effortless Systems and Joyful Rituals for a Calm, Cozy Home Rating: 0 out of 5 stars0 ratingsComplete Book of Home Inspection 4/E Rating: 0 out of 5 stars0 ratingsThe Interior Design Sourcebook Rating: 0 out of 5 stars0 ratingsFoxfire Living: Design, Recipes, and Stories from the Magical Inn in the Catskills Rating: 5 out of 5 stars5/5Welcome Home: A Cozy Minimalist Guide to Decorating and Hosting All Year Round Rating: 0 out of 5 stars0 ratingsFlatland Rating: 4 out of 5 stars4/5The Giza Power Plant: Technologies of Ancient Egypt Rating: 4 out of 5 stars4/5Decorate: 1,000 Professional Design Ideas for Every Room in Your Home Rating: 5 out of 5 stars5/5Down to Earth: Laid-back Interiors for Modern Living Rating: 4 out of 5 stars4/5
Reviews for Software Architecture Foundation
0 ratings0 reviews
Book preview
Software Architecture Foundation - Alexander Lorz
Part I: Introduction
This part explains what this book is all about and introduces you to the iSAQB e.V.1 standardization organization and their Software Architecture Certification, especially the Certified Professional for Software Architecture - Foundation Level (CPSA-F)2.
This internationally renowned education and certification schema defines both the subject and corresponding examinations.
Content overview
In this first part, we will answer several fundamental questions:
•Why software architecture?
•Why we wrote this book?
•What is the International Software Architecture Qualification Board , iSAQB?
•What benefits are to be gained from a CPSA-F certification?
Next, we:
•Introduce the iSAQB Foundation curriculum.
•Explain the iSAQB Foundation examination process.
•Show various ways to prepare for the iSAQB Foundation examination.
About Software Architecture
What is the typical life span of the IT systems you work on? If you ponder this question for a while, you may come up with a surprisingly long period of time. Many systems we encountered have existed for years and may continue to do so for even longer. Often, they originated as a small system and evolved into a product or other long-term venture.
During such a long time, a lot of things are subject to change: Functionalities and features adapt to shifting customer requirements and business goals. Technologies which the architecture relied upon are no longer available. Experienced people leave the development team, whilst project and product management changes.
Most software systems have to continuously adapt to such changes in requirements, technologies and even team and organizational structures. The field of software architecture is the engineering science that enables this adaptation process in an environment which is constrained by factors like cost, time to market and availability of sufficiently skilled humans. The software architecture of an IT system is decisive for feasibility, cost- and time-efficiency of its future development: Better architectures lead to better time-to-market and lower maintenance and operational cost.
The goal of software architecture is to minimize the human resources required to build and maintain the required system.
Robert C. Martin
Besides technical decisions, software architecture deals with efficient use of human resources, therefore minimizing development and operational costs. It goes way beyond finding a great technical solution, as it aims to find compromises between the sometimes conflicting goals of all stakeholders.
Software architecture helps to achieve qualities like maintainability, reliability, safety, performance, security, scalability and operability. It reduces complexity by breaking systems down into manageable units with defined dependencies, therefore enabling efficient communication and reasoning about the inner workings of systems. Software architecture defines rules and technical decisions to guide the development, maintenance and operation of systems.
About this book
There are already a number of well-established books on software architecture (see Appendix C References for a curated and opinionated list), so why did we write another one?
In contrast to existing books, this one completely covers the iSAQB curriculum in a sufficiently detailed yet compact way and can serve as an efficient and effective study guide.
You will find numerous sample questions, helping you to prepare for the CPSA-F examination.
In case you’re interested in our (Alexander’s and Gernot’s) motivation to write this book - we included some information about ourselves in Appendix A.
Conventions used in this book
Our assumptions about you
When writing this book, we had several (potentially silly) assumptions about you (the readers) in mind:
•You work in IT (information technology) and have loads of work to do. Therefore, you want this book to be (relatively) short and compact.
•You have prior experience in developing software systems, and at least a basic understanding of computer programming.
•You want to forward your professional career by passing the iSAQB CPSA-Foundation examination. You may not yet be familiar with some of the iSAQB specific terms, so we have included a glossary, see Appendix B.
•You already have access to books or other resources on software engineering, so we won’t repeat all the basics in this book.
•Some of you might want to teach the iSAQB curriculum to others. You rightfully expect a detailed explanation of what is meant by all the learning objectives included in the iSAQB curriculum. In that case, you may be interested in references to additional textbooks and other sources, so you can prepare your personal training material.
Structure of this book
IllustrationAbout iSAQB
IllustrationThe International Software Architecture Qualification Board is a non-profit organization with members from industry, development and consulting firms, education, academia and other organizations.
It is established as an association (e.V.) according to German law with the following objectives:
•Creating and maintaining a consistent curriculum for software architects.
•Defining certification examinations based upon the various CPSA curricula.
•Ensuring high quality of teaching and further training for software architects.
•Ensuring a high quality of certification.
iSAQB defines and prescribes training and examination regulations, but does not carry out any training or examinations itself. iSAQB trainings are delivered by licensed training providers while examinations are handled by separate certifying bodies.
iSAQB monitors and audits the quality of these trainings and all associated processes (e.g. certification and examination procedures).
iSAQB closes a gap
Software architecture is a relatively young discipline, which is diversely discussed in the IT community despite many publications. There are many different perceptions regarding the roles and responsibilities of software architects and many development projects establish their own understanding.
In other IT disciplines such as project management, business analysis and requirements engineering, or testing, a wider and more generally accepted consensus on job descriptions exists. A variety of independent organizations are offering curricula, that clearly state what knowledge and skills should be transferred in trainings to the participants: e.g., for requirements engineering the IREB3 (International Requirements Engineering Board) sets world-wide standards, for project management there are several organizations with a slightly different focus, like PMI4, and for testers the ISTQB5 (International Software Testing Qualification Board) sets the standards. For software architecture, this gap is bridged by the iSAQB.
Levels of iSAQB education and certification
IllustrationFigure 0.1 Levels of iSAQB Education and Certification
How iSAQB works
Please refer to the iSAQB website for detailed information on how the iSAQB association works, how to apply for membership, etc. For the sake of this book, it is sufficient to note that membership is open to anyone interested in software architecture, and that the heterogeneous structure of iSAQB members allows for well-balanced professional discussions.
The publicly available curricula provide full transparency on all learning goals.
The various curricula are maintained by distinct working groups and curators. For the Foundation Level, the following stakeholders are of particular importance:
Foundation Level Working Group (FLWG)
An iSAQB working group, consisting of volunteer software architecture experts from various domains. This group maintains both the curriculum and the corresponding examination questions to ensure strict compliance between those two artifacts. The curriculum is maintained in an open manner on GitHub https://github.com/isaqb-org/. Everybody is free to propose changes and report errors or omissions. The FLWG will publish a new and updated version of the curriculum once every two years, balancing the need for regular updates, and the need for stability in trainings and examinations.
On the other hand, examination questions are strictly confidential, and therefore are managed privately within this working group.
All decisions regarding the content of the CPSA-Foundation Level curriculum are handled by this working group. Major changes have to be approved by the iSAQB executive board.
Certification bodies
Commercial enterprises that organize and conduct the actual examinations. iSAQB ensures the strict independence of education and examination. No certification body is allowed to conduct training, and no training provider is allowed to conduct or organize examinations.
Audit Group
An iSAQB working group that actively monitors the quality of education and examination through inspections and reviews. Trainers, training providers and certification bodies are all subject to such audits.
Open and transparent
Although the content of the iSAQB curriculum is copyrighted, all work related to the curriculum is carried out in open source manner:
•The curricula are maintained in public repositories on GitHub, https://github.com/isaqb-org .
•Comments and change requests are maintained as GitHub-issues.
•Current versions of the curriculum are available on https://isaqb-org.github.io/ .
The iSAQB distinguishes between numerous topics, with the Foundation Level being just one of these. Every topic in the advanced level has its own curriculum, see section iSAQB examination overview, for details.
About certification
Before we dive into the details of certification and examination, let’s clarify the terminology:
Illustration•First of all, you should expand your knowledge of the subject area: Enhance your own professional experience with training, reading, and other means of education. This will provide you with the required knowledge and skills.
•In the examination you have to demonstrate your capabilities and level of comprehension regarding software architecture. Your examination will be scored, and you will pass the exam if you achieve at least 60% of the maximum possible score.
•After successfully passing the examination, you will receive a certificate.
Why certification?
With the iSAQB certification you gain some compelling advantages. In particular it:
1. Helps you gain competitive advantage and can positively differentiate you from other professionals;
2. Significantly increases your financial earning potential;
3. Improves your professional credibility;
4. Connects you with the growing community of software architecture experts;
5. Demonstrates your commitment to continuous learning and improvement;
6. Provides a methodical foundation for day-to-day architecture decisions;
7. Exposes you to methodical approaches beyond your daily development and project work;
8. Proves that you have dealt intensively with relevant topics around software architectures.
As the iSAQB is strictly vendor-independent and technology-neutral, their certifications are not limited to certain domains.
On the other hand: Successful certification does not automatically enable you to develop and deploy better software architectures. But a university degree in computer science does not guarantee that either. Nevertheless, most students try to achieve a formal completion of their efforts, as organizations and enterprises commonly pay attention to such formalities.
iSAQB certifications have lifetime validity
In alignment with higher educational degrees (like bachelor, master, PhD and others), iSAQB certifications are valid forever and do not need to be renewed.
Other certification bodies require graduates to regularly renew and to regularly pay additional fees for this renewal. This is not the case here
iSAQB Foundation
The title of this section (iSAQB Foundation) is a shortened version of the official name iSAQB Certified Professional for Software Architecture - Foundation Level
. As that 8-word monster is a little difficult to pronounce, we’ve cut it down to iSAQB Foundation
. This section provides a brief overview of the curriculum for this certification level and helps you to plan your personal preparation for the examination.
iSAQB Foundation Level curriculum
The Foundation Level curriculum [iSAQB-FLC] consists of the following chapters:
1. Basic concepts of software architecture: Roles and tasks of software architects, important results, cooperation with other stakeholders.
2. Design and development of software architectures:
•How can you design structures and concepts systematically? This is the most important part of the CPSA-F curriculum and also the part that has the greatest significance for the practical work of software architects.
•Design principles and the most important architecture and design patterns.
3. Specification and communication of software architecture:
•How and what should you document?
•How do you communicate your ideas, concepts, and decisions with other stakeholders?
4. Software architecture and quality :
•How can you systematically achieve the required qualities of your system?
•How can you analyze, evaluate and diagnose your design?
5. Examples of software architectures : Software architects should be aware of good and bad examples of architectures and should discuss solutions with peers - beyond the horizon of their own experience.
What do you learn in the CPSA-Foundation Level training?
Graduates of the iSAQB CPSA-Foundation Level examination will have the knowledge and skills required for designing and documenting a specific software architecture based on a sufficiently detailed requirements specification for small and medium-sized systems. They will be equipped with the methodical tools and abilities to enable them to make problem-specific design decisions on the basis of their previously acquired practical experience.
What is NOT covered in the CPSA-F training?
The iSAQB Foundation Level curriculum reflects the contents currently considered by iSAQB members to be necessary and useful for achieving the CPSA-F learning goals.
It is not a comprehensive description of the entire domain of software architecture.
The following topics or concepts are not part of the CPSA-F curriculum:
•Concrete implementation technologies, frameworks or libraries;
•Programming or programming languages;
•Fundamentals or notations of modeling languages (such as UML, SysML, BPMN or BPEL);
•System analysis and requirements engineering (please refer to the education and certification program of IREB, the International Requirements Engineering Board);
•Software testing (please refer to the education and certification program of ISTQB, the International Software Testing Board);
•Project or product management;
•Specific software or development tools.
iSAQB examination overview
Prerequisites for CPSA-F certification
Candidates aiming to achieve the iSAQB CPSA-Foundation certification require prior knowledge and experience. In particular, substantial practical experience of software development in a team environment is required for understanding the learning materials and considerably increases your prospects of successfully passing the examination.
We consider the following prerequisites to be essential:
•More than 18 months of practical experience with software development, gained through team-based development of several systems outside of formal education.
•Knowledge of, and practical experience with, at least one higher programming language, especially: – concepts of modularization (packages, namespaces etc.), parameter passing (call-by value, call-by-reference) and scope (type- and variable declaration and definition);
–basics of type systems (static vs. dynamic typing, generic data types);
–error and exception handling in software;
–potential problems of global state and global variables.
•Basics knowledge of:
–modeling and abstraction;
–algorithms and data structures (i.e. Lists, Trees, Hash tables, Dictionary, Map);
–UML (class, package, component and sequence diagrams) and their relation to source code.
Furthermore, the following will be useful for understanding several concepts:
•Basics and differences of imperative, declarative, object-oriented and functional programming.
•Practical experience in:
–a higher level programming language;
–designing and implementing distributed applications, such as client-server systems or web applications;
–technical documentation, especially documenting source code, system design or technical concepts.
Relevance of topics for the examination
The curriculum contains prioritized learning goals. For each learning goal, the relevance for the examination of this learning goal or its sub-elements is explicitly stated through the use of a relevance classification as described in the table below.
Examination process
The examination is a written multiple-choice test, which can currently be taken paper-based or as an electronic assessment, either online or in a test center. That choice depends on the certification body6 you choose.
You can find an overview, including contact information, on the iSAQB website https://isaqb.org.
The iSAQB e.V. strictly enforces a clear organizational separation of education (training, coaching) and the examination itself:
•Trainers and coaches are never allowed to conduct examinations.
•Certification bodies are never allowed to