Beruflich Dokumente
Kultur Dokumente
Quality Improvement
Best Practices
of Software
Engineering
Objectives: Best Practices of Software
Engineering
• Specialization Analyst
• Distribution Project
Manager
• Rapid technology Developer
change Tester
Release
Engineer
How Are We Doing?
Performance
• Many Successes
Engineer
Analyst
Tester
Release
Engineer
Symptoms of Software
Development Problems
Develop Iteratively
Use
Manage Model Verify
Component Visually
Requirements Architectures Quality
Control Changes
Best Practices Enable High-
Performance Teams
Results
Performance
• More Successful Engineer
projects Analyst
Project
Manager
Developer
Develop Iteratively
Tester
Use Model
Manage Component Visually Verify
Requirements Quality
Architectures
Release
Engineer
Control Changes
Practice 1: Develop
Software Iteratively
Develop Iteratively
Use
Manage Model Verify
Component Visually
Requirements Architectures Quality
Control Changes
Practice 1: Develop
Software Iteratively
$$$
The time and money spent implementing a
faulty design are not recoverable
Waterfall Development
Requirements
Analysis
Design
Subsystem
Testing
System Testing
T I M E
Waterfall Development Delays
Reduction of Risk
Requirements
R Analysis
I
Design
S
K Code & Unit
Testing
Subsystem
Testing
System Testing
T I M E
Apply the Waterfall Iteratively to
System Increments
T I M E
K Iterative Waterfall
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration Mgmt
Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
Iterations
Problems Addressed by Iterative Development
Develop Iteratively
Use
Model Verify
Manage Component Visually Quality
Architectures
Requirements
Control Changes
Practice 2: Manage
Requirements
A requirement is a condition or
capability to which the system must
conform
Requirements management is a
systematic approach to
Eliciting, organizing, and documenting the
requirements of the system, and
Establishing and maintaining agreement
between the customer/user and the project
team on the changing requirements of the
Agreement on What the
System Should Do
The Goal
Customer System
User Community To Be Built
Requirements Surrogate
Verification Goal
Requirements
Adapted from Al Davis
Requirements Trace To
Many Project Elements
How To Catch
Requirements Errors Early
Develop Iteratively
Control Changes
Software Architecture
Defined
User Interface
Mechanisms
Key:
- Purchased Oracle Vantive
- Built
- New
Problems Addressed by
Component
Root Causes Architectures
Solutions
Insufficient Components facilitate
requirements resilient architectures
Ambiguous Reuse of
communications commercially
Brittle available components
architectures and frameworks is
Overwhelming facilitated
complexity Modularity enables
Subjective separation of
assessment concerns
Undetected
Components provide
Practice 4: Visually Model
Software
Develop Iteratively
Use
Manage Component Verify
Model Quality
Requirements Architectures Visually
Control Changes
Practice 4: Visually Model
Software
Scenario State
Scenario
Diagrams State
Diagrams
Sequence
Diagrams State
Diagrams
Diagrams Model Diagrams
Scenario Component
Scenario
Diagrams
Component
Diagrams
Component
Collaboration
Diagrams Deployment Diagrams
Diagrams Diagram Diagrams
Visual Modeling Using UML
Diagrams Use-Case Diagram Class Diagram State Diagram add file
Writing
add file [ numberOffile==MAX ] /
flag OFF
Openning
Use Case 1
close file
Actor A Actor B
close file
Closing
Reading
Use Case 2
<<entity>>
Customer
name
addr
receive()
Use Case 3 withdraw()
Domain fetch()
Expert UI
send()
Deployment
MFC Class Diagram
DocumentApp
Rog ueWave
g lobal
¹®¼-°ü¸®
FileManager Ŭ¶óÀ̾ðÆ®.EXE
¹®¼-°ü¸® ¾ÖÇø´
Package
1: Doc view request ( ) L
Document
Definition
Solaris
2: fetchDoc( )
¹®¼-°ü¸® ¿£Áø.EXE
Diagram
ÀÀ¿ë¼-¹ö.EXE
Windows
NT
3: create ( )
File FileList
6: fillDocument ( )
µ¥ÀÌŸº£À̽º¼-¹ö
7: readFile ( )
5: readDoc ( )
document : Document
repository : Repository
2: fetc hDoc ( )
3: c reate ( )
4: c reate ( )
Source Code edit, compile, debug, link
5: readDoc ( )
7: readFile ( )
8: fil lFile ( )
Sequence Diagram
Executable System
Practice 5: Verify Software
Quality
Develop Iteratively
Use
Manage Model
Component Visually Verify
Requirements Architectures Quality
Control Changes
Practice 5: Verify Software
Quality
Software problems are 100 to 1000 times more
costly to find and repair after deployment
Cost
Development Deployment
Permits Continuous
Testing
Iteration 1 Iteration 2 Iteration 3
R R R
D D D
C C C
T T T
Test
Automation
13,000 Tests
6 hours Run More Tests More Often
1 Person
Dimensions of Software
Quality
Type Why? How?
Reliability Does my app leak memory? Analysis tools and code
instrumentation
Develop Iteratively
Use
Manage Model Verify
Component Visually
Requirements Architectures Quality
Control Changes
Practice 6: Control
Changes to Software
Multiple developers
Multiple teams
Multiple sites
Multiple iterations
Multiple releases
Multiple projects
Without explicit control,
Multiple
parallel platforms
development degrades to chaos
Three Major Aspects of a
CM System
Concepts of Configuration
& Change Management
On Budget
Project
Meets Users Needs
Develop Iteratively
Manager
Developer
Use Model
Manage Component Visually Verify Tester
Requirements Architectures Quality
Log report in
No
Review and
comment
( Technical)
Contractor receives
the disapprove
letter
Review and
comment
( Legal
Check Sheets
Source:
http://www.hci.com.au/hcisite3/tool
kit/data.htm
Data organizing tools
Histograms
The Frequency Distribution
and Histogram
Parts of a Histogram
Days of operation prior to
100 1
F failure for an HF receiver
R
80
E
Q 60
4 3
U
E 40
N 20 2
C
Y 0
0 5 10 15 20 25 30 35 40 45 50 55 60
EXERCISE 1:
The source of data for the first exercise is the following scenario.A
list of the data collected follows this description
11 22 15 7 13 20 25 12 16 19
4 14 11 16 18 32 10 16 17 10
8 11 23 14 16 10 5 21 26 10
23 12 10 16 17 24 11 20 9 13
24 10 16 18 22 15 13 19 15 24
11 20 15 13 9 18 22 16 18 9
14 20 11 19 10 17 15 12 17 11
17 11 15 11 15 16 12 28 14 13
Histogram
11 22 15 7 13 20 25 12 16 19
4 14 11 16 18 32 10 16 17 10
8 11 23 14 16 10 5 21 26 10
23 12 10 16 17 24 11 20 9 13
24 10 16 18 22 15 13 19 15 24
11 20 15 13 9 18 22 16 18 9
14 20 11 19 10 17 15 12 17 11
17 11 15 11 15 16 12 28 14 13
ANS : Total - 80
EXERCISE 1:
Range 28
Interval = = = 3.5
Width 8
Number of Intervals
1 4 +4 8 3
2 8 +4 12 20
3 12 +4 16 20
4 16 +4 20 20
5 20 +4 24 10
6 24 +4 28 5
7 28 +4 32 1
8 32 +4 36 1
Histogram
Step8 -Plot the data
Step9 -Add the title and legend
Critical Defects
20
18
16
14
12
10
8
6
4
2
0
0 4 8 12 16 20 24 28 32 36
PERCENT Defect
The Frequency Distribution
and Histogram
Frequency Distribution
Arrangement of data by magnitude
More compact than a stem-and-leaf
display
Graphs of observed frequencies are
called histograms.
Pareto Chart
Example
Individual category
Pareto
Cumulative Cost
45 40 120.00
40
Cumluative Cost
Cost Amount $$
100.00100.00
35 28 92.23
30 80.58 80.00
25 66.02
60.00
20 15
15 38.83 12 40.00
8
10
20.00
5
0 0.00
Product
Others
Delivery
Packages
Documents
Quality
Category of Cost
Example Pareto
Figure 2 takes the largest category, “documents,” from Figure 1, breaks it down into
six categories of document-related complaints, and shows cumulative values.
If all complaints cause equal distress to the customer, working on eliminating
document-related complaints would have the most impact, and of those, working on
quality certificates should be most fruitful..
35 32 120.00
30 100.00100.00
Cum u value of
Values in cost
90.70
25 21
79.07 80.00
Costs
20 61.63 15 60.00
15 10
10 37.21 8 40.00
5 20.00
0 0.00
problem
Version
Training
approved
PMP error
OD errors
not
Category of Cause
Cause and Effect Diagram
Diagram?
Diagram
>negative (a problem)
Cause and Effect
Step 2
Methods
Machines (equipment)
People (manpower)
Materials
Measurement
• Environment
Step 3 Cause and Effect
CAUSE A CAUSE C
EFFORT
CAUSE B CAUSE D
Computational Hardware I/O and file Library-function
problem problems problems problem
2500
2300
2100
1900
1700
Rent
1500
1300
1100
900
700
500
500 700 900 1100 1300 1500 1700 1900 2100
Size
Scatter plot suggests that there is a positive, linear relationship between Rent and Size
Scatter
Example
If there are 24 data points.
Then they look up the limit for N on the trend test table. For N =
24, the limit is 6.
Control charts for variable data are used in pairs. The top chart
monitors the average, or the centering of the distribution of data
from the process. The bottom chart monitors the range, or the
width of the distribution. If your data were shots in target practice,
the average is where the shots are clustering, and the range is how
tightly they are clustered. Control charts for attribute data are used
singly.
Control Chart
Variations
Different types of control charts can be used, depending upon the
type of data. The two broadest groupings are for variable data and
attribute data.
Why to use
Monitor process variation over time
Detecting Signals
Stability Concepts
= Sources of Variability
Due to Common
Causes only
Analyzing Process Performance
Control Charts
R =
R
number of samples
CL
LCL
UCL
RANGES
CL
LCL
0 1 2 3 4 5 6 7 8 9 10
Sample Number
Analyzing Process Performance
u-chart
XmR chart
XmR Chart
First Quarter 19 27 20 16 18 25 22 24 17 25 15 17
Second Quarter 20 22 19 16 22 19 25 22 18 20 16 17
Third quarter 20 15 27 25 17 19 28