Lecture
Systemic efficiency of the targeted application of software systems is determined by the degree to which the needs of specific parties — customers and/or users — are satisfied, which in many cases it is desirable to measure in economic categories: profit, cost, labor intensity, prevented damage-risk, duration of use, and so on. Solving these problems must be aimed at ensuring the high functional suitability of the software system, through a balanced improvement of the constructive quality characteristics under conditions of limited resources over the life cycle. To this end, during system analysis, when preparing the technical specification and requirements specifications, the values of quality attributes and subcharacteristics must be chosen with regard to their influence on functional suitability. Guidelines can be provided by the ranges of variation of the attributes of the software system's constructive quality characteristics, whose quantitative or qualitative scale boundaries, upper and lower, can be chosen on the basis of the following principles:
the limiting values of quality characteristics must be bounded from above by the acceptable or rational expenditure of resources required to achieve them during the development and improvement of the software system;
the largest allowable expenditure of resources, for example labor and time, for implementing the constructive characteristics must ensure the functional suitability of the software system's life cycle at a sufficiently high level;
the allowable worst-case values of individual constructive quality characteristics may correspond to values at which the functional suitability of the software system in use begins to noticeably decline;
the limited values of individual constructive quality characteristics must not negatively affect the possible high values of other priority characteristics.
The ability of the software system to provide solutions to specific tasks that satisfy the established needs of customers and users when the software package is used under given conditions is reflected in the ISO 9126:1 standard by the characteristic — functionality. In it, the first and most important subcharacteristic of the software system's life cycle is — functionality or functional suitability. Besides it, functionality also essentially includes the constructive subcharacteristics: correctness and interoperability. Security-safety is more difficult to classify, since its functions are directly and organically linked to the specific features of functional suitability (see section 11.5).
Functional suitability — is a set of attributes and their descriptions, defining the purpose and the main, necessary and sufficient functions of the software system, as set out in the technical specification and in the requirements specifications of the customer or potential user. During the design of the software package, the attributes of functional suitability must be specified in detail in the specifications for the software system as a whole and for its components. The attributes of this quality characteristic can include the functional completeness of the solution to the given set of tasks, the degree of coverage of functional requirements by the specifications and their stability during improvement of the software system, and the number of implemented customer requirements.
Besides these, functional suitability is reflected by a great many different specialized criteria that are closely related to the specific tasks being solved and to the field of application of the software package. They can be regarded as particular criteria or as factors influencing the overall quality indicator of the software system.
This characteristic can change significantly over the software system's life cycle, and accordingly the specific content of the basic functions subject to application and evaluation changes as well. At successive stages of the life cycle, the functions of intermediate products (specifications of components, modules, program texts, and so on) must be evaluated for conformity to the descriptions in separate, individual documents. This makes it possible to formalize, stage by stage, the subcharacteristics and attributes of functional suitability being applied. Such attributes can include: the functional adequacy of the programs to the documents and to the requirements declared and approved by the customer; the degree of test coverage of the source requirements; the completeness and thoroughness of the implementation of these requirements; the accuracy of fulfilling the requirements of the detailed specifications for the functional components of the software system.
Among the whole variety of functional characteristics of software systems, two groups can be distinguished, one of which reflects various specific features directly related to the purpose, functions and field of application of the software system, while the second — is amenable to partial unification of composition and structure and to evaluation by standardized methods. This second group characterizes a number of basic, invariant quality propertiesthat make it possible to determine certain subcharacteristics of the functional suitability of the software system, independently of the specific goals and fields of application. From this standpoint, functional suitability is determined by the quality of the interrelation and consistency of the successive formulations of the content and implementation of the main fragments in the chain of standardized requirements of the technical specification for the software system: goals — purpose — functions — source information —results for users, which determine that:
— the description of the software system's goals has been correctly reworked into a detailed description of its purpose and external application environment;
the purpose of the software system is fully and correctly detailed in the requirements for the functions of the software package and its components;
the implementation of the requirements for the functions of the software system is provided with reliable and adequate composition and content of source information from objects of the external environment;
the implementation of the functions of the software system is able to prepare all the required and sufficiently correct information for users and objects of the external environment.
Tracing the quality of results as these descriptions are elaborated and detailed and ensuring their mutual adequacy is the basis for determining the group of functional suitability indicators. They must be presented as fully and precisely as possible in the contract, the technical specification and the requirements specifications for the software system and for its functional components, since eliminating their defects requires especially large resources.
Any software system must, above all, have economic, technical, scientific or social efficiency of application, which in projects must reflect the main goal of its life cycle in the system. This systemic efficiency can be described quantitatively or qualitatively, as a set of useful properties of the software product, its differences from other existing software packages, and possible sources of efficiency. As a result, the purpose of use and the set of the main requirements of the customer and users when acquiring the software product, as well as its intended field of application and purpose, must be formalized. The completeness and accuracy of the representation of this characteristic of the software system can mainly be assessed by experts, and it is the starting point for tracing all subsequent, derivative properties and attributes of functional suitability.
The purpose and destination of the software system are detailed and formalized in the requirements for the functions of the components and of the entire software package capable of realizing the declared goals:
conformity of the software package to the functions of the system;
conformity of the automated functions and sets of tasks to the purpose of the software system's life cycle;
general technical requirements for the implementation of the functions, components and tasks.
The adequacy and completeness with which the required functions reflect the formulated purpose of the software system is a characteristic that determines the potential possibility of realizing its functional suitability as a whole. Tracing the detailing and coverage of goals by function requirements from the top down (starting from the goals of the software system), as well as the refinement and correction of goals from the bottom up from the potentially realizable functions of the components, must ensure the adequacy and quality of this part of the declared basis of functional suitability.
The functions of the software system are implemented in a certain hardware, operating and user external environment of the system, whose characteristics significantly affect functional suitability. To perform the required functions of the software package, adequate source information from objects of the external environment is needed, the content of which must fully ensure the implementation of the declared functions. The completeness of formalizing the nomenclature, structure and quality of the input information needed to perform the required functions is one of the important components in determining the functional suitability of the software system in the corresponding external environment.
The purpose and functions of the software system are realized when the output information reaches consumers — objects or operator-users — with the required content and quality, sufficient to ensure its effective use. The substantive part of this information is determined by the specific tasks of the system, the main technical-economic and/or social indicators of the system's functioning, and is reflected by metrics in use. The degree of coverage of all output information: goals, purpose and functions of the software system for users — should be regarded as the main measure of the quality of functional suitability. Tracing and assessing the adequacy and completeness of the composition of the output information from the bottom up to the purpose of the software system must complete the selection of the basic subcharacteristics of the quality of functional suitability, independently of the system's field of application.
During design, two groups of basic subcharacteristics can be distinguished within functional suitability, defining the functional and structural requirements and features of the software system. When formalizing and selecting functional requirements, the following should, if possible, be clearly formulated in the contract documents:
the economic, organizational, technical and/or social strategic goals of the entire life cycle of the software system and its components;
the purpose, external environment and conditions for the effective use of the software system;
system-level efficiency, including the required technical-economic indicators of applying the PS as part of the system;
the functional tasks of the main components and of the PS as a whole, as well as the system-level efficiency of each;
the necessary and sufficient quality and time schedule for solving each functional task;
conformity of the PS and its components to standards and regulatory documents for design and application;
restrictions on external environment parameters and conditions for applying the PS, guaranteeing the required characteristics of functional suitability.
Functional suitability throughout the life cycle of the PS depends on structural (architectural) characteristics, which must be reflected in the requirements of the technical specification and/or specifications for the components and the PS as a whole:
conformity of the functions and structure of the software system to the hardware and operating environment and their limited resources;
conformity of the rules for the structural construction of the complex, functional components and modules to the standard requirements for the architecture of the PS and its components, as well as to the level of coverage by them of the specified functions of the software package;
the composition, structure and methods of organizing data, as well as the requirements for data exchange between PS components, must be adequate to the organization of information support and the functions of the system;
a time schedule and characteristics of the process of dynamic implementation of the automated functions must be specified;
the permissible delay time for issuing the results of task solutions must be determined;
requirements for the monitoring, storage, updating and recovery of programs and data must be envisaged and implemented.
In a number of systems, the system-level design of the organization of information support and the database(see section 11.4) is of particular importance for functional suitability. In doing so, the following must be determined:
the purpose of the database and the composition of the information in it;
compatibility of the PS with other systems by sources and consumers of database information;
the organization of collection, transmission, control and correction of database information;
the intensity and volumes of database information flows.
After formulating the requirements for functional suitability of a new PS project, it is usually advisable to try to find ready-made PS with the required functions. However, a multitude of minor design, seemingly secondary requirements and non-standardized interfaces often make it difficult to directly apply ready-made components with suitable functions in a new project. This determines the need for careful evaluation, for new projects, of the entire set of priority design quality characteristics in a PS with similar functional suitability characteristics.
Functional suitability, in many cases, depends to the greatest extent on correctness and reliability of the PS. Significant difficulties in creating benchmarks for choosing the measures and scales of quality characteristics appear when analyzing correctness, interoperability and security — the safety of the PS.
Rightness — correctness: this is the ability of the PS to provide correct (or acceptable) results for users. The benchmarks for choosing the requirements for correctness during design can be: verified and interrelated requirements for the functions of the complex, components and program modules, as well as the rules for their structural construction, the organization of interaction and interfaces (table 11.1). These requirements, during development, must be traced from the top down to the modules and used as benchmarks when establishing the necessary correctness of the corresponding components. In the process of designing and developing modules and groups of programs, particular structural criteria of correctness are applied, which include the correctness of program structure, data processing and inter-module interfaces. Each of the particular criteria can be characterized by several methods of measuring quality and the achieved degree of program correctness: deterministically, stochastically or in real time.

Fig. 9. Quality in the life cycle of the software system
Fig. 9 shows a quality model in the PS life cycle, reflecting the interrelations of various representations of PS quality, as well as the measures (criteria – measure) for their evaluation
Thus, measures are the result of applying certain metrics. As can be seen from Fig. 9, the level of each type of quality is evaluated using its own measures, and consequently its own metrics (correspondingly, process metrics, internal, external and quality-in-
use metrics). In this figure, process refers to the process of supporting the PS life cycle, which includes, among others, the processes of development and maintenance of the PS. It can be seen from Fig. 9 that internal and external quality relate directly to the software product itself, while quality in use manifests itself in the effect of its use and depends on the external environment (the context of use). Between the types of quality characteristics and measures (and, consequently, metrics) there is a top-down influence and a bottom-up dependence.
Table 11.1 Subcharacteristics, quality attributes and properties for selecting the functional capabilities of software systems
|
I Subcharacteristics |
Quality attributes and properties |
|
Correctness |
— conformity of the requirements for PS functions to the requirements for the information system; — conformity of the requirements for functional components to the requirements for PS functions; — conformity of the program texts to the requirements for the functional components of the PS; — conformity of the object code to the source text of the programs of the functional components of the PS; — the degree of test coverage of functions and possible program execution paths |
|
Interoperability |
— with the operating system and hardware environment; — with the external environment of the system and with users; — between software components; — between components of distributed information systems |
|
Security |
— conformity to the criteria and requirements for protection against deliberate threats to the security of the PS; — conformity to the methods and means of protection against the manifestation of random defects in programs and data; — ensuring the effectiveness of operational methods of protection and recovery upon the manifestation and realization of security threats; — conformity to standards and regulatory documents for protection against various types of security threats; — ensuring equally robust protection in accordance with the severity of threats and the availability of resources for protection |
The requirements for the subcharacteristic correctness can be presented in the form of a description of two basic properties that all program components and the PS as a whole must satisfy. The first requirement consists in achieving a certain degree (%) of top-down traceability of the implementation of the requirements of the technical specification and the PS specification, with successive detailing of the descriptions of the program components down to the program texts and object code.
The second requirement consists in choosing the degree and strategy of test coverage of the structure and functions of the program components, of the set of module execution paths and of the entire software package, for the subsequent process of verification and testing, sufficient for the PS to function with the required quality and accuracy of results, under the real constraints on testing resources. A measure of the achieved correctness can be the relative number of tested functions and paths, which can be measured as a percentage of the total number of executable ones. Experience shows that in a finished, complex PS, often only about 50—70% of functions and paths turn out to be tested, and it is practically very difficult to bring this figure up to 90—95%. Indirectly, given a certain level of process automation and specialist qualification, this figure is reflected by the labor intensity and duration of testing, which directly affects the functional suitability of the PS.
Interoperability — consists in the property of the PS and its components to interact with one or more defined components of the internal and external environment (see table 11.1). When choosing and establishing, during design, the ability of software and information components to interact, it can be assessed by the volume of technological changes in the PS that need to be made when adding or excluding some function or component, when there are no changes to the operating, hardware or user environment. Related to this indicator is the correctness and uniformity of inter-module interfaces, which are determined by two kinds of links: by control and by information.
The requirements for the interoperability characteristic can be fairly fully formalized as a set of properties and approved during the process of system design, with some refinements at later stages. Their basis consists of references to regulatory documents, to the interfaces of open systems, or to de facto standards chosen for the specific project. When choosing the properties of software components that provide interoperability in a specific PS project, the amount of computing resources needed for their implementation should be evaluated. In doing so, it is important to take into account the possibility of reusing proven components and porting them to various platforms.
The unification of interface properties for interaction with the internal environment, the external environment and users must be reflected in special sections of the technological documentation and must be verifiable by the customer and/or experts against the documents and program texts. This characteristic consists in the description of properties and practically does not affect the quality of functioning of the current version of the PS. The degree of interface unification can be measured by their relative number or the volume of text (for example, as a percentage of the volume of the programs) that is subject to change with any adjustments to program interaction. A number of general concepts, methods and functions, which can be regarded as a fairly complete base and set of component properties ensuring a high degree of interoperability, are summarized in concepts, methods and standards of open systems.
Security and safety of functioning — one of the most difficult characteristics of the quality of complex PS to formalize, which occupies an exceptionally important position among all the design characteristics of software packages. The goals, purpose and functions of protection are closely related to the features of the functional suitability of each PS. The development and formation of requirements for security properties must be carried out on the basis of the needs for effective realization of the purpose and functions of the PS under various real threats. In the process of system analysis and design, potential deliberate and random threats to the functioning of the PS must be identified and the necessary level of protection of the given software package against them must be established. In accordance with this level, the customer selects and establishes a standardized category of security and safety of the PS and the necessary set of methods, properties and means of protection, taking into account the limited resources for their implementation. As a result, the formed requirements must ensure equally robust protection against real threats and the implementation of the necessary measures for monitoring and confirming the integrity and quality characteristics of the functional suitability of the software package under conditions of various threats to the safety of the PS's functioning (see section 11.5).
Comments