CS 121 “Ordering Chaos” Requirements Modeling “Mike” Michael A. Erlinger Today: How Can we specify Requirements in a meaningful way reqsModeling.f12.ppt Administrivia Teams chosen, GLECS assigned, mail lists made Tracs created svns created Elicitation done… –2– CS 121 Admin Tracs are up with grader access Trac Template available Link to past project for examples of deliverables email lists for all teams without graders without teachers all teams should have contact info for teachers 2 conference rooms to reserve. check with DruAnn Thomas <DruAnn_Thomas@hmc.edu> Blogs Piazza work space on 2nd floor –3– CS 121 Panic: Due within 7 Days Management Update Customer Elicitation Report Game Treatment Use Cases Technology Assessment Forcing pyGame version to run on both Mac and Pc –4– CS 121 Last lecture Good requirements are crucial Specifying requirements is hard –5– lots of examples of poor requirements CS 121 Today Modeling Requirements: from customer views to something translatable to software Techniques for developing functional requirements What the software is supposed to do! –6– CS 121 Requirements modeling We build models in requirements analysis to understand –7– current systems or business processes which we are trying to automate how users will use a new system CS 121 The software requirements document The software requirements document is the official statement of what is required of the system developers. Should include both a definition of user requirements and a specification of the system requirements. It is NOT a design document. As far as possible, it should set WHAT the system should do rather than HOW it should do it. –8– 8 CS 121 Agile methods and requirements Many agile methods argue that producing a requirements document is a waste of time as requirements change so quickly. The document is therefore always out of date. Methods such as XP use incremental requirements engineering and express requirements as ‘user stories’ This is practical for business systems and games but problematic for systems that require a lot of predelivery analysis (e.g. critical systems) or systems developed by several teams, e.g., large government systems. –9– 9 CS 121 Requirements document variability Information in requirements document depends on the type of system and the approach to development used. Systems developed incrementally will, typically, have less detail in the requirements document. Requirements documents standards have been designed e.g. IEEE standard. These are mostly applicable to the requirements for large systems engineering projects. – 10 – Chapter 4 Requirements engineering 10 CS 121 The structure of a requirements document Chapter Description Preface This should define the expected readership of the document and describe its version history, including a rationale for the creation of a new version and a summary of the changes made in each version. Introduction This should describe the need for the system. It should briefly describe the system’s functions and explain how it will work with other systems. It should also describe how the system fits into the overall business or strategic objectives of the organization commissioning the software. Glossary This should define the technical terms used in the document. You should not make assumptions about the experience or expertise of the reader. User requirements Here, you describe the services provided for the user. The nonfunctional definition system requirements should also be described in this section. This description may use natural language, diagrams, or other notations that are understandable to customers. Product and process standards that must be followed should be specified. System architecture – 11 – This chapter should present a high-level overview of the anticipated system architecture, showing the distribution of functions across system modules. Architectural components that are reused should be highlighted. 11 CS 121 The structure of a requirements document Chapter Description System requirements specification This should describe the functional and nonfunctional requirements in more detail. If necessary, further detail may also be added to the nonfunctional requirements. Interfaces to other systems may be defined. System models This might include graphical system models showing the relationships between the system components and the system and its environment. Examples of possible models are object models, data-flow models, or semantic data models. System evolution This should describe the fundamental assumptions on which the system is based, and any anticipated changes due to hardware evolution, changing user needs, and so on. This section is useful for system designers as it may help them avoid design decisions that would constrain likely future changes to the system. Appendices These should provide detailed, specific information that is related to the application being developed; for example, hardware and database descriptions. Hardware requirements define the minimal and optimal configurations for the system. Database requirements define the logical organization of the data used by the system and the relationships between data. Index Several indexes to the document may be included. As well as a normal alphabetic index, there may be an index of diagrams, an index of functions, and so on. – 12 – 12 CS 121 Requirements and Design In principle, requirements should state what the system should do and the design should describe how it does this. In practice, requirements and design are inseparable A system architecture may be designed to structure the requirements; The system may inter-operate with other systems that generate design requirements; The use of a specific architecture to satisfy nonfunctional requirements may be a domain requirement. This may be the consequence of a regulatory requirement. – 13 – CS 121 Requirements Engineering/Requirements Modeling Processes The processes used for RE/RM vary widely depending on the application domain, the people involved and the organisation developing the requirements. However, there are a number of generic activities common to all processes Requirements elicitation; Requirements analysis; Requirements validation; Requirements management. In practice, RE/RM is an iterative activity in which these processes are interleaved. – 14 – 14 CS 121 Tools for modeling requirements Use Cases – in late 70s, my advisor wrote a tech paper on how to do this State Diagrams UI Mockups – standard process in DoD and auto industry – (Not in my kitchen) Storyboards Prototypes Example: TLB – Meetings and Arch/Design Specifications Today building is set down to light switches, some things floating… white board vs black board – 15 – CS 121 Functional Reqs: What should it do? connect mysql database to asp .net web … Developer – 16 – sell my beautiful jewelry find a cool ring on sale Client Customer of client CS 121 Functional Reqs: What should it do? sell my beautiful jewelry User-centric: What, not how Difficult to express find a cool ring on sale Client Customer of client – 17 – CS 121 Modeling functional Reqs Identify user classes Example: jewelry store owner buyer of jewelry – 18 – CS 121 Modeling functional reqs Identify user classes For each user class identify goals Example Buyer: search for item place an order return an item – 19 – CS 121 Modeling functional reqs Identify user classes For each user class identify goals For each user class/goal – 20 – Describe how the user will use the system CS 121 Example Name: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept. Initiator: Alice Scenario: 1. Alice calls company 2. Bob answers phone 3. Alice says she wants to place an order from the catalogue. 4. Bob asks how the order will be paid. 5. … – 21 – USE CASE CS 121 Forms of Use Cases Casual – “user stories” … these are cultural issues but in agile methods, less is more Fully dressed use cases – preconditions, postconditions, actors, stakeholders, etc. – 22 – CS 121 Key aspects of Use Case Name: what we call this use case Actors: entities that interact with system (typically people but also can be other systems) Initiator: actor who initiates the use case Scenario: sequence of steps users take and how system responds – 23 – CS 121 Example: Main scenario Name: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept. Initiator: Alice Scenario: 1. Alice calls company 2. Bob answers phone 3. Alice says she wants to order item X. 4. Bob checks stockroom for availability. 5. Stockroom says it is available. 6. … – 24 – CS 121 Main scenario with branches Name: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept. Initiator: Alice Scenario: 1. Alice calls company 2. Bob answers phone 3. Alice says she want to order item D23 from page 5 the catalogue. 4. Bob checks stockroom for availability. 5. Stockroom says it is available. 5a. Stockroom says it is not available. See order out of stock item use case. 6. – 25 – …. Alternative path can be completed or refer to another use case. CS 121 Use case development Brainstorm to identify Use Cases Validate/prioritize/ensure consistency Elaborate high priority/complex use cases identify new Use Cases Repeat until _________________ Waterfall: until done – done keeps moving Agile: until good enough for now – 26 – CS 121 Sequence Diagram - Alternative Bob: Sales rep Stockroom call on phone Alice: Customer answers phone … wants to order – 27 – CS 121 Example: Pac Man Use Cases Actor User User User User User User User User User – 28 – Goal/Title Play game Initialize game View high scores Set level Pause game Exit game Save game Change Controls Play saved game Priority 1 1 3 3 2 2 3 4 3 CS 121 Elaborated Use Case Play game: 1. User chooses “Play Game” from main menu. 2. Start level is displayed with player having 3 lives 3. User moves Pac Man left, right, up, down – (point to other UC) 4. Pac Man moves to empty space, return to step 3 4.a. Pac Man hits dot but not end of level, 50 points awarded, return to step 3 4.b. Pac Man hits dot and level ends, 50 points awarded and new level starts (see start new level use case) 4.c. Pac Man hits ghost (see hits ghost use case) 4.d. Pac Man hits a wall, can’t move any further in that direction, returns to step 3 with new constraint etc. – 29 – CS 121 Refined Use Case Play game: 1. User chooses “Play Game” from main menu. 2. Start level displayed with 3 lives and 0 score 3. Play level (see separate use case) 4. Repeat 3 on successive levels until game over – 30 – CS 121 Refined Use Case (no UI spec) Play game: 1. User chooses to play game 2. First level starts with 3 lives and 0 score 2. Play level (see separate use case) 3. Repeat 3 on successive levels until game over How do you refine a Use Case?? Talk to user!! – 31 – CS 121 Pac Man Use Cases Actor User Goal Play game Priority 1 User User User Play level Initialize game View high scores 1 1 3 User User User User Set level Pause game Exit game Save game 3 2 2 3 User User Change Controls Play saved game 4 3 – 32 – CS 121 Agile method: goal stack highest priority, best modeled use case, e.g, Play UC prioritized use cases lowest priority, least modeled use case, e.g., store game history – 33 – CS 121 Uses of use case Requirements: Define functional requirements Expose business rules (constraints on behavior) Planning: Suggest an iterative strategy Design: Validate design models, i.e., does design provide for Use Case Testing: Provide scenarios for validation testing – 34 – CS 121 Requirement Quality Specify what not how Unambiguous Testable Feasible How can Use Cases contribute to quality in functional requirements? Consistent Prioritized Traceable – Agile: back to requestor Interative: back to a specification # Agreed upon by customer – 35 – CS 121 Tools for modeling (functional) requirements Use Cases good for describing “flow” State Diagrams UI Mockups Storyboards Prototypes – 36 – CS 121 State diagrams Play level: initialize n=3 (#lives), k=0 (level score) Hits dot: Sound effect k increased by 50 k<MAX k<0 Win level – 37 – Pac Man has n lives, score k moves left, right, up, down Moves to empty spot n>0 Hits ghost: Sound effect n reduced by 1 n=0 Lose level CS 121 Tools for modeling (functional) requirements Use Cases State Diagrams good for describing “flow” Better for state machines UI Mockups Storyboards Prototypes – 38 – CS 121 UI Mock UP • UI Mock Up (or even full design) is often considered part of the requirements process because it summarizes the ways a user can interact with the system. • UI design can also address non functional requirements, e.g., look and feel – 39 – CS 121 Storyboards Good for communicating “look and feel” in addition to “flow” – 40 – (again addressing non-functional requirements) (Indian Jones vs Casablanca movies) Missing in my GPS experience CS 121 Tools for modeling (functional) requirements Use Cases State Diagrams UI Mockups Storyboards these are special cases of prototypes Prototypes – 41 – CS 121 Prototypes Use fast prototyping tools to clarify functionality, look and feel, etc. Sample level with simplified art, minimal features – 42 – CS 121 Which model should you use? All that are appropriate! Invent new ones as needed! – 43 – CS 121 Requirements for games Management Marketing … Game Designer Users Software engineers – 44 – CS 121 Top down game specification High concept Competitive analysis Main character Game Mechanics Underlying models Major features Traditional Game Design Document “Game Bible” Look and feel Scoring UI etc. – 45 – CS 121 Bottom up game specification Use cases State diagrams UI mock ups Storyboards Prototypes Make your vision “concrete” Discover technical requirements: • Display sprite • Move sprite • Detect collision • etc. Address feasibility Suggest iterative design/development strategy – 46 – CS 121 Agile method: goal stack initial top goals – risks, proof of concept display sprite prioritized use cases, proofs of concept move sprite level 0 – 47 – proof of concept to understand feasibility use case CS 121 Next Time Design practice Reading/watching – 48 – McConnell UML tutorial (several pages, do it all) CS 121 Comments on Phase 1 Startup High level concept should be specified more as a brain storming of ideas. high level concept conveys formality before requirements elicitation Teacher contact Need name, school description, classroom description, etc. earlier. Hard to think about game concept or questions with no knowledge of environment – 49 – CS 121 Keep Responding to Schedule Phase 1... – 50 – CS 121 Sample questions Why do we want to classify users? What are use cases? What are their benefits? Shortcomings? What are key components to a use case? How can use cases be employed throughout the project? What is a sequence diagram and when is it useful? How does UI design fit into the requirements process? Why do we use prototypes in the requirements process? – 51 – CS 121 The End – 52 – CS 121