Skip to content

Commit

Permalink
Merge branch 'V5-RC2'
Browse files Browse the repository at this point in the history
This version will be tagged as V5-RC2 (second release candidate of V5)

Reviews from Sevda Cagirici, Peter Hruschka, Roger Rhoades, Alexander Lorz, Mischa Soujon, Peter Goetz and Gernot Starke have been included. See commit log for details.
  • Loading branch information
gernotstarke committed Jun 26, 2019
2 parents bb70ac2 + 2ff87f0 commit 2ac9c09
Show file tree
Hide file tree
Showing 30 changed files with 124 additions and 68 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
.project
.settings/org.eclipse.buildship.core.prefs
.vscode/settings.json
timing-pie-chart/~$pie-chart-overview.xlsx
21 changes: 19 additions & 2 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,26 @@ Please note: You need to include the submodule "pdf-theme" in your checkout, oth
git submodule update --recursive --remote
----

=== Legacy build
== Release process

There is a Docker-based build available in https://github.com/isaqb-org/adoc2pdf[its own repository], in case you cannot build with gradle.
We have a standardized release process for this document:

=== New major versions of the curriculum
* Announcements: major versions (4.x, 5.x) are announced to training providers at least 3-4 month in advance (usually on the iSAQB members meeting).
* RC1: About 3 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. 5.0) will be made public by 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.

=== Updates

In case of typos or other minor changes, we will release updates (e.g. 5.1, 5.2) following a consecutive numbering scheme.

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 minor versions (althouth we cannot ultimately guarantee that).

Therefore updates will just be delivered to training providers.


== Maintainers
Expand Down
2 changes: 1 addition & 1 deletion docs/00-preamble/00-introduction.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
include::01-what-to-expect.adoc[{include_configuration}]

<<<
include::02-what-is-not-covered.adoc[{include_configuration}]
include::02-out-of-scope.adoc[{include_configuration}]

<<<
include::03-prerequisites.adoc[{include_configuration}]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// tag::FEEDBACK[]
:filename: 00-preamble/02-what-is-not-covered.adoc
:filename: 00-preamble/02-out-of-scope.adoc
include::../config/_feedback.adoc[]
// end::FEEDBACK[]

Expand All @@ -17,23 +17,24 @@ Folgende Themen oder Konzepte sind *nicht Bestandteil des CPSA-F*:
* Systemanalyse und Requirements Engineering (siehe dazu das Ausbildungs- und Zertifizierungsprogramm des IREB e. V., http://ireb.org, International Requirements Engineering Board)
* Test (siehe dazu das Ausbildungs- und Zertifizierungsprogramm des ISTQB e. V., http://istqb.org, International Software Testing Qualification Board)
* Projekt- oder Produktmanagement
* konkrete Werkzeuge
* Einführung in konkrete Werkzeuge
Ziel des Trainings ist es, die Grundlagen für den Erwerb der für den jeweiligen Einsatzfall notwendigen weiterführenden Kenntnisse und Fertigkeiten zu vermitteln.

// end::DE[]

// tag::EN[]
=== What is *not* covered by the curriculum
=== Out of scope
This curriculum reflects the contents currently considered by the iSAQB members to be necessary and useful for achieving the learning goals of CPSA-F. It is not a comprehensive description of the entire domain of 'software architecture'.

The following topics or concepts are not part of CPSA-F:

* Specific implementation technologies, frameworks or libraries
* Programming or programming languages
* Modelling notations (such as UML) or fundamentals of modelling itself
* Specific process models
* Fundamentals of modelling notations (such as UML) or fundamentals of modelling itself
* System analysis and requirements engineering (please refer to the education and certification program by IREB e. V., http://ireb.org, International Requirements Engineering Board)
* Software testing (please refer to the education and certification program by ISTQB e.V., http://istqb.org, International Software Testing Board)
* Software testing (please refer to the education and certification program by ISTQB e.V., http://istqb.org, International Software Testing Qualification Board)
* Project or product management
* Introduction to specific software tools

Expand Down
4 changes: 1 addition & 3 deletions docs/00-preamble/03-prerequisites.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ Hilfreich für das Verständnis einiger Konzepte sind darüber hinaus:
* Grundbegriffe bzw. Unterschiede von imperativer, deklarativer, objektorientierter und funktionaler Programmierung
* praktische Erfahrung in
** einer objektorientierten Programmiersprache (etwa Java oder C#);
** der arbeitsteiligen Entwicklung von Software;
** Konzeption und Implementierung verteilt ablaufender Anwendungen, wie etwa Client/Server-Systeme oder Web-Anwendungen
** technischer Dokumentation, insbesondere in der Dokumentation von Quellcode, Systementwürfen oder technischen Konzepten
Expand All @@ -56,7 +55,7 @@ Participants should have the following knowledge and/or experience. In particula
* Basic knowledge of:
** modelling and abstraction
** algorithms and data structures
** algorithms and data structures (i.e. Lists, Trees, HashTable, Dictionary/Map)
** UML (class, package, component and sequence diagrams) and their relation to source code
Expand All @@ -65,7 +64,6 @@ Furthermore, the following will be useful for understanding several concepts:
* Basics and differences of imperative, declarative, object-oriented and functional programming
* Practical experience in
** an object-oriented programming language (i.e. Java or C#)
** software development in teams
** designing and implementing distributed applications, such as client-server systems or web applications
** technical documentation, especially documenting source code, system design or technical concepts
Expand Down
2 changes: 1 addition & 1 deletion docs/00-preamble/05-exam-relevance-levels.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ They may be covered in training if required.
|===

If required, the learning goals include references to further reading, standards or other sources.
The sections "Terms and Concepts" of each chapter list word that are associated with the contents of the chapter.
The sections "Terms and Concepts" of each chapter list words that are associated with the contents of the chapter.
Some of them are used in the descriptions of learning goals.

// end::EN[]
Expand Down
5 changes: 3 additions & 2 deletions docs/00-preamble/copyright.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Es müsste dann ein eigener Lizenzvertrag geschlossen werden.
2. Sind Sie Trainer, Anbieter oder Trainingsorganisator, ist die Nutzung der Dokumente und/oder Lehrpläne nach Erwerb einer Nutzungslizenz möglich. Hierzu bitte unter [email protected] nachfragen.
Lizenzverträge, die alles umfassend regeln, sind vorhanden.

3. Falls Sie weder unter die Kategorie 1. noch unter die Kategorie 2. fallen, aber dennoch die Dokumente und/oder Lehrpläne nutzen möchten, nehmen Sie bitte ebenfalls Kontakt unter [email protected] zum iSAQB e.V. auf.
3. Falls Sie unter keine der vorstehenden Kategorien fallen, aber dennoch die Dokumente und/oder Lehrpläne nutzen möchten, nehmen Sie bitte ebenfalls Kontakt unter [email protected] zum iSAQB e.V. auf.
Sie werden dort über die Möglichkeit des Erwerbs entsprechender Lizenzen im Rahmen der vorhandenen
Lizenzverträge informiert und können die gewünschten Nutzungsgenehmigungen erhalten.

Expand All @@ -45,7 +45,8 @@ Please address any enquiries to [email protected]. License agreements with compr

3. If you fall neither into category 1 nor category 2, but would like to use these documents and/or curricula nonetheless, please also contact the iSAQB e. V. by writing to [email protected]. You will then be informed about the possibility of acquiring relevant licenses through existing license agreements, allowing you to obtain your desired usage authorizations.

We stress that, as a matter of principle, this curriculum is protected by copyright.
We like to point out that this curriculum is protected by copyright.

The International Software Architecture Qualification Board e. V. (iSAQB^(R)^ e. V.) has exclusive entitlement to these copyrights.
The abbreviation "e. V." is part of the iSAQB's official name and stands for "eingetragener Verein" (registered association), which describes its status as a legal entity according to German law.
For the purpose of simplicity, iSAQB e. V. shall hereafter be referred to as iSAQB without the use of said abbreviation.
Expand Down
40 changes: 35 additions & 5 deletions docs/01-basics/01-basics-duration-terms.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,55 @@ include::../config/_feedback.adoc[]
== Grundbegriffe

|===
| Dauer: 120 Min. | Übungszeit: Keine.
| Dauer: 120 Min. | Übungszeit: Keine
|===


=== Wesentliche Begriffe
{glossary_url}software-architecture[Softwarearchitektur];
Architekturdomänen; {glossary_url}structure[Struktur]; {glossary_url}building-block[Bausteine]; {glossary_url}component[Komponenten]; {glossary_url}interface[Schnittstellen]; {glossary_url}relationship[Beziehungen]; Querschnittskonzepte; Nutzen von Softwarearchitektur; Softwarearchitekten und deren Verantwortlichkeiten; Rolle; Aufgaben und benötigte Fähigkeiten; Stakeholder und deren Anliegen; funktionale Anforderungen; {glossary_url}quality-requirement[Qualitätsanforderungen]; {glossary_url}constraints[Randbedingungen]; Einflussfaktoren; Typen von IT-Systemen (eingebettete Systeme; Echtzeitsysteme; Informationssysteme etc.)
Architekturdomänen;
{glossary_url}structure[Struktur];
{glossary_url}building-block[Bausteine];
{glossary_url}component[Komponenten];
{glossary_url}interface[Schnittstellen];
{glossary_url}relationship[Beziehungen];
Querschnittskonzepte;
Nutzen von Softwarearchitektur;
Softwarearchitekten und deren Verantwortlichkeiten;
Rolle;
Aufgaben und benötigte Fähigkeiten;
Stakeholder und deren Anliegen;
funktionale Anforderungen;
{glossary_url}quality-requirement[Qualitätsanforderungen];
{glossary_url}constraints[Randbedingungen];
Einflussfaktoren;
Typen von IT-Systemen (eingebettete Systeme; Echtzeitsysteme; Informationssysteme etc.)

// end::DE[]

// tag::EN[]
== Basic concepts of software architecture

|===
| Duration: 120 Min. | Exercises: none
| Duration: 120 min. | Exercises: none
|===

=== Terms and concepts
{glossary_url}software-architecture[Software architecture]; architecture domains; {glossary_url}structure[structure]; {glossary_url}building-block[building blocks], {glossary_url}component[components]; {glossary_url}interface[interfaces]; {glossary_url}relationship[relationships]; cross-cutting concerns; software architects and their responsibilities; tasks and required skills; stakeholders and their concerns; functional and {glossary_url}quality-requirement[quality] requirements of systems; {glossary_url}constraints[constraints]; influencing factors; types of IT systems (embedded systems; real-time systems; information systems etc.)
=== Relevant terms
{glossary_url}software-architecture[Software architecture];
architecture domains; {glossary_url}structure[structure];
{glossary_url}building-block[building blocks];
{glossary_url}component[components];
{glossary_url}interface[interfaces];
{glossary_url}relationship[relationships];
cross-cutting concerns;
software architects and their responsibilities;
tasks and required skills;
stakeholders and their concerns;
functional and {glossary_url}quality-requirement[quality]
requirements of systems;
{glossary_url}constraints[constraints];
influencing factors;
types of IT systems (embedded systems; real-time systems; information systems etc.)


// end::EN[]
Expand Down
2 changes: 1 addition & 1 deletion docs/01-basics/LZ-1-05.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ They should adapt their contribution to a software development in a specific con
* Quality assurance
* IT operations (production, data centers), applies primarily to information systems
* Hardware development
* Enterprise Architect, architecture board
* Enterprise architecture, architecture board

// end::EN[]

Expand Down
2 changes: 1 addition & 1 deletion docs/01-basics/LZ-1-06.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Dabei müssen sie bei anderen Stakeholdern systematisch Rückmeldung einholen.
==== LG 1-6: Can explain the correlation between development approaches and software architecture (R1)

* Software architects are able to explain the influence of iterative approaches on architectural decisions (with regard to risks and predictability)
* Due to inherent uncertainty, software architects often have to work and make decisions iteratively. To do so, they must systematically seek feedback from other stakeholders.
* Due to inherent uncertainty, software architects often have to work and make decisions iteratively. To do so, they have to systematically obtain feedback from other stakeholders.

// end::EN[]

Expand Down
6 changes: 3 additions & 3 deletions docs/02-design/01-design-duration-terms.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ include::../config/_feedback.adoc[]
== Entwurf und Entwicklung von Softwarearchitekturen

|===
| Dauer: 300 Min. | Übungszeit: 90 Min.
| Dauer: 330 Min. | Übungszeit: 120 Min.
|===


Expand All @@ -22,10 +22,10 @@ Entwurf; Vorgehen beim Entwurf; Entwurfsentscheidung; Sichten; Schnittstellen; t
== Design and development of software architectures

|===
| Duration: 300 min. | Excercises: 90 min.
| Duration: 330 min. | Excercises: 120 min.
|===

=== Terms and concepts
=== Relevant terms
Design; design approach; design decision; views; interfaces; technical and cross-cutting concerns; stereotypes; architectural patterns; pattern languages; design principles; dependencies; coupling; cohesion; functional and technical architectures; top-down and bottom-up approaches; model-based design; iterative/incremental design; domain-driven design

// end::EN[]
Expand Down
11 changes: 7 additions & 4 deletions docs/02-design/LZ-2-08.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@ Softwarearchitekten kennen und berücksichtigen den starken Einfluss von Qualit
* Verfügbarkeit
* Wartbarkeit, Modifizierbarkeit, Erweiterbarkeit, Adaptierbarkeit

Sie können Lösungsmöglichkeiten, _Design Tactics_, angemessene Praktiken sowie technische Möglichkeiten zur Erreichung wichtiger Qualitätsanforderungen von Softwaresystemen (unterschiedlich für eingebettete Systeme bzw. Informationssysteme) erklären und anwenden.
Sie können:

Sie können mögliche Wechselwirkungen zwischen solchen Lösungsmöglichkeiten sowie die entsprechenden Risiken identifizieren und kommunizieren.
* Lösungsmöglichkeiten, _Design Tactics_, angemessene Praktiken sowie technische Möglichkeiten zur Erreichung wichtiger Qualitätsanforderungen von Softwaresystemen (unterschiedlich für eingebettete Systeme bzw. Informationssysteme) erklären und anwenden;
* mögliche Wechselwirkungen zwischen solchen Lösungsmöglichkeiten sowie die entsprechenden Risiken identifizieren und kommunizieren.

// end::DE[]

Expand All @@ -31,9 +32,11 @@ Software architects understand and consider the considerable influence of qualit
* Availability
* Maintainability, modifiability, extensibility, adaptability

They can explain and apply solution options, _Design Tactics_, suitable practices as well as technical possibilities to achieve important quality requirements of software systems (different for embedded systems or information systems).
They can:

* explain and apply solution options, _Design Tactics_, suitable practices as well as technical possibilities to achieve important quality requirements of software systems (different for embedded systems or information systems).
* identify and communicate possible trade-offs between such solutions and their associated risks.

They can identify and communicate possible trade-offs between such solutions and their associated risks.

// end::EN[]

Expand Down
8 changes: 4 additions & 4 deletions docs/03-documentation/01-documentation-duration-terms.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ include::../config/_feedback.adoc[]
== Beschreibung und Kommunikation von Softwarearchitekturen

|===
| Dauer: 150 Min. | Übungszeit: 90 Min.
| Dauer: 180 Min. | Übungszeit: 120 Min.
|===

=== Wichtige Begriffe
=== Wesentliche Begriffe

Architektur-)Sichten; Strukturen; (technische) Konzepte; Dokumentation; Kommunikation; Beschreibung; zielgruppen- oder stakeholdergerecht; Meta-Strukturen und Templates zur Beschreibung und Kommunikation; Kontextabgrenzung; Bausteine; Bausteinsicht; Laufzeitsicht; Verteilungssicht; Knoten; Kanal; Verteilungsartefakte; Mapping von Bausteinen auf Verteilungsartefakte; Beschreibung von Schnittstellen und Entwurfsentscheidungen; UML; Werkzeuge zur Dokumentation

Expand All @@ -20,10 +20,10 @@ Architektur-)Sichten; Strukturen; (technische) Konzepte; Dokumentation; Kommunik
== Specification and communication of software architectures

|===
| Duration: 150 min. | Exercises: 90 min.
| Duration: 180 min. | Exercises: 120 min.
|===

=== Terms and concepts
=== Relevant terms
(Architectural) Views; structures; (technical) concepts; documentation; communication; description; stakeholder-oriented, meta structures and templates for description and communication; system context; building blocks; building-block view; runtime view; deployment view; node; channel; deployment artifacts; mapping building blocks onto deployment artifacts; description of interfaces and design decisions; UML, tools for documentation
// end::EN[]

Expand Down
2 changes: 1 addition & 1 deletion docs/03-documentation/99-documentation-references.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ include::../config/_feedback.adoc[]
// tag::BIB_REFS[]
=== {references}

<<Bass2003>>, <<Clements2002>>, <<Gharbi+2017>>, <<Starke2017>>, <<Zörner2015>>
<<Bass2012>>, <<Clements2010>>, <<Gharbi+2017>>, <<Starke2017>>, <<Zörner2015>>

// end::BIB_REFS[]

Expand Down
2 changes: 1 addition & 1 deletion docs/03-documentation/LZ-3-05.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Softwarearchitekten können:

// tag::EN[]
[[LG-3-5]]
==== LZ 3-5: Explain and apply context view of systems (R1)
==== LG 3-5: Explain and apply context view of systems (R1)
Software architects can:

* Depict the context of systems, e.g. in the form of context diagrams with explanations;
Expand Down
4 changes: 2 additions & 2 deletions docs/03-documentation/LZ-3-06.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ include::../config/_feedback.adoc[]
[[LZ-3-6]]
==== LZ 3-6: Querschnittskonzepte dokumentieren und kommunizieren (R1)

Softwarearchitekten können typische Querschnittskonzepte (auch genannt _Prinzipien_ oder _Aspekte_) adäquat dokumentieren und kommunizieren, z. B. Persistenz, Ablaufsteuerung, UI, Verteilung/Integration, Protokollierung;
Softwarearchitekten können typische Querschnittskonzepte (auch genannt _Prinzipien_ oder _Aspekte_) adäquat dokumentieren und kommunizieren, z. B. Persistenz, Ablaufsteuerung, UI, Verteilung/Integration, Protokollierung.

// end::DE[]

// tag::EN[]
[[LG-3-6]]
==== LG 3-6: Document and communicate cross-cutting concerns (R1)

Software architects are able to adequately document and communicate typical cross-cutting concerns, e. g., persistence, workflow management, UI, deployment/integration, logging);
Software architects are able to adequately document and communicate typical cross-cutting concerns, e. g., persistence, workflow management, UI, deployment/integration, logging.

// end::EN[]

Expand Down
12 changes: 7 additions & 5 deletions docs/03-documentation/LZ-3-08.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,28 @@ include::../config/_feedback.adoc[]

Softwarearchitekten können:

* Architekturentscheidungen systematisch herleiten, begründen, kommunizieren und dokumentieren;
* Architekturentscheidungen systematisch herbeiführen, begründen, kommunizieren und dokumentieren;
* gegenseitige Abhängigkeiten solcher Entscheidungen erkennen, kommunizieren und dokumentieren.

// end::DE[]

// tag::EN[]
[[LG-3-8]]
==== LG 3-8: Explain and document architectural decisions (R2)
S
oftware architects are able to:

* systematically derive, justify, communicate, and document architectural decisions
Software architects are able to:

* systematically take, justify, communicate, and document architectural decisions
* Identify, communicate, and document interdependencies between design decisions

// end::EN[]

// tag::REMARK[]
[NOTE]
====
GS: wording: += kommunizieren, begründen
GS (Juni 2019): "herleiten" durch "herbeiführen" ersetzt (engl: derive -> take)
GS (Feb 2019): wording: += kommunizieren, begründen
====

// end::REMARK[]
2 changes: 1 addition & 1 deletion docs/03-documentation/LZ-3-09.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Softwarearchitekten nutzen Dokumentation zur Unterstützung bei Entwurf, Impleme

// tag::EN[]
[[LG-3-9]]
==== LZ 3-9: Use documentation as written communication (R2)
==== LG 3-9: Use documentation as written communication (R2)

Software architects use documentation to support the design, implementation and further development (also called _maintenance_ or _evolution_) of systems.

Expand Down
2 changes: 1 addition & 1 deletion docs/03-documentation/LZ-3-10.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Softwarearchitekten kennen:

// tag::EN[]
[[LG-3-10]]
==== LZ 3-10: Know additional resources and tools for documentation (R3)
==== LG 3-10: Know additional resources and tools for documentation (R3)

Software architects know:

Expand Down
Loading

0 comments on commit 2ac9c09

Please sign in to comment.