6 Part 6: V-Modell Reference Activities
6.3 Activities
6.3.10 System Design
6.3.10.5 Preparing Software Architecture
|
Work Product: |
|
Method Reference: |
|
Tool reference: |
Purpose
When preparing the architecture, a »Software Architecture of the software unit shall be derived from the requirements and defined.
The process of preparing the architecture (see Figure 22) will start with the identification of the architectural drivers and the parallel definition of the evaluation criteria. Then architectural views will be identified and prepared. This preparation will correspond to the actual design process.
The architecture that was prepared will be finally reviewed and selected on the basis of the evaluation criteria. The process of preparing the architecture may be carried out in several cycles.
6.3.10.5.1 Identifying Architectural Drivers
|
Subject: |
Software Architecture: Architectural Principles and Design Alternatives |
When identifying architectural drivers, principles for the design of a »Software Architecture shall be defined. This may be for example the following requirements:
- Distribution specifications
- Decoupling of safety-critical and safety-uncritical software elements
- Use of off-the-shelf products in form of products of the type External Software Module (COTS, open source components, software components provided for re-use)
- Modularity and reusability.
6.3.10.5.2 Determining Evaluation Criteria
|
Subject: |
Software Architecture: Architectural Principles and Design Alternatives |
For the design of the architecture of the »Software Unit evaluation criteria shall be defined. These criteria will specify for which properties the selected architectural design will have to be evaluated. The identification of evaluation criteria will be based in particular on the non-functional requirements defined in the »Software Specification. The task of the architecture will be to support these requirements appropriately.
The evaluation criteria shall be prioritized and weighed. Additional criteria will be aspects such as licensing, development efforts or availability of already existing software elements (reuse).
6.3.10.5.3 Identifying Architectural Views
|
Subjects: |
Software Architecture: Data Catalog, Software Architecture: Software Unit Decomposition, Software Architecture: Interface Overview |
In this subactivity different perspectives (views) on the software shall be defined (see also the description regarding Identifying Architectural Views in the activity Developing Architecture).
In the simplest case »Software Architectures will be the hierarchical decomposition of the software with the associated software elements, including the interfaces (structural view), and the description of the communication and interaction between the software elements or the software elements and the environment (dynamic view).
It will be possible to define arbitrary additional views on the software, which may relate for example to the deployment, the work flow or the data.
Appropriately several different views should be prepared to permit easier access and to improve the understanding of the architecture.
6.3.10.5.4 Preparing Architectural Views
|
Subjects: |
Software Architecture: Data Catalog, Software Architecture: Software Unit Decomposition, Software Architecture: Interface Overview, Software Architecture: Software Elements to be Specified |
Each of the defined architectural views on the software shall be prepared (see also the definition for Preparing Architectural Views in the activity Developing Architecture). This will include the following steps:
- Identification of the elements and their dependencies within a view,
- Selection of a suitable notation (for example graphically or in text form) for the representation of the view,
- Selection of a suitable tool for the development, preparation and representation of the view,
- Preparation of the view with the selected tools and notations.
6.3.10.5.5 Evaluating Architecture
|
Subject: |
Software Architecture: Design Evaluation |
The architectureshall be evaluated on the basis of the defined evaluation criteria. For this purpose it may be for example necessary to define scenarios for the evaluation criteria and to verify their implementation in the architecture or, in individual cases, to develop prototypes of critical elements.
If an architecture fulfills the evaluation criteria completely, it may be used as a basis for the further development process.