Introduction to Software Engineering

Similar documents
8/30/2010. Lecture 1. Topics covered. Functional and non-functional requirements The software requirements document Requirements specification

REQUIREMENTS ENGINEERING

Requirements Engineering

Lecture 7 Software Product Design and Project Overview

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

Requirements Engineering: Part I. Software Requirements & Project Management CITS3220

version NDIA CMMI Conf 3.5 SE Tutorial RE - 1

Requirements Engineering

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

Requirements elicitation: Finding the Voice of the Customer

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

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

! To solve problems. ! To take up new opportunities. ! Requirements - descriptions of. " Behavior. " Data. " Constraints (eg. cost and schedule)

Requirements Validation and Negotiation

Organising Requirements

Software Architecture and Engineering Requirements Elicitation Peter Müller

Functional and non functional requirements. Requirements elicitation Requirements analysis Requirements validation Requirements management

Software Architecture and Engineering Requirements Elicitation Peter Müller

Software Engineering Fall 2014

Software Processes 1

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Requirements Engineering. Massimo Felici Room 1402, JCMB, KB

Chapter 4 Requirements Engineering

The software process

Requirements Elicitation

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

Requirements Analysis and Design Definition. Chapter Study Group Learning Materials

Sommerville Chapter 4. Requirements Basics The Document and The Requirements

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Requirements Engineering with Use Cases

CSEB233: Fundamentals of Software Engineering. Software Requirements Part 1 Understanding Requirements Engineering

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

Global Journal of Engineering Science and Research Management

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

Requirements Verification and Validation

Requirements Elicitation

Analysing client requirements

Software Engineering

Verification and Validation

Requirements: Into the Mind of the Author

SWE 211 Software Processes

Measuring and Assessing Software Quality

REQB Foundation Level Sample Exam paper

Pertemuan 2. Software Engineering: The Process

Requirements engineering

What are Requirements? SENG1031 Software Engineering Workshop 1. My Notes. System Overview: The Big Picture

Requirements Engineering and Software Architecture Project Description

System Engineering and Analysis. system environments. Lecture Objectives. System Elements. Definition of System. Information system types

Chapter 2: Requirements Elicitation. Requirements Engineering

Software engineering Facts. CSC Compiler Construction Software Engineering Topics. What is software engineering? What is software?

Product Requirements. Requirements. Get it Right ASAP. Why Requirements are Difficult. Types of S/W Requirements. Levels of S/W Requirements

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

Software Quality. Unit 6: System Quality Requirements

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

Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 21 st, Requirements Engineering

Chapter 4 Requirements Elicitation

Requirements Engineering Process

Evolutionary Differences Between CMM for Software and the CMMI

Software Engineering (CSC 4350/6350) Rao Casturi

Core Design Requirements At the start of a project, it is important to specify those parameters and properties that:

Requirements Engineering and Software Architecture Project Description

Introduction to Software Engineering

Plan-driven and agile specification. 3 rd Stage. Subject: Software Engineering. Lecture time: 8:30 AM-2:30 PM. Class room no.: Lecture No.

Product Requirements. Requirements. Get it Right ASAP. Why Requirements are Difficult. Levels of S/W Requirements. Types of S/W Requirements

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

Before You Start Modelling

Scope and Coverage. Learning Outcomes. V1.0 Visuals Handout Page 1. This topic will cover: By the end of this topic, students will be able to:

Development Process and Analysis. LTOOD/OOAD - Verified Software Systems 1

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

2068 I. Attempt any ten questions. (10x6=60)

The Enterprise Systems Engineering Center Requirements Management Guide - Analysis

Software Requirements. CSCE Lecture 4-08/30/2016

Software Engineering

7. Project Management

TOGAF 9.1 Phases E-H & Requirements Management

Standards Harmonization Process for Health IT

Lecture 6: Non-Functional Requirements (NFRs)

CMSC 435: Software Engineering Section Back to Software. Important: Team Work. More Resources

Engineering. CMMI for Development V.1.2 Module 3. M03/Engineering/v1.2

Critical Skills for Writing Better Requirements (Virtual Classroom Edition)

Use cases. Version 2.6 November 2015


Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

Work Plan and IV&V Methodology

Software Life Cycle. Main Topics. Introduction

Domain Understanding and Requirements Elicitation (2)

JOURNAL OF OBJECT TECHNOLOGY

Computer Science Introductory Course MSC - Software engineering

Rapid software development

CHAPTER 2 LITERATURE SURVEY

QUALITY ASSURANCE PLAN OKLAHOMA DEPARTMENT OF HUMAN SERVICES ENTERPRISE SYSTEM (MOSAIC PROJECT)

TOGAF 9.1 in Pictures

Course Organization. Lecture 1/Part 1

Requirements Organisation, Analysis. Software Requirements & Project Management CITS3220

Requirements Change Management Practices

Requirements Engineering

Project Report Template (Sem 1)

Transcription:

Introduction to Software Engineering 2. Requirements Collection Mircea F. Lungu Based on a lecture by Oscar Nierstrasz.

Roadmap > The Requirements Engineering Process > Functional and non-functional requirements > Use Cases for Specification > Evolutionary and throw-away prototyping > Requirements checking and reviews 2

Sources > Software Engineering, I. Sommerville, 7th Edn., 2004. > Software Engineering A Practitioner s Approach, R. Pressman, Mc-Graw Hill, 5th Edn., 2001. > Objects, Components and Frameworks with UML, D. D'Souza, A. Wills, Addison-Wesley, 1999 3

Roadmap > The Requirements Engineering Process > Functional and non-functional requirements > Use Cases for Specification > Evolutionary and throw-away prototyping > Requirements checking and reviews 4

Electronic Time Schedule So, basically we need a form for the time schedule that can be distributed by email, a place (html) where I can deposit these forms after they have been filled out, and an algorithm that calculates a few possible meeting times, possibly setting priorities to certain persons of each committee (since there will always be some time schedule overlaps). It would also be great if there were a way of checking whether everybody of the relevant committee has really sent their time schedule back and at the same time listing all the ones who have failed to do so. An automatic invitation letter for the committee meeting to all the persons involved, generated through this program, would be even a further asset. How can we transform this description into a requirements specification? 6

The Requirements Engineering Process Feasibility Study Requirements elicitation and analysis Requirements specification Feasibility report System models Requirements validation User and system requirements Requirements document Ian Sommerville 2000 7

Requirements Engineering Activities Feasibility study Requirements analysis Requirements definition Requirements specification Determine if the user needs can be satisfied with the available technology and budget. Find out what system stakeholders require from the system. Define the requirements in a form understandable to the customer. Define the requirements in detail. (Written as a contract between client and contractor.) Requirements are for users; specifications are for analysts and developers. 8

Requirements Analysis Sometimes called requirements elicitation or requirements discovery Technical staff work with customers to determine > the application domain, > the services that the system should provide and > the system s operational constraints. Involves various stakeholders: > e.g., end-users, managers, engineers involved in maintenance, domain experts, trade unions, etc. 9

Problems of Requirements Analysis Various problems typically arise: Stakeholders don t know what they really want Stakeholders express requirements with implicit knowledge Different stakeholders may have conflicting requirements Organisational and political factors may influence the system requirements The requirements change during the analysis process. New stakeholders may emerge. 10

How the Customer explained it How the Project Leader understood it How the Analyst designed it What the Customer really needed

Requirements evolution > Requirements always evolve as a better understanding of user needs is developed and as the organisation s objectives change > It is essential to plan for change in the requirements as the system is being developed and used 12

The Requirements Analysis Process Requirements validation Requirements definition and specification Domain understanding Prioritization Requirements collection Conflict resolution Classification Ian Sommerville 2000 13

Roadmap > The Requirements Engineering Process > Functional and non-functional requirements > Use Cases for Specification > Evolutionary and throw-away prototyping > Requirements checking and reviews 14

Functional and Non-functional Requirements Functional requirements describe system services or functions Compute sales tax on a purchase Update the database on the server... Non-functional requirements are constraints on the system or the development process! Non-functional requirements may be more critical than functional requirements.! If these are not met, the system is useless! 15

Non-functional Requirements Product requirements: specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc. Organisational requirements: External requirements: are a consequence of organisational policies and procedures e.g. process standards used, implementation requirements, etc. arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc. 16

Types of Non-functional Requirements Non-functional requirements Product requirements Organizational requirements External requirements Efficiency requirements Reliability requirements Portability requirements Interoperability requirements Ethical requirements Usability requirements Delivery requirements Implementation requirements Standards requirements Legislative requirements Performance requirements Space requirements Privacy requirements Safety requirements Ian Sommerville 2000 17

Examples of Non-functional Requirements Product requirement It shall be possible for all necessary communication between the APSE and the user to be expressed in the standard Ada character set. Organisational requirement External requirement The system development process and deliverable documents shall conform to the process and deliverables defined in XYZCo-SP-STAN-95. The system shall provide facilities that allow any user to check if personal data is maintained on the system. A procedure must be defined and supported in the software that will allow users to inspect personal data and to correct any errors in that data. 18

Requirements Verifiability Requirements must be written so that they can be objectively verified. Imprecise: The system should be easy to use by experienced controllers and should be organised in such a way that user errors are minimised.! Terms like easy to use and errors shall be minimised are useless as specifications. Verifiable: Experienced controllers should 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 should not exceed two per day. 19

Precise Requirements Measures (I) Property Speed Size Ease of use Measure Processed transactions/second User/Event response time Screen refresh time K Bytes; Number of RAM chips Training time Rate of errors made by trained users Number of help frames 20

Precise Requirements Measures (II) Property Reliability Robustness Portability Mean time to failure Probability of unavailability Rate of failure occurrence Measure 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 21

Roadmap > The Requirements Engineering Process > Functional and non-functional requirements > Use Cases for Specification > Evolutionary and throw-away prototyping > Requirements checking and reviews 22

Use Cases and Viewpoints... Stakeholders represent different problem viewpoints. Interview as many different kinds of stakeholders as possible/ necessary Translate requirements into use cases about the desired system involving a fixed set of actors (users and system objects) For each use case, capture both typical and exceptional usage scenarios Users tend to think about systems in terms of features. You must get them to tell you narratives involving those features. Use cases and scenarios can tell you if the requirements are complete and consistent! 23

Use Cases and Scenarios A use case is the specification of a sequence of actions, including variants, that a system (or other entity) can perform, interacting with actors of the system. A scenario is a particular trace of action occurrences, starting from a known initial state. 24

Use Case Diagrams 25

Sequence Diagrams 26

Writing Requirements Definitions Requirements definitions usually consist of natural language, supplemented by (e.g., UML) diagrams and tables. Three types of problems can arise: Lack of clarity: It is hard to write documents that are both precise and easy-toread. Requirements confusion: Functional and non-functional requirements tend to be intertwined. Requirements amalgamation: Several different requirements may be expressed together. 27

Roadmap > The Requirements Engineering Process > Functional and non-functional requirements > Use Cases for Specification > Evolutionary and throw-away prototyping > Requirements checking and reviews 28

Prototyping Objectives The objective of evolutionary prototyping is to deliver a working system to end-users. Development starts with the requirements that are best understood. The objective of throw-away prototyping is to validate or derive the system requirements. Prototyping starts with that requirements that are poorly understood. 29

Evolutionary Prototyping > Must be used for systems where the specification cannot be developed in advance. e.g., AI systems and user interface systems > Based on techniques which allow rapid system iterations. e.g., executable specification languages, VHL languages, 4GLs, component toolkits > Verification is impossible as there is no specification. Validation means demonstrating the adequacy of the system. 30

Throw-away Prototyping > Used to reduce requirements risk The prototype is developed from an initial specification, delivered for experiment then discarded > The throw-away prototype should not be considered as a final system Some system characteristics may have been left out (e.g., platform requirements may be ignored) There is no specification for long-term maintenance The system will be poorly structured and difficult to maintain 31

Roadmap > The Requirements Engineering Process > Functional and non-functional requirements > Use Cases for Specification > Evolutionary and throw-away prototyping > Requirements checking and reviews 32

Requirements Checking Validity Consistency Completeness Realism Does the system provide the functions which best support the customer s needs? Are there any requirements conflicts? Are all functions required by the customer included? Can the requirements be implemented given available budget and technology? 33

Requirements Reviews > Regular reviews should be held while the requirements definition is being formulated > Both client and contractor staff should be involved in reviews > Reviews may be formal (with completed documents) or informal. Good communications between developers, customers and users can resolve problems at an early stage 34

Review checks Verifiability Comprehensibility Traceability Adaptability Is the requirement realistically testable? Is the requirement properly understood? Is the origin of the requirement clearly stated? Can the requirement be changed without a large impact on other requirements? 35

Sample Requirements Review Checklist > Does the (software) product have a succinct name, and a clearly described purpose? > Are the characteristics of users and of typical usage mentioned? (No user categories missing.) > Are all external interfaces of the software explicitly mentioned? (No interfaces missing.) > Does each specific requirement have a unique identifier? > Is each requirement atomic and simply formulated? (Typically a single sentence. Composite requirements must be split.) > Are requirements organized into coherent groups? (If necessary, hierarchical; not more than about ten per group.) > Is each requirement prioritized? (Is the meaning of the priority levels clear?) > Are all unstable requirements marked as such? (TBC=`To Be Confirmed', TBD=`To Be Defined') http://wwwis.win.tue.nl/2m390/rev_req.html 36

Sample Requirements Review Checklist > Is each requirement verifiable (in a provisional acceptance test)? (Measurable: where possible, quantify; capacity, performance, accuracy) > Are the requirements consistent? (Non-conflicting.) > Are the requirements sufficiently precise and unambiguous? (Which interfaces are involved, who has the initiative, who supplies what data, no passive voice.) > Are the requirements complete? Can everything not explicitly constrained indeed be viewed as developer freedom? Is a product that satisfies every requirement indeed acceptable? (No requirements missing.) > Are the requirements understandable to those who will need to work with them later? > Are the requirements realizable within budget? > Do the requirements express actual customer needs (in the language of the problem domain), rather than solutions (in developer jargon)? http://wwwis.win.tue.nl/2m390/rev_req.html 37

Traceability To protect against changes you should be able to trace back from every system component to the original requirement that caused its presence C1 C2 Cm req1 x req2 x x x reqn x x A software process should help you keep this virtual table up-to-date Simple techniques may be quite valuable (naming conventions,...) 38

What you should know! > What is the difference between requirements analysis and specification? > Why are the challenges to defining and specifying requirements? > What is the difference between functional and nonfunctional requirements? > What s wrong with a requirement that says a product should be user-friendly? 39

Can you answer the following questions? > Why isn t it enough to specify requirements as a set of desired features? > Which is better for specifying requirements: natural language or formal languages? > How would you prototype a user interface for a webbased ordering system? Would it be an evolutionary or throw-away prototype? What would you expect to gain from the prototype? > How would you validate a requirement for adaptability? 40

Attribution-ShareAlike 3.0 You are free: to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. http://creativecommons.org/licenses/by-sa/3.0/