The software life cycle is defined as the period of time that starts from the moment a decision is made about the need for software and ends at the moment of its complete withdrawal from operation. Main the normative document regulating the composition of the software life cycle is international standard ISO / IEC 12207: 2008 “System and software engineering – Software life cycle processes”. This standard, using established terminology, establishes a common structure of processes life cycle of software, which can be navigate the software industry.
The standard defines processes, activities and tasks that are used in the acquisition of a software product or service, as well as upon delivery, development, intended use, maintenance and termination application of software products. (its Russian counterpart GOST R ISO/IEC 12207-2010 «Information technology. Systemic and software engineering. Software lifecycle processes funds»). Each process (a process is a set of interrelated action that transforms some input into output) divided into a set of actions, each action into a set of tasks.
At in accordance with GOST R ISO / IEC 12207-2010 various types activities that can be performed during the life cycle software systems into seven process groups:
1) agreement processes – 2;
2) processes of organizational support of the project – 5;
3) project processes – 7;
4) technical processes – 11;
5) software implementation processes – 7;
6) software support processes – 8;
7) software reuse processes – 3.
Each of the life cycle processes within these groups described in terms of purpose and desired outcomes, a list of actions and tasks that need to be performed to achieve these results. As part of the course “Software Development Technology” the group of processes describing the software implementation.
Software Implementation Processes
Software Implementation Processes are used to creation of a specific element of the system (component part), implemented as software. These processes transform given characteristics of behavior, interfaces and restrictions on implementation into actions, the result of which is a systemic an element that satisfies the requirements arising from the system requirements.
Note. In the course “Technology of software development software” software tool is not considered as an integral part of part of the system, but as an independent stand-alone software, consisting of software modules.
During the implementation of the project, it is necessary to carry out the following activities in accordance with those accepted in the organization policies and procedures regarding the implementation process software tools:
1) If not specified in the contract, the developer must determine or choose a life cycle model that matches the scope application, size and complexity of the project. Life cycle model should contain the stages, goals and outputs of each stage. Kinds activities and tasks of the software implementation process should be selected and reflected in the life cycle model. These activities and tasks may overlap or interact with each other, may run iteratively or recursively. Ideally the activities and tasks under consideration are carried out and solved using a certain organizational model of life cycle.
2) The contractor must:
* document the results in accordance with the process program documentation management;
* transfer the results to the management process software configuration and perform change management in accordance with it;
* documenting, problem solving and filming inconsistencies found in software products and tasks in accordance with the problem solving process in software tools;
* support processes in accordance with contract;
* establish baselines and connect elements configuration within the time period determined by the acquiring party and supplier.
3) The contractor must select, adapt and apply those standards, methods, tools and programming languages (if not stipulated in the contract), which are documented, are suitable and established by the organization to carry out activities within the implementation process of software tools and supporting processes.
4) The contractor must develop action plans software implementation process. Plans should include specific standards, methods, tools, actions and responsibilities associated with the development and qualification of all requirements, including safety and security. If necessary, they can develop separate plans. These plans should documented and implemented.
5) When developing or maintaining software products Items not supplied may be used. However, it should ensure that the operation and maintenance of the supplied software products after delivery to the acquirer depends on such elements; in other words, these elements should also be considered as supplied.
The result of the process is the creation of a software component part that satisfies both the requirements for architectural solutions, which is confirmed by verification, and the requirements rights holders, which is confirmed through validation.
As a result of the successful implementation of the implementation process software tools:
1) the implementation strategy is determined;
2) restrictions on the technology of project implementation are determined;
3) a software component is being produced;
4) the software component is packaged and stored in in accordance with the supply agreement.
The software development process includes a few special lower level processes:
* software requirements analysis process;
* software architecture design process;
* the process of detailed software design;
* software design process;
* the process of integration of software tools;
* the process of qualification testing of software funds.
Software requirements analysis process
Purpose of the software requirements analysis process is to establish and document requirements for software. As a result of the successful implementation process, a list of requirements for functional modules is determined software and their interfaces are prioritized implementation of requirements, software requirements are estimated at cost, work schedules and technical impacts. Details about the methods identification and types of requirements will be described in the third topic of the current document.
Design (Detailed Design) Processes software architectures
The purpose of the process is to provide a project for software tools that are implemented and can be tested regarding the requirements formulated during the analysis process requirements. As part of the process, the performer performs transforming the identified requirements into an architecture that describes the top level of the software structure and identifies software components.
The contractor must develop a project that describes external and internal interfaces, structure and method of access to the database (DB), also the executor prepares preliminary versions of user documentation and pre-test requirements.
As a result of the successful implementation of the process, a software architecture design, internal and external interfaces, a correspondence is established between requirements and software design. Methods in detail software design is described in the fourth topic.