- Waterfall (and modified Waterfall)
- This model forms the fundation of all development models and
- Typically phases are Planning, Requirement Gathering, Requirement Analysis, Design, Implementation, Testing and Support.
- Some constraints found for Strictly Waterfall model could be: no concurrent activities is allowed; only deliver at the end of the implementation phase
- To overcome these constraints, we used Modified Waterfall model - i.e. overlapping of relevant phases
2. Unified Process (Iterative and Incremental approach)
- From developers' perspective, this approach means repeating the basic Waterfall processes in each iteration and incrementally build the system functionalities.
- From customers' perspective, this approach provides opportunities for feedback and comments in reviewing the intermediate deliveries of the system. This benefits both developers and customers as they are more involved and build confidence in developing the system.
We illustratred the iterative and incremental development approach by the example of building a Video Rental System where the features to be included are:
- Store records of all video discs
- Store records of all customer details
- Handle daily rental business (i.e. rent and return)
- Generate monthly sales report
The customer is very sure of the requirements for each of these functions..however, he needs you to deliver the functions incrementally so that he can slowly prepare the necessary records for operations in 6-months’time.
To plan for the iterative and incremental development approach, we will link these functions in sequence so that the intermediate releases are logical. The various iterations are shown in the diagram below.
So by now, you have an idea of what software development models are like. In future, you will come across more other kinds of development models but the fundations are still the same as illustrated in the above 2 models.
For practical, we had looked into Microsoft Office 2000 case study to understand how the develpment enviornment evolved for different stages of building the office product suite. Let me just highlight some of the critical factors that made their Office 2000 project successful.
- define clearly the vision of the project to allow every team members know the common goals and work towards it
- maintain good working relationships between the project managers, developers and testers
- adopt milestone driven approach to track the progress
- use daily build to incrementally link up all the source code
- conduct code review to identify defects before executing the code