Software Model Process

advertisement
PI2134 Software Engineering
IT Telkom


Definition
Model Process
◦ Waterfall Model
◦ Incremental Model
 Incremental Model
 RAD Model
◦ Evolutionary Model
 Prototyping Model
 Spiral Model
◦ Component Based Development
◦ V Shapes Model
◦ The Unified Process



Software Model Process is an abstract
representation of a software process.
Software Model Process provide a useful
roadmap for software engineering work
All software models can accommodate the
generic framework activity (fundamental
activity) in SE, but each applies different
emphasis to these activities and defines
workflow that invokes each framework
activity in different manner


The Oldest paradigm (process model),
sometime called the Classic life cycle
The Principle Stage are
◦
◦
◦
◦
◦
Requirement analysis and definition
System and SW design
Implementation and unit testing
Integration and system testing
Operation and maintenance

The following phase should not start until the
previous phase has finished
◦ In practice, the stage could overlap

The problem with waterfall model is its
inflexible partitioning of the project into
these distinct stages
Advantages
 Simple and easy to use.
 Easy to manage due to the rigidity of the
model – each phase has specific deliverables
and a review process.
 Phases are processed and completed one at a
time.
 Works well for smaller projects where
requirements are very well understood.
Disadvantages
 Adjusting scope during the life cycle can kill a
project
 No working software is produced until late
during the life cycle.
 High amounts of risk and uncertainty.
 Poor model for complex and object-oriented
projects.
 Poor model for long and ongoing projects.
 Poor model where requirements are at a
moderate to high risk of changing.


Buat 6 Kelompok
Diskusikan masing2 model yang di pilih pada
tiap kelompok




Combines elements of the waterfall model
applied in an iterative fashion
Applies linear sequences in a staggered
fashion as calendar time progresses
Each linear sequence produces deliverables
‘increments’ of the software.
When an incremental model is used, the first
increment is often a core product.
increment # n
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
t es t
De p l o y m e n t
d e l i v e ry
fe e dba c k
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
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
deliv ery of
2nd increment
Advantages
 Generates working software quickly and early during the
software life cycle.
 More flexible – less costly to change scope and requirements.
 Easier to test and debug during a smaller iteration.
 Easier to manage risk because risky pieces are identified and
handled during its iteration.
 Each iteration is an easily managed milestone.
Disadvantages
 Each phase of an iteration is rigid and do not overlap each other.
 Problems may arise pertaining to system architecture because
not all requirements are gathered up front for the entire software
life cycle.


RAD is an incremental software process
model that emphasizes a short development
cycle
Using Component based construction
approach
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
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
De ploym e nt
int egrat ion
deliv ery
feedback
The advantages and disadvantages of RAD







RAD reduces the development time
Reusability of components help to speed up development.
All functions are modularized so it is easy to work with.
For large projects RAD require highly skilled engineers in
the team.
Both end customer and developer should be committed to
complete the system in a much abbreviated time frame
If commitment is lacking RAD will fail.
RAD is based on Object Oriented approach and if it is
difficult to modularize the project the RAD may not work
well.



Business and product requirement often
change as development proceed
Software engineer need a process model that
has been explicitly designed to accommodate
a product that evolves over time
Evolutionary models are iterative. Enables
software engineers to develop increasingly
more complete version of the software


Customer defines a set of general objectives
for software but doesn’t identify the detail
Assist the software engineer and the
customer to better understand what is to be
built when requirement are fuzzy
Qu ick p lan
Com m unicat ion
Mo d e lin g
Qu ick d e sig n
Deployment
De live r y
& Fe e dback
Const r uct ion
of
pr ot ot ype




Proposed by Boehm
Evolutionary software process model that
couples the iterative nature of prototyping
with the controlled and systematic aspect of
the waterfall model
Each loop in the spiral represents a phase of
the software process.
The important distinction between spiral
model and other software models is the
explicit consideration of risk
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
delivery
feedback
construction
code
test
Advantages



High amount of risk analysis
Good for large and mission-critical projects.
Software is produced early in the software life cycle.
Disadvantages




Can be a costly model to use.
Risk analysis requires highly specific expertise.
Project’s success is highly dependent on the risk
analysis phase.
Doesn’t work well for smaller projects.



development—the process to apply when
reuse is a development objective
The model composes applications from
prepackage software components
Components can be designed as either
conventional software module or OO classes
or Package of classes.


The V-Shaped life cycle is a sequential path
of execution of processes
Testing is emphasized in this model in every
stages
Advantages




Simple and easy to use.
Each phase has specific deliverables.
Higher chance of success over the waterfall model due to the
development of test plans early on during the life cycle.
Works well for small projects where requirements are easily
understood.

Disadvantages




Very rigid, like the waterfall model.
Little flexibility and adjusting scope is difficult and
expensive.
Software is developed during the implementation phase, so
no early prototypes of the software are produced.
Model doesn’t provide a clear path for problems found
during testing phases.


a “use-case driven, architecture-centric,
iterative and incremental” software process
closely aligned with the Unified Modeling
Language (UML)
Detail Discussion in OOT

Model Process
◦ Waterfall Model
◦ Incremental Model
 Incremental Model
 RAD Model
◦ Evolutionary Model
 Prototyping Model
 Spiral Model
◦ Component-Based Development
◦ V Shapes Model
◦ The Unified Process
Download