1 SoftwareEngineeringandBestPractices
1 SoftwareEngineeringandBestPractices
and
Best Practices
Sources: Various.
Rational Software Corporation slides,
OOSE textbook slides, Per Kroll talk, How to Fail
with the RUP article, textbooks
Most slides have been modified considerably
30
Fundamental Terms /
Concepts
Science
and Engineering
Discover
Relationships
Build
Apply
Software
Engineering; Software
Development
30
Engineering; Software
Development
Job positions:
30
Software developer
Programmer
Software engineer
Analyst / Programmer
Senior what have you
3
What is Software
Engineering?
The
Note:
30
30
Finite resources
The benefit must outweigh the cost
Others are competing to do the job cheaper and faster
Inaccurate estimates of cost and time have caused many project
failures
Comments:
30
Development Progress
(% coded)
100%
30
Integration
Begins
Risk inadequately addressed
Process not receptive to
Change
Problems not really seen
until near delivery date!
Until then, all is well
Big Bang approach full
delivery
Long development cycles
Little user involvement, etc.
etc
Project Schedule
Late Design
Breakage
Original
Target Date
Symptoms of Software
Development Problems
30
Identify
30
Use
Manage
Component
Requirements Architectures
Model
Visually
Verify
Quality
Control Changes
Know these!
30
10
Root Causes
Best Practices
end-user needs
insufficient requirements
develop iteratively
changing
requirements
ambiguous
communications
manage requirements
brittle architectures
hard to maintain
overwhelming complexity
late discovery
undetected
inconsistencies
poor quality
poor performance
colliding developers
build-and-release
poor testing
use component
architectures
model the software
visually
verify quality
control changes
subjective assessment
waterfall development
uncontrolled change
insufficient automation
11
Manage
Requirements
Use
Component
Architectures
Model
Visually
Verify
Quality
Control Changes
12
Until
The
30
13
14
Interestingly,
30
R
I
S
K
Requirements
Design
Code
Waterfall risk
Integration
System
Test
30
T I M E
16
Iterative Development
Iteration 1
Iteration 2
Iteration 3
R
I
Risk
Riskreduction
reduction
Iterative
Iteration
30
Waterfall risk
Iteration
Iteration
T I M E
Iteration
Iteration
18
30
19
C
O
N
T
E
N
T
S
T
R
U
C
T
U
R
E
30
20
TIME
Inception
Elaboration
Construction
Devel.
Iteration
Devel.
Iteration
Transition
Devel.
Iteration
Transition Transition
Iteration
Iteration
21
30
Insufficient
requirements
Ambiguous
communications
Brittle architectures
Overwhelming
complexity
Subjective assessment
Undetected
inconsistencies
Poor testing
Waterfall development
Uncontrolled change
Insufficient automation
Solutions
22
Trap: When the initial risks are mitigated, new ones emerge
Do not do just the easy stuff, to look good.
Keep re-planning based on all new information.
Trap: Remember some Rework enables you to enhance your
solution
Accommodate change early in the project
Trap: Iterative development does not mean never to commit to a
solution
Monitor
30
23
30Focus
24
are risk-driven
Iterations are planned.
Iterations
are assessed!
Generally, initial iterations (in Construction)
based on high risk and core functionalities!
30
25
artifacts
26
Problem:
27
Solution:
Iteration Plans
Next Iteration
Current Iteration
Iterative Development does not mean less work and shorter schedule
It is about greater predictability
30
28
- NOT TIMEBOXED.
Iterations ARE TIMEBOXED.
Major Milestones
Inception
30
Elaboration
Construction
Transition
29
Summary
Much
You
30
30