27 FebruarySlide 2Midterm Presentations: PurposeMidterm Presentations: LogisticsPresentations: The BasicsPresentations HintsPresentations GradingPresentation ContentMotivationDesignExamples of Architecture PicturesTwo links sent to me …The Goal of Software EngineeringSoftware CraftmanshipWhy Industry Practices?Software Engineering HistoryBoNY (1985)Cost of BugCause of bugThe Drama continues…Therac-25 (1985-1987)Therac-25Therac-25 TurntableWhat Happened?What would cause that to happen?Source of the BugBack to History1960’sStructuring Software DevelopmentISO 9000Which brings us back toThe 4 P’s of Software EngineeringProductProcessSoftware Engineering Elaborated StepsSoftware Engineering ProcessesIntegrated Product Development: The IBM ApproachRational Unified ProcessUnified Process MatrixExtreme ProgrammingWhy XP?1995 Standish Group StudyAgile MethodologiesExtreme Programming: HistoryXP Bills of Rights27 FebruaryA Broader PerspectiveTriangle Technology Executive PanelFriday, 2 March3:30 p.m.Sitterson 014For more info, seehttp://www.cs.unc.edu/~pozefsky/TTECPanel.htmlCapital AnalyticsFind out about local businessesAsk questions about the industryLearn what companies are looking for in employeesNetworkMidterm Presentations:PurposeYou don’t understand something until you’ve taught itClarification of your thought process and understandingSharpen your understanding of the projectFacilitate sharingLearn from each otherPractice presentingMidterm Presentations:LogisticsMarch 6 and 8Requests acceptedAssignments will be made at team meetings15 minute presentations (excluding set up)Copies of charts to be posted on websiteFull attendance is expectedPresentations: The BasicsSpeak loudly and clearlyStand upNo chewing gum when speakingSpeak, don’t read: you ARE the expertsPractice, practice, practiceSet up and test demos and laptops earlyPresentations HintsCover all topics, but they don’t need equal time!Focus on what’s special about your projectDon’t try to cover too muchKeep it lightGive the audience something to look atPresentations GradingContent and style countSingle grade for groupEveryone does NOT need to presentPresentation ContentMotivationIntroduction to the area and project Key domain problems to be addressed“Use Cases”Who are the usersWhat do they need to doDesignSystem design and further detail as neededKey technical problems to be addressedTechnologies being used (and why)Demo: what you present to your customer this weekAny interesting “why”sMotivationTell the class about the problemInformation about the groupSimilar websitesHow things are done todayWhat are the problems being facedWhy is the project being doneDesignThe first picture that you would draw for a new team memberSharing with other teamsTechnologiesMajor problems (solved or open)Examples of Architecture PicturesGame EngineSoundFile I/OController I/OVisualInterfaceOmegaCONTROLLoginMonster CombatBreedVerifyUserLoginMODEL VIEWMonsterTwo links sent to me …Humor: If Programmers Had to Build Planeshttp://www.flixxy.com/if-programmers-had-to-build-planes.htm Which would be funny except…F-22 Raptorshttp://it.slashdot.org/it/07/02/25/2038217.shtmlThe Goal of Software EngineeringThe right software, delivered defect free, on time and on cost, every time.Software CraftmanshipSoftware craftsmanship (McBreen 2001)Craft of writing softwareCraft of using softwareDistinguish from software engineeringScopeRigorRelevant distinction?Why Industry Practices?Software engineering is the application of theory and practice ofcomputer scienceproject managementengineeringdomains Where better to look at application?Software Engineering HistoryFirst key conference in 1968Became important because of perceived software crisis in productivityCost and budget overruns (OS/360)Morphed to issues of qualityFinancial implications (BoNY)Safety (Therac)BoNY (1985)BoNY (Bank of New York): Nation’s largest clearer of government securitiesSoftware to track Federal securities transactions wrote new information on top of old.Feds debited the bank for each transaction but bank did not know who owed it how much.90 minutes => $32 Billion overdraft!Cost of BugBank had to borrow $24 bill from federal reserves. Interest paid ~$5 mill for 1 day. (Annual earnings of bank ~120 mill)BoNY share prices dropped by 25cFederal funds rate dropped from 8.4% to 5.5%System down for 28 hours.Fear of financial crisis caused increase in price of platinum!Cause of bugMessage buffer counter at BoNY system was 16-bit long. Counters at Fed (and other banks) 32 bit. More than 32,000 transactions that morning! =>Counter overflowSecurities database corrupted.The Drama continues…Trying to correct it – they copied corrupted data over the backup. Lost a few hours because of this. Does code for error recovery get tested at all?Therac-25 (1985-1987)Medical linear acceleratorUsed to zap tumors with high energy beams.Electron beams for shallow tissue or x-ray photons for deeper tissue.Eleven Therac-25s were installed:Six in CanadaFive in the United StatesTherac-25Changes from Therac-20Uses new “double pass” technique to accelerate electrons…more deadlyMachine itself takes up less spaceSoftware now coupled to the rest of the system and responsible for safety checks.Hardware safety interlocks removed.“Easier to use”Therac-25 TurntableCounterweightField Light MirrorBeam Flattener (X-ray Mode)Scan Magnet (Electron Mode)TurntableWhat Happened?Six patients were delivered severe overdoses of radiation between 1985 and 1987.Four of these patients died.Why?The turntable was in the wrong position.Patients were receiving x-rays without beam-scattering.What would cause that to happen?Race conditions.Several different race condition bugs.Overflow error.The turntable position was not checked every 256th time the “Class3” variable is incremented.No hardware safety interlocks.Wrong information on the console.Non-descriptive error messages.“Malfunction 54”“H-tilt”User-override-able error modes.Source of the BugIncompetent engineering.DesignTroubleshootingVirtually no testing of the software.The
View Full Document