Discover millions of ebooks, audiobooks, and so much more with a free trial

From $11.99/month after trial. Cancel anytime.

Software Architecture Foundation: CPSA Foundation® Exam Preparation
Software Architecture Foundation: CPSA Foundation® Exam Preparation
Software Architecture Foundation: CPSA Foundation® Exam Preparation
Ebook387 pages14 hours

Software Architecture Foundation: CPSA Foundation® Exam Preparation

Rating: 0 out of 5 stars

()

Read preview

About this ebook

This book covers everything you need to master the iSAQB© Certified Professional for Software Architecture - Foundation Level (CPSA-F) certification.
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.
LanguageEnglish
Release dateMay 25, 2021
ISBN9789401807425
Software Architecture Foundation: CPSA Foundation® Exam Preparation

Related to Software Architecture Foundation

Related ebooks

Architecture For You

View More

Related articles

Reviews for Software Architecture Foundation

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    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

    Illustration

    About iSAQB

    Illustration

    The 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

    Illustration

    Figure 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

    Enjoying the preview?
    Page 1 of 1