Вы находитесь на странице: 1из 5

International Journal of Emerging Trends & Technology in Computer Science (IJETTCS)

Web Site: www.ijettcs.org Email: editor@ijettcs.org, editorijettcs@gmail.com


Volume 3, Issue 3, May-June 2014 ISSN 2278-6856

Volume 3, Issue 3 May June 2014 Page 203


Abstract: The field of software engineering is related to the
development of software. Large software needs systematic
development. Simple Programs can be developed without
following any systematic approach. From the last few years,
the computer industry has undergone revolutionary changes
in hardware as well as in software. Software management is a
process that specifies the area of software development
through the process models, which are known as software
development life cycle. A brief overview about different
models of software development and comparison between
them was analyzed. This Paper categorizes and specifies a
number of methods for describing or modeling how software
systems are developed. It begins with background and
definitions of traditional software life cycle models and
current software development practices.

Keywords: Software design, software management
process, software design, framework activities, software
development life cycle.

1. INTRODUCTION
The importance of computer is increasing day by day.
Computer has become popular in different fields such as
industry, medicine, commerce, education and even
agriculture. Now a days, organizations become more
dependent on computer in their works as a result of
computer technology [4]. Computer is considered a
timesaving 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, has increased recently which
results in the difficulty of enumerating such companies.
Today, software takes on a dual role. It is a product and,
at the same time, the vehicle for delivering a product.
Most of the people consider the program and software
[12, 13] to be same. But software not only consists of
programs but also the supporting documents. Software
lifecycle models are used as tools for planning and
monitoring software projects. Different models have been
proposed. Each models effectiveness varies with project
circumstances. It is widely acknowledged that no single
model is effective in all situations. Because of this, an
effective model must be selected for every project.

A software process model[14][5] is an abstract
representation of a process. It presents a description of a
process from some particular perspective as:
Requirement Gathering: To develop software, first we
have to gather all the requirements from customer or
stakeholder.
Planning: Basing on the requirements, budget, time has
to be adjusted to develop the software.
Analysis & Design: Complete Analysation is done on the
requirements and planning. After complete analysation
designing is started. For the design, different tools are
used.
Implementation: For the above design, code is generated
with proper programming language.
Testing and Maintenance: After completion of developing
software, testing is performed. If the product is well tested
then it will go for alpha and beta tests.

The above activities are called frame work activities. In
any software life cycle models or software process models
these five activities are performed and modified.

2. SOFTWARE APPLICATIONS
Software may be applied in any situation for which a pre-
specified set of procedural steps (i.e., an algorithm) has
been defined (notable exceptions to this rule are expert
system software and neural network software).
Information content and determinacy are important
factors in determining the nature of a software
application[6]. Content refers to the meaning and form of
incoming and outgoing information.

The following software areas indicate the breadth of
potential applications[14].
System software.: System software is a collection of
programs written to service other programs. Some system
software (e.g., compilers, editors, and file management
utilities) processes are complex, but determinate,
information structures. Other systems applications (e.g.,
operating system components, drivers,
telecommunications processors) process largely
indeterminate data. In either case, the system software
area is characterized by heavy interaction with computer
hardware; heavy usage by multiple users; concurrent
operation that requires scheduling, resource sharing, and
sophisticated process management; complex data
structures; and multiple external interfaces.
Real-time software: Software that
monitors/analyzes/controls real-world events as they
occur is called real time. Elements of real-time software
include a data gathering component that collects and
formats information from an external environment, an
Analysis of Software Process Models and
Applications

K.Venkataramani
1


1
Sr.Asst.Professor,
Dadi Institute of Engineering & Technology,
NH-5,Anakapalli, Visakhapatnam 531002, INDIA
International Journal of Emerging Trends & Technology in Computer Science (IJETTCS)
Web Site: www.ijettcs.org Email: editor@ijettcs.org, editorijettcs@gmail.com
Volume 3, Issue 3, May-June 2014 ISSN 2278-6856

Volume 3, Issue 3 May June 2014 Page 204


analysis component that transforms information as
required by the application, a control/output component
that responds to the external environment, and a
monitoring component that coordinates all other
components so that real-time response can be
maintained.
Business software: Business information processing is the
largest single software application area. Discrete
"systems" (e.g., payroll, accounts receivable/payable,
inventory) have evolved into management information
system (MIS) software that accesses one or more large
databases containing business information. Applications
in this area restructure existing data in a way that
facilitates business operations or management decision
making. In addition to conventional data processing
application, business software applications also
encompass interactive computing (e.g., pointof- sale
transaction processing).
Engineering and scientific software: Engineering and
scientific software have been characterized by "number
crunching" algorithms. Applications range from
astronomy to volcanology, from automotive stress
analysis to space shuttle orbital dynamics, and from
molecular biology to automated manufacturing[7].
However, modern applications within the
engineering/scientific area are moving away from
conventional numerical algorithms. Computer-aided
design, system simulation, and other interactive
applications have begun to take on real-time and even
system software characteristics.
Embedded software.:Intelligent products have become
commonplace in nearly every consumer and industrial
market. Embedded software resides in read-only memory
and is used to control products and systems for the
consumer and industrial markets. Embedded software can
perform very limited and esoteric functions (e.g., keypad
control for a microwave oven) or provide significant
function and control capability (e.g., digital functions in
an automobile such as fuel control, dashboard displays,
and braking systems).
Personal computer software:The personal computer
software market has burgeoned over the past two decades.
Word processing, spreadsheets, computer
graphics,multimedia, entertainment, database
management, personal and business financial
applications, external network, and database access are
only a few of hundreds of applications.
Web-based software:The Web pages retrieved by a
browser are software that incorporates executable
instructions (e.g., CGI, HTML, Perl, or Java), and data
(e.g.,hypertext and a variety of visual and audio formats).
In essence, the network becomes a massive computer
providing an almost unlimited software resource that can
be accessed by anyone with a modem.

Artificial intelligence software: Artificial intelligence
(AI) software makes use of nonnumerical algorithms to
solve complex problems that are not amenable to
computation or straightforward analysis[4]. Expert
systems, also called knowledgebased systems, pattern
recognition (image and voice), artificial neural networks,
theorem proving, and game playing are representative of
applications within this category.

3. PROCESS MODELS
The classic software life cycle models [3][13] usually
include some version or subset of the following activities:
Communication: There must be proper communication
between user and developer for better understanding of
requirements.
Planning : planning for the proper budget and deadline
are prepared.
Analysis & Design: Analyze all requirements and
construct proper design using design techniques.
Implementation: Code is written in understandable
programming language.
Deployment: Testing is performed and released to end
users.

A software process model [8] is an abstract
representation of a process. It presents a description of a
process from some particular perspective as:
1. Specification.
2. Design.
3. Validation.
4. Evolution.

General Software Process Models[1] are:
1. Waterfall model: Separate and distinct phases of
specification and development.
2. Prototype model.
3. Rapid application development model(RAD).
4. Evolutionary development: Specification,
5. Development and validation are interleaved.
6. Incremental model.
7. Iterative model.
8. Spiral model.

1. Water fall model:
The waterfall model is the classical model of software
engineering. This model is one of the oldest models and
is widely used in government projects [2] and in many
major companies. This model includes requirement
gathering, planning, analysis & design, implementation,
deployment.



International Journal of Emerging Trends & Technology in Computer Science (IJETTCS)
Web Site: www.ijettcs.org Email: editor@ijettcs.org, editorijettcs@gmail.com
Volume 3, Issue 3, May-June 2014 ISSN 2278-6856

Volume 3, Issue 3 May June 2014 Page 205


As this model emphasizes planning in early stages, it
ensures design flaws before they develop. The model
begins with establishing system requirements and
software requirements and continues with architectural
design, detailed design, coding, testing, and maintenance.
The waterfall model serves as a baseline for many other
lifecycle models.

2.Prototype Model:
The concept of prototyping is not new in various streams
of engineering. A prototype is a partially developed
product. Management define prototyping as a process [6]
of developing working replica of a system. This activity of
prototyping now forms the basis of prototype software
development life cycle model. Most of the users do not
exactly know what they want until they actually see the
product. Prototyping is used for developing a mock-up of
product and is used for -obtaining user feedback in order
to refine it .

Rapid Throwaway Prototyping: This approach is used for
developing the systems or part of the systems where the
development team does not have the understanding of the
system. The quick and dirty prototypes are built, verified
with the customers and thrown away. This process
continues till a satisfactory prototype [9] is built. At this
stage now the full scale development of the product
begins.
Evolutionary Prototyping: This approach is used when
there is some understanding of the requirements. The
prototypes thus built are not thrown away but evolved
with time. The concept of prototyping has also led to the
Rapid prototyping model and the Spiral model.

3. Rapid application development model (RAD):
The Rapid Application Development (RAD) model
[9][10] was proposed by IBM in 1980s and later on was
introduced to software community by James Martin
through his book Rapid Application development. The
RAD model consists of following phases:


1. Requirements Gathering focuses on collecting
requirements using elicitation
techniques [14]
2. User Description Requirements are detailed by taking
users feedback by building prototype using development
tools.
3. Construction The prototype is refined to build the
product and released to the customer.
4. Cutover or testing involves acceptance testing by the
user and their training.
5. Deployment: Maintenance of the product.

4.. Incremental model:

The Incremental Software Development Life
Cycle Model Software like all other complex systems is
bound to evolve due to changing business requirements or
new requirements coming up [2]. Hence there is a need to
have a model which can accommodate the changes in the
product.
The models discussed earlier do not take into
consideration the evolutionary nature of the product.
Evolutionary models are also iterative in nature.

The incremental software development life cycle
model is one of the popular evolutionary software process
model used by industry.In this model ,once the product is
developed and wants to add new features later then
incremental models are used.


International Journal of Emerging Trends & Technology in Computer Science (IJETTCS)
Web Site: www.ijettcs.org Email: editor@ijettcs.org, editorijettcs@gmail.com
Volume 3, Issue 3, May-June 2014 ISSN 2278-6856

Volume 3, Issue 3 May June 2014 Page 206


5. Spiral model:
The spiral model[14] is similar to the incremental model,
with more emphases 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[14] in the planning phase, requirements are
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 date
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[7][11].

Importance of model selection
The selection for a software lifecycle model for a project
is an important decision . It impacts on project success by
affecting the following:
The software lifecycles overall cost
The distribution of cost over the software lifecycle
Software development speed
Software quality
The ability to tracking and control the project
The projects overhead
The level of risk associated with the project
Client relations



No single software lifecycle model is appropriate for all
situations. This is due to the diversity in project, system
and organisational characteristics[12]. This fact is
reflected by the standards. Because of this, a software
lifecycle model must to be selected to suit each projects
characteristics.

4. CONCLUSION
The Software life cycle models are the tools that help to
manage software life cycle. They will provide common
understanding about life cycles. This paper represents
comparison of different software process models. These
models specify process consistency and improvement.
Each model has its own strengths and weaknesses.
Some models are more appropriate in certain project
circumstance than others. The selection of a software
lifecycle model for a project is an important decision. The
use of an inappropriate model can be detrimental to
project success and software quality. This paper
categorizes and examines a number of methods for
describing or modeling how software systems are
developed , what are the applications of software etc.. It
begins with background and definitions of traditional
software life cycle models and current software
development practices.

References
[1] Balzer, R., Transformational Implementation: An
Example, IEEE Trans. Software Engineering, 7, 1, 3-
14,1981.
[2] Kaiser, G., P. Feiler, and S. Popovich, Intelligent
Assistance for Software Development and
Maintenance, IEEE Software, 5, 3, 1988.
[3] Zave, P., The Operational Versus the Conventional
Approach to Software Development,
Communications of the ACM, 27, 104-118, 1984.
[4] Ian Sommerville, "Software Engineering", Addison
Wesley, 7th edition, 2004.
[5] Steve Easterbrook, "Software Lifecycles", University
of Toronto Department of Computer Science, 2001.
[6] Karlm, "Software Lifecycle Models', KTH,2006 .
[7] CTG. MFA 003, "A Survey of System
Development Process Models", Models for Action
Project: Developing practical Approaches to
Electronic Records management and Preservation,
Center for Technology in Government university at
Albany / Suny,1998 .
[8] A.T. Bahill. and S. J. Henderson. Requirements
Development, Verification and Validation Exhibited
in Famous Failures. Wiley Periodicals, Inc,
Systems Engineering, 8(1): 1-14,2005.
[9] B.Nuseibeh and S.Easterbrook. Requirements
engineering: a roadmap. In Proceedings of the
Conference on the future of Software Engineering.
Limerick, Ireland 2000.
[10] Alexander, L, Davis, A, Criteria for Selecting
Software Process Models, presented at COMPSAC
1991.
[11] International Organisation for Standardization /
International Electrotechnical Commission 2004.
Software Engineering Guide to the Software
Engineering Body of Knowledge (SWEBOK),
ISO/IEC TR, 1975.
[12] Comer, E, Alternative Software Life Cycle Models,
presented at International Conference on Software
Engineering 1997.
[13] JJ Kuhl, "Project Lifecycle Models: How They Differ
and When to Use Them",2002
www.businessesolutions.com
International Journal of Emerging Trends & Technology in Computer Science (IJETTCS)
Web Site: www.ijettcs.org Email: editor@ijettcs.org, editorijettcs@gmail.com
Volume 3, Issue 3, May-June 2014 ISSN 2278-6856

Volume 3, Issue 3 May June 2014 Page 207


[14] Software Engineering-Practitioners approach-Roger
S Pressman


AUTHOR

Venkataramani Korupala is a Sr. Assistant
Professor in the Department of Computer
Science & Engineering, Dadi Institute of
Engineering and Technology (Affiliated to
JNTUK), Anakapalle, Visakhapatnam, Andhra Pradesh,
India. She obtained his M.Tech in Computer Science and
Engineering from JNTU, Kakinada. Her main research
interests are Software Engineering, Mobile Computing,
Computer Networks.

Вам также может понравиться