Download - CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault
CS 551 Why do software systems break?
Object Oriented Technology can contain the effects of an fault.
Tailored OO Application
Software
Reusable Software
Vendor Software
User Programs
Client Personal Computer
Client Workstation
Application Server
Large Data Server
Software Engineering
. . .SW Library
CPU
Program
Compile
Debug
Link
Load
Run
CPU
6-18 Monthsto firstrelease
Procedural Programming
Failure Modes
Execute a fault to cause a failure, errors are faults.
Benign errors: Process can recover Fatal error: Process terminates Catastrophic error: System hang or crash
Failure Modes
Aging or duration-related memory leaks and fragmentation degrades execution time or space exhaustion, often causing reduced throughput and eventual system failure.
Failure Modes
Changes in the operating system versions or separate subsystems can affect performance and reliability. The main program has not changed the extended machine and therefore its environment has changed.
Failure Modes
Hardware degradation which affects system performance can be experienced many ways. Increased error rate on disk drives which are old or dirty; cables and connectors which become intermittent or noisy; etc. These examples are commonplace and have very significant reliability impacts.
Corporate NetworkManagement
Soaring Revenues VIP
ContentAuthoring
CustomerCare
Level 1/2Gateways
IECNetworks
L1G
L1G
NetworkProvider 1
NetworkProvider N
Hollywood’sHottest
TransactionsProcessing
Shopat
Home BroadbandPizza
123 456 789000John Doe
Universal
Credit/Banking
WOW!!!
Arthur’sAds
James’Games
ContentStorage & Retrieval
IP Business Model
Debugging Heterogeneous Distributed Applications- event logging system
Commands: Past_Hour; SYNC; Config
Beware: Babbling idiots
See Dr. Dobbs Journal November 2005 pp. 32-36- http://www.ddj.com/article/printableArticle.jhtml?articleID=184406314&dept_url=/architect/
< 1 Week
Type Assets -Assign
5ESS R Filter= = =5
E
Dynamic Bonding
Activate
Create Node -Create
Node
= = = = =
Threshold
5ESS
C.Alarm5E
5E
C.Alarm Thres
C. Alarm
OOD Programming
Databases: Key to System Integration
Any meaningful concept of integration must revolve around the objects used by the systems.
Systems are integrated to the degree that they use the same objects.
Objects are not static in either meaning or structure; the problem is to manage these changes, not stop them.
Data do not die when their host system dies. In fact, they grow, becoming integrated with data from other systems.
Provisioning Field Support
TelephoneEquipment
How Data Gets Corrupted
“…[S]ystems are integrated to the degree that they use the same data.”
Robert Curtice
“…[D]ata are not static in either meaning or structure [and] the problem is to manage these changes,
not stop them.”
Daniel S. Appleton
Customer Service
Requests
NetworkChanges
TelephoneEquipment
Provisioning Field Support
Logical UpdateLoop
CustomerRecords
Provisioning Field Support
Update
Client
Applicat ionServer
LargeData
Server
Feedback for data integrity
Data
Actions
Data +
Actions +
Data ++
Actions ++
Data 1
Actions 1
Data 1 +
Action 1 +
Data 1 ++
Action 1 ++
A1
C1B1
Benefits•Inheritance rippled consistent changes throughout•Data and Actions updated “Just-in-Time”•Redundant Data Minimized
Date & ActionChanges
A
B C
Data integrity through objects
Robustness 30:1Robustness 30:1
It takes three times the effort to find and fix a problem in the test lab then by developers
It takes ten times the test lab effort to find and fix it in the field
As of 9/7/06
“Testing can show the presence of bugs but not their absence.”
E. Dijkstra, inventor of structured programming
“Software is only one interpretation of the reality of the problem it is solving.”
Jackson
“Don’t automate an undisciplined work flow. The computer won’t solve what the customer’s management
can’t.”
Brooks
Functional versus Project organization
Functional Project
RequirementsDesignCodeTest
More efficient because skills are honed. Hard integration and prone to ‘gold plating.’
Customer interfaceProgram designIntegrationValidation and Verification
More effective and more fun.
Bugs
Where are they?
How many are typically found?
Do bugs ever go away?
Where are Bugs found?
Developers’ System Test
Customer’s On-Site Test
Customer’s Acceptance Test
Soak Site and Training Program
Production Use
77%
1%
2%
4%
16%
100%
Bugs reported from first two beta sites
Month
Sub-system(# source lines
of code)A
(250K)B
(100K)C
(113K)D
(175K)E
(112K)F
(25K)
Found bycustomer
Total # Bugs
3
15
20
14
17
18
16
10
11
15
16
118
80
96
58
78
106
108
111
93
105
84
68
45
59
19
30
104
88
60
68
56
95
87
60
69
68
56
82
95
86
124
94
68
14
60
139
174
127
63
94
59
77
87
65
0
0
0
0
0
0
0
2
4
0
4
32
18
18
18
34
50
32
49
71
90
112
290
260
383
333
308
373
401
326
375
361
332
Jan
Feb
Mar
Apr
May
June
July
Aug
Sept
Oct
Nov
11 Month Total 155 1,037 692 889 959 10 524 3,742
Found by Developers
Bug density in mature systems
System(# of source lines
of code)# Releases
Bugs per 1K Newor Changed
Source Lines
A (500K )
B ( 200K )
C (100K )
D ( 50K )
13
14
8
9
0.76
0.72
1.00
1.14
Ten key development processes
1. Pilot before deploying
2. Use experts first
3. Invest $ and time in staff
4. Number of OO Architects = 20% staff
5. Number of Object classes = 0.5% function points
6. Design = 30% development cycle
7. Model performance early and often
8. Buy unit test drivers
9. Assign work by feature teams
10. First release break-even; afterwards 3:1
Key Question
What’s the problem?