iSAQB Foundation Level Curriculum
This repository contains the curriculum for version 5 of CPSA-F (which will be mandatory for CPSA-F licensed trainings from September 1st 2019).
This is copyrighted work.
Licensed trainings for Certified Professional for Software Architecture – Foundation Level (CPSA-F) will provide participants with the knowledge and skills required to design, specify and document a software architecture adequate to fulfil the respective requirements for small and medium-sized systems.
You found a bug in one of the published versions, have remarks, comments or proposals?
TODO: add issue templates for bugs, comments, proposals
Prerequisite: You need a Java Runtime(tm) installed.
You build the output documents with gradle. That will produce both pdf and html output in German (DE) and English (EN), unless you modify the configuration.
In case you want to change that, adjust the following part of build.gradle
:
task buildDocs {
group 'Documentation'
description 'Grouping task for generating all languages in several formats'
dependsOn "renderNoRemarksDE", "renderNoRemarksEN", "renderWithRemarksDE_EN"
}
In the "renderNoRemarksDE" certain attributes (aka variables) are defined that configure the corresponding output.
Please note: You need to include the submodule "pdf-theme" in your checkout, otherwise the build will fail. You can do that with the following command:
git submodule update --recursive --remote
To unify upper/lowercase within the (EN) version, we use the Chicago manual of style proposal":
-
short bullet items don’t get a full-stop
-
next one starts lowercase
-
if bullets are phrases or fragments, dont use punctuation
-
if and only if an item is a really long sentence which deserves a full stop, or consists of several sentences, then we use it.
-
Only then does an item start with uppercase.
For the German (DE) version, we don’t use punctuation at the end of bullet-list items, unless on ends-of-sentences.
We have a standardized release process for this document:
-
Announcements: major versions (2019.x, 2021.x) are announced to training providers at least 3-4 month in advance—usually at the iSAQB members meeting.
-
RC1: About 4-6 month prior to release, training providers receive the first release candidate (RC1) for review and comments.
-
RC2: 6-8 weeks prior to release they receive the final release candidate RC2, which is feature frozen (meaning neither learning goals nor priorities will substantially change, only bugs and typos will be fixed).
-
Final version (e.g. 2021.1) will be made public on iSAQB.org and iSAQB.com
-
Released versions will be tagged in git.
All languages (e.g. DE and EN) will be released at the same time.
In case of typos or other minor grammatical changes, we will release updates without increasing the minor version. They will be tagged as revisions (e.g. 2021.1-rev2) on GitHub and receive a new timestamp, resulting in a version in a document that looks like this: 2021.1-EN-20210502 (revision update on Mai 2, 2021). We strive to keep learning content and structure stable across such updates, meaning that no training provider needs to adjust training material in case of revision updates.
In case of bigger adjustments, for example the addition of more text to a learning goal, or the removal of text, we will increase the minor version of the curriculum (e.g. 2021.2). Training providers, translation agencies and the examination commission will be notified about such a release so that they can adjust their trainings, translations or the exam questions, respectively.
If you consider the status of the curriculum worthy of a new release or release candidate, you have to create a tag
with Git.
The format for a release candidate tag is as follows:
2021.1-RCX
, where x is either 1 or the current release candidate number increased by one.
This tag will create a GitHub pre-release. They are [available here](https://github.com/isaqb-org/curriculum-foundation/releases) and provide you with a zip archive that contains the curriculum as PDF and HTML.
ATTENTION: You have to also append the current RC version to the version stored in the document.version
file. If you forget to do that, the RC information will NOT be part of the document’s version.
The format for a release tag is as follows:
2021.1-revX
where x is either 0 (initial release), or the current revision increased by one.
This tag will create a GitHub Release. They are [available here](https://github.com/isaqb-org/curriculum-foundation/releases) and provide you with a zip archive that contains the curriculum as PDF and HTML.
In addition, the released curriculum will be published on GitHub Pages.
ATTENTION: You have to make sure to define the correct version in the document.version
file. If you forget to do that, the document’s version will be wrong.
The particular language as well as the timestamp will be added automatically.
Example for a full version in the English curriculum PDF: 2021.1-EN-20210401
The iSAQB members association regularly elects the Foundation Level Working Group (FLWG), consisting of maximum 10 people. The FLWG is responsible for maintaining the CPSA-F Curriculum. Major version updates are reviewed and discussed with board and the members association prior to publication.
The current (2019-2020) FLWG members are:
-
Mahbouba Gharbi
-
Dr. Carola Lilienthal
-
Dr. Ulrich Becker
-
Phillip Ghadir (FLWG co-chair)
-
Peter Götz (aka hero of the build!)
-
Dr. Peter Hruschka
-
Dr. Alexander Lorz
-
Roger Rhoades
-
Mischa Soujon
-
Dr. Gernot Starke (FLWG chair)
In 2020, Dr. Michael Sperber supported our work by invitation.
As stated above, Foundation Level covers small to medium-sized software systems.
Based upon their individual practical experience and existing skills, participants will learn to derive architectural decisions from an existing system vision and adequately detailed requirements. CPSA-F trainings teach methods and principles for design, communication, documentation and evaluation of software architectures, independent of specific development processes.
Focus is education and training of the following skills:
-
Discuss and reconcile fundamental architectural decisions with stakeholders from requirements, management, development, operations and test,
-
understand the essential activities of software architecture, and carry out those for small- to medium sized systems,
-
document and communicate software architectures based upon architectural views, architecture patterns and technical concepts
In addition, such trainings cover
-
the tasks and responsibilities of software architect
-
the term software architecture and its meaning
-
the roles of software architects within development
-
state-of-the-art methods and techniques for developing software architectures
Work on this curriculum started way back in 2007/2008 - and numerous people contributed - either by proposing, crafting and writing content or by commenting, reviewing and otherwise helping to improve.
(alphabetical order, current FLWG members excluded)
Wolfgang Fahl, Prof. Dieter Jungmann, Prof. Arne Koschel, Prof. Andreas Rausch, Bettina Tacke, Holger Tiemeyer