CH04 Capturing the Requirements Understanding what the customers and users expect the system to do * The Requirements Process * Types of Requirements *

Slides:



Advertisements
Similar presentations
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Advertisements

Alternative Approach to Systems Analysis Structured analysis
Requirement Analysis and Specification Mr. Manoj Kumar Kar.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Object-Oriented Analysis and Design
Software Testing and Quality Assurance
Capturing the requirements
Unit 211 Requirements Phase The objective of this section is to introduce software system requirements and to explain different ways of expressing these.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Requirements Analysis Concepts & Principles
CS351 © 2003 Ray S. Babcock Requirements What not How “The Pizza Experiment” 1994, 350 companies, 8000 software projects. 31% were canceled before they.
Software Requirements
Requirements (recap)‏
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Overview of Software Requirements
SE 555 – Software Requirements & Specifications Introduction
Describing Syntax and Semantics
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
Chapter 3 : Software Process and Other Models Juthawut Chantharamalee Curriculum of Computer Science Faculty of Science and Technology, Suan Dusit University.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
CSC230 Software Design (Engineering)
S R S S ystem R equirements S pecification Specifying the Specifications.
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
1 College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 2 Chapter 6 & 7 System.
The Software Development Life Cycle: An Overview
Chapter 4 Requirements Engineering
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Managing the development and purchase of information systems (Part 1)
Requirements Analysis
Software Engineering Week 9 – Brief Introduction of Requirement #1 A.A. Gde Bagus Ariana, S.T.
Chapter 7 Structuring System Process Requirements
CSCI 6231 Software Engineering ( Chapter 10?) Requirements Workflow Instructor: Morris Lancaster.
Requirements Elicitation. Who are the stakeholders in determining system requirements, and how does their viewpoint influence the process? How are non-technical.
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Lecture 7: Requirements Engineering
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
1 Introduction to Software Engineering Lecture 1.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Systems Analysis and Design in a Changing World, 6th Edition
Requirements Specification. Welcome to Software Engineering: “Requirements Specification” “Requirements Specification”  Verb?  Noun?  “Specification”
Use Case Diagram The purpose is to communicate the system’s functionality and behaviour to the customer or end user. Mainly used for capturing user requirements.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Capturing the requirements  Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Week 3: Requirement Analysis & specification
Requirement Engineering
Requirements Analysis
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
CMSC 345 Fall 2000 Requirements Expression. How To Express Requirements Often performed best by working top- down Express general attributes of system.
Capturing Requirements. Questions to Ask about Requirements 1)Are the requirements correct? 2)Consistent? 3)Unambiguous? 4)Complete? 5)Feasible? 6)Relevant?
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
CSC480 Software Engineering Lecture 7 September 16, 2002.
1 CEN 4020 Software Engineering PPT4: Requirement analysis.
Software Engineering Lecture 10: System Engineering.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
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)
 System Requirement Specification and System Planning.
An Overview of Requirements Engineering Tools and Methodologies*
System Requirements Specification
Software Requirements analysis & specifications
Object-Oriented Analysis
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

CH04 Capturing the Requirements Understanding what the customers and users expect the system to do * The Requirements Process * Types of Requirements * Characteristics of Requirements * How to Express Requirements TECH Computer Science

Capturing the Requirements (continue) Additional Requirements Notations Prototyping Requirements Requirements Documentation Participants in the Requirements Process Requirements Validation Measuring Requirements Choosing a Requirements Specification Technique

Requirements A requirement is a feature of the system or a description of something the system is capable of doing in order to fulfill the system’s purpose. Three categories of requirements  (1) absolutely must be met  (2) are highly desirable but not necessary  (3) are possible but could be eliminated

Why are requirements important? The causes of failed projects (case study)  1. Incomplete requirements (13.1%)  2. Lack of user involvement (12.4%)  3. Lack of resources (10.6%)  4. Unrealistic expectations (9.9%)  5. Lack of executive support (9.3%)  6. Changing requirements and specifications (8.7%)  7. Lack of planning (8.1%)  8. System no longer needed (7.5%)

The Requirements Process Problem analysis Problem description Prototyping and testing Documentation and validation Have we captured all the user need? Are we using the right techniques or views? Is this function feasible? Have we captured what the user expects? REQUIREMENTS ELICITATION AND ANALYSIS REQUIREMENTS DEFINITION AND SPECIFICATION

Requirements vs. Design requirements identify the what (the problem) of the system design identify the how (the solution) implementation-specific descriptions are not considered to be requirement unless mandated by the customer

Problem-solving and Software development Understanding of the application domain and the problem Purpose and goals Problem Require- ments elicitation and analysis Require- ments definition DesignImple- mentation Verification Specifi- cations Design components and use cases Code components and unit tests Test data and scripts Problem under- standing

Configuration Management Tracing the correspondences in the development process  requirements that define what the system should do  design modules that are generated from the requirements  program code that implements the design  tests that verify the functionality of the system  the documents that describe the system

Functional and Nonfunctional Requirements A functional requirement describes an interaction between the system and its environment. A nonfunctional requirement or constraint describes a restriction on the system that limits our choices for constructing a solution to the problem.

Requirements Documents Requirements definition is a complete listing of everything the customer expects the proposed system to do. Requirements specification restates the requirements definition in technical terms appropriate for the development of a system design. Formal requirements elicitation, using the same language and the same meanings

Making Requirements Testable Specify a quantitative description for each adverb and adjective so that the meaning of qualifiers is clear and unambiguous. Replace pronouns with specific names of entities. Make sure that every noun is defined in exactly one place in the requirements documents.

Types of Requirements  Physical Environment  Interfaces  Users and Human Factors  Functionality  Documentation  Data  Resources  Security  Quality Assurance

Activities to find out what the customer wants: review the current situation apprentice with the user to understand context problems and relationships make a video to show how the new system might work dig through existing documents brainstorm with current and potential users observe structures and patterns

Characteristics of Requirements Check the requirements to insure  correct  consistent  complete  realistic  needed  verifiable  traceable

Checking for Completeness and Consistency Truth Table  e.g. binary variable A, B,  define And function F  All cases  A, B, F  0, 0, 0  0, 1, 0  1, 0, 0  1, 1, 1

How to Express Requirements Use formal notation to describe the system to be built Static Descriptions  specify objects and their relationships with each other Dynamic Descriptions  specify states and transitions between states over time

Static Descriptions Indirect Reference Recurrence Relations Axiomatic Definition Expression as a Language Data Abstraction

Indirect Reference implied but not stated directly Pointing to pointer, e.g.  A points to P  where P is a pointer to something

Recurrence Relations an initial condition is defined the transformation from one condition to the next is expressed in terms of previously defined conditions Fibonacci numbers e.g.  F(0) = 1  F(1) = 1  F(n+1) = F(n) + F(n-1) for n = 1, 2, 3,...

Axiomatic Definition Axiom  a set of objects  a set of operations Generate Theorems  use axiom to generate more objects Prove Theorems  reduce (trace) a theorem down to axiom

Expression as a Language Use formal languages Backus-Naur form, e.g.  ASCII characters  ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9  ::= + | -

Data Abstraction Data manipulated by a system determine the kinds of actions taken Data abstraction is a technique to describing what data are for. To categorize data (objects) and group like elements together forming data types (class) Each object is then considered to be an instance of the class to which it belongs.

Methods actions permissible with the data and data types methods manipulate the data: states in which the data can be, operations to establish new states probes to report information about state

Relationships between data types (classes) Student Student number Credit-hours Compute tuition In-state student Student number In-state rate Compute tuition Out-of-state student Student number Out-of-state rate Compute tuition Class name Attributes Methods Generalization

Dynamic Descriptions Decision Tables Functional Descriptions and Transition Diagrams Event Tables Petri Nets Object-oriented specification

Decision Tables a set of possible conditions at a given time rules for reacting when certain conditions met actions to be taken e.g. Rule 1  High standardized exam scores T  High grades *  A: Send admission forms =

Functional Descriptions and Transition Diagrams A set of states, S A initial state, s0 A set of inputs, I A state transition function, F A output function, H

Transition among States S1S1 S2S2 X (a) S1S1 S3S3 S2S (b)

Fence diagram showing state transitions (Null) Requested On waiting list Confirmed Used Canceled Archived

I/O or Condition/action S1S1 S2S2 condition action

Transition Diagram e.g. Null Requested customer pays increment room count room request none ConfirmedOn waiting list UsedCanceled Archived room available decrement room count no room available put on list customer gives up remove from list customer cancels increment room count room available decrement room count customer moves in none

Event Tables (State Tables) Tabulate state transitions input State 0 1 s0 s1, a1 s0, a0 s1 s0, a0 s1, a0

Petri Nets describe parallel processing describe synchronization tokens: each state is associated with a set of tokens firing rules: each firing rule expresses how tokens are associated with a state; when the correct number and type of tokens are present in one state, tokens are released to travel to another state.

Three types of transitions AS AS A S1 SM (a) (b) (c) Event Event 1. Event N Event Event 1 Event N

Tokens associated with firing rules (a) (b)

Object-oriented specification focuses on the entities involved rather than on input/output transformation. Extending data-abstraction to ask  What data structures define an entity?  How does an entity’s state evolve over time?  What aspects of entities are persistent over time?

Object and Method Each entity in the system is an object. A method is an action that either can be performed by the object or can happen to the object. Only the methods of an object can change the state of the object. A method can be invoked only by sending the object a message. Encapsulation, Class Hierarchies, Inheritance, and Polymorphism.

Encapsulation forming a protective boundary one object has no access to internal representation of other objects objects “talk” to other objects by message

Class Hierarchies and Inheritance Person In-state student Out-of-state student Graduate student Undergraduate Out-of- state undergrad uate College student

Polymorphism // A method is polymorphic if it is defined for more than one object. One method for computing area, e.g.  for triangle objects  for circle objects

Additional Requirements Notations Hierarchical Techniques Data Flow Diagrams Software Requirements Engineering Methodology Structured Analysis and Design Technique Z

Hierarchical Techniques Available pharmaceu- ticals Non-prescription products Products requiring a prescription Barbiturates(n 1 ) Narcotics(n 2 ) Steroids(n 3 ) Other + {

Data Flow Diagrams considering the system as a transformer of data  how data flow into the system,  how they are transformed, and  how they leave the system data store is a database An actor is an entity that provides or receives data

Symbols in data flow diagrams Process Data store (a) (b) Data in Data out

Data flow diagram e.g. Physical exam Patient records Accounting records Physician Patient Accounting Medical experience and knowledge Diagnosis Symptoms Medication Bill List of tests, services performed Diagnosis Patient history Tests and services Prices

Software Requirements Engineering Methodology views the system as a finite-state machine writing requirements using a Requirements Statement Language  describes the flow of processing in terms of what events initiate which processes analyzing the requirements using Requirements Engineering Validation System  produces variety of reports, simulates the critical processing of the system

Requirements Statement Language first uses a flow-chart type graph called R-net to  (plus) indicates a condition for branch  (ampersand) indicates parallel processing in any order  (triangles) indicates points of synchronization  (validation point*) indicates a point for taking measurement next translate the components of R-net into statements

A requirements network (R-net) & & Extract dates Account request record Find account records Record transaction Print balances Compute money market balance Compute checking balance Compute savings balance * + *

Requirements Engineering Validation System simulates the processing of the system depicts flow of data with a graphics package produces variety of reports

Structured Analysis and Design Technique Structured Analysis represents a system with an ordered set of diagrams  each diagram represents a transformation, and at most six diagrams are used to describe a function Design Technique explains how to interpret the diagrams

Basic Structured Analysis Diagram Activity description Input Control Output Mechanism

Structured Analysis e.g. Calculate tax due Earnings Deductions Tax history Tax code Submission deadline Tax forms Amount due Tax database Forms database

Structured Analysis hierarchy high-level diagram is rewritten as several lower-level diagrams boxes within boxes (sub-boxes) forming a hierarchy of activities that describe all the steps our system is required to take

Z formal specification languages express requirements in a mathematical way evaluate using proofs and automated techniques provides a notation (its syntactic domain) provides a universe of objects (its semantic domain) provides a precise rule defining which objects satisfy each specification

Z “Zed” language combines abstract data modeling with set theory, and first-order predicate logic used to specify system states and valid state changes automated tools  check for incompleteness and inconsistency  find reachable states  check for deadlocks and non-determinism  generate a finite-state machine that implements the specification

Prototyping Requirements Rapid prototyping: build sections (small piece)(usually user interface) of the proposed system to determine the necessity, desirability, or feasibility of requirements. throw-away, or evolutionary “Look and feel” of user interface.

Look and Feel (1) Enter year:____ Enter month:____ Enter day:____

Look and Feel (2) July 1998

Look and Feel (3) Jan Dec Tues 16 Oct 2002

Requirements Documentation A complete listing of everything the customer expects the proposed system to do. Numbering each requirement, allows cross-reference, and tracking Requirements Definition Document Requirements Specification Document

Requirements Definition Document Record of requirements in the customer’s terms  1. Outline the general purpose of the system.  2. Describe the background and objectives of system development.  3. Outline approach (in general)  4. Define detailed characteristics of the proposed system, define system boundary and interfaces.  5. Discuss the environment in which the system will operate, e.g. hardware.

Guideline for writing requirements Number each requirement Each clause should contain only one requirement. Avoid having one requirement refer to another requirement Collect like requirements together Testable Consult standards from IEEE

Requirements Specification Document// written from the developer’s perspective may use technique notations

Participants in the Requirements Process Contract monitors Customers and users Business managers Designers Testers

Requirements Validation Provides a way for customers and developers to agree on what it is the system is to do. Manual techniques  Reading, Manual cross-referencing,  Interviews, Reviews, Checklists  Manual Models to check functions and relationships  Mathematical proofs Automated Techniques

Measuring Requirements number of changes to requirements rate each requirements on a scale, by designers, by testers

Choosing a Requirements Specification Technique No one approach is universally applicable to all systems May be necessary in some cases to combine several approaches to define the requirements completely. Master some tools and use them when the time is right!