Professional programming implies that the result of labor, a software product, will be used by a certain circle of people, users. At the stage of program development, in which a group of people can participate, users are represented by the Customer.
To complete the task of creating and operating software, custom software development company divide it into certain stages:
- Statement of the problem.
- Compilation of the algorithm.
- Compilation and input of the program.
- Debugging and testing of the program.
- Maintenance of the software product.
The creation of any program begins with the statement of the problem
Initially, the task is posed in terms of a certain subject area, and it is necessary to translate it into concepts and expressions closer to programming. Since the programmer initially rarely understands thoroughly in the subject area, and the Customer in programming, setting the task can become a very difficult iterative process.
The problem statement ends with the creation of a technical task, and then an external program specification, which includes:
- Description of the source data and results (types, presentation, accuracy, limitations, etc.).
- Description of the task implemented by the program.
- The way to access the program.
- Description of possible special and emergency situations and user errors.
At this stage, the program is considered as a “black box”, for which it determines the function it performs, input and output data. How the implementation of the functions is achieved is not indicated here.
At the second stage, the algorithms specified by the specifications are developed, and the general structure of the programs is formed (designed). Usually, top-down design technology is used using the step-by-step drill-down method. That is, the enlarged algorithm is first compiled in the most general form. Then steps (blocks) are specified with a more detailed description. At this stage, the descriptions are made in a language that is understandable to humans using a specific form of recording algorithm. In programming, the graphical form of recording is widely used in the form of flow charts or graph charts.
Usually, top-down design technology is used using the step-by-step drill-down method. That is, the enlarged algorithm is first compiled in the most general form. Then steps (blocks) are specified with a more detailed description. At this stage, the descriptions are made in a language that is understandable to humans using a specific form of recording algorithm. In programming, the graphical form of recording is widely used in the form of flow charts or graph charts.
The third stage is just programming itself. At its core, the third stage is a continuation of the second, since the program also has a form of recording the algorithm with the maximum degree of detail – software.
The fourth stage involves the elimination of all errors and misunderstandings that arose in the previous stages. It is human nature to make mistakes, so a lot of attention is paid to the fourth stage.
There are a wide variety of methods and recommendations for testing and debugging. It is necessary to distinguish between these two concepts. Testing is the process by which the correct functioning of the program and compliance with all design specifications are verified. In particular, a set of tests is being created for these purposes. Debugging is the process of fixing errors in a program. So, during debugging, syntax errors, algorithmic errors, errors detected during testing, and others are corrected.
The fifth stage begins when the software product is put into operation (or sales began). It is also possible to detect errors not found at the testing stage – they must be localized and corrected. In addition, it is possible to change the properties of the program for ease of use: interface elements, some functions, etc. It would seem that the fifth stage is the easiest. But he is allocated the largest part of the time and money: up to half or more.
All these stages of development and maintenance of the software product, including the completion of maintenance support, make up the life cycle of the program.