Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

Unit 2.

Software Life-Cycles

Fall 2002

Soo Dong Kim, Ph.D.


Object Technology Laboratory
Soongsil University, Seoul, Korea
sdkim@comp.ssu.ac.kr http://object.ssu.ac.kr

2-1 © 2002 Soo Dong Kim

S/W Engr as a Layered Technology


Ü Quality Focus
q Organizational Commitment to Quality
Ü Process
q Foundation of Software Engineering
Ü Methods tools

q Technical ‘How-To’s methods


process model
Ü Tools “ quality
quality”” focus
q (Semi-) Automated Support
for Process and Methods

Software Engineering
Engineering Foundation 2-2 © 2002 Soo Dong Kim
Generic Phases

Definition
Definition Development
Development Maintenance
Maintenance

1. Definition Phase
q Key Requirements are identified.
q Major Tasks
m System or Information Engineering (Chapter 10)
m Project Management (Chapters 3 - 7)

m Requirements Analysis (Chapters 11, 12 and 20)

Software Engineering
Engineering Foundation 2-3 © 2002 Soo Dong Kim

Generic Phases
2. Development Phase
q Focuses on ‘How’.
q Major Tasks
m Software Design
m Code Generation

m Software Testing

Software Engineering
Engineering Foundation 2-4 © 2002 Soo Dong Kim
Generic Phases
3. Maintenance Phase
q focuses on ‘Changes’.
q Major Tasks
m Correction to correct defects
m Adaptation to external environment and business
rules
m Enhancement for additional functions

m Prevention for more easier maintenance

Software Engineering
Engineering Foundation 2-5 © 2002 Soo Dong Kim

Umbrella Activities
Umbrella
Umbrella Activities
Activities

Definition
Definition Development
Development Maintenance
Maintenance
Ü Major Tasks
q Project Tracking and Control
q Formal Technical Reviews
q Quality Assurance
q Configuration Management
q Document Preparation and Production
q Reusability Management
q Measurement
q Risk Management

Software Engineering
Engineering Foundation 2-6 © 2002 Soo Dong Kim
Process Model
Ü A process model defines an ‘order’ to development
activities.
Ü A process model is chosen based on the nature of
the project, application, methods, tools, and
deliverables.
Ü Process Adaptability
q The framework activities will always be applied on
every project ... BUT, the tasks (and degree of rigor)
for each activity will vary based on:
m the type of project (an “entry point” to the model)
m characteristics of the project
m common sense judgment; concurrence of the project team

Software Engineering
Engineering Foundation 2-7 © 2002 Soo Dong Kim

Software Process Models


Ü A Variety of Process Models
q Linear Sequential Model
q Prototyping Model
q RAD Model
q Evolutionary Models
m Incremental Model
m Spiral Model

m Component Assembly Model

q Formal Methods Model


q Fourth Generation Techniques

Software Engineering
Engineering Foundation 2-8 © 2002 Soo Dong Kim
Linear Sequential Model
Ü Sequential approach to S/W development
Ü Called ‘Classic Life Cycle’, ‘Waterfall Model’

System/information
System/information
engineering
engineering

Analysis
Analysis Design
Design Code
Code Test
Test

Software Engineering
Engineering Foundation 2-9 © 2002 Soo Dong Kim

Linear Sequential Model


Ü Drawbacks
q Real projects rarely follow the sequential flow.
m Changes can cause confusion as the team proceeds.
q Often difficult for the customer to state all
requirements explicitly.
q The customer must have patience.
m A working version of the program will be available late.
m Late-found errors can be disastrous.
q Developers are often delayed unnecessarily.
m ‘Blocking States’ in which some members must wait for
other members of the team to complete dependent tasks.

Software Engineering
Engineering Foundation 2-10 © 2002 Soo Dong Kim
Prototyping Model
Ü Effective Situations
q Requirements are hard to formulate, i.e. unclear or
fuzzy.
q Feasibility of a project may be questionable.
Ü Basic Notion
q Begins with Requirements Gathering
q A ‘Quick Design’is followed.
q A prototype is made, i.e. a working model of the
system
q A prototype can serve as ‘the first system’, and may
be discarded.
m The actual software is engineered with an eye toward quality
and maintainability.

Software Engineering
Engineering Foundation 2-11 © 2002 Soo Dong Kim

Prototyping Model

Listen
Listen to
to Build/revise
Build/revise
customer.
customer. mock-
mock -up.
mock-up.

Customer
Customer
test-
test-drives
test-drives
mock-
mock -up.
mock-up.

Software Engineering
Engineering Foundation 2-12 © 2002 Soo Dong Kim
Prototyping Model
Ü Advantages
q Being Real and Tangible
m Satisfying client's I will know it when I see it manner
m The client can look at and try out.
m A basis for concrete comparisons and specific requirements.
q Extracting correct and precise requirements, and
hence making sure the client gets the system wanted.
q Creating a common reference point for both the
client and developers
q Cultivating the client participation and commitment
to the project.

Software Engineering
Engineering Foundation 2-13 © 2002 Soo Dong Kim

Prototyping Model
Ü Drawbacks
q Creating a False Belief
m The prototype is the final product.
m Delivery of the final product is almost immediate.

q Overselling the Prototype


m May lead the client to expect more from the final
system.
q More Difficult Management and Control
m Specific phases, milestones and deliverables are
lacking.
m Assessing the actual progress is harder.

Software Engineering
Engineering Foundation 2-14 © 2002 Soo Dong Kim
RAD Model
Ü A high-speed adaptation of the Linear Sequential
Process model in which rapid development is
achieved.
q To create a fully functional system within very short
time periods, e.g. 60 to 90 days.
Ü Effective Situation
q If the business application can be modularized in a
way that each major function to be completed in less
than 3 months.
q Not all types of applications are appropriate for RAD.
m If the system cannot be properly modularized,
m If high performance is required, and performance is tuned
separately,
m When technical risks are high,

Software Engineering
Engineering Foundation 2-15 © 2002 Soo Dong Kim

RAD Model
Ü Each major function is addressed by a
separate RAD team.
q Uses reusable program components
m Cornerstone of Object Technology
Ü Drawbacks
q For large, but scaleable projects, RAD requires
sufficient human resources to create the right
number of RAD teams.
q RAD requires a high level of commitment to
rapid-fire activities.

Software Engineering
Engineering Foundation 2-16 © 2002 Soo Dong Kim
RAD Model
Team #2 Team #3
Team #1 business
business
business
business modeling
modeling
business modeling
modeling
business data
data
modeling
modeling data
modeling
modeling
data process
modeling process
modeling modeling
modeling
data
data
process application
application
modeling
modeling process
modeling generation
generation
modeling
testing
testing&&
process
process application
application
turnover
turnover
modeling
modeling generation
generation
testing
testing&&
application
application turnover
turnover
generation
generation

testing
testing &&
turnover
turnover

60--90 Days
60
Software Engineering
Engineering Foundation 2-17 © 2002 Soo Dong Kim

Evolutionary Process Model


Ü Iterative Process
q Enables S/W engineers to develop increasingly
more complete versions of softwares.
Ü Incremental Model
q combines linear sequential model with
prototyping
q Each linear sequence produces a deliverable
‘increment’of the software.
m often bases on Functional Completeness
m The first increment is often a core product.

q Useful when staffing is unavailable for a


complete implementation.

Software Engineering
Engineering Foundation 2-18 © 2002 Soo Dong Kim
Evolutionary Process Model
System/information
System/information
engineering
engineering
Delivery of
Analysis
Analysis Design
Design Code
Code Test
Test 1st Increment
Increment 1

Delivery of
Analysis
Analysis Design
Design Code
Code Test
Test 2nd Increment
Increment 2
Delivery of
Increment 3 Analysis
Analysis Design
Design Code
Code Test
Test 3rd Increment

Increment 4 Analysis
Analysis Design
Design Code
Code Test
Test
Delivery of
4th Increment
calendar time
Software Engineering
Engineering Foundation 2-19 © 2002 Soo Dong Kim

Evolutionary Process Model


Ü Spiral Model
q Software is developed in a series of
incremental releases.
q The early release might be a paper model or a
prototype.
q Framework Activities
m Customer Communication
m Planning
m Risk Analysis
m Engineering
m Construction and Release
m Customer Evaluation

Software Engineering
Engineering Foundation 2-20 © 2002 Soo Dong Kim
Evolutionary Process Model
Planning

Risk
Customer
Analysis
Communication

Engineering
Customer
Evaluation
Construction & Release

Software Engineering
Engineering Foundation 2-21 © 2002 Soo Dong Kim

Evolutionary Process Model


Ü Spiral Model adapted for Entire Life-Cycle
q apply throughout the life of software
q Each cube on the project entry point
represents the start of a
new project.
Ü Advantages
q Risk Reduction
q Realistic Approach for large scale systems
Ü Drawbacks
q Hard to control
q Hard to convince customers

Software Engineering
Engineering Foundation 2-22 © 2002 Soo Dong Kim
Evolutionary Process Model
Planning

Risk
Customer
Analysis
Communication

Project
entry
point axis

Engineering
Customer
Evaluation
Construction & Release

Product Maintenance Projects


Product Enhancement Projects
New Product Development Projects
Concept Development Projects
Software Engineering
Engineering Foundation 2-23 © 2002 Soo Dong Kim

Evolutionary Process Model


Ü Component Assembly Model
q Incorporates the spiral model.
q Composes the application from prepackaged
software components, e.g. objects and classes.
q Utilizes object technology.
q Classes created in the past are stored in a class
library.
q High Reusability
m 70% Reduction in Development Time
m 84% Reduction in Project Cost
m 26.2 Productivity Index, compared to 16.9,
industry norm

Software Engineering
Engineering Foundation 2-24 © 2002 Soo Dong Kim
Evolutionary Process Model
identify
candidate
components

construct look up
nth integration components
of system in library
Planning

Risk Analysis put new extract


Customer
components components
Communication in library if available

build
components
if unavailable
Customer
Evaluation Engineering
Construction & Release

Software Engineering
Engineering Foundation 2-25 © 2002 Soo Dong Kim

Formal Methods Model


Ü Writes mathematical specification of software.
Ü Formal methods are used to specify, develop and
verify the software by applying a rigorous,
mathematical notation.
Ü Cleanroom Software Engineering
Ü Advantages
q Formal Methods for eliminating Ambiguity,
Incompleteness, Inconsistency
Ü Disadvantages
q Poor Applicability due to:
m Quiet Time-Consuming
m Few engineers have the required formal background.

Software Engineering
Engineering Foundation 2-26 © 2002 Soo Dong Kim
Fourth Generation Techniques
Ü Begins with a requirement gathering
q Engineers specify the characteristics of software.
Ü The 4GT automatically generates source code.
Ü Advantage
q For small and intermediate applications, the
development time is greatly reduced.
Ü Drawbacks
q For larger softwares, a design strategy is required.
q The code generated might need to fine-tuned.
q May not be easier than programming languages.

Software Engineering
Engineering Foundation 2-27 © 2002 Soo Dong Kim

You might also like