Quality Models help us to define quality criteria for software and architecture development. There are several different types out there that can be applied in the software and architecture development process.
A quality model is a structured way to align priorities during the conception phase and development of a software system. There might be some aspects that can be negotiable, others not. For example, you can make compromises in quality categories such as #flexibility, while making no compromises in aspects of #security. This quality guidelines help with challenging your own decisions and approaches and allow a reality check. βDo we actually need redundancy in this part of the architecture?β
There are are several quality models out there, ranging from very sophisticated models with almost 40 attributes to more application oriented models that focus on pragmatic views of the software development process.
Two models that we want to emphasis are:
A neat history of quality models can be found here.
If you want to have a look at the outline of ISO25010, you can preview it here. The model is segmented into quality in use and the product quality model.
The Quality in use Model describes quality characteristics that a user experiences while actually using the system. This covers aspects such as:
These are aspects that cover things like comfort or usefulness to the user. However, these categories are not sufficient to cover all aspects of software product quality, such as reusability, for example.
The Product Quality Model is focused on providing guidance on aspects of software or architecture qualities. There are eight main categories that can be used as orientation:
All of these attributes are further sub-segmented.
If you want to read further about the shortcomings of ISO 25010, you can do so here.
arc42 is a pragmatic framwork for documenting and structuring architecture discussions. Quality is always a part of this discussion. Therefore, q42 is intended to be a pragmatic sub-framework that starts with the view of key stakeholders on the product.
Instead of ’noun’-driven quality categories such as ‘Security’, it uses a more interaction-friendly language that favors the use of different adjectives e.g., ‘secure’, to form sentences like “the login services should be secure”.
Usually, the quality trees of other models become very expansive. The quality requirements that are formulated in Q42 are instead tagged with properties. For one quality requirement, several properties could apply. There are eight properties that can be assigned to system aspects, often written in tag notation. These are:
These system-Properties are used to βtagβ and categorizes different quality requirements that are formulated together with the eight different types of stakeholders, such as management, users, domain experts, product owners, developers, testers, admins, and others.
The core of Q42 consists of specific Quality Requirements that can be described in different aspects.
π·οΈ Tag - A reference to the applicable system aspects.
π§βπ» Stakeholder - A reference to the stakeholders that have an interest in this requirement.
π° Title - A descriptive title.
π¬ Stimulus - In what cases does this requirement trigger action? When is ist applied? For example, in case of a code change.
π² Reaction - The response to the stimulus or response of the system to satisfy the quality requirement.
π Metric - How to measure quality aspects.
π Background - Explanatory insights.
π Links - Links to related quality requirements.
First, we strive to identify all relevant stakeholders. The stakeholders provide key input for our quality requirements. There are different ways to get to a proper set of quality requirements. Structured interviews, where you walk the stakeholders through the quality attributes with examples, are suitable for stakeholders who are not very familiar with the approach of quality attributes. In our scenario, we consider a reporting solution that reports specific web application usage data for product owners.
π° Fast and accurate Black Friday Reports ( π·οΈreliable, π·οΈavailabele)
For our Black Friday sales, we have sales dashboards monitoring the activity and cash flow of the sales channels. Minutes of blocked check-out routes, misconfiguration, or login issues can have a major impact on revenues. During Black Friday sales, we need our reports to be highly available.
π§βπ» Stakeholders
π¬ Stimulus:
π² Reaction:
π Metric:
π Background:
π You can find further examples of requirements here.
Quality models can be employed as a part of architecture reviews, which should be part of project delivery guidelines or quality gates in the project lifecycle. In the software development process, these attributes should be discussed and elaborated in an early phase of your project. It is advisable to partly write down quality requirements together with the stakeholders of your software, e.g., product owners, users, management etc.
The defined quality requirements should be documented in the architecture description and revisited regularly during product development to align priorities.
We recommend practicing using the quality models in your architectures or products. The quality of your quality requirements will improve over time. Building quality models and procedures in your organization is a challenging task because many stakeholders are involved and need to be aware of the requirements and procedures of applying quality models in product development. If you want to discuss further real-world examples, do not hesitate to reach out to us.
Furthermore, we are curious how you apply quality models in your day-to-day software/product/consulting business. If you have insights for us, we would be glad if you could share them with the community.
You can reach us at info@fwdnow.io
Senior consultant
Optimize alignment between IT and business with expert advice and clear strategies.