Requirement modeling

740 views

Published on

Published in: Education, Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
740
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
37
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Requirement modeling

  1. 1. Requirements Modeling
  2. 2. – 2 – Modeling Requirements:Modeling Requirements: from customer views to something translatablefrom customer views to something translatable to softwareto software echniques for developing functional requirements What the software is supposed to do!
  3. 3. – 3 – Requirements modeling We build models in requirements analysis or/andWe build models in requirements analysis or/and specifications to understandspecifications to understand  current systems or business processes which we are trying to automate  how users will use a new system
  4. 4. – 4 – The software requirements document The software requirements document is the officialThe software requirements document is the official statement of what is required of the systemstatement of what is required of the system developers.developers. Should include both a definition of userShould include both a definition of user requirements and a specification of the systemrequirements and a specification of the system requirements.requirements. It is NOT a design document. As far as possible, itIt is NOT a design document. As far as possible, it should set WHAT the system should do rathershould set WHAT the system should do rather than HOW it should do it.than HOW it should do it. 4
  5. 5. – 5 – Agile methods and requirements Many agile methods argue that producing aMany agile methods argue that producing a requirements document is a waste of time asrequirements document is a waste of time as requirements change so quickly.requirements change so quickly. The document is therefore always out of date.The document is therefore always out of date. Methods such as XP use incremental requirementsMethods such as XP use incremental requirements engineering and express requirements asengineering and express requirements as ‘user‘user stories’stories’ This is practical for business systems and gamesThis is practical for business systems and games but problematic for systems that require a lot ofbut problematic for systems that require a lot of pre-delivery analysis (e.g. critical systems) orpre-delivery analysis (e.g. critical systems) or systems developed by several teams, e.g.,systems developed by several teams, e.g., large government systems.large government systems. 5
  6. 6. – 6 – Requirements document variability Information in requirements document depends onInformation in requirements document depends on the type of system and the approach tothe type of system and the approach to development used.development used. Systems developed incrementally will, typically,Systems developed incrementally will, typically, have less detail in the requirements document.have less detail in the requirements document. Requirements documents standards have beenRequirements documents standards have been designed e.g. IEEE standard. These are mostlydesigned e.g. IEEE standard. These are mostly applicable to the requirements for large systemsapplicable to the requirements for large systems engineering projects.engineering projects. 6
  7. 7. – 7 – Requirements and Design In principle, requirements should state what theIn principle, requirements should state what the system should do and the design shouldsystem should do and the design should describe how it does this.describe how it does this. In practice, requirements and design areIn practice, requirements and design are inseparableinseparable  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 non-functional requirements may be a domain requirement.  This may be the consequence of a regulatory requirement.
  8. 8. – 8 – Tools for modeling requirements Use CasesUse Cases – in late 70s, my advisor wrote a tech– in late 70s, my advisor wrote a tech paper on how to do thispaper on how to do this State DiagramsState Diagrams UI MockupsUI Mockups – standard process in DoD and auto– standard process in DoD and auto industry – (Not in my kitchen)industry – (Not in my kitchen) StoryboardsStoryboards PrototypesPrototypes
  9. 9. – 9 – Functional Reqs: What should it do? Functional Reqs: What should it do? Developer connect mysql database to asp .net web … Client sell my beautifu l jewelry Customer of client find a cool ring on sale
  10. 10. – 10 – Client sell my beautifu l jewelry Customer of client find a cool ring on sale User-centric: What, not how Difficult to express Functional Reqs: What should it do?
  11. 11. – 11 – Modeling functional Reqs Identify user classesIdentify user classes Example: jewelry store owner buyer of jewelry
  12. 12. – 12 – Modeling functional reqs Identify user classesIdentify user classes For each user class identify goalsFor each user class identify goals Example Buyer: search for item place an order return an item
  13. 13. – 13 – Modeling functional reqs Identify user classesIdentify user classes For each user class identify goalsFor each user class identify goals For each user class/goalFor each user class/goal  Describe how the user will use the system
  14. 14. – 14 – Example Name: Order jewelry from a catalogName: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob,Actors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept.Stockroom, Shipping dept. Initiator: AliceInitiator: Alice Scenario:Scenario: 1.1. Alice calls companyAlice calls company 2.2. Bob answers phoneBob answers phone 3.3. Alice says she wants to place an order fromAlice says she wants to place an order from the catalogue.the catalogue. 4.4. Bob asks how the order will be paid.Bob asks how the order will be paid. 5.5. …… USE CASE
  15. 15. – 15 – Forms of Use Cases Casual –Casual – “user stories”“user stories” Fully dressed use cases – preconditions, post-Fully dressed use cases – preconditions, post- conditions, actors, stakeholders, etc.conditions, actors, stakeholders, etc. … these are cultural issues but in agile methods, less is more
  16. 16. – 16 – Key aspects of Use Case NameName: what we call this use case: what we call this use case ActorsActors: entities that interact with system (typically: entities that interact with system (typically people but also can be other systems)people but also can be other systems) InitiatorInitiator: actor who initiates the use case: actor who initiates the use case ScenarioScenario: sequence of steps users take and how: sequence of steps users take and how system respondssystem responds
  17. 17. – 17 – Example: Main scenario Name: Order jewelry from a catalogName: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob, Stockroom, ShippingActors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept.dept. Initiator: AliceInitiator: Alice Scenario:Scenario: 1.1. Alice calls companyAlice calls company 2.2. Bob answers phoneBob answers phone 3.3. Alice says she wants to order item X.Alice says she wants to order item X. 4.4. Bob checks stockroom for availability.Bob checks stockroom for availability. 5.5. Stockroom says it is available.Stockroom says it is available. 6.6. ……
  18. 18. – 18 – Main scenario with branchesMain scenario with branches Name: Order jewelry from a catalogName: Order jewelry from a catalog Actors: Customer Alice, Sales rep Bob, Stockroom, ShippingActors: Customer Alice, Sales rep Bob, Stockroom, Shipping dept.dept. Initiator: AliceInitiator: Alice Scenario:Scenario: 1.1. Alice calls companyAlice calls company 2.2. Bob answers phoneBob answers phone 3.3. Alice says she want to order item D23 from page 5 theAlice says she want to order item D23 from page 5 the catalogue.catalogue. 4.4. Bob checks stockroom for availability.Bob checks stockroom for availability. 5.5. Stockroom says it is available.Stockroom says it is available. 5a. Stockroom says it is not available. See order out of5a. Stockroom says it is not available. See order out of stock item use case.stock item use case. 6. ….6. …. Alternative path can be completed or refer to another use case.
  19. 19. – 19 – Use case development Brainstorm to identify Use CasesBrainstorm to identify Use Cases Validate/prioritize/ensure consistencyValidate/prioritize/ensure consistency Elaborate high priority/complex use casesElaborate high priority/complex use cases →→ identify new Use Casesidentify new Use Cases Repeat until _________________Repeat until _________________ Waterfall: until done – done keeps moving Agile: until good enough for now
  20. 20. – 20 – Sequence Diagram - Alternative Sequence Diagram - Alternative Alice: Customer Bob: Sales rep Stockroom call on phone answers phone wants to order …
  21. 21. – 21 – Example: Pac Man Use Cases Actor Goal/Title Priority User Play game 1 User Initialize game 1 User View high scores 3 User Set level 3 User Pause game 2 User Exit game 2 User Save game 3 User Change Controls 4 User Play saved game 3
  22. 22. – 22 – Elaborated Use Case Play gamePlay game:: 1.1. User choosesUser chooses “Play Game” from main menu.“Play Game” from main menu. 2.2. Start level is displayed with player having 3 livesStart level is displayed with player having 3 lives 3.3. User moves Pac Man left, right, up, down –User moves Pac Man left, right, up, down – (point to(point to other UC)other UC) 4.4. Pac Man moves to empty space, return to step 3Pac Man moves to empty space, return to step 3 4.a.4.a. Pac Man hits dot but not end of level, 50 pointsPac Man hits dot but not end of level, 50 points awarded, return to step 3awarded, return to step 3 4.b.4.b. Pac Man hits dot and level ends, 50 points awarded andPac Man hits dot and level ends, 50 points awarded and new level starts (seenew level starts (see start new level use casestart new level use case)) 4.c. Pac Man hits ghost (see4.c. Pac Man hits ghost (see hits ghost use casehits ghost use case)) 4.d. Pac Man hits a wall, can4.d. Pac Man hits a wall, can’t move any further in that’t move any further in that direction, returns to step 3 with new constraintdirection, returns to step 3 with new constraint etc.etc.
  23. 23. – 23 – Refined Use Case Play game:Play game: 1.1. User choosesUser chooses “Play Game” from main menu.“Play Game” from main menu. 2.2. Start levelStart level displayeddisplayed with 3 lives and 0 scorewith 3 lives and 0 score 3.3. Play level (see separate use case)Play level (see separate use case) 4.4. Repeat 3 on successive levels until game overRepeat 3 on successive levels until game over
  24. 24. – 24 – Refined Use Case (no UI spec) Play game:Play game: 1.1. User chooses to play gameUser chooses to play game 2.2. First level starts with 3 lives and 0 scoreFirst level starts with 3 lives and 0 score 2.2. Play level (see separate use case)Play level (see separate use case) 3.3. Repeat 3 on successive levels until game overRepeat 3 on successive levels until game over How do you refine a Use Case?? Talk to user!!
  25. 25. – 25 – Pac Man Use Cases Actor Goal Priority User Play game 1 User Play level 1 User Initialize game 1 User View high scores 3 User Set level 3 User Pause game 2 User Exit game 2 User Save game 3 User Change Controls 4 User Play saved game 3
  26. 26. – 26 – Agile method: goal stackAgile method: goal stack highest priority, best modeled use case, e.g, Play UC lowest priority, least modeled use case, e.g., store game history prioritized use cases
  27. 27. – 27 – Uses of use case RequirementsRequirements::  Define functional requirements  Expose business rules (constraints on behavior) PlanningPlanning: Suggest an iterative strategy: Suggest an iterative strategy DesignDesign: Validate design models, i.e., does design: Validate design models, i.e., does design provide for Use Caseprovide for Use Case TestingTesting: Provide scenarios for validation testing: Provide scenarios for validation testing
  28. 28. – 28 – Requirement Quality Specify what not howSpecify what not how UnambiguousUnambiguous TestableTestable FeasibleFeasible ConsistentConsistent PrioritizedPrioritized Traceable – Agile: back to requestorTraceable – Agile: back to requestor Interative: back to aInterative: back to a specification #specification # Agreed upon by customerAgreed upon by customer How can Use Cases contribute to quality in functional requirements?
  29. 29. – 29 – Tools for modeling (functional) requirements Tools for modeling (functional) requirements Use CasesUse Cases State DiagramsState Diagrams UI MockupsUI Mockups StoryboardsStoryboards PrototypesPrototypes good for describing “flow”
  30. 30. – 30 – State diagramsState diagrams Moves to empty spot Pac Man has n lives, score k moves left, right, up, down Hits ghost: Sound effect n reduced by 1 Lose level n=0 n>0 Hits dot: Sound effect k increased by 50 k<MAX Win level Play level: initialize n=3 (#lives), k=0 (level score) k<0
  31. 31. – 31 – Tools for modeling (functional) requirements Tools for modeling (functional) requirements Use CasesUse Cases State DiagramsState Diagrams UI MockupsUI Mockups StoryboardsStoryboards PrototypesPrototypes good for describing “flow” Better for state machines
  32. 32. – 32 – 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
  33. 33. – 33 – Storyboards Good for communicating “look and feel” inGood for communicating “look and feel” in addition to “flow”addition to “flow”  (again addressing non-functional requirements)  (Indian Jones vs Casablanca movies)  Missing in my GPS experience
  34. 34. – 34 – Tools for modeling (functional) requirements Use CasesUse Cases State DiagramsState Diagrams UI MockupsUI Mockups StoryboardsStoryboards PrototypesPrototypes these are special cases of prototypes
  35. 35. – 35 – Prototypes Sample level with simplified art, minimal features Use fast prototyping tools to clarify functionality, look and feel, etc.
  36. 36. – 36 – Which model should you use? All that are appropriate! Invent new ones as needed!
  37. 37. – 37 – Requirements for games Game Designer Management Marketing Users … Software engineers
  38. 38. – 38 – Top down game specificationTop down game specification High conceptHigh concept Competitive analysisCompetitive analysis Main characterMain character Game MechanicsGame Mechanics Underlying modelsUnderlying models Major featuresMajor features Look and feelLook and feel ScoringScoring UIUI etc.etc. Traditional Game Design Document “Game Bible”
  39. 39. – 39 – Bottom up game specificationBottom up game specification Use casesUse cases State diagramsState diagrams UI mock upsUI mock ups StoryboardsStoryboards PrototypesPrototypes Make your vision “concrete” Discover technical requirements: • Display sprite • Move sprite • Detect collision • etc. Address feasibility Suggest iterative design/development strategy
  40. 40. – 40 – Agile method: goal stack initial top goals – risks, proof of conceptinitial top goals – risks, proof of concept move sprite display sprite level 0 prioritized use cases, proofs of concept proof of concept to understand feasibility use case

×