Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Criteria for Selecting Software Development

Models

Ibrahim Jaluta
Mohamed A. Ben-Zahia
Department of Computer Science Department of Computer Science
University of Tripoli University of Tripoli
Libya Libya
[email protected] [email protected]

Abstract—The software has been playing an important role in Developers recognized the need to swift from the sequential
our daily life. A need to come up with sound methodology for methodology represented by waterfall to other models where
developing software becomes vital. There are two methodologies users are involved to refine requirements. Vector [7] stated that
that are used nowadays: the heavy weight and the light weight the problem of undefined, changing, and emerging
methodologies. Both methodologies use development models such requirements present a very large challenge to waterfall. He
as waterfall, agile and spiral. The paper presents the two main also stated that things produced in smaller batches are higher
methodologies used in software industries with their advantages quality and efficiency, because the feedback loop is short.
and disadvantages. The paper provides criteria for selecting the Another Software models have been introduced to resolve the
appropriate model for certain applications.
bottlenecks of the waterfall model. For example, the
Keywords-Software development methodology; Software
prototyping model [8], comes into existence to help in
development life cycle(SDLC); Agile; Heavy weight; Light weight; clarifying requirements and the spiral [9] comes to deal with
Software process selection criteria; risks that may be faced during software development. David
Whitgift [2], states that, "If it is too risky to develop the whole
system at once, then the incremental development should be
I. INTRODUCTION considered”. The incremental model [10], comes after to deal
The software has been playing an important role in our with large systems.
daily life for the last forty years. This role is resembled in
hundreds of software applications in different fields that These models allow the cycle of the waterfall to be repeated
include banking, transportation, communication, marketing, prior to gaining a final product. Software models like waterfall,
finance, entertainment, educations…etc. The software product incremental and spiral are called heavyweight methodologies
is developed through series of steps called life cycle. The [8]. A methodology, [11] is composed of one of the software
Software Development Life Cycle (SCLC) is a process of development models used in conjunction with one or more
developing and maintaining software system [1]. David techniques. The techniques of prototyping,, and object-oriented
Whitgift [2], stated that in the earliest days of software are ways to implement the waterfall, incremental, and spiral
development, code was written and then debugged. The code models. These techniques may be used on a single project. The
and debug approach quickly faced problems when developing need to produce software in a very short time has enforced
large and complex systems such as the Aerospace software. software developers and scientists to look for a rapid
And due to the difficult nature of this model, Winston Royce in development approach. The Rapid development model (RAD)
[12] was introduced. The prototyping and RAD models are
1970 proposed the waterfall model [3]. This model stressed on considered lightweight methodologies [8].
full requirements, documentation and design before
implementing the software. The waterfall life cycle is Finally, another methodology was introduced called the
composed of series of phases starting with the requirement Agile methodology [13], which is another light methodology.
phase till the testing and deployment phases. According to Agile development is based on the idea of iterative and
Blum [4],”the problem of waterfall model is that it is best incremental development, in which the phases are revisited
suited to hardware production, thereby neglecting over and over again. It iteratively enhances software by using
characteristics of software”. Barry Boehm [5], stated that the user feedback to reach a solution.
waterfall model is more suited to classes of software The Agile methodology includes many methods (models)
development such as compilers and operating system where the such as: Scrum, Extreme Programming (XP) that all deal
system or software is not user-focused. Glass [6] reported that specifically with change of requirements and reducing delivery
29% of projects using Waterfall failed. time. According to Victor [7], “the agile is simply the latest
theory that is widely replacing the waterfall approach”.

978-1-4799-5627-2/14/$31.00 ©2014 IEEE


This paper is organized as follows. Section II, the failures failures. They define success of software projects: Projects on
of software projects will be explained and in Section III, a budget , on time and with expected functionality. According to
description, advantages and disadvantages for each model of reports related to software failures [15].
the heavy methodology will be addressed. Section IV,
addresses the description, advantages and disadvantages of 1994 1996 1998 2000 2002
each model of the light methodology. Comparison between Successful 16% 27% 26% 28% 34%
heavy and light methodologies is presented in Section V and
factors for selecting the appropriate model are mentioned in Failed 31% 40% 28% 23% 15%
section VI. Finally, the conclusion is presented in section VII. Challenged 53% 33% 48% 49% 51%

II. THE FAILURES OF SOFTWARE PROJECTS From the previous table, we can observe that though the
percentage of successful projects are high in 2002 comparing
In the last forty years, the development of software has to the ones in 1994, but the percentage of challenging projects
suffered a lot of obstacles. We still recall the so-called: still high. The TCS [15] (Tata Consultancy Services), reported
Software crisis in the 1960s that led to failure of most software in 2007 the following.
projects, and the term, software engineering, which was
proposed as a remedy to that crisis. Also the millennium crisis 62 % Failed to meet schedule
in 2000 that led developers and researchers to look for better
ways to deal with software problems.. 49 % Budget overruns

Some problems of development of software still exist, and 41 % Failed to deliver ROI
even Microsoft has a history of failure and overdue projects
(e.g. Windows 1.0, Windows 95).
We all drive for successful software projects. A software to This table also shows high percentages of failed projects
be successful should meet the following attributes: due to time and budget overruns. Another statistics conducted
by Oxford University Regarding IT Project failures in 2003
• User involvement [15] shows.
• Stakeholder satisfaction 16 % Successful
• Management support 10% Failed
• Clear requirements 74% Challenged
• Dealing with change
• Proper planning and monitoring This table also emphasizes the need to do more work to
enhance the software development process; especially the
• Sound project management challenged projects, since their percentages are still high.
• Proper technology and methodology The purpose of this paper is to answer the question: What
The question that we should ask is, why do software methodology should be used for a particular project? Most of
projects fail so often? Here are some of the most common researchers and developers decided to classify all
symptoms: methodologies into two methodologies, the Heavy weight
methodology and the Light weight methodology.
• Badly defined requirements
• Frequent changing requirements III. HEAVY WEIGHT METHODOLOGY
• Use of wrong technology Heavy weight methodology is based on sequential series of
phases such as: analysis, design, implementation, and testing.
• Use of wrong methodology Heavy methodology mainly stresses on documentation, long-
• Unmanaged risks plan and design before starting a development. In this section,
we present some of the most well-known models related to the
• Poor communication among stakeholders heavy methodology.
• Inability to deal with project's complexity A. Waterfall model
• Poor project management Waterfall model is a well-known type of the heavy
methodology that introduced in 1970, but still used. It consists
• Commercial pressures of several phases in a sequential order. This means that any
• Unrealistic project goals phase in the development process begins if the previous phase
is completed. The waterfall model does not let the process to
The Standish Chaos Reports[14], are considered the most go back to the previous phase. It is used when requirements,
referenced group related to .statistics of software project scope and needs of the final product are known in advance.

2
The phases of the waterfall model are : planning, analysis, • More involvement of users than waterfall
design, implantation , testing, and maintenance.
1) Advantages of waterfall model • Projects can start with incomplete
• Full documentation requirements, and additional functionality can
be added later.
• Full plan is prepared at the beginning of the
project 2) Disadvantages of spiral model
• It is costly model
• Well-known model
• Needs higher expertise to deal with risk
• Easy to measure project status analysis

2) Disadvantages of waterfall model • Not good for small projects


• Requires predefined requirements, which are
very hard to obtain at the beginning of the
C. The Incremental model
development cycle.
This model is introduced to overcome the problems and
• Resist change of requirements, and these shortcoming of the waterfall model. The main idea of this
model is to produce a software system through series of
changes are costly at late phases.
iterative cycles and each cycle would produce smaller portion
of the required system, called increment.
• Takes long time to deliver the software
The objective of this model is to reduce the risk of developing
system big systems by breaking a system into small segments and
dealing with each segment as an independent project.
• Less user involvement For example, the waterfall model is not suited for large
projects; therefore, the problem of incomplete requirements is
• Not good for big projects always there. It delivers these useful components of the
system early and gets user feedback. This model assumes that
• Has high amount of risk the whole requirements are defined at the beginning of the
project with the help of prototyping.
B. Spiral model
1) Advantages of incremental model
Spiral model combines the waterfall model and the • Working system is delivered early and quickly
prototyping. It uses similar phases of the waterfall model in • Problems can be discovered early
an iterative manner and at the end of each iteration a version
• Easier to test more than in the waterfall model
of the product is released to the customer. The model was
• Gains experience from previous increments
introduced in 1988 as a solution to the shortcomings in the
waterfall model such as changing requirements during • change of requirements can be dealt with
developments. It is also used for large and risky projects. The between increments
phases of software are developed in a cycle called spiral. The 2) Disadvantages of incremental model
entire project is decomposed into small projects. The phases of • Needs heavy documentation
the spiral model are: planning, risk analysis, engineering, • Higher cost than waterfall model
implementation and evaluation. The spiral model should be • Requires user involvement
used when users are unsure of their needs and when costs and
IV. LIGHT WEIGHT METHODOLOGY
risk analysis are important.
1) Advantages of spiral model Light methodology allows developers to construct software
• Requirements can be assessed and changed more rapidly and efficiently, with more response to changes of
requirements. Its main emphasis is on short life cycles when
during development. developing a software product. It encourages user involvement
throughout the life cycle and strives for delivering working
• Suitable for complex and large projects. systems early and quickly. The following are some of the most
well-known models related to this methodology.
• Deals with different types of risks in each
cycle, therefore, risks would be gradually A. Prototyping model
reduced. While most prototypes are developed with the expectation
that they will be discarded after clarifying requirements, it is
• A software product is shortly delivered. possible in some cases to evolve from discarded prototype to

3
working system. The main idea of this model is to produce • Business modeling phase
partially developed software and then examined by both the
customer and the developer to see if the proposed prototype is a Here the flowing of data among different
good start that leads to the final system. For example, the components of the system are defined.
developer may construct a prototype system that includes the • Data modeling phase
basic requirements and make sure with the help of the user that
these requirements are feasible and practical. Then other Entities and their relationships are defined
versions are developed following repeated feedbacks from • Process modeling phase
users till all requirements are fulfilled and the final system is
delivered. The process of prototyping involves the following The processes are determined. They include:
steps: adding, removing,, updating, and retrieving
operations.
• Determine basic requirements including the input
and output information desired. Details, such as • Application generation phase
reliability and security are ignored
Called also the programming phase
• Develop Initial Prototype
• Testing phase
• Review the prototype by the user Here the testing is an easy process, because the model
• Revise and Enhance the Prototype depends on the component reuse which is related to object-
oriented approach.
By using the feedback, both the requirements and the
prototype can be clarified and improved. Negotiation about 1) Advantages of RAD model
what is within the scope of the contract/product may be • Productivity is increased
necessary. If changes are introduced then a repeat of steps #3
and #4 may be needed. • Early delivery time

1) Advantages of prototyping model • Progress can be measured


• Faster development leads to early delivery 2) Disadvantages of RAD model
• Faster development leads to cost saving • Needs higher skilled developers

• User involvement leads to user satisfaction • Requirements should be well known

• Can be integrated with other models, such as • For projects requiring shorter development
waterfall to produce high quality software time

• Can demonstrate technical feasibly of the C. Agile model


system The Agile methodology is initiated in 2001 at a conference
• Helps to define and refine requirements held in Utah, USA, where 17 developers met to discuss
business pressure on software developments in terms of
• Training starts early in the life cycle. quality, delivery time, and change of requirements. Agile is a
iterative and incremental development model, where
2) Disadvantages of prototyping model
requirements and solutions evolve through collaboration
• Lack of documentation
between self-organizing, cross-functional teams. The required
• Hard to maintain (lack of documentation) software starts with a simple design, then to code small
modules. The work on these modules is done in weeks for
• Can lead to false expectations and optimism each life cycle (called increment or sprint). These sprints allow
• Fast development often leads to poor quality errors to be recognized, and customer feedbacks to be
incorporated into next design of the next increment. The
conference issued a manifesto that stressed on the following
B. Rad model
terms.
The Rapid Development Model (RAD) is a short
development life cycle model to produce systems fast, • Working software over comprehensive documentation
especially, for ones that have the user interface as an important • Individuals and interactions over processes and tools
component of the system. RAD encourages constant feedbacks
from stakeholders throughout the SDLC. • Customer collaboration over contract negotiation
The main objective of this model is to develop and deliver a • Responding to change over following plan
high quality system at a relatively low cost and short time(60 to
90 days). In RAD model the components or functions are There are many methods (or models) related to this
developed in parallel as if they were mini projects. The phases methodology. The most famous ones are Scrum, lean, and
of this model are as follows: Extreme Programming(XP). In this section, we will not explain

4
the methods but rather treating these methods as one especially at late phases, whereas the light methodology
methodology, called the agile methodology. accepts change of requirements.
1)Advantages of agile Communication: Light methodology relies on face-to face
• Projects can start with incomplete communication among developers and users, whereas heavy
requirements methodologies rely mainly on documenting communications.
• Allows changes to be added during
developments VI. FACTORS FOR SELECTING SOFTWARE DEVELOPMENT MODEL
• Customers can see working systems quickly There are many models used for software developments. In
(Weeks). this section we state some of main factors that are used to
select the suitable model for software development. These
• Easier to add functions early factors are considered the most important elements that
contribute to the success or failure of software projects.
• Bugs and faults are discovered and corrected
early
TABLE 1.A FACTORS FOR SELECTING DEVELOPMENT MODEL
• Face to face communication leads to user
satisfaction Factor Waterfall Incremental Spiral

• Higher quality of software is obtained risk low high high


• Higher user involvement leads to project
success and satisfaction requirement complete complete incomplet
• Risk is minimized through short iterations. e

2)Disadvantages of agile model frequency of minimal minimal High


• Less emphasis on documentation change
• Needs excellent and experienced developers.
documentation full full full
• Very limited planning is done to start the
project.
user not required required
• Not good for large projects involvement required

V. COMPARISON BETWEEN HEAVY AND LIGHT WEIGHT cost medium high high
METHODOLOGIES
The previews sections imply that heavy methodologies delivery time late early early
are process-oriented, plan-oriented and document oriented;
whereas, light-methodologies are people-oriented and TABLE 1.B FACTORS FOR SELECTING DEVELOPMENT MODEL
change-oriented. These characteristics help us with the
selection of which methodology may fit certain software
Factor Prototyping RAD Agile
projects. The following are some of the criteria used to choose
either of the methodologies that suits certain projects-
Requirement incomplete incomplete incomplete
Team size: Light methodology requires the team size to be 10
or less. On the other hand, heavy methodology deals with
projects of large team size.
Frequency of High High High
Documentation: Heavy weight methodologies rely on change
documentation, conversely, light methodologies concentrate
mainly on working product. Documentation Low Low Low
Requirements: Heavy weight methodologies perform best
when requirements are defined in advance and stay stable User required required required
during the life cycle. involvement
Planning: Heavy weight methodologies rely on long range
plan. In light methodology the plan in informal and only done Delivery time early early early
before each increment.
Change of requirements: heavy methodologies resist change
of requirements (unaccepted) and the cost of change is high

5
CONCLUSION [5] Boehm B, “A Spiral of software development and Enhancement “, ACM
SIGSOFT Software Engineering Notes”, ACM, 1986
The need for an appropriate methodology that would [6] Glass. R.L, "Agile versus Traditional: make love not war ", Cutter IT
provide satisfaction to the user and provide cost-effective Journal, Vol 14, 2003
products in an efficient manner and responds quickly to [7] Victor Stalvay, “An introduction to Agile development”, Damube
changes in an evolving world is imminent. There is no model technologies, Inc.
necessarily to be the best or the worst one among models of [8] Asif, Usman Khan and Rizwan Qurashi, “A comprehensive Study of
both heavy and light methodologies. The selection of a proper Commonly Practiced Heavy and Light weight Software Methodologies”,
model basically depends on many factors including the nature USCI International Journal of Computer Science Issues, vol 8 , 2011
of the project, skills of developers, and management style and [9] Boehm B, “A spiral of software Development end Enhancement”,
Computer 1988
support. In many cases, models of different or the same
methodologies (hybrid model) can be combined. [10] Craig Larman and Victor Basili, “Iterative and Incremental development
: A brief history”, IEEE Computer, vol 36 , 2003
[11] Reed Sorensen8, “ A comparison of software development
REFERENCES methodologies”, Software technology support center 1995
[12] Centers for Medicare & Medcad services, “Selecting A Development
Approach”, 2008
[1] System development life cycle: Objectives and requirements “, Bender
RPT Inc. 2003 [13] Hamid Faradani, “A Guide to selecting software development
methodologies”, 2011
[2] Whitgift, David, “Methods and tools for software configuration
management”, 1991 [14] Standish Group International Inc, chaos chronicles, 2004
[3] Royce Winston, “Managing the development of large software system”, [15] Dan Galorath, “Software Project Failure Costs Billions-Better
Proceedings of IEEE WESCON 26 , 1970 Estimation& Planning Can Help”, June 7, 2008.
[4] Blum B. “Software Engineering: A Holistic View “, Oxford University
Press 1992

You might also like