Classes of the tasks to be solved. Determine the semantic content of the created programs.
Used methodologies. They set the features of the organizational and technical implementation of the basic stages of creating software.
Methods and programming paradigms. Styles of coding and architecture of virtual machines depend on them;
Hardware and system software. They are virtual and physical resources, thanks to which it becomes possible to use software.
The ratio of these factors forms a variety of options for the organization of development. We highlight the basic components of this process.
The main goal of software development is to create a program that can fulfill a specific task and satisfy the existing standards. The solved problem is described by a set of formal and informal (empirical) models. They determine the processes carried out in the program and the data used in this case.
The task model is a complex of specialized models that describe certain nuances of the problem being solved reflected in the created program.
A specialized model is necessary to describe the specific parameters of the phenomenon under study. It allows you to focus on private characteristics.
The created program should perform the functions that are needed to solve the problem in a certain executor (computing system). To reflect its features, the performer model is used.
The performer’s model is a set of specialized models that describe the organization and behavior of the computing system that performs the implementation of the program.
The program developed acts as a display of the model of the problem being solved to the performer model. The level of complexity of programming depends on the number of such specialized models describing the task, as well as their size and semantic difference from specialized models of the contractor.
In addition, the complexity of the development process is determined by the parameters of the performer’s model, which describes the requirements for the level of abstraction of the created program and its similarity with the architecture of the real computer.
Software development models
There are several types of software development that are based on different models. We list the 5 most common of them.
Waterfall (cascading model, or “waterfall”)
In this case, the development is performed in several stages. Moreover, each next stage can begin only after the end of the previous one. With proper use, the cascading model is the highest -speed and simple. It began to be used back in the 1970s.
Simplicity of control. The customer will always understand what the performers are currently doing, will be able to regulate the terms and budget.
The possibility of calculating the cost of the project is still at the initial stage. Each nuance is prescribed during the stage of coordination of the contract.
The lack of the need to attract very experienced testers. Experts will be able to be based on detailed technical documentation.
Testing is carried out only at the final stages of the creation of software. Based on this, if mistakes were made during the development, then they can take a lot of time and money to eliminate them. The fact is that problems will be identified after writing code and documentation.
The customer can consider the product only at the final stages of its creation. Thus, feedback is implemented only at the end of the development. It is likely that the customer will remain dissatisfied.
The model involves writing a large number of technical documentation. This reduces the speed of work, because developers have to make and coordinate many decisions.
Waterfall is designed to create projects in the medical and space areas. These areas already have a large database (including SNiPs and specifications). Thanks to these documents, you can further form the requirements for the future product.
The most important goal in the process of working with the “waterfall” is a scrupulous description of the requirements for development. It is necessary to avoid the situation in which a serious mistake will be revealed at the testing stage.
Software development models
Software development models
V-shaped model (development through testing)
This model can be called an improved version of the “waterfall”. The customer, together with the developer team, forms the requirements for the system and describes how it will be tested at each stage. The V-shaped model began to be used in the 1980s.
The minimum number of errors in the architecture of software
As when using a cascading model, if mistakes were made during the creation of architecture, it will be quite difficult to eliminate them.
Development through testing is the best option for projects that need increased reliability. Say, when creating airbags for cars or monitoring systems for patients in medical institutions.
The English word increment can be translated as “increment.” This model began to be used back in the 1930s. As an example, take the development of a social network.
The customer needs to create a social network. He has formed a detailed terms. The developers first proposed to create the main functions in the form of a page with personal information and chat. After that, testing on real users will be carried out.
The customer evaluates the product and decides to issue it. In the event that the customer and users are satisfied with the result, then further work is carried out in parts.
Developers simultaneously organize the functionality for uploading photographs, exchange of documents, listening to music and other operations, which are previously agreed with the customer. Step by step, the product is becoming more and more perfect, becoming more and more like a formed standard.