1!University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 1 Lecture 13:!From Requirements to Design"Identifying Actors"Building a Domain Model"Goal modeling"Obstacle Analysis"Scoping"Use Cases"University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 2 Starting Point"Given:"a vague request for a new feature from users of your software"1. Identify the problem"What is the goal of the project?"What is the “vision” of those who are pushing for it?"2. Scope the problem"Given the vision, how much do we tackle?"What new functionality will be needed?"3. Identify solution scenarios"Given the problem, how will users interact with the software to solve it?"4. Map onto the Architecture"How will the needed functionality be met?"What new modules / classes will be needed?"stakeholder goal modeling & domain models use cases robustness analysis2!University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 3 What do Requirements Analysts do?"Given a “problem”…"Some notion that a “problem” needs solving"e.g. dissatisfaction with the current system"e.g. a new business opportunity"e.g. a potential saving of cost, time, resource usage, etc."A Requirements Analyst is an agent of change"… the requirements analyst must:"identify the “problem” / “opportunity”"Which problem needs to be solved? (identify problem Boundaries)"Where is the problem? (understand the Context/Problem Domain)"Whose problem is it? (identify Stakeholders)"Why does it need solving? (identify the stakeholdersʼGoals)"When does it need solving? (identify Development Constraints)"What might prevent us solving it? (identify Feasibility and Risk) "How might a software system help? (collect some Scenarios / Use Cases)""University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 4 D - domain properties R - requirements C - computers P - programs Refesher"Domain Properties (assumptions):"things in the application domain that are true whether or not we ever build the proposed system"(System) Requirements:"things in the application domain that we wish to be made true by delivering the proposed system"Many of which will involve phenomena the machine has no access to"A (Software) Specification:" is a description of the behaviours that the program must have in order to meet the requirements"Can only be written in terms of shared phenomena!"3!University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 5 Identifying Actors"Ask the following questions:"Who will be a primary user of the system? (primary actor)"Who will need support from the system to do her daily tasks?"Who or what has an interest in the results that the system produces ?"Who will maintain, administrate, keep the system working? (secondary actor)"Which hardware devices does the system need?"With which other systems does the system need to interact with?"Look for:"the users who directly use the system"also others who need services from the system"University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 6 Key distinctions"identify complete word suggest words from dictionary pop up a menu highlight misspellings The user types text as usual. When the user completes each word, the system looks it up in the dictionary. If it is not in the dictionary, the word is underlined in red. The user can click on any underlined word, to see a popup menu of suggested alternatives. Clicking any of these alternatives causes it to replace the original word. reduce the number of spelling mistakes word space dictionary suggestion replacement spelling selection A requirement (goal)" Functions"A Use Case"Domain Concepts"4!University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 7 Domain Model"Document!Dictionary!Word!misspelling!1..*!Alphabetic!character!correct spelling!Suggestion list!1..*!1..*!1!1!Has!!Non-Alphabetic!character!ends!!1!University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 8 Exploring Goals"have an !automated !spelling checker!reduce the !number of !spelling mistakes!save time looking!up words in!my dictionary!help me learn!to spell better!+!++!++!have custom !dictionaries!spot errors!as I write!allow me to!ignore misspellings!suggest correct!spellings!and!5!University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 9 Obstacle Analysis"have an !automated !spelling checker!save time looking!up words in!my dictionary!++!Assumes: spell checkerʼs dictionary is comparable with printed dictionary for completeness!Assumes: auto-lookup & correction is quicker than manual lookup!Assumes: user notices the highlighted misspellings!Assumes: other information in dictionary (definitions, usage) is irrelevant for deciding on correct spelling!Assumes: user is willing!to guess at a spelling!Assumes: intended word is always (?) on the list of suggestions !University of Toronto Department of Computer Science © 2012 Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 10 Some Requirements emerge…"“Functional Requirements”"(?) User can see definitions for suggested spellings"User shall be able to add custom dictionaries"User shall be able to add new words to a custom dictionary"User shall be able to declare certain words be ignored for spell checking for the current document"“Quality
View Full Document