Unformatted text preview:

CS427: Software Engineering IAdministrative infoTopicsExample ADTINSIntentional namesDatabases in INSSlide 8Slide 9ADT for databaseOperationsAxiomsDesign vs. implementationSoftware quality assurancePerspective on qualitySQATotal quality management“Quality is free”Cost of fixing an errorError: Terminology?Failure vs. flawFailure costsPrevention costsJohnson’s lawWays not to improve qualityHow to improve qualityMetricsHow to appraise qualityBug trackingSlide 30Use quality information to make decisionsSlide 32Technical reviewsMain goal: Evaluate qualitySecondary goal: Improve qualityThe review teamLeaderRecorderReviewersResult of reviewWalkthroughInspectionReviewing productsChecklist: Smalltalk codeSummaryNext: Continuing on SQA1CS427:Software Engineering IDarko Marinov(slides from Ralph Johnson)CS427 20-2Administrative infoHW2 graded, get hard copies from GaneshGrades posted on WikiNew Wiki serverhttp://pixie.cs.uiuc.edu:8080/SEcourseConsider switching to another Wiki (for CS428)HW3 postponed for Thursday, Nov. 9State machines and ADTsProject groups start/keep meeting with TAsGet feedback on projects from TAsCS427 20-3TopicsCovered designComponent-level designModularity and abstraction, refinementXP example (for analysis and design)OO design (and some RUP reminders) TodayADTs: one more example (others in Lecture 17)Software Quality AssuranceCS427 20-4Example ADTIntentional Naming System (INS)We’ll look at this onePhone bookYou can see it with more details elsewherehttp://www.mit.edu/~6.170/lectures/adts.pdfSomething from your projectsIf you have questions, you can ask now or through emails/newsgroupCS427 20-5INS[Adjie-Winoto et al., SOSP 1999]Resource discovery in dynamic networksNames in INS mean what not whereTraditional: ‘128.174.252.214’ or ‘ds3203.cs.uiuc.edu’Intentional: ‘color printer for transparencies’Intentional namesHierarchy of attributes and valuesIntentional namesR0SCbuilding servicecameraR1printerSCbuilding serviceCS427 20-7Databases in INSCollect information about resourcesRespond to queriesAdd to databaseR0SCbuilding servicecameraR1printerSCbuilding servicebuilding serviceSC camera printerdatabaseR0R1lookup(query, database) = {R0}R0SCbuilding servicecameraR1printerSCbuilding servicebuilding serviceSC camera printerdatabaseR0R1querySCservicecamerabuildingLookup into databaseCS427 20-10ADT for databaseSuppose that we’ve already designedIntentional Name (this is not that easy)Resource (this is trivial)We want to design databaseValues?Operations?Properties?CS427 20-11OperationsConstructors (types?)empty:add:Observers (types?)lookup:get:CS427 20-12AxiomsNotation: OO (receiver) or math (functions)Basic axioms for collections (preconditions?)Main property: subtree matching in lookupCS427 20-13Design vs. implementationImplementation for INS had a few hundreds lines of Java codeHard to understand high-level pictureHad bugsCannot fit in one slideAxioms can fit into one slideEasier(?) to understandCan analyze automatically (found some bugs)CS427 20-14Software quality assuranceSQA: not just testingHow can you tell if software has high quality?How can we measure the quality of software?How can we make sure software has high quality?CS427 20-15Perspective on qualityCustomerSystem not crashesSystem follows documentationSystem is logical and easy to useDeveloperSystem is easy to changeSystem is easy to understandSystem is pleasant to work onCS427 20-16SQAPotential mistakesQuality is conformance to requirements and standardsVariation control is the heart of quality control (mass production unlike software)Iterative viewFeedback and continual improvement is the real heart of quality softwareCS427 20-17Total quality managementFactoriesGoal is for every item coming off the assembly line to be perfect Management, production, engineering, QAEveryone is involved in qualityDevelop a reliable, repeatable processContinuously improve the processCS427 20-18“Quality is free”QualityEffortCS427 20-19Cost of fixing an errorDesign Code Dev.TestSystemTestFieldoperation3-6timesReq.10times15-40times30-70times40-1000times101time10010001CS427 20-20Error: Terminology?AnomalyBugCrashDefectErrorFailure/fault…CS427 20-21Failure vs. flawFailure - program didn’t work rightFlaw - mistake in the text of the programFailure analysis (debugging) - what flaw caused this failure?Flaw analysis - what is wrong with our process that allowed this flaw to be created and not detected?CS427 20-22Failure costsInternalReworkRepairFailure analysis ExternalResolving complaintsReturning and replacing productHelp lineCS427 20-23Prevention costsPreventionPlanningManaging and collecting informationReviewsAppraisalInspectionTestingCS427 20-24Johnson’s law“If you don’t test for it, your system doesn’t have it.”Is it easy to use? Easy to maintain? Does it crash?Does it match the documentation?Does it make customers happy?CS427 20-25Ways not to improve qualitySay “Be more careful!”Say “Quality is important.”Find out whose fault it is and fire himCS427 20-26How to improve qualityMeasure and compareDetermine root cause of problemsCreate ways to eliminate problemsCS427 20-27MetricsIf you don’t see it, it doesn’t existMeasure quality over time (metrics)Display in a public placeMake quality goals, then check to see if you meet themCS427 20-28How to appraise qualityRequirementsReviews by customersPrototypingAnalysis and design modelsFormal reviews, inspectionsCurrent systemBug reportsUser testsSurveysCS427 20-29Bug trackingKeep track ofWho reported the bug (the failure)Description of the failureSeverityThe flaw that caused this failureWho is repairing itThe repairCS427 20-30Bug trackingUse information about failures to estimate reliabilityCompareCritical nature of failureIteration failure discoveredModule that had the flawCS427 20-31Use quality information to make decisions“Must repair all level 1 failures before shipping”“Half of all level 1 and 2 failures in the alpha release were in the Call Processing module; we should rewrite it.”“Half of all level 1 and 2


View Full Document

U of I CS 427 - Software Engineering I

Download Software Engineering I
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Software Engineering I and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Software Engineering I 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?