cs 551 why do software systems break? object oriented technology can contain the effects of an fault

25
CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault.

Post on 22-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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.

Page 2: 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

Page 3: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

. . .SW Library

CPU

Program

Compile

Debug

Link

Load

Run

CPU

6-18 Monthsto firstrelease

Procedural Programming

Page 4: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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

Page 5: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

Failure Modes

Aging or duration-related memory leaks and fragmentation degrades execution time or space exhaustion, often causing reduced throughput and eventual system failure.

Page 6: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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.

Page 7: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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.

Page 8: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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

Page 9: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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/

Page 10: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

< 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

Page 11: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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.

Page 12: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

Provisioning Field Support

TelephoneEquipment

How Data Gets Corrupted

Page 13: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

“…[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

Page 14: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

Customer Service

Requests

NetworkChanges

TelephoneEquipment

Provisioning Field Support

Logical UpdateLoop

CustomerRecords

Provisioning Field Support

Update

Client

Applicat ionServer

LargeData

Server

Feedback for data integrity

Page 15: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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

Page 16: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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

Page 17: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

“Testing can show the presence of bugs but not their absence.”

E. Dijkstra, inventor of structured programming

Page 18: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

“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

Page 19: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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.

Page 20: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

Bugs

Where are they?

How many are typically found?

Do bugs ever go away?

Page 21: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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%

Page 22: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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

Page 23: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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

Page 24: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

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

Page 25: CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault

Key Question

What’s the problem?