Requirements Engineering

Similar documents
Requirements Engineering. Andreas Zeller Saarland University

Software Development Methodologies. CSC 440: Software Engineering Slide #1

Requirements Analysis. Overview

IE 366 Requirements Development

Software Engineering Fall 2014

What are requirements? Basics of Requirement Engineering. Definition of a Stakeholder. Stated Vs. Real Requirements. Stated Vs.

Management of Projects

Requirements Engineering

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Requirements Engineering Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 7 Slide 1

Software Engineering Fall 2014

Inception. Describe the vision and business case for this project. Determine if the enterprise should build or buy the necessary system.

Introduction to Software Engineering

Chapter 4 Requirements Elicitation

Requirements Analysis and Design Definition. Chapter Study Group Learning Materials

Object-Oriented Analysis/Design and Use Cases Object Oriented Analysis and Design

Requirements Knowledge Model. Business. Event. Business. responding. Business. Use Case 1.. Business tracing * * * * Requirement

IIBA Global Business Analysis Core Standard. A Companion to A Guide to the Business Analysis Body of Knowledge (BABOK Guide) Version 3

SYSTEM AND SOFTWARE DESIGN USING THE UNIFIED MODELING LANGUAGE (UML)

Requirement Analysis Document

Sistemi ICT per il Business Networking

Requirements Elicitation

Requirements Basics. CSCE Lecture 4-09/02/2015

Introduction to Systems Analysis and Design

status Homework 2 posted:

A Guide to the Business Analysis Body of Knowledge (BABOK Guide), Version 2.0 Skillport

TOGAF - The - The Continuing Story Story

Requirements Engineering and Agile Methodology

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

Waterfall model is the earliest SDLC approach that was used for software development.

Object-Oriented and Classical Software Engineering

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Introduction to Software Engineering

Requirements Analysis

Assessing Quality in SysML Models

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Requirements Engineering Best Practices

Requirements Engineering. Massimo Felici Room 1402, JCMB, KB

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

1) Introduction to Information Systems

Requirements Analysis

2 Why is systems development difficult and risky? 3 How do businesses use the systems development life cycle (SDLC) process?

BABOK v3 Task to Technique Mapping

Course : Software Engineering and Project Management. Unit 2 Software Requirements Engineering & Analysis

Requirements Elicitation. Software Requirements and Design CITS 4401 Lecture 17

MAIL/PARCEL MANAGEMENT SYSTEM WITH SMS NURUL SYUHADA BINTI MD NASIR FACULTY OF COMPUTER SYSTEMS & SOFTWARE ENGINEERING UNIVERSITI MALAYSIA PAHANG

Question 2: Requirements Engineering. Part a. Answer: Requirements Engineering Process

[Name] [ ID] [Contact Number]

How Business Analysis Can Improve Sales and Marketing Outcomes

Application of an Extended SysML Requirements Diagram to Model Real-Time Control Systems

Software Quality Engineering where to find it in Software Engineering Body of Knowledge (SWEBOK)

Systems Analysis and Design Methods Chapter 3: Information Systems Development

Information Systems RE Business Process and Data Analysis (cont d) + Use Case Analysis

Volume 8, No. 1, Jan-Feb 2017 International Journal of Advanced Research in Computer Science RESEARCH PAPER Available Online at

PISA. (Planning, Integration, Security and Administration) An Intelligent Decision Support Environment for IT Managers and Planners.

Agile Tutorial for the Senior Project Class School of Computing and Information Sciences Florida International University

Info IV IT Project Management. A Sad Story. Why IT-Projects Fail. Prof. Dr. Peter Müller. Standish Group Research Study CHAOS 1995

CMMI FOR SERVICES, THE PREFERRED CONSTELLATION WITHIN THE SOFTWARE TESTING FUNCTION OF A SOFTWARE ENGINEERING ORGANIZATION

Object-Oriented Analysis and Design PART1: ANALYSIS

Intermediate Certificate in Software Testing Syllabus. Version 1.4

CHAPTER 3: REQUIREMENT ANALYSIS

Software Life Cycle. Main Topics. Introduction

Architecture Development Methodology for Business Applications

Requirements Use Cases

D25-4. How Intertech Uses Agile

Testing. CxOne Standard

Tutorial Software is the differentiating characteristics in many computer based products and systems. Provide examples of two or three products

CHAPTER 2: IMPLEMENTATION PHASES AND OFFERINGS

Elicit the Requirements

ISO Standards Framework for QA in Legal Translation

Requirements Analysis and Specification. Importance of Good Requirements Analysis

Requirements Engineering and Software Architecture Project Description

Project Management Context Outline

Enterprise Architecture: an ideal discipline for use in Supply Chain Management

Quality Assurance Plan D9.1.1

Get the most from your requirements with Modelio WEB Analyst. Web Analyst is a very innovative requirement analysis tool that allows you to obtain

Smart Inventory Management System

PMI-PBA IN ACTION. Saturday PDU Program PMI Metrolina Chapter. Gary Schmitz, PMP, PMI-PBA.

Fundamentals of Requirements Engineering

The Top Thrill Dragster

Graphical Systems Modeling with UML / SysML Activity diagrams

Scrum, Creating Great Products & Critical Systems

Chapter 3 Software Process Model

Passit4Sure.OG Questions. TOGAF 9 Combined Part 1 and Part 2

with Use and Misuse Cases

Cost of Changing the Activities in SDLC. Minimum of Cost at this level. code debuging unit test integration. Activity

NEW! The Project Manager & The Business Analyst. by Barbara A. Carkenord, CBAP, PMP, PMI-ACP

TESTING THE REQUIREMENTS

National Aeronautics and Space Administration Washington, DC 20546

User Involvement in Project Success

Prof. Dr. Liggesmeyer, 1. Quality Management of Software and. Processes and QM. Systems. QMSS Processes and QM

System Sequence Diagrams. CSC 440: Software Engineering Slide #1

Design of a GPS-Web fleet tracking application

Software Engineering II - Exercise

A Sad Story. Info IV IT Project Management. How to Avoid Troubled Projects. Why IT-Projects Fail

Pertemuan 2. Software Engineering: The Process

Project Plan Version 1.0

CMMI-DEV V1.3 CMMI for Development Version 1.3 Quick Reference Guide

Transcription:

Requirements Engineering Software Engineering Andreas Zeller Saarland University

Requirements Engineering The Real World Requirements Engineering A description of what the system should do (but not how)

Requirement Standard Glossary of Software Engineering Terminology (ANSI/IEEE Standard 610.12-1990) 1. A condition or capability needed by a user to solve a problem or achieve an objective. 2. A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed documents. 3. A documented representation of a condition or capability as in (1) or (2).

What requirements are? Building blocks we use to describe what the system should do. Failure to meet a requirement jeopardizes the system success Well documented Consistent

Types of Requirements

Types of Requirements

Functional Requirements An action the product must take to be useful The product shall allow to track individual payments of coffee servings

Nonfunctional Requirements A property or quality the product must have The product shall be accessible in multiple languages (such as German and English)

Constraints Global requirements on the project or the product The product shall be available before March 1st.

Analysis vs Design Analysis = what the software should do Software functionality Software properties Design = how it should do it

Up-front RE We must know [exactly] what to build before we can build it classical engineering viewpoint leads to...

Waterfall Model (1968)

Communication project initiation requirements gathering Planning estimating scheduling tracking Waterfall Model (1968) Modeling analysis design Construction code test Deployment delivery support feedback

Why requirements are important? The hardest single part of building a software system is deciding what to build. No part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later Fred Brooks

Denver International Airport

DIA: Automated Baggage System

Glass Law Requirement deficiencies are the prime source of project failures.

Why Requirement Analysis? We need to systematically address the problem of getting the right set of requirements So, who should I ask first?

Stakeholders Persons or organizations who have a valid interest in the system are affected by the system

Stakeholders anyone who operates the system (normal and maintenance operators) anyone who benefits from the system (functional, political, financial and social beneficiaries) anyone involved in purchasing or procuring the system

Stakeholders organizations which regulate aspects of the system (financial, safety, and other regulators) organizations responsible for systems which interface with the system under design people or organizations opposed to the system (negative stakeholders)

Identify stakeholders

Understand each stakeholder

Help stakeholders to understand themselves

Help stakeholders to understand each other

Reach a consensus among stakeholders

Requirements Analysis Standard Glossary of Software Engineering Terminology (ANSI/IEEE Standard 610.12-1990) The process of studying user needs to arrive at a definition of system, hardware, or software requirements. The process of studying and refining system, hardware, or software requirements.

1) Inception Identify stakeholders Recognize multiple viewpoints Ask first Q&A

2) Elicitation Collaborate with stakeholders Address problems (scope/understanding/ volatility) Method: Collaborative Requirements Gatherings

Problems of scope What is the boundary of the system? What details are actually required?

Problems of understanding Users don t know what they want...don t know what is needed...have a poor understanding of their computing environment...don t have full understanding of their domain

Problems of volatility Requirements change over time

3) Elaboration Expand & refine information Document requirements taken during elicitation Use cases Contract style UML diagrams

4) Negotiation Reconcile conflicts Ranking of requirements Risk estimation (very rough)

5) Specification Written document Natural Language + Graphical models

6) Validation Search for Inconsistencies Omissions Errors Technical Review Review Team

7) Requirements Management Control Requirements change Trace requirements to: Features Code Subsystems How Requirements are related to each other

Collaborative Requirement Gathering

Collaborative Requirement Gathering Meetings attended by both customers and software engineers (+other stakeholders) Rules for preparation and participation are established Agenda is suggested A facilitator controls the meeting A definition mechanism is used

Collaborative Requirement Gathering Goal: Identify problem Propose elements of solution Negotiate approaches Specify preliminary set of requirements

Documenting Requirements Contract-style requirements Use cases (user stories) UML-diagrams Paper prototyping

Contract Style

Contract Style Classify product features as Must-have features The product must conform to accessibility guidelines May-have features The product may eventually be voice-controlled Must-not-have features The product supports only one language Be explicit about must-not-have features!

Contract Style Provide a contract between sponsors and developers Can run to hundreds of pages Abstract all requirements, with little context

Contract Style love it hate it

Use Case An actor is something that can act a person, a system, or an organization A scenario is a specific sequence of actions and interactions between actors (where at least one actor is a system) A use case is a collection of related scenarios successful and failing ones Useful for clients as well as for developers

Actors and Goals What are the boundaries of the system? Is it the software, hardware and software, also the user, or a whole organization? Who are the primary actors i.e., the stakeholders? What are the goals of these actors? Describe how the system fulfills these goals (including all exceptions)

Example: SafeHome

Initial Scenario Use case: display camera views Actor: homeowner If I m at a remote location, I can use any PC with appropriate browser software to log on to the SafeHome Web site. I enter my user ID and two levels of passwords and, once I m validated, I have access to all the functionality. To access a specific camera view, I select surveillance and then select a camera. Alternatively, I can look at thumbnail snapshots from all cameras by selecting all cameras. Once I choose a camera, I select view

Refined Scenario Use case: display camera views Actor: homeowner 1. The homeowner logs on to the Web Site 2. The homeowner enters his/her user ID 3. The homeowner enters two passwords 4. The system displays all major function buttons 5. The homeowner selects surveillance button 6. The homeowner selects Pick a camera

Alternative Interactions Can the actor take some other action at this point? Is it possible that the actor encounters some error condition? If so, which one? Is it possible that some other behavior is encountered? If so, which one? Exploring alternatives is the key to successful requirements analysis!

Full Use Case

Full Use Case

Full Use Case

Full Use Case

UML Diagrams UML: Unified Modeling Language Graphical models useful for communicating ideas (both stakeholders and engineers) UML class diagram: static snapshot of system s relationships (classes, attributes, operations) UML sequence diagram: how processes interact

UML class diagram

UML sequence diagram

Paper prototyping

Paper prototyping

Summary

Summary

Summary

Summary