Use Case Modeling Watch the video on use cases • Review at minute 2:41-3:37 Use Cases are one way to capture requirements • A visual way to capture functional requirements • Each bubble is a discrete user goal • Actors can be people, or external systems • Each bubble is mapped to a textual description Arms/ disarms syst em Accesses syst em via Int ernet homeow ner syst em administ rat or Responds t o alarm event Encount ers an error condit ion Reconf igures sensors and relat ed syst em f eat ures sensors Use Case Description • See example on class schedule • Include basic and alternate/exception flows – Each alternate flow must start at a step in the basic flow, and may return to a step in the basic flow – Exception flows are analogous to exceptions in code • Includes versus preconditions • Do not use language that hints at implementation details or system interactions – Avoid click, press, type, button, etc. – Unnecessarily limits creativity Use Case Diagrams • Made up of three components – Actors (people or external systems) – Use Cases (with textual descriptions) – Relationships Record class grades Review Transcripts Teacher Authorized Staff Worker Student First, identify actors • Who or what will provide input to the system? • Who or what will need output from the system? • Exercise: identify three actors for an ATM Answer: identify three actors for an ATM • Customer • Database (for account information, etc) – this is an external system • Maintenance person Relationships between actors • One can be a specialization of another • Actors are classes, not individual people Student Graduate Student Next, identify user goals • User Goals are statements that represent what the users need to accomplish, independent of specific software features – – – – “Buy a book” “Return a book” “View order history” “Record a log for a transaction” • Exercise: identify five uses cases for an ATM https://commons.wikimedia.org/wiki/File:Girl_blowing_bubbles.jpg Answer: identify five use cases for an ATM • • • • • • • • Authenticate user Withdraw funds Deposit funds Check balance Transfer funds Load bills etc Each would be a bubble in diagram https://commons.wikimedia.org/wiki/File:Girl_blowing_bubbles.jpg Finally, add relationships • Three types of relationships for use cases: Includes Extends Generalization Includes relationship • One use case can invoke the behavior of another – arrow goes toward included use case • Not always, but often a precursor – I.e. the “Buy a book” use case includes the “Authenticate customer” Alter Student Grade <<includes>> Teacher Record Grades for a Section Extends Relationship • Similar to the includes, but used for handling an abnormal situation – arrow goes toward extended use case Alter Student Grade <<extends>> Alter student grade for a class taken more than a year ago Authorized Staff Worker Generalization Relationship • Replaces generic functionality with an concrete implementation – arrow goes toward extended use case Authenticate user User Authenticate by card swipe Authenticate by iris scan Why Use Cases? • • • • Visual representation easy to understand Relationships are opportunities for reuse Use case descriptions can be basis for testing Can be the basis for planning and scheduling Quiz review • • • • • What is a single use case? What is a use case description? What is a use case diagram? What is an actor? What is a relation? – – – – includes relation? extends relation? generalization relation? which way does the arrow go? In-class Exercises • Complete the ATM use case diagram – use each type of relation at least once • Complete the use case description for the Withdraw Funds use case for the ATM • Complete the exercises at: http://www.cs.gmu.edu/~kdobolyi/cs321/hwk02.html • Due at beginning of next class In-class Exercises (time permitting) • Examine the Quiz Game description • In your teams, come up with at least seven use cases; – At least three actors – At least one of each type of relationship – Complete a use case description for each use case • Turn in this assignment through svn – See instructions, rubric, and details on project page