MEDIUM-TERM PLANNING INFORMATION TECHNOLOGY FOR QUALITY IMPROVMENT OF THE SOFTWARE DEVELOPMENT PROCESS BASED ON THE CMMI MODEL

Розглядається технологія для вирішення задачі середньострокового планування (динамічна постановка задачі) покращення якості процесу розробки програмного забезпечення на основі моделі CMMI. Розглянуто тестовий приклад для другого рівня зрілості організації розробника програмного забезпечення. Плановий період складається з трьох підперіодів, а цільовий профайл може містити довільну кількість практик. Проведено аналіз отриманих результатів, які є вихідною інформацією для статичної постановки задачі. Ключові слова: динамічна постановка задачі, розробка програмного забезпечення, модель CMMI, другий рівень зрілості, цільовий профайл.

Introduction.The qualitative characteristics of software are paid more and more attention all over the world.The competitiveness of the software company depends directly on the quality of the software development process, and for this reason, software quality assurance issues are one of the top priorities for such companies.The issues related to the organization and improvement of the software development process, the management of the developers team, the development, and implementation of software tools to support the software development lifecycle fall into the field of software engineering.Software development process has a hierarchical architecture, including a number of life cycle processes of the software system.At present, there are various standards governing the sets of lifecycle process of software systems, such as ISO-12207, CMMI [1,2] and other.The purpose of these standards is to ensure the end product to meet market requirements and to satisfy end users needs.The flexibility of the continuous CMMI model [3] allows the developer company to evaluate the most important stages of the software development process, as well as the maturity level of the entire software development process.
CMMI model was formalized in work [4].Also, mathematical dynamic model and algorithm for planning the improvement of the software development process quality were developed.
Studies have shown that the problem is NP-complex.Therefore, relevant studies are devoted to the further revision of the model and algorithm according to the adequacy of the software and the speed of work, as well as designing and developing an information system for solving the problem of medium-term planning directly.
Problem statement.The task of planning for the quality improvement of the software development process can be presented by a rolling planning problem, which involves the synthesis of static and dynamic models (models of current and medium-term planning).In work [5] static models of planning for the quality improvement of the software development process were developed on the basis of the CMMI maturity model, the initial information for which is the result of solving the dynamic problem.
In a dynamic problem description statement, the task is to determine the first choice of the software development process progress within a planned [0, T] to a higher quality level, where T is the duration of the planned period.According to the dynamic problem statement, quality is characterized by alternative options for the progress of the software development process to a higher level of maturity in accordance with the CMMI model, as well as strategies for using different types of resources to achieve a certain level of maturity.
The aim of the research is to develop an information technology of planning for the quality improvement of software development process based on a dynamic model.
Model and algorithm for medium-term planning under dynamic problem statement.During the development of information technology for solving the problem of medium-term planning to improve the quality of the software development process, a mathematical model was developed in work [6].
A model analysis of medium term planning for improving the quality of the software development process by the algorithms which can be used in the problem solution showed the relevance of the time-series technique.
This method features a multi-step process, at each t-th step of which many uncompetitive options are ignored.
An algorithm "Kiev broom" was implemented by Ukrainian scientists V. S. Mikhalevich and N. Z. Shor on the basis of the time-series technique.The idea of this algorithm was used in the work to solve the problem of quality management process of software development.When using this algorithm for real data it has been shown that modern computers can not cope with the task since it is NP-complex.Therefore, there was a need to improve it in order to reduce the time for the task implementation.It was suggested to formulate and solve individual optimization problems in the course of the works of the "Kiev broom" algorithm.
Quality management technology of the software development process.When designing the system, the diagram of the processes IDEF0 (Fig. 1) was used as the basis.This diagram describes the high-level representation of the quality management of the software development process based on the maturity model.

Fig. 1 -Process diagram
According to the technology of solving the problem, the first business process A1 determines the current state of the software development process.As an input data, the initial state of the software development process of the investigated software company is proposed.The software development process is evaluated according to the CMMI model.At the same time, the evaluation is carried out at the level of the initial state of the individual practices, which are defined by such a concept as the "level of capability" [7] in the range from zero to three.
In this work, the experts from the investigated software company who assessed the "level of capability" for practices were involved assess the current state of the software development process and the performance testing of the developed technology.The processing of this information was carried out by analysts-individuals who formulate solutions based on the methodology of collective expert evaluation [8].The result of the business process A1 is the current state of the software development process.
Business process A2 is intended for the formation of a target profile, which defines the software company goals to improve the quality of the software development process.These goals are set by the decision-maker basing on the financial constraints, as well as the expert assessments of the required resources to achieve the goals set separately for each practice of the focus areas.
The aforementioned dynamic model and algorithm for quality management of software development process based on the model of maturity of CMMI are used for the formation of an optimal plan for the improvement of the software development process (business processes A3-A5).The initial state of the software development process, the target profile, the necessary financial resources for each practice belonging to the target profile; and the restrictions on financial resources that can be used in this planning period are used as input data.
The business process A3 is intended to form the sets of valid options of the state of the software development process on each considered scheduled sub period, taking into account the constraints on the financial resources allocated in each planning sub period, these resources can be carried over to the next (t+1) sub period, if they are not spent on t-th sub period.
Business processes A4, A5 implement the dynamic model of a task, which is an additive target function with financial constraints and variables that determine the level of capabilities for individual practices that are part of the target profile.An algorithm for sequential analysis of options is used for the formation of the optimal plan of the software development process improvement program.At each step of this algorithm, uncompetitive options for the improvement of the software development process are rejected.In the course of the quality management technology for software development process, an optimal trajectory for the software development process is formed.
Tools for information technology building.To construct an information system that solves the investigated problem, it was necessary to transform the mathematical model and algorithms of its processing into the corresponding components of the software.
The main programming language was C #, which is an object-oriented, strongly typed programming language for the .NET platform, it was developed by Anders Gailsberg, Scott Wiltamut, and Peter Gold, under the auspices of Microsoft Research.
Most of the calculations necessary for solving the problem are related to the solution of complex optimization problems, therefore all mathematical operations of the information system are performed using the Microsoft Solver Foundation 3.1 packagea set of development tools for mathematical programming, modeling and solving optimization problems.
To construct the information system, an appropriate data model was created.This data model accurately describes the mathematical and algorithmic models which were used in this work.ERWin Modeler [9] is a tool for designing and documenting databases.ERWin Modeler allows to create, document, and maintain databases.This tool was used as a tool for designing the necessary data model.
MS SQL Server served for storing and processing the data.The main advantages of this tool is high-speed of data processing, as well as the presence of built-in debugging capabilities of data models.
The Microsoft Visual Studio 2015 product was taken as an integrated development environment (IDE).
When designing the information system, 3-level "client-server" architecture with a dedicated application server was selected as an architecture model of the software system.This architecture model has another node called Application Server, which hosts the entire business logic, resulting in the database server being unloaded and only used for the data accessing.This model was chosen basing on the following benefits: 1) maximum scalability; 2) unloading the database server, opportunity to increase the performance of the entire system by configuring the application server according to the tasks that are being solved.
Fig. 2 shows the component deployment diagram within the client-server architecture with a dedicated application server.This diagram shows the physical relationships between software and hardware components of the system.

Fig. 2 -Component diagram of the information system
We will briefly consider the placement diagram of the software system main components.Within the database server (Database: MS SQL) Application Database component that encapsulates the database and all the necessary configuration components has been dedicated.The application server (IIS Web Server) includes the following components required for the system:  Entity Framework -ORM library;  Data Levelthis component works with the input data;  MS Solver Foundationlibrary for mathematical calculations;  Logic Componenta component that contains the basic mathematical and algorithmic logic of the software system;  Data View Model і Model Mappinginfrastructure-level components that act as a middleware between business logic and the presentation level of the system (Web API component). The Client WorkStation includes two components:  JS Frameworksa set of tools for implementing a part of business logic on the client side;  Browsercustomer-side software, which aims to provide the user with the ability to interact with resources that are located on a web server using a graphical user interface.Software testing.For a test example, the software development process of an "N" IT company is considered.The input data, as well as the target profile of the software second level of maturity and the target one at the end of the planning period are determined basing on experts' assessments.The "Required Resources" column shows funding needed to move from zero/ first to the second/third level of capability.The decision of the dynamic task of forming a plan for improving the software development process is considered in the planning period, consisting of three sub periods.As it can be seen from the given data, 32200 c.u. of resources are needed for the full transfer of all practices to the required level.For this example, 25700 c.u. of resources (~80 %) were allocated for all sub periods.The investigated period was divided into 3 sub periods for each of them 8000, 10 000 and 7700 units of resources were allocated, respectively.Based on the above initial data, the following results were obtained.As a result of the first sub period, the following practices were promoted: PMC_1_1; SAM_2_5; SAM_2_6; SAM_1_1.
Four practices have moved to a new level of capability, two of them (SAM_1_1, SAM_2_6) have moved from 0 to 2 level of capability.It cost 7600 c.u. of resources, 400 c.u. were moved to the next sub period.
As a result of the second sub period, the following practices were promoted: REQM_1_4; SAM_2_4; SAM_1_2; SAM_1_3.
Four practices have moved to a new level of capability, two of them (SAM_2_4, SAM_1_2) have moved from 0 to 2 level of capability, 10400 c.u. of resources were spent, 700 c.u. were moved to the next sub period.
As a result of the third sub period, the following practices were promoted: REQM_1_5; PMC_1_2.
Two practices have moved to a new level of capability, 8400 c.u. of resources were spent, 1900 c.u. of resources remained.Figure 3 depicts a histogram showing the process of raising the level of capability for specified practices during the three test sub periods.
Conclusions.The developed information technology solves the problem of medium-term planning of improving the quality of the software development process based on the CMMI model and forms a rational plan for developing the software development process.This allows within the defined planning period, under conditions of limited resources, to determine precisely those practices and focus areas of the CMMI model for which it is necessary to increase the level of capability.The mentioned above technology compared with the system [10] is characterized by higher productivity by solving individual optimization tasks at each step of the Вісник Національного технічного університету «ХПІ».2017.№ 51 (1272) Fig. 3 -Results of calculations for the category "Project Management" algorithm to identify uncompetitive options for the improvement of the software development process.This question is particularly relevant because the problem under consideration is NP-complete.The results obtained in the first sub period are the input data of the information system that solves the static problem.
The purpose of further research is to test the developed information system on full-scale data volumes, as well as to study the information system in terms of the problem solution speed when increasing its dimensionality.
As part of the further research, it is planned to design and develop an information system that will integrate the developed system and the system for solving static problems.

Table 1 -
35development process, are shown in Table1.The initial and target state of practice is measured in the "level of capability" scale in the range from zero to three.In our case, the initial state of the practice of local areas for the The target profile of the software development process of an "N" IT company.The software development process target profile Вісник Національного технічного університету «ХПІ».2017.№51(1272)