Tải bản đầy đủ (.pdf) (28 trang)

The phases in software development process

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.94 MB, 28 trang )

Trườ
ng
Đạ
i h

c Công nghi

p Tp.HCM
Trung tâm Công ngh

Thông tin

GV: Lê Ngọc Tiến
Email:
Blog:
The Phases in Software Development process
2
Software Life Cycle Models
• Software Life Cycle:
– The period of time that start when a software is
conceived and end when the product no longer
available for use.
– The Software Life Cycle typically includes:
Requirement phase
Design phase
Implementation phase
Test phase
Installation and check out phase
Operation and maintenance phase
3
Software Life Cycle Models (cont)


• Software Life Cycle Models:
Is a particular abstraction that represents a software
life cycle. A software life cycle model is often called a
Software Development Life Cycle (SDLC).
4
Requirement Phase
• The goal is: Understand exact requirements of
the customer and document them properly
• Executed together with the customer
• Produces documents, written in natural language -
description “What the system will do” (not “How” the
system will be done)
• The resultant document is know as “Software
Requirement Specification” (SRS)
5
Design Phase
• The goal is: Transform the requirements
specification into a structure that suitable for
implementation in some programming language
• Overall software architecture is defined
• Produce “Software Design Description” (SDD)
document
• SDD contains sufficient information to begin coding
phase
6
Implementation Phase
• Design representations are translated into
actual programs (Design is implemented)
• Programmers are responsible for documenting the
program, providing an explanation of how procedures

are coded.
• Documentation is essential to test the program and
carry on maintenance once the application has been
installed
7
Test Phase
• After a system has been developed, it is very
important to check if it the customer requirements. For
this purpose, testing of the system is done.
• The major activities are centered around the
examination and modification the code.
8
Installation and Check Out Phase
• Implementation of system means putting up system on
user's site. Acceptance testing ensures that the system
meets all the requirements. If it fulfils the needs then
the system is accepted by the customer and put into
use
9
Operation and Maintenance Phase
• The purpose of this phase is to preserve the value of
software over time. This phase may span for 5 to 50
years whereas development may be 1 to 3 years.
• Software maintenance is a very board activity that
includes error correction, enhancement of capabilities,
deletion of obsolete capabilities, and optimization.
• This is very crucial for the system's life.
10
SDLC MODELS - Build and Fix Model
• An adhoc approach and not well defined

• Product is constructed without specification and design
• May work well on small programming (100-200 lines of
code)
• Maintenance can be extremely difficult without
specification or design documents
Fix
Build
Code
11
Requirement Analysis
& Specification
Requirement Analysis
& Specification
Design
Design
Implementation
& Unit Testing
Implementation
& Unit Testing
Integration
& System Testing
Integration
& System Testing
Operation &
Maintenance
Operation &
Maintenance
SDLC MODELS - Waterfall Model (1)
12
SDLC MODELS - Waterfall Model (2)

• The phases always occur in fixed order and not overlap
• This model is only appropriate when the requirements
are well-understood and changes will be fairly limited
during the design process
• Difficult to define all requirements at beginning of the
project
• Real project rarely sequential
• Difficult to accommodate change after the process is
underway
13
Quick Design
Quick Design
Requirement
Requirement
Implement
Implement
Customer Evaluation
Customer Evaluation
Design
Design
Implementation & Unit Testing
Implementation & Unit Testing
Integration & System Testing
Integration & System Testing
Operation & Maintenance
Operation & Maintenance
Refinement of Requirements
as Per suggestions
Refinement of Requirements
as Per suggestions

Not accepted by customer
accepted by customer
SDLC MODELS - Prototyping Model (1)
14
SDLC MODELS - Prototype Model (2)
• A quick partial implementation of the system is
created before or during the requirements definition
phase.
• The end users of the system use the rapid prototype
and then supply feedback to the project team for
further refinement of the requirements of the system.
• This refinement process continues until the user is
satisfied.
• When the requirements definition process has been
completed, through the development of rapid
prototypes, the detailed design is derived and the
rapid prototype is fine-tuned using code or external
utilities to create a final working product.
15
SDLC MODELS - Prototype Model (3)
• Customer get early interaction with system.
• Developers learn from customers’ reaction to
demonstrations of one or more facets of system
behavior
• Suitable for the projects whose requirements that
frequently changing
• Sometimes a system with poor performance is
produced, especially if the tuning stage is skipped
• The customer may want to have the prototype
delivered rather than waiting for full, well engineered

system.
16
Requirement
Requirement
Design
Design
Implementation
& Unit
Testing
Implementation
& Unit
Testing
Integration
& System
Testing
Integration
& System
Testing
Operation
Operation
Design
Design
Implementation
& Unit
Testing
Implementation
& Unit
Testing
Integration
& System

Testing
Integration
& System
Testing
Operation
Operation
Design
Design
Implementation
& Unit
Testing
Implementation
& Unit
Testing
Integration
& System
Testing
Integration
& System
Testing
Operation
Operation
Release 1
Release 2
Release 3
SDLC MODELS
Iterative Enhancement Model (1)
17
SDLC MODELS
Iterative Enhancement Model (2)

• In the first phase, customers & Developers specify as
many requirements as possible. Then prioritize these
requirements.
• Developers implement the specified requirements in
one or more cycles of design, implementation and test
based on priorities
• Delivery an operational quality product at each release
and one that satisfies only a subset of the customer’s
requirements.
18
SDLC MODELS
Evolutionary Development Model (1)
• Resembles Iterative Enhancement model, but in this
model the requirements are implemented by category
rather than by priority.
• Example: in a sample database application, one cycle
implement GUI, another File manipulation, another
queries, another updates. All four cycles must be
complete before there is working produce available.
19
SDLC MODELS
Evolutionary Development Model (2)
• Should be used when it is not necessary to provide a
minimal version of the system quickly.
• Useful for projects using new technology that not well
understood also used for complex projects where all
functionality must be delivered at one time, but the
requirements not well understood at the beginning.
20
SDLC MODELS

Spiral Model (1)
• Originally proposed by Berry Boehm in 1988.
• Each cycle of the spiral consists of four stages, and
each stage is represented by one quadrant.
• The radius of the spiral represents the cost
accumulated so far in the process and the angular
dimension represents the progress in the process.
• The focus is the identification of problems and the
classification of these into different levels of risks -
aim eliminate high-risk problems before they threaten.
21
SDLC MODELS
Spiral Model (2)
22
SDLC MODELS
Spiral Model (3)
23
Selection of Life Cycle Model
Based on following characteristic:
– Requirements
– Development Team
– Users
– Project type and Associated Risk
24
Selection of Life Cycle Model Based on
Characteristics Requirements
Requirements
Requirements
Waterfall
Waterfall

Prototype
Prototype
Iterative
Iterative
enhancement
enhancement
Evolutionary
Evolutionary
development
development
Spiral
Spiral
Are requirements easily
Are requirements easily
understandable and define?
understandable and define?
Yes
Yes
No
No
No
No
No
No
No
No
Do we change requirements
Do we change requirements
quite often?
quite often?

No
No
Yes
Yes
No
No
No
No
Yes
Yes
Can we define requirements
Can we define requirements
early in the cycle?
early in the cycle?
Yes
Yes
No
No
Yes
Yes
Yes
Yes
No
No
Requirements are indicating
Requirements are indicating
a complex system to be
a complex system to be
build?
build?

No
No
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
25
Selection of Life Cycle Model Based on
Status of Development Team
Development Team
Development Team
Waterfall
Waterfall
Prototype
Prototype
Iterative
Iterative
enhancement
enhancement
Evolutionary
Evolutionary
development
development
Spiral
Spiral
Less experience on similar

Less experience on similar
projects
projects
No
No
Yes
Yes
No
No
No
No
Yes
Yes
Less domain knowledge
Less domain knowledge
(new to the technology)
(new to the technology)
Yes
Yes
No
No
Yes
Yes
Yes
Yes
Yes
Yes
Less experience on tool to
Less experience on tool to
be used

be used
Yes
Yes
No
No
No
No
No
No
Yes
Yes
Available of training if
Available of training if
required
required
No
No
No
No
Yes
Yes
Yes
Yes
No
No

×