The processes of developing, acquiring and implementing complex systems, which include in particular software systems, should be under tight management control. Currently almost all organizations ensure control of the most important characteristics associated with the production and use software products such as time, funds, resources etc.
However, in most cases outside the scope of control is the most important characteristic of software products, for which, in fact, the time is spent, financial means and resources is the quality of the product, since “you can’t control what you can’t measure” (“You cannot control what you cannot measure”). Inability to install complete control causes an increase in the number of unreasonable decisions, increases the financial and project risks associated with the development and systems implementation.
Already existing organizations with extensive experience use of metrics in quality management of developed and implemented software products. Use of proven approaches to managing the quality of development and implementation of large software systems significantly increases the predictability of projects, reduces financial and resource costs. Now exists several definitions of quality that are generally compatible with each other friend. Among the most common are:
- Definition 1 (ISO): Quality is the completeness of properties and characteristics of a product, process or service that provide ability to satisfy stated or implied needs.
- Definition 2 (IEEE): Software quality – it is the degree to which it has the desired combination of properties. Analysis of all components of quality should be carried out with taking into account the responsibilities of stakeholders, as internal participants of the executable process (in-process stakeholder), and process users (end-of-process stakeholders).
Obviously, quality management requires control of all measurements and quality assessments in the software life cycle.
Measurement and evaluation of software quality characteristics
Software, depending on features development and application, may represent a program, software complex, software tool or software product (product). We introduce and will continue to use the following definitions. Software quality is a combination properties that characterize the ability of software meet the needs of the user in accordance with purpose.
Quality management is a system of organizational, economic, technological and legal measures, carried out to meet quality requirements software throughout the life cycle.
Program properties are features that are objectively inherent program that manifest itself in its life cycle (development, application, maintenance).
A program characteristic is a concept that reflects manifestation of a separate measurable factor inherent in the program properties. In other words, a characteristic is a manifest and measurable property attribute.
Measurement (evaluation) of one or more characteristics program gives an idea of how the program is inherent in that or other property. Each property has one or more software characteristics. To solve the problem of quantifying the characteristics software requires a measurement system and evaluation methods.
Software Performance Measurement System – it is a set of measured characteristics, units of measure, measuring scales and connections established between them. If between measured characteristics established hierarchical relationships, the measurement system is called hierarchical, otherwise – peer-to-peer.
The measuring scale sets the boundaries (range) and accuracy of measurements of characteristics of properties in established units. Measurement results in the selected measuring scale allow you to detect similarities and differences in the properties of software security for the purpose of subsequent evaluation and classification. With regard to software, the following are mainly used known types of measuring scales: nominal (categorical), ordinal, interval.
- The nominal (categorical) scale captures the presence or the absence of some characteristic of a property without taking into account gradations and allows you to classify programs according to this principle.
- The ordinal scale fixes the relation of order and allows rank programs relative to some reference value property characteristics.
- The interval scale captures not only the relation of order but and the value that distinguishes one value of the characteristic from another (interval between values).
Methods for assessing the characteristics of software are divided into the following six groups: measuring, registration, organoleptic, calculated, expert, sociological, traditional. Measurement methods are based on obtaining information about software characteristics using special tools (hardware or software) means providing measurements and their automation).
Registration methods are based on obtaining information about characteristics of the software during testing or functioning by registering and counting certain events (for example, moments and number of errors, start time and completion of calculations, etc.), registered from outside the program using general purpose measuring instruments. Organoleptic methods are based on obtaining information about software characteristics by perceiving them sense organs – primarily sight, hearing and touch.
Sociological methods use the processing of special questionnaires containing qualitative assessments of characteristics software by social groups that have attitude towards the use of software. Traditional methods combine a group of established and traditionally used in organizations, enterprises and other institutions of methods for quantifying characteristics software.
The manifested properties of the software can conditionally be divided into two groups:
- functional (external);
- constructive (internal).
For developers and users of the program interest in certain functional and structural properties, (for example, reliability, efficiency, modularity, structuredness). As a rule, the user (customer) is interested in those functional properties that characterize the usefulness of software security. It is these external properties that reflect the point of view user, determine the quality of the software, then there are its factors. Note that developers are of interest not only external, but also internal, or structural properties, on which the fulfillment of the requirements for software and user experience.
Quality characteristics reflect the properties that determine software quality. Due to the complex nature quantitative assessment of software quality characteristics software for their evaluation use hierarchical systems measurements. The hierarchy of quality characteristics is formed by factors criteria, metrics and evaluation elements.
Factors and criteria, constituting the top two levels of the measurement hierarchy reflect functional characteristics of the software, and the lower (metrics and evaluation elements) – design characteristics, from which depends on the quality of the software. Measurability quality characteristics is provided by the composition of the characteristics of the lower level – evaluation elements.
- We will call a quality factor a property, in one way or another degree determining the quality of the software. At quality assessment takes into account several factors. For getting numerical assessment of the quality factor using one or more quality criteria.
- A quality criterion is a concept, sign or numerical an indicator that characterizes the quality factor being assessed. Criterion qualities can be represented as having a physical meaning a computable expression made up of quality characteristics, whose value is the quality index. To calculate criterion values use one or more metrics.
- Metric – a measure of quantitative assessment of software quality by a given criterion, a system or method of measuring quality software. The metric contains one or more evaluation items.
- An evaluation element is a measurable characteristic of a software security, which has a numerical value in the selected measuring scale.
- Quality indicator – the numerical value of the quality criterion, determining the degree to which the program has a certain criterion property. In accordance with GOST 15467-79 under the indicator quality should be understood as a quantitative characteristic of one or several properties of software products that make up its quality in relation to certain conditions of its creation and operation.
- A comprehensive quality indicator is a quality indicator, whose value is obtained as a result of the composition of the values of others, including complex indicators. Thus, the quality of the PS multidimensional concept.
- The base value of the quality score is realistically achievable indicator value reflecting the current level of development software.
- A set of operations, including the choice of nomenclature (composition) of quality indicators, determining the values of these indicators and comparing them with baseline values is called a quality score software.
- Software Compliance Process the current quality standard is called certification. Process determining the suitability of the software for its intended purpose called verification. Functional Validation Process The suitability of software is called validation.
- Obviously, certification, verification and attestation software do not exclude, but involve quantitative evaluations of program characteristics. Considering that, by definition, software consists not only from programs, but also from their documentation, one of the objectives of the assessment software quality is the measurement and evaluation of the characteristics of software and operational documents.