Evaluating Requirements

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

SWEN 5130 Requirements EngineeringSlide 1 Software Prototyping u Animating and demonstrating system requirements.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Evaluating Requirements. Outline Brief Review Stakeholder Review Requirements Analysis Summary Activity 1.
Chapter 5 Understanding Requirements
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Software Testing and Quality Assurance
Evaluating Requirements
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Requirements Analysis Concepts & Principles
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
SE 555 Software Requirements & Specification Requirements Validation.
Overview of Software Requirements
Evaluating Requirements
Analysis Concepts and Principle.
Rose-Hulman Institute of Technology Sriram Mohan 18.September.2008 CSSE 497 Requirements Review.
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
1 SWE Introduction to Software Engineering Lecture 11 - Requirements Engineering Processes.
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
1 College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 2 Chapter 6 & 7 System.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 7 Requirements Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Chapter 4 Requirements Engineering
Understanding Requirements. Requirements Engineering
S/W Project Management
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
Advanced Topics in Requirement Engineering. Requirements Elicitation Elicit means to gather, acquire, extract, and obtain, etc. Requirements elicitation.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
©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.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
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.
Requirements Artifacts Precursor to A & D. Objectives: Requirements Overview  Understand the basic Requirements concepts and how they affect Analysis.
Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com.
CPSC 372 John D. McGregor Module 2 Session 1 More on requirements and the Investment Decision.
Lecture 7: Requirements Engineering
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
Requirements Validation CSCI 5801: Software Engineering.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 7: Requirements Engineering Software Engineering: A Practitioner’s Approach, 6/e.
1 Chapter 5 Lecture 5: Understanding Requirements Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CS 5150 Software Engineering Lecture 7 Requirements 1.
By Germaine Cheung Hong Kong Computer Institute
Requirements Validation
1 Chapter 8 Building the Analysis Model (1) Analysis Concepts and Principles.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Requirements / Specifications. 01/18/10CS-499G2 Requirements Determine what the customer needs (wants) the software to do  What are requirements?  An.
Smart Home Technologies
Evaluating Requirements
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirement Engineering
Requirements Analysis
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
CS223: Software Engineering Lecture 8: Requirement Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Engineering Lecture 10: System 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,
Requirements Validation – II
Evaluating Requirements
Requirements Elicitation and Elaboration
Software Requirements analysis & specifications
UNIT II.
Chapter 5 Understanding Requirements
Chapter 5 Understanding Requirements
Chapter 5 Understanding Requirements.
Presentation transcript:

Evaluating Requirements

To improve the world – Designing software badly can harm the world To meet customers’ needs – Designing software badly can harm customers To get a paycheck – Designing software badly can get you fired To have some fun – Designing software badly just plain feels bad Why bother to do a good job when designing software?

Strengths of each requirements evaluation technique TechniqueEspecially good forWeaknesses Paper prototyping-Evaluating visual requirements -Often misses interactions between use cases Low-fidelity prototyping-Evaluating visual requirements -A little expensive -Need design skills Stakeholder review-Evaluating fit to context -Costs customer time Manual analysis-Checking for consistency -Easy to miss errors Formal analysis-Can guarantee formally specifiable properties -Expensive -Need formal skills Validation: Is your goal correct? Verification: Is your solution correct?

They probably know much more about the problem than you do. They probably have some ideas about how to solve the problem. They are your best resource for discovering your own mistakes before you start to code. Customers and users should be your friends

Abstraction Modularity: dividing into components. Information hiding Functional dependency Refinement Refactoring We will have another design gallery next week after making changes : including these factors. Fundamental design concepts that you need to keep in mind

Complete and sufficient Primitiveness: one service per class (one way of accomplishing the service not many ways) High cohesion: a cohesive design has a small focused set of responsibilities and single mindedly applies attributes and methods to implement those responsibilities. Low coupling: design classes within a subsystem should have only limited knowledge of other classes. Object oriented design concepts

Prototyping – Depict a design based on requirements, test if people can use it Stakeholder review – Present diagrams to customer & engineers, get feedback Analysis – Manually or automatically check properties of your requirements and design Approaches for evaluating requirements

Who are Stakeholders? Customers Users Domain experts Marketing specialists Lawyers or auditors Software engineers

1.Sit down with stakeholders 2.Engineers present their understanding of requirements 3.Stakeholders correct this understanding 4.Everybody discusses/argues/negotiates 5.Engineers revise requirements Repeat, if necessary. Stakeholder review

Make sure that all of the “right” people attend – In advance, ask stakeholders if they know of other people who need to attend – Consciously consider having user representatives attend the meeting But try to keep the attendee list <= 8 people – So that everybody at the meeting can be heard – So that you don’t waste $$$$  People should attend if and only if their attendance would be valuable. 1. Sit down with stakeholders

The situation of the customers / users Key problems faced by customers / users Key use cases to be supported by system – Often helpful to present diagrams from the requirements definition Visualizations of possible system interface – Often helpful to present low-fidelity prototypes Make it clear that you welcome feedback. 2. Engineers present their understanding of the requirements

Your customer / users / other stakeholders will probably interrupt the designers If your stakeholder says something that you don’t understand, try to get him/her to explain in terms of a concrete scenario. – More details later It’s often helpful have a note-taker responsible for recording customer feedback. 3. Stakeholders correct this understanding

Focus on concrete scenarios – A specific example of how a particular person would use the system in a certain real-world situation – An instance of a use case – Scenarios will support system testing later. Discussion is how you make sure that your requirements are correct, unambiguous, and testable. 4. Everybody discusses requirements

Focus on risk management – What scenarios might be hard to support? – What scenarios are impossible to support? – What requirements contradict one another? Arguing is particularly necessary when requirements contradict one another. 4. Everybody argues about requirements

Focus on prioritization, rather than eliminating support for scenarios – I only have so much time; what should I do first? – That way, reqs can be complete yet affordable. Watch for opportunities to use incremental or iterative development processes – Incremental: is there a part that we can build really well right now, then add more parts later? – Iterative: can we do a low-quality version of the entire system, then improve it later? 4. Everybody negotiates about requirements

Update the requirements definition and specification based on the review’s results. Every single requirement should have been reviewed with stakeholders at least once. – Keep track of what scenarios and comments came from stakeholders for each requirement – Helps to ensure relevance and traceability 5. Engineers revise requirements.

1.Sit down with stakeholders 2.Engineers present their understanding of requirements – The situation of the customers / users – Key problems faced by customers / users – Key use cases to be supported by system -> – Visualizations of possible system interface -> 3.Stakeholders correct this understanding 4.Everybody discusses/argues/negotiates 5.Engineers revise requirements Stakeholder review

Actor: Homeowner or business worker Precondition: Monitors have been sending information to website for a while Postcondition: User can see energy usage as well as tips for reducing usage Flow of events: – User logs into website – Website shows configurable charts showing usage – Website offers tips based on energy consumption, outlet info and external data (e.g. other user data) UC#1: Review online data

Possible user interface for reviewing online

Prototyping – Depict a design based on requirements, test if people can use it Stakeholder review – Present diagrams to customer & engineers, get feedback Analysis – Manually or automatically check properties of your requirements and design Approaches for evaluating requirements

1.Sit down with stakeholders 2.Engineers present their understanding of requirements 3.Stakeholders correct this understanding 4.Everybody discusses/argues/negotiates – Explain using scenarios – Identify risks – Use incremental or iterative development? 5.Engineers revise requirements Stakeholder review

Systematically check consistency between requirements definition and specification – If you “execute” or “simulate” the use cases, would the system suffice? – If the definition says that the system has feature X, does the specification indicate how to support X? Manual analysis

1.Define two formal models – Describing the requirement definition – Describing the requirement specification 2.Automatically check if the specification satisfies the definition Details on formal analysis

Good requirements are… Correct: They have to say the right things. Consistent : They can’t contradict each other. Unambiguous: Each must have 1 interpretation. Complete: They cover all the important stuff. Relevant: Each must meet a customer need. Testable: There must be a way to tell if they are satisfied. Traceable: There must be a way to determine their origin.

Get together in your project groups Do your set of functional requirements satisfy these, how and why? You could also include this as part of your report. In-class activity sheet 10min

Good requirements are… Correct: They have to say the right things. Consistent : They can’t contradict each other. Unambiguous: Each must have 1 interpretation. Complete: They cover all the important stuff. Relevant: Each must meet a customer need. Testable: There must be a way to tell if they are satisfied. Traceable: There must be a way to determine their origin.

Is each requirement consistent with the overall objective? Do some requirements provide a level of technical detail that is inappropriate at this stage? Is the requirement really necessary or does it represent an add-on feature that may not be essential to the objective of the system? Is each requirement bounded and unambiguous? Validating requirements 10min

Do any requirements conflict with other requirements? Is each requirement testable once implemented? Does the requirement model properly reflect the information function and behavior of the system to be built? Have ALL the requirements been validated with customer requirements? Validating requirements 10min

Prototyping – Depict a design based on requirements, test if people can use it Stakeholder review – Present diagrams to customer & engineers, get feedback Analysis – Manually or automatically check properties of your requirements and design Approaches for evaluating requirements

One of you play the role of lead system designer. 1 person is a note taker 1 or 2 customer(s) : based on the feedback you can choose. Based on the prototypes that you all had seen and the critiques/appreciation received prioritize them and discuss about what decision need to be taken. Example: Prototyping a system stakeholder review 15min

Prototyping with the customer: one day Tomorrow/Thursday? Prototyping with customer

– Validating requirements definition: do you thoroughly understand the customer’s problem? – Verifying requirements specification: have you thoroughly checked that your solution will solve the problem? Prototyping with customer