Você está na página 1de 10

IJCSI International Journal of Computer Science Issues, Vol.

 8, Issue 4, No 2, July 2011 
ISSN (Online): 1694‐0814 
www.IJCSI.org    441 

A Comprehensive Study of Commonly Practiced Heavy and


Light Weight Software Methodologies
1
Asif Irshad Khan, 2Rizwan Jameel Qurashi and 3Usman Ali Khan

1
Department of Computer Science
Singhania University, Jhunjhunu, Rajasthan, India

2 Department of Information Technology


King Abdul Aziz University, Jeddah, Saudi Arabia
3
Department of Information System
King Abdul Aziz University, Jeddah, Saudi Arabia

Abstract
Software has been playing a key role in the development, implementation, delivery, use and
development of modern society. Software industry maintenance. Software development usually
has an option to choose suitable methodology/process involves following stages (processes) as shown
model for its current needs to provide solutions to
in figure 1. A software process is a set of
give problems. Though some companies have their
own customized methodology for developing their activities that lead to the production of software
software but majority agrees that software product. Processes are also called as
methodologies fall under two categories that are methodologies helping to maintain a level of
heavyweight and lightweight. Heavyweight consistency and quality on a set of activities. A
methodologies (Waterfall Model, Spiral Model) are process is a collection of procedures that are
also known as the traditional methodologies, and used to a product by meeting a set of goals or
their focuses are detailed documentation, inclusive
standards.
planning, and extroverted design. Lightweight
methodologies (XP, SCRUM) are, referred as agile
methodologies. Light weight methodologies focused
mainly on short iterative cycles, and rely on the
knowledge within a team.
The aim of this paper is to describe the characteristics
of popular heavyweight and lightweight
methodologies that are widely practiced in software
industries. We have discussed the strengths and
weakness of the selected models. Further we have
discussed the strengths and weakness between the
two opponent methodologies and some criteria is also
illustrated that help project managers for the selection
of suitable model for their projects.

Keywords: Software Process, Software


Development Methodology, Software development Fig.1 Stages of SDLC
life cycle, Agile, Heavyweight.
Many process models are described in the literature
such as Waterfall, Prototype, Rapid Application
1. Introduction
development (RAD), Spiral Model, Object Oriented,
Software development life cycle (SDLC)
Agile and Component Based Development.
describes the life of a software product in terms
Following are software improvement factors.
of processes from its conception to its

 
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 4, No 2, July 2011 
ISSN (Online): 1694‐0814 
www.IJCSI.org    442 
 Development speed (time to market) Objective setting – Specific objectives for the
 Product quality and Project visibility project phase are identified.
 Administrative overhead Risk assessment and reduction – Key risks are
 Risk exposure and customer relations, etc. identified, analyzed and information is obtained to
reduce these risks. The aim is that all risks are
The paper is organized as: section 2 describes some resolved.
selected Heavy weight Models along their advantages Development and Validation – Once all possible
and disadvantages, section 3 discussed some selected risks have been identified the development of the
Light weight models along their strengths and software can begin, an appropriate model is chosen
weaknesses, section 4 Comparison of Heavy and for the next phase of development.
Light weight models in terms of differences and Planning – The project is reviewed and plans are
issues and section 5 discussed criteria for the drawn up for the next round of spiral.
selection of process models to develop a project.
Usage of Spiral Model
2. Heavy Weight Methodologies Following are the usage of Spiral model.
Heavyweight development methodology is based on • Large and high budget projects.
a sequential series of steps, such as requirements • When risk assessment is very critical.
definition, solution build, testing and deployment. • Requirements are not very clearly defined and
Heavyweight development methodology mainly complex.
focuses detailed documentation, inclusive planning, • When costs and risk evaluation is important
and extroverted design. Following are the most • For medium to high-risk projects.
popular Heavyweight development methodologies. • Long-term project commitment unwise because
of potential changes to economic priorities.
2.1 Spiral Model
This model is also known as Boehm's model, using 2.2 Rational Unified Process Model (RUP)
his model, process is represented as a spiral rather The Rational Unified Process (RUP), originated by
than as a sequence of activities with backtracking. Rational Software and later by IBM, is a heavy
The spiral has many cycles and each cycle represents iterative approach that takes into account the need to
a phase in the process. No fixed phases such as accommodate change and adaptability during the
specification or design – Loops, In the Spiral model development process. In RUP: a software product is
are chosen depending on what is required. Risks are designed and built in a succession of incremental
explicitly assessed and resolved throughout the iterations. Each iteration includes some, or most, of
process.The structure of the Spiral model is shown in the development disciplines like requirements,
the figure -2. analysis, design, and implementation and testing. It
provides a disciplined approach to assign tasks and
responsibilities within a software development
organization for the successful development of
software [1,2].

The main goal of RUP is to ensure the production of


high-quality software by meeting the needs of its
end-users within a predictable schedule and budget.
The Rational Unified Model provides guidelines,
templates and tool mentors to software engineering
team to take full advantage of among others.
Following are the guidelines for best practices:

1. Develop software iteratively


2. Manage requirements
3. Use component-based architectures
Fig.2 Spiral model [2]
4. Visually model software
Following are the four main phases of the spiral 5. Verify software quality
model: 6. Control changes to software

RUP has a series of phases as follows.

 
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 4, No 2, July 2011 
ISSN (Online): 1694‐0814 
www.IJCSI.org    443 
Inception: (Understand what to build) In this With the Incremental model, portions of the total
phase project's scope, estimated costs, risks, business product might be available within weeks, whereas the
case, environment and architecture are identified. client generally waits months or years to receive a
Elaboration: (Understand how to build it) In product built using the Waterfall model. The gradual
this phase requirements are specified in detail, introduction of the product via the incremental model
architecture is validated, the project environment is saves time of client.
further defined and the project team is configured.
Construction: (Build the Product) In this
phase software is built and tested and supporting
documentation is produced.

Transition: (Transition the Product to its


Users) In this phase software is system tested, user
tested, reworked and deployed.

Fig.4 Incremental Model is a Series of Waterfalls [3]

Usage of Incremental Model


The incremental model is good for projects where
requirements are known at the beginning, it is best
used on low to medium-risk programs. If the risks are
too high to build a successful system using a single
waterfall cycle, spreading the development out over
multiple cycles may lower the risks to a more
manageable level.
Fig.3 Phases of RUP model [3]

Usage of RUP model 2.4 Component Based Development


Following are the usage of the RUP model Model
a) Distributed systems One of the main principles of computer science,
b) Very large or complex systems divide and conquer the bigger problem into smaller
c) Systems combining several business areas chunks to solve it, fits into component based
d) Systems reusing other systems development. The aim is to build large computer
e) Distributed development of a system systems from small pieces called a component that
has already been built instead of building complete
2.3 Incremental Model system from scratch.
Incremental model is an evolution of Waterfall A software component technology is the
model. The product is designed, implemented, implementation of a component model by means of:
integrated and tested as a series of incremental  Standards and guidelines for the
builds. The releases are defined by beginning with implementation and execution of software
one small, functional subsystem and then adding components.
functionality with each new release. In the  Software tools that supports the
incremental model, there is a good chance that a implementation, assembly and execution of
requirements error will be recognized as soon as the components.
corresponding release is incorporated into the system.

 
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 4, No 2, July 2011 
ISSN (Online): 1694‐0814 
www.IJCSI.org    444 
When we look at the lifecycle of a component, it The deployment stage address issues related to the
passes through the following global stages integration of component implementations in an
requirement analysis, design, development, executable system on some target platform. Finally,
packaging, testing, distribution, deployment and the execution stage deals with executing and possibly
execution. upgrading components.
Preliminary design entails component specification,
while detailed design consists of component search
and identification. For each application is
constructed, the developers need to manage all the
components used, along with their version
information. As developers frequently release
multiple versions of an application, it’s important that
they manage component versions used in applications
[4]
In the development stage, the design, specification,
implementation and meta-data of components is
constructed.
In the packaging stage, all information that is needed
for trading and deployment of the component
implementation grouped into a single package. Fig.5. Component-Based Application Integration
The distribution stage deals with searching, retrieval Life Cycle [4]
and transportation of components. For searching
components meta-data is needed that need to be
included in the packaging stage.
 

Table 1:  Advantages and Disadvantages of some Heavy Weight Methodologies  

Advantages
Spiral Model  RUP Model  Incremental Model  Component Model 
Emphasize planning for The iterative approach leads to With every increment Reduction of cost through
verification and higher efficiency. operational product is reuse of previously
validation of the delivered. Early increments developed assets in the
product in early stages can be implemented with development of new
of product development. fewer people. Systems.
Each deliverable must Testing takes place in each Testing and debugging In principle, more reliable
be testable. iteration, not just at the end of the during smaller iteration is systems, due to using
project life cycle. This way, easy. previously tested
problems are noticed earlier, and components.
are therefore easier and cheaper to
resolve.
Good for large and Managing changes in software More flexible – less costly Facilitating the maintenance
mission-critical requirements will be made easier to change scope and and evolution of systems by
projects. by using RUP, i.e. Change is requirements. Easy replacement of
more manageable. obsolete components with
new enhanced ones.
Software engineers can The development time required is Easier to manage risk This Model brings the
get their hands in and less due to reuse of components. because risky pieces are potential for enhancing the
start working on a identified and handled quality of enterprise
project earlier. during its iteration. software systems.

 
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 4, No 2, July 2011 
ISSN (Online): 1694‐0814 
www.IJCSI.org    445 

Disadvantages
Spiral Model RUP Model Incremental Model Component Model
Does not easily handle Not suitable for small scale Each additional build has Difficulty in locating
concurrent events and industry and safety critical to incorporate into the suitable component.
iterations. projects. existing structure without
degrading the quality of
what has been released
earlier.
Doesn’t work well for This Model is too complex, too The planning the delivery Problem in understanding
smaller projects. difficult to learn, and too difficult increments are critical to such component.
to apply correctly if you don't the success. Wrong
have an expert project managers planning can result in a
or project members. disaster. Not suitable for
large, long-term projects.
Does not easily handle On cutting edge projects which Clients are required to Conversion cost to a “reuse
dynamic changes in utilize new technology, the reuse learn how to use a new situation” (tools, training,
requirements. of components will not be system with each culture)
possible. deployment.
Highly customized RUP is a commercial product, no Design issues may arise
limiting re-usability. open or free standard. Before because not all
RUP can be used, the RUP has to requirements are gathered.
be bought from IBM, which can
sometimes limit its use.

3. Light Weight Methodologies


Light weight development methodologies embrace
practices that allow programmers to build solutions
more quickly and efficiently, with better (3) Supply developers with the resources they need
responsiveness to changes in business requirements. and then trust them to do their jobs well.
Light weight methodology mainly focuses (4) Agile team must concentrates on responding to
development, based on short life cycles, involves the change rather than on creating a plan and then
customer, Strive for simplicity and value the people. following it.
Following are some of the popular lightweight (5) Emphasis on good design to improve quality.
development methodologies. (6) Agile team must prefer to invest time in
producing working software rather than in producing
3.1 Agile Process Model comprehensive documentation.
With the rapid change in the requirements in terms of (7) Satisfy the customer by “early and continuous
budget, schedule, resources, team and technology delivery of valuable software”.
agile model responds to changes quickly and
efficiently. Agile is an answer to the eager business Extreme Programming (XP)
community asking for lighter weight along with Extreme Programming (XP) is a lightweight design
faster and nimbler software development processes method developed by Kent Beck, Ward Cunningham,
[7]. and others, XP has evolved from the problems caused
Following are the main principles to implement an by the long development cycles of traditional
agile model. development models. The XP process can be
characterized by short development cycles,
(1) Agile team and customer must communicate incremental planning, continuous feedback, reliance
through face-to-face interaction rather than through on communication, and evolutionary design. With all
documentation. the above qualities, XP programmers respond to
(2) Agile team and customer must work together changing environment with much more courage
throughout the development. [5,6].

 
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 4, No 2, July 2011 
ISSN (Online): 1694‐0814 
www.IJCSI.org    446 
A summary of XP terms and practices is listed below: together to form a powerful whole. In Scrum,
Planning – The programmer estimates the effort projects are divided into brief work cadences, known
needed for implementation of customer stories and as sprints. Each sprint is typically one week to four
the customer decides the scope and timing of releases weeks in duration. The Sprints are of fixed duration
based on estimates. and never extended, each of which results in a
potentially usable product with an added increment of
function.
Small/short releases – An application is
developed in a series of small, frequently updated
versions. New versions are released anywhere from
daily to monthly.
Metaphor – The system is defined by a set of
metaphors between the customer and the
programmers which describes how the system works.
Simple Design – The emphasis is on designing
the simplest possible solution that is implemented
and unnecessary complexity and extra code are
removed immediately.
Refactoring – It involves restructuring the system
by removing duplication, improving communication,
amplifying and adding flexibility but without
changing the functionality of the program.

a) Pair programming – All production code Fig.6 Lifecycle of the XP Process [5]
are written by two programmers on one The tasks for each sprint are set, in consultation with
computer. a stakeholder representative, during a sprint planning
b) Collective ownership – No single person meeting and cannot be added to during the sprint.
owns or is responsible for individual code Each task is typically expressed as a user story. Tasks
segments rather anyone can change any part of that are not able to accomplish in time are returned
the code at any time. by the team to the backlog for future consideration.
c) Continuous Integration – A new piece of The structure of the scrum model is shown in the
code is integrated with the current system as figure 7
soon as it is ready. When integrating, the system
is built again and all tests must pass for the
changes to be accepted.
d) 40-hour week – No one can work two
overtime weeks in a row. A maximum of 40-
hour working week otherwise it is treated as a
problem.
e) On-site customer – Customer must be
available at all times with the development team.
f) Coding Standards – Coding rules exist and
are followed by the programmers so as to bring
consistence and improve communication among
the development team. Fig.7 Scrum Software Development Model [7]

Usage of XP model Best for projects that are not


large, and involve a small group of developers 3.2 Prototype Model
working for a limited time period. But agile processes Is a partially developed product that enables
require that the developers involved be highly skilled. customers and developers to examine some aspect of
the proposed system and decide if it is suitable or
Scrum The Scrum Methodology is based on the appropriate for the finished product.
Rugby term for individual groups collaborating

 
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 4, No 2, July 2011 
ISSN (Online): 1694‐0814 
www.IJCSI.org    447 
For example developers may build a prototype main objective of Rapid Application Development is
system for key requirements to ensure that the to avoid extensive pre-planning, generally allowing
requirements are feasible and practical and discussed software to be written much faster and making it
with the customers by showing the prototype system , easier to change requirements.
if not, revisions are made at the requirements stage
rather than at the more costly testing stage.

Swift 
project 
Swift  planning  Swift 
Evaluation &  Modeling 
development 

Swift 
Demo 

Fig.8 Prototype Model [2]

3.2 Rapid Application Development


(RAD) Model Fig.9 RAD prototype model [2]

Rapid Application Development (RAD) is an Strength and weakness of some of the popular light
incremental software development process model that weight methodologies are listed in Table 2.
emphasises a very short development cycle and
encourages constant feedback from customers
throughout the software development life-cycle. The
 

Table 2‐ Strength and weakness of some Light Weight Methodologies 

Strength of some Light Weight Methodologies 
Prototype Model  (RAD) Model (XP) Model Scrum Model 
Faster development Time to deliver is less. XP model suit small- It provides an open forum,
results in early delivery medium size projects. It where everyone knows who
and cost saving. mainly emphasis on is responsible for which item.
customer involvement: A
major help to projects
where it can be applied.
Can integrate with other Quick development results in Emphasis on good team Focus on team
models such as waterfall saving of time as well as cost. cohesion. communications, Team spirit
to produce effective and solidarity.
results.
Improved and increased Productivity with fewer people Emphasizes final product. Frequent demonstrations for
user involvement. in short time. early feedback from
stakeholders.
. Progress can be measured. Test based approach to Scrum is mainly useful for
requirements and quality fast moving web 2.0 or new
assurance. media projects.

 
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 4, No 2, July 2011 
ISSN (Online): 1694‐0814 
www.IJCSI.org    448 
Weakness of some Light Weight Methodologies
Prototype Model  (RAD) Model (XP) Model Scrum Model
Lack of documentation results Suitable only when Difficult to balance up to Decision-making is entirely
costly support for upgrading of requirements are well large projects where in the hands of the teams.
the software known. documentation is essential.
Rapid development often Requires user involvement Needs experience and skill To deliver the project in time
results in poor quality software throughout the life cycle. if not to degenerate into there is always a need of
code-and-fix. experienced team member’s
only.
Concentrate mainly on Only Suitable for project Lack of design Project development may be
experimenting with the requiring shorter documentation also effected hugely, If any of the
customer requirement may development times. programming pairs is team members leave during
results in poorly understood. costly. development.
It is a big cost saver in terms Product may lose its The XP method provides Present of Uncommitted team
of project budget as well as competitive edge because essentially no data- members may results in
project time and cost due to of insufficient core gathering guidance. project failure.
reusability of the prototypes. functionality and may
exhibit poor overall XP does not explicitly
quality. plan, measure, or manage
program quality.
Success depends on the Methods are only briefly Scrum requires a certain level
extremely high technical described, when the XP of training for all users, this
skilled developers. method fails in practice, can increase the overall cost
this is usually the cause. of the project.

4: Comparison of Heavy and Light Weight Models in terms of differences and issues
Comparison of Heavy and Light Weight Models in terms of differences and issues are listed in Table 3 [5,8].

Table 3- Comparison of Heavy and Light Weight Models

Differences Light weight Heavy weight


Customers Committed, knowledgeable, collocated, Access to knowledgeable, collaborative,
collaborative, representative, representative, empowered customers
empowered
Requirements Mainly emergent, rapid change. Knowable early, largely stable.
Architecture Designed for current requirements Designed for current and foreseeable
requirements
Size Smaller Team and Products Larger Team and Products
Primary objective Rapid value High assurance
Developers Knowledgeable, collocated, Plan-driven, adequate skills, access to external
collaborative knowledge.
Release cycle In phases (multiple cycles) Big bang (all functionality at once)

Issue Light Weight Heavy Weight


Development life cycle Linear or incremental incremental

Style of development Adaptive Anticipatory


Requirements Emergent – Discovered during the Clearly defined and documented
project.

 
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 4, No 2, July 2011 
ISSN (Online): 1694‐0814 
www.IJCSI.org    449 
Documentation Light (replaced by face to face Heavy / detailed Explicit knowledge
communication)
Team members Co-location of generalist senior Distributed teams of specialists
technical staff
Client Involvement onsite and considered as a team Low involvement
member Active/proactive
Market Dynamic/Early market Mature/Main Street market
Measure of success Business value delivered Conformance to plan

5. Criteria for the Selection of Process model is correct only in the context of the
Model organization or the product under development.
Selection of the suitable software model to use Correct selection is to a great degree dependant
within an organization is critical for overall on having a clear understanding of the groups
success of the project. A project Manager can and types of development models. This is of
use the following criteria to select a suitable further importance given that it’s highly unlikely
model for the development of a new project as that any organization will follow a model
per needs. strictly. Most organizations will opt to use a
The selection of one model over the others is hybrid form that fits the capabilities of their staff
driven by Project size, Budget, Team size, and meets the needs of their business.
criticality of the project and a lot of other factors.
The different aspects which need to be kept in References
mind while selecting a suitable process model [1] M. Fowler, “The New Methodology,” Available at
can be summarized as follows:- http://www.martinfowler.com/articles/newMetho
dology.html Accessed on 25/03/2011.
[2] Ian Sommerville, Software Engineering, UK:
 Reuse of existing Components? Component
Addison Wesley, 2004.
Based approach may be ideal choice.
[3] Julien Lemétayer “identifying the critical factors
 Very large project with High risks or high cost of
in software development methodology FIT”,
failure? A Spiral process Model may be your
Victoria University of Wellington.
best choice.
[4] Padmal Vitharana, “risks and challenges of
 Although your customer have defined business component-based software development”
goals but the requirement are not freeze yet communications of the ACM, Vol. 46, No. 8,
Agile (light Weight) Model will have the August 2003, pp. 67-72.
advantage over others as it has the flexibility to [5] NK. Beck, Extreme Programming explained:
change the requirement at any stage. Embrace change. Reading, Mass., USA: Addison-
 All the developers are experts? And if the project Wesley, 2004.
is small enough, an agile approach may work for [6] M. Rizwan Jameel Qureshi and S.A Hussain, “An
you. Adaptive Software Development Process Model”,
Advances in Engineering Software, Elsevier Ltd
 Want to keep stakeholders involved? An Amsterdam, The Netherlands, Vol.39, No. 8,
Incremental process Model may be what you 2008, pp. 654-658.
need. [7] “Scrum Agile Model” available at:
 Don't have an on-site stakeholder to sit with the http://www.rightwaysolution.com/scrum-agile-
developers? Agile development model is not for development-model.html accessed on:
you. 24/04/2011
[8] M. Rizwan Jameel Qureshi and S.A Hussain, “A
 Developers are not highly skilled? A Waterfall or Reusable Software Component-Based
Spiral process Model can help keep them on Development Process Model”, Advances in
track and out of trouble. Engineering Software, Elsevier Ltd, Amsterdam,
The Netherlands. Vol. 39, No. 2, 2008, pp. 88-94.

6. Conclusion
No one model is necessarily better or worse than
another. As always the selection of a particular

 
IJCSI International Journal of Computer Science Issues, Vol. 8, Issue 4, No 2, July 2011 
ISSN (Online): 1694‐0814 
www.IJCSI.org    450 

Asif Irshad Khan received his bachelor and Master


degree in Computer Science from the Aligarh
Muslim University (A.M.U), Aligarh, India in 1998
and 2001 respectively. He is presently working as a
Lecturer Computer Science at Faculty of Computing
and Information Technology, King Abdul Aziz
University, Jeddah, Saudi Arabia. His area of interest
include software engineering, component based
software engineering and object oriented
technologies. He is a Ph. D. scholar in Singhania
University, Pacheri Bari, Dist. Jhunjhunu,
Rajasthan, India enrolled in 2010.

Dr. M. Rizwan Jameel Qureshi, is an assistant


Professor at IT Department, Faculty of Computing
and Information Technology, King Abdul Aziz
University, Jeddah, Saudi Arabia. He has done his
Ph.D. CS (Software Process Improvement) in 2009.
He is in the field of teaching and research since 2001.
He has published sixteen research papers and five
books at national and international forums. He is
teaching Software Engineering domain courses at
graduate and undergraduate level from more than ten
years.

Dr. Usman Ali Khan, is an assistant Professor at IS


Department, King Abdul Aziz University, Jeddah,
Saudi Arabia. He is in the field of teaching and
research since 1995. He has published thirteen
research papers at national and international forums.
He is teaching Software Engineering domain courses
at graduate and undergraduate level from more than
ten years.

Você também pode gostar