Chapter 4

Software Development Model

Software Development Model

Software Development Life Cycle is a systematic process of developing any software system. It is a part of software engineering. The manage the level of complexity, a number of SDLC models have been developed.

1. Waterfall Model

It is the simplest software development life cycle model, which states that the phases are organized in a linear order. In this model, the result of each phase is one or more documents that are approved and the following phase should not start until the previous phase has finished these stages and fed information to each other. This model is the parent of the incremental model and is not used nowadays.

Advantages

  • Allows for departmentalization and managerial control
  • Each phase of development proceeds in strict order, without any overlapping or iterative steps.

Disadvantages

  • It does not allow for much reflection or revision
  • Once an application is in the testing phase, it is very difficult to go back and change something.

2. Prototyping Model

This model begins with requirement gathering. Developer and customer meet and define the overall objectives of the software, identify whatever requirements are known, and identify the areas which require further definition. In many instances, the user only has a general view of what is expected from the software product.
This type of model is employed when it is very difficult to obtain exact requirements from the customer. While making the model, the user keeps giving feedbacks from time to time, and based on it, a prototype is made. A completely build sample model is shown to the user and based on his feedback; the SRS (System Requirements Specifications) document is prepared.

Advantages

  • When a prototype is shown to the user, he/she gets a proper clarity and ‘feel’ of the functionality of the software and he can suggest changes and modifications.
  • Feedback from the customer is received periodically and the changes do not come as a last-minute surprise.
  • Errors can be detected much earlier as the system is made side by side.

Disadvantages

  • Prototyping is usually at the cost of the developer. So, it should be done using minimal resources.
  • Once we get proper requirements from the client after showing the prototype model, it may be of no use. This is why; sometimes we refer to the prototype as a “Throw-away” prototype.

3.Agile Model

This model is one of the simplest and most effective processes to turn a vision for a business need into software solutions. Agile is a term used to describe software development approaches that employ continual planning, learning, improvement, team collaboration, evolutionary development, and early delivery. After developing this model software developers can make easy and rapid project achievements.
There are six stages in the agile development approach:

  • Planning
  • Requirements Analysis
  • Design
  • Development
  • Unit Testing
  • Deployment

Advantages

  • The customers are satisfied because after every step working feature of the software is delivered to them.
  • Customers can have a look of the working feature which fulfilled their expectations.
  • The daily interactions are required between the consumer and the developers.

Disadvantages

  • The documentation is less.
  • Because of the ever-evolving features, there is always a risk of the ever-lasting project.