You are on page 1of 37

UNIT I

Topic: SDLC

1
Incremental SDLC Model
• Construct a partial
implementation of a total system
• Then slowly add increased
functionality
• The incremental model prioritizes
requirements of the system and
then implements them in the
groups.
• Each subsequent release of the
system adds function to the
previous release, until all
designed functionality has been
implemented.
Incremental Model Strengths
• Develop high-risk or major functions first
• Customers get important functionality early
• Initial product delivery is faster
• Lowers initial delivery cost
• Each release delivers an operational product
• Customer can respond to each module that was built
by the group.
• Risk of changing requirements is reduced
• Uses “divide and conquer” breakdown of tasks
Incremental Model Weaknesses
• Requires good planning and design

• Requires early definition of a complete and fully


functional system to allow for the definition of
increments

• Well-defined module interfaces are required (some


will be developed long before others)

• Total cost of the complete system is not lower


When to use the Incremental Model
• Risk, funding, schedule, program complexity, or need
for early realization of benefits.
• Most of the requirements are known up-front but
are expected to evolve over a period of time.
• A need to get basic functionality to the market early
• On projects which have lengthy development
schedules
• On a project with new technology
Spiral Model
• Since end-user requirements are hard to
obtain/define, it is natural to develop
software in an experimental way:
e.g:-
1. Build some software
2. See if it meets customer requirements
3. If not goto step1 else stop.
• In 1988 Boehm developed the spiral model
as an iterative model which includes risk
analysis and risk management.

• This loop approach gives rise to structured


iterative lifecycle model.

Key idea: on each iteration identify and solve


the sub-problems with the highest risk.
Each cycle follows a waterfall model by:
1. Determining objectives
2. Specifying constraints
3. Generating alternatives
4. Identifying risks
5. Resolving risks
6. Developing next-level product
7. Planning next cycle
Cumulative cost Evaluate alternatives,
Determine objectives, Identify & resolve risks
alternatives & constraints

Prototypes Operational
Review & Start P1 P2 P3 Prototype
commitment Requirements Concept
Design, Detailed design
plan Of Operation Validation
Development & Verification
plan Requirements
validation Coding
Integration &
Test plan Unit & Integration
Testing
End Acceptance Develop & verify
Plan next phase
Testing next-level product
Advantages
1. Realism: the model accurately reflects the
iterative nature of software development on
projects with unclear requirements.

2. Flexible: incoporates the advantages of the


waterfall and rapid prototyping methods.

3. Comprehensive model decreases risk

4. Good project visibility.


Disadvantages
• Needs technical expertise in risk analysis to really
work

• Model is poorly understood by non-technical


management, hence not so widely used.

• Complicated model, needs competent professional


management.

• High administrative overhead.


When to use spiral model
• Projects that requires risk management also in
parallel to implementation.

• Projects that is not having clear user


requirements.
Rapid Prototyping
Rapid prototyping emphasises requirements
analysis and validation, also called:
• Customer oriented development
• Evolutionary prototyping

Key idea: Customers are non-technical and


usually don’t know what they want/can have.
Requirements Capture

Iterate
Quick Design

Build Prototype

Customer Evaluation of
Prototype

The Rapid Engineer Final


Product
Prototype Workflow
Advantages
1. Reduces risk of incorrect user requirements.

2. Regular visibility of progress that aids


management.

3. Supports early product marketing.


Disadvantages I
1. An unstable/badly implemented prototype
often becomes the final product.

2. Requires extensive customer collaboration


– Costs customers time and money
– Needs committed customers
– Difficult to finish if customer withdraws
– May be too customer specific, no broad market
Disadvantages II
3. Difficult to know how long project will
survey.

4. Easy to fall back into code-and-fix model


without proper requirements analysis,
design, customer evaluation and feedback.
When to use rapid prototyping model
• Good for projects where requirements are
changing in unpredicted manner or
uncommitted.

• Projects that should be developed with


very short duration.
Rapid Application Development

Model (RAD)
Requirements planning phase (a workshop utilizing
structured discussion of business problems)

• User description phase – automated tools capture


information from users

• Construction phase – productivity tools, such as code


generators, screen generators, etc. inside a time-box. (“Do
until done”)

• Cutover phase -- installation of the system, user


acceptance testing and user training
RAD Strengths
• Reduced cycle time and improved productivity with fewer
people means lower costs

• Time-box approach mitigates cost and schedule risk

• Customer involved throughout the complete cycle minimizes


risk of not achieving customer satisfaction and business needs

• Focus moves from documentation to code (WYSIWYG).

• Uses modeling concepts to capture information about


business, data, and processes.
RAD Weaknesses
• Accelerated development process is required
to give quick responses to the user.

• Risk of never achieving closure .

• Hard to use with legacy systems.

• Requires a system that can be modularized.

• Developers and customers must be


committed to rapid-fire activities in an
When to use RAD
• Reasonably well-known requirements
• User involved throughout the life cycle
• Project can be time-boxed
• Functionality delivered in increments
• High performance not required
• Low technical risks
• System can be modularized
Unified Process (UP)
• Booch, Jacobson, Rumbaugh 1999.
• Lifetime of a software product in cycles:
Birth, childhood, adulthood, old-age,
death.
• Product maturity stages
• Each cycle has phases, culiminating in a new
release (c.f. Spiral model)
Inception Elaboration

Transition Construction

UP Lifecycle – single phase workflow


(drawn as a UML Statechart!)
• Inception – identify core use cases, and use
to make architecture and design tradeoff.
Estimate and schedule project from derived
knowledge.
• Elaboration – capture detailed user
requirements. Make detailed design,
decide on build vs. buy.
• Construction – components are bought or
built and integrated.
• Transition – release a mature version that
satisfies acceptance criteria.
Unified Process
Product
Management Software Lifecycle

Environment * * releases
Workflow Cycle

Requirements
Inception
4
Design
Phase Elaboration

Implementation
*
Construction

Assessment Iteration
Transition

Deployment *
Artifact
UML class diagram!
Use Case Model

specified by
realised by
Analysis Model
deployed by implemented by

Design Model verified by

Deployment Model

Implementation Model
All models are interdepedent
but this is shown for only use Test Model
case model
COTS
• COTS =
Commercial Off-The-Shelf software
• Engineer together a solution from existing
commercial software packages using minimal
software ”glue”.
• E.g. using databases, spread sheets, word
proccessors, graphics software, web browsers,
etc.
Advantages
• Fast, cheap solution
• May give all the basic functionality
• Well defined project, easy to run
Disadvantages
• Limited functionality
• Licensing problems, freeware, shareware,
etc.
• License fees, maintainance fees, upgrade
compatibility problems
Agile Principles (Summary)
• Continuous collaboration with customer
• Continuous update according to changes
• Continuous delivery of software
• Value participants and their interaction
• Simplicity in code, satisfy the specifications
Agile (XP) Manifesto

XP = Extreme Programming emphasises:


• Individuals and interactions
– Over processes and tools
• Working software
– Over documentation
• Customer collaboration
– Over contract negotiation
• Responding to change
– Over following a plan
XP Practices (Summary)
• Programming in pairs
• Test driven development
• Continuous planning, change , delivery
• Shared project metaphors, coding standards
and ownership of code
• No overtime! (Yeah right!)
Advantages
• Lightweight methods suit small-medium size
projects
• Produces good team cohesion
• Emphasises final product
• Iterative
• Test based approach to requirements and
quality assurance
Disadvantages
• Difficult to scale up to large projects where
documentation is essential

• Needs experience and skill if not leads to


degenerate into code-and-fix

• Programming pairs is costly

• Test case construction is a difficult and


specialized skill is requirred.
Answer the following questions
For each of the following documents, indicate in which phase(s) of the software
life cycle those documents are produced:

1. Final user manual


2. Architectural design
3. SQA plan
4. Module specification
5. Source code
6. Statement of work
7. Test plan
8. Preliminary user manual
9. Detailed design
10. Cost estimate
11. Project plan
12. Test report
13. Documentation
14. Client survey
35
Answer !!!

1.Implementation phase
2.Design phase
3.Project planning phase
4.Design phase
5.Implementation phase
6.Feasibility phase
7.Testing phase
8.Requirements phase
9.Design phase
10.Project planning phase
11.Project planning phase
12.Testing phase
13.Implementation phase
14.Maintenance phase

36
Tutorial
• Suppose that you have to build a product to
determine the inverse of 3.546784 to four
decimal places.

• Once the product has been implemented and


tested, it will be thrown away.

• Which life-cycle model would you use? Give


reasons for your answer.
37

You might also like