Paper 2 - Criteria For Selecting Software Development Models
Paper 2 - Criteria For Selecting Software Development Models
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”.
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
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
• Can be integrated with other models, such as • For projects requiring shorter development
waterfall to produce high quality software time
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
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