Requirements Engineering

Similar documents
Software specification and modelling. Requirements engineering

(c) Addison Wesley Chapter 3. ! Interviewing customers and domain experts. ! Questionnaires. ! Observation. ! Study of documents and software systems

Requirement Analysis

Ch 4: Requirements Engineering. What are requirements?

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

Lesson 06. Requirement Engineering Processes

UNIT-II REQUIREMENTS ANALYSIS AND SPECIFICATION

Lecture 8 Requirements Engineering

Requirements engineering

Delimited. Interfaced. Readable. Modifiable. Verifiable. Prioritized* Endorsed

Requirements Engineering

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

Basics : the Requirements Engineering Process

Recommended Practice for Software Requirements Specifications (IEEE)

SEG3201 Basics of the Requirements Process

Lecture 9 Requirements Engineering II

The Analysis and Proposed Modifications to ISO/IEC Software Engineering Software Quality Requirements and Evaluation Quality Requirements

Requirements Specifications & Standards

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

Lecture 6: Requirements Engineering

Requirements Validation and Negotiation

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

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

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

CIS 890: Safety Critical Systems

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

Requirements Validation and Negotiation

Requirements Engineering

Mathematics and Computing: Level 2 M253 Team working in distributed environments

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>

Software Engineering. Lecture 10

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

Sofware Requirements Engineeing

Requirements Engineering. Csaba Veres

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

Requirements. CxOne Standard

Unit 1 Introduction to Software Engineering

System Name Software Architecture Description

BCS Certificate in Requirements Engineering Syllabus

Domain Model and Domain Modeling

BCS Certificate in Requirements Engineering Extended Syllabus Version 2.5 May 2017

SOFT 423: Software Requirements

Requirements Engineering Process

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Chapter 4 Requirements Engineering

Software Requirements Specification (SRS) Software Requirements Specification for <Name of Project>

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author> <organization> <date created>

Chapter 4 Objectives

EXAM PREPARATION GUIDE

Horizon2020/EURO Coordination and Support Actions. SOcietal Needs analysis and Emerging Technologies in the public Sector

REQUIREMENTS. Michael Weintraub Spring, 2016

Robin Wilson Director. Digital Identifiers Metadata Services

UNIVERSITY OF CALGARY. Requirements Engineering for Software Product Lines. By Chethana Kuloor

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Applying ISO/IEC Quality Model to Quality Requirements Engineering on Critical Software

<Name of the project> Software Requirement Specification

System Requirements Specification

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

VO Software Engineering

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

The Process of Software Architecting

Introduction to Software Engineering

Certified Software Quality Engineer Preparation On Demand, Web-Based Course Offered by The Westfall Team

Requirements Engineering. Version October 2016

Middle East Technical University. Department of Computer Engineering

Bridging the gap Requirements Engineering meets Usability Engineering

Requirements Elicitation

Lecture 5: Requirements Specifications

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

ISO INTERNATIONAL STANDARD. Information and documentation Managing metadata for records Part 2: Conceptual and implementation issues

Purpose and Structure of Requirements Specifications (following IEEE 830 Standard)

Rational Software White Paper

Modeling Issues Modeling Enterprises. Modeling

Software Engineering Unit 4- Requirement Analysis and Specification

Software Engineering I (02161)

User-centered design and the requirement process

Part 5. Verification and Validation

Software Engineering - I

For presentation at the Fourth Software Engineering Institute (SEI) Software Architecture Technology User Network (SATURN) Workshop.

Requirements Engineering process

EXAM PREPARATION GUIDE

Standard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms

<Project Name> Vision

ATTACHMENT 2, EXHIBIT 3 Deliverable Expectation Document Template For [Deliverable Title]

Requirements Engineering. Objectives. System requirements. Types of requirements. FAQS about requirements. Requirements problems

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

<<Subsystem>> Software Architecture Document

Intro to Software Requirements

UNIT-I Introduction of Object Oriented Modeling

Requirements Validation and Negotiation (cont d)

Automatic Merging of Specification Documents in a Parallel Development Environment

EXAM PREPARATION GUIDE

3 Prototyping and Iterative Evaluations


Lecture 6: Requirements Engineering

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

Based on the slides available at book.com. Graphical Design

for TOGAF Practitioners Hands-on training to deliver an Architecture Project using the TOGAF Architecture Development Method

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

Transcription:

Dr. Michael Eichberg Software Engineering Department of Computer Science Technische Universität Darmstadt Software Engineering Engineering The following slides are primarily based on the contents of the following books: Applying UML and Patterns; Craig Larman; Software Engineering; Ian Sommerville

Engineering Using Natural Language

Engineering - Interpreting Statements 3 Statement: Mary had a little lamb. Meaning:?

to have Engineering - Interpreting Statements 4 1.to hold in possession as a property 2.to trick or fool someone (been had by a partner) 3.to beget or bear (have a baby) 4.to partake (have as a dinner) 5... Statement: Mary had a little lamb. Meaning:?

a lamb Engineering - Interpreting Statements 5 1.a young sheep less than one year 2.the young of various other animals (antelope etc.) 3.a person as gentle or weak as a lamb 4.a person easily cheated or deceived 5.the flesh of lamb used as food 6... Statement: Mary had a little lamb. Meaning:?

Engineering - Interpreting Statements 6 Statement: Mary had a little lamb. Meaning:? have lamb meaning 1 1 Mary owned a little sheep under one year... 3 2 Mary gave birth to an antelope....

Engineering - Interpreting Statements 7 Statement: Shoes must be worn. Meaning:?

Engineering Brief Introduction

Engineering - Introduction 9 are the descriptions of -the services provided by the system and -the operational constraints.

W.r.t. the level of description, we can distinguish two types of requirements: (A) User and (B) System requirements. Engineering - Introduction 10 User requirements They state - in natural languages plus diagrams - what services the system is expected to provide and the constraints under which it must operate. Usually written (stated) by the customer. (dt. Grundlage für das Lastenheft )...

W.r.t. the level of description, we can distinguish two types of requirements: (A) User and (B) System requirements. Engineering - Introduction 11... System requirements (dt. Systemanforderungen) Set out the system s functions, services and operational constraints in detail. Often these requirements are written down in the system requirements document (also called a functional specification) which is typically part of the contract. Hence, the requirements should be precise. Written by the software developer/contractor. (dt. Grundlage für das Pflichtenheft )

User Requirement Definition(s) Exemplified Engineering - Introduction 12 The Library system shall keep track of all data required by copyright licensing agencies in the UK and elsewhere....

System Requirement Definition(s) Exemplified Engineering - Introduction 13 On making a request for a document from the library system, the requestor shall be presented with a form that records details of the user and the request made. The library system s request forms shall be stored on the system for five years from the date of the request. All library system request forms must be indexed by user, by the name of the material requested and by the supplier of the request. The library system shall maintain a log of all requests that have been made to the system....

From the point-of-view of a developer, we can distinguish (A) Functional and (B) Non-functional requirements. Engineering - Introduction 14 Functional requirements They specify the services that the system should provide, how the system should (not) react to particular inputs and how the system should (not) behave in particular situations. To fulfill these requirements it is usually necessary to write code.

From the point-of-view of a developer, we can distinguish (A) Functional and (B) Non-functional requirements. Engineering - Introduction 15 Non-functional requirements Constraints on the services or functions offered by the system; including: timing constraints, constraints on the development process and standards. They often apply to the system as a whole. It is usually not directly possible to write some well-defined piece of code to fulfill these requirements. However, it is sometimes possible to write tests/setup test systems to test that the requirements are satisfied!

Engineering - Introduction 16 The boundaries between functional and non-functional requirements are not always clear-cut. If you take a more detailed look on a non-functional requirement (e.g. the system has to be secure ) it might result in the identification of functional requirements.

Some Types of Non-functional Engineering - Introduction 17 Non-functional requirements Product requirements Organizational requirements External requirements Portability requirements Delivery requirements Interoperability requirements Reliability requirements Implementation requirements Ethical requirements Performance requirements Efficiency requirements Standards requirements Legislative requirements Safety requirements Space requirements Usability requirements Privacy requirements Ian Sommerville - Software Engineering 8; Addison Wesley 2007

Organizational Delivery requirements, e.g., Placeholder 18 how the product is delivered (online, packaged, ) and how it can be used: only online or off- and online Implementation requirements, e.g., the programming language that has to be used the tools/platform that has to be used Standards requirements, e.g., the development process that has to be used Examples

External that are external to the system, e.g., legislative requirements, e.g., Placeholder 19 the usage of certain images may not be allowed in certain regions/may require an age restriction how the data is stored and archived regarding the protection of sensitive information Examples

Product Portability, e.g., it can be used on Linux, Mac, Placeholder 20 it is compatible with all Android Phones which have a resolution of at least W x H pixels Reliability, e.g., the probability that the software will work properly in a specified environment (the latter has to be well defined!) Efficiency requirement it must not use more than x MB Ram it must complete the computation in x seconds Examples

Engineering - Introduction 21 Often non-functional requirements are more critical than individual functional requirements. (E.g. a banking system that does not support the export of the bank statement as PDF is probably still useable; if the system is not secure, it is worthless).

Engineering - Introduction 22 Often non-functional requirements are more critical than individual functional requirements. (E.g. a banking system that does not support the export of the bank statement as PDF is probably still useable; if the system is not? secure, it is worthless). But, how to evaluate if a non-functional requirement is met?

Engineering - Introduction 23 (Let s assume that we are going to develop a new web shop) How about the following non-functional requirement: The user interface should be easy to use.? not very useful

Engineering - Introduction 24 (Let s assume that we are going to develop a new web shop) How about the following non-functional requirement: The user interface should be easy to use.?

Non-functional 25 Let s assume that we are going to develop a new web shop How about the following non-functional requirement: The number of forms that fail server-side validation due to input errors should be less than Y percent. An average user 1 should be able to make an order in less than X minutes. The number of not completed transactions should not exceed Z percent. After one day of training an agent should be able to handle twice as many orders. These requirements could be an indirect measure of a user interface s quality. 1 The average user is defined elsewhere.

Domain requirements are derived from the application domain of the system rather from the needs of the system users. Engineering - Introduction 26 Usually expressed using domain-specific terminology; hard to understand by software engineers May not be explicitly stated since they are obvious to the domain expert Can be functional or non-functional

The Software Document states what the developers should implement. (Software Document ~dt. Pflichtenheft) Engineering - Introduction 27 The document has a diverse set of users/stakeholders: System customers Managers System engineers System test engineers System maintenance engineers...

The Software Document states what the developers should implement. (Software Document ~dt. Pflichtenheft) Engineering - Introduction 28... The level of detail depends on: The type of system The development process that is used Where the system is build: external contractor or in-house

Engineering - Introduction 29 The IEEE/ANSI 830/1998 Standard for Structuring a Document 1. Introduction a. Purpose of the requirements document b. Scope of the product c. Definitions, acronyms and abbreviations d. References e. Overview 2. General description a. Product perspective b. Product functions c. User characteristics d. General constraints e. Assumptions and dependencies 3. Specific requirement 4. Appendices 5. Index This can include a specification of the functionality that is not in the scope.

Engineering - Interpreting Statements 30 Statement: Mary had a little lamb. Meaning:? have lamb meaning 1 1 Mary owned a little sheep under one year... 3 2 Mary gave birth to an antelope.... That s why the system requirements specification should have a glossary.

Engineering - Introduction 31 are the descriptions of the services provided by the system and the operational constraints are described in the system requirements specification. engineering is the process of: finding out, analyzing, documenting and checking theses services and constraints. The system requirements document is created and maintained during requirements engineering

The Engineering Process The Engineering Process 32 elicitation and analysis specification validation System models User and system requirements document

The Elicitation and Analysis Process ( Elicitation =dt. Anforderungsermittlung) The Engineering Process 33 classification and organization prioritization and negotiation discovery documentation

discovery is the process of interacting with stakeholders in the system to collect their requirements. Major problem: How to systematically discover requirements? The Engineering Process 34 An approach: Viewpoint-oriented approaches. classification and organization prioritization and negotiation discovery documentation

Viewpoint-oriented approaches Generic types of viewpoints: The Engineering Process 35 Interactor viewpoints People that will interact with the system. Indirect viewpoints Stakeholders that influence the requirements, but who will not directly use the system. Domain viewpoints Domain characteristics and constraints that influence the classification and organization system requirements.... prioritization and negotiation discovery documentation

Viewpoint-oriented approaches... The Engineering Process 36 During the elicitation you should try to identify more specific viewpoints. After discovering the most important viewpoints start with them to discover the requirements. classification and organization prioritization and negotiation discovery documentation

Techniques for Elicitation The Engineering Process 37 Interviews Interviews should only be used alongside other requirements techniques, because interviewees use domain knowledge the interviewer may not be familiar with, are reluctant to reveal the actual structure, and may even work against the project if (they think) their job is at stake. Types of interviews: Closed interviews where the stakeholder answers a predefined set of questions Open interviews with no predefined agenda... classification and organization prioritization and negotiation discovery documentation

Techniques for Elicitation The Engineering Process 38... Scenarios Scenarios cover possible interactions with the system. The interactions are roughly outlined at the beginning and are detailed during the elicitation. Most people can understand and critique a scenario of how they might interact with the system. Scenarios are particularly useful for adding detail to an outline requirements description. Use cases (will be covered later on)... classification and organization prioritization and negotiation discovery documentation

classification and organization The Engineering Process 39 Given the unstructured collection of requirements, the requirements are grouped and organized into coherent clusters A possible model for categorizing the requirements is the FURPS+ Model: Functional Usability Reliability Performance Supportability + Implementation Interface Operations Packaging Legal classification and organization discovery prioritization and negotiation documentation

prioritization and negotiation The Engineering Process 40 The requirements are prioritized and conflicts are found and resolved through negotiation classification and organization prioritization and negotiation discovery documentation

documentation The Engineering Process 41 The requirements are documented and used as input for the next round in the spiral (The produced documents may be formal or informal.) classification and organization prioritization and negotiation discovery documentation

validation is concerned with showing that the requirements actually define the system that the customer wants. validation tries to find problems with the requirements. The Engineering Process 42 Checks that are carried out during requirements validation: Validity checks Do the requirements capture the right functions; do we need additional or other functionality? Consistency checks Check that the requirements are not conflicting. Completeness checks Do the requirements define all functions and constraints as intended by the system user?...

validation is concerned with showing that the requirements actually define the system that the customer wants. validation tries to find problems with the requirements. The Engineering Process 43 Checks that are carried out during requirements validation:... Realism check Can the requirements reasonably be implemented? Verifiability Is it possible to develop a test that checks if a requirement is fulfilled? Traceability Is each requirement traceable to its source (where does the requirement come from)?

Engineering Summary Different types of requirements: functional and non-functional requirements user and system requirements Engineering Process

Goal of the Lecture 45 The goal of this lecture is to enable you to systematically carry out small(er) commercial or open-source projects. Software Project Management Project Start Start of an iteration Project End Management