Software Design and Development Methodologies

Software Design and Development Methodologies

Waterfall Model

  • The Waterfall Model is a linear sequential life cycle model that is very easy to understand and use.
  • Each phase must be completed before the next phase can begin. Once a phase is completed, moving back to a previous phase is not usually allowed.
  • This method is best suited where requirements are very clear and there are no uncertainties.

Agile Development

  • Agile Development is an iterative approach to software delivery that builds software incrementally from the start of the project, instead of all at once.
  • It encourages flexible responses to change and a high level of customer involvement throughout.
  • Key principles include: delivering working software frequently, welcoming changing requirements, and regular adaptation to changing circumstances.

Scrum

  • Scrum is a subset of Agile, focused on improving the team’s efficiency and effectiveness.
  • In essence, Scrum generates a self-organising, cross-functional team. The team is self-organising because there is no overall team leader who would decide which person will do which task or how a problem will be solved.
  • The tasks are usually divided into work units, delivered in time boxes of short duration (less than a month, often just a week or two).

Spiral Model

  • The Spiral Model is a type of iterative software development model which is generally implemented in high risk projects.
  • It follows a step-by-step approach, like the waterfall model, but with more emphasis on risk analysis.
  • It has four phases: Planning, Risk Analysis, Engineering and Evaluation, which are iteratively followed one after another in order - this looks like a spiral, hence its name.

V-Model

  • The V-Model is an extension of the waterfall model, it is based on association of a testing phase for each corresponding development phase.
  • This means for each phase in the development cycle there is a directly associated testing phase.
  • This is a highly disciplined model and phases are completed one at a time, not moving to next phase until the previous one is completed.

Rapid Application Development (RAD)

  • Rapid Application Development (RAD) prioritises rapid prototyping and quick feedback over long development and testing cycles.
  • The methodology involves iterative development and the construction of prototypes.
  • RAD enables organisations to develop high-quality systems very quickly.

Understanding these methodologies is essential for efficient and effective software development. It’s important to assess project needs, team skills, and system requirements when choosing a methodology to use.