University of Toronto Department of Computer Science © 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution.

Slides:



Advertisements
Similar presentations
Verification and Validation
Advertisements

Discovering Computers Fundamentals, Third Edition CGS 1000 Introduction to Computers and Technology Fall 2006.
Conversation Form l One path through a use case that emphasizes interactions between an actor and the system l Can show optional and repeated actions l.
The Role of Software Engineering Brief overview of relationship of SE to managing DSD risks 1.
SWE Introduction to Software Engineering
© Betty HC Cheng. This presentation is available free for non-commercial use with attribution under a creative commons license. Acknowledge: S.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Software Engineering General Project Management Software Requirements
Prototyping. CS351 - Software Engineering (AY2004)2 Scenario Customer: “We would like the word processor to check the spelling of what is typed in. We.
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Formal Specification Thomas Alspaugh ICS Nov 7.
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
Verification and Validation
1CMSC 345, Version 4/04 Verification and Validation Reference: Software Engineering, Ian Sommerville, 6th edition, Chapter 19.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
University of Toronto Department of Computer Science CSC444 Lec04- 1 Lecture 4: Software Lifecycles The Software Process Waterfall model Rapid Prototyping.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering.
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Computer Science and Engineering Computer System Security CSE 5339/7339 Session 20 October 28, 2004.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Functional Modeling – Requirement Patterns (Problem Frames)
1 CS 426 Senior Projects Chapter 3: The Requirements Workflow [Arlow & Neustadt, 2005] January 31, 2012.
CSC 213 – Large Scale Programming. Today’s Goal  Improve design skills to make usable designs  Noun extraction & UML class diagram reviewed  Connections.
© Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 1 Lecture 2:Requirements.
Lecture 7: Requirements Engineering
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
ECE450 - Software Engineering II1. 2 ECE450 – Software Engineering II Today: Introduction to Requirements Engineering adapted from Steve Easterbrook’s.
1 Introduction to Software Engineering Lecture 1.
I Power Higher Computing Software Development The Software Development Process.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
Systems Analysis and Design in a Changing World, 6th Edition
K. Ingram (with thanks to A. Seddon) Staffordshire UNIVERSITY School of Computing Introduction to Software System Design.
E.g.: MS-DOS interface. DIR C: /W /A:D will list all the directories in the root directory of drive C in wide list format. Disadvantage is that commands.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Systems Development Life Cycle
1 Quality Attributes of Requirements Documents Lecture # 25.
Information Systems Analysis and Design Reviews of IS and Software Process Spring Semester
Concurrency Properties. Correctness In sequential programs, rerunning a program with the same input will always give the same result, so it makes sense.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Chapter 3: The Requirements Workflow [Arlow and Neustadt, 2005] CS 426 Senior Projects in Computer Science University of Nevada, Reno Department of Computer.
Introduction to Computer Programming using Fortran 77.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Requirements Analysis Requirements Engineering (CI 2323) Daniel Siahaan.
Chapter 24: Architecture Competence
Testing Tutorial 7.
CSC 480 Software Engineering
Chapter 18 Maintaining Information Systems
Lecture 17 ATAM Team Expertise
Verification and Validation
Software Engineering (CSI 321)
CS 790M Project preparation (I)
Chapter 3: The Requirements Workflow
Chapter 2 Database Environment.
Software Verification, Validation, and Acceptance Testing
Chapter 29: Program Security
Plan of the talk Basic Specification blocks
Foundations and Definitions
CS 426 CS 791z Topics on Software Engineering
CS 426 CS 791z Topics on Software Engineering
Presentation transcript:

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 1 Lecture 2: What are Requirements? Ü Two basic principles of requirements engineering:  Separate the problem from the solution  Problems and solutions intertwine with one another Ü Describing problems:  Application Domains vs. Machine Domains  Verification vs. Validation Ü Systems Engineering  Systems vs. software Ü Patterns and Types of Problem  Requirements patterns  Problem Frames

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 2 Separate the problem from the solution Problem Statement Implementation Statement System Correspondence Correctness Validation Verification Ü A separate problem description is useful:  Most obvious problem might not the right one to solve  Problem statement can be discussed with stakeholders  Problem statement can be used to evaluate design choices  Problem statement is a source of good test cases Ü Still need to check:  Solution correctly solves the stated problem  Problem statement corresponds to the needs of the stakeholders Problem Situation

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 3 Problem Situation But design changes the world… abstract model of world implementation statement problem statement change System

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 4 Intertwining of problems and solutions Implementation Dependence DependentIndependent General Detailed Level of Detail Implementation Statement Problem Statement Path of exploration

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 5 Some observations about RE Ü RE is not necessarily a sequential process:  Don’t have to write the problem statement before the solution statement  (Re-)writing a problem statement can be useful at any stage of development  RE activities continue throughout the development process Ü The problem statement will be imperfect  RE models are approximations of the world  will contain inaccuracies and inconsistencies  will omit some information.  analysis should reduce the risk that these will cause serious problems… Ü Perfecting a specification may not be cost-effective  Requirements analysis has a cost  For different projects, the cost-benefit balance will be different Ü Problem statement should never be treated as fixed  Change is inevitable, and therefore must be planned for  There should be a way of incorporating changes periodically

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 6 A problem to describe… Ü E.g. “prevent unauthorized access to CSG machines” encryption algorithmsstudents intruders password allocation process stickies with passwords on T-cards sysadmins signed forms passwords usernames typing at keyboard password files memory management cache contents secure sockets things the machine cannot observe things private to the machine shared things

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 7 Application Domain Machine Domain D - domain properties R - requirements C - computers P - programs What are requirements? Ü Domain Properties:  things in the application domain that are true whether or not we ever build the proposed system Ü Requirements:  things in the application domain that we wish to be made true by delivering the proposed system  Many of which will involve phenomena the machine has no access to Ü A Specification:  is a description of the behaviours that the program must have in order to meet the requirements  Can only be written in terms of shared phenomena!

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 8 Fitness for purpose? Ü Two correctness (verification) criteria:  The Program running on a particular Computer satisfies the Specification  The Specification, in the context of the given domain properties, satisfies the requirements Ü Two completeness (validation) criteria:  We discovered all the important requirements  We discovered all the relevant domain properties Ü Example:  Requirement R:  “Reverse thrust shall only be enabled when the aircraft is moving on the runway”  Domain Properties D:  Wheel pulses on if and only if wheels turning  Wheels turning if and only if moving on runway  Specification S:  Reverse thrust enabled if and only if wheel pulses on  Verification: S, D R

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 9 Another Example Ü Requirement R:  “The database shall only be accessible by authorized personnel” Ü Domain Properties D:  Authorized personnel have passwords  Passwords are never shared with non-authorized personnel Ü Specification S:  Access to the database shall only be granted after the user types an authorized password Ü S + D entail R  But what if the domain assumptions are wrong?

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 10 But we can also move the boundaries… Ü E.g. Elevator control system: people waiting people in the elevator people wanting to go to a particular floor Elevator motors Elevator call buttons Floor request buttons Current floor indicators Scheduling algorithm Safety rules Motor on/off Door open/close Control program button lights We can shift things around: E.g. Add some sensors to detect when people are waiting This changes the nature of the problem to be solved

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 11 Systems vs. Software Engineering input devices output devices software Monitored Variables environ- ment System input data items data items output Controlled Variables IN (Properties of the input device) SOFT (properties of the software) OUT (properties of the output device) REQ (the requirements - relationships between monitored and controlled variables that the system is required to establish or maintain) NAT (natural relationships between monitored and controlled variables that are part of the domain) environ- ment

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 12 Example Problem Frames Ü Required behaviour  Problem: build a machine to control part of the world in accordance with a fixed set of control rules  Likely Solution: an automated control system Ü Commanded Behaviour  Problem: build a machine that allows part of the world to be controlled by an operator by issuing commands  Likely Solution: a “human-in-the-loop” control system. Ü Information Display  Problem: provide information about the current state of part of the world, in response to information requests  Likely Solution: an information system. Controller Desired Behavior Controlled Domain Controller Desired Behavior Controlled Domain User Information Requests Real World Information system Information function Information Outputs

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 13 More problem frames Ü Simple workpieces frame  Problem: keep track of the edits performed on some workpiece, e.g a text file or a graphical object  Likely Solution: application software (e.g. a word processor) Ü Transformation frame  Problem: take input data in a certain format, and provide a transformation according to a certain set of rules  Example Solutions: data processing applications; compilers, etc. Ü Connection frame  Problem: maintain a correspondence between domains that are otherwise not connected  Example Solutions: data entry system, sensor network, etc. machine Operation properties workpiece Operation Requests machine Mapping Rules Output Data Input Data SystemReal World Connection Achievable correspondence SC CR

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 14 Summary Ü Requirements Engineering is about describing problems  It is useful to separate the problem from the solution  Even though this cannot be achieved entirely  Problems evolve continuously:  Delivering a solution changes the problem  Describing the problem changes the problem Ü Key distinctions:  Application Domains vs. Machine Domains  Verification vs. Validation  Systems Engineering vs. Software Engineering Ü Basic Problem Frames  Give us a starting point for understanding the problem  Tell us what subdomains we need to describe