Monday, January 20, 2014

Software Development Methodologies

Software projects are, said to have a high failure rate when it comes to cost, time and scope. To overcome the previous statement there are certain methodologies that are, followed by software development teams.
  • The following are some recognized software development methodologies:
  • SDLC – Software Development Life Cycle (Waterfall)
  • SSADM – Structured System Analysis and Design Methodology
  • RUP – Rational Unified Process
  • Agile Methodology
  • Scrum Methodology

SDLC (Waterfall)

Software Development Life Cycle has several methodologies. However, the focus is on the waterfall methodology, one of the first applied by software development teams to manage projects.

The following diagram shows the steps involves in the Waterfall Methodology:


Source: tutorialspoint.com (2014)
This model is ideal for small projects, simple and easy to use too. On the contrary, it is not flexible for large project, as the name waterfall suggests that once a stage is complete, there is no going back.

SSADM

Structured System Analysis and Design Methodology is a waterfall method that is heavy mostly on the analysis and design phases of a project.  

Rational Unified Process

      RUP is a software development method, developed as a guide for Unified Modeling Language (Rational,       1998). UML is a standard designing tool used by developers, it includes use case diagrams,      activity         diagrams, sequence diagrams, etc.


      RUP divides the software lifecycle into four phases:
  • Inception
  • Elaboration
  • Construction
  • Transaction
The following shows the structure of the RUP methodology:


Source: ibm.com (2004) Adapted from: http: //www-01.ibm.com/software/rational/rup/

The advantage of using RUP is ability to break down a process into smaller iteration. These iterations result in a release of a tangible working product. Compared to other methodologies RUP has a tangible product within few months into development unlike waiting till the very end for the product.

    Agile Software Development Methodology

Sequential, software development was, criticized by Dr. Winston Royce in 1970, stating that software is not produced through assembly lines (agilemethodology.org, 2008). This implies that is quite similar to RUP when it comes to iterative development. Agile is usually, referred to “iterative” and “incremental”.

  

Source: tutorialspoint.com (2012) Adapted from: http://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm

The diagram reflects the setup of the agile methodology, which supports development by completing all software development phases as iterations. Allowing teams to make changes and add any new requirements that were not, recognized during analysis.

Personally, out of the four methodologies described above, I prefer the RUP methodology mainly because of the ability to iterative development allowing completion of software by developing module by module.

Moreover, RUP was first, introduced to me for the module Object Oriented Methods. It was interesting and I applied this methodology for my project management course assignment, giving me thorough knowledge as to how this methodology works. I will be using RUP as a software development methodology for the final year project.

1 comment:

  1. hi,
    Thanks. Now a days Software is a part of our daily life activities. We depend on software to complete our work. Most of Software Development Methodologies at affordable cost.

    ReplyDelete