Analysis of Various Software Process Models: June 2012
Analysis of Various Software Process Models: June 2012
Analysis of Various Software Process Models: June 2012
net/publication/316510707
CITATIONS READS
10 3,776
3 authors, including:
Pramila M. Chawan
Veermata Jijabai Technological Institute
110 PUBLICATIONS 220 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Cloud based Automated Attendance Monitoring System using RFID and IOT View project
All content following this page was uploaded by Pramila M. Chawan on 27 April 2017.
2015 | P a g e
Ashwini Mujumdar, Gayatri Masiwal, P. M. Chawan / International Journal of Engineering Research and
Applications (IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 2, Issue 3, May-Jun 2012, pp.2015-2021
The waterfall model is the classical model of Real projects rarely follow the sequential approach
software engineering. This model is one of the oldest There is uncertainty at the beginning of the project
models and is widely used in government projects and regarding requirements and goals. This model does
in many major companies. As this model emphasizes not accommodate these uncertainties very well.
planning in early stages, it ensures design flaws before It does not yield a working version of the system
they develop. In addition, its intensive document and until late in the process.[7]
planning make it work well for projects in which
quality control is a major concern.
The pure waterfall lifecycle consists of several non- 3.1 Incremental Approaches:
overlapping stages, as shown in the following figure. Incremental approaches emphasize phased
The model begins with establishing system development by offering a series of linked mini-projects
requirements and software requirements and continues (referred to as increments, releases or versions) working
with architectural design, detailed design, coding, from a pre-defined requirements specification up front.
testing, and maintenance. The waterfall model serves as Work on different parts and phases, is allowed to
a baseline for many other lifecycle models. overlap throughout the use of multiple mini-cycles
The steps followed in the waterfall model are: running in parallel. Each mini-cycle adds additional
functionality and capability. The approach is
i. Communication: establishes the expectations of underpinned by the assumption that it is possible to
the stakeholders and hence useful in requirements isolate meaningful subsets that can be developed, tested
gathering. and implemented independently. Delivery of increments
ii. Planning: develops a well-defined plan of is staggered as calendar time progresses. The first
execution of the project. increment often acts as the core product providing the
iii. Modeling: develops a model of the project before functionality to address the basic requirements. The
developing the actual project. staggered release philosophy allows for learning and
iv. Construction: builds the actual project following feedback which can modify some of the customer
the plan of execution defined in the planning stage requirements in subsequent versions. Incremental
and testing. approaches are particularly useful when the full
v. Deployment: the delivery of end-product to the complement of personnel required to complete the
customer and its maintenance. project is not available and when there is an inability to
fully specify the required product or to fully formulate
the set of expectations[6].
2016 | P a g e
Ashwini Mujumdar, Gayatri Masiwal, P. M. Chawan / International Journal of Engineering Research and
Applications (IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 2, Issue 3, May-Jun 2012, pp.2015-2021
The spiral development model is a risk driven
process model generator that is used to guide multi-
stakeholder concurrent engineering of software
intensive systems. It has two main distinctive features.
One is cyclic approach for incrementally growing a
system’s degree of definition and implementation while
decreasing its degree of risk. The other is a set of
anchor-point milestones for ensuring the stakeholder
commitment to feasible and mutually satisfactory
system solutions.[7]
Specialized process models can take the These concerns notwithstanding, the formal
characteristics of any or many of the conventional methods approach has gained adherents among software
models presented in the above sections. However developers who must build safety-critical software,
specialized models tend to be applied when a narrowly such as aircraft avionics and medical devices, and
defined software engineering approach is chosen[7]. among developers who would suffer serious economic
In some cases, these specialized models might hardship, should software errors occur.
better be characterized as a collection of techniques or a
methodology for accomplishing a specific software 3.3 Agile Approaches:
development goal.[7] However, they do imply a process Agile development is claimed to be a creative and
model which is highly project specific. responsive effort to address users’ needs focused on the
requirement to deliver relevant working business
The Formal Methods Model: applications quicker and cheaper. The application is
The formal methods model encompasses a set of typically delivered in incremental (or evolutionary or
activities that leads to formal mathematical iterative) fashion. The agile development approaches
specification of the project or the computer software to are typically concerned with maintaining user
be developed. Formal methods enable a software involvement through the application of design teams
engineer to specify, develop and verify a computer- and special workshops. The delivered increments tend
based system by applying a rigorous mathematical to be small and limited to short delivery periods to
notation. A variation on this approach, called clean- ensure rapid completion. The management strategy
utilized relies on the imposition of timeboxing, the strict
2018 | P a g e
Ashwini Mujumdar, Gayatri Masiwal, P. M. Chawan / International Journal of Engineering Research and
Applications (IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 2, Issue 3, May-Jun 2012, pp.2015-2021
delivery to target which dictates the scoping, the Continuous Integration: As soon as work on a task is
selection of functionality to be delivered and the complete, it is integrated into the whole system. After any
adjustments to meet the deadlines. Agile development is such integration, all the unit tests in the system must pass.
particularly useful in environments that change steadily Sustainable pace: Large amounts of over-time are not
and impose demands of early (partial) solutions. Agile considered acceptable as the net effect is often to reduce
approaches support the notion of concurrent code quality and medium term productivity.
development and delivery within an overall planned On-site Customer: A representative of the end-user of the
context. system (the Customer) should be available full time for the
use of the XP team. In an extreme programming process, the
Extreme Programming: customer is a member of the development team and is
It is an approach to development, based on the responsible for bringing system requirements to the team for
development and delivery of very small increments of implementation.
functionality. It relies on constant code improvement, XP and agile principles
user involvement in the development team and pair 1. Incremental development is supported through
wise programming. It can be difficult to keep the small, frequent system releases.
interest of customers who are involved in the process. 2. Customer involvement means full-time customer
Team members may be unsuited to the intense engagement with the team.
involvement that characterizes agile methods. 3. People not process through pair programming,
Prioritizing changes can be difficult where there are collective ownership and a process that avoids long
multiple stakeholders. Maintaining simplicity requires working hours.
extra work. Contracts may be a problem as with other 4. Change supported through regular system releases.
approaches to iterative development.[1] 5. Maintaining simplicity through constant refactoring
of code [1].
Advantages
1. Lightweight methods suit small-medium size
projects.
2. Produces good team cohesion.
3. Emphasizes final product.
4. Iterative.
5. Test based approach to requirements and quality
assurance.
Disadvantages
Fig. 5 Extreme Programming 1. Difficult to scale up to large projects where
documentation is essential.
Extreme Programming Practices 2. Needs experience and skill if not to degenerate into
Incremental planning: Requirements are recorded on Story code-and-fix.
Cards and the Stories to be included in a release are 3. Programming pairs is costly.
determined by the time available and their relative priority. 4. Test case construction is a difficult and specialized
The developers break these stories into development skill.[1]
"Tasks".
Small Releases: The minimal useful set of functionality that Each of the approaches described above appears to have
provides business value is developed first. Releases of the clear benefits, at least from a theoretical perspective.
system are frequent and incrementally add functionality to However the variety of different approaches leads to a
the first release. dilemma when it comes to selecting the most suitable one
Simple Design: Enough design is carried out to meet the for a project. At the beginning of every project the manager
current requirements and no more. is expected to commit to a development approach. This is
Test first development: An automated unit test framework often driven by past experience or other projects that are, or
is used to write tests for a new piece of functionality before have been, undertaken by the organization. Project managers
functionality itself is implemented. are expected to select the most suitable approach that will
Refactoring: All developers are expected to re-factor the maximize the chances of successfully delivering a product
code continuously as soon as possible code improvements that will address the client’s needs and prove to be both
are found. This keeps the code simple and maintainable. useful and usable.
Pair Programming: Developers work in pairs, checking The choice should clearly relate to the relative merits of
each other’s work and providing support to do a good job. each approach.
Collective Ownership: The pairs of developers work on all
areas of the system, so that no islands of expertise develop 3.4 Rational Unified Process
and all the developers own all the code. Anyone can change The Rational Unified Process (RUP) is an iterative
anything. software development process framework created by the
Rational Software Corporation. RUP is not a single concrete
prescriptive model, but rather an adaptable process
2019 | P a g e
Ashwini Mujumdar, Gayatri Masiwal, P. M. Chawan / International Journal of Engineering Research and
Applications (IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 2, Issue 3, May-Jun 2012, pp.2015-2021
framework, intended to be tailored by the development 1) Four Project Life cycle Phases:
organizations and software project teams that will select the The RUP has determined a project life cycle consisting of
elements of the process that are appropriate for their needs. four phases. These phases allow the process to be presented
RUP is a specific implementation of the Unified Process. at a high level in a similar way to how a 'waterfall'-styled
RUP is based on a set of building blocks, or content project might be presented, although in essence the key to
elements, describing what is to be produced, the necessary the process lies in the iterations of development that lie
skills required and the step-by-step explanation describing within all of the phases. Also, each phase has one key
how specific development goals are to be achieved. objective and milestone at the end that denotes the objective
being accomplished. The visualization of RUP phases and
Elab o r at io n
disciplines over time is referred to as the RUP hump chart.
[7]
Incep t io n
UP Phases
Incept ion Elaborat ion Const ruct ion Transit ion Product ion
Workflows
Requirements
Analysis
Design
Implementation
co nst r uct io n
Release Test
t r ansit io n
soft ware increment
Support
Iterations #1 #2 #n-1 #n
p r o d uct io n Fig. 7 Four phases of Rational Unified Process [7]
Fig. 6 Rational Unified Process [7] The various process models discussed above can be
summarized as follows:
2020 | P a g e
Ashwini Mujumdar, Gayatri Masiwal, P. M. Chawan / International Journal of Engineering
Research and Applications (IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 2, Issue 3, May-Jun 2012, pp.2015-2021
2021 | P a g e