Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restructured the iSAQB Foundation curriculum as agreed in the iSAQB Foundation meeting in January 2024 #391

Merged
merged 2 commits into from
Feb 13, 2024

Conversation

rhoadesre
Copy link
Contributor

@rhoadesre rhoadesre commented Feb 11, 2024

Overview

Changed all of the learning goal numbers and associated files to restructure the curriculum as agreed in the iSAQB Foundation Meeting in January 2024. There were some open questions in the meeting, so I took my best guess at rearranging some of the learning goals.
Parts of the new structure will make more sense when considering my proposed changes to the curriculum - refer to corresponding notes for the marked learning goals.

New Structure

1. Basic Concepts of Software Architecture
LG 01-01: Discuss Definitions of Software Architecture (R1)
LG 01-02: Understand and Explain the Goals and Benefits of Software Architecture (R1)
LG 01-03 [previously LG 1-04: Understand Software Architects' Tasks and Responsibilities (R1)
LG 01-04 [previously LG 1-09]: Responsibilities of Software Architects within the Greater Architectural Context (R3)
LG 01-05 [previously LG 1-03: Understand Software Architecture as Part of the Software Lifecycle (R2)

Recommendation: Candidate for deletion or move to another chapter #392

LG 01-06 [previously LG 1-10]: Differentiate Types of IT Systems (R3)

Recommendation: Candidate for deletion #393

2. Software Architecture and Requirements

Recommendation: rename this chapter to "External Factors that Influence Software Architecture" #394

LG 02-01 [previously LG 1-05]: Relate the Role of Software Architects to Other Stakeholders (R1)

Recommendation: Change focus to stakeholder concerns and their impact on the architecture #395

LG 02-02 [previously LG 2-03]: Identify and Consider Factors Influencing Software Architecture (R1-R3)

Recommendation: Set focus more on constraints. Remove requirements (covered in next learning goal). #396

LG 02-03 [previously LG 4-03]: Requirements and Software Architecture (R1-R3)
LG 02-04 [previously LG 4-01]: Understand and Explain Software System Qualities (R1)
LG 02-05 [previously LG 1-08]: Distinguish Explicit Statements and Implicit Assumptions (R1)
LG 02-06 [previously LG 1-07]: Differentiate between Short- and Long-Term Goals (R2)

Recommendation: Candidate for deletion, or change focus to conflict between business, project, and architecture goals. #397

3. Design and Development of Software Architecture
LG 03-01 [previously LG 2-08]: Achieve Quality Requirements with Appropriate Approaches and Techniques (R1)

Recommendation: combine this learning goal with "Improving Qualities" #399

LG 03-02 [previously LG 4-04]: Improving Qualities through Architecture (R1)

Recommendation: combine this learning goal with "Achieve Quality Requirements" #399

LG 03-03 [previously LG 2-02]: Design Software Architectures (R1)
LG 03-04 [previously LG 2-07]: Manage Dependencies between Building Blocks (R1)
LG 03-05 [previously LG 2-05]: Describe, Explain and Appropriately Apply Important Solution Patterns (R1, R3)

Recommendation: Move to separate chapter along with design principles? #398

LG 03-06 [previously LG 2-06]: Explain and Use Design Principles (R1-R3)

Recommendation: Move to separate chapter along with design patterns? #398
Recommendation: Reduce (drastically) the number of exam-relevant design principles #400

LG 03-07 [previously LG 2-10]: Know Fundamental Principles of Software Deployment (R3)

Recommendation: Combine with design principles #401

LG 03-08 [previously LG 2-04]: Design and Implement Cross-Cutting Concepts (R1)

Recommendation: "Change name to Cross-Cutting Concerns" #402
LG 03-09 [previously LG 2-09]: Design and Define Interfaces (R1-R3)
LG 03-10 [previously LG 1-11]: Challenges of Distributed Systems (R3)
LG 03-11 [previously LG 1-06]: Can Explain the Correlation between Development Approaches and Software Architecture (R2)
Recommendation: Combine with "Approaches and Heuristics", or separate agile approaches from other approaches. #403

LG 03-12 [previously LG 2-01]: Select and Use Approaches and Heuristics for Architecture Development (R1,R3)

Recommendation: Combine with "Development Approaches", or separate agile approaches from other approaches. #403

4. Specification and Communication of Software Architecture
LG 04-01 [previously LG 3-01]: Explain and Consider the Requirements of Technical Documentation (R1)
LG 04-02 [previously LG 3-02]: Describe and Communicate Software Architectures (R1-R3)
LG 04-03 [previously LG 3-03]: Explain and Apply Notations/Models to Describe Software Architecture (R2-R3)
LG 04-04 [previously LG 3-04]: Explain and Use Architectural Views (R1)

Recommendation: Expand explanation of architecture reviews #404

LG 04-05 [previously LG 3-05]: Explain and Apply Context View of Systems (R1)

Recommendation: Combine with learning goal "Explain and Use Architecture Views" #404

LG 04-06 [previously LG 3-06]: Document and Communicate Cross-Cutting Concepts (R2)
LG 04-07 [previously LG 3-07]: Describe Interfaces (R1)

Recommendation: Rename to "Document Interfaces" #405

LG 04-08 [previously LG 3-08]: Explain and Document Architectural Decisions (R1-R2)
LG 04-09 [previously LG 3-09]: Know Additional Resources and Tools for Documentation (R3)

5. Analysis and Assessment of Software Architecture
LG 05-01 [previously LG 4-02]: Analysis of Software System Qualities (R1-R3)

Recommendation: Separate into two learning goals: "analysis methods" and "sources of information". #406
Recommendation: Add learning goal for "Know different reasons for performing architecture assessments" #407

6. Examples of Software Architecture
LG 06-01 [previously LG 5-1]: Know the Relation between Requirements, Constraints, and Solutions (RLG 3)
LG 06-02 [previously LG 5-2]: Know the Rationale of a Solution’s Technical Implem2ntation (R3)

Open issues to the curriculum, once we agree on the final structure

  1. Remove old learning goal names, e.g., "[previously LG 4-03]"
  2. References to specific learning goals
  3. German and English versions of the curriculum aren't being created, only the English version without the "EN" suffix.
  4. Crreate new TOC
  5. In case new chapters are added, the duration etc. needs to change.

Copy link
Member

@gernotstarke gernotstarke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I URGENTLY ask for moving these changes to a new branch instead of proposing to work on main.

(consider using 2025-work or similar as branch name).

The main branch NEEDS TO BE KEPT as-is for eventually required hotfixes.

@programming-wolf programming-wolf changed the base branch from main to curriculum-2025-work February 12, 2024 09:37
@programming-wolf
Copy link
Contributor

Change the target of the PR to curriculum-2025-work, so that all changes can be merged into that branch.

@gernotstarke gernotstarke merged commit 798e052 into curriculum-2025-work Feb 13, 2024
1 check passed
@gernotstarke
Copy link
Member

I merge these changes, so we have a baseline for the upcoming major changes.

@rhoadesre rhoadesre deleted the rg branch February 13, 2024 08:48
Copy link
Contributor

@mikesperber mikesperber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great stuff - I have a few quibbles with the orderings.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see how this fits under "requirements" - shouldn't this move (back) to the "Basic Concepts" section?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be swapped with the following LG, so it's:

  1. "Understand and Explain Software System Qualities"
    (which is about terminology around "qualities")
    and then
  2. Requirements and Software Architecture
    (which extends the terminology)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is very basic and fundamental, should be nearer the beginning of the section.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is also very basic and fundamental, should be nearer the beginning of the section.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This explains what the section means by "Design" and thus should be at the beginning of that section.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be nearer the beginning - at least before "patterns", as it's more general. I’d say before everything except for “Design Principles”.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants