Transparency Masters for Software Engineering: A Practitioner`s

CS487
Software Engineering
Omar Aldawud
[email protected]
http://www.cs.iit.edu/~oaldawud/CS487
1
What is SW Process?

When building a Product it’s important to go through a
series of predictable steps, road map, that help you
create a timely, and high-quality result.

The ROAD MAP that you follow is the SW process.

Process depends on the SW you are building

Web design vs. telephone switch!!
2
Software Process

Process defines who is doing:





Process defines tasks and activities within a
schedule
Results




– What?,
– When and how?
– To reach a goal
– Programs
– Documents
– And data
Software process is a roadmap for high quality
software
3
Generic Framework activities

Communication



Get to know your Customer and their processes
Identify stakeholders
Requirement elicitation
4
Generic Framework activities

Planning




Plan the work
Identify resources
Identify tasks
Set the schedule
5
Generic Framework activities

Modeling



Analysis of requirements
Design
Blue print for customer and developers
communications
6
Generic Framework activities

Construction


Code generation
Testing
7
Generic View of SE

SW Engineering is the:





Analysis,
Design,
Construction,
Verification and.
Management of Software.
8
SW Process Models

Guides the SW team thought a set of
framework activities (process flow)




Linear
Incremental
evolutionary
It is a set of activities required to



Define, design, implement, test and maintain a
software product.
A SW process model is chosen based on the
nature of the project.
Each process model prescribes a workflow for SE
activities
9
Software Engineering: A Practitioner’s Approach,
6/e
Chapter 3
Prescriptive Process Models
10
SW Process Models

Prescriptive process models advocate an orderly
approach to software engineering.

It is a set of activities required to:


Define, design, implement, test and maintain a software product.
A SW process model is chosen based on the
nature of the project.
11
SW Process Model Phases

All models have phases and each phase
has 3 components:




Set of activities, this is what you do.
Set of deliverables, this is what you produce.
Quality control measures, this is what you use to
evaluate the deliverables.
The activities defines the process
Framework, the generic set
encompasses:

Communication, planning, modeling, construction,
and deployment
12
The Waterfall Model
This Model suggests a systematic, sequential approach to SW
development that begins at the system level and progresses
through analysis, design, code and testing.
Com m unic a t ion
proje c t init ia t ion
re quire m e nt ga t he ring
Planning
es timating
sc heduling
track ing
Mode ling
analysis
design
Const r uc t ion
code
t est
De ploy m e nt
de liv e ry
s upport
f e e dba c k
13
Waterfall Model
Advantages



Easy
Structured
Provide a template into
which methods for analysis,
design, code, testing and
maintenance can be placed.




Disadvantages
Sequential, does not
reflect reality
Does not allow for
feedback
Does not produce a
prototype
User must wait until the
end to see the final
program.
14
When to use the Waterfall Model

Simple Projects
Limited amount of time
Requirements are well understood

We can use it for our Class Project.


15
Incremental Models





Goal to provide quick basic functionality to the
users
Process is not linear
Requirements are well defined
Software is completed in an increments fashion
Will Study 2 models:
1.
2.
Incremental Model
RAD
16
1. Incremental Model




It combines characteristics of the waterfall
model and the iterative nature of the
prototyping model.
1st build is usually the CORE product
Each increment “deliverable” may add a new
functionality.
This is repeated until the product is complete
17
The Incremental Model
Communication
Planning
Modeling
increment # n
Co m m u n i c a t i o n
Pla nning
Construction
M ode ling
analy s is
des ign
Co n s t ru c t i o n
c ode
t es t
De p l o y m e n t
d e l i v e ry
fe e dba c k
Deployment
deliv ery of
nt h increment
increment # 2
Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is
des ign
Co n s t ru c t i o n
c ode
De p l o y m e n t
t es t
d e l i v e ry
fe e dba c k
increment # 1
deliv ery of
2nd increment
Co m m u n i c a t i o n
Pla nning
M ode ling
analy s is
des ign
Co n s t ru c t i o n
c ode
De p l o y m e n t
t es t
d e l i v e ry
fe e dba c k
deliv ery of
1st increment
project calendar t ime
18
When to Use the Incremental
Model


When staffing is not available by deadline.
When the software can be broken into
increments and each increment represent a
solution
19
2. The Rapid Application Development
RAD Model






Builds on the Incremental model with emphases
on short development cycle.
In other words high speed waterfall model
Components are build using this model as a fully
functional units in a relatively short time
It assumes that the system can be modularized
RAD will fail if you don’t have strong and skillful
teams
High performance might be an issue
20
The RAD Model
Team # n
M o d e lin g
busines s m odeling
dat a m odeling
process m odeling
C o n s t r u c t io n
com ponent reuse
aut om at ic code
generat ion
t est ing
Team # 2
Com m unicat ion
Mo d eling
b u si n e ss m o d e l i n g
dat a m odeling
p ro ce ss m o d e l i n g
Planning
Co nst r uct io n
Team # 1
co m p o n e n t re u se
a u t o m a t i c co d e
g e n e ra t i o n
t e st i n g
Mode ling
De ploym e nt
int egrat ion
deliv ery
feedback
business modeling
dat a modeling
process modeling
Const r uct ion
component reuse
aut omat ic code
generat ion
t est ing
6 0 - 9 0 days
21
Evolutionary Process Models



Core requirements are well understood but
additional requirements are evolving and
changing fast
Time-to-Market
Iterative – software gets more complex with
each iteration
1.
2.
3.
Prototype
Spiral
Concurrent
22
Evolutionary SW Process Models

Advantages





Do not require full knowledge of the requirements
Iterative
Divide project into builds
Allows feedback, show user something sooner
Develop more complex systems
23
1. Prototyping Model




Start with what is known about requirements.
Do a quick design.
Build the prototype by focusing on what will be
seen by the user.
Use the prototype to show the user and help
refining requirements.
24
Evolutionary Models: Prototyping
Qu ick
p lan
Quick
Com m unicat ion
plan
communication
Mo
d e l in g
Modeling
Qu i ck d e sig n
Quick design
Deployment
Deployment
De live r y
delivery &
& Fe e dback
feedback
Const r uct ion
Construction
of
of ot
prototype
pr
ot ype
25
When to Use Prototype Model

When the customer define general objectives
for the SW but does NOT identify details about
INPUT, OUTPUT, or processing requirements.

The developer is unsure of the efficiency of an
algorithm, human machine interaction, etc.
26
Prototype Model


Advantages
Prototype is served as
the machinery for
identifying requirements.
Is developed very quick.

Disadvantages
Customer might think that
the prototype is the final
product and forget lack of
quality i.e
PERFORMANCE,
RELIABILITY.
27
2. Spiral Model



Iterative (like Prototype) and controlled (like
waterfall) model.
Software is developed using evolutionary
releases
Software complexity increase with each
release
28
Spiral Model

Consist of 6 task regions.






Customer communication - the goal is to establish good
communication between customer and developer.
Planning - produce/adjust project plan.
Risk analysis - assess management and technical risks.
Engineering - build one or more representations of the
application.
Construction and release - - to construct, test, install and
support the application.
Customer evaluation – get customer feedback.
29
Evolutionary Models: The Spiral
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
delivery
feedback
construction
code
test
30
When to Use the Spiral Model


Very large projects.
When technical skills must be evaluated at
each step.
31
Component based development




1.
The process to apply when reuse is a development objective
Evolutionary
COTS are used to build software
Steps:
Identify candidate components

2.
3.
4.
Design each using and model or OO classes
Component integration
Architecture
Testing
32
CBD


component-based development (CBD) model
incorporates many of the iterative characteristics
of the spiral model.
The main difference is that in CBD the emphasis
is on composing solutions from prepackaged
software components or classes
33
Process Models

AOSD—provides a process and methodological
approach for defining, specifying, designing, and
constructing aspects
34
Unified Process
a “use-case driven, architecture-centric, iterative
and incremental” software process closely
aligned with the Unified Modeling Language
(UML)
 Tools are used to describe customer views (use
cases)
 Used mainly for OO based methodologies


Runs in phases
35
The Unified Process (UP)
Phase 1
Communication + Planning
Elab o r at io n
elaboration
Phase 2
Planning + Modeling
Incep t io n
inception
Phase 3
inception
Coding, unit test
& integrate
Components
co nst r uct io n
result
Release
soft ware increment
t r ansit io n
Phase 4 Deployment
p r o d uct io n
36
UP Phases
UP Phases
Incept ion
Elaborat ion
Const ruct ion
Transit ion
Product ion
Workflows
Requirements
Analysis
Design
Implementation
Test
Support
Iterations
#1
#2
#n-1
#n
37
UP Work Products
Incept ion phase
Vision document
Init ial use-case model
Init ial project glossary
Init ial business case
Init ial risk assessment .
Project plan,
phases and it erat ions.
Business model,
if necessary .
One or more prot ot y pes
I nc e pt i o
n
Elaborat ion phase
Use-case model
Supplement ary requirement s
including non-funct ional
Analy sis model
Soft ware archit ect ure
Descript ion.
Execut able archit ect ural
prot ot y pe.
Preliminary design model
Rev ised risk list
Project plan including
it erat ion plan
adapt ed workflows
milest ones
t echnical work product s
Preliminary user manual
Const ruct ion phase
Design model
Sof t ware component s
Int egrat ed soft ware
increment
Test plan and procedure
Test cases
Support document at ion
user manuals
inst allat ion manuals
descript ion of current
increment
Transit ion phase
Deliv ered soft ware increment
Bet a t est report s
General user feedback
38