Preparation of technical specifications for programming
It is the stage of analysis and specification of programs, the life cycle of software products. When compiling the terms of reference, it is required: to determine the platform of the program being developed, to select methods for solving the problem, to develop a generalized algorithm for solving a set of problems, the functional structure of the algorithm or the composition of objects, to determine the requirements for the complex of technical means of the information processing system, and the end user interface.
At this stage, a complex of the most important works is performed, namely: a data processing algorithm is developed or the composition of objects and their properties, processing methods, events that trigger processing methods are specified; the composition of the system-wide software is determined, including the basic tools; the internal structure of the software product is developed, formed by individual software modules; the choice of tools for developing software modules is carried out.
Working documentation (working draft)
At this stage, the adaptation of the basic software tools is carried out. Program modules or methods for processing objects are being developed. Autonomous and complex debugging of the software product, testing of the functionality of software modules and basic software are carried out. For complex debugging, a test case is prepared, which allows you to check the compliance of the software product capabilities with the specified specifications.
The finished software product first undergoes trial operation (trial sales market), and then is put into commercial operation (replication and distribution of the software product).
The TOR should describe the software product being developed and the process of its development in a complete and structured way, so that the architect does not have any questions about the implementation of the software.
The TOR should contain general project data, general software requirements, a detailed work plan, testing and acceptance procedures, a list of actions to be taken when the product is launched, and requirements for documentation describing the development process and results.
TOR Mandatory Aspects
The TOR should include a description of specific details: users of the software product, data processing algorithms, a list of closed and open protocols, data security requirements throughout the entire life cycle, a list of components used in the development, examples, input data and data formats for the interaction of subsystems, output data, reliability and performance.
Software design is the process of creating a software project (SW). The design goal implies the determination of the internal properties of the system and the detailing of its external (visible) properties in accordance with the requirements for the software issued by the customer (the initial conditions of the task), which, in turn, are analyzed.
The course of the software design process and its results will depend not only on the composition of the requirements, but also on the experience of the designer (developer) and on the chosen model of the design process.
After determining the requirements for the software, the developer will receive an agreed clear action plan, a schedule of terms and payments. At the same time, the developer can reduce the development time and improve its quality, and also allows for any other development nuances, for example, legal ones (transfer of copyright to the designed software).
When designing software in advance, the developer has the opportunity to:
The order of software development may differ depending on the specifics of the project, but in general it consists of the following steps:
In the process of preparing for the design, organizational issues should be resolved:
After solving organizational issues, they sign a contract, receive an advance payment and the materials necessary for work.
Designing consists of the following stages:
As a result of the design, a technical task is obtained with an unambiguous and understandable for both the customer and the performer (the project manager, programmers, testers, designers and other participants in the development process can act as the performer) illustration of the answers to the questions:
The terms and, accordingly, the cost of the project will depend on its complexity, the more difficult, the longer and more expensive the preparation for it. The development time for small projects takes from a week to a month.