Your SlideShare is downloading. ×
  • Like
Requirement modeling
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Requirement modeling

  • 165 views
Published

 

Published in Education , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
165
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
8
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Requirements Modeling
  • 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – Modeling functional Reqs Identify user classesIdentify user classes Example: jewelry store owner buyer of jewelry
  • 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – Sequence Diagram - Alternative Sequence Diagram - Alternative Alice: Customer Bob: Sales rep Stockroom call on phone answers phone wants to order …
  • 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – 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 – Tools for modeling (functional) requirements Use CasesUse Cases State DiagramsState Diagrams UI MockupsUI Mockups StoryboardsStoryboards PrototypesPrototypes these are special cases of prototypes
  • 35. – 35 – Prototypes Sample level with simplified art, minimal features Use fast prototyping tools to clarify functionality, look and feel, etc.
  • 36. – 36 – Which model should you use? All that are appropriate! Invent new ones as needed!
  • 37. – 37 – Requirements for games Game Designer Management Marketing Users … Software engineers
  • 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 – 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 – 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