Odejście starca… Stara kobieta wiedziała o tym, czuła to każdą cząstką swojej duszy przywiązanej do niego.

Starzec odchodził… Staruszka wiedziała o tym, czuła to każdą cząstką swojej duszy, która zrosła się z nim na zawsze.

Przyjęła to spokojnie, na zewnątrz niewzruszona. W środku bała się, choć wiedziała, że długo po mężu nie pociągnie. Jak? Jak żyć bez Jacka, ukochanego, bliskiego, a jednak tak odległego? Chcecie śniegu? A wy?

Kto powiedział,# iSAQB-CPSA-F
Preparation for iSAQB Certified Professional for Software Architecture – Foundation Level (CPSA-F) exam. I’m doing this based on the **Requirements Catalogue for Certified Professional for Software Architecture – Foundation Level (CPSA-F) V. 2.2** available on the official iSAQB website.

## General Notes

### Categories of the learning objectives
Each requirement has a set of learning objectives (G1 to G6) with the following categories:
– G1: Knowledge
– G2: Comprehension
– G3: Application
– G4: Analysis
– G5: Synthesis
– G6: Evaluation

### Training Questions
The CPSA-F exam can include:
– Multiple-Choice Questions (MCQ)
– Select all that apply (SATA)
– Scenario-based Questions (SBQ)

## 1. Basic Concepts of Software Architecture (15%)

### 1.1 Definition and importance of software architecture (G1, G2)

#### 1.1.1 Definition of Software Architecture
Software Architecture is the fundamental organization of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution. [IEEE 1471]

– **Components**: The building blocks of the system.
– **Relationships**: How these components interact and communicate.
– **Environment**: The context in which the system operates.
– **Principles**: Guidelines and constraints that shape the architecture.

**G1**: I should be able to recall the definition and key elements.

**G2**: I should understand why each part of the definition is important.

#### 1.1.2 Importance of Software Architecture
– **Foundation for Development**: Provides a blueprint for the system.
– **Quality Attributes**: Influences performance, security, scalability, etc.
– **Stakeholder Communication**: Serves as a common language.
– **Cost and Risk Management**: Early decisions affect the entire project.
– **Evolution**: Facilitates maintenance and future changes.

**G1**: I should know why software architecture is crucial.
**G2**: I should comprehend how architecture impacts different aspects like quality, cost, and maintenance.

#### 1.1.3 Architectural Drivers
These are the key factors that influence the architecture:
– **Functional Requirements**: What the system must do.
– **Quality Attributes**: How the system should perform (e.g., reliability).
– **Constraints**: Limitations like technology, budget, or regulations.

**G1**: I should recall what architectural drivers are.
**G2**: I should understand how they shape the architecture.

### 1.2 Role and responsibilities of a software architect (G1, G2, G3)

#### 1.2.1 Role of a Software Architect
The architect bridges the gap between business and technology. Key aspects:
– **Technical Leadership**: Guides the development team.
– **Decision-Making**: Chooses technologies and approaches.
– **Quality Assurance**: Ensures the system meets requirements.
– **Stakeholder Management**: Communicates with clients, developers, etc.

**G1**: I should know the primary roles.
**G2**: I should understand how these roles fit into the project lifecycle.
**G3**: I should be able to apply this knowledge in scenarios, e.g., identifying what an architect should do in a given situation.

#### 1.2.2 Responsibilities of a Software Architect
– **Design**: Creating the architecture.
– **Documentation**: Describing the architecture.
– **Evaluation**: Assessing design decisions.
– **Guidance**: Mentoring the team.
– **Risk Management**: Identifying and mitigating risks.

**G1**: I should recall the key responsibilities.
**G2**: I should understand why each responsibility is important.
**G3**: I should be able to analyze whether a given responsibility is being fulfilled in a scenario.

#### 1.2.3 Skills Required
– **Technical**: Deep knowledge of technologies and patterns.
– **Communication**: Ability to explain complex ideas.
– **Analytical**: Problem-solving and decision-making.
– **Leadership**: Team coordination and motivation.

**G1**: I should know the essential skills.
**G2**: I should understand how each skill contributes to the architect’s effectiveness.

### 1.3 Architecture and Quality Attributes (G1, G2, G3)

#### 1.3.1 Quality Attributes
These are non-functional requirements that define how the system should behave:
– **Performance**: Speed and efficiency.
– **Security**: Protection against threats.
– **Scalability**: Ability to handle growth.
– **Usability**: User-friendliness.
– **Maintainability**: Ease of modifications.

**G1**: I should recall common quality attributes.
**G2**: I should understand how each attribute influences the architecture.
**G3**: I should be able to apply this knowledge to prioritize attributes based on scenarios.

#### 1.3.2 Trade-offs
Architects often need to balance conflicting quality attributes, e.g.,:
– Performance vs. Security: More security checks may slow down the system.
– Scalability vs. Cost: More servers improve scalability but increase costs.

**G1**: I should know common trade-offs.
**G2**: I should understand the implications of these trade-offs.
**G3**: I should be able to analyze a scenario and suggest a balanced approach.

### 1.4 Architecture Patterns and Styles (G1, G2, G3)

#### 1.4.1 Patterns and Styles
– **Layered Architecture**: Separation of concerns into layers (e.g., presentation, business, data).
– **Microservices**: Small, independent services communicating via APIs.
– **Event-Driven**: Components react to events or messages.
– **Client-Server**: Separation between client and server responsibilities.

**G1**: I should recall key patterns and their definitions.
**G2**: I should understand the pros and cons of each pattern.
**G3**: I should be able to recommend a pattern based on given requirements.

#### 1.4.2 Choosing Patterns
Factors to consider:
– **System Requirements**: Does the pattern support the needed qualities?
– **Team Expertise**: Is the team familiar with the pattern?
– **Future Needs**: Will the pattern accommodate growth?

**G1**: I should know factors influencing pattern selection.
**G2**: I should understand how these factors interact.
**G3**: I should be able to evaluate patterns for a given project.

### 1.5 Architecture and Agile Development (G1, G2, G3)

#### 1.5.1 Agile and Architecture
Agile focuses on flexibility and iterative development. How architecture fits in:
– **Emergent Design**: Architecture evolves over time.
– **Balance**: Enough upfront design to guide but not constrain.
– **Feedback**: Regular reviews to adapt the architecture.

**G1**: I should recall how architecture is handled in Agile.
**G2**: I should understand the balance between flexibility and structure.
**G3**: I should be able to suggest how to integrate architecture in an Agile project.

#### 1.5.2 Challenges
– **Documentation**: Agile prefers minimal docs, but architecture needs some.
– **Change Management**: Frequent changes may impact architectural integrity.
– **Team Coordination**: Ensuring everyone understands the architectural vision.

**G1**: I should know common challenges.
**G2**: I should understand how to mitigate them.
**G3**: I should be able to propose solutions for given challenges.

### Summary
– **Definitions**: Clear understanding of what software architecture is.
– **Roles**: Architect’s responsibilities and skills.
– **Quality Attributes**: How they shape the architecture and trade-offs.
– **Patterns**: Common styles and how to choose them.
– **Agile**: Integrating architecture in flexible development environments.

Oceń artykuł
Dodaj komentarze

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

pięć + cztery =

Odejście starca… Stara kobieta wiedziała o tym, czuła to każdą cząstką swojej duszy przywiązanej do niego.