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.
hi,
ReplyDeleteThanks. 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.