TECH. Requirements. Why are requirements important? The Requirements Process REQUIREMENTS ELICITATION AND ANALYSIS. Requirements vs.



Similar documents
Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Introducing Formal Methods. Software Engineering and Formal Methods

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Requirements engineering

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Software Engineering Reference Framework

Specification and Analysis of Contracts Lecture 1 Introduction

Karunya University Dept. of Information Technology

Software Requirements. Objectives

11 Tips to make the requirements definition process more effective and results more usable

3SL. Requirements Definition and Management Using Cradle

Requirements Management

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

Division of Mathematical Sciences

Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

1. Process Modeling. Process Modeling (Cont.) Content. Chapter 7 Structuring System Process Requirements

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Software Engineering. Session 3 Main Theme Requirements Definition & Management Processes and Tools Dr. Jean-Claude Franchitti

Effective Business Requirements (Virtual Classroom Edition)

How To Develop Software

Requirements Definition and Management Processes

Classnotes 5: 1. Design and Information Flow A data flow diagram (DFD) is a graphical technique that is used to depict information flow, i.e.

Programming Languages

Chap 1. Introduction to Software Architecture

Creating, Solving, and Graphing Systems of Linear Equations and Linear Inequalities

Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology

Java Programming (10155)

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

OKLAHOMA SUBJECT AREA TESTS (OSAT )

Software testing. Objectives

Requirements Engineering Processes. Feasibility studies. Elicitation and analysis. Problems of requirements analysis

SOFTWARE REQUIREMENTS

Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality

Sub Code: CP7007 Sub Name: SOFTWARE REQUIREMENTS ENGINEERING Branch / Year: ME CSE / I Year Staff in charge: Dr.M.Senthil Kumar

The Software Lifecycle. Software Lifecycles

SECTION 4 TESTING & QUALITY CONTROL

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Requirements engineering and quality attributes

Software Testing Interview Questions

Verification and Validation of Software Components and Component Based Software Systems

Course Outline. Foundation of Business Analysis Course BA30: 4 days Instructor Led

Standard for Software Component Testing

VALLIAMMAI ENGINEERING COLLEGE S.R.M. Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES FIELD 050: COMPUTER SCIENCE

Process Models and Metrics

Describe the process of parallelization as it relates to problem solving.

A UML Introduction Tutorial

11 November

Syllabus. REQB Certified Professional for Requirements Engineering. Foundation Level

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Plan-Driven Methodologies

Malay A. Dalal Madhav Erraguntla Perakath Benjamin. Knowledge Based Systems, Inc. (KBSI) College Station, TX 77840, U.S.A.

Example Software Development Process.

CREDENTIALS & CERTIFICATIONS 2015

Programming and Software Development CTAG Alignments

Software Requirements

REQUIREMENTS SPECIFICATION AND MANAGEMENT. Requirements Analysis and Specification

Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)

6-1. Process Modeling

Applying 4+1 View Architecture with UML 2. White Paper

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT SYSTEMS ANALYSIS & DESIGN EXAMINERS REPORT

Software Engineering Question Bank

Kirsten Sinclair SyntheSys Systems Engineers

SOFTWARE ENGINEERING INTERVIEW QUESTIONS

Engineering Process Software Qualities Software Architectural Design

IV. Software Lifecycles

ABET General Outcomes. Student Learning Outcomes for BS in Computing

Glossary of Object Oriented Terms

Axiomatic design of software systems

Section C. Requirements Elicitation

(Refer Slide Time: 01:52)

BIS 3106: Business Process Management. Lecture Two: Modelling the Control-flow Perspective

Bottom-Line Management

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Fundamentals of Information Systems, Fifth Edition. Chapter 8 Systems Development

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM

What is a requirement? Software Requirements. Descriptions and specifications of a system

Going Faster: Testing The Web Application. By Adithya N. Analysis and Testing of Web Applications Filippo Ricca and Paolo Tonella

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Algorithms, Flowcharts & Program Design. ComPro

CTI Higher Certificate in Information Systems (Engineering)

ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology)

The C Programming Language course syllabus associate level

An Approach towards Automation of Requirements Analysis

Object-Oriented Software Specification in Programming Language Design and Implementation

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Master Degree Program in Computer Science (CS)

Algebra I Notes Relations and Functions Unit 03a

Sofware Requirements Engineeing

Goal-Oriented Requirements Engineering: An Overview of the Current Research. by Alexei Lapouchnian

2. Analysis, Design and Implementation

Budapest University of Technology and Economics Department of Measurement and Information Systems. Business Process Modeling

Requirements Traceability. Mirka Palo

Quiz Examination in Software Engineering Theory

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

How To Improve Software Quality

Transcription:

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 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 TECH Computer Science 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 REQUIREMENTS ELICITATION AND ANALYSIS Problem analysis Problem description Have we capturedare we using all the user need? the right techniques or views? Prototyping and testing Is this function feasible? REQUIREMENTS DEFINITION AND SPECIFICATION Documentation and validation Have we captured what the user expects? 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 Problem Problem understanding Specifications Design Requirementments Require- Purpose and goals elicitation definition and analysis Implementation Verification Design Code components components and use cases and unit tests Test data and scripts 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 Understanding of the application domain and the problem 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 <digit> ::= 0 1 2 3 4 5 6 7 8 9 <addop> ::= + - 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 Generalization Student number Credit-hours Compute tuition Class name Attributes Methods In-state student Student number In-state rate Compute tuition Out-of-state student Student number Out-of-state rate Compute tuition

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 X (a) 1 (b) S 1 S 2 0 S 1 S 2 1 0 0 S 3 1 Fence diagram showing state transitions (Null) Requested On waiting list I/O or Condition/action condition action S 1 S 2 Confirmed Used Canceled Archived

Transition Diagram e.g. Null room request none room available no room available Requested decrement room count put on list room available Confirmedecrement room count On waiting list customer moves in none Used customer cancels increment room count customer gives up remove from list Canceled Event Tables (State Tables) Tabulate state transitions input State 0 1 s0 s1, a1 s0, a0 s1 s0, a0 s1, a0 customer pays increment room count Archived 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 Event (a) A (b) (c) A A Event 1 Event 2.. Event N Event 1 Event N.... S S S1 SM Tokens associated with firing rules (a) 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? (b)

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 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 In-state student Out-of-state student Undergraduate Graduate studen Out-ofstate undergrad uate Additional Requirements Notations Hierarchical Techniques Data Flow Diagrams Software Requirements Engineering Methodology Structured Analysis and Design Technique Z Hierarchical Techniques Available pharmaceuticals Non-prescription products + Products Barbiturates (n 1 ) requiring a Narcotics prescription 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 (a) Data in Process Data store Data in Data out (b) Data in Process Data flow diagram e.g. Symptom Medical experience Diagnosis Physical and knowledge exam Physician Medication List of tests, services performed Diagnosis Patient history Accounting Bill Patient recordstests and Prices services Patient Accounting records 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) Compute savings balance Account request record Find account records * & Compute checking balance & Print * balances Extract dates + Compute money market balance Record transaction

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 Control Structured Analysis e.g. Tax code Submission deadline Input Activity description Output Earnings Deductions Tax history Calculate tax due Tax forms Amount due Mechanism 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) Look and Feel (2) Enter year: July 1998 Enter month: Enter day: Look and Feel (3) 1998 2025 1 31 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 Jan Tues 16 Oct 2002 Dec

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!