The software life cycle typically includes the following:
requirements analysis, design, coding, testing, installation and maintenance.
In between, there can be a requirement to provide Operations and support
activities for the product.
Coding. The development process tends to run iteratively through these phases rather than linearly; several models (spiral, waterfall etc.) have been proposed to describe this process.
Activities in this phase - Create Test Data, Create Source, Generate Object Code, Create Operating Documentation, Plan Integration, Perform Integration
Requirements
Analysis. Software organizations provide solutions to customer
requirements by developing appropriate software that best suits their
specifications. Thus, the life of software starts with origin of requirements.
Very often, these requirements are vague, emergent and always subject to
change.
Analysis is performed to - To conduct in depth analysis
of the proposed project, To evaluate for technical feasibility, To discover how
to partition the system, To identify which areas of the requirements need to be
elaborated from the customer, To identify the impact of changes to the
requirements, To identify which requirements should be allocated to which
components.
Design
and Specifications. The outcome of requirements analysis is the
requirements specification. Using this, the overall design for the intended
software is developed.
Activities in this phase - Perform Architectural Design
for the software, Design Database (If applicable), Design User Interfaces,
Select or Develop Algorithms (If Applicable), Perform Detailed Design.Coding. The development process tends to run iteratively through these phases rather than linearly; several models (spiral, waterfall etc.) have been proposed to describe this process.
Activities in this phase - Create Test Data, Create Source, Generate Object Code, Create Operating Documentation, Plan Integration, Perform Integration
Testing. The
process of using the developed system with the intent to find errors. Defects/flaws/bugs
found at this stage will be sent back to the developer for a fix and have to be
re-tested. This phase is iterative as long as the bugs are fixed to meet the
requirements.
Activities in this phase - Plan Verification and
Validation, Execute Verification and validation Tasks, Collect and Analyze
Metric Data, Plan Testing, Develop Test Requirements, Execute Tests
Installation. The
so developed and tested software will finally need to be installed at the
client place. Careful planning has to be done to avoid problems to the user
after installation is done.
Activities in this phase - Plan Installation,
Distribution of Software, Installation of Software, Accept Software in
Operational Environment.
Operation
and Support. Support activities are usually performed by
the organization that developed the software. Both the parties usually decide
on these activities before the system is developed.
Activities in this phase - Operate the System, Provide
Technical Assistance and Consulting, Maintain Support Request Log.
Maintenance. The
process does not stop once it is completely implemented and installed at user
place; this phase undertakes development of new features, enhancements etc.
Activities in this phase - Reapplying Software Life
Cycle.
Various
Life Cycle Models
The way you approach a particular application for testing
greatly depends on the life cycle model it follows.This is because, each life
cycle model places emphasis on different aspects of the software i.e. certain
models provide good scope and time for testing whereas some others don’t. So,
the number of test cases developed, features covered, time spent on each issue
depends on the life cycle model the application follows.
No matter what the life cycle model is, every application
undergoes the same phases described above as its life cycle.
Following are a few software life cycle models, their
advantages and disadvantages.
Waterfall Model
|
Prototyping
Model
|
Spiral
Model
|
Prototyping Model
Spiral Model
Strengths:
•Emphasizes
completion of
one phase before
moving
on
•Emphasizes early
planning, customer
input,
and design
•Emphasizes testing
as an
integral part of
the life
cycle
•Provides quality
gates at
each life cycle
phase
Weakness:
•Depends on
capturing
and freezing
requirements
early in the life
cycle
•Depends on
separating
requirements from
design
• Feedback is only
from
testing phase to any
previous stage
•Not feasible in
some
organizations
• Emphasizes
products
rather
than processes
|
Strengths:
•Requirements can
be
set earlier and
more
reliably
•Requirements can
be
communicated more
clearly and
completely
between developers
and
clients
•Requirements and
design options can
be
investigated
quickly and
with low cost
•More requirements
and
design faults are
caught
early
Weakness:
•Requires a
prototyping
tool and expertise
in
using it – a cost
for the
development
organization
•The prototype may
become the production
system
|
Strengths:
• It promotes reuse
of existing software
in early stages of
development.
• Allows quality
objectives to be
formulated during
development.
• Provides
preparation for eventual
evolution of the
software product.
• Eliminates errors
and unattractive
alternatives early.
• It balances
resource expenditure.
• Doesn’t involve
separate approaches
for software
development and software
maintenance.
• Provides a viable
framework for
integrated
Hardware-software system
development.
Weakness:
• This process
needs or usually
associated with
Rapid Application
Development, which
is very difficult
practically.
• The process is
more difficult to
manage and needs a
very different
approach as opposed
to the waterfall
model (Waterfall model
has
management
techniques like GANTT
charts
to assess)
|
No comments:
Post a Comment