Performance architecting

Performance architecting

Designing for performance starts with performance architecting. In the system architecting phase, the goal is to determine the performance aspects that need to be taken into account and to balance those with other system-level concerns. The system (reference) architecture should fit with the performance required to meet market demands, and give the system its competitive edge.

Reference architectures

A reference architecture prescribes template solutions for the architecture of the system at hand. Reference architectures are a commonly used best practice in systems engineering, in particular for product families and product lines. A reference architecture may prescribe, for instance, the structural decomposition of the system and the software architecture, as well as hardware and software interfaces. It is important to include a performance view in reference architectures, as architectural choices can significantly impact system performance aspects.

Domain models and aspect models

Architecting commonly distinguishes artefacts, domain models and aspect models. Artefacts, such as documentation, code and system data, describe the current system. Domain models generalize the essential domain concepts and their interrelations beyond the scope of specific systems to the domain at hand, covering all relevant disciplines. The domain models link to aspect models that enable the analysis of particular aspects of design alternatives. For performance architecting, domain models and aspect models should make performance aspects explicit, including their relation to other system-level concerns.

Platform-based design

In current industrial practice, there are often many system variants that each have their own system performance characteristics. Developing and evaluating all system variants individually is neither efficient nor effective. Platform-based design is a best practice that targets the development of reusable components, subsystems and technology. Feature and configuration models can be added to the domain model to enable analysis and optimization over multiple system variants. For example, to determine how a design choice in a shared component affects the performance of system variants.

Budget-based design

Budget-based design targets budget-critical aspects, including performance, and resources in a design. When budgets are integrated in a model-driven design flow, they help to speed up the development process, to better evaluate project risks and to obtain better design trade-offs that explicitly consider performance during early design.

Additional information