CSE 403, Spring 2007, Alverson Requirements Pragmatic Programmer Tip: Don’t Gather Requirements – Dig for them Requirements rarely lie on the surface.

Slides:



Advertisements
Similar presentations
Chapter 11 Designing the User Interface
Advertisements

Use-Cases.
Use Case & Use Case Diagram
© 2010 Bennett, McRobb and Farmer1 Use Case Description Supplementary material to support Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Use cases.
Information System Engineering
January Ron McFadyen1 Use Cases in the UML Functionality under consideration is represented by use cases (named ellipses) enclosed in a box.
CT1404 Lecture 2 Requirement Engineering and Use Cases 1.
Chapter 15: System Modeling with UML
Use Cases & Requirements Analysis By: Mostafa Elbarbary.
Documenting Requirements using Use Case Diagrams
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
1 TCSS 360, Spring 2005 Lecture Notes Use Cases Relevant Reading: Writing Effective Use Cases A. Cockburn.
03/12/2001 © Bennett, McRobb and Farmer Use Case Diagrams Based on Chapter 6 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
Adding the Detail Filling in Use Case Templates. Use Case Template The use case diagram is important for visualizing a system and as a communication tool.
Chapter 13: Designing the User Interface
USE Case Model.
User Interface Theory & Design
Principles of Object Technology Module 1: Principles of Modeling.
Use Cases Why use ‘em? How do they work? UC diagrams Using them later in the software development cycle.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
Object-Oriented Analysis - Instructor Notes
Use Cases 2 ENGR ♯10 Peter Andreae
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
MSF Requirements Envisioning Phase Planning Phase.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Software engineering lec4 Requirements. Developing requirements Start thinking about particular problem Understand the problem  Domain analysis Gather.
Introduction to Sequence Diagrams
Use Cases Ivar Jacobson - guru at Rational Corp., defined UML.
1 CSE 403 Software Requirements and Use Cases Reading: Writing Effective Use Cases A. Cockburn These lecture slides are copyright (C) Marty Stepp, 2007,
System Specification Specify system goals Develop scenarios Define functionalities Describe interface between the agent system and the environment.
PROPOSING TO WRITE A PROPOSAL? BY PAPIA BAWA. What are Proposals? Long reports usually written in response to a specific request or in response to your.
Plan Design Analyze Develop Test Implement Maintain Systems Development Life Cycle MAT Dirtbikes.
Use Cases 1. Last week  Introduction to software engineering  How is it different from traditional engineering?  Introduction to specification  Operational.
Software Engineering Chapter 7 Fall Capturing the Requirements as Use Cases Capturing the Requirements as Use Cases By using use cases analysts.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 20. Review Software Requirements Requirements Engineering Process.
1 CMPT 275 Software Engineering Requirements Gathering Activity Janice Regan,
Approaching a Problem Where do we start? How do we proceed?
 Development is organized in a series of short, fixed-length mini-projects called iterations  Iterations are also incremental  Successive enlargement.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 4: Restaurant.
Originated by K.Ingram, J.Westlake.Edited by N.A.Shulver Use Case Scripts What is a Use Case Script? The text to describe a particular Use Case interaction.
UML-1 3. Capturing Requirements and Use Case Model.
1 Object-Oriented Modeling Using UML CS 3331 Section 2.4 Modeling Requirements with Use Cases.
1 Objectives  Define key concepts of use-case modeling.  List the benefits of use-case modeling.  Find actors and use cases.  Describe their relationships.
Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Engineering Lab Use Cases Faculty of Information system Technology.
User Interface Theory & Design Lecture 6a 1.  User interface is everything the end user comes into contact with while using the system  To the user,
Systems Analysis and Design in a Changing World, 6th Edition
1 Modeling System Requirements with Use Cases. 2 Why Do We Need Use Cases? Primary challenge in a system design process –ability to elicit correct and.
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
By Germaine Cheung Hong Kong Computer Institute
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Requirements specification Why is this the first major stage of software development? –Need to understand what customer wants first Goal of requirements.
CS212: Object Oriented Analysis and Design Lecture 32: Use case and Class diagrams.
Scenario A scenario is a sequence of steps describing an interaction between a user and a system. Use case is a set of scenarios tied together by a common.
Sept Ron McFadyen1 Use Cases Introduced by Ivar Jacobson in 1986 literal translation from Swedish ”usage case” Used to capture and describe.
Requirements CSE Lecture outline What are requirements? How can we gather requirements? How can we document requirements? Use cases.
Understanding Requirements
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
Requirements capture: Using UML Use Cases David Millard and Yvonne Howard {dem,
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
Use Cases Discuss the what and how of use cases: Basics Examples Benefits Parts Stages Guidelines.
Relevant Reading: Writing Effective Use Cases A. Cockburn
Grading CSE 403, Spring 2008, Alverson.
Use Cases Discuss the what and how of use cases: Basics Benefits
UML Use Case Diagrams.
Start at 17th March 2012 end at 31th March 2012
Concepts, Specifications, and Diagrams
Object Oriented Analysis and Design
Using Use Case Diagrams
Object-Oriented Software Engineering
Presentation transcript:

CSE 403, Spring 2007, Alverson Requirements Pragmatic Programmer Tip: Don’t Gather Requirements – Dig for them Requirements rarely lie on the surface. They’re buried deep beneath layers of assumptions, misconceptions, and politics Some material on use cases from lecture by Marty Stepp, Wi07.

CSE 403, Spring 2007, Alverson Readings Requirements and Use cases: o Writing Effective Use Cases, Alistair Cockburn o Pragmatic Programmer, p Paper prototypes o g.htm g.htm o g.htm

CSE 403, Spring 2007, Alverson Outline What are requirements? Some interesting requirements facts How can we gather requirements? How can we specify requirements?

CSE 403, Spring 2007, Alverson Software requirements requirements: specify what to build o tell "what" and not "how" o tell the problem, not the solution (in detail) Some goals of doing requirements: o understand precisely what is required of the software o communicate this understanding precisely to all development parties o control production to ensure that system meets specs (including changes)

CSE 403, Spring 2007, Alverson General classes of requirements features – core features, additional, stretch quality performance schedule user interface system – browsers, os interoperability accessibility/ease of use

CSE 403, Spring 2007, Alverson General classes of requirements Examples requirements types: Feature set GUI Performance Reliability Expansibility (ie. support plug ins) Environment operates in (ie. HW, OS, browsers) Schedule

CSE 403, Spring 2007, Alverson How do we gather requirements? Let’s start with two facts: Standish group survey of over 8000 projects, the number one reason that projects succeed is user involvement Easy access to end users is one of three critical success factors in rapid-development projects (McConnell)

CSE 403, Spring 2007, Alverson How do we gather requirements? Benefits of working with customers: o Good relations improve development speed o Improves perceived development speed o They don’t always know what they want o They do know what they want, and it changes over time

CSE 403, Spring 2007, Alverson Words of Wisdom 1 The most difficult part of requirements gathering is not the act of recording what the users want; it is the exploratory, development activity of helping users figure out what they want. McConnell, SG

CSE 403, Spring 2007, Alverson Words of Wisdom 2 Work with a User to Think Like a User – it’s the best way to get insight on how the system is easily used Pragmatic Programmer Tip

CSE 403, Spring 2007, Alverson How can we work with our customers? What can we do during the lifecycle stages of: Planning Requirements Analysis Design Construction select lifecycle identify real customer establish interaction method help customer determine what they want (ie.prototypes) videotape customers operating, use cases surveys, meetings, focus groups, discussions design for change implement to allow change show customer tangible signs of progress, phased delivery allowing feedback

CSE 403, Spring 2007, Alverson Words of Wisdom 3 Throughout your travels with the customer, be sure to set reasonable customer expectations

CSE 403, Spring 2007, Alverson How can we specify requirements? So… we’re working with the customer to understand their needs, how do we capture these requirements? Possibilities include: Prototype System Requirements Specification Document Use Cases Feature List Paper GUI prototype

CSE 403, Spring 2007, Alverson Use cases use cases: written descriptions of user's interaction with the software product to accomplish a goal "A behaviorally related sequence of transactions performed by an actor in a dialogue with the system to provide some measurable value to the actor" (Jacobson 1995) Use cases describe the ways in which a system can be used Use cases help us discover/document requirements

CSE 403, Spring 2007, Alverson Benefits of doing use cases The list of goal names provides executives: o Shortest summary of what system will contribute o Project planning skeleton (priorities & timing) The main success scenario provides all: o Agreement as to the system’s responsibilities The extension conditions provide programmers: o List of things programmers have to watch for o List of things analysts have to investigate

CSE 403, Spring 2007, Alverson Actors and stakeholders What is an actor? A primary actor? What is the difference between an actor and a stakeholder? actor: anything with behavior that acts on the system primary actor: initiates interaction to achieve goal (when system is a software product, primary actor is often the computer user) supporting actor: performs sub-goals to help use case stakeholder: anyone interested in the system examples: supplier, stock agency, vendor the difference: stakeholder might not "act" in any scenario

CSE 403, Spring 2007, Alverson Use case goals and levels goal: action that actor wants to accomplish level: type / scope of a goal o summary goals: multi-sitting o user goals: one sitting o subfunctions: partial

CSE 403, Spring 2007, Alverson

Use Cases A use case characterizes a way of using a system It represents a dialog between a user and the system, from the user’s point of view

CSE 403, Spring 2007, Alverson Benefits of doing use cases Establish an understanding between the customer and the system developers of the requirements (success scenarios) Alert developers of problematic situations (extension scenarios) Capture a level of functionality to plan around (list of goals)

CSE 403, Spring 2007, Alverson Terminology Actor: agent that acts on the system Primary actor: initiates interaction to achieve the goal Stakeholder: agent with a vested interest in the behavior of the system Goal: action that actor wants to accomplish Level: type / scope of a goal o summary goals: multi-sitting o user goals: one sitting o subfunctions: partial

CSE 403, Spring 2007, Alverson Goals and levels What level are these goals at? o Checkout a video from the library o Purchase a book from the online store, and have it shipped to the user; can be cancelled while in transit o Update user's balance after a deposit o Add a class to a course schedule Answers: user goal, summary goal, subfunction, user

CSE 403, Spring 2007, Alverson Do use cases capture these? Which of these requirements should be represented directly in a use case? o Order cost = order item costs * 1.06 tax. o Promotions may not run longer than 6 months. o Customers only become Preferred after 1 year o A customer has one and only one sales contact o Response time is less than 2 seconds o Uptime requirement is 99.8% o Number of simultaneous users will be 200 max Answer: NONE. Most of these requirements are non-functional, so the use cases wouldn't explicitly mention them. The user doesn't see them directly in the success scenario.

CSE 403, Spring 2007, Alverson Styles of use cases 1. Use case diagram (UML/Visio/Violet) o shows all use cases in system 2. Informal use case 3. Formal use case Let's examine each of these in detail...

CSE 403, Spring 2007, Alverson 1. Use case summary diagrams The overall list of your system's use cases can be drawn as high-level diagrams, with: o actors as stick-men, with their names (nouns) o use cases as ellipses with their names (verbs) o line associations, connecting an actor to a use case in which that actor participates o use cases can be connected to other cases that they use / rely on Library patron Check out book

CSE 403, Spring 2007, Alverson Use case summary diagrams It can be useful to create a list or table of primary actors and their "goals" (use cases they start). The diagram will then capture this material. ActorGoal Library PatronCheck out book Search for book Reserve book LibrarianRecord new book Search for book Generate catalog

CSE 403, Spring 2007, Alverson Use case summary diagram 1 Library System Search Record new Reserve Check out Librarian Library Patron Gen catalog

CSE 403, Spring 2007, Alverson Use case summary diagram 2 Investment System

CSE 403, Spring 2007, Alverson UML/Visio Quick demo

CSE 403, Spring 2007, Alverson 2. Informal use case informal use case: written as a paragraph describing the scenario/interaction Example: o Patron Loses a Book The library patron reports to the librarian that she has lost a book. The librarian prints out the library record and asks patron to speak with the head librarian, who will arrange for the patron to pay a fee. The system will be updated to reflect lost book, and patron's record is updated as well. The head librarian may authorize purchase of a replacement tape.

CSE 403, Spring 2007, Alverson 3. Formal use case GoalPatron wishes to reserve a book using the online catalog Primary actorPatron ScopeLibrary system LevelUser PreconditionPatron is at the login screen Success end condition Book is reserved Failure end condition Book is not reserved TriggerPatron logs into system

CSE 403, Spring 2007, Alverson Main Success Scenario 1. Patron enters account and password 2. System verifies and logs patron in 3. System presents catalog with search screen 4. Patron enters book title 5. System finds match and presents location choices to patron 6. Patron selects location and reserves book 7. System confirms reservation and re-presents catalog Extensions (error scenarios) 2a. Password is incorrect 2a.1 System returns patron to login screen 2a.2 Patron backs out or tries again 5a. System cannot find book 5a.1 … Variations (alternative scenarios) 4. Patron enters author or subject

CSE 403, Spring 2007, Alverson Steps in creating a use case 1. Identify actors and their goals 2. Write the main success scenario 3. Identify and list possible failure extensions and how they’re handled 4. Identify and list possible variations

CSE 403, Spring 2007, Alverson 1. Identify actors and goals What computers, subsystems and people will drive our system? (actors) What does each actor need our system to do? (goals) Result: a list of use cases, a sketch of the system o can now draw [UML] use case diagram for each reference

CSE 403, Spring 2007, Alverson Identify actors/goals exercise Let’s identify some major actors and their goals for the 4 projects o UTalk o SuiteRates o CourseRegistration o Sustainability

CSE 403, Spring 2007, Alverson 2. Write the success scenario Main success scenario is the preferred "happy" case o easiest to read and understand o everything else is a complication on this Capture each actor's intent and responsibility, from trigger to goal delivery o say what information passes between them o number each line

CSE 403, Spring 2007, Alverson 3. List the failure extensions Usually, almost every step can fail Note the failure condition separately, after the main success scenario Label with step number and letter: o 5a failure condition  5a.1 use case continued with failure scenario  5a.2 continued Exercise: What are some failure conditions for posting a spreadsheet to the sustainability db?

CSE 403, Spring 2007, Alverson 4. List the variations Many steps can have alternative behaviors or scenarios Label with step number and alternative o 5’. Alternative 1 for step 5 o 5’’. Alternative 2 for step 5 Exercise: What are some alternatives that arise around looking up a course in the school catalog?

CSE 403, Spring 2007, Alverson Qualities of a good use case A good use case: o starts with a request from an actor to the system o ends with the production of all the answers to the request o defines the interactions (between system and actors) related to the function o takes into account the actor's point of view, not the system's o focuses on interaction, not internal system activities o doesn't describe the GUI in detail o has 3-9 steps in the main success scenario o is easy to read A good use case summary fits on a page

CSE 403, Spring 2007, Alverson Exercise: Project use case Each project team break into 2 groups Meet up with one of your customer groups Together write a use case for each of your products Choose one per project team to share with the class Update! SRS doc should use same use case template.

CSE 403, Spring 2007, Alverson UTalk & Course Registration 1 Front Row Suite Rates 2 & Sustainability Back Row Suite Rates 1 & Course Registration 2

CSE 403, Spring 2007, Alverson

Pulling it all together How much is enough? You have to find a balance comprehensible vs. detailed correctness graphics vs. explicit wording and tables short and timely vs. complete and late Your balance may differ with each customer depending on your relationship and flexibility

CSE 403, Spring 2007, Alverson Words of Wisdom 5 After you create a specification, go over it to: o Eliminate all requirements not absolutely necessary o Simplify those that are more complicated than necessary o Substitute cheaper options when available o Move non essentials to future releases