Software Development Methodologies
A software development methodology can be simply stated as a
“structure imposed on the development of a software product” (Faridani, 2011). This
structure comprises of tools, procedures, techniques etc. which helps planning,
designing, validating and managing the actions being done in building up a
system. According to Rico (n. d), development methodologies date back to 1960’s
where it was 1st introduced through flowcharting method. The
following diagram gives a brief aspect at the evolution of development methods.
Figure 1-
History of development methods (Rico, n. d)
As it can be seen, the development methodologies have
considerably changed over the time. The reason for this can be stated as the
ever changing technological aspects and the requirements which become
complicated over the time.
Types of development methodologies
Use of development methodologies varies with the type of the
project that is present. It is important to choose the proper development
methodology for the project in order to be a success. If the wrong methodology
is used, the whole project can be a failure leading to unaccountable losses.
The following are evaluations of some methodologies which can be used in deciding
the appropriate methodology for use.
Structured System Analysis Development Methodology (SSADM)
According to Government CIO of Hong Kong (2012) SSADM is a
structured methodology which dates back to 1980’s. It is data driven and
consists of structural standards, technique guides and document standards. As
stated by University of West England (n. d) the development objective is to
integrate 3 views which help in completion and accuracy of the model. These 3
views are;
·
Data Flow Diagrams – shows all the data and
information used by the system
·
Entity Relationship Models – shows the way
information is stored and the relation among them
·
Entity Life Histories – shows the changes of
information within its lifetime
Government CIO of Hong Kong (2012) describes about the
different stages in SSADM methodology
1. Feasibility – assesses the business
case to develop a system and to determine the effectiveness of fulfilling
requirements by the system. Provides current system description and data flow
models, requirements catalogue, constraint lists etc.
2. Requirement Analysis
·
Investigation of current environment –
investigates completely the current environment and its problems. Provides business
activity model, user catalogue, requirement catalogue etc.
·
Business systems option – provides possible
options which will fulfill the requirements in order to help the project team
to decide on the best option
3. Requirement specification – detailed
specifications of the data and process requirements of the selected option.
Provides requirement system description, function definitions, work practice
model etc.
4. Logical systems specification
·
Technical systems option – defines possible
physical implementation to the system and helps users to select the optimum
option. Provides application style guide, sizing model etc.
·
Logical design – defines user dialogues, update
processes and enquiry processes. Provides process models and report layouts
5. Physical design – prepares the physical
data and process design. Provides optimized physical data design, program
specifications and process data interfaces
In order to carry out proper analysis and the outcome as a
whole, SSADM uses 3 key tools. Scottish Qualifications Authority (2007)
describes these 3 tools as follows;
Ø
Logical data modelling – identifies, models and
documents data requirements. Consists of logical data structures (LDS) which
represents entities and relationships
Ø
Data flow modelling – models and documents the
data flow of the system. Consists of DFDs which represent process and
functions, data stores, external entities and data flows
Ø
Entity event modelling – identifies and
documents the events influencing each entity in the sequence that they occur.
Consists of entity life histories for each entity.
Advantages and
disadvantages of SSADM
|
Advantages
|
Disadvantages
|
|
Has an intense focus on analysis and design
|
Its incomplete due to the absence of testing and development phases
|
|
Well defined techniques and documentation involved helps future changes
|
As it’s structured and sequential, it’s difficult to retreat to make
changes
|
|
Reduces error rate of IS through quality levels
|
Due to the sequential process time is wasted
|
|
Delivers the system on time
|
For some conditions it’s too large to handle
|
|
Uses common skills thus reducing costs of training of specialized
skills
|
Consistent checks cannot be carried out due to
various description methods
|
Table 1-
Advantages and Disadvantages of SSADM (ITC InfoTech, n. d)
Rational Unified Process (RUP)
Introduced by IBM, RUP is a framework that delivers best,
industry-tested practices for software and development projects. This framework
was in order to overcome the inefficiencies of the traditional/waterfall
methodology which was recognized as risky and that which idle key team members
for long time periods. RUP sets milestones to be achieved during the process
and each step is compared against these set milestones to check the progress (ITInfo,
2014).
As stated by IBM (2003) RUP can be defined as an iterative, incremental,
architecture centric and use case driven approach. It is known as iterative development
happens in repeated cycles (includes processes such as prototyping, testing,
analyzing and refining a product or processes) and allows the developer to
develop in various parts within the cycle and continue progressively through
the development phase. As development increments gradually in the development phase
it is said to be incremental. As the whole system is drawn at large and then
the components are taken individually to analyze closely derives the fact that
it is use case driven while the focus given from early stages for the
architecture of the application where working prototypes are created to
identify problems derives the fact that it is architecture centric
(Staffordshire University, 2008).
The following diagram depicts the iterative approach of RUP
Figure 2 - Iterative Approach of RUP (IBM, 2003)
RUP consists of 4 phases and 9 disciplines that are followed
in order to complete a development project successfully. The following diagram
shows how these disciplines are involved in the different phased of RUP
Figure 3 - RUP Lifecycle (Staffordshire University, 2008)
The phases of are described below in accordance with Staffordshire
University (2008) and IBM (2003)
·
Inception – this is the initial phase where
customer requirements are gathered and an initial business case is drawn using
use case diagrams, project plans and business processes. Based on these the initial
costing is done and budgets are set in order to check the feasibility of the
project.
·
Elaboration – this phase involves in mitigating
risks where lists the probable risks that can be encountered during the process
and prototypes are drawn to overcome these.
·
Construction - this is the phase where the
system is developed and coding is done. The use cases are broken to smaller
segments and development of prototypes for each part is done (beta versions)
·
Transition - here the implantation and testing
are done. The system is integrated so that the performance can be evaluated and
refined. The users of the system are given proper training and quality checks
are performed.
Advantages and disadvantages of
RUP
|
Advantages
|
Disadvantages
|
|
It’s a complete methodology that covers the entire development spectrum
|
Highly complex process which can lead to confusions of the users
|
|
As activities are done in parallel, time is saved and resources are
utilized to maximum
|
Is not suitable for small time projects as it will be costly and
complex
|
|
More user involvement throughout the project
|
There are excess number of models involved
|
|
Aims to diminish risks before facing them
|
As it only uses UML which isn’t constructive, it can worsen
inconsistencies.
|
|
Uses rich modelling language (UML)
|
|
|
Helps to accommodate the changing requirements of clients
|
|
|
Can be highly reused (codes etc.)
|
|
Table 2- Advantages and Disadvantages
of RUP (Ramsin, n. d)
Due to the identification of weaknesses of RUP, an extended
version of RUP was introduced known as EUP (Enterprise Unified Process) which
introduced 2 new disciplines and phases. It also uses modelling methods such as
DFDs along with UML (Ramsin, n. d). the following diagram depicts the EUP
disciplines and phases
Figure 4 - EUP lifecycle (Ramsin, n. d)
Agile
Agile methodology focuses minimizing risks through
development of software within short time periods (1-4 weeks) known as
iterations. Similar to mini software projects these consists of all tasks
involved in releasing the final project (analysis, design, coding, testing
etc.) and project priorities are re-evaluated at the end of the each
iterations. (ITInfo, 2014)
The agile methods are principle based known as the agile
manifesto which has been introduced by the agile alliance which is shown below
Figure 5 - Agile Manifesto (Williams, 2007)
There are different types of agile development methodologies
such as scrum, DSDM, crystal, XP
Scrum
Scrum focuses in increasing productivity through teams,
which recognizes that empirical challenges cannot be addressed in the
traditional method of process control and maximizing teams’ ability to respond
in agile ways for the challenges faced. Scrum teams are self-organized and
self-directed and are committed to a specific goal where they have the
authority and independency to determine the process of achieving it. (ITInfo,
2014).
According to Williams (2007), scrum teams produce 3 main
documents called Product Backlog (contains functionalities needed to be
developed and the defects to be fixed), Sprint Backlog (daily updated list of
features, enhancements and defects scheduled for sprints/iterations) and Sprint
Burn Down Chart (graphically displays hours remaining to complete sprints)
Williams (2007) further describes about the different roles
in a scrum team which consists about 7 members
·
Product owner – creates product backlog,
determines the next sprint and reviews system at the end of the sprint
·
Scrum master – conducts daily scrum meetings, fortifies
product goals, sprints, scrum values and practices, provides resources and engage
in development
·
Developer – a scrum team member
The scrum process is depicted in the diagram below
Figure 6 - Scrum process (Williams, 2007)
DSDM (Dynamic Systems Development Model)
This is another method that is based on the fact that nothing
is built perfectly at once and considers software development as an
investigative attempt. It revolves around 9 principles which focuses on high user
involvement, frequent delivery of products, reversible changes during development,
integrated testing throughout the cycle etc. (ITInfo, 2014)
DSDM (2014) states that it is independent of vendors and
covers the lifecycle of the project providing best practice guidance for
projects of any size or in any business area. DSDM (2014) also indicates that
techniques such as Facilitated Workshops, Modelling and Iterative Development,
MoSCow Prioritization and Time Boxing are used to develop systems.
The DSDM development process, which is comprised of 7
processes is shown below
Figure 7- DSDM process (Clifton & Dunlap, 2003)
Crystal
As stated by ITInfo (2014), this method focuses on people,
interactions, skills and communications as they are believed to be the core
effects on performance and states process as secondary. This is a family of
methods which includes crystal clear, crystal yellow, crystal orange and
crystal red and follows 2 principles;
·
Incremental cycles shouldn’t exceed 4 months
·
Reflection workshops should be held after every
delivery.
(Williams, 2007)
Advantages and
Disadvantages of agile methodology
|
Advantages
|
Disadvantages
|
|
Easily adaptive to changes
|
If the customer isn’t clear about the requirements, the whole process
will be off track
|
|
High user involvement ensuring customer satisfaction
|
More helpful for management than for developing
|
|
Less documentation required
|
Difficulty in maintaining the varying changes due to lack of
documentation for the developer
|
|
Reduces development risks due to continuous delivery of working
software
|
Wastage of resources if the working software produced constantly is not
approved
|
|
High quality software within the shortest time
|
|
Table 3- Advantages and disadvantages
of agile methodology (Sharma et al, 2012)
Rapid Application Development (RAD)
As stated by ITInfo (2014), RAD focuses on developing
applications faster and in high quality by;
·
Using focus groups for requirement gathering
·
Prototyping and user testing of designs
·
Reusing software
·
Keeping meetings and communications informal
RAD follows object oriented programming to a certain extent
where it uses languages such as C++ and Java. It uses minimal planning and
which enables faster software development and adaptability to changes (RAMSOFT,
2012). The following diagram shows RAD methodology
Figure 8- RAD process (RAMSOFT, 2012)
Advantages and disadvantages of RAD
|
Advantages
|
Disadvantages
|
|
Faster development
|
Due to time boxing, features of applications maybe lesser than other applications
|
|
Ability to measure progress
|
Lack of scalability
|
|
Changes can be easily accommodated
|
Needs highly skilled developers
|
|
Higher reusability of components
|
Complex management
|
Table 4- Advantages and Disadvantages
of RAD (TutorialsPoint, 2014)
Choosing an appropriate software development methodology
When using a development methodology to be used in a
project, it is highly important that the correct and the suitable methodology are
used in order to obtain the optimum results. Not every methodology is suitable
for any project; the usability of methodologies differs in accordance with
several factors. As stated by Geambasu et al. (2011) the following are some
facts to consider for choosing a suitable methodology
v
Nature of the project
v
Flexibility and incorporation of requirement
changes in the project
v
Obtaining functional forms of the system during
development
v
Development costs and feasibility
v
User involvement and communications between
developers and customers
v
Duration of the development
v
Constraints and drawbacks
References
Clifton,
M. and Dunlap, J. 2003. What Is DSDM? - CodeProject. [online]
Available at: http://www.codeproject.com/Articles/5097/What-Is-DSDM [Accessed:
11 Jan 2014].
DSDM.
2014. What is DSDM? | DSDM CONSORTiUM. [online] Available at:
http://www.dsdm.org/content/what-dsdm [Accessed: 11 Jan 2014].
Faridani,
H. 2011. A Guide To Selecting Software Development Methodologies.
[e-book] Newtown Square: PMI SOC Greater Toronto Information Systems Branch. Available
through:
http://www.gtislig.org/HamidFaridani_GuideToSelectingSWMethodologies_SOC_PDD_20110305.pdf
[Accessed: 10 Jan 2014].
Geambasu,
C., Jianu, I., Jianu, I. and Gavrila, A. 2011. INFLUENCE FACTORS FOR
THE CHOICE OF A SOFTWARE DEVELOPMENT METHODOLOGY. [e-book] Romania: The
Bucharest Academy of Economic Studies. Available through:
http://www.cig.ase.ro/articles/10_4_3.pdf [Accessed: 11 Jan 2014].
Government
CIO Of Honk Kong. 2012. AN INTRODUCTION TO STRUCTURED SYSTEMS ANALYSIS
& DESIGN METHODOLOGY. [e-book] Hong Kong: Office of Government Chief
Information Officer of Honk Kong. Available through:
http://www.ogcio.gov.hk/en/infrastructure/methodology/ssadm/doc/s3a_pub.pdf
[Accessed: 10 Jan 2014].
IBM.
2003. Rational Unified Process: A Best Practices Approach. [e-book]
Toronto: University of Toronto. Available through:
http://www.eecg.utoronto.ca/~jacobsen/courses/ece1770/slides/rup.pdf [Accessed:
11 Jan 2014].
ITC
Infortech. n.d. Structured Systems Analysis and Design Methodology.
[e-book] India: ITS Infortech. Available through:
http://vijaysamyal.tripod.com/SSAD.pdf [Accessed: 10 Jan 2014].
Itinfo.
2014. Software Development Methodologies. [online] Available at:
http://www.itinfo.am/eng/software-development-methodologies/ [Accessed: 11 Jan
2014].
Ramsin,
R. n.d. Integrated Object-Oriented Methodologies: RUP/USDP and EUP.
[e-book] Sharif University of Technology. Available through:
http://sharif.edu/~ramsin/index_files/sdmlecture6.pdf [Accessed: 11 Jan 2014].
RAMSOFT.
2012. Methodology - Ramsoft Consulting. [online] Available at:
http://www.ramsoft.com.au/methodology.php [Accessed: 11 Jan 2014].
Rico, D.
n.d. SHORT HISTORY OF SOFTWARE METHODS. [e-book] David Rico.
Available through: http://davidfrico.com/rico04e.pdf [Accessed: 10 Jan 2014].
Scottish Qualifications
Authority. 2007. SSADM Tools. [online] Available at:
http://www.sqa.org.uk/e-learning/SDM01CD/page_03.htm [Accessed: 10 Jan 2014].
Sharma,
S., Sarkar, D. and Gupta, D. 2012. Agile Processes and Methodologies: A
Conceptual Study. [e-book] International Journal on Computer Science and
Engineering (IJCSE). Available through:
http://www.enggjournals.com/ijcse/doc/IJCSE12-04-05-186.pdf [Accessed: 11 Jan
2014].
Staffordshire
University. 2008. RUP Summary. [online] Available at:
http://projects.staffs.ac.uk/suniwe/project/rup.html [Accessed: 11 Jan 2014].
Tutorialspoint.
2014. SDLC RAD Model. [online] Available at:
http://www.tutorialspoint.com/sdlc/sdlc_rad_model.htm [Accessed: 11 Jan 2014].
University
Of West England. n.d. SSADM. [online] Available at:
http://www.cems.uwe.ac.uk/~prawling/ssadm.htm [Accessed: 10 Jan 2014].
Williams,
L. 2007. A Survey of Agile Development Methodologies. [e-book]
North Carolina State University. Available through:
http://agile.csc.ncsu.edu/SEMaterials/AgileMethods.pdf [Accessed: 15 Jan 2014].








This comment has been removed by the author.
ReplyDeleteThis is a really informative knowledge, Thanks for posting this informative Information. Travel Portal Software
ReplyDeleteWe website designing company in Chicago, Build User & SEO Friendly websites with customized features and designs all according to the needs and requirements of our clients.
ReplyDeleteNice blog. Please add this url https://letsdreambeyond.com/ to this site too.
ReplyDelete