Lecture 6: Requirements Engineering

Similar documents
Lecture 8 Requirements Engineering

Lecture 9 Requirements Engineering II

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 6 Slide 1

SE351a: Software Project & Process Management. 11 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa

Requirements Engineering. Version October 2016

Requirements. Requirements. Types of Requirement. What Is a Requirement?

Software Engineering. Lecture 10

Requirements Engineering. Establishing what the customer requires from a software system. Requirements Engineering. What is a Requirement?

Requirements Engineering: Specification & Validation. Software Requirements and Design CITS 4401 Lecture 18

Ch 4: Requirements Engineering. What are requirements?

Chapter 4 Requirements Engineering

Requirements engineering

Software Requirements and the Requirements Engineering Process. Chapters 5 and 6

Natural Language Specification

Software specification and modelling. Requirements engineering

Lecture 17 Engineering Design Resolution: Generating and Evaluating Architectures

Lecture 16: (Architecture IV)

Requirement Analysis

Vragen. Use case analysis. Use-Cases: describing how the user will Use cases

Scenario-Based Analysis. Scenario-Based Analysis (example) Form analysis

Lecture 13 Introduction to Software Architecture

SEG3201 Basics of the Requirements Process

copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc.

Lecture 8: Goals and Scenarios. Pohl K., Requirements Engineering: Fundamentals, Principles, and Techniques, Springer, 2010, 814p.

UNIT-II REQUIREMENTS ANALYSIS AND SPECIFICATION

Lesson 06. Requirement Engineering Processes

Quality Software Requirements By J. Chris Gibson

Sofware Requirements Engineeing

Requirements Validation and Negotiation

Lecture 4: Goals and Scenarios. System context. Usage facet. IT system facet. Core activities. Negotiation. Requirements artefacts

Introduction to Software Specifications and Data Flow Diagrams. Neelam Gupta The University of Arizona

Requirements Validation and Negotiation

Fundamentals: Software Engineering. Objectives. Last lectures. Unit 2: Light Introduction to Requirements Engineering

REQUIREMENTS. Michael Weintraub Spring, 2016

REQUIREMENTS ENGINEERING LECTURE 2017/2018. Dr. Jörg Dörr. Conceptual Modelling. Fraunhofer IESE

Darshan Institute of Engineering & Technology for Diploma Studies

Requirements Engineering

Lecture 19 Engineering Design Resolution: Generating and Evaluating Architectures

SOFT 423: Software Requirements

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of MCA

Requirements Engineering. Version November 2012

Modeling Issues Modeling Enterprises. Modeling

SE351a: Software Project & Process Management. 13 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa

Requirements Engineering. Csaba Veres

Requirements. CxOne Standard

Restricted Use Case Modeling Approach

System context. Usage facet. IT system facet. Core activities

Topic # 03. Requirements to Software System: An Overview (Ch. 5 and partially Ch. 6)

Chapter 1: Programming Principles

Software architecture in ASPICE and Even-André Karlsson

Chapter 1: Principles of Programming and Software Engineering

Software Engineering Unit 4- Requirement Analysis and Specification

Requirements Elicitation

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

Requirements Engineering

Software Design Models, Tools & Processes. Lecture 2: Inception Phase Cecilia Mascolo

CS3205: Task Analysis and Techniques

350 Index 2005 GOAL/QPC

Outline of Unified Process

Software Architecture

CIS 890: Safety Critical Systems

Lecture 5 Safety Analysis FHA, HAZOP

An end-user s perspective What system? I haven t seen a new system

Software Architecture. Lecture 5

Requirements Validation and Negotiation (cont d)

Mei Nagappan. How the programmer wrote it. How the project leader understood it. How the customer explained it. How the project leader understood it

AC63/AT63/AC114/AT114 SOFTWARE ENGINEERING DEC 2015

Introduction to Software Engineering

Software Engineering I (02161)

XIV. The Requirements Specification Document (RSD)

Unit 1 Introduction to Software Engineering

Product. e ss. P roc. so get the right requirements. Garbage in garbage out,

Administrivia. Wednesday: Requirements and Specification. CS169 Lecture 4. We assign teams and you start on Monday. Determining Stakeholders and Needs

Lecture 5 STRUCTURED ANALYSIS. PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall Bühnová, Sochor, Ráček

Software Architectures. Lecture 6 (part 1)

Quality Software Requirements By J. Chris Gibson

Refresher: Lifecycle models. Lecture 22: Moving into Design. Analysis vs. Design. Refresher: different worlds. Analysis vs. Design.

Methods for building a knowledge base for automatic communication in shipping

1: Specifying Requirements with Use Case Diagrams

The software lifecycle and its documents

Rules of Writing Software Requirement Specifications

Drexel Chatbot Requirements Specification

Authors: Andrei Kapustin, Vadim Chirikov, Marina Farr Cybernetic Intelligence GmbH, Zug, Switzerland Requirement analysis: Methodology

Lecture 5: Requirements Specifications

Security Engineering for Software

Recommended Practice for Software Requirements Specifications (IEEE)

SE 1: Software Requirements Specification and Analysis

Use C ases Cases 7/09

Business Analysis for Practitioners - Requirements Elicitation and Analysis (Domain 3)

VETRI VINAYAHA COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

RE Process. Lawrence Chung Department of Computer Science The University of Texas at Dallas

UNIT-4 Behavioral Diagrams

Lecture 8: Use Case -Driven Design. Where UML fits in

Unified Modeling Language - UML

Prototyping. Lecture # 21

Synergy Distributed Meeting Scheduler. Project Plan. Revision 2.0. CS 6361 Advance Requirements Engineering Fall 2008

Tonight s Agenda. CSC340: Requirements Engineering. Course Objectives. Requirements Engineering. Software Engineering. What is Software Engineering?

CS350 Lecture 2 Requirements Engineering. Doo-Hwan Bae

SE 2730 Final Review

Transcription:

Lecture 6: Requirements Engineering Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Sept. 11, 2008

Classification of Requirements Functional vs. non-functional domain User vs. System 2

Goals vs. Non-functional Requirements Difficult to state non-functional requirements precisely Imprecise requirements are difficult to verify! May result in expression of a goal A general intention of the user e.g., ease of use, reasonable performance, maintainability Want verifiable non-functional requirements Using some measure that can be objectively tested Quantifiable! Goals can help convey the intentions of the system users Should warn user that difficult to validate 3

Examples A system goal The system should be easy to use by experienced air traffic controllers and should be organized in such a way that user errors are minimized. A verifiable non-functional requirement Experienced air traffic controllers shall be able to use all the system functions after a total of two hours training; after this training, the average number of errors made by experienced users shall not exceed two per day. 4

Turning Goals into Requirements: System Property Metrics Property Speed Size Ease of use Reliability Robustness Portability Measure Processed transactions/second User/Event response time Screen refresh time M Bytes Number of ROM chips Training time Number of help frames Mean time to failure Probability of unavailability Rate of failure occurrence Availability Time to restart after failure Percentage of events causing failure Probability of data corruption on failure Percentage of target dependent statements Number of target systems 5

Non-functional Requirements Interaction Conflicts between different non-functional requirements are common Spacecraft system To minimize weight, the number of separate chips in the system should be minimized. To minimize power consumption, lower power chips should be used. Conflict! Why? Which is most critical? 6

Domain Requirements Describe system characteristics and features that reflect application domain May be new functional or non-functional requirements May be constraints on existing requirements May define specific computations If domain requirements are not satisfied, the system may be unworkable! Why do we separate these kinds of requirements out? Reuse! 7

Domain Requirements Example: Train Protection System The deceleration of the train shall be computed as: D train = D control + D gradient where D gradient = 9.81m/s 2 * compensated gradient/alpha and where the values of 9.81ms 2 /alpha are known for different types of trains. 8

Domain Requirements Issues Understandability Requirements expressed in language of the application domain (jargon) Not understood by software engineers developing the system Implicitness Domain specialists do not make domain requirements explicit 9

Classification of Requirements Functional vs. non-functional User vs. System 10

User Requirements Describe both functional and non-functional requirements in a way understandable to system users Example The software must provide a means of representing and accessing external files created by other tools 11

System Requirements More detailed specifications of system functions services constraints Intended as basis for designing the system Example The user should be provided with facilities to define the type of external file Each external file type may have an associated tool which may be applied to the file Each external file type may be represented as a specific icon When a user selects an icon representing an external file, the effect is to apply the tool associated with the type of external file to the file represented by the selected icon 12

Requirements Engineering Activities Inception Elicitation Elaboration/Analysis Negotiation Specification Validation 13

Inception Goal is to develop a very basic understanding of: Problem People that want a solution Nature of desired solution Effectiveness of initial communication between customer and developer Results in Statement of business need for software to be developed Feasibility of developing software 14

Inception Actions Identify stakeholders Anyone that benefits from system to be developed Typical examples Marketing Customer End-user Software engineers Identify and organize viewpoints Further classify stakeholders according to perspectives Broadly: Interactor Indirect Domain 15

Viewpoint Example Interactor Indirect Domain Library manager Finance Publishers User Faculty Student Library staff Classification standards Copyright regulations 16

Inception Actions (2) Ask context-free questions: Regarding stakeholders Who requested this system? Who will use it? What is the economic benefit? Is there another source for the desired solution? Regarding the problem What would be good output generated by the solution? What problem does the solution address? What kind of business environment will this be used in? Are there performance issues or constraints? 17

Inception Actions (3) Ask context-free questions: Regarding communication Are you the right person to answer these questions? Is this answer official? Are my questions relevant? Can anyone else provide additional information? Should I be asking you anything else? 18

Requirements Engineering Activities Inception Elicitation Elaboration/Analysis Negotiation Specification Validation 19

Elicitation Goal is to understand the system that is to be developed More specific information is elicited from the stakeholders Approaches to elicitation Research Observation Documentation studies Comparative product studies Guided Meetings Interview Focus groups Elicitation workshops Prototype demonstrations Scenarios and Use Cases More detailed and pointed questions May propose some services, features 20

Scenarios Real-life examples of how a system can be used They should include A description of the involved stakeholders A description of the starting situation A description of the normal flow of events A description of what can go wrong Information about other concurrent activities A description of the state when the scenario finishes 21

Scenario Example Ask the SafeHome user: How would you use the home security function? 22

Use Cases Scenario-based descriptions of how an actor interacts with the system Actor (UML terminology) Represents role people or device play when using the system External to system (system is not an actor) Captures functional requirements Captures functional requirements Abstraction of a scenario A scenario is one specific path Use case captures multiple related paths of interaction Serve as basis for developing more detailed models Supports traceability of requirements and design 23

Capturing Use Cases Two forms of use case specification Full textual description Name Actors Preconditions Trigger Scenario Description Exceptions (a.k.a. Extensions) Postconditions Associated non-functional requirements (optional) UML graphical description We ll see this later 24

Use Case Example Ask the SafeHome user: How would you use the home security function? 25

Requirements Engineering Activities Inception Elicitation Elaboration/Analysis Negotiation Specification Validation 26

Elaboration/Analysis Refine models of requirements Organize requirements according to: Stakeholders Viewpoints Service Preliminary decomposition of the system Prioritize requirements (and risks) Update cost estimates Negotiate requirements Customers may ask for more than can be achieved Prioritization information may be in conflict 27

Requirements Engineering Activities Inception Elicitation Elaboration/Analysis Negotiation Specification Validation 28

Approaches to Specifying Requirements Structured natural language Rules guide specification of requirements Graphical modeling notations Easy to understand graphical representations Mathematical specifications Based on mathematical concepts such as sets or finite state machines 29

Problems with Natural Language Ambiguity Readers and writers of the requirement must interpret the same words in the same way Over-flexibility The same thing may be said in a number of different ways Lack of modularization Natural language structures doesn t capture hierarchical requirement relationships 30

Guidelines for Using Structured Natural Language Rules for writing user and system requirements: Use standard structured format Write complete, simple sentences Use active voice Define terms, use them consistently Group related requirements hierarchically Express all requirements using must or shall Write requirements in a verifiable manner Write atomic requirements States a single product function, feature, or characteristic Helps with requirements traceability 31

Structured Natural Language for Scenarios Rules for writing scenarios: All of the previous rules Format: Initial assumption Normal execution Exceptional execution State on completion 32

Structured Natural Language for Use Cases Rules for writing scenarios: All of the previous natural language rules Format: Use-Case Name Actors Pre-conditions Post-conditions Trigger Basic Flow Extensions Non-functional Requirements 33

Use Cases with UML Basic Notation Bank Customer Withdraw Money More on use cases and UML use case notation coming soon 34

Requirements Engineering Activities Inception Elicitation Elaboration/Analysis Negotiation Specification Validation 35