by Artem Filimonov, aafilimonov_5@edu.hse.ru

Quality plays a key role in the demand for a product in the market. People prefer products which price matches the quality. Therefore, manufacturers should pay great attention for quality assurance of the products. This additionally applies to developers who aspire to create products of high demand. To ensure quality in the production process are used quality requirements that are written in various industry standards. This topic will consider aspects of the quality of information systems and software.

In order of creating high-quality software developers should perform some actions that ensure quality. There is a wide choice of tools and techniques that ensure quality management. Most of them are described in international or national standards. ISO, IEEE, IEC are organizations that are responsible for development and publication of international standards. In a large amount of standards there are some dedicated to system and software quality requirements. In IEEE software life cycle such section is named Software quality assurance (SQA). The process of quality assurance can be ensured in conformance to the ISO/IEC 25000 series of standards, which is called SQuaRE (System and Software Quality Requirements and Evaluation). SQuaRE includes the latest versions of quality standards and consists of 5 divisions: Quality Management, Quality Model, Quality Measurement, Quality Requirements, Quality Evaluation.

Quality Model is a set of characteristics that ensure the quality of software in all of its aspects. Such models are described in ISO/IEC 25010:2011 standard. The quality can be defined as a set of requirements for a product that determine its ability to meet certain stated and implied needs of its various stakeholders in order to provide value [1]. These needs are represented in quality models as quality characteristics and even subcharacteristics. Such structure allows to cover all aspects of the system quality in order to achieve desired usage. Quality property is the smallest unit in quality model hierarchy. They are used together with quality measure and can cover characteristic or subcharacteristic. It allows to track reachability of desired quality level.

Currently there are 3 quality models that are used in software development: the quality in use, the product quality and the data quality. Quality models form a framework that determines characteristics of different scopes. These models are useful for software developers, quality assurance, owners, maintainers and other stakeholders.

The “quality in use” model consists of five characteristics which describe outcomes of system usage: effectiveness, efficiency, satisfaction, freedom from risk, and context coverage. These characteristics are represented in interactions of stakeholders with the system. The “quality in use” model is related to all the factors that characterize overall usage of the system.

The product quality model classifies eight characteristics: functional suitability, performance efficiency, compatibility, usability, reliability, security, maintainability and portability. Each characteristic is divided in subcharacteristics. This quality model applies just to a software or a system and can be considered as non-functional requirements including functional suitability management.

The data quality model defines quality characteristics for target data used by systems and stakeholders [2]. Information systems use various types of data that is transmitted over the system components. It means that implementation of this model can effect an overall system quality. Target data is defined as a data that is decided to be analyzed and validated by the organization through the model. These models have different scopes of use. The data quality model represents only system’s target data. The “quality in use” model targets human-computer system that can be described as interactions of stakeholders with a system. The product quality model focuses on the properties of computer system including the software product. Figure 1 shows how quality models apply to system development.

Figure 1 — Targets of quality models [1]

The main body of focus will be target computer system as it considers basic software system attributes and includes system components such as target software. Although “quality in use” model is used to ensure quality from the perspective of stakeholders it is not suitable for getting measurable outcomes. And the product quality model allows to get exact metrics of the running system. Thus, it can be applied to fulfill non-functional requirements represented as quality characteristics. These characteristics help to define activities that ensure quality and to provide an assessment of their implementation.

The product quality model consists of 8 characteristics and their subcharacteristics:

  1. Functional suitability
    • Functional completeness
    • Functional correctness
    • Functional appropriateness
  2. Performance efficiency
    • Time behavior
    • Resource utilization
    • Capacity
  3. Compatibility
    • Co-existence
    • Interoperability
  4. Usability
    • Appropriateness recognizability
    • Learnability
    • Operability
    • User error protection
    • User interface aesthetics
    • Accessibility
  5. Reliability
    • Maturity
    • Availability
    • Fault tolerance
    • Recoverability
  6. Security
    • Confidentiality
    • Integrity
    • Non-repudiation
    • Accountability
    • Authenticity
  7. Maintainability
    • Modularity
    • Reusability
    • Analysability
    • Modifiability
    • Testability
  8. Portability
    • Adaptability
    • Installability
    • Replaceability

Appliance of all the subcharacteristics to the system leads to the whole quality assuarence. The product quality is determined by the properties of the target software and computer system dependent on particular contexts of use. Accordingly, these contexts should be specified in exact document that will provide conditions which ensure achievement of a quality characteristic. One of such documents is called SRS (Software requirements specification). It describes functional and non-functional requirements. Non-functional requirements contained in this document are equal to characteristics of the product quality model. It means that exists a relationship between requirements and quality characteristics [3].

Likewise, models quality requirements divided into “quality in use”, product and data requirements [4]. “Quality in use” requirements (QIURs) are related to the needs of stakeholders. Product quality requirements partly used as (QIURs) and at the same time identify technical attributes of the system. Data quality requirements specify aspects of data management in the system. These types of requirements are used in the same scopes as models accordingly.

Process of specifying quality requirements can be defined as a list of steps:

  1. Define target entities to be managed to achieve quality.
  2. Select quality characteristics to be specified.
  3. State quality requirements for the selected quality characteristics.
  4. Prioritize quality requirements.
  5. Specify quality requirements using quality measures and their required criteria.
  6. Analyze quality requirements.
  7. Manage quality requirements.

Described steps can be performed iteratively. That will allow to specify the requirements accurately in accordance with needs of stakeholders. Thus, requirements complement quality models and help to describe exact properties of the system which should be implemented in order to ensure quality.

Nowadays quality assurance became a common activity in development process. But not every developer understands how to manage quality assurance and apply this quality to the products. For this purpose were created international standards that help to manage development process. Some of this standards focus on software quality assurance. They describe methods and properties applicable for system development.

Characteristics that determine quality of the product can be described as requirements. Correspondingly, these qualities will be considered in context of system use and evaluated using applied measures. Thus, process of quality assurance has some similarities with requirements specification and therefore should be taken in consideration every time the new product is being developed. Quality frequently has the highest priority in development as it provides satisfying or not experience from system usage.

  1. ISO/IEC 25010:2011, Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models
  2. ISO/IEC 25012:2008, Software engineering — Software product Quality Requirements and Evaluation (SQuaRE) — Data quality model
  3. Dr. Roland Petrasch, “The Definition of 'Software Quality': A Practical Approach”, https://www.researchgate.net/publication/258105237_The_Definition_of_'Software_Quality-_A_Practical_Approach
  4. ISO/IEC 25030:2019, Systems and software engineering — Systems and software quality requirements and evaluation (SQuaRE) — Quality requirements framework
  5. ISO/IEC/IEEE 12207 Systems and software engineering – Software life cycle processes