Requirements Elicitation CSCI 5801: Software Engineering.

Slides:



Advertisements
Similar presentations
Senior Capstone Design Project Learning. What is Project Learning? What is…? How to Make…?
Advertisements

HCI SEMESTER PROJECT PROJECTS  Project #2 (due 2/20)  Find an interface that can be improved  Interview potential clients  Identify an HCI concept.
Online Registration at Stephen F. Austin State University.
Introduction to Software Engineering Dr. Basem Alkazemi
1 Information Gathering (Requirements Elicitation) Remember: distinguish “requirements” from “design” (big issue here?) Requirements are about “black box”
Introduction to Software Engineering
SwE 313 Case Study Registration System.
Gathering Information and Use Case Scenarios
Part 2: Requirements Days 7, 9, 11, 13 Chapter 2: How to Gather Requirements: Some Techniques to Use Chapter 3: Finding Out about the Users and the Domain.
Requirements Gathering : Determining the scope of the system 1. Elicitiation – fact finding 2. Specification 3. Validation.
UML exam advice. Minimal, yet sufficient UML course 80% of modeling can be done with 20% of the UML. Which 20% was that again? We’re supposed to be “Use.
1. Print the Degree Audit 2. Use the Wizard to Add Courses 3. Use Catalog Search and Add 4. Re-print the Degree Audit 5. Contact your Advisor 6. Register.
BSC Food Distribution 8181 NW 36 Street, Suite 14-D Doral, FL Phone: Fax:
RHIT REGISTRATION SYSTEM Overview and Initial Thoughts From your clients for : David Mutchler, RHIT CSSE Dept F-226,
Software Engineering 2003 Jyrki Nummenmaa 1 USE CASES In this lecture: Use cases - What are use cases? - Why to use use cases? - How to write.
Chapter 4 Requirements Engineering
Use Cases Why use ‘em? How do they work? UC diagrams Using them later in the software development cycle.
Requirements Engineering
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa USE CASES In this lecture: Use cases - What are use.
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.
Software engineering lec4 Requirements. Developing requirements Start thinking about particular problem Understand the problem  Domain analysis Gather.
Chapter 5: Requirement Engineering Process Omar Meqdadi SE 2730 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
FOR FACULTY Office of the Registrar Waitlisting Tutorial.
Chapter 4 – Requirements Engineering Lecture 3 1Chapter 4 Requirements engineering.
Interviewing 1. Goals of Interviewing  Make sure that the biases and predispositions of the interviewer do not interfere with a free exchange of information.
Successfully recording Continuing Professional Development.
1 CMPT 275 Software Engineering Requirements Gathering Activity Janice Regan,
Requirements Documentation CSCI 5801: Software Engineering.
©2001 Southern Illinois University, Edwardsville All rights reserved. Today Interview Techniques (Hand-in partner preferences) Thursday In-class Interviewing.
1 ISE 412 Usability Testing Purpose of usability testing:  evaluate users’ experience with the interface  identify specific problems in the interface.
Requirements Reference: Chapters 5, 6, & 8. CMSC 345, Fall Objectives To introduce the concepts of user and system requirements To explain functional.
Requirements Validation CSCI 5801: Software Engineering.
Requirement Elicitation Process Lesson 3. Requirements Elicitation  Is the process to find out the requirements for an intended software system by communicating.
Ways of Collecting Information Interviews Questionnaires Ethnography Books and leaflets in the organization Joint Application Design Prototyping.
User Interface Design & Usability for the Web Card Sorting You should now have a basic idea as to content requirements, functional requirements and user.
Use Cases Use Cases are employed to describe the functionality or behavior of a system. Each use case describes a different capability that the system.
Use Case Diagram The purpose is to communicate the system’s functionality and behaviour to the customer or end user. Mainly used for capturing user requirements.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Requirements Analysis Goal: understand users’ current activities well enough to reason about technology- based enhancements.
CS 5150 Software Engineering Lecture 7 Requirements 1.
Human Centric Computing (COMP106) Assignment 2 PROPOSAL 23.
Systems Development Life Cycle
Identifying needs and establishing requirements Data gathering for requirements.
Internet Advancement Ore-Ida Council Boy Scouts of America.
Introduction to Evaluation without Users. Where are you at with readings? Should have read –TCUID, Chapter 4 For Next Week –Two Papers on Heuristics from.
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.
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.
Today Discussion Follow-Up Interview Techniques Next time Interview Techniques: Examples Work Modeling CD Ch.s 5, 6, & 7 CS 321 Human-Computer Interaction.
Requirements Engineering Determining and Defining the Requirements for the Project.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
GATHERING DATA Supplementary Note. What are requirements? A requirement is a statement about an intended product that specifies what it should do or how.
Registration and Records Office Mike Loya Academic Services Building Room 107.
1 Requirements Elicitation – 2 Lecture # Requirements Engineering Process Requirements Elicitation Requirements Analysis and Negotiation Requirements.
Introduction to Usability Engineering
Pepper modifying Sommerville's Book slides
CMPE 280 Web UI Design and Development August 29 Class Meeting
User-centred system design process
SNS College of Engineering Coimbatore
EKT 421 SOFTWARE ENGINEERING
CS 790M Project preparation (I)
Introduction to Usability Engineering
Initial Presentation Group 4
SBD: Analyzing Requirements
Unit 6: Application Development
Reservations and Events
Requirement Engineer Terms and Conditions
Introduction to Usability Engineering
Presentation transcript:

Requirements Elicitation CSCI 5801: Software Engineering

Requirement Elicitation

Working with customers/users to determine requirements – Interviews – Observation – Other methods

Why Is This Difficult? Developers must create system in unfamiliar domain Clients Understand domain (or at least their own part) Not experts in software development ideas or terminology Developers Understand programming and software development Not experts in domain or in its users ???

Why Is This Difficult? Users not good at specifying processes – Assume implicit knowledge – Skip steps in process “Fred registers for 31302, which is Dr. Sullins’ graduate project course” – is the CRN, but have not told developer about difference between CRNs and course numbers – Fred must also specify number of hours for project courses, but client has forgotten to mention this

Customer Interviews Asking clients/users what system must do – Most imprecise method Wrong approach: “Describe in detail what system should do” Better approach: General to specific – Get general list of desired features – Get more detail about each – Ask questions to clarify as needed

Kickoff Meeting Initial meeting between customers/developers – Free-form discussion Main goals: – User gives basic features required for system – User can give background about problems/needs Developers can also make suggestions about features – User describes context in which system will operate Creating new system? Updating existing system? – Identify main stakeholders

Followup Meetings Much more structured meeting Developers look at previous interviews, determine unanswered questions Prepare specific questions for meeting – Can involve simple prototypes Customers provide specific answers which developers record – Can be done via if questions simple/clear enough

Often Cyclical Process Kickoff meeting Analysis and Validation Further questions Structured interview

Scenario Refinement Asking “what if” type questions about scenario “Fred wants to register for the MW 10:00 section of CSIS He logs onto BANNER and tries to add it, but is told that it is closed. BANNER provides a list of open sections, which include one at MW 2:00. Fred is ok with that time, so he registers for that section.” – What if no other sections open? – What if Fred does not like any other times? – What if time conflicts with other classes? – What if section closes before Fred finishes? – …

Task Analysis Decomposition of tasks into subtasks, gathering more detail about each Register for course Choose courseSelect sectionAdd section Find required courses Find courses offered this semester Choose section based on time Find open sections

Understanding Requirements Find out why customer gives requirements – Better understanding of system – Help customer find better alternatives possible “The system will need to be able to show a list of all courses for students to use.” “Why do they need it? What are they looking for in particular?” “They look for courses that meet requirements, at times that work for them.” “Could we provide a search mechanism also? One that lets them narrow this big list by requirements met or times offered?”

Understanding Requirements Customers may also only have vague understanding of requirements Elicitation can help them develop understanding! “Students have to log in with their name and password before adding classes” “What if two students have the same name?” “Good point. Let’s use their student ID instead.” “What if they forget their password?” “I’m not sure. Let me think about that...” “Who else should I talk to?”

Customer Interviews Basic guidelines: Allow plenty of time Prepare before you meet with the client Understand their viewpoint (type of stakeholder) Keep full notes for future reference If you do not understand, ask for clarification Small group meetings are often most effective

Ethnography Major problems with interviews: Interviewee may not explicitly state all steps in process to be incorporated in software What people say is not always what they do “Prerequisites must always be followed.” Prerequisites are overridden when appropriate.

Ethnography Alternative: observe users perform tasks – Will observe all steps – Will observe what actually happens Passive: Observe (and possibly record) task Active: Ask questions at each stage – Why did you do that? – What else could you have done?

Problems with Ethnography Only works when creating system to duplicate existing processes – Online registration process may not duplicate paper process May not observe all important parts of process – Some exceptions may occur infrequently Example: transfer students – Not all parts of process may be observable Can only observe how courses entered, not how chosen

Problems with Ethnography May not be convenient to observe process – Registration only happens 3 times a year Users may not like being observed Users may act differently when observed – More likely to “follow book”

Form Analysis Much redesign involves converting paper forms to computer/on line forms Use to understand crucial parts of process – What input are needed? – What reports are produced? Good basis for user interface design – Common usability requirement: keep system as familiar as possible to users.

Form Analysis What could you learn from this form?

Written Sources Instruction manuals, employee handbooks, etc. – Required sequence of steps – What must be done before each step – What to do if problems – Must make sure they are up to date and actually followed!