Software Engineering I Sept 27, 2013 Notes Last time: Use Cases This time: More use cases, examples, extensions and generalizations Use case: Open File Related use cases: Generalization of: -open file by typing name -open file by browsing Steps: 1. Choose open command <-- actor action 2. Display file open dialog <-- system response 3. Specify file name <-- actor action 4. Confirm selection <-- actor action 5. Remove dialog from display <-- system reponse Use case: Open file by typing name Related use cases: Generalization: open file Steps: 1. Choose open command <-- actor 2. Display file open dialog <-- system 3. a. Select text field <-- actor b. Type file name <-- actor 4. Click open <-- actor 5. Remove dialog from display <-- system In class exercise: Open file by browsing Use case: open file that does not exist Related use cases: Extension of: Open file by typing name Steps: 4. Click open <-- actor 4. a. Indicate file does not exist <-- system b. Correct file name <-- actor c. Click open <-- actor d. Return to 4. a. if file does not exist <-- system 5. Remove dialog from display <-- system Use case: Browse for file (inclusion) Steps: 1. If desired file is not found, select directory <-- actor 2. Display directory <-- system 3. Repeat 1 until file is displayed <-- actor 4. Select file <-- actor Modeling process We need to choose use cases to focus on during the modeling process. - One or a few use cases are often indentified as _central_. - Ex: Airline Reservation System Reserve a seat on a flight - System can often be built around a central use case - Some use cases are high risk + Known problems with implementation + Ex: Navigation system - Enter navigation mode - Speak now - Some have high political/commercial value + Impress people Benefits of Use Cases - Drive development process - Help define scope of system - Help plan development process # of use cases helps to indicate project size - Help to develop and validate requirements - Help to define test cases - Help structure manuals Do's and Don't's - Do validate use cases - Do investigate what might not be covered by use cases - Add innovative use cases - Don't just follow what has been done before - Don't add extraneous use cases Scenarios - instances of use cases Requirements gathering - Observation - Interviewing - Brainstorming - Prototyping Observation - Read documentation, discuss requirements - Watch users at work (shadowing) - Look out for subtle, but important, details - Important for large systems because it helps with planning/design Interviewing -plan what to do -interview lots of stakeholders -spread out over time -prepare questions -get specific details -determine stakeholder's vision -alternative ideas -minimum acceptable system -have the stakeholders draw diagrams -ask about other information sources