Requirements Elicitation Techniques
|
|
|
- Aleesha Weaver
- 9 years ago
- Views:
Transcription
1 SEG3101 (Fall 2109) Requirements Elicitation Techniques Gregor v. Bochmann, University of Ottawa Based on Poserpoint slides by Gunter Mussbacher (2009) with material from: Jo Atlee, Nancy Day, Dan Berry (all University of Waterloo); Lethbridge & Laganière, Chapter 7; Bruegge & Dutoit, Chapter 4; I. Alexander; Amyot ; Somé 2008
2 Table of Contents Elicitation Techniques Analysis of Existing Systems Documentation, Observation, and Ethnography Interviews Brainstorming Joint Application Design (JAD) Prototyping Use Cases When people talk, listen completely. Most people never listen. 1 [1] Ernest Miller Hemingway ( ) 2
3 3
4 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Elicitation Techniques Elicitation techniques Stakeholder analysis Analysis of existing systems or documentation, background reading Discourse analysis Task observation, ethnography Questionnaires Interviewing Brainstorming Joint Application Design (JAD) Prototyping Pilot system Use cases and scenarios Risk analysis 4
5 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Comparison of Data-Gathering Techniques 1 Technique Good for Kind of data Plus Minus Questionnaires Answering specific questions Quantitative and qualitative data Can reach many people with low resource The design is crucial. Response rate may be low. Responses may not be what you want Interviews Exploring issues Some quantitative but mostly qualitative data Interviewer can guide interviewee. Encourages contact between developers and users Time consuming. Artificial environment may intimidate interviewee Focus groups and workshops Collecting multiple viewpoints Some quantitative but mostly qualitative data Highlights areas of consensus and conflict. Encourages contact between developers and users Possibility of dominant characters Naturalistic observation Understanding context of user activity Qualitative Observing actual work gives insight that other techniques cannot give Very time consuming. Huge amounts of data Studying documentation Learning about procedures, regulations, and standards Quantitative No time commitment from users required Day-to-day work will differ from documented procedures [1] Preece, Rogers, and Sharp Interaction Design: Beyond human-computer interaction, p214 5
6 Analysis of Existing Systems
7 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Analysis of Existing Systems (1) Useful when building a new improved version of an existing system Important to know: What is used, not used, or missing What works well, what does not work How the system is used (with frequency and importance) and it was supposed to be used, and how we would like to use it 7
8 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Analysis of Existing Systems (2) Why analyze an existing system? Users may become disillusioned with new system or do not like the new system if it is too different or does not do what they want (risk of nostalgia for old system) To appropriately take into account real usage patterns, human issues, common activities, relative importance of tasks/features To catch obvious possible improvements (features that are missing or do not currently work well) To find out which "legacy" features can/cannot be left out
9 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Review Available Documentation Start with reading available documentation User documents (manual, guides ) Development documents Requirements documents Internal memos Change histories Of course, often these are out of date, poorly written, wrong, etc., but it's a good starting point Discourse analysis Use of words and phrases is examined in written or spoken language
10 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Observation and Related Techniques (1) Observation Get into the trenches and observe specialists in the wild Shadow important potential users as they do their work Initially observe silently (otherwise you may get biased information) Ask user to explain everything he or she is doing Session videotaping Ethnography also attempts to discover social, human, and political factors, which may also impact requirements 10
11 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Observation and Related Techniques (2) Can be supplemented later with questionnaires Based on what you know now the results of observation To answer questions that need comparison or corroboration (confirmation) To obtain some statistics from a large number of users (look for statistical significance!), e.g.: How often do you use feature X? What are the three features you would most like to see? Can be supplemented later with interviews After getting a better idea of what is to be done, probably some questions require more detailed answers You will not be wasting other people's time or your own This is very labour intensive! 11
12 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Ethnography Overview (1) Comes from anthropology, literally means "writing the culture" Essentially seeks to explore the human factors and social organization of activities understand work Studies have shown that work is often richer and more complex than is suggested by simple models derived from interviews Social scientists are trained in observation and work analysis Discoveries are made by observation and analysis, workers are not asked to explain what they do Collect what is ordinary/what is it that people do (aim at making the implicit explicit) Study the context of work and watch work being done 12
13 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Ethnography Overview (2) Useful to discover for example What does a nuclear technician do during the day? What does his workspace look like? Less useful to explore political factors Workers are aware of the presence of an outside observer 13
14 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Ethnography Example (1) Sommerville et al. were involved in a project where they had to elicit the requirements of an air traffic control system They observed the air traffic controllers in action with the existing system Surprising observations Controllers often put aircrafts on potentially conflicting headings with the intention of fixing them later System generates an audible alarm when there is a possible conflict The controllers close the alarms because they are annoyed by the constant warnings Incorrect conclusion The controllers do not like audible alarms because they close them More accurate observation The controllers do not like being treated like idiots 14
15 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Ethnography Example (2) Dealers at a stock exchange write tickets to record deals with old-fashioned paper/pencil method It was suggested to replace this with touch screens and headphones for efficiency and to eliminate distracting noise Study found that the observation of other dealers is crucial to the way deals are done Market position was affected if deals were not continuously monitored Even if only peripheral monitoring takes place Improvements" would have destroyed the very means of communication among dealers Source: Preece, Rogers, and Sharp Interaction Design: Beyond human-computer interaction 15
16 Interviews
17 Elicitation Techniques Existing Systems Interviews Interviews (1) Brainstorming Joint Application Design Prototyping Use Cases Requires preparation and good communication management Achieve interview objectives without preventing the exploration of promising leads Interview as many stakeholders as possible Not just clients and users Ask problem-oriented questions Ask about specific details, but Detailed and solution-specific questions may miss the stakeholder s real requirements. Example: Would you like Word 2007, Excel 2007 or both? vs. Would you like to do word processing, computations, or both? 17
18 Elicitation Techniques Existing Systems Interviews Interviews Objectives and Process (2) Three main objectives: Brainstorming Joint Application Design Prototyping Use Cases Record information to be used as input to requirements analysis and modeling Discover information from interviewee accurately and efficiently Reassure interviewee that his/her understanding of the topic has been explored, listened to, and valued Process consists of four important steps: Planning and preparation Interview session Consolidation of information Follow-up Many strategies for questioning
19 Elicitation Techniques Existing Systems Interviews Interviews Planning and Preparation Important to plan and prepare interviews Set goals and objectives for the interview Acquire background knowledge of the subject matter to conduct an effective interview About the domain (vocabulary, problems...) but also about the interviewee (work tasks, attitude...) Prepare questions in advance, by subject Brainstorming Joint Application Design Prototyping Use Cases Organize the environment for conducting an effective interview Determine how the elicitation notes will be taken (manually, audio, video, by whom )
20 Elicitation Techniques Existing Systems Interviews Interviews Session Brainstorming Joint Application Design Prototyping Use Cases Make the interviewee comfortable and confident Be polite and respectful! Adjust to the interviewee You have your goals be persistent but flexible Interview several people at once to create synergy Try to detect political aspects as they may influence the said and the unsaid 20
21 Elicitation Techniques Existing Systems Interviews Interviews Elicitation Notes Brainstorming Joint Application Design Prototyping Use Cases Revise and complete the elicitation notes after the interview Needs to be done soon after because one forgets the details (and everything else) Identify inconsistencies and address them in a follow-up interview or by Keep all diagrams, charts, models created during the discussions You are learning, so be precise Pay attention to terminology Use the interviewee s terminology Identify synonyms Create a glossary if necessary 21
22 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Common Interviewing Mistakes (1) Not interviewing all of the right people Different points of view of stakeholders Asking direct questions too early E.g., design of a transportation system: How much horsepower do you need? (direct) How many passengers? How far? How fast? (indirect) E.g., camera design for novice photographer: How important is control over shutter speed and aperture? (direct) Will you be taking action shots, still shots, or both? (indirect)
23 Elicitation Techniques Existing Systems Interviews Common Interviewing Mistakes (2) Interviewing one-at-a-time instead of in small groups More people might help get juices flowing as in brainstorming Users cannot think of everything they need when asked individually, but will recall more requirements when they hear others' needs Reduces spotlight on individuals (may produce more interesting answers) This interaction is called synergy, the effect by which group responses outperform the sum of the individuals' responses Do not let one participant dominate the discussion Brainstorming Joint Application Design Prototyping Use Cases Assuming that stated needs are exactly correct Often users do not know exactly what they want and order "what he is eating" Need to narrow what is asked for down to what is needed
24 Elicitation Techniques Existing Systems Interviews Common Interviewing Mistakes (3) Trying to convince stakeholders that YOU are smart wrong place to do that! Instead take every opportunity to show you think the stakeholder is smart Contrast these two cases 1 Brainstorming Joint Application Design Prototyping Use Cases My Elevators Are Too Slow! I See. Tell Me Why You Feel They Are Too Slow. I Don t t Think So. I Think You Have an Elevator Throughput Problem, not a Speed Problem [1] Alan M. Davis Just enough requirements management
25 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Interviews Start Up Questions (1) Context-free questions to narrow the scope a bit (Weinberg) Identify customers, goals, and benefits Who is (really) behind the request for the system? Who will use the system? Willingly? Are there several types of users? What is the potential economic benefit from a successful solution? Is a (pre-existing) solution available from another source?
26 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Interviews Start Up Questions (2) When do you need it by? Can you prioritize your needs? What are your constraints? Time Budget Resources (human or otherwise) Expected milestones (deliverables and dates)?
27 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Interviews Start Up Questions (3) Try to characterize the problem and its solution What would be a "good" solution to the problem? What problems is the system trying to address? In what environment will the system be used? Any special performance issues? Other special constraints? What is (un)likely to change? Future evolution? What needs to be flexible (vs. quick & dirty)?
28 Elicitation Techniques Existing Systems Interviews Interviews Start Up Questions (4) Calibration and tracking questions Are you the right person to answer these questions? Are your answers "official"? If not, whose are? Are these questions relevant to the problem as you see it? Are there too many questions? Is this the correct level of detail? Is there anyone else I should talk to? Is there anything else I should be asking you? Have you told me everything you know about the problem? Do you have any questions? Brainstorming Joint Application Design Prototyping Use Cases
29 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Interviews Start Up Questions (5) Questions that cannot be asked directly (ask indirectly) Are you opposed to the system? Are you trying to obstruct/delay the system? Are you trying to create a more important role for yourself? Do you feel threatened by the proposed system? Are you trying to protect your job? Is your job threatened by the new system? Is anyone else's?
30 Elicitation Techniques Existing Systems Interviews Interviews Specific Questions (1) Functional requirements What will the system do? When will the system do it? Are there several modes of operations? What kinds of computations or data transformations must be performed? What are the appropriate reactions to possible stimuli? For both input and output, what should be the format of the data? Must any data be retained for any period of time? Brainstorming Joint Application Design Prototyping Use Cases
31 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Interviews Specific Questions (2) Design Constraints Physical environment Where is the equipment to be located? Is there one location or several? Are there any environmental restrictions, such as temperature, humidity, or magnetic interference? Are there any constraints on the size of the system? Are there any constraints on power, heating, or air conditioning? Are there constraints on the programming language because of existing software components?
32 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Interviews Specific Questions (3) Design Constraints Interfaces Is input coming from one or more other systems? Is output going to one or more other systems? Is there a prescribed way in which input/output need to be formatted? Is there a prescribed way for storing data? Is there a prescribed medium that the data must use? Standards Are there any standards relevant to the system?
33 Elicitation Techniques Existing Systems Interviews Interviews Specific Questions (4) Performance Are there constraints on execution speed, response time, or throughput? What efficiency measure will apply to resource usage and response time? How much data will flow through the system? How often will data be received or sent? Brainstorming Joint Application Design Prototyping Use Cases
34 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Interviews Specific Questions (5) Usability and Human Factors What kind of training will be required for each type of user? How easy should it be for a user to understand and use the system? How difficult should it be for a user to misuse the system?
35 Elicitation Techniques Existing Systems Interviews Interviews Specific Questions (6) Security Brainstorming Joint Application Design Prototyping Use Cases Must access to the system or information be controlled? Should each user's data be isolated from data of other users? Should user programs be isolated from other programs and from the operating system? Should precautions be taken against theft or vandalism?
36 Elicitation Techniques Existing Systems Interviews Interviews Specific Questions (7) Reliability and Availability Must the system detect and isolate faults? What is the prescribed mean time between failures? Is there a maximum time allowed for restarting the system after failure? How often will the system be backed up? Brainstorming Joint Application Design Prototyping Use Cases Must backup copies be stored at a different location? Should precautions be taken against fire or water damage?
37 Elicitation Techniques Existing Systems Interviews Interviews Specific Questions (8) Maintainability Brainstorming Joint Application Design Prototyping Use Cases Will maintenance merely correct errors, or will it also include improving the system? When and in what ways might the system be changed in the future? How easy should it be to add features to the system? How easy should it be to port the system from one platform (computer, operating system) to another?
38 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Interviews Specific Questions (9) Precision and Accuracy How accurate must data calculations be? To what degree of precision must calculations be made?
39 Brainstorming
40 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Brainstorming To invent new way of doing things or when much is unknown When there are few or too many ideas Early on in a project particularly when: Terrain is uncertain There is little expertise for the type of applications Innovation is important (e.g., novel system) Two main activities: The Storm: Generating as many ideas as possible (quantity, not quality) wild is good! The Calm: Filtering out of ideas (combine, clarify, prioritize, improve ) to keep the best one(s) may require some voting strategy Roles: scribe, moderator (may also provoke), participants!!!!!! 40
41 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Brainstorming Objectives Hear ideas from everyone, especially unconventional ideas Keep the tone informal and non-judgemental Keep the number of participants reasonable if too many, consider a playoff -type filtering and invite back the most creative to multiple sessions Encourage creativity Choose good, provocative project name. Choose good, provocative problem statement Get a room without distractions, but with good acoustics, whiteboards, coloured pens, provide coffee/donuts/pizza/beer Provide appropriate props/mock-ups
42 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Brainstorming Roles Scribe Write down all ideas (may also contribute) May ask clarifying questions during first phase but without criticizing Moderator/Leader Cannot be the scribe Two schools of thought: traffic cop or agent provocateur Traffic cop enforces "rules of order", but does not throw his/her weight around otherwise Agent provocateur traffic cop plus more of a leadership role, comes prepared with wild ideas and throws them out as discussion wanes May also explicitly look for variations and combinations of other suggestions
43 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Brainstorming Participants Virtually any stakeholder, e.g. Developers Domain experts End-users Clients... Ideas-people a company may have a special team of people Chair or participate in brainstorming sessions Not necessarily further involved with the project
44 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Brainstorming The Storm Goal is to generate as many ideas as possible Quantity, not quality, is the goal at this stage Look to combine or vary ideas already suggested No criticism or debate is permitted do not want to inhibit participants Participants understand nothing they say will be held against them later on Scribe writes down all ideas where everyone can see E.g., whiteboard, paper taped to wall Ideas do not leave the room Wild is good Feel free to be gloriously wrong Participants should NOT censor themselves or take too long to consider whether an idea is practical or not let yourself go!
45 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Brainstorming The Calm Go over the list of ideas and explain them more clearly Categorize into "maybe" and "no" by pre-agreed consensus method Informal consensus 50% + 1 vote vs. clear majority Does anyone have veto power? Be careful about time and people Meetings (especially if creative or technical in nature) tend to lose focus after 90 to 120 minutes take breaks or reconvene later Be careful not to offend participants Review, consolidate, combine, clarify, improve Rank the list by priority somehow Choose the winning idea(s)
46 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Brainstorming Eliminating Ideas There are some common ways to eliminate some ideas Blending ideas Unify similar ideas but be aware not to force fit everything into one idea Give each participant $100 to spend on the ideas Apply acceptance criteria prepared prior to meeting Eliminate the ideas that do not meet the criteria Various ranking or scoring methods Assign points for criteria met, possibly use a weighted formula Vote with threshold or campaign speeches Possibly select top k for voting treatment 46
47 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Brainstorming Voting on Ideas Voting with threshold Each person is allowed to vote up to n times Keep those ideas with more than m votes Have multiple rounds with smaller n and m Voting with campaign speeches Each person is allowed to vote up to j < n times Keep those ideas with at least one vote Have someone who did not vote for an idea defend it for the next round Have multiple rounds with smaller j
48 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Brainstorming Tool Support With many good ideas, some outrageous and even farfetched, brainstorming can be really fun! Creates a great environment that stimulates people and motivates them to perform well! Can be done by , but a good moderator/leader is needed to Prevent flamers to come into play Prevent race conditions due to the asynchronous communication medium Be careful not to go into too much detail Collaboration tools are also possible TWiki and many other more appropriate tools such as BrainStorm and IdeaFisher 48
49 Joint Application Design (JAD)
50 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Joint Application Design (JAD) A more structured and intensive brainstorming approach Developed at IBM in the 1970s Lots of success stories "Structured brainstorming", IBM-style Full of structure, defined roles, forms to be filled out... Several activities and six (human) roles to be played JAD session may last few days The whole is more than the sum of its parts. The part is more than a fraction of the whole. 1 [1] Aristotle (384 BC 322 BC) 50
51 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Joint Application Design Four Main Tenets Effective use of group dynamics Facilitated and directed group sessions to get common understanding and universal buy-in Use of visual aids To enhance understanding, e.g., props, prepared diagrams Defined process I.e., not a random hodgepodge Standardized forms for documenting results
52 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Joint Application Design Applicability Used for making decisions on different aspects of a project Any process where consensus-based decision making across functional areas is required, e.g., Planning a project Defining requirements Designing a solution
53 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Joint Application Design Activities Preparation Pre-session Planning Pre-work Working Session Summary Follow-up Wrap-up
54 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Joint Application Design Pre-session Planning Preparation is essential this is not an informal session Evaluate project Identify contentious issues and scope of JAD session Select JAD participants Create preliminary agenda Determine deliverables for the working session Enable participants to prepare for the session
55 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases The 6 P s Purpose Why do we do things? (Goals, needs, motivation) Participants Who is involved? (People, roles, responsibilities) Principles How do we function? (Guidelines, working agreements, ground rules) Products What do we create? (Deliverables, decisions, plans, next steps) Place Where is it located? (Venue, logistics) Process When do we do what? (Activities, sequence) [1] Ellen Gottesdiener, Requirements by Collaboration: Facilitating Workshops to Define Stakeholder Needs, RE Conference
56 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Joint Application Design Pre-work Gather information Clear schedules for the working session Refine session agenda Finalize pre-session assignments Prepare material for session (flip-charts, presentations, markers, pizza...)
57 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Joint Application Design Working Session Set-up stage Session leader welcomes participants, presents task to be discussed, establishes rules and what is on/off topic Generate common understanding Brainstorming Achieve consensus on decisions Generate ownership of results Create the deliverables (using standard JAD forms) Identify open issues and questions
58 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Joint Application Design Follow-up and Wrap-up Follow-up Resolve open issues and questions Follow-up on action items Re-evaluate project Wrap-up Review results of follow-up items Evaluate the JAD process Discuss "lessons learned" Finalize deliverables
59 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Joint Application Design Roles (1) Session leader Organizer, facilitator, JAD expert Good with people skills, enthusiastic, sets tone of meeting Analyst Scribe++ Produces official JAD documents, experienced developer who understands the big picture, good philosopher/writer/organizer Executive sponsor Manager who has ultimate responsibility for product being built Provides strategic insights into company's high-level goals/practices, makes executive decisions later on as required
60 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Joint Application Design Roles (2) User representatives Selection of knowledgeable end-users and managers Come well-prepared with suggestions and ideas of needs, will brainstorm for new or refined ideas, eventually review completed JAD documents Information system representatives Technical expert on ISs Helps users think big, know what is easy/hard/cheap/expensive, mostly there to provide information rather than make decisions Specialists Technical expert on particular narrow topics, e.g., security, application domain, law, UI issues
61 Prototyping
62 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Prototyping A software requirements prototype is a mock-up or partial implementation of a software system Helps developers, users, and customers better understand system requirements Helps clarify and complete requirements Provides early response to I'll know it when I ll see (or won t see) it attitude Effective in addressing the Yes, But and the Undiscovered Ruins syndromes Helps find new functionalities, discuss usability, and establish priorities Prototyping is effective in resolving uncertainties early in the development process Focus prototype development on these uncertain parts Encourages user participation and mutual understanding
63 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Prototyping Realizations Use Cases Prototypes can take many forms: Paper prototypes (see Prototype on index card Storyboard Screen mock-ups Interactive prototypes Using high-level languages (e.g., Visual Basic, Delphi, Prolog) Using scripting languages (e.g., Perl, Python) Using animation tools (e.g., Flash/Shockwave) Models (executables) Pilot systems 63
64 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Prototyping Types Use Cases Horizontal: focus on one layer e.g., user interface Vertical: a slice of the real system Evolutive: turned into a product incrementally, gives users a working system more quickly (begins with requirements that are more understood) Throw-away: less precise, thrown away, focusing on the less well-understood aspects of the system to design, designed to elicit or validate requirements 64
65 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Prototyping Fidelity (1) Use Cases Fidelity is the extent to which the prototype is real and (especially) reactive Fidelity may vary for throw-away prototypes High-fidelity Applications that "work" you press a button and something happens Often involves programming or executable modeling languages Advantages: provides an understanding of functionality, reduce design risk, more precise verdicts about requirements Disadvantages: takes time to build, more costly to build, sometimes difficult to change, false sense of security, often focuses on details rather than on the goals and important issues 65
66 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Prototyping Fidelity (2) Use Cases Low-fidelity It is not operated it is static Advantages: easy and quick to build, cheaper to develop, excellent for interfaces, offers the opportunity to engage users before coding begins, encourage creativity Disadvantages: may not cover all aspects of interfaces, are not interactive, may seem non-professional in the eyes of some stakeholders (sigh!) 66
67 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Prototyping Risks Prototypes that focus on user-interface tends to lose the focus of demonstrating/exploring functionality Prototypes can bring customers expectations about the degree of completion unrealistically up Do not end-up considering a throwaway prototype as part of the production system Always clearly state the purpose of each prototype before building it
68 Use Cases
69 Elicitation Techniques Existing Systems Interviews Developing Use Case Models of Systems Description of a sequence of interactions between a system and external actors Developed by Ivar Jacobson Not exclusively for object-oriented analysis Actors any agent that interact with the system to achieve a useful goal (e.g., people, other software systems, hardware) Use case describes a typical sequence of actions that an actor performs in order to complete a given task The objective of use case analysis is to model the system from the point of view of how actors interact with this system when trying to achieve their objectives A use case model consists of A set of use cases Brainstorming Joint Application Design Prototyping Use Cases An optional description or diagram indicating how they are related 69
70 Elicitation Techniques Existing Systems Interviews Use Cases Brainstorming Joint Application Design Prototyping Use Cases A use case should describe the user s interaction with the system... Not the computations the system performs In general, a use case should cover the full sequence of steps from the beginning of a task until the end A use case should only include actions in which the actor interacts with the computer Some views differ on this one!!! 70
71 Elicitation Techniques Existing Systems Interviews Use Cases Abstraction Level Brainstorming Joint Application Design Prototyping Use Cases A use case should be written so as to be as independent as possible from any particular implementation / user interface design Essential use cases (Constantine & Lockwood) Abstract, technology free, implementation independent Defined at earlier stages E.g., customer identifies herself Concrete use cases Technology/user interface dependent E.g., customer inserts a card, customer types a PIN
72 Elicitation Techniques Existing Systems Interviews Scenarios (1) Brainstorming Joint Application Design Prototyping Use Cases A scenario (according to the UML/UC community) is an instance of a use case It expresses a specific occurrence of the use case (a specific path through the use case) A specific actor... At a specific time... With specific data Many scenarios may be generated from a single use case description Each scenario may require many test cases Rather used in a generic way in this course (as is often the case in requirements engineering) 72
73 Elicitation Techniques Existing Systems Interviews Scenarios (2) Brainstorming Joint Application Design Prototyping Use Cases A use case includes primary and secondary scenarios 1 primary scenario Normal course of events 0 or more secondary scenarios Alternative/exceptional course of events, variations of primary scenario An alternative scenario meets the intent of the use case but with a different sequence of steps An exceptional scenario addresses the conditions of main case and alternative cases that differ from the norm and cases already covered Example with consensus as a goal Primary scenario: vote in a session Alternative scenario: voting in several sessions Exceptional scenario: what to do with a non-registrant who wishes to vote
74 Elicitation Techniques Existing Systems Interviews Types of Scenarios Brainstorming Joint Application Design Prototyping Use Cases As-is scenario Used in describing a current situation, usually used in re-engineering projects, the user describes the system Visionary scenario Used to describe a future system, usually used in greenfield engineering and reengineering projects Can often not be done by the user or developer alone Evaluation scenario User tasks against which the system is to be evaluated Training scenario Step by step instructions that guide a novice user through a system 74
75 Elicitation Techniques Existing Systems Interviews Representation of Scenarios (1) Various approaches Brainstorming Joint Application Design Prototyping Use Cases Text (informal, formal), diagrams (state, sequence...), video, animation, comics, storyboard, collaborative workshops (pass the microphone or the ball) There are specialized notation such as UML (sequence, activity, use case, interaction, and collaboration diagrams), Message Sequence Charts (MSC), Live Sequence Charts, and Use Case Maps (UCM) 75
76 Elicitation Techniques Existing Systems Interviews Representation of Scenarios (2) Brainstorming Joint Application Design Prototyping Use Cases Different representations may be useful in specific situations For example, storyboards, often used in the film industry, can describe situations, roles, and sequences of tasks in a fast, compact, and polyglot way 1 Some scenario-based approaches are very ideological or dogmatic [1] I. Alexander 76
77 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case-Driven Software Lifecycle Activities (1) Requirements Elicitation Requirements Analysis System Design Object Design Implementation Testing Expressed in Terms Of Structured By Realized By Implemented By Verified By Use Case Model Application Domain Objects Subsystems Solution Domain Objects class... class... class... Source Code Test Cases? class...? 77
78 Elicitation Techniques Existing Systems Interviews Use Case-Driven Software Lifecycle Activities (2) Scenarios guide elicitation, analysis, design, and testing There are many scenario-based approaches Brainstorming Joint Application Design Prototyping Use Cases E.g., XP employs user stories (scenarios) to directly generate tests that will guide software design and verification Developers are often unable to speak directly to users Scenarios provide a good enough approximation of the voice of the user 78
79 Elicitation Techniques Existing Systems Interviews Use Case Modeling with UML Brainstorming Joint Application Design Prototyping Use Cases But: Where are the use cases? use case generalization Reserve Facility <<extend>> Handle Waiting List Register Member Customer Reserve Room <<include>> <<include>> Check In Customer Hotel Counter Staff Check Room Details <<include>> actor Member Earn and Redeem Credits <<extend>> Check Out Customer extension point 79
80 Elicitation Techniques Existing Systems Interviews Use Case Diagrams Brainstorming Joint Application Design Prototyping Use Cases To define system boundary (subject), actors, and use cases Subject could be: a physical system, a component, a subsystem, a class To structure and relate use cases Associate actors with use cases Include relation Extend relation Generalization (of actors and use cases)
81 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Diagrams <<include>> (Inclusions) Inclusions allow one to express commonality between several different use cases Inclusions are included in other use cases Even very different use cases can share a sequence of actions (reuse) Enable you to avoid repeating details in many use cases (consistency) An inclusion represents the execution of a lower-level task with a lower-level goal ( decomposition of complex tasks) Base use case references the included use case as needed Base use case cannot exist without the included use case When included use case is done, control returns to base use case Disadvantage: have to look in multiple places to understand use case 81
82 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Diagrams <<extend>> (Extensions) Used to make optional interactions explicit or to handle exceptional cases By creating separate use case extensions, the description of the basic use case remains simple Note: the base use case can still be executed without the use case extension Extension points must be created explicitly in the base use case Use sparingly: there is disagreement over the semantics 82
83 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Diagrams Generalizations Much like super-classes in a class diagram Need to satisfy is-a relation Applies to use cases and to actors A generalized use case represents several similar use cases One or more specializations provide details of the similar use cases Inheriting use case can replace steps of inherited use case Particularly useful for actors (clearer here, unlike use case generalization where the semantics are unclear use generalization of use cases with caution) 83
84 Elicitation Techniques Existing Systems Interviews Example: HR System Brainstorming Joint Application Design Prototyping Use Cases Update Medical Plan Update Dental Plan Update Insurance Plan <<include>> <<include>> <<include>> Employee Update Benefits Extension points benefit options: after required enrollments extension point name and location <<extend>> employee requests reimbursement option <<extend>> employee requests stock purchase option Elect Reimbursement for Healthcare Elect Stock Purchase extension condition 84
85 Elicitation Techniques Existing Systems Interviews Use Case Templates (1) Brainstorming Joint Application Design Prototyping Use Cases There are many different templates for use cases but they often consist of a subset of the following items: Identifier: unique label for use case used to reference it elsewhere Name: succinctly state user task independently of the structure or implementation Suggested form verb object (e.g., Order a product) Authors: people who discovered use case Goal: short description of expected outcome from actors point of view Preconditions: what needs to be satisfied before use case can begin Postconditions: state of system after completion of use case Minimal guarantee: state of system after completion regardless of outcome
86 Elicitation Techniques Existing Systems Interviews Use Case Templates (2) Primary actor: initiates the use case Participants (secondary actors): other actors involved in use case, provide services to the system and interact with the system after the use case was initiated Related requirements: identifiers of functional and nonfunctional requirements linked to the use case Related use cases: identifiers of related use cases Specify relationship: e.g. Supposes use case UC2 has been successfully completed Alternative to use case UC3... Description of events (scenarios) Different use case description formats Narrative, Simple column, Multiple columns Brainstorming Joint Application Design Prototyping Use Cases
87 Elicitation Techniques Existing Systems Interviews Use Case Templates Narrative Form Brainstorming Joint Application Design Prototyping Use Cases Paragraph focusing on the primary scenario and some secondary ones Very useful when the stakeholders first meet A User inserts a card in the Card reader slot. The System asks for a personal identification number (PIN). The User enters a PIN. After checking that the user identification is valid, the System asks the user to chose an operation... 87
88 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Templates Simple Column Form Linear sequences (main and alternatives) 1. A User inserts a card in the Card reader slot. 2. The system asks for a personal identification number (PIN). 3. The User enters a PIN. 4. The System checks that the user identification is valid. 5. The System asks the user to chose an operation 1.a The Card is not valid. 1.a.1. The System ejects the Card. 4.a The User identification is not valid. 4.a.1 The System ejects the Card. 88
89 Elicitation Techniques Existing Systems Interviews Use Case Templates Multiple Column Form One column per actor Allows for a more detailed view Brainstorming Joint Application Design Prototyping Use Cases User's actions 1. Insert a card in the Card reader slot. (card is not valid see alternative 1.1) System responses 2. Ask for a personal identification number (PIN). 3. Enter a PIN. 4. Check that the user identification is valid. (identification is not valid see alternative 4.1) 5. Ask User to chose an operation
90 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Templates Example Template A. Name: Give a short, descriptive name to the use case B. Actors: List the actors who can perform this use case C. Goals: Explain what the actors are trying to achieve D. Preconditions: State of the system before the use case E. Description: Give a short informal description F. Trigger: Describe the event that initiates the activity G. Summary: Summarize what occurs as the actors perform the use case F. Related use cases: (in accordance with use case diagram) G. Steps: Describe each step using some form (single/multiple columns) H. Postconditions: State of the system following completion I. Special Requirements: Non-functional requirements and constraints 90
91 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Development Example: ATM System (1) 1. Determine candidate system scope and boundaries Identify stakeholders Identify problem - Create problem statement Use interviews and other techniques ATMs + Bank ATMs ATM Software 1 -Customer 2 -Customer -Bank 3 - Card reader - Cash dispenser -Key pad - Touch screen -Printer -Bank
92 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Development Example: ATM System (2) 2. Identify actors Who interacts with the system? Who or what uses the system? Example ATM with scope 2 Bank Customer For what goals? What roles do they play? Who installs the system? Who or what starts and shuts down the system? Who maintains the system? Who or what gets and provides information to the system? Does anything happen at a fixed time? Installation Technician Administrator Administrator Bank Weekly Reports Check for possible actor generalization
93 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Development Example: ATM System (3) 2. Identify actors (cont d) Choose actors names carefully Actors give value, get value from system or both Should reflect roles rather than actual people An actor specifies a role an external entity adopts when it interacts directly with your system People / things may play multiple roles simultaneously or over time Use right level of abstraction Poor actor name Clerk Third-level supervisor Data Entry Clerk #165 Eddie The Dawg Taylor Good actor name Pension Clerk Sale supervisor Product accountant Customer service representative
94 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Development Example: ATM System (4) 3. Identify use cases Identify and refine actors goals Why would actor AAA use the system? Identify actors tasks to meet goals What interactions would meet goal GGG of actor AAA? Chose appropriate use case names Verb-noun construction Example actor: Customer Goal: Access account 24/7 for regular banking operations (withdrawal, deposit, statement...) in a timely and secure way. To be refined into sub-goals. From goals we can identify tasks: Withdraw Cash, Make Deposit, Print Account Statement... No situation-specific data Not tied to organization structure, paper forms, computer implementation, or manual process (e.g., enter form 104-B, complete approval window, get approval from immediate supervisor in Accounting Department)
95 Elicitation Techniques Existing Systems Interviews Use Case Development Example: ATM System (5) 3. Identify use cases (cont d) Develop a brief description in narrative form E.g., description of use case Withdraw Cash Brainstorming Joint Application Design Prototyping Use Cases The Customer identifies herself to the system, then selects the cash withdrawal operation. The system asks for the amount to withdraw. The Customer specifies the amount. The system provides the requested amount. The Customer takes the amount and leaves. 4. Identify preconditions E.g., preconditions of use case Withdraw Cash System is in operation, cash is available
96 Elicitation Techniques Existing Systems Interviews Use Case Development Example: ATM System (6) 5. Definition of primary scenario Brainstorming Joint Application Design Prototyping Use Cases Happy day story where everything goes fine 6. Definition of secondary scenarios (alternatives/exceptions) A method for finding secondary scenarios is to go through the primary scenarios and ask: Is there some other action that can be taken at this point? (alternate scenario) Is there something that could go wrong at this point? (exception scenario) Is there some behavior that could happen at any time? (alternative scenario unless it is an error, then it would be an exception scenario) Example use case: Withdraw Cash Not enough cash available Incorrect identification Customer forgets card in card reader Incorrect amount entered Customer forgets cash in dispenser
97 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Development Example: ATM System (7) 7. Structure use case diagram Identify commonalities and specify included use cases Identify variants and specify extended use cases Withdraw Cash <<include>> Identify Customer Bank <<include>> <<include>> Customer Make Deposit Print Account Statement
98 Elicitation Techniques Existing Systems Interviews Use Cases Development (1) Heuristics for finding use cases Select a narrow vertical slice of the system (i.e., one scenario) Discuss it in detail with the user to understand the user s preferred style of interaction Could target high value or high risk first Select a horizontal slice (i.e., many scenarios) to define the scope of the system Discuss the scope with the user Use illustrative prototypes (e.g., mock-ups) as visual support Find out what the user does Task observation (preferable to questionnaires) Brainstorming Joint Application Design Prototyping Use Cases
99 Elicitation Techniques Existing Systems Interviews Use Cases Development (2) Brainstorming Joint Application Design Prototyping Use Cases Alternative ways of identifying use cases (Ham, Larman) Identify external events to which the system must respond, and then relate these events to participating actors and specific use cases Express business processes in terms of specific scenarios, generalize the scenarios into use cases, and identify the actors involved in each use case Derive likely use cases from existing functional requirements if some requirements do not trace to any use case, consider whether you really need them
100 Elicitation Techniques Existing Systems Interviews Use Cases Development (3) Brainstorming Joint Application Design Prototyping Use Cases Often one use case (or a very small number) can be identified as central to the system The entire system can be built around this particular use case There are other reasons for focusing on particular use cases: Some use cases will represent a high risk because for some reason their implementation is problematic Some use cases will have high political or commercial value Approach is iterative System scope and boundaries may change as more information is known about actors, their goals, and use cases 100
101 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Example: University Registration System (1) Registrar Enroll in University <<include>> Enroll in Course <<extend>> Applicant Perform Security Check Enroll Family Member of Staff International Applicant RCMP Security System
102 Elicitation Techniques Existing Systems Interviews Example: University Registration System (2) Name: Enroll in University Identifier: UC 19 Brainstorming Joint Application Design Prototyping Use Cases Goal: Enroll applicant in the university Preconditions: The Registrar is logged into the system. The Applicant has already undergone initial checks to verify that they are eligible to enroll. Postconditions: The Applicant will be enrolled in the university as a student if they are eligible.
103 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Example: University Registration System (3) Main Flow: 1. An applicant wants to enroll in the university. 2. The applicant hands a filled out copy of form UI13 University Application Form to the registrar. 3. The registrar visually inspects the forms. 4. The registrar determines that the forms have been filled out properly. 5. The registrar selects to Create New Student. 6. The system displays the Create Student Screen. 7. The registrar inputs the name, address, and phone number of the applicant. [Extension Point: XPCheck] 8. The system determines that the applicant does not already exist within the system. 9. The system determines that the applicant is on the eligible applicants list. 10. The system adds the applicant to its records. 11. The registrar enrolls the student in courses via use case UC 17 Enroll in Course. 12. The system prepares a bill for the applicant enrollment fees. Alternate Flows: 4.a The forms have not been adequately filled
104 Elicitation Techniques Existing Systems Interviews Example: University Registration System (4) Name: Perform Security Check Identifier: UC 34 Brainstorming Joint Application Design Prototyping Use Cases At Extension Point XPCheck: 1. The registrar asks for security check results about applicant. 2. The system asks RCMP Security System for applicant security check results. 3. The RCMP Security System responds that applicant has been cleared. 3.a The Security System responds that applicant has not been cleared
105 Elicitation Techniques Existing Systems Interviews Example: University Registration System (5) Name: Enroll Family Member of Staff Identifier: UC 20 Inherits From: UC 19 Main Flow: 1. An applicant family member wants to enroll in the university. 2. The applicant hands a filled out copy of form UI15 University Application Form for Family Members to the registrar. 12. The system prepares a bill for the applicant enrollment fees based on staff family members rate. Alternate Flows: Brainstorming Joint Application Design Prototyping Use Cases
106 Elicitation Techniques Existing Systems Interviews Example: Point of Sale Application Brainstorming Joint Application Design Prototyping Use Cases Source: Craig Larman Applying UML and Patterns 106
107 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Development Rules of Thumb (1) Be careful not to over specify behavior Keep it short, keep it simple: main flow should fit on a single page Focus on what, not how: Focus on externally visible behavior Are you specifying a sequence of events, in which the sequence does not really matter? Example: Order of entering data for new customer Do you specify which elements from a set are selected, when any arbitrary element is needed? Example: Selecting new arbitrary phone number
108 Elicitation Techniques Existing Systems Interviews Use Case Development Rules of Thumb (2) Be careful not to under specify behavior Do not forget variations on basic flow Do not forget exceptions Brainstorming Joint Application Design Prototyping Use Cases For example, what happens to a phone call if there are no resources to allocate to it? Specify behavior for all possible inputs, both valid and invalid input
109 Elicitation Techniques Existing Systems Interviews Use Case Development Rules of Thumb (3) Keep names, data at an abstract level suitable for users For example, input and output events should have intuitive names Avoid data definition in use cases Use cases need to be understandable by users They must validate them Brainstorming Joint Application Design Prototyping Use Cases Avoid functional decomposition Do not try to structure the use cases as nested functions with «includes» Avoid deep hierarchies with «includes»
110 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Case Development Rules of Thumb (4) Think of use cases before use case diagram Do not spend too much time on the use case diagram the textual description is the most important part Avoid too much use of "extends" and "includes" in use case diagrams Do not describe the user interface You do not want too many use cases; if you have too many, you have probably included too much detail ( If in doubt, leave it out ) Do not attempt to describe everything too many variations too many things that can go wrong The requirements specification captures a more complete picture
111 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Benefits of Use Case-Based Software Development They can help to define the scope of the system They are often used to plan the development process They are used to both develop and validate the requirements Simple, easy to create All stakeholders understand them Often reflect user's essential requirements Separates normal behavior from exceptional behavior They can form the basis for the definition of test cases They can be used to structure user manuals 111
112 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Use Cases are Not a Panacea The use cases themselves must be validated Using the requirements validation methods Question/observe many types of users There are some aspects of software that are not covered by use case analysis How to integrate nun-functional requirements? Innovative solutions may not be considered Scalability and maintainability Others discussed by Stephen Ferg in What's Wrong with Use Cases 112
113 Elicitation Techniques Existing Systems Interviews Tools Brainstorming Joint Application Design Prototyping Use Cases Many UML tools support use case diagrams, without really supporting use cases well UCEd tool (Prof. Somé), to help capture/validate use cases Use Case edition (structured English) Domain model edition (and automatic extraction) Scenario edition Use Case & Domain model validation Use Cases combination in state models Simulation of executable model derived from Use Cases Scenario generation 113
114 Elicitation Techniques Existing Systems Interviews Use Case Edition with UCEd Brainstorming Joint Application Design Prototyping Use Cases Use Case model edition area Use Case description edition area Use Case model (use case, extend, include, actor ) Use Case description 114
115 Elicitation Techniques Existing Systems Interviews UCEd Model Import in jucmnav Brainstorming Joint Application Design Prototyping Use Cases 115
116 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Don t be Negative, But Be ready to face the music! In business, some people might wish to see you fail There are unforeseen events in any project Open systems are subject to various threats Software contains various kinds of bugs Remember Murphy s Law Anything that can go wrong will go wrong. 116
117 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Think about Negative Scenarios? A negative scenario is a scenario whose goal is Undesirable from the business organization s viewpoint Desirable from a hostile agent s viewpoint (not necessarily human) Consider them beforehand As well as potential solutions Or Wait until it is too late to react 117
118 Elicitation Techniques Existing Systems Interviews Misuse Case Brainstorming Joint Application Design Prototyping Use Cases Drive Car threatens Steal Car Thief Proposed by Sindre et Opdahl (2000) Capture use cases that a system must be protected against Goal is to threaten the system Obvious applications for security and risk analysis The misuse case s misactor is a hostile agent The colors of the ellipse are inverted 118
119 Elicitation Techniques Existing Systems Interviews A MiniMax 1 for Security Brainstorming Joint Application Design Prototyping Use Cases Drive the Car threatens includes Steal the Car Driver Lock the Car mitigates threatens includes Car Thief includes Short the Ignition Lock the Transmission mitigates Use Cases for 'Car Security' Similar to a chess match White s best move is to find Black s best move and to counter it New relations: threatens (from misuse case to use case) mitigates (from use case to misuse case) [1] Minimax: minimizing the maximum possible loss 119
120 Elicitation Techniques Existing Systems Interviews Finding Misuse Cases Step 1 Start from a normal use case diagram Find misactors (hostile roles) Who are the misactors, who want: Brainstorming Joint Application Design Prototyping Use Cases To harm the system, its stakeholders, or their resources intentionally To achieve goals that are incompatible with the system's goals or Competitor Crook 120
121 Elicitation Techniques Existing Systems Interviews Brainstorming Joint Application Design Prototyping Use Cases Finding Misuse Cases Step 2 Find misuse cases Ask what would a misactor do to harm system Express goals of misactors (if needed elaborate with scenarios) Add relationships (threaten) Competitor 121
122 Elicitation Techniques Existing Systems Interviews Finding Misuse Cases Step 3 Mitigate misuse cases Ask what would neutralize the threats Brainstorming Joint Application Design Prototyping Use Cases New included use case, new extension use case, or new secondary scenario to existing use case might be added Competitor 122
123 Elicitation Techniques Existing Systems Interviews Benefits and Risks of Misuse Cases Benefits Elicitation of security and safety requirements Early identification of threats, mitigations, and exceptions that could cause system failure Early identification of test cases Documentation of rationales Brainstorming Joint Application Design Prototyping Use Cases Risks Get into premature design solutions in step 3 (mitigation) Goal should be to find requirements (safety, security ) Missing misactors and threats in a partial view 123
124 Elicitation Techniques Existing Systems Interviews Tool: DOORS Plug-in Brainstorming Joint Application Design Prototyping Use Cases Scenario Plus (for Telelogic DOORS) Textual / Graphical output (HTML) Automatic links, metrics, etc. Upon referencing: automatic creation of use/misuse cases Automatic creation of links between misuse and use cases, by searching for underlined use case names with simple fuzzy matching 124
125 Elicitation Techniques Existing Systems Interviews Conflict and Trade-off Analysis Brainstorming Joint Application Design Prototyping Use Cases Service User Security Officer Access the Services includes includes Control Loosely conflicts with Control Strictly threatens threatens threatens threatens aggravates mitigates aggravates aggravates mitigates Sabotage Frustrated by Controls Denial-of-Service Attack Rogue Employee Service User includes Intrude into System includes Log Access Attempts mitigates includes Hacker includes Brute-Force includes Password Attack Operate Firewall mitigates includes Attack Unblocked Ports Recognize Users mitigates Impersonate Users Use Cases for 'Web Portal Security' New relations: aggravates and conflicts with 125
Sofware Requirements Engineeing
Sofware Requirements Engineeing Three main tasks in RE: 1 Elicit find out what the customers really want. Identify stakeholders, their goals and viewpoints. 2 Document write it down (). Understandable
Requirements Engineering Process
Software Engineering Requirements Engineering Process Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To describe the principal requirements engineering activities and d their
4.4 What is a Requirement? 4.5 Types of Requirements. Functional Requirements
4.4 What is a Requirement? It is a statement describing either 1) an aspect of what the proposed system must do, or 2) a constraint on the system s development. In either case it must contribute in some
Requirements engineering
Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and
Chapter 4, Requirements Elicitation
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation Software Lifecycle Definition Software lifecycle Models for the development of software Set of activities
PROJECT RISK MANAGEMENT
PROJECT RISK MANAGEMENT DEFINITION OF A RISK OR RISK EVENT: A discrete occurrence that may affect the project for good or bad. DEFINITION OF A PROBLEM OR UNCERTAINTY: An uncommon state of nature, characterized
Use-Case Analysis. ! What is it? ! From where did it come? ! Now part of UML
Use-Case Analysis Use-Case Analysis! What is it?! An informal, user-friendly, technique useful for functional requirements analysis and specification! From where did it come?! Ivar Jacobson, a Swedish
How To Develop Software
Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which
Software Process for QA
Software Process for QA Basic approaches & alternatives CIS 610, W98 / M Young 1/7/98 1 This introduction and overview is intended to provide some basic background on software process (sometimes called
10.1 Determining What the Client Needs. Determining What the Client Needs (contd) Determining What the Client Needs (contd)
Slide 10..1 CHAPTER 10 Slide 10..2 Object-Oriented and Classical Software Engineering REQUIREMENTS Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach [email protected] Overview Slide 10..3
Use Cases. Massimo Felici. Massimo Felici Use Cases c 2004 2011
Use Cases Massimo Felici Use Cases 1 Support requirements engineering activities and the requirement process Capture what a system is supposed to do, i.e., systems functional requirements Describe sequences
Requirements Engineering Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 7 Slide 1
Requirements Engineering Processes Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 7 Slide 1 Objectives To describe the principal requirements engineering activities and their relationships
Scenario-based Requirements Engineering and User-Interface Design
Scenario-based Requirements Engineering and User-Interface Institut für Computertechnik ICT Institute of Computer Technology Hermann Kaindl Vienna University of Technology, ICT Austria [email protected]
Requirements Engineering: Elicitation Techniques
2008:PR003 Requirements Engineering: Elicitation Techniques Sai Ganesh. Gunda Source:http://www.marcocioffi.com/archives/2005/04/requirements-engineering/ MASTER S THESIS Software Engineering, 2008 Department
Partnering for Project Success: Project Manager and Business Analyst Collaboration
Partnering for Project Success: Project Manager and Business Analyst Collaboration By Barbara Carkenord, CBAP, Chris Cartwright, PMP, Robin Grace, CBAP, Larry Goldsmith, PMP, Elizabeth Larson, PMP, CBAP,
How to Select and Implement an ERP System
How to Select and Implement an ERP System Prepared by 180 Systems Written by Michael Burns 180 Systems WHAT IS ERP?... 3 ANALYSIS... 4 VENDOR SELECTION... 6 VENDOR DEMONSTRATIONS... 8 REFERENCE CALLS...
SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island
SPECIFICATION BY EXAMPLE How successful teams deliver the right software Gojko Adzic MANNING Shelter Island Brief Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Preface xiii Acknowledgments xxii
Effective Business Requirements (Virtual Classroom Edition)
Developing & Confirming Effective Business Requirements (Virtual Classroom Edition) Eliminate Costly Changes and Save Time by Nailing Down the Project Requirements the First Time! Pre-Workshop Preparation
Using Use Cases on Agile Projects
Using Use Cases on Agile Projects Ivar Jacobson with Ian Spence Agenda What are agile teams looking for? Cards, conversations, and confirmations Knowing what to do and when it s done Being agile with use
So You Want To Be a Requirements Analyst? 1
So You Want To Be a Requirements Analyst? 1 Karl E. Wiegers Process Impact www.processimpact.com Be it explicitly or not, someone always performs the role of requirements analyst on a software project.
CDC UNIFIED PROCESS PRACTICES GUIDE
Document Purpose The purpose of this document is to provide guidance on the practice of Requirements Definition and to describe the practice overview, requirements, best practices, activities, and key
Listening to the Customer s Voice 1
Listening to the Customer s Voice 1 Karl E. Wiegers Process Impact 716-377-5110 www.processimpact.com Perhaps the greatest challenge facing the software developer is sharing the vision of the final product
ACCIDENT INVESTIGATION. Facilitator Guide
ACCIDENT INVESTIGATION Facilitator Guide Contents Overview....................................2 Training Materials..............................3 Preparation...................................3 Presentation
Swirl. Multiplayer Gaming Simplified. CS4512 Systems Analysis and Design. Assignment 1 2010. Marque Browne 0814547. Manuel Honegger - 0837997
1 Swirl Multiplayer Gaming Simplified CS4512 Systems Analysis and Design Assignment 1 2010 Marque Browne 0814547 Manuel Honegger - 0837997 Kieran O' Brien 0866946 2 BLANK MARKING SCHEME 3 TABLE OF CONTENTS
Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements
Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements
Shared Solutions: An Overview Special Education Policy and Programs Branch Ministry of Education
Shared Solutions: An Overview Special Education Policy and Programs Branch Ministry of Education Table of Contents 1. Shared Solutions: Overview 2. Understanding Conflict 3. Preventing Conflicts 4. Video:
Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design
I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)
Facilitated Workshops in Software Development Projects
Facilitated Workshops in Software Development Projects Members of an IT team spent a lot of time and effort working on the requirements for a major project. At the end of three weeks, they had produced
LECTURE 3 REQUIREMENTS GATHERING
LECTURE 3 REQUIREMENTS GATHERING Key Definitions The As-Is system is the current system and may or may not be computerized The To-Be system is the new system that is based on updated requirements The System
Visualization Techniques for Requirements Definition
ASPE RESOURCE SERIES Visualization Techniques for Requirements Definition The skills we teach drive real project success. Visualization Techniques for Requirements Definition By Rob Snowden Introduction:
DESCRIBING OUR COMPETENCIES. new thinking at work
DESCRIBING OUR COMPETENCIES new thinking at work OUR COMPETENCIES - AT A GLANCE 2 PERSONAL EFFECTIVENESS Influencing Communicating Self-development Decision-making PROVIDING EXCELLENT CUSTOMER SERVICE
Requirements engineering and quality attributes
Open Learning Universiteit Unit 2 Learning Unit 2 Requirements engineering and quality attributes Contents Introduction............................................... 21 2.1 Important concepts........................................
Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions
Announcements SE 1: Software Requirements Specification and Analysis Lecture 4: Basic Notations Nancy Day, Davor Svetinović http://www.student.cs.uwaterloo.ca/ cs445/winter2006 uw.cs.cs445 Send your group
Use Cases. Reference: Craig Larman, Applying UML and Patterns, Ch. 6
Use Cases Reference: Craig Larman, Applying UML and Patterns, Ch. 6 Use Case What it is: Text story Widely used to discover and record (mostly functional) requirements What is it about: Some actor(s) using
Using Video to Document Children s Learning
Steps to Success: An Instructional Design for Early Literacy Mentor-Coaches in Head Start and Early Head Start Unit 4: Using Child Assessment Information Module 4 Using Video to Document Children s Learning
Project Management Topics
S E C T I O N II T W O Project Management Topics SECTION II: PROJECT MANAGEMENT TOPICS TABLE OF CONTENTS Introduction 3 1. PROJECT TRIAGE 5 1.1 Gather the Data 7 1.2 Review and Analyze the Data 10 1.3
(Refer Slide Time: 01:52)
Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This
SOFT 423: Software Requirements
SOFT 423: Software Requirements Week 3 Class 1 Finish Elicitation & Start Analysis SOFT 423 Winter 2015 1 Last Class Questionnaires Document Inspection Requirements Stripping Use Cases Scenarios SOFT 423
JAD Guidelines. Description
Joint Application Development (JAD) sessions are highly structured, facilitated workshops that bring together customer decision makers and IS staff to produce high-quality deliverables in a short time
CHAPTER 11 REQUIREMENTS
Lecture Software Engineering CHAPTER 11 REQUIREMENTS Lecture Software Engineering Topics Determining What the Client Needs Overview of the Requirements Workflow Understanding the Domain The Business Model
Week 3. COM1030. Requirements Elicitation techniques. 1. Researching the business background
Aims of the lecture: 1. Introduce the issue of a systems requirements. 2. Discuss problems in establishing requirements of a system. 3. Consider some practical methods of doing this. 4. Relate the material
Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting
Using Use Cases for requirements capture Pete McBreen 1998 McBreen.Consulting [email protected] All rights reserved. You have permission to copy and distribute the document as long as you make no changes
Software Engineering. Objectives. Designing, building and maintaining large software systems
Software Engineering Objectives Designing, building and maintaining large software systems To define software engineering and explain its importance To discuss the concepts of software products and software
1. Provide a knowledge base 2. Create an atmosphere 3. Present a stimulus 4. Generate questions 5. Facilitate a discussion
1. Provide a knowledge base 2. Create an atmosphere 3. Present a stimulus 4. Generate questions 5. Facilitate a discussion 1 1. Provide a knowledge base If you want students to discuss a scientific or
Requirements Engineering for Web Applications
Web Engineering Requirements Engineering for Web Applications Copyright 2013 Ioan Toma & Srdjan Komazec 1 What is the course structure? # Date Title 1 5 th March Web Engineering Introduction and Overview
Interactive system specification. Interactive system definition. Issues to be taken into account for interactive systems
Interactive system specification From Requirements Engineering Processes and Techniques by G. Kotonya and I. Sommerville 1998 Slide 1 Interactive system definition Interactive systems can be defined as
Business Analyst Work Plan. Presented by: Billie Johnson, CBAP CSM
Business Analyst Work Plan Presented by: Billie Johnson, CBAP CSM Agenda Topic Introduction Overview of a Business Analysis Work Plan Initiating a Business Analysis Effort Components of the Business Analysis
CPM -100: Principles of Project Management
CPM -100: Principles of Project Management Lesson E: Risk and Procurement Management Presented by Sam Lane [email protected] Ph: 703-883-7149 Presented at the IPM 2002 Fall Conference Prepared by the Washington,
JOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5. No. 8, November-December 2006 Requirements Engineering Tasks Donald Firesmith,
Steps for Planning and Preparing an Effective Presentation
Steps for Planning and Preparing an Effective Presentation According to speaking consultant Lilyan Wilder (1999), two of the greatest myths about delivering oral presentations are that you re better off
Usability Evaluation with Users CMPT 281
Usability Evaluation with Users CMPT 281 Outline Usability review Observational methods Interview methods Questionnaire methods Usability ISO 9241-11: The extent to which a product can be used by specified
Writing a Requirements Document For Multimedia and Software Projects
Writing a Requirements Document For Multimedia and Software Projects Rachel S. Smith, Senior Interface Designer, CSU Center for Distributed Learning Introduction This guide explains what a requirements
What makes a good process?
Rob Davis Everyone wants a good process. Our businesses would be more profitable if we had them. But do we know what a good process is? Would we recognized one if we saw it? And how do we ensure we can
Example Material Change Management
Assessing Size and Complexity of Change - Overview Complex P R O C E S S Many processes Cross functional Critical processes Significant change P E O P L E Complex Many people New way of work Different
Our Guide to Customer Journey Mapping
Our Guide to Customer Journey Mapping Our Guides Our guides are here to help you understand a topic or to provide support for a particular task you might already be working on. Inside you ll find lots
Classical Software Life Cycle Models
Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website Motivation
Software Engineering Reference Framework
Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of
What is a requirement? Software Requirements. Descriptions and specifications of a system
What is a requirement? Software Requirements Descriptions and specifications of a system May range from a high-level abstract statement of a service or a statement of a system constraint to a detailed
Software Engineering. Requirements elicitation - Facts finding. Software Engineering Requirements Elicitation Slide 1
Software Engineering Requirements elicitation - Facts finding Software Engineering Requirements Elicitation Slide 1 Chapter Objectives To introduce software the Requirements Engineering Process To describe
Writing Use Case Scenarios for Model Driven Development
Writing Use Case Scenarios for Model Driven Development This guide outlines how to use Enterprise Architect to rapidly build Use Cases and increase your productivity through Model Driven Development. Use
Object-Oriented Systems Analysis and Design
Object-Oriented Systems Analysis and Design Noushin Ashrafi Professor of Information System University of Massachusetts-Boston Hessam Ashrafi Software Architect Pearson Education International CONTENTS
How To Adopt Rup In Your Project
08Bergstrom.C08 Page 127 Thursday, December 4, 2003 12:06 PM 8 How to Adopt RUP in Your Project Support Projects with Mentoring Make a High-Level Adoption Plan and Develop a Communication Plan Project
Self Study and Training for Members and Staff of Agricultural Cooperatives A Guidance Manual for Advisers and Trainers
Self Study and Training for Members and Staff of Agricultural Cooperatives A Guidance Manual for Advisers and Trainers This manual offers guidance to field workers involved in advising and providing training
User experience storyboards: Building better UIs with RUP, UML, and use cases
Copyright Rational Software 2003 http://www.therationaledge.com/content/nov_03/f_usability_jh.jsp User experience storyboards: Building better UIs with RUP, UML, and use cases by Jim Heumann Requirements
PROJECT MANAGEMENT PLAN CHECKLIST
PROJECT MANAGEMENT PLAN CHECKLIST The project management plan is a comprehensive document that defines each area of your project. The final document will contain all the required plans you need to manage,
Why Accountability Matters
PREVIEW GUIDE Why Accountability Matters Table of Contents: Sample Pages from Leader s Guide...pgs. 2-8 Program Information and Pricing...pgs. 9-10 Leader s Guide Can We Count on You? CRM Learning s Can
Name: Class: Date: AIST3610 StudyChk02 - Questions from text Chapters 3 & 4
Class: Date: AIST3610 StudyChk02 - Questions from text Chapters 3 & 4 Multiple Choice Identify the choice that best completes the statement or answers the question. 1. An example of a nonfunctional requirement
Modeling Guidelines Manual
Modeling Guidelines Manual [Insert company name here] July 2014 Author: John Doe [email protected] Page 1 of 22 Table of Contents 1. Introduction... 3 2. Business Process Management (BPM)... 4 2.1.
Prototyping Techniques for
Prototyping Techniques for Better Web Design Billie Johnson, CBAP, CSM [email protected] Agenda Overview of Prototyping Technique Prototyping Progression Paper vs. Digital Prototypes Conclusion Seminar
GOAL-BASED WEB DESIGN TOWARDS BRIDGING THE GAP BETWEEN REQUIREMENTS AND DESIGN OF WEB APPLICATIONS
13_BOLCHINI.qxd 3/26/2003 10:25 Pagina 187 SComS: New Media in Education (2003) 187-191 DAVIDE BOLCHINI* GOAL-BASED WEB DESIGN TOWARDS BRIDGING THE GAP BETWEEN REQUIREMENTS AND DESIGN OF WEB APPLICATIONS
Quick Guide. Oral presentations. Four-step guide to preparing oral presentations. What is in this guide. Step 1: Plan
Oral presentations What is in this guide Four-step guide to preparing oral presentations Step 1: Plan Step 2: Prepare Step 3: Practise Step 4: Present Reflecting on the presentation Oral presentations
2. Choose the location and format for focus groups or interviews
Steps for Conducting Focus Groups or Individual In-depth Interviews 1. Plan the study Plan your study with the input of your strategy team, stakeholders, and research experts so that collaboratively you
VALLIAMMAI ENGINEERING COLLEGE S.R.M. Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
VALLIAMMAI ENGINEERING COLLEGE S.R.M. Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Sub Code : CP7007 Sub Name: SOFTWARE REQUIREMENTS ENGINEERING Branch / Year : ME CSE / I Year
1 Identify Current State and Scope
TASKS AND REQUIREMENTS (ANALYSIS PHASE) A common reason users find an interface unfriendly or not intuitive is because it does not support how they really do their work and think about their work. Too
Design Thinking for. Requirements Analysis
Design Thinking for Requirements Analysis IN THIS ARTICLE Design Thinking for Requirements Analysis Are you in the requirements gathering and analysis phase of a project? Do you need to get a clear understanding
Software Metrics & Software Metrology. Alain Abran. Chapter 4 Quantification and Measurement are Not the Same!
Software Metrics & Software Metrology Alain Abran Chapter 4 Quantification and Measurement are Not the Same! 1 Agenda This chapter covers: The difference between a number & an analysis model. The Measurement
20 Producing a Video. Media 20
LESSON PROJECT IDEAS COPY MASTER Video Book Report Choose a key scene from a story you have read. Write a script for the scene, sticking closely to what happens in the story. Then prepare a storyboard
Project Management Process
Project Management Process Description... 1 STAGE/STEP/TASK SUMMARY LIST... 2 Project Initiation 2 Project Control 4 Project Closure 5 Project Initiation... 7 Step 01: Project Kick Off 10 Step 02: Project
Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology
Process Methodology for Wegmans Deli Kiosk Version 1.0 Prepared by DELI-cious Developers Rochester Institute of Technology September 15, 2013 1 Table of Contents 1. Process... 3 1.1 Choice... 3 1.2 Description...
Discovery Projects Strategies for Defining the Opportunity. Tom Martin Senior Technology Consultant
Discovery Projects Strategies for Defining the Opportunity Tom Martin Senior Technology Consultant Topic Header The What What is a Discovery Project? What is a Discovery Project? A Small Project to Define
Tips & Tools #17: Analyzing Qualitative Data
Tips & Tools #17: Analyzing Qualitative Data Introduction Qualitative evaluation methods yield narrative data often describing experiences, perceptions, or opinions from key informant interviews, open
Six Critical Success Factors for Running a Successful Virtual Meeting
Six Critical Success Factors for Running a Successful Virtual Meeting Read more Contact [email protected] to request a free copy of 75 Tips for Getting Great Results from Virtual Meetings. Julia
Project Management. Lecture 3. Software Engineering CUGS. Spring 2012 (slides made by David Broman) Kristian Sandahl
Project Lecture 3 Software Engineering CUGS Spring 2012 (slides made by David Broman) Kristian Sandahl Department of Computer and Information Science Linköping University, Sweden A Software Life-cycle
How to Study Mathematics Written by Paul Dawkins
How to Study Mathematics Written by Paul Dawkins Before I get into the tips for how to study math let me first say that everyone studies differently and there is no one right way to study for a math class.
Styles of Leadership
Purpose: To focus on three styles of leadership, the importance of developing a flexible style and to help you understand your natural leadership style. Learning Objectives: 1. To understand three styles
Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality
Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality Current Research Team: Prof. Victor R. Basili Forrest Shull, Ph.D. Guilherme H. Travassos, D.Sc. (1)
Chapter 8 Software Testing
Chapter 8 Software Testing Summary 1 Topics covered Development testing Test-driven development Release testing User testing 2 Program testing Testing is intended to show that a program does what it is
Thai Language Self Assessment
The following are can do statements in four skills: Listening, Speaking, Reading and Writing. Put a in front of each description that applies to your current Thai proficiency (.i.e. what you can do with
Five Business Uses for Snake Oil The #1 Selling Game
Overcoming Fear of Speaking in Public Snake Oil Therapy Business Meeting Ice Breaker Human Resources Marketing and Product Development Brainstorming Sales Training 1. Overcoming Fear of Speaking in Public
Determining requirements
Systems Analysis Determining requirements ผ สอน ดร.สล ล บ ญพราหมณ ITM-631 Information System Development ... การจะพ ฒนาท กส งท กอย างให เจร ญน น จะต องสร างและเสร ม ข นจากพ นฐานเด มท ม อย ก อนท งส น ถ
Using Credit to Your Advantage.
Using Credit to Your Advantage. Topic Overview. The Using Credit To Your Advantage topic will provide participants with all the basic information they need to understand credit what it is and how to make
Insight Guide. E-Learning Compliance. www.kineo.com
Insight Guide E-Learning Compliance LAST MENU BACK NEXT Insight Guide Overview The challenges of compliance training Questions to ask before you begin your design 20 minutes A new generation of design
Qualitative data acquisition methods (e.g. Interviews and observations) -.
Qualitative data acquisition methods (e.g. Interviews and observations) -. Qualitative data acquisition methods (e.g. Interviews and observations) ( version 0.9, 1/4/05 ) Code: data-quali Daniel K. Schneider,
TRAINING NEEDS ANALYSIS
TRAINING NEEDS ANALYSIS WHAT IS A NEEDS ANALYSIS? It is a systematic means of determining what training programs are needed. Specifically, when you conduct a needs analysis, you Gather facts about training
