System Architecture (iSAQB)

General

Several standards are defined by International Software Qualification Board, such as the iSAQB standard for architecture. iSAQB certifies via it's Certified Professional for Software Architect (CPSA) program. There are several levels, which can be archievd:

  • CPSA-Foundation Level (CPSA-F)
  • CPSA-Advanced Level (CPSA-A)
  • CPSA-Expert Level (CPSA-E)

 

Structure

From my perspective the training material for iSAQB is not well structured, as many activities can be executed in parallel. Most training material - such as the one from Cert-IT GmbH - is missing a red-line to follow up. Therefore I structured the most important topics by the application lifecycle.

Software Architecture can be generally structured in the following areas, which also represent organizational hierarchies:

Enterprise Architecture
Management
Business Architecture
(Business Processes)
IT Enterprise
Architecture
Software
Architecture
Hardware
Architecture
Infrastructure
Architecture

 

 

Software Architects

Software Architects require a wild mix of soft and hardskills to fulfill their role and responsibility. Vitruvius defined the ideal architect as:

a person of letters, a mathematician, familiar with historical studies, a diligent student of philosophy, acquainted with music, not ignorant of medicine, learned in the response of jurisconsults, familiar with astronomy and astronomical calculations.

Vitruvius, 25 BC

 

As software architects fulfill a central role in software projects, they need to bring together related development phases (cfg. Project Management Phases), such as:

  • Analysis
  • Design
  • Implementation
  • Management
  • Operations

Due to the versatility of stakeholders and multiplicities of their interests, the knowledge of software architects must be wide spread. Some deep understanding for technologies is topping their profile off, but is not as much required as having a broad understanding of topics. The responsibility for software architects normally correlates to quality characteristics of software. Such characteristics are defined by ISO/IEC 25010:

ISO/ICE 25010 Software Product Quality

Functional Suitability Reliability Usability Performance Efficiency Security Maintainability Compatibility Portability
Functional Completeness Maturity Appropriateness Time Behavior Confidentiality Modularity Co-existence Adaptability
Functional Correctness Availability Recognizability Resource Utilization Integrity Reusability Interoperability Installability
Functional Appropriateness Fault Tolerance Operatibility Capacity Non-repudiation Analysability   Replaceability
  Recoverability User Error Protection   Authenticity Modifiability    
    User Interface Aesthetics   Accountability Testability    
    Accessability