Requirements Engineering

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Software Requirements
Lecture 5: Requirements Engineering
Software Requirements
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Human Computer Interaction G52HCI
SWE Introduction to Software Engineering
WKES 3202 SOFTWARE REQUIREMENTS ENGINEERING SEMESTER 1 SESSION 2004/2005.
Software Requirements
7M701 1 Software Engineering Software Requirements Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 5
Software Engineering General Project Management Software Requirements
CS 425/625 Software Engineering Software Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software Requirements
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 1 (cont ’d) Title : Client requirements (Review) Mandatory reading: I.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Overview of Software Requirements
1 CSC-3324: Chapter 4 Title: What is a requirement? Mandatory reading: Sommerville 6, 7 th ed., Chap.: 7.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 2 Slide 1 Socio-technical Systems.
Software engineering Olli Alm Lecture 2: requirements, modelling & representation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements 2.
Software Requirements
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 2 Slide 1 Systems engineering 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Typical Software Documents with an emphasis on writing proposals.
1 Chapter 2 Socio-technical Systems (Computer-based System Engineering)
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Software Requirements l Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 2Slide 1 Chapter 2 Computer-Based System Engineering As modified by Randy Smith.
Requirements Engineering Introduction to the Class and Course CSE 305 Dr. Naveed Ahmad.
Dr. Tom WayCSC Software Requirements CSC 4700 Software Engineering Lecture 2 Based on Sommerville, Chapter 6.
Software Requirements Presented By Dr. Shazzad Hosain.
소프트웨어공학 강좌 1 Chap 4. Software Requirements - Descriptions and specifications of a system - Soo-Mi Choi
Software Requirements Engineering CSE 305 Lecture-2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
Lecture 7: Requirements Engineering
Requirements Engineering Csaba Veres. Outline What is requirements engineering? Why is it important? How can you do it (properly)?
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Requirements Engineering Overview Senior Design Don Evans.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Slide 1 CS 310 Ch 6: Software Requirements Requirements engineering: establishing the services that the customer requires from a system and the constraints.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Software Engineering Chapter 6 Software requirements Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Software Requirements Specification Document (SRS)
Requirements Analysis
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Software Engineering Lecture 10: System Engineering.
1 Software Requirements Engineering (CS 708) Dr. Ghulam Ahmad Farrukh.
1 Software Requirements Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements (utvalgte foiler fra Kap 6 og 7 i Sommerville)
Software Requirements Engineering (CS 708)
Types and Characteristics of Requirements
Classifications of Software Requirements
Software Requirements
Presentation on Software Requirements Submitted by
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
Writing Requirements Lecture # 23.
Software Requirements
SNS College of Engineering Coimbatore
SE-565 Software System Requirements I. Introduction
Requirements Document
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

Requirements Engineering An introduction to requirements engineering *Some content from Gerald Kotonya and Ian Sommerville’s text with the same name

Objectives To introduce the notion of system requirements and the requirements engineering process. To explain how requirements engineering fits into a broader system engineering process To explain the importance of the requirements document

System requirements Define what the system is required to do and the constraints under which it is required to operate

Examples of Requirements for a Library System: “The system shall maintain records of all library materials including books, serials, newspapers and magazines, video and audio tapes, reports, collections of transparencies, computer disks and CD-ROMs.” Is this OK?

Examples of Requirements for a Library System: “The system shall allow users to search for an item by title, author, or by ISBN.” Is this OK?

Examples of Requirements for a Library System: “The system’s user interface shall be implemented using a World-Wide-Web browser.” How about this one?

Examples of Requirements for a Library System: “The system facilities which are available to public users shall be demonstrable in 10 minutes or less.” How about this one?

Examples of Requirements for a Library System: “The system shall support at least 20 transactions per second.” Is this OK? This is different than the others…

There are two different types of requirements: Functional requirements: describe product capabilities – things that the product must do for its users or allow its users to do with the software; also known as the actions, tasks, and behaviors that users generally interact with. Nonfunctional (Performance) requirements: characteristics and constraints for the software’s behavior; also known as properties that the product must have that may not be evident to the user, including quality attributes, constraints, and external interfaces

There are three different levels of requirements: Level 1: Business requirements – describe why the organization needs the software; includes business objectives as well as software features Level 2: User requirements – describe the tasks that the users must be able to perform with the product from the user’s perspective Level 3: Software Requirements – detailed descriptions of all functional and nonfunctional requirements that the software must fulfill to meet the business and user needs and satisfy the constraints

Requirements Levels Business Requirements User Requirements Software Requirements

Common requirements problems Requirements don’t reflect the real needs of the customer for the system Requirements are inconsistent and/or incomplete Expensive to make changes to requirements after they have been agreed Misunderstandings between customers, those developing the system requirements and software engineers developing or maintaining the system

FAQS about requirements Q: What are requirements? A statement of a system service; a constraint on the system operation; descriptions of how the system should behave; specifications of system properties or attributes

FAQS about requirements Q: What is requirements engineering? A: The processes involved in developing system requirements Q: How much does requirements engineering cost? A: About 15% of system development costs

FAQs contd. Q: What is a requirements engineering process? A: The structured set of activities involved in developing system requirements Q: What happens when the requirements are wrong? A: Systems are late, unreliable and don’t meet customers needs Q: Is there an ideal requirements engineering process? A: No - processes must be tailored to organizational needs

FAQs contd. Q: What is a requirements document? A: The formal statement of the system requirements Q: What are system stakeholders? A: Anyone affected in some way by the system

FAQs contd. Q: What is the relationship between requirements and design? A: Requirements and design are interleaved. They should, ideally, be separate processes but in practice this is impossible Q: What is requirements management? A: The processes involved in managing changes to requirements

Systems engineering There is a close relationship between software requirements and more general system requirements Computer-based systems fall into two broad categories: User-configured systems where a purchaser puts together a system from existing software products Custom systems where a customer produces a set of requirements for hardware/software system and a contractor develops and delivers that system

Classes of custom systems Information systems Primarily concerned with processing information which is held in some database. Embedded systems Systems where software is used as a controller in some broader hardware system Command and control systems Essentially, a combination of information systems and embedded systems where special purpose computers provide information which is collected and stored and used to make decisions

Emergent properties Emergent properties are properties of the system as a whole and only emerge once after all of its individual sub-systems have been integrated Examples of emergent properties Reliability Maintainability Performance Usability Security Safety

The systems engineering process

System engineering activities System requirements engineering The requirements for the system as a whole are established and written to be understandable to all stakeholders Architectural design The system is decomposed into sub-systems Requirements partitioning Requirements are allocated to these sub-systems Software requirements engineering More detailed system requirements are derived for the system software

System engineering activities Sub-system development The hardware and software sub-systems are designed and implemented in parallel. System integration The hardware and software sub-systems are put together to make up the system. System validation The system is validated against its requirements.

Requirements document The requirements document is a formal document used to communicate the requirements to customers, engineers and managers. Requirements document describes: Services and functions which the system should provide Constraints under which the system must operate Overall properties of the system, i.e., constraints on the system’s emergent properties Definitions of other systems with which the system must integrate

Requirements document The requirements document describes: Information about the application domain of the system e.g. how to carry out particular types of computation Constraints on the processes used to develop the system Description of the hardware on which the system is to run The requirements document should always include an introductory chapter which provides an overview of the system, business needs supported by the system and a glossary which explains the terminology used.

Users of requirements documents System customers --Specify the requirements and read them to check they meet their needs Project managers --Use the requirements document to plan a bid for system and to plan the system development process System engineers --Use the requirements to understand the system being developed System test engineers --Use the requirements to develop validation tests for the system System maintenance engineers --Use the requirements to help understand the system

Requirements document structure IEEE/ANSI 830-1998 standard proposes a structure for software requirements documents Introduction 1.1 Purpose of requirements document 1.2 Scope of the product 1.3 Definitions, acronyms and abbreviations 1.4 References 1.5 Overview of the remainder of the document

Requirements document structure 2. General description 2.1 Product perspective 2.2 Product functions 2.3 User characteristics 2.4 Constraints 2.5 Assumptions and dependencies 3. Specific requirements Covering functional, non-functional and interface requirements. Appendices Index

Adapting the standard The IEEE standard is a generic standard which is intended apply to a wide range of requirements documents. In general, not all parts of the standard are required for all requirements documents Each organization should adapt the standard depending on the type of systems it develops

Writing requirements Requirements are usually written as natural language text that can be supplemented by diagrams or equations Functional Reqt. EX: “The system shall permit the inventory manager to search for available inventory items.” Nonfunctional Reqt. EX: “The system’s scheduling capability shall be available weekdays from 7:00 AM EST to 7:00 PM EST.”

Problems with requirements The meaning of requirements is not always obvious because of: use of complex conditional clauses which are confusing sloppy and inconsistent terminology writers assume readers have domain knowledge

Writing essentials Requirements are read more often than they are written, so invest time to write readable and understandable requirements Do not assume that all readers of the requirements have the same background and use the same terminology as you Allow time for review, revision and re-drafting of the requirements document

Writing guidelines Define standard templates for describing requirements Use language simply, consistently, and concisely Use diagrams appropriately Supplement natural language with other description of requirements Specify requirements quantitatively

Key points Requirements define what the system should provide and define system constraints Requirements problems lead to late delivery and change requests after the system is in use Requirements engineering is concerned with eliciting, analyzing, and documenting the system requirements

Key points Systems engineering is concerned with systems as a whole including hardware, software and operational processes The requirements document is the definitive specification of requirements for customers, engineers and managers. The requirements document should include a system overview, glossary, statement of the functional requirements and the operational constraints