Computer Science Journal - INT
Computer Science Journal - INT
com
ISSN 2320–088X
SURVEY ARTICLE
Abstract— This study deals with a vital and important thing in computer software development. It is
concerned with the software management processes that examine the area of software development through
the development models, which are known as software development life cycle. It represents the development
models namely Waterfall model, Iterative model, V-shaped model, Spiral model, Extreme programming,
Iterative and Incremental Method, Rapid prototyping model, The Chaos Model, Adaptive Software
Development (ASD), The Agile Software Process (ASP), Crystal, Dynamic System Development Method
(DSDM), Feature Driven Development (FDD), Rational Unified Process (RUP), SCRUM, Wisdom, The Big
Bang Model. These models have advantages and disadvantages as well. Therefore, the main objective of this
study is to represent different models of software development and make comparison between them to show
the features and defects of each model.
Key Terms: - Software Engineering; Software Development; Software Process Model, SDLC; Software Life
Cycle Model
I. INTRODUCTION
No one can deny the importance of computer in our life, especially during the present time. In fact, computer
has become indispensable in today's life as it is used in many fields of life such as industry, medicine, commerce,
education and even agriculture. It has become an important element in the industry and technology of advanced
as well as developing countries. Now-a-days, organizations become more dependent on computer in their works
as a result of computer technology. Computers considered a time-saving device and its progress helps in
executing complex, long, repeated processes in a very short time with a high speed. In addition to using
computer for work, people use it for fun and entertainment. Noticeably, the number of companies that produce
software programs for the purpose of facilitating works of offices, administrations, banks, etc., during the
previous four decades. Moreover, the aim of software engineering is to construct programs of high quality.
• Waterfall model.
• Iterative model.
• V-shaped model.
• Spiral model.
• Extreme programming.
• Incremental Method
• Rapid prototyping model
• The Chaos Model
• Adaptive Software Development (ASD)
• The Agile Software Process (ASP)
• Crystal Model
• Dynamic System Development Method (DSDM)
• Feature Driven Development (FDD)
• Rational Unified Process (RUP)
• SCRUM
• Wisdom
• The Big Bang Model.
B. Iterative Model
An iterative life cycle model [3] does not attempt to start with a full specification of requirements. Instead,
development begins by specifying and implementing just part of the software, which can then be reviewed in
order to identify further requirements. This process is then repeated, producing a new version of the software for
each cycle of the model. Advantages: In iterative model we are building and improving the product step by step,
we can track the defects at early stages. This avoids the downward flow of the defects. In iterative model we can
get the reliable user feedback. In iterative model less time is spent on documenting and more time is given for
designing. Disadvantages: Each phase of iteration is rigid with no overlaps, Costly system architecture or
design issues may arise because not all requirements are gathered up front for the entire life cycle.
C. V-Shaped Model
Like waterfall model, the V-Shaped life cycle [2] is a sequential path of execution of processes. Each phase
must be completed before the next phase begins. Testing is emphasized in this model more than the waterfall
model. The testing procedures are developed early in the life cycle before any coding is done, during each of the
phases preceding implementation. Requirements begin the life cycle model just like the waterfall model. Before
development is started, a system test plan is created. The test plan focuses on meeting the functionality specified
in requirements gathering. The high-level design phase focuses on system architecture and design. An
integration test plan is created in this phase in order to test the pieces of the software systems ability to work
together. Advantages: Simple and easy to use. Each phase has specific deliverables. Higher chance of success
over the waterfall model due to the early development of test plans during the life cycle. Works well for small
projects where requirements are easily understood. Disadvantages: Very rigid like the waterfall model. Little
flexibility and adjusting scope is difficult and expensive. Software is developed during the implementation
phase, so no early prototypes of the software are produced. This model does not provide a clear path for
problems.
D. Spiral model
The spiral model [4] is similar to the incremental model, with more emphasis placed on risk analysis. The
spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project
repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in
the planning phase, requirement is gathered and risk is assessed. Each subsequent spiral builds on the baseline
spiral. Requirements are gathered during the planning phase. In the risk analysis phase, a process is undertaken
to identify risk and alternate solutions. A prototype is produced at the end of the risk analysis phase. Software is
produced in the engineering phase, along with testing at the end of the phase. The evaluation phase allows the
customer to evaluate the output of the project to data before the project continues to the next spiral. In the spiral
model, the angular component represents progress, and the radius of the spiral represents cost. Advantages:
High amount of risk analysis. Good for large and mission-critical projects. Software is produced early in the
software life cycle. Disadvantages: Can be a costly model to use. Risk analysis requires highly specific
expertise. Project’s success is highly dependent on the risk analysis phase. It doesn’t work well for smaller
projects.
E. Extreme programming.
An approach to development [5] based on the development and delivery of very small increments of
functionality. It relies on constant code improvement, user involvement in the development team and pair wise
programming. It can be difficult to keep the interest of customers who are involved in the process. Team
members may be unsuited to the intense involvement that characterizes agile methods. Prioritizing changes can
be difficult where there are multiple stakeholders. Maintaining simplicity requires extra work. Contracts may be
a problem as with other approaches to iterative development. Advantages: Lightweight methods suit small-
medium size projects. Produces good team cohesion and emphasises final product and Iterative. Test based
approach to requirements and quality assurance. Disadvantages: Difficult to scale up to large projects where
documentation is essential and needs experience and skill if not to degenerate into code-and-fix. Programming
pairs is costly.
F. Incremental Method
It is developed to overcome the weaknesses of the waterfall model. It starts with an initial planning and ends
with deployment with the cyclic interactions in between. The basic idea behind this method is to develop a
system through repeated cycles (iterative) and in smaller portions at a time (incremental), allowing software
developers to take advantage of what was learned during development of earlier parts or versions of the system
[6]. Advantages: Produces business value early in the development life cycle· Better use of scarce resources
through proper increment definition. Can accommodate some change requests between increments. More
focused on customer value than the linear approaches. Problems can be detected earlier. Disadvantages:
Requires heavy documentation. Follows a defined set of processes, defines increments based on function and
feature dependencies. It requires more customer involvement than the linear approaches. Partitioning the
functions and features might be problematic. Integration between iteration can be an issue if this is not
considered during the development.
problem. In general, we break complex problems into simpler sub problems. We use this reductions approach to
deal with problems that are too large to handle otherwise. Yet, stating that the recursive structure is too simple.
K. Crystal Model
The Crystal family of lightweight SDLC methodologies is the creation of Alistair Cockburn [17]. Crystal is
comprised of more than one methodology because of Cockburn’s belief that differing project types require
differing methodologies. Project types are classified along two lines: the number of people on the development
team and the amount of risk (e.g. a 30 person project that is at risk to lose discretionary money requires a
different methodology than a four person life-critical project).Crystal methodologies are divided into colours-
coded bands. “Clear” Crystal is the smallest and lightest. “Yellow”, “Orange”, “Red”, “Maroon”, “Blue”, and
“Violet” follow for use with larger groups using more complex methodologies.
O. SCRUM
A SCRUM is a Rugby team of eight individuals [14]. The team acts together as a pack to move the ball down
the field. Teams work as tight, integrated units with a single goal in mind. In a similar manner, the SCRUM
software development process facilitates a team focus. SCRUM is a light SDLC methodology for small teams to
incrementally build software in complex environments. SCRUM is most appropriate for projects where
requirements cannot be easily defined up front and chaotic conditions are anticipated. SCRUM divides a project
into sprints (iterations) of 30 days. Functionality is defined before a sprint begins. The goal of the process is to
stabilize requirements during a sprint.
P. Wisdom
The White-water Interactive System Development with Object Models [15] addresses the needs of small
development teams who are required to build and maintain the highest quality interactive systems. The Wisdom
methodology has three key components: A software process based on user-centered, evolutionary, and rapid-
prototyping model. A set of conceptual modelling notations that support the modelling of functional and non-
functional components. A project management philosophy based on tool usage standards and open
documentation. Wisdom is comprised of three major workflows: requirements workflow, analysis workflow,
and design workflow. In addition, the methodology is based on seven models and uses four types of diagrams.
Task flow plays an important role in Wisdom and corresponds to a technology-free and implementation-
independent portrayal of user intent and system responsibilities.
III. CONCLUSION
In this paper various software development life cycle models are studied and compared. The Waterfall model
provides base for other development models. The advantages and disadvantages of enhanced models such as
Iteration model, V-shaped model, Spiral model, Extreme programming, Evolutionary Prototyping Model,
Iterative and Incremental Method, Rapid prototyping model, The Chaos Model, Adaptive Software
Development (ASD), The Agile Software Process (ASP), Crystal, Dynamic System Development Method
(DSDM), Feature Driven Development (FDD), Rational Unified Process (RUP), SCRUM, Wisdom, The Big
Bang Model, and code and fix models are compared.
REFERENCES
[1] Royce, Winston, "Managing the Development of Large Software Systems", Proceedings of IEEE
WESCON 26, 1970.
[2] Kevin Forsberg and Harold Mooz, “The Relationship of System Engineering to the Project Cycle,” in
Proceedings of the First Annual Symposium of National Council on System Engineering, October 1991:
57–65.
[3] Craig Larman and Victor R. Basili,"Iterative and Incremental Development: A Brief History". IEEE
Computer (IEEE Computer Society) 36 (6): 47–56. Doi:10.1109/MC.2003.1204375. ISSN 0018-9162.
Retrieved 2009-01-10.], June 2003.
[4] Boehm B, "A Spiral Model of Software Development and Enhancement", ACM SIGSOFT Software
Engineering Notes", “ACM", 11(4):14-24, August 1986.
[5] Mohamed Sami Abd EI-Satar” Software Development Life Cycle Models and Methodologies”, 2012,
http://melsatar.wordpress.com
[6] Craig Larman and Victor Basili, Iterative and Incremental Development: A Brief History, IEEE
Computer, June 2003.
[7] C. Melissa McClendon, Larry Ragout, Gerri Akers: The Analysis and Prototyping of Effective Graphical
User Interfaces. October 1996.
[8] ACM Digital Library, The chaos model and the chaos cycle, ACM SIGSOFT Software Engineering
Notes, Volume 20 Issue 1, and Jan 1995.
[9] Adaptive Software Development: A Collaborative Approach to Managing Complex Systems, High
smith, J.A., and 2000 New York: Dorset House, 392pp, ISBN 0-932633-40-4.
[10] International Conference on Software Engineering in Kyoto Japan (Aoyama, 1998a).
[11] McConnell, Steve. "7: Lifecycle Planning". Rapid Development. Redmond, Washington: Microsoft
Press.
[12] Rietmann: DSDM in a bird’s eye view, DSDM Consortium, p. 3-8 (2001).
[13] Coad, P., Lefebvre, E. & De Luca, J. (1999). Java Modeling In Color With UML: Enterprise
Components and Process. Prentice Hall International. (ISBN 0-13-011510-X).
[14] Linda Rising and Norman S.Janoff, AG Communication Systems, “The Scrum Software Development
Process for Small Teams, IEEE Software July/August 2000.
[15] Nuno Jardim Nunes, João Falcão e Cunha” Wisdom - Whitewater Interactive System Development with
Object Mode Version 4.0 / 21 April 2000.
[16] Wollack, Edward J. "Cosmology: The Study of the Universe". Universe 101: Big Bang Theory. NASA,
2010
[17] Ernest Mnkandla, "About Software Engineering Frameworks and Methodologies", IEEE AFRICON
2009.