Select Page

Software development reimagined – Part 3: Software architecture

Which goals in a software project are significantly influenced by whether it is a multicore design with safety and security aspects?

The three classic goals in a software project are: Quality requirements for the project, the Costs for Development and maintenance as well as the available development time (Time to Market).

Software project goals

 Image 1: The three classic goals for the software project

Software architecture provides the blueprint and corresponding behavior of the software. It describes the fundamental components and their interactions within a software system. As part of software design, it represents the first decision-making step for the software design process. The compilation of software requirements simultaneously serves as input for the design of the software architecture, which in turn forms the basis for the design and implementation of the software.

The role of the software architect falls to the task of developing the software architecture. Software quality criteria serve as essential foundations for this. These are also referred to as non-functional properties and are defined according to ISO/IEC 9126/25010 as quality requirements for the software project:

Modifiability or maintainability

  • Analyzability, conformity, modifiability, stability and testability of the software

Usability

  • Attractiveness, usability, learnability, conformity and comprehensibility

Efficiency

  • Conformity: meets software standards and efficiency agreements
  • Timing behavior: appropriate processing and response times
  • Consumption patterns: Resource consumption, CPU load

Functionality

  • Appropriateness: The functions fulfill specified tasks.
  • Security: The system can detect and prevent unauthorized access.
  • Interoperability: The software can work correctly with predefined systems.
  • Compliance: The software complies with standards, regulations, and legal provisions.
  • Compliance: The software meets application-specific standards, regulations, and legal provisions.
  • Accuracy: The system delivers correct or agreed-upon results.

Transferability

  • Adaptability, interchangeability, installability, coexistence and conformity of the software

The key tasks of software architecture

Software architecture forms the basis for the work of software developers and software testers. It creates a fundamental understanding of the software system, the dependencies of the software components on each other, and the structures, and is a crucial part of quality assurance. It preserves the acquired knowledge in the architecture documentation.

Software architecture

Image 2: The software architecture – fit for the project

In agile software projects, the software architecture is developed evolutionarily, based, among other things, on test-driven software development methods. Two different development approaches predominate:

  • Functional architecture: Here, the software system is represented in terms of functions or features and their dependencies.
  • Component architecture: Develops a rough draft as well as several detailed drafts that contain a fine-grained structure of the software.

UML logoUML is very often used to represent software components and their dependencies (relations).Unified Modeling Llanguage) used.
The graphical UML modeling language allows for the simplified visualization of design elements within a software architecture using UML diagrams. UML facilitates the transferability, readability, understanding, and testability of software results and forms the basis for simplified software reuse.

Reference architectures or reference models and architectural patterns can be designed as a basis for reuse.

The use of multicore architectures and requirements for different safety goals of the components (components with SIL1 – SIL3 or ASIL-A to ASIL-D) and security requirements have a direct influence on the architecture of a software project.

Safety-Security

Figure 3: Influence of Safety & Security on the software project

This manifests itself in a stricter subdivision, delimitation, and implementation of software structures. For example, specific safety levels have security requirements, including the possibility of access control for software modules to data in memory and peripheral modules.

This must also be reflected in the software implementation (e.g., controlled by Memory Mmanagement Units, MMUs, or. Memory Predaction Units, MPUs) are guaranteed by functionalities of error detection and by the necessary error handling.

Conclusion

If we use multicore systems and want to implement system safety through safety and security requirements in the software project, the software architecture represents a crucial building block for project success.

The other parts of this series on this topic Embedded software development considering multicore, safety, and security aspects They deal in more detail with current influences and challenges, software architecture and software testing. Part 1 This article examines how multicore technology, safety, and security aspects are changing today's software projects. Part 2 Learn how to avoid typical errors by using comprehensive software requirements.

Gain the right knowledge about embedded software development, multicore, and safety & security. MicroConsult offers professional training and coaching on these topics – in live online and in-person formats.

Further information

MicroConsult Expertise: Multicore & Microcontrollers

MicroConsult Training & Coaching: Multicore & Microcontrollers

MicroConsult Expertise: Embedded Software Development

MicroConsult Training & Coaching: Embedded SW development

MicroConsult expertise: Safety & Security

MicroConsult Training & Coaching: Safety & Security

All MicroConsult training & coaching

MicroConsult Newsletter

With the MicroConsult newsletter, you'll stay on the pulse of the embedded world. Look forward to proven practical knowledge, real professional tips, and current events – directly from our experts for your project success.

Subscribe now!

Published by

Renate Schultes

Renate Schultes