software Development Life Cycle (SDLC)
A software life cycle is often called as a software development life cycle and it is a particular abstraction that represents a software life cycle. The period of time that starts when a software product is conceived and ends when the product is no longer available for use.
The software development life cycle typically includes following phases
- Test phase
- Requirement phase 2. Design phase
- Implementation phase
- installation and check out phase
- Operation and maintenance phase
Build and Fix Model
Sometimes a product is constructed without
specification. Basically, this is an adhoc
approach and not well defined. It is a simple two phase model. The first phase is to write code and the next phase is to fix it. Fixing in this context may be error correction or addition of further functionality.
Waterfall Model
The waterfall model is a sequential software development model in which development is seen as following steadily downwards like a waterfall through several phases. This model maintains that one should move to next phase only when its preceding phase is complete and perfect.
Phases of development in the waterfall model are thus discrete and Uri., no jumping back and forth or overlapping between them,
Problems of Waterfall Model
- It is difficult to define all requirements at the beginning of a project.
- This model is not suitable for accomodating any change.
- A working version of the system is not seen until late in the project’s li:e. thus delaying the discovery of serious errors.
Prototype Model
Here, we first develop a working prototype of the software instead c’ developing the actual software.
Advantages of Prototyping Model
- Users are actively involved in the development.
- It provides better system to users, as users have natural tendency to change their mind in specifying requirements.
- Since, in this methodology, a working model of the system is provided to the users so that they can get a better understanding of the system being
developed.
- Errors can be detected much earlier as the system is made side by side.
- Quick user feedback is available leading to better solution.
Disadvantages of Prototyping Model
- Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans.
- This model leads to implementing and then repairing way of building system,
Iterative Enhancement Life Cycle Model
This model counters the limitation of the waterfall model and combines the benefits of both prototyping and the waterfall models. The basic idea is that the software should be developed in increments, where each increment adds some functional capability to the system until the full system is implemented. At each step extensions and design modifications can be made.
An advantage of this approach is that it can result in. better testing, since each testing each increment is likely to be easier than testing entire system like in the waterfall model.
Spiral Model
This is the recent model that has been proposed by Barry Boehm. The spiral model has many cycles. The radial dimension represents the cumulative cost incurred in accomplishing the steps done so far and the angular dimension represents the progress made in completing each cycle of spiral. The spiral model is divided into a number of framework activities, also called task regions.
Typically, there are between three to six task regions as shown in figure.
Customer Communication Task required to establish – effective communication between developer and customer.
Planning Task required to define resources, timeliness and other project related information.
Risk Analysis Task required to access both technical and management risks.
Engineering Task required to build one or more representations of the application.
construction and Release Task required to construct, test, install and provide user support (e.g., documentation and training).
Customer Evaluation Task required to obtain customer feedback based on evaluation of the software representations created during the engineering stage and implemented during the installation stage.