Requirements Validation CSCI 5801: Software Engineering.

Slides:



Advertisements
Similar presentations
Design Validation CSCI 5801: Software Engineering.
Advertisements

Processes. Outline Definition of process Type of processes Improvement models Example Next steps… 1.
Evaluating Requirements. Outline Brief Review Stakeholder Review Requirements Analysis Summary Activity 1.
Evaluating Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
Introduction to Software Engineering Dr. Basem Alkazemi
Requirements Analysis CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology January 7, 2003.
Introduction to Software Engineering
CSC 402 Requirements Engineering 1. 2 Problem Definition Requirements Definition informal statement of need for system natural language statement of what.
Evaluating Requirements
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Individuals and interactions
Prototyping. CS351 - Software Engineering (AY2004)2 Scenario Customer: “We would like the word processor to check the spelling of what is typed in. We.
SE 555 Software Requirements & Specification Requirements Validation.
Evaluating Requirements
1 Software Requirements Specification Lecture 14.
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
SE 555 Software Requirements & Specification 1 SE 555 Software Requirements & Specification Prototyping.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
The Software Development Life Cycle: An Overview
Requirements Engineering
S/W Project Management
RUP Requirements RUP Artifacts and Deliverables
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
Requirements Analysis
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Requirements 101 CS3300 Fall 2015.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Process Design (Requirements). Recall the Four Steps of Problem Solving * Orient Plan Execute Test These apply to any kind of problem, not just spreadsheet.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Requirements Engineering Requirements Elicitation Process Lecture-8.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
Some Sub-Activities within Requirements Engineering 1.Prototyping 2.Requirements Documentation 3.Requirements Validation 4.Requirements Measurements 5.Requirements.
Requirements Engineering Requirements Elicitation Process Lecture-9.
1 CMPT 275 Software Engineering Requirements Gathering Activity Janice Regan,
Requirements Documentation CSCI 5801: Software Engineering.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Lecture 7: Requirements Engineering
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 The Analysis Phase System Requirements Models and Modelling of requirements Stakeholders as a source of requirements.
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
CS 5150 Software Engineering Lecture 7 Requirements 1.
Requirements Validation
Requirements / Specifications. 01/18/10CS-499G2 Requirements Determine what the customer needs (wants) the software to do  What are requirements?  An.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Evaluating Requirements
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirements Analysis
Chapter 13 Finalizing Design Specifications
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Requirements Elicitation CSCI 5801: Software Engineering.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
 System Requirement Specification and System Planning.
CMPE 280 Web UI Design and Development August 29 Class Meeting
Requirements Elicitation and Elaboration
Software development life cycle models
Requirements Analysis
MANAGING THE DEVELOPMENT AND PURCHASE OF INFORMATION SYSTEMS
Chapter 1: Creating a Program.
Presentation transcript:

Requirements Validation CSCI 5801: Software Engineering

Requirements Validation

Properties Requirements Must Have Correct: Must be what customer actually wants Complete: Must cover all customer needs Unambiguous: Must have one interpretation between customers and developers Testable: Must be a way to tell if they are met Consistent : One requirement cannot conflict with another Traceable: Must have been specified by a stakeholder Realistic: Must be achievable given resources

Consistency Common problem when group creates a RSD – Conflicting non-functional requirements Total response time < time for each scenario in sequence – Inherent conflicts between different stakeholders Requires negotiation to resolve, but must detect problem! – Conflicts between requirements documentation and requirements specification – Assumptions about what happened/should happen in other scenarios Key: Each developer must review entire RSD

Consistency Example: – Login scenario: Student provides ID, password – Add scenario: Student chooses course, name added to course roster – Advisement scenario: Advisor approves courses, courses moved from student list to course roster

Consistency Example: – Login scenario: Student provides ID, password – Add scenario: Student chooses course, name added to course roster – Advisement scenario: Advisor approves courses, courses added to course roster Where did this information come from? Are we assuming it comes from Login? Can we look up names from IDs? So is advisement required or not? If not for all, for who? If required, where are courses stored before course roster?

Traceability Each feature must originate with some stakeholder – Should record this information in case need to clarify/negotiate that requirement later Non-required features costly – Developers: Writing code nobody will use – Customers: Paying for/supporting features they did not ask for – Users: Taking unnecessary steps to perform tasks

Realism Impossible requirements – Usually involve 0, 100%, very small numbers in non- functional requirements No user errors, 100% reliability, Response < secs… Infeasible requirements – Cannot be accomplished given time/resource constraints Detect with scheduling tools Handle with negotiation

Walkthroughs Developers meet to evaluate RSD – Each “represents” scenarios they have contributed Ideally, all will have already read the entire document – For each feature in requirements documentation/ customer interviews: Is there a set of corresponding scenarios that would accomplish it? (Completeness)

Walkthroughs For each scenario: – Author describes to others, who evaluate it Do all developers understand it? Are there any exceptions that have not been considered? Does it contradict with any other scenarios (particularly ones they have developed)? Can it be accomplished based on information from previous scenarios (created by others)? Does it conflict with global non-functional requirements? Is it testable? Is it realistic?

Prototyping

Depict how you think the system should work – What it should do, step by step – How it should appear to user Test prototypes with customers or users – Best case: large cross-section of users Correct the prototypes and use what you learn to implement the actual system

Prototypes Goal: Produce quickly Simplify as much as possible – UI prototypes (to show users): Create on paper Create with simple tools (Photoshop, PowerPoint, html) – Functional prototypes (i.e., actually runs): Focus on one or two key scenarios Don’t worry about good design Don’t worry about non-functional requirements (speed, reliability, etc.)

Throwaway vs. Evolutionary Evolutionary prototype: – Build final system based on successful prototype components – Disadvantage: Bad design decisions made to speed up prototype production become part of final system Throwaway prototype: – Do not use in final system – Disadvantage: Customer may think final system is just about ready!

User Interface Prototypes Set of screens user will see during task Sketch on paper and/or use simple tools – Don’t worry about colors, exact positions of elements, etc. (doesn’t need to be beautiful!) – Does need to show all important UI elements – Does need to be understandable by users

Example Prototype

Prototype Evaluation Give user task to accomplish – “Register for a day section of CSCI 5801” You play part of computer – Let user tell you what buttons they are pressing, what they are typing in, etc. Goal: The user interface should speak for itself – Do not talk to user – see if they can do it themselves

Prototype Evaluation Encourage user to express concerns – Is a screen confusing? “I don’t know which button to press next” – Would additional information help? “It would be nice if I could see the name of the course along with the number” – Would the user like additional options? “It would be nice if I could exit from any screen” With paper prototypes, can fix on spot!

Prototype Evaluation Evaluate based on functional requirements – Are the steps demonstrated for use case correct? – Are they complete? Additional ideas for functional prototypes – Record session Screen capture tools (i.e. Camtasia) useful – Evaluate based on usability criteria Number of mistakes made Amount of time required

Stakeholder Reviews Meet with stakeholders to allow them to evaluate requirements – Only way to insure RSD correct, complete, and unambiguous Key: Expect and encourage criticism – Customers know more about domain than you – They probably have good ideas about how to solve problems – They are your best resource for “debugging” the requirements

Stakeholder Reviews Sit down with stakeholders Developers present their understanding of requirements Stakeholders correct this understanding Discussion and negotiation of disagreed upon requirements Developers revise requirements

Stakeholder Reviews Sit down with stakeholders: – Find representative set of stakeholders But only if their input would be valuable – Ideally, include some users of system – Limit size if possible (no more than 6 to 8) May turn into mob/be too hard to schedule otherwise But make sure that in long run, all requirements are reviewed by all stakeholders

Stakeholder Reviews Present your version of requirements – Describe each use case/scenario – What is its role in system? What problem does it solve? Keep presentation understandable – “user story” form instead of formal scenario – Simple use case/sequence diagrams – Simple prototypes of what user screens would look like throughout process

Stakeholder Reviews Get feedback from stakeholders – Expect to be interrupted during presentation – If not, ask them questions: Do you understand this scenario? Is this what you were thinking of? Are there any cases/situations we haven’t thought of? – Get them to express their corrections in terms of specific scenarios Best way to clarify their thoughts and your understanding – Be sure to keep a record of what they say

Requirement Negotiation User may have unreal expectations for system Talk through the requirement with the client. Why is it wanted? Is there an alternative that is equivalent? Explain the reasoning behind your concern. Explain the technical, organizational, and cost implications Be open to suggestions. Is there a gap in your understanding? Perhaps a second opinion might suggest other approaches

Requirement Negotiation Focus on prioritization rather than eliminating scenarios – We only have so much time; what should be done first? – Identify must haves, should haves, could haves, won’t haves – Avoid “feature creep” – adding requirements outside scope of original project

Requirement Negotiation Look for opportunities to use incremental or iterative development processes – Incremental: Is there a part of this system we can build really well right now, then add more parts later? – Iterative: Can we build a low-quality version of the entire system, then improve it later?

Requirement Negotiation Stakeholders may have conflicting goals – Students: Register for needed classes – Registrar: Make sure prerequisites met Important stakeholders may not be easily identifiable (not main users) – Bursar’s office: Collect tuition as soon as possible – Administration: Allow fast registration so know which courses to cancel

Requirement Negotiation Attempt to negotiate compromise acceptable to all – Complex politics may be involved – May require help from supervisor