Fig. 1.1. Waterfall model of software development.
Organization of development is based on forecasting the entire process of creating a software product, due to which methodologies of this kind are called forecasting. In this case, the dependence of each subsequent stage on the results of the previous one arises. Moreover, this dependence increases with the transition from the early stages of development to later ones. Accordingly, even a small mistake at the initial stages of the project or unforeseen adjustments to the requirements can cause a change in the entire development plan, and this, in turn, entails large time and material costs associated with the need to return a few steps back and repeat the already completed stages development. Thus, monitoring the development process through detailed planning and predicting its progress leads to the inability to quickly and effectively respond to changing requirements.
In response to this problem, in the second half of the 90s of the 20th century a number of methods and technologies appeared that have so far been united under the general name “flexible software development methodologies.
Main principles and ideas that combine all existing flexible software development methodologies are outlined in a document known as the Flexible Technology Manifesto. The purpose and basic principle is the readiness of the software system to make changes at any stage of work while maintaining full control over the development process.
In other words, the goal of flexible methodologies is to reduce the cost of making changes to a software product at all stages of development, ideally (pic. 1.2) - it should not depend on the time and stage of development.
Forecasting methodologies
const Flexible methodologies
Time
Fig. 1.2. Conditional curves of the cost of making changes to the software product over time
This combination of flexibility and manageability is achieved through the use of a whole range of interconnected techniques that regulate various aspects of the development process. In the context of this work, pass is most interested in methods that are directly related to the creation of program code. Among such technical (programming) methods, the central place is taken by the approach called Test-Driven Development (TDD). It is this method that ensures compliance of the program code with the requirements and can form the basis of the methodology for the development and implementation of simulation models of complex systems.
Do'stlaringiz bilan baham: |