Requirements

Slides:



Advertisements
Similar presentations
Requirements gathering
Advertisements

Beyond “The System Shall...” A Journey from Good to Great Requirements.
Diagram Notations
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
Paper Prototyping.
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
© 2010 Bennett, McRobb and Farmer1 Use Case Description Supplementary material to support Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Evaluating Requirements. Outline Brief Review Stakeholder Review Requirements Analysis Summary Activity 1.
Object-Oriented Analysis and Design
Agenda What is a Use Case? Benefits of the Use Cases Use Cases vs. Requirements document Developing the Use Case model System Actor Use Case Use Case.
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.
Use-case Modeling.
Android programming club Thursdays 5-7pm Info… Ryley Herrington iOS programming club Info… Ben Lanegan or.
Use Case Modeling Written by: Zvika Gutterman Adam Carmi.
Diagram Notations
Use Case Modeling Written by: Zvika Gutterman Adam Carmi.
Written by: Zvika Gutterman Adam Carmi
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
Evaluating Requirements
Administrative Topics -TEACH/mailing list - Brainstorm - Pick a project manager for each HW assignment (responsible for communication, scheduling and execution.
Use Case Modeling Written by: Zvika Gutterman Adam Carmi.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH 1 Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 More on use cases System sequence.
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.
USE Case Model.
Typical Software Documents with an emphasis on writing proposals.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
Schedule & effort.
Diagram Notations
Systems Analysis and Design in a Changing World, 6th Edition
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.
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
Requirements Documentation CSCI 5801: Software Engineering.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
 A software application is like a city  Modeling = Architecture  OOP = Civil Engineering  UML Classes = Blueprints of Buildings  UML is a common.
CPSC 372 John D. McGregor Module 2 Session 1 More on requirements and the Investment Decision.
In-Class Interviewing Activity (Grocery example) You can conduct a semi-structured/unstructured interview: How: Use the process outlined here. Individually.
CS361 Software Engineering I
Requirements Analysis and Design Engineering Southern Methodist University CSE 7313.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
1 Structuring Systems Requirements Use Case Description and Diagrams.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Systems Analysis and Design in a Changing World, 6th Edition
1 Version /05/2004 © 2004 Robert Oshana Requirements Engineering Use cases.
Lecture 2 Developing Requirements
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 5 INTRODUCTION TO SYSTEMS ANALYSIS AND DESIGN: AN AGILE, ITERATIVE APPROACH CHAPTER.
Systems Analysis and Design in a Changing World, Fourth Edition
Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements.
Requirements
Evaluating Requirements
UML - Development Process 1 Software Development Process Using UML.
Requirements
Use Case, Component and Deployment Diagrams University of Sunderland.
7 Systems Analysis – ITEC 3155 The Object Oriented Approach – Use Cases.
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.
 System Requirement Specification and System Planning.
Use Case Analysis Chapter 6.
Systems Analysis and Design in a Changing World, Fourth Edition
CMPE 280 Web UI Design and Development August 29 Class Meeting
Systems Analysis and Design in a Changing World, 6th Edition
Use Case Analysis Chapter 5.
Software Requirements analysis & specifications
مقدمه اي بر مهندسي نيازمنديها
Systems Analysis and Design in a Changing World, 6th Edition
Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer
Diagram Notations
Use Case Modeling Part of the unified modeling language (U M L)
Requirements
Presentation transcript:

Requirements

Just Right? Or “all kinds of wrong”? It depends on the system’s purpose.

Requirements Requirements state the purpose of the system Very helpful for – Communicating with customers and co-workers – Keeping track of everything that needs to get done – Helping you and the customer decide what really needs to get done, anyway Hint: customers often don’t know what they really need! Discussing requirements helps them to understand their needs.

Standish survey of software development projects (1994) Factors Reported for Failure – 13.1% - Incomplete Requirements – 10.6% - Lack of Resources – 9.9 % - Unrealistic expectations – 9.3 % - Lack of Executive support – 8.7 % - Changing requirements and specification – 8.1 % - Lack of Planning – 7.5 % - System no longer Needed

Requirements analysis Ways to figure out what the system should do: – Get the customers to write down what they want – Talk with customers and make some diagrams – Watch users in “daily life” to see what they need – Look up the requirements from a standards body – Gather with customer & users to discuss, argue, and negotiate Any combination, variation, or extension of the above

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.

Typical parts of requirements documentation Functional requirements – Unstructured text – Use cases Non-functional requirements – Unstructured text Fit criteria Diagrams – Class diagrams and entity-relationship diagrams – Dataflow, sequence, and state diagrams

Functional requirements: tell what the system should do Can be written as unstructured text – Can be written from External viewpoint (requirements definition) System viewpoint (requirements specification) Can be written as structured use cases

Unstructured text… external vs system viewpoint A requirements definition is stated from the viewpoint of somebody outside the system: – The system is a black box with some interface – The emphasis is on the role of the system A requirements specification is stated from the viewpoint of somebody inside the system: – The environment is accessed via inputs & outputs – The emphasis is on how the system works

External vs system viewpoint, example External, stated from the viewpoint of somebody outside the system boundary: e.g.: “The sprinkler never runs on rainy days” Requirements definition Internal, stated from the viewpoint of somebody inside the system boundary: e.g.: “The controller will not engage the water pump any time the ambient water sensor is triggered.” Requirements specification

Which of these are definitions? Which are specifications? “The bridge will open 12:00-12:10pm daily.” “If the system detects that the drawbridge is down at noon, then it will raise the bridge for 10 minutes by activating the lift actuators.” “The pilot can retract the landing gear by pressing a button” “When the system receives a button press event, it will engage the landing gear lift.” “When it receives an http DELETE operation, the system will mark the record as deleted.”

Use cases: structured requirements definitions Each use case describes an activity supported by the system – Put another way, each use case describes a way to use the system – Each use case is like a “bundle of scenarios” that are all the same except for very minor details Being structured, use cases are a little more formal and precise than unstructured text.

What’s in a (basic) use case? Use case name: succinct and meaningful Actor: who “does” the activity? Preconditions: what is true before the activity? Postconditions: what is true after the activity? Flow of events: what steps do the actor and the system perform during the scenario?

Example Use case #1: Report repression Actor: Citizen in repressive country Preconditions: -User has a cell phone connectivity -User has Twitter account Postconditions: -System has recorded information about a repressive event, including location & details

Example continued… Use case #1: Report repression Flow of events: -User posts a tweet giving city & country name, description of repression, and tag #repression -System periodically retrieves all #repression tweets via Twitter API -System parses tweet and geocodes locations -If location is ambiguous, system asks user to clarify (UC #2: Clarify tweet) -System records location and event in database

Example Use case #2: Clarify tweet Actor: Citizen in repressive country Preconditions: - User sent a tweet with ambiguous location Postconditions: - System has gotten clarification of location

Example continued… Use case #2: Clarify tweet Flow of events: -System replies to user, asking for user to clarify the city and country of the initial post -User edits and re-tweets the original message -Repeat above two steps until system can determine the location of the tweet

Sometimes, use cases are drawn in a cute (?) little diagram Repressed citizen UC#1: Report repressionUC#2: Clarify tweet Concerned public UC#3: View reports UC#3a: View on mapUC#3b: View as RSS feed

Non-functional requirements Describe how well the system should do stuff – Can be written as unstructured text – Often written in terms of fit criteria Exactly how good does the system need to be? Tightly related to important quality attributes Fit criteria should not be “imagined”, but instead driven by customer needs

Non-functional requirements usually relate to quality attributes The “quality attributes” of great software: Reliability Efficiency Integrity Usability Maintainability Testability Flexibility Portability Reusability Interoperability

Examples: What quality attribute? “The system must ask for tweet clarification within 5 minutes.” – so the user is probably still online “The drawbridge must rise within 1 minute.” – so traffic stops only ~ 5 minutes ( for ship) “At least 95% of the code must be Java.” – because porting such applications to Linux has proven to cost only $XXXX in the past

Typical parts of requirements documentation Functional requirements – Unstructured text – Use cases Non-functional requirements – Unstructured text Fit criteria Diagrams – Class diagrams and entity-relationship diagrams – Dataflow, sequence, and state diagrams

Overview of diagrams Use case diagram : shows supported activities UML class and entity-relationship diagrams : show entities, attributes, relationships Dataflow diagram : shows flow of information Message sequence diagram : shows flow of control State chart : shows change over time