Depending on the subject area and tasks assigned to the developers, the development of programs can be a somewhat complicated, step-by-step process in which a large number of participants and a variety of means are involved. To determine when and in what cases what tools are used, we will outline the main stages of software development. The following steps of progress are of the highest interest for the problems under consideration:
- Designing the application.
- Implementation of application code.
- Testing the application.
Here, deliberately omitted the steps associated with writing a technical assignment, scheduling time, budget, etc. The reason for this is that at these stages, with rare exceptions, there is practically no specific development tools used.
Application Design Tools
At the design stage of the application, depending on the complexity of the software product being developed, which directly depends on the requirements, the following design tasks are performed:
Development of the architecture of the future software.
Development of devices for the main components of software.
Development of layouts of user interfaces.
The result of the design is usually a “Software Design Document” or a “Software Architecture Document.” The task “Analysis of requirements” is generally performed using methods of epistemology (analysis and synthesis), taking into account the expert experience of the designer.
The result of the study is usually a meaningful or formalized model of the program operation process. Depending on the complexity of the process, different methods and tools can be used to construct these models. In general, the following notations are usually used to describe models (in brackets are the software tools that can be used to obtain models):
- BPMN (Vision 2003 + BPMN, AquaLogic BPMN, Eclipse, Sybase Power Designer).
- Flowcharts (Vision 2003 and many others).
Models, Mat-Models, Etc.
Sometimes, when the software product being developed is designed to automate any complex activity, the task of the Analysis (Modeling) is performed before the technical specifications for the future product are compiled. The results of the analysis make it possible to formulate reasonable requirements for one or another function of the developed program and to calculate the real benefit from the implementation of the designed product. Moreover, it turns out differently that, based on the results of the analysis, the initial goals and tasks of automation change radically, or, based on the results of the evaluation of the effectiveness of development and implementation, the decision is made not to develop the product.