Classes 2 & 3 - Software Life Cycle

blurtedweeweeΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 7 μήνες)

130 εμφανίσεις

Software Engineering CSCI 4490
Classes 2 & 3 -Software Life Cycle
August 27, 29, 2012
Software Engineering CSCI 4490
2
SoftwareDevelopment in Theory
￿
Ideally, software is developed as
described in Chapter 1
￿Linear
￿Starting from scratch
Schach Figure 2.1
Software Engineering CSCI 4490
3
Software Development in Practice
￿
In the real world, software development is totally
different
￿We make mistakes
￿Clients requirements change while software product is
being developed
￿
Steps performed in developing a specific software
product termed Software Life Cycle
Software Engineering CSCI 4490
4
Software Life Cycle vs. Life-Cycle Model
￿
Life Cycle: the actual steps performed on a specific
software product, from concept exploration through
final retirement
￿
Life-Cycle Model: a description of the steps that
should be performed when building a software
product
Software Engineering CSCI 4490
5
Software Life-Cycle Models (Schach Chap2)
￿
We Examine Several Life-cycle Models:
￿Code and Fix
￿Waterfall
￿Rapid Prototyping
￿Incremental
￿Evolution-Tree Life-cycle
￿Iteration and Incrementation
￿Synchronize-and-Stabilize
￿Extreme Programming
￿Spiral
￿Open-Source
￿
Focus on how (if!) the Phases of Software Development are
incorporated within each model
Software Engineering CSCI 4490
6
* Code and Fix Model
Overview:
Build first
version
Operations
mode
Development
Maintenance
Modify until
client is satisfied
Retirement
Evaluation:
AdvantagesDisadvantages
Application:
Software Engineering CSCI 4490
7
* Waterfall Model
Overview:
Evaluation:
AdvantagesDisadvantages
Application:
Software Engineering CSCI 4490
8
* Rapid Prototyping Model
Overview:
Evaluation:
AdvantagesDisadvantages
Application:
Software Engineering CSCI 4490
9
~Rapid Prototyping vs. Waterfall Model
Software Engineering CSCI 4490
10
* Rapid Prototyping Model
￿
Compare Waterfalland Rapid prototypingmodel view
of requirements
￿Waterfall
￿Rapid prototyping
Software Engineering CSCI 4490
11
* Incremental Model
Overview:
AdvantagesDisadvantages
Evaluation:
Application:
Software Engineering CSCI 4490
12
*
Evolution-Tree Life-Cycle Model
Overview:
AdvantagesDisadvantages
Evaluation:
Application:
Software Engineering CSCI 4490
13
*
Iteration and Incrementation
Overview:
AdvantagesDisadvantages
Evaluation:
Application:
Software Engineering CSCI 4490
14
* Synchronize and Stabilize Model
Overview:
AdvantagesDisadvantages
Evaluation:
Application:
Software Engineering CSCI 4490
16
*
Extreme Programming
Overview:
AdvantagesDisadvantages
Evaluation:
Application:
Software Engineering CSCI 4490
18
*
Spiral Model
Overview:
AdvantagesDisadvantages
Evaluation:
Application:
Software Engineering CSCI 4490
19
*
Open-Source Life-Cycle Model
Overview:
SimilaritiesDifferences
Comparison
with closed-
source models:
Application:
Software Engineering CSCI 4490
20
Comparison of Life-Cycle Models
Life Cycle ModelStrengthsWeaknesses
Code-and-fix model
Waterfall model
Rapid Prototyping
Incremental model
Evolution-tree model
Iterative-and-Incremental
model
Synchronize-and-stabilize
model
Extreme programming
Spiral model
Open-Source
Software Engineering CSCI 4490
21
Conclusions
￿
Different life-cycle models, each with own
strengths/weaknesses
￿
Criteria for choosing which Life-Cycle to follow:
￿organization
￿management
￿employees
￿product
￿
Most commonly used? A variant of the incremental
life-cycle (tweaked as per organizations needs)