200 likes | 330 Views
CS 551 People, Process, Product and Project. Tailored OO Application. Software. Reusable Software. Vendor Software. User Programs. Software Engineering. Client Personal Computer. Client Workstation. Application Server. Large Data Server. Program. Compile. CPU. 6-18 Months to first
E N D
Tailored OO Application Software Reusable Software Vendor Software User Programs Software Engineering Client Personal Computer Client Workstation Application Server Large Data Server
Program Compile CPU 6-18 Months to first release Debug SW Library Link . . . Load CPU Run Procedural Programming
Create Node Create Node - = = = = = Assign 5ESS R Filter Type Assets - = = = 5ESS 5E 5E C.Alarm C. Alarm Dynamic Bonding 5E C.Alarm Thres Threshold Activate < 1 Week OOD Programming
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. Databases: Key to System Integration
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 Ten key development processes
Field Support Provisioning Telephone Equipment 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
Client Field Support Field Support Application Server Provisioning Provisioning Logical Update Loop Customer Records Telephone Equipment Large Data Server Update Customer Service Requests Network Changes Feedback for data integrity
Data Data 1 Actions Actions 1 Data + Data ++ Data 1 + Data 1 ++ Actions + Actions ++ Action 1 + Action 1 ++ Data integrity through objects A1 A Date & Action Changes B B1 C C1 • Benefits • Inheritance rippled consistent changes throughout • Data and Actions updated “Just-in-Time” • Redundant Data Minimized
Robustness 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
Soaring Revenues VIP WOW!!! Content Storage & Retrieval Arthur’s Ads Transactions Processing James’ Games IEC Networks Hollywood’s Hottest Shop at Home Credit/ Banking Broadband Pizza Universal 123 456 789000 John Doe IP Business Model Network Provider 1 Customer Care Corporate Network Management Level 1/2 Gateways Content Authoring L1G L1G Network Provider N
“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
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 Found by Developers Sub-system (# source lines of code) Found by customer Total # Bugs A (250K) B (100K) C (113K) D (175K) E (112K) F (25K) Month Jan Feb Mar Apr May June July Aug Sept Oct Nov 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 3 15 20 14 17 18 16 10 11 15 16 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 11 Month Total 155 1,037 692 889 959 524 10 3,742
Bug density in mature systems Bugs per 1K New or Changed Source Lines System (# of source lines of code) # Releases A (500K ) B ( 200K ) C (100K ) D ( 50K ) 13 14 8 9 0.76 0.72 1.00 1.14
Key Question What’s the problem?