to eliminate such problems that you need the stage of developing requirements. It is necessary to specify the needs of the customer as much as possible and identify his hidden needs. In addition, at this stage, the contradictions between the requirements are eliminated, a holistic technical solution is created and an analysis of its implementation is made.
The specification of requirements often entails the adjustment of the concept of the project. However, in some situations it is not possible to find an effective technical solution, and then the project is either closed or frozen until favorable conditions appear.
If the solution was able to find, then the contractor passes to the stage of developing the architecture of the future system. The main task of this stage is to determine the upper level of logical and physical architecture, which is able to completely close the needs of the customer. In the process of developing architecture, the review and clarification of the concept, requirements and preliminary technical solutions is performed. This allows you to reduce the most pronounced risks.
At the end of the design of architecture, you should once again check the project in order to find out whether the contractor can implement the concept. At the stage of architecture development, it is recommended to remove unnecessary and bulky functions. Such optimization often helps to fit into the optimal parameters of the project.
However, sometimes a much more serious cutting of the functional component of the future system is necessary. But even if the situation in which work on the project will be suspended, it is still better than continuing the development.
Stages of software development
Stages of software development
If the result was positive, and a favorable architecture of the system was formed, the implementation and delivery stage occurs. In this case, implementation can be performed in both one and several stages. If we are talking about a small project, then you can limit yourself to only one step. But when the project is large -scale, the subsystems within the developed system become more dependent.
In such cases, the implementation is divided into a certain number of stages. Moreover, this is done in such a way that, upon completion of each stage, the developers receive the result ready to supply. The most important functions should be developed at the initial stages, and less important – in the subsequent stages. Thanks to this approach, the most dangerous errors for the system will be eliminated at the very beginning, which will increase the stability of the system base.
The next stage is the experimental operation
The main task of this stage is to check the quality of the system in real conditions. The check most often consists of measuring quantitative metrics, with which the product quality is determined. First, functional indicators of quality are tested, and after that they are non -functional. If any discrepancies are identified during the audit, then the contractor makes adjustments to the system code.
When the system manages to correctly configure, it is commissioned. Typically, the performer accompanies the product he developed for some time (at least during the warranty period). If certain errors are found, the system is adjusted. Users and service personnel of the customer should be given timely support in the form of consultations.
Sooner or later, the system will lose its relevance to the customer. From this moment, we can talk about the stage of its decommissioning. However, for the software that is being developed to order, this stage may not occur. The fact is that the customer, based on his exclusive rights, may not allow the contractor to further support and configure the system before the loss of its relevance.
The final stage of any project is the completion
At this stage, the results are analyzed and adjustments to the process of developing software based on the experience gained. In addition, the developers’ knowledge base is replenished with new solutions that have proven their effectiveness, as well as various warnings and new components. In the future, all this should be applied in the development of other projects.
Auxiliary processes in the development of
As part of the development of software, several auxiliary processes can be distinguished.
Documentation. The contractor forms the documentation and user manuals for the created software product, both during the development and after. Such documents allow programmers to understand structure and code even after a long time after their creation. At the same time, documentation helps users interact with the system.
Configuration management. We are talking about the management of the sets of the created components of the software, as well as to manage versions of the software product.
Quality assurance. This process is necessary to ensure compliance with the PP with preliminary requirements for the development and norms of the organization of the Contractor and the Customer.
Verification. Allows you to detect errors that were made in the development of software. In addition, due to verification, the inconsistencies between the software developed and the formed architecture can be identified.
Certification. It is necessary to confirm the compliance of the received standards. In other words, the weekend must have an error that satisfies all the requirements and norms.
Joint assessment. This process is aimed at monitoring and checking the state of personnel and the created paragraphs. It is carried out by the customer and the contractor throughout the project.
Audit. It is necessary for an independent assessment of the current situation, the characteristics of the project, documentation and various reports. This process allows you to compare the real state of affairs with the contract and documents in which the requirements are spelled out. The audit can be carried out both one and two sides.
Problem resolution. Errors that were found at the stages of control and evaluation are eliminated.
Factors affecting the development of
We list the factors that directly affect the result of development by: