Requirements Elicitation Section Two Version: 1.0 Mehr 1386 Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 1 Components of requirements elicitation Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory What 2 Elicitation activities How • Application domain understanding – Application domain knowledge is knowledge of the general area where the system is applied. • Problem understanding – The details of the specific customer problem where the system will be applied must be understood. • Business understanding – You must understand how systems interact and contribute to overall business goals. • Understanding the needs and constraints of system stakeholders – You must understand, in detail, the specific needs of people who require system support in their work. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 3 The requirements elicitation process How Establish objectives Understand background Organise knowledge Collect requirements Business goals Organisational structure Stakeholder identification Stakeholder requirements Goal prioritisation Domain requirements Domain knowledge filtering Organisational requirements Problem to be solved Application domain System constraints Existing systems Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 4 Elicitation stages How • Objective setting – – – – general goals of the business, an outline description of the problem to be solved, why the system is necessary the constraints on the system. • Background knowledge acquisition – information about the organization where the system is to be installed – the application domain of the system and information about existing systems • Knowledge organization – The large amount of knowledge which has been collected in the previous stage must be organized and collated. • Stakeholder requirements collection – System stakeholders are consulted to discover their requirements Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 5 Exercise • What is the relationship between process stages and elicitation activities? Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 6 Requirements analysis and negotiation How Requ irements analysis Necessity checking Unnecessary requirements Requirements discussion Consistency and completeness checking Conflicting and incomplete requirements Requirements prioritisation Feasibility checking Infeasible requirements Requirements agreement Requ irements negotiation Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 7 Elicitation, analysis and negotiation How Draft statement of requirements Requirements elicitation Requirements analysis Requirements problems Requirements document Requirements negotiation Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 8 Elicitation activities • • • • How Application domain understanding Problem understanding Business understanding Understanding stakeholders needs Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 9 Application Domain Understanding What • The process by which a software engineer learns about the domain to better understand the problem: – The domain is the general field of business or technology in which the clients will use the software – A domain expert is a person who has a deep knowledge of the domain • Benefits of performing domain analysis: – Faster development – Better system – Anticipation of extensions Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 10 Domain Analysis Outputs What Business Vocabulary General knowledge about the domain Customers and users Environment Tasks and procedures currently performed Competing software Similarities to other domains Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 11 Elicitation activities • • • • How Application domain understanding Problem understanding Business understanding Understanding stakeholders needs Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 12 Gain Agreement on Problems How • What is the problem? – We technologists tend to rush headlong into solution providing - rather than taking time to truly understand the problem – Suggestion: Write it down, see if you can get everyone to agree on it • What is the problem, really? – Searching for root causes - or the “problem behind the problem” - often leads to a clearer understanding of the real problem Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 13 Problem Understanding What • A problem can be expressed as: – A difficulty the users or customers are facing, – Or as an opportunity that will result in some benefit such as improved productivity or sales. • The solution to the problem normally will entail developing software • A good problem statement is short and succinct Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 14 Analyzing the Problem: Overview Problem Why Problem Space Needs Features Solution Space Software Requirements The Product To Be Built Test Procedures Design User Docs Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 15 Why Is Analyzing the Problem Important? Why • To avoid the “Yes, …, but ….” “Yes, {it meets the requirements}, but {it doesn’t solve my problem}.” • Problem analysis time is on top of the pyramid – It pays big dividends if you do it up front • Analysis work is transferable Problem Statement Subject is customer “I need to …” Requirement Statement Subject is system “The system provides …” Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 16 Definition of a Problem What “A problem can be defined as the difference between {Problem} things as perceived and things as desired” Gause & Weinberg, 1989 Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 17 Problems What • Problems are undesirable situations that prevent the organization from fully achieving its purpose, goals, and/or objectives. • Opportunities are chances to improve the organization even in the absence of specific problems. • Directives are new requirements that are imposed by management, government, or some external influence. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 18 The PIECES Problem-Solving Framework P the need to improve performance I the need to improve information (and data) E the need to improve economics, control costs, or increase profits C the need to improve control or security E the need to improve efficiency of people and processes S the need to improve service to customers, suppliers, partners, employees, etc. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory What 19 Problem Statement Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory How 20 Ishikawa Diagram What • The Ishikawa diagram is a graphical tool used to identify, explore, and depict problems and the causes and effects of those problems. • It is often referred to as a cause-and-effect diagram or a fishbone diagram. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 21 Cause-and-Effect Analysis What – Cause-and-effect analysis is a technique in which problems are studied to determine their causes and effects. – In practice, effects can be symptomatic of more deeply rooted or basic problems which, in turn, must be analyzed for causes and effects until such a time as the causes and effects do not yield symptoms of other problems. – List contributing causes to the identified problem. – Keep asking “Why?” (expand each rib). How much does each contribute? Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 22 What Is the Problem Being Solved? How Fishbone Diagram: One Method for Root-Cause Analysis in Solving our Sample Problem Our Customer’s Stated Problem: We Need Recycling Machines Here Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 23 Focus on the Largest Contributors How % Contribution Pareto Diagram 50 45 40 35 30 25 20 15 10 5 0 Too Much Litter Too Hard to Recycle Now Environmental Impact Limited Natural Resources People Can Make Money Other Reasons Contributing Causes Rank in order and use the 80-20 Rule to focus on the top contributing causes to address the greatest portion of the problem. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 24 Elicitation activities • • • • How Application domain understanding Problem understanding Business understanding Understanding stakeholders needs Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 25 System Improvement Objectives What An objective is a measure of success. It is something that you expect to achieve, if given sufficient resources. • Reduce the number of uncollectible customer accounts by 50 percent within the next year. • Increase by 25 percent the number of loan applications that can be processed during an eight-hour shift. • Decrease by 50 percent the time required to reschedule a production lot when a workstation malfunctions. A constraint is something that will limit your flexibility in defining a solution to your objectives. Essentially, constraints cannot be changed. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 26 Identify Constraints Political What Economic Environmental Technical Feasibility System Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 27 Cause-and-Effect / System Improvement Objectives How PROBLEMS, OPPORTUNITIES, OBJECTIVES, AND CONSTRAINTS MATRIX Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 28 Analysis checks • Necessity checking – • The need for the requirement is analysed. In some cases, requirements may be proposed which don’t contribute to the business goals of the organisation or to the specific problem to be addressed by the system. Consistency and completeness checking – – – • How The requirements are cross-checked for consistency and completeness. Consistency means that no requirements should be contradictory completeness means that no services or constraints which are needed have been missed out. Feasibility checking – The requirements are checked to ensure that they are feasible in the context of the budget and schedule available for the system development. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 29 Requirements negotiation How • Requirements discussion – Requirements which have been highlighted as problematical are discussed and the stakeholders involved present their views about the requirements. • Requirements prioritisation – Disputed requirements are prioritised to identify critical requirements and to help the decision making process. • Requirements agreement – Solutions to the requirements problems are identified and a compromise set of requirements are agreed. Generally, this will involve making changes to some of the requirements. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 30 Elicitation activities • • • • How Application domain understanding Problem understanding Business understanding Understanding stakeholders needs Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 31 Understanding Stakeholder Needs - Overview I need … Problem What Problem Space Needs Features Solution Space Software Requirements The Product To Be Built Test Procedures Design User Docs Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 32 What What Are Sources for Our Requirements? Requirement Specs Business Plans Personal Goals Business Models Partners Customer Analyst Users Bug Reports Change Requests Domain Experts Problem Domain Industry Analysts Site Visits Competitive info. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 33 % of Target Domain Customers What Are The Characteristics of Our Customers? What 35% Technology Adoption Profile “Crossing the CHASM” 30% 25% 20% 15% 10% 5% 0% INNOVATORS EARLY ADOPTERS • Technical • Have money Influence • Strong Influence • No Money • Specific features • Discontinuous innovation • Company specific Time (the lifecycle of the technology) EARLY MAJORITY • Pragmatists • Mission critical systems • Reliability • Whole product solutions LATE MAJORITY • Conservatives • Price sensitive • Simplify • Commodity • Demanding LAGGARDS • Skeptics • Price Moore, 1991 Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 34 What Problems Might Be Encountered? How • Stakeholders know what they want but may not be able to articulate it. • Stakeholders may not know what they want. • Stakeholders think they know what they want until you give them what they said they wanted. • Analysts think they understand user problems better than users. • Everybody believes everybody else is politically motivated. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 35 What Does This Process Look Like? How Ad hoc requirements Requirements Spec Rejected Reworked Spec Rejected Customer Reworked again Development Approved ! Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 36 Elicitation techniques What • Specific techniques which may be used to collect knowledge about system requirements • This knowledge must be structured – Partitioning - aggregating related knowledge – Abstraction - recognising generalities – Projection - organising according to perspective • Elicitation problems – Not enough time for elicitation – Inadequate preparation by engineers – Stakeholders are unconvinced of the need for a new system Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 37 Techniques for Eliciting Stakeholder Needs • • • • • • • • • • • • What Document study Observation Work Sampling Interviews Questionnaires Prototyping Join Requirement Planning Brainstorming & Idea Reduction Use Cases Role Playing Business Modeling Reviewing Customer Requirement Specifications Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 38 Document Study • Developing a good feel for the system by studying existing documentation, forms, and files. • A good analyst always gets facts first from existing documentation. • Organization chart (The first document the analyst should seek out) Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 39 Documents that should be studied • Documents that describe the problem • Documents that describe the business functions Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 40 Documents that Describe the Problem • Interoffice memoranda, studies, memos, suggestions, customer complaints, and reports that document the problem area. • Accounting records, performance reviews, work measurements reviews and operating reports. • Past and Present Information systems project requests. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 41 Documentation of previous system studies • • • • • • Various types of flowcharts and diagrams Project dictionaries Design documentation Program documentation Computer operations manuals Training manuals Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 42 Documents that describe the business function • The company’s mission statement and strategic plan • Formal objectives for the organization subunits • Policy manuals that may place constraints • Quality Manuals (ISO 9001,…) • Standard Operating Procedures, job outlines, or task instructions • Completed forms • Samples of manual and computerized databases • Samples of manual and computerized screens and reports Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 43 Observation How Observation is a fact-finding technique wherein the systems analyst either participates in or watches a person perform activities to learn about the system. Advantages? Disadvantages? Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 44 Observation Guidelines What • Determine the who, what, where, when, why, and how of the observation. • Obtain permission from appropriate supervisors or managers. • Inform those who will be observed of the purpose of the observation. • Keep a low profile. • Take notes during or immediately following the observation. • Review observation notes with appropriate individuals. • Don't interrupt the individuals at work. • Don't focus heavily on trivial activities. • Don't make assumptions. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 45 Techniques for Eliciting Stakeholder Needs • • • • • • • • • • • • What Document study Observation Work Sampling Interviews Questionnaires Prototyping Join Requirement Planning Brainstorming & Idea Reduction Use Cases Role Playing Business Modeling Reviewing Customer Requirement Specifications Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 46 Work Sampling What • Work sampling is a fact-finding technique that involves a large number of observations taken at random intervals. • Sampling is the process of collecting a representative sample of documents, forms, and records. – Determining the sample size: • Sample Size = 0.25 x (Certainty factor/Acceptable error)2 – For a 90% certainty: • Sample Size = 0.25(1.645/0.10)2 = 68 Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 47 Sampling Techniques How Randomization is a sampling technique characterized as having no predetermined pattern or plan for selecting sample data. Stratification is a systematic sampling technique that attempts to reduce the variance of the estimates by spreading out the sampling—for example, choosing documents or records by formula—and by avoiding very high or low estimates. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 48 Techniques for Eliciting Stakeholder Needs • • • • • • • • • • • • What Document study Observation Work Sampling Interviews Questionnaires Prototyping Join Requirement Planning Brainstorming & Idea Reduction Use Cases Role Playing Business Modeling Reviewing Customer Requirement Specifications Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 49 Interviews What • A direct technique that can be used in both problem analysis and requirements elicitation • Designed to gain an understanding of real problems and potential solutions from the perspectives of the users, customers, and other stakeholders Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 50 Types of Interviews What Unstructured interviews are conducted with only a general goal or subject in mind and with few, if any, specific questions. The interviewer counts on the interviewee to provide a framework and direct the conversation. In structured interviews the interviewer has a specific set of questions to ask of the interviewee. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 51 Types of Interview Questions What Open-ended questions allow the interviewee to respond in any way that seems appropriate. Closed-ended questions restrict answers to either specific choices or short, direct responses. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 52 Interview Questions What • Types of Questions to Avoid – Loaded questions – Leading questions – Biased questions • Interview Question Guidelines – – – – – Use clear and concise language. Don’t include your opinion as part of the question. Avoid long or complex questions. Avoid threatening questions. Don’t use “you” when you mean a group of people. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 53 The Context-Free Question What • The context-free question is a high-level, abstract question that can be posed early in a project to obtain information about global properties of the user’s problem and potential solutions. • Context-free questions: – Are always appropriate – Help you understand stakeholder perspectives – Are not biased with solutions knowledge Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 54 The Context-Free User Questions What Roles: • Who is the customer? • Who is the user? • Are their needs different? • What are their backgrounds, capabilities, environments? Use as input when defining actors for Use Cases Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 55 Context-Free Process Questions What Problems: • What is the problem? • What is the reason for wanting to solve this problem? • Are there other reasons for wanting to solve this problem? • What is the value of a successful solution? • How do you solve the problem now? • What is the trade-off between time and value? • Where else can the solution to this problem be found? Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 56 Context-Free Product Questions What Product: • What problem does this product solve? • What business problems could this product create? • What hazards could exist for the user? • What environment will the product encounter? • What are your expectations for usability? • What are your expectations for reliability? • What performance/precision is required? Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 57 Context-Free Meta-questions What Interview: • Am I asking too many questions? • Do my questions seem relevant? • Are you the right person to answer these questions? • Are your answers requirements? • Can I ask more questions later? • Would you be willing to participate in a requirements review? • Is there anything else I should be asking you? Gause & Weinberg, 1989 Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 58 Interviews: Non-Context-Free Examples What • Leading questions – You need a larger screen, don’t you? • Self answering questions – Are fifty items about right? • Controlling statements – Can we get back to my questions? • Too long-too complex – I have a three part question, ... What are better questions to ask? Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 59 Interviews: Warning What • Don't ask people to describe things they don’t usually describe. – Assumes that users can describe complex activities – Example: tying your shoelace – In general, people can do many things they cannot describe – Empirical evidence - poor correlation • Ask open-ended questions • Avoid questions that begin with “Why…?” – Can provoke a defensive posture • Don’t expect simple answers • Don’t rush the interviewee for answers Listen, listen, listen! Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 60 Procedure to Conduct an Interview How 1.Select Interviewees 2.Prepare for the Interview 1.An interview guide is a checklist of specific questions the interviewer will ask the interviewee. 3.Conduct the Interview 4.Follow Up on the Interview Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 61 Sample Interview Guide How Interviewee: Jeff Bentley, Accounts Receivable Manager Date: Tuesday, March, 23, 2000 Time: 1:30 P.M. Place: Room 223, Admin. Bldg. Subject: Current Credit-Checking Policy Time Allocated Interviewer Question of Objective Interviewee Response 1 to 2 min. Objective Open the interview: • Introduce Ourselves • Thank Mr. Bentley for his valuable time • State the purpose of the interview--to obtain an understanding of the existing credit-checking policies 5 min. Question 1 What conditions determine whether a customer’s order is approvedfor credit? Follow-up 5 min. Question 2 What are the possible decisions or actions that might be taken once these conditions have been evaluated? Follow-up 3 min. Question 3 How are customers notified when credit is not approved for their order? Follow-up Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory (continued) 62 Sample Interview Guide (concluded) 1 min. Question 4 After a new order is approved for credit and placed in the file containing orders that can be filled, a customer might request that a modification be made to the order. Would the order have to go through credit approval again if the new total order cost exceeds the original cost? Follow-up 1 min. Question 5 Who are the individuals that perform the credit checks? Follow-up How 1 to 3 mins. Question 6 May I have permission to talk to those individuals to learn specifically how they carry out the credit-checking process? Follow-up 1 min. Objective Conclude the interview: • Thank Mr. Bentley for his cooperation and assure him that he will be receiving a copy of what transpired during the interview 21 minutes Time allotted for base questions and objectives. 9 minutes Time allotted for follow-up questions and redirection 30 minutes Total time allotted for interview (1:30 p.m. to 2:00 p.m.) General Comments and Notes: Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 63 Techniques for Eliciting Stakeholder Needs • • • • • • • • • • • • What Document study Observation Work Sampling Interviews Questionnaires Prototyping Join Requirement Planning Brainstorming & Idea Reduction Use Cases Role Playing Business Modeling Reviewing Customer Requirement Specifications Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 64 Questionnaires What Questionnaires are special-purpose documents that allow the analyst to collect information and opinions from respondents. – Advantages? – Disadvantages? Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 65 Types of Questionnaires What Free-format questionnaires offer the respondent greater area in the answer. A question is asked, and the respondent records the answer in the space provided after the question. Fixed-format questionnaires contain questions that require selection of predefined responses from individuals. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 66 Types of Fixed-Format Questions What • Multiple-choice questions • Rating questions • Ranking questions Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 67 Questionnaire Procedure How 1. Determine what facts and opinions must be collected and from whom you should get them. 2. Based on the needed facts and opinions, determine whether free- or fixed-format questions will produce the best answers. 3. Write the questions. 4. Test the questions on a small sample of respondents. 5. Duplicate and distribute the questionnaire. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 68 Techniques for Eliciting Stakeholder Needs • • • • • • • • • • • • • What Document study Observation Work Sampling Interviews Questionnaires Prototyping Join Requirement Planning Requirements Workshop Brainstorming & Idea Reduction Use Cases Role Playing Business Modeling Reviewing Customer Requirement Specifications Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 69 Prototyping What • A prototype is an initial version of a system which may be used for experimentation • Prototypes are valuable for requirements elicitation because users can experiment with the system and point out its strengths and weaknesses. They have something concrete to criticise • Rapid development of prototypes is essential so that they are available early in the elicitation process Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 70 Types of prototyping What • Throw-away prototyping – To elicit requirements – Use for the requirements which cause most difficulties to customers and which are the hardest to understand. • Evolutionary prototyping – intended to deliver a workable system quickly to the customer. – Use for well-understood requirements and which can deliver useful end-user functionality. – After extensive use poorly understood requirements should be implemented. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 71 Prototyping costs and problems What • Training costs - prototype development may require the use of special purpose tools • Development costs - depend on the type of prototype being developed • Extended development schedules - developing a prototype may extend the schedule although the prototyping time may be recovered because rework is avoided • Incompleteness - it may not be possible to prototype critical system requirements Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 72 Techniques for Eliciting Stakeholder Needs • • • • • • • • • • • • What Document study Observation Work Sampling Interviews Questionnaires Prototyping Join Requirement Planning Brainstorming & Idea Reduction Use Cases Role Playing Business Modeling Reviewing Customer Requirement Specifications Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 73 Joint Requirements Planning What • Joint requirements planning (JRP) is a process whereby highly structured group meetings are conducted for the purpose of analyzing problems and defining requirements. • JRP is a subset of a more comprehensive joint application development (JAD) technique that encompasses the entire systems development process. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 74 Requirements Workshops How • Accelerate the Elicitation Process • Gathers all stakeholders together for an intensive, focused period • Facilitator runs the meeting • Everyone gets their say • Results immediately available • Provide a framework for applying the other elicitation techniques we will be discussing Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 75 Benefits of JRP Why • JRP actively involves users and management in the development project (encouraging them to take “ownership” in the project) • JRP reduces the amount of time required to develop systems • When JRP incorporates prototyping as a means for confirming requirements and obtaining design approvals, the benefits of prototyping are realized Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 76 JRP Participants • • • • • What Sponsor Facilitator Users and Managers Scribes IT Staff Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 77 Workshops: Planning and Executing PRE WORKSHOP •Sell the workshop •Establish team •Handle logistics •Issue warm-up material •Prepare agenda How SESSION PRODUCTION FOLLOW-UP •Facilitate •Keep on track •Record findings •Summarize conclusions • Synthesize findings • Condense info •Present to customer •Determine next steps Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 78 How Typical room layout for JRP session 41' 0" Food & Refreshments IT Professionals & Other Observers Scribe Flipchart Workstation (for CASE tool) Users and Managers Computer Projection Device 30' 0" Scribe Blackboard Overhead Projector JAD Facilitator Printer Workstation (for prototyping tool) IT Professionals & Other Observers Scribe Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 79 Guidelines for Conducting a JRP Session • • • • • • • • How Do not unreasonably change the list of questions Stay on schedule Ensure that the secretary is able to take notes Avoid the use of technical words and phrases Apply conflict resolution skills Allow for breaks Encourage group opinion Encourage user and management participation without allowing individuals to dominate the session Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 80 Workshops: Tricks of the Trade Problem Hard to get restarted after breaks Pointed criticism - petty biases, turf wars, politics and cheap shots Grandstanding, domineering positions, uneven input from participants Flagging energy after lunch How Solution “Late From Break” ticket, Kitchen timer, Charitable contribution box ($1 after ticket used) “1 Free Cheap Shot” ticket, “That’s a Great Idea!!” ticket Trained facilitator, “Five Minute Position Statement” Light lunches, breaks, coffee, soda, candies, cookies, rearrange room, change temperature Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 81 Techniques for Eliciting Stakeholder Needs • • • • • • • • • • • • What Document study Observation Work Sampling Interviews Questionnaires Prototyping Join Requirement Planning Brainstorming & Idea Reduction Use Cases Role Playing Business Modeling Reviewing Customer Requirement Specifications Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 82 Brainstorming What • Brainstorming is a technique for generating ideas during group meetings. • Participants are encouraged to generate as many ideas as possible – in a short period of time – without any analysis until all the ideas have been exhausted. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 83 Rules of Brainstorming • • • • • How Clearly state the objective of the session Generate as many ideas as possible Let your imagination soar Do not allow criticism or debate prune and combine ideas Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 84 Brainstorming Exercise How 1. Prepare – Stack of Post-Its for each participant – Large markers for all 2. Gather Ideas – Write it down – Shout it out – Facilitator posts on board 3. Prune Ideas – Combine like ideas – Eliminate outrageous ideas 4. Organize Ideas – Move the cards around – Could organize by FURPS Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 85 Brainstorming: Idea Reduction • • • • How Discard redundant and outrageous ideas Store “needs more development” ideas Mix ideas Prioritize those that remain – Vote • Single vote • Cumulative voting – By features – Apply evaluation criteria • Non-weighted • Weighted Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 86 Brainstorming Guidelines How • Isolate the appropriate people in a place that will be free from distractions and interruptions • Make sure that everyone understands the purpose of the meeting • Appoint one person to record ideas • Remind everyone of the brainstorming rules • Within a specified time period, team members call out their ideas as quickly as they can think of them • After the group has run out of ideas and all ideas have been recorded, then and only then should the ideas be analyzed and evaluated • Refine, combine, and improve the ideas that were generated earlier Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 87 Techniques for Eliciting Stakeholder Needs • • • • • • • • • • • • What Document study Observation Work Sampling Interviews Questionnaires Prototyping Join Requirement Planning Brainstorming & Idea Reduction Use Cases Role Playing Business Modeling Reviewing Customer Requirement Specifications Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 88 How Can a Use-Case Model Elicit Needs? • • • • • How Discuss with customer what the system will do Identify who will interact with the system Identify what interfaces the system should have Help verify that no requirements are missing Verify that developers understand requirements Use-Case Model Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 89 What Is a Use Case? A use case defines a sequence of actions performed by a system that yields an observable result of value to an actor What A use case describes a set (class) of possible executions of the system • A specific execution (instance) of a use case is a scenario • Work on the class level to identify and describe the use case Set of atomic activities, decisions, and requests • May be performed fully or not at all • Started by actor Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 90 What What Is a Use Case? A use case defines a sequence of actions performed by a system Describes functions of the system that yields an observable result of value To avoid too detailed use cases to an actor To avoid too complex use cases Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 91 What Define System Boundaries and Functions A Simple Phone System Caller Place Local Call Callee Place Long Distance Call Long Distance Provider Customer Bill Customer Billing Manager A model of what the system does and who it does it for Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 92 Useful Questions in Identifying Use Cases Use Case How • What are the primary tasks the actor wants the system to perform? • Will the actor create, store, change, remove, or read data in the system? • Will the actor need to inform the system about sudden, external changes? • Does the actor need to be informed about certain occurrences in the system? • Will the actor perform a system startup or termination? Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 93 A Use-Case Model Diagram What A Recycling Machine Customer Recycle Items Operator Print Daily Report Change Refund Values Manager Add New Bottle Type A model of what the system is supposed to do (use cases), and the system's surroundings (actors). Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 94 Techniques for Eliciting Stakeholder Needs • • • • • • • • • • • • What Document study Observation Work Sampling Interviews Questionnaires Prototyping Join Requirement Planning Brainstorming & Idea Reduction Use Cases Role Playing Business Modeling Reviewing Customer Requirement Specifications Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 95 Role Playing How • Tools and Techniques – Scripted walkthroughs – Scenario analysis – Class Responsibility Collaboration (CRC) Cards • Have the analyst play the role of user or customer to gain real insights into the problem domain • Have the customer play the role of a user to understand the problems they may face Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 96 Techniques for Eliciting Stakeholder Needs • • • • • • • • • • • • What Document study Observation Work Sampling Interviews Questionnaires Prototyping Join Requirement Planning Brainstorming & Idea Reduction Use Cases Role Playing Business Modeling Reviewing Customer Requirement Specifications Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 97 Business Modeling Why • Modeling, understanding, and improving a business. • A business model provides a static view of the structure of the organization and a dynamic view of the processes within the organization. • We need to model the business to localize problems or identify opportunities for improvements. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 98 Why Business Modeling? Why • To understand current problems in the target organization and identify improvement potentials. • To assess the impact of organizational change. • To ensure that customers, end users, developers, and other parties have a common understanding of the organization. • To derive the software system requirements needed to support the target organization. • To understand how a to-be-deployed software system fits into the organization. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 99 Business Modeling Discipline • Assess the current organization and develop a vision of the new organization. • Defines the processes, roles, and responsibilities of that organization Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 100 Business Modeling Artifacts in RUP • The RUP provides a process for business modeling. • The Unified Modeling Language (UML) can be effectively applied to modeling both software and a business. • Business Modeling Artifacts: – Business use-case model – Business-analysis model. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 101 Business Modeling Scenarios • Organization Chart: Building a simple map of the organization and its processes to get a better understanding of what the requirements are on the application. • Domain Modeling • One Business Many Systems • Generic Business Model • Generic Business Model • Revamp Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 102 Business Modeling Workflow in RUP Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 103 Business Models Provide Input to Systems What • What should business models show? – Business Processes – Organizational structure – Roles and responsibilities Products Deliveries Events Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 104 Techniques for Eliciting Stakeholder Needs • • • • • • • • • • • • What Document study Observation Work Sampling Interviews Questionnaires Prototyping Join Requirement Planning Brainstorming & Idea Reduction Use Cases Role Playing Business Modeling Reviewing Customer Requirement Specifications Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 105 Reviewing Customer Requirement Specs How • How to identify requirements – In general, ignore: • • • • Introductions General system descriptions Glossary of terms Other explanatory information – Find application behaviors or behavioral attributes and select and label uniquely – Keep a list of all identified issues and assumptions -verify with the customer or user • If you don’t know if something is a requirement, ask the customer! Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 106 Exercise • Which techniques should be used for which Applications? Why and Why not? Technique Application Observation Interview Prototyping … Web Based App. New Systems Extension for current applications …. Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 107 Eliciting Needs: Which Tools to Use? What Requirements Workshop Customer/User Experience Hi “Catch Up” “Mature” Brainstorming Use Cases “Fuzzy problem” “Selling/Teaching” Interviews Questionnaires Role Playing Low Low Developer Experience Hi Which of these tools might you use for each quadrant of the graph? Business Modeling Requirement Reviews Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory Adapted from Alan Davis 108 A Fact-Finding Strategy What 1. Learn all you can from existing documents, forms, reports, and files 2. If appropriate, observe the system in action 3. Given all the facts that you've already collected, design and distribute questionnaires to clear up things you don't fully understand 4. Conduct your interviews (or group work sessions) 5. (Optional). Build discovery prototypes for any functional requirements that are not understood or if requirements need to be validated 6. Follow up Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory 109