The purpose of the process is to create executable software blocks (modules) that are created on the basis of an architectural project. When implementing the process, the performer develops documentation for each program module and database, procedures and data for module and database testing. In this process also the modules are tested by the executor, ensuring that they satisfy the requirements.
During testing, a log is kept testing, fixing information about relevant works (when it is carried out, which test is carried out, by whom, etc.). Unexpected or incorrect test results may be recorded in a special failure reporting subsystem. The contractor must evaluate the program code and test results, taking into account the following criteria:
1) traceability to requirements and software design elements;
2) external consistency with the requirements and architectural project for software modules;
3) test coverage of modules;
4) compliance with coding methods and standards used;
5) feasibility of operation and maintenance.
As a result of the successful implementation of the process, verification criterion for all modules against requirements, development of software modules, testing.
Software integration process
During the software integration process integration of functional software modules is carried out, creation of integrated program elements, consistent with software design that demonstrate that functional and non-functional software requirements means are satisfied.
For each software module, the implementer must develop an integration plan to combine software modules. The plan should include testing requirements, data for testing, duties and work schedules. Also the performer needs to combine program modules into in accordance with the integration plan and develop a set of tests. The results of integration and testing should be formalized documented. Any change in the user interface and functionality is accompanied by an update of the user documentation as needed.
Qualification Testing Process software tool
Purpose of the software proficiency testing process means is to confirm that the completed the software product satisfies the specified requirements. At as part of the process, the performer must conduct a qualification testing (as required). The contractor needs evaluate the project, code, tests and their results, and user documentation, considering the following criteria:
1) test coverage of the software requirement;
2) compliance with the expected results;
3) feasibility of operation and maintenance.
After successful testing, the software product is ready for transfer to the customer. Then the processes come into play software tool support.
The reference model described in the standard does not represent a specific approach to the implementation of the process, as well as does not define system (software) life cycle model, methodology or technology. Depending on the adopted methodology software development or life cycle model in a particular company is used different set of processes. The following topic covers the main models and methodologies of software development.
Software development models
The life process of any system or software product can be described by a life cycle model consisting of stages. Models can be used to represent everything life cycle from conception to discontinuation or for representation of the part of the life cycle corresponding to the current project. The life cycle model is represented as sequences of steps that may overlap and/or be repeated cyclically according to the scope, size, complexity, need for change and opportunity. Each stage is described by a goal and output statement.
Processes and life cycle activities are selected and executed at these stages to fully meet the purpose and results of each stage. Different organizations may use different stages in within the life cycle. However, each stage is implemented organization responsible for this stage, with the appropriate consideration of the information available in the life cycle plans and decisions made in previous stages. Similar way the organization responsible for the current stage maintains records decisions made and a record of assumptions relating to subsequent stages of a given life cycle.
Software life cycle models
The software life cycle model is understood as the structure, determining the sequence of execution and relationships processes, actions and tasks throughout the life cycle. The life cycle model depends on specifications, scope and complexity of the project and specification of conditions, in which the system is created and operates. The software lifecycle model includes includes: stages, results of work at each stage, key events – points of completion of work and decision-making.
The life cycle model of any particular software determines the nature of its process. creation, which is a collection of ordered in time, interconnected and combined in the stage of work, the implementation which are necessary and sufficient to create software that meets given requirements. A stage is a part of a process. Software development, limited by a certain time frame and ending with the release of a specific product (models, software components, documentation) determined by the given requirements for this stage. At each stage can be performed several processes defined in the GOST R ISO/IEC standard 12207-2010, and vice versa, the same process can run on various stages. The relationship between stages and processes is also determined by the software life cycle model used. Next, consider the models and their classifications.
The first model to become widely known and really structuring the development process is cascade (waterfall) model. Each stage of the waterfall model ends up with some results that serve in as input for the next stage. Requirements to software under development, determined at the stage of formation requirements are strictly documented in the form of terms of reference and fixed for the duration of the project.
The advantages of using the waterfall model are the following:
- at each stage, a complete set of design documentation that meets the criteria for completeness and consistency;
- stages of work performed in a logical successor allow plan the timing of the completion of all work and the corresponding expenses.
The waterfall model can be used to create software for which at the very beginning of development can be quite accurately and completely formulate all requirements. At the same time, this approach has a number of shortcomings, caused primarily by the fact that the real process software development has never fully fit into such a rigid scheme.
Shortly after birth the cascade model was finalized by Winst Royce, taking into account the interdependence of the stages and the need to return to the previous steps, which may be caused, for example, by incomplete requirements or errors in the formation of the task. The software development process is as a rule, iterative nature: the results of the next stage are often cause changes in design decisions developed for more early stages. Thus, there is a constant need for return to previous stages and clarification or revision earlier decisions made. As a result, the real process of creating software takes the form shown in the figure.The most common result of a cascade trip to software development is a late failure. It seems that the projects run normally, but only until the jobs enter into the final stage, and then it turns out that consumers are dissatisfied created product