Criteria and Techniques for Verification of Software Architecture Design

The architecture of a system refers to the components of the system and the way they interact. This component includes both hardware and software components. Architecture design specifies the properties and functions of these components in terms of performance, safety and interactions.

Languages for Architecture Design
Languages for architecture design includes the following:

  • Unified Modelling Language(UML): A modelling language used for visualizing the design of a system.
  • System Modelling Language(SysML): A Modelling Language used in the design and modelling  of engineering systems
  • Architecture Analysis and Design Language(AADL): An architecture description language developed by SAE International

Components of Architecture

  • Processor
  • Memory
  • External Devices
  • Disk
  • Buses

Criteria for Software Architecture Verification
Let’s now examine some factors that could serve as the criteria for architecture verification

Dependability: How reliable is the system?
How is error detection and recovery efficiency?
How well does it handle faults

Performance: In terms of resource management and assignment, scheduling etc

Security: Ensures that critical data is protected from unauthorize use. Provides for authentication, authorization and access control

Maintainability:  How maintainable is the codes and other artifacts?

Usability: User-friendly interface separate from the model.

Testability: Provides for tests to be carried out comprehensively.

Techniques for Architecture Verification
1. Requirement Based Analysis: Architecture Trade-off Analysis (ATAM): This is examination of the quality objectives and their attributes as well as how the architecture satisfies these objectives.

2. Systematic Based Analysis: Static Analysis: This method examines the external and internal interface of the system to check presence or absence of defects and their impact. Static analysis can be Interface Analysis or Fault Effect Analysis

Interface Analysis: Check if the interfaces of the system conforms to requirements

Fault Effect Analysis: Analysis of the presence of faults in the architecture and their effects.

3. Model Based Methods: Quantitative Analysis: This focuses on the performance of the system in terms of performance, dependability and safety.