GATHERING DATA Supplementary Note. What are requirements? A requirement is a statement about an intended product that specifies what it should do or how.

Slides:



Advertisements
Similar presentations
Data Gathering Purpose: –To collect sufficient, relevant and appropriate data to develop a set of stable requirements Data: –Tasks performed –Goals –Context.
Advertisements

Ch.6: Requirements Gathering, Storyboarding and Prototyping
9/10/2004Use Case Workshop 1 CSC480 Software Engineering Workshop 1 Requirements Modeling.
CS305: HCI in SW Development Evaluation (Return to…)
Information System Engineering
Chapter 6 Review Questions
Requirements Engineering, Daniela DamianGILD project -- Feb 5, 2003 GILD and requirements management Daniela Damian University of Victoria.
CAP 252 Lecture Topic: Requirement Analysis Class Exercise: Use Cases.
Identifying Needs and Establishing Requirements John Thiesfeld Jeff Morton Josh Edwards.
WEEK 4 Material Lecture 4a (Wed.). Use Cases/Actors o What is a use case ? l A sequence of actions performed by a system that yields an observable result.
Documenting Requirements using Use Case Diagrams
Identifying needs and establishing requirements Task Descriptions.
© Pearson Education Limited, Chapter 6 Fact-finding Transparencies.
Identifying needs and establishing requirements. Overview The importance of requirements Different types of requirements Data gathering Task descriptions:Scenarios.
Requirements Gathering : Determining the scope of the system 1. Elicitiation – fact finding 2. Specification 3. Validation.
Identifying Needs and Establishing Requirements
CS3205: Identifying needs and establishing requirements
Use Cases Why use ‘em? How do they work? UC diagrams Using them later in the software development cycle.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
Chapter 8: Systems analysis and design
1www.id-book.com Identifying needs and establishing requirements Chapter 10.
Advanced Topics in Requirement Engineering. Requirements Elicitation Elicit means to gather, acquire, extract, and obtain, etc. Requirements elicitation.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Business Analysis and Essential Competencies
Chapter 5: Requirement Engineering Process Omar Meqdadi SE 2730 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 10 Identifying needs and establishing requirements.
Identifying needs and establishing requirements CS365 – HCI - Week 3.
Requirements Engineering Requirements Elicitation Process Lecture-8.
Chapter 4 – Requirements Engineering Lecture 3 1Chapter 4 Requirements engineering.
Human Computer Interaction
Slide 10A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Chapter 7 Identifying Needs and Establishing Requirements By: Wang, Miao Fan, Xiaona.
CS305: Fall 2008 Identifying needs and establishing requirements Readings: 1) Chapter 10 of the ID-Book textbook 2) Chapter 2 from Task-Centered User Interface.
1 CMPT 275 Software Engineering Requirements Gathering Activity Janice Regan,
Lecture 7: Requirements Engineering
Black Box Testing Techniques Chapter 7. Black Box Testing Techniques Prepared by: Kris C. Calpotura, CoE, MSME, MIT  Introduction Introduction  Equivalence.
1 Object-Oriented Modeling Using UML CS 3331 Section 2.4 Modeling Requirements with Use Cases.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Engineering Lab Use Cases Faculty of Information system Technology.
Requirements Collection By Dr. Gabriel. Requirements A requirement is any function, constraint, or property that the system must provide, meet, or satisfy.
1 Lecture 5: (Ref. Chapter 7) Identifying Needs and Establishing Requirements.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Requirement engineering Good Practices for Requirements Engineering
Identifying Needs and Establishing Requirements Sonal Kulkarni Veeresh Kinagi Abilash Kittanna Jamare Lane Chapter 7.
CT1404 Lecture 2 Requirement Engineering 1 1. Today's Lecture Definition of a Software Requirement Definition of Software Requirements Management Characteristics.
Systems Development Life Cycle
Identifying needs and establishing requirements Data gathering for requirements.
2/6/03C-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Requirements and Use Cases.
Scenario A scenario is a sequence of steps describing an interaction between a user and a system. Use case is a set of scenarios tied together by a common.
©2011 1www.id-book.com The process of interaction design Chapter 9.
Identifying Needs and Establishing Requirements Presenters: Veronica Gasca Jennifer Rhough.
Task Analysis Lecture # 8 Gabriel Spitz 1. Key Points  Task Analysis is a critical element of UI Design  It describes what is a user doing or will.
Usability Testing Instructions. Why is usability testing important? In a perfect world, we would always user test instructions before we set them loose.
Task Analysis Lecture # 8 Gabriel Spitz 1. Key Points  Task Analysis is a critical element of UI Design  It specifies what functions the user will need.
Lecture 4/2/16. Learning Objective Establishing requirements Define requirements Requirements discovery vs requirements gathering Classifying Requirements.
AVI/Psych 358/IE 340: Human Factors Data Gathering October 1, 2008.
 Problem solving involves a number of well- defined steps, which are as follows:  Define the problem.  Analyze the problem.  Identify and evaluate.
2 The importance of requirements Different types of requirements Data gathering for requirements Task descriptions:Scenarios Use Cases Essential use cases.
5. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the activities of the requirements discipline  Describe the difference.
Identifying Needs and Establishing Requirements Kelly Kim Haimin Lee.
Pepper modifying Sommerville's Book slides
CMPE 280 Web UI Design and Development August 29 Class Meeting
Recall The Team Skills Analyzing the Problem (with 5 steps)
Systems Analysis and Design
CAPE INFORMATION TECHNOLOGY
Use Case Modeling.
CAPE INFORMATION TECHNOLOGY
Test Design Techniques Software Testing: IN3240 / IN4240
Presentation transcript:

GATHERING DATA Supplementary Note

What are requirements? A requirement is a statement about an intended product that specifies what it should do or how it should perform. One of the aims of the requirements activity is to make the requirements as specific, unambiguous, and clear as possible. For example, a requirement for a website might be that the time to download any complete page is less than 5 seconds.

Different kinds of requirements In software engineering, two different kinds of requirements have traditionally been identified: functional requirements, which say what the system should do, and non-functional requirements, which say what constraints there are on the system and its development. For example, a functional requirement for a word processor may be that it should support a variety of formatting styles. A non-functional requirement for a word processor might be that it must be able to run on a variety of platforms such as PCs, Macs and Unix machines.

Different kinds of requirements Functional requirements capture what the product should do. Data requirements capture the type, volatility, size/amount, persistence, accuracy, and value of the amounts of the required data. Environmental requirements or context of use refer to the circumstances in which the interactive product will be expected to operate. Four aspects of the environment must be considered when establishing requirements. Physical environment. Social environment. Organizational environment. Technical environment.

Different kinds of requirements User requirements capture the characteristics of the intended user group. Usability requirements capture the usability goals and associated measures for a particular product.

Scenario 1 Consider a system being designed for use in a university's self-service cafeteria that allows users to pay for their food using a credit system. Suggest one key functional, data, environmental, user and usability requirement for each this scenario.

Scenario 1 Answer Functional: The system will calculate the total cost of purchases. Data: The system must have access to the price of products in the cafeteria. Environmental: Cafeteria users will be carrying a tray and will most likely be in a reasonable rush. The physical environment will be noisy and busy, and users may be talking with friends and colleagues while using the system. User: The majority of users are likely to be under 25 and comfortable dealing with technology. Usability: The system needs to be simple so that new users can use the system immediately, and memorable for more frequent users. Users won't want to wait around for the system to finish processing, so it needs to be efficient and to be able to deal easily with user errors.

Other Scenario to try out Consider a system to control the functioning of a nuclear power plant. Consider a system to support distributed design teams, e.g., for car design. Suggest one key functional, data, environmental, user and usability requirement for each this scenarios:

DATA GATHERING The purpose of data gathering is to collect sufficient, relevant, and appropriate data so that a set of stable requirements can be produced. There is essentially a small number of basic techniques for data gathering, but they are flexible and can be combined and extended in many ways; These techniques are questionnaires, interviews, focus groups and workshops, naturalistic observation, and studying documentation.

DATA GATHERING TECHNIQUES Questionnaires: They are a series of questions designed to elicit specific information from user. Interviews: Interviews involve asking someone a set of questions. Often interviews are face-to-face, but they don't have to be. Focus groups and workshops: In the requirements activity, focus groups and workshops are good at gaining a consensus view and/or highlighting areas of conflict and disagreement. Naturalistic observation: Observation involves spending some time with the stakeholders as they go about their day-to-day tasks, observing work as it happens, in its natural setting. Studying documentation. Procedures and rules are often written down in manuals and these are a good source of data about the steps involved in an activity and any regulations governing a task.

Table 1: Overview of data- gathering techniques used in the requirements activity

Scenario 1: Data gathering techniques For the situations below, consider what kinds of data gathering would be appropriate and how you might use the different techniques introduced above. Assume that you are at the beginning of the development and that you have sufficient time and resources to use any of the techniques. You are developing a new software system to support a small accountant's office. There is a system running already with which the users are reasonably happy, but it is outdated and needs upgrading.

Scenario 1: Answer As this is a small office, there are likely to be few stakeholders. Some period of observation is always important to understand the context of the new and the old system. Interviewing the staff rather than giving them questionnaires is likely to be appropriate because there aren't very many of them, and this will yield richer data and give the developers a chance to meet the users. Accountancy is regulated by a variety of laws and it would also pay to look at documentation to understand some of the constraints from this direction. So we would suggest a series of interviews with the main users to understand the positive and negative features of the existing system, a short observation session to understand the context of the system, and a study of documentation surrounding the regulations.

Other Scenario to try out You are looking to develop an innovative device for diabetes sufferers to help them record and monitor their blood sugar levels. There are some products already on the market, but they tend to be large and unwieldy. Many diabetes sufferers rely on manual recording and monitoring methods involving a ritual with a needle, some chemicals, and a written scale. You are developing a website for a young person's fashion e- commerce site.

Task Description Descriptions of business tasks have been used within software development for many years. There are different flavors of task descriptions, and we shall introduce three of them here: scenarios, use cases, and essential use cases. Each of these may be used to describe either existing tasks or envisioned tasks with a new device. They are not mutually exclusive and are often used in combination to capture different perspectives or to document different stages during the development lifecycle.

Task Description Scenario: A scenario is an "informal narrative description". It describes human activities or tasks in a story that allows exploration and discussion of contexts, needs, and requirements. It does not explicitly describe the use of software or other technological support to achieve a task. Use cases: Use cases focus on user goals, but the emphasis here is on a user-system interaction rather than the user's task itself. Although their focus is specifically on the interaction between the user (called an "actor'') and a software system, the stress is still very much on the user's perspective, not the system's. A use case is associated with an actor, and it is the actor's goal in using the system that the use case wants to capture.

Use Case contd… To develop a use case, first identify the actors, i.e., the people or other systems that will be interacting with the system under development. Then examine these actors and identify their goal or goals in using the system. Each of these will be a use case. Figure 2: Use case diagram for the library catalog service

Practice example on Use case Consider the example of the library catalog service again. One use case is "Locate book,“. Write out the use case for "Locate book" including the normal and some alternative courses. You may assume that the normal course is for users to go to the catalog to find the location, and that the most common path to find this is through a search by author.

Solution The use case for "Locate book" might be something like this: 1.The system prompts for user name and password. 2.The user enters his or her user name and password into the catalog system. 3.The system verifies the user's password. 4.The system displays a menu of choices. 5.The user chooses the search option. Alternative courses: 4. If user password is not valid 4.1 The system displays error message. 4.2 The system returns to step 1.