1 / 27

Tell Me a Story

Tell Me a Story. "I understand the requirements, but what does it actually do?"

tpadgett
Download Presentation

Tell Me a Story

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tell Me a Story • "I understand the requirements, but what does it actually do?" • A question often asked by systems analysts, business analysts, product managers, and programmers when confronted by two hundred pages of traditional IEEE-standard-style "The system shall . . ." functional requirements.

  2. Tell Me a Story • People like stories. • From one point of view, use cases are simply stories about how people (or other things) use a system to perform some task. • In this sense, use cases are nothing new. • We have always had ways of telling stories about systems. • Flowcharts • message traces • Storyboards • Plain prose.

  3. Use Case Advantages • Provide a semiformal framework for structuring the stories. • Ivar Jacobson provided the concepts of actors and use cases and rules for how actors and use cases communicate. • It wasn't enough just to tell a story. The story had to have a purpose: • "yield a result of measurable value to an individual actor of the system"

  4. Use Case Advantages • Excessive structure and formality can make requirements unusable. • But so can the complete lack of structure. • Suppose everyone is free to tell stories about the system in any manner they choose: • How can you determine if the requirements are correct? • How do you find redundant stories? • How do you spot holes in the stories? • Some structure is necessary; otherwise, people's creativity will work at cross-purposes.

  5. Use Case Advantages • Semiformal structuring liberates the creativity of people. • Rigid formal requirement models can be stifling. • Unusable by most people because they have not been expertly trained in the appropriate modeling technique. • Semiformal structuring makes it relatively easy for the end user of a system to read the document with very little training. • End users may then actually read the requirements document, and be better able to substantiate the system proposal while it is still in the writing stage.

  6. Use Case Advantages • Use cases describe the system requirements for the error situations, in every use case and at every level of description. • Much or most of the system complexity lies in handling error situations and describing such requirements. • Early employment of use cases means that the associated difficulties are detected and discussed early, rather than late, in the development cycle.

  7. Use Case Advantages • Although use cases are essentially a functional decomposition technique, they have become a popular element of object-oriented software development. • There are several methodologies for realizing the objects necessary to implement the behavior described by the use case. • One can write a set of use cases describing the system's functional behavior and then use these techniques to design the objects necessary to implement that behavior. • The classic work on this: • “Object-Oriented Software Engineering: A Use Case Driven Approach”, by Ivar Jacobson (1992).

  8. Jacobson Book Review 1 (5 out of 5 *’s) Lucidly describes the fundamental principals of object-oriented analysis, design, and programming. Excellent coverage of object-oriented analysis including the introduction of use cases. Uses an awkward state transition graph that resembles a flow chart in the design methodology. Emphasizes traceability from analysis model to design model to source code. Describes how object-oriented technology impacts specialized topics such as real-time systems, relational databases, testing strategies, component reuse, and product management. The "warehouse management system" case study is more stimulating than the longer "telecom" case study. Compares the OOSE method with other standard object-oriented methods.

  9. Jacobson Book Review 2 (3 out of 5 *’s) This book is considered a classic by many. The key contribution of the book is the introduction of Use Cases for requirements capture. Jacobson also provides some good hints on how to develop an OO design after starting from Use Cases. There are two big weaknesses with this book. Firstly, the book is vague on the amount of detail that should go into a Use Case. This has led to a great amount of confusion and widely different usages in industry. Secondly, the book provides only weak design guidelines beyond those provided for extracting objects from the Use Cases. Another criticism of the book is that it is written in a very academic tone, which may be hard to understand for some readers.

  10. Jacobson Book Review 3 (1 out of 5 *’s) I read 50 pages without ever seeing the word 'object' and gave up. I don't know why people think this is such a great book, it is abstract and impenetrable.

  11. Use Case Advantages • Use cases provide good scaffolding on which to hang other project information. • The project manager can build estimates and release schedules around them. • Data and business rule specifiers can associate their requirements to the use cases in which they are needed. • User interface designers can design and link their designs to the relevant use cases. • Testers can construct test scenarios from the success and failure conditions described in the use cases. • Many modern software development processes are built around use cases.

  12. Telling Good Stories is Hard • Writing use cases was supposed to be easy. • One reason for their popularity is that a well-written use case is relatively easy to read. • People may suppose that easy-to-read also means easy-to-write, but that is a mistake. • It can be terribly hard to write easy-to-read stories. • Use cases are stories, prose essays, and so bring along all the associated difficulties of story writing in general.

  13. Example – Register for Course • Display a blank schedule. • Display a list of all classes in the following way: The left window lists all the courses in the system in alphabetical order. The lower window displays the times the highlighted course is available. The third window shows all the courses currently in the schedule. • Do • Student clicks on a course. • Update the lower window to show the times the course is available. • Student clicks on a course time and then clicks on the "Add Course" button.

  14. Example – Register for Course • Check if the Student has the necessary prerequisites and that the course offering is open. • If the course is open and the Student has the necessary prerequisites, add the Student to the course. Display the updated schedule showing the new course. If no, put up a message, "You are missing the prerequisites. Choose another course." • Mark the course offering as "enrolled" in the schedule. • End do when the Student clicks on "Save Schedule." • Save the schedule and return to the main selection screen.

  15. Critique – User Interface Detail • Too much user interface detail. • In many poorly written use cases, we often see references to mouse clicks, list boxes, and window design. • In the normal course of events, the use case is written as a set of requirements that the system must satisfy. • The user interface design details are not usually requirements; they are usually design choices. • Those design choices are made later, after the use cases have been written and reviewed. • The initial design choices are often changed during development, still satisfying the overall requirements.

  16. Example - Critique • Use case experts universally warn against including the user interface design inside use cases. • Doing so is costly. • It adds writing and reviewing time. • It makes the requirements document longer—and more likely not to be read carefully. • It tends to make the requirements set "brittle.“ • Small design decisions will invalidate or force an expensive revision of the requirements document. • This is the single most critical mistake to avoid.

  17. Critique – Low Level Goals • There are too many use cases at low goal levels. • Computer programmers, who often are "stuck" with the job of writing the requirements document, have a tendency to produce numerous low-level use cases on the level of "Authorize user". • These writers are very interested in describing individual system functions and features, largely because those are the functions they will have to implement. • However, requirements documents written at such a level are very long, and difficult for end users to read. • These documents do not show well what the system will contribute to the lives of the end consumers of the system.

  18. Critique – Non-behavorial Information • Using a use case for non-behavioral information. • Sometimes writers are told, "Use cases are great. Write everything in use cases." • But a use case is not good for everything. • It is really only good for describing behavior. • Everything that the system must do should really go into a use case. • But everything else should really go into some other format. • Some writers will produce immensely detailed use cases describing the completion of a user interface form, with each field in the form getting one or two lines of description. • A much better approach is to create an Adornment by attaching the form to the back of the use case and writing in the appropriate step: • "User provides the information on form XYZ (see attachment)."

  19. Example - Critique • Use of adornments shortens both the writing and the reading, without sacrificing detail. • Performance requirements, complex business rules, data structures, and product line descriptions are all valuable. • But better captured with other requirements tools such as tables, formulas, or state machines. • Or placed in another section of the requirements document.

  20. Critique – Too Long • The previous three common errors produce use cases that are long and hard to read. • A well-written use case is short, usually only three to nine steps long. • Oddly, many people feel embarrassed with such a short start to their use case. • They should not fear, however, as there are usually more than enough extension conditions to make the use case worth writing and reading.

  21. Critique – Sentence Fragments • A relatively minor, but still noticeable, mistake is writing in sentence fragments. • One could argue that such minor writing errors don't matter, but on all but the smallest projects there are many use case writers and readers. • Omitting the actors' names in the action steps easily causes confusion over the course of the project. • A damage far greater than the cost of simply remembering to write full sentences at the beginning.

  22. Register for Course - Improved • Student requests a new schedule. • The system prepares a blank schedule form and pulls in a list of open and available courses from the Course Catalog System. • Student selects primary and alternate courses from the available offerings. • For each course, the system verifies that the Student has the necessary prerequisites and adds the Student to the course, marking the Student as "enrolled" in that course in the schedule. • When the Student indicates the schedule is complete, the system saves the schedule.

  23. Issues Example A police vehicle command and control system: It is a requirement of a police service that it respond as quickly as possible to reported incidents and the objective of a command and control system is to ensure that incidents are logged and routed to the most appropriate police vehicle. Factors which must be taken into account in deciding which vehicle to send to which incident include:

  24. Issues - Example The type of incident. Some incidents are more serious than others and require a more urgent response. It is recommended that classes of response be identified and incidents allocated to these classes. The position of available vehicles. In general, the best strategy is to send the closest vehicle to respond to an incident. Take into account that the position of vehicles may not be known exactly and it may be necessary to send a message to vehicles to determine their current position.

  25. Issues - Example The type of vehicles available. Some incidents require a number of vehicles, others such as traffic accidents, may require specialized vehicles and so on. The location of the incident. In some areas, it may be unwise simply to respond to an incident by sending a single vehicle. In other areas, a single vehicle or policeman may be all that is needed to respond to the same type of incident.

  26. Issues - Example The need to alert other emergency services such as fire and ambulance services. The system should automatically alert these services if necessary. The system should allow details of the reporter of incidents to be logged.

  27. Issues - Example • A system such as this one is open to almost indefinite expansion. • For example • Police vehicles may include fax terminals so that written information may be faxed when a vehicle is routed to an incident. • A user interface for a system control room might be prototyped and so on.

More Related