1University of TorontoDepartment of Computer Science© 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 1Lecture 8:“Use Case”-Driven Design The Role of UML in the Software Process E.g. ICONIX Domain Models Use CasesUniversity of TorontoDepartment of Computer Science© 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 2Where UML fits inAnalysing RequirementsUse cases - functionality from users’ perspectiveClass diagrams - key domain concepts & terminologyActivity diagrams - workflow of the organisationState diagrams - for domain objects with interesting lifecyclesDesignClass diagrams - Map of the software structureSequence diagrams - explain common scenariosPackage diagrams - show the overall architectureState diagrams - for object with complex lifecyclesDeployment diagrams - physical layout of the softwareDocumentationAny sketches that explain key design decisionsE.g. patterns used, conceptual architecture, unused design alternatives (!)Understanding Legacy CodeAny sketches that drill down into key parts2University of TorontoDepartment of Computer Science© 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 3Refresher: UML NotationsActivity diagramsbusiness processes;concurrency andsynchronization;dependenciesbetween tasks;UML Sequence Diagramsindividual scenariointeractions betweenusers and systemSequence ofmessages(UML) Statechartsresponses to eventsdynamic behaviorevent ordering,reachability,deadlock, etcUML Package DiagramsOverall architectureDependenciesbetween componentsUse Casesuser’s viewLists functionsvisual overview of themain requirementsUML Class Diagramsinformation structurerelationships betweendata itemsmodular structure forthe systemUniversity of TorontoDepartment of Computer Science© 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 4ICONIX process3University of TorontoDepartment of Computer Science© 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 5Domain ModelUniversity of TorontoDepartment of Computer Science© 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 6AnalyseRisksUpdate AccountsSetLimitsPrice aDealCapture aDealTraderUse Case DiagramTradingmanagerAccountingSystemSalespersonValue a Deal<<includes>><<includes>>4University of TorontoDepartment of Computer Science© 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 7Documenting Use CasesFor each use case:prepare a “flow of events” document, written from an actor’s point of view.describe what the system must provide to the actor when the use case isexecuted.Typical contentsHow the use case starts and ends;Normal flow of events;Alternate flow of events;Exceptional flow of events;Documentation style:Choice of how to elaborate the use case:English language descriptionActivity Diagrams - good for business processCollaboration Diagrams - good for high level designSequence Diagrams - good for detailed designUniversity of TorontoDepartment of Computer Science© 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 8Detailed Use CaseBuy a ProductMain Success Scenario:1. Customer browses catalog and selects items to buy2. Customer goes to check out3. Customer fills in shipping information (address, next-day or 3-day delivery)4. System presents full pricing information5. Customer fills in credit card information6. System authorizes purchase7. System confirms sale immediately8. System sends confirming email to customerExtensions:3a: Customer is Regular Customer.1 System displays current shipping, pricing and billing information.2 Customer may accept or override these defaults, returns to MSS at step 66a: System fails to authorize credit card.1 Customer may reenter credit card information or may cancel5University of TorontoDepartment of Computer Science© 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 9Finding Use CasesBrowse through existing documentsnoun phrases may be domain classesverb phrases may be operations and associationspossessive phrases may indicate attributesFor each actor, ask the following questions:Which functions does the actor require from the system?What does the actor need to do ?Does the actor need to read, create, destroy, modify, or store some kinds ofinformation in the system ?Does the actor have to be notified about events in the system?Does the actor need to notify the system about something?What do those events require in terms of system functionality?Could the actor’s daily work be simplified or made more efficient through newfunctions provided by the system?University of TorontoDepartment of Computer Science© 2008 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 10Good Advice (from RUP)Adapt the ProcessRightsize your processContinuously reevaluate what you doBalance Stakeholder PrioritiesUnderstand the problem domainDescribe requirements from the user’sperspectivePrioritize requirements forimplementationLeverage legacy systemsCollaborate across TeamsBuild high-performance teamsOrganise around the architectureManage versionsDemonstrate Value IterativelyManage riskDo the project in iterationsEmbrace and manage changeMeasure progress objectivelyElevate the level of abstractionUse patternsArchitect with components and servicesActively promote reuseModel key perspectivesFocus continuously on qualityTest your Own CodeUse test automation where appropriateEveryone owns the
View Full Document