Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
CS 551 Why do software systems break? Object Oriented Technology can contain the effects of an fault. Software Engineering Client Personal Computer Client Workstation Application Server Tailored OO Application Software Reusable Software Vendor Software User Programs Large Data Server Procedural Programming Program Compile 6-18 Months to first release CPU Debug SW Library Link ... Load CPU Run 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. Debugging Heterogeneous Distributed Applications- event logging system See Dr. Dobbs Journal November 2005 pp. 32-36- http://www.ddj.com/article/printableArticle.jhtml?articleID=184406314&dept_url=/architect/ Commands: Past_Hour; SYNC; Config Beware: Babbling idiots AS OF 9/11/08 OOD Programming Create Create Node - = ==== Node Assign 5ESS R 5E Filter Type Assets - === 5E C.Alarm 5ESS C. Alarm Dynamic Bonding 5E C.Alarm Activate < 1 Week Thres Threshold 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. How Data Gets Corrupted Field Support Provisioning Telephone Equipment “…[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 Feedback for data integrity Client Field Support Provisioning Field Support Provisioning Logical Update Loop Telephone Equipment Network Changes Customer Records Update Customer Service Requests Large Data Server Data integrity through objects A1 A Date & Action Changes Data Data 1 Actions B Actions 1 C B1 C1 Data + Data ++ Data 1 + Data 1 ++ Actions + Actions ++ Action 1 + Action 1 ++ 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 IP Business Model Soaring Revenues VIP WOW!!! Arthur’s Ads Content Storage & Retrieval Corporate Network Management Content Authoring James’ Games Network Provider 1 Customer Care Level 1/2 Gateways Transactions Processing L1G IEC Networks Hollywood’s Hottest Shop at Home Broadband Pizza Credit/ Banking L1G Universal 123 456 789000 John Doe 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 Functional versus Project organization Functional Project Requirements Design Code Test Customer interface Program design Integration Validation and Verification More efficient because skills More effective and more fun. are honed. Hard integration and prone to ‘gold plating.’ Bugs Where are they? How many are typically found? Do bugs ever go away? Where are Bugs found? Developers’ System Test 77% Customer’s On-Site Test 1% Customer’s Acceptance Test 2% Soak Site and Training Program 4% Production Use 16% 100% Bugs reported from first two beta sites Found by Developers Sub-system (# source lines of code) Month F (25K) Total # Bugs B (100K) C (113K) D (175K) Jan 3 118 68 87 14 0 32 290 Feb 15 80 45 60 60 0 18 260 Mar 20 96 59 69 139 0 18 383 Apr 14 58 19 68 174 0 18 333 May 17 78 30 56 127 0 34 308 June 18 106 104 82 63 0 50 373 July 16 108 88 95 94 0 32 401 Aug 10 111 60 86 59 2 49 326 Sept 11 93 68 124 77 4 71 375 Oct 15 105 56 94 87 0 90 361 Nov 16 84 95 68 65 4 112 332 155 1,037 692 889 959 10 524 3,742 11 Month Total E (112K) Found by customer A (250K) Bug density in mature systems System (# of source lines of code) # Releases A (500K ) 13 B ( 200K ) 14 C (100K ) 8 D ( 50K ) 9 Bugs per 1K New or Changed Source Lines 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 Top IT Mistakes, Infoworld.com 11.22.04, pp. 35-41 Outsourcing & Off-shoring fever (or denial) Open Source fever (or denial) Discounting any internal & network security threats Tuning applications solely to Microsoft Servers. Underestimating the power of PHP or Ruby on Rails or … Inexperienced Software Management Poor change management Poor software development leadership Promoting the wrong people No independent QA. No simplification effort. Hypnotized by vendor marketing. Key Question What’s the problem?