1 of 13

Software Development Life Cycle

Waterfall, Iterative & RAD models

2 of 13

Software Development Life Cycle

Analysis

Design

Implementation (Coding)

Testing

Maintenance

3 of 13

Analysis

Develop a specification / system requirements document.

Research using:

  • Interviews
  • Questionnaires / surveys
  • Observation of users
  • Inspecting existing documentation

4 of 13

Design

Frontend - GUI Wireframes / Mockups, Color schemes/combos, brand requirements

Processes - Data flow diagrams, Pseudocode, Flowcharts, Gantt charts, high level overview diagrams, abstraction & decomposition - breakdown down into modular parts, Structure Charts, State Transition Diagrams.

Backend - ERD, Database Schemas

5 of 13

Implementation

Coding of the project.

Assets pulled together.

Some testing also takes place - modular test, verification/validation testing.

6 of 13

Testing

Unit Testing - automated testing using predetermined test

User Acceptance Testing

Whole System Testing - server load / concurrent user tests.

7 of 13

Maintenance

  1. Mostly bug fixes and minor feature addition / improvements.

8 of 13

Waterfall Model

  • Originally adapted from manufacturing/architecture planning process.
  • Each step must be completed fully before moving on to the next step.
  • Rigid design.

Analysis

Design

Implementation

Testing

Maintenance

9 of 13

Waterfall Model

Advantages

  • Relatively straightforward to manage due to its fixed, linear design.
  • Costs and times can be accurately estimated.
  • High accountability due to distinct steps and activities.

Disadvantages

  • Slow to implement.
  • Difficult to change course after the design phase.
  • User feedback only at the analysis phase.
  • Can’t add or remove features easily.

10 of 13

Iterative

An adaption of the waterfall model that takes into account the probability that the project requirements will change as time goes on.

The focus is on building the core system and adding more features through each iteration and subsequent release.

11 of 13

Iterative Model

Advantages

  • Each cycle is easy to manage, due to the fixed and modular nature of each component.
  • Extra features can be added.
  • User feedback is taken at each iteration, rather than just at the very start of the project.
  • Can adapt and grow as the requirements change.
  • Easy to budget because you can pause/stop at the end of each mini cycle.
  • Team can upskill though each cycle.

Disadvantages

  • Still slow and expensive to implement as the full cycle needs to completed each time.
  • Harder estimate overall time and cost as the system is constantly growing.
  • Cycles may never end (but this might not be a bad thing)

12 of 13

Rapid Application Development

Focuses on rapid development through a series of prototypes, followed by a final release.

Not a big focus on initial planning.

Optimised for GUI heavy applications.

Prototyping

Phase

Analysis and quick design

Demonstrate

Refine

Develop

Cutover

Testing

13 of 13

RAD Model

Advantages

  • Very fast and cheap.
  • Software constantly evolving before release depending on customer feedback.
  • Great for GUI heavy projects due to constant user interaction.

Disadvantages

  • Not suitable for large projects where modular development is required
  • Difficult to manage due to the rapid and blurred prototyping cycle
  • Costs and Time cannot be accurately estimated.
  • Development team need to be highly skilled.
  • Can lead to feature creep or moving away from initial objectives.
  • Relies on close and heavy user/customer involvement throughout