Requirements and Specifications Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 3.

Slides:



Advertisements
Similar presentations
Team Skill 5: Refining the Use Cases Lecture 11. Advantages of Use Cases They are easy to write Written in users language Provide cohesive, related threads.
Advertisements

Software Requirements
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Axiomatic Verification I Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 17.
Software Testing and Quality Assurance
CSC 402 Requirements Engineering 1. 2 Problem Definition Requirements Definition informal statement of need for system natural language statement of what.
Software Requirements
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
Software Testing and Quality Assurance
SE 555 – Software Requirements & Specifications Introduction
1 Software Requirements Specification Lecture 14.
1 REQUIREMENTS ENGINEERING and SYSTEMS ANALYSIS Elements and Definitions.
Project Documentation and its use in Testing JTALKS.
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
1 Lecture 5.3: SEF Ch 4 Requirements Analysis Dr. John MacCarthy UMBC CMSC 615 Fall, 2006.
SOFTWARE REQUIREMENTS SPECIFICATION (SRS)
Managing Software Quality
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
Lecture 16 March 22, 2011 Formal Methods CS 315 Spring Adapted from slides provided by Jason Hallstrom and Murali Sitaraman (Clemson)
ITEC224 Database Programming
Proofs of Correctness: An Introduction to Axiomatic Verification Prepared by Stephen M. Thebaut, Ph.D. University of Florida CEN 5035 Software Engineering.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
Black-Box Testing Techniques I
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Chapter 5 Software Requirements.
Lecture 7: Requirements Engineering
©Ian Sommerville 2000 Software Engineering. Chapter 6 Slide 1 Chapter 6 Software Requirements.
1 Introduction to Software Engineering Lecture 1.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering Foundations.
Requirements Engineering Methods for Requirements Engineering Lecture-30.
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Case Study: Black-Box Testing Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 6.1.
(SRS) SOFTWARE REQUIREMENT SPECIFICATION(SRS) 1. Topics to be discussed.. What is an SRS? Purpose of an SRS Who reads the SRS? Who writes the SRS? Characteristics.
Requirements Engineering for Web Applications. SR: System Vision Document Written by key stakeholders Written by key stakeholders An executive summary.
Requirements Engineering
Design Methods Instructor: Dr. Jerry Gao. Software Design Methods Design --> as a multistep process in which we design: a) data structureb) program structure.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Requirements and Specifications Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 3.
System Requirements Specification
Software Requirements Specification Document (SRS)
Requirements Analysis
 CMMI  REQUIREMENT DEVELOPMENT  SPECIFIC AND GENERIC GOALS  SG1: Develop CUSTOMER Requirement  SG2: Develop Product Requirement  SG3: Analyze.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
1 Software Testing and Quality Assurance Lecture 17 - Test Analysis & Design Models (Chapter 4, A Practical Guide to Testing Object-Oriented Software)
Functional Verification I Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture Notes 21.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 11b: Component-Level Design Software Engineering: A Practitioner’s Approach, 6/e Chapter.
 System Requirement Specification and System Planning.
An Overview of Requirements Engineering Tools and Methodologies*
Chapter 5 – Requirements Engineering
(State) Model-Based Approaches I Software Specification Lecture 35
Chapter ? Quality Assessment
Requirements and Specifications
Prepared by Stephen M. Thebaut, Ph.D. University of Florida
Prepared by Stephen M. Thebaut, Ph.D. University of Florida
Functional Verification I
Functional Verification I
Axiomatic Verification I
Prepared by Stephen M. Thebaut, Ph.D. University of Florida
Proofs of Correctness: An Introduction to Axiomatic Verification
Functional Verification II
Axiomatic Verification I
Algebraic Specification Software Specification Lecture 34
G&W Preface Software Specification Lecture 4
G&W Chapter 14: Functions Software Specification Lecture 21
G&W Chapter 15: Attributes Software Specification Lecture 22
Formal Methods Lecture 16 March 22, 2011 CS 315 Spring 2011
Presentation transcript:

Requirements and Specifications Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 3

What are Requirements and Specifications? Requirement: –something required; something wanted or needed; an essential requisite... To Specify: –to name; to state explicitly or in (sufficient) detail...

Roles of Requirements in Testing and Verification How are requirements used in testing? –Serve as basis for black-box test case design. –Source of expected results for ALL test cases. What do requirements have to do with the formal correctness assertions: {P} S {Q} ? f = [S] ? What if there are no requirements?

Roles of Requirements in Testing and Verification (cont’d) Bottom Line: testing and verification only make sense when requirements in some form are available to work with.

Exercise Consider the following pseudocode program: Sum := 0 J := 1 while J<=N do Sum := Sum + X[J] J := J+1 end_while What does it do? Is it correct?

Requirement/Specification Types Functional versus Non-Functional Formal versus Informal Structured versus Unstructured State-model based versus Operational Graphical versus Textual

A Sampling of Requirement Representations Natural language prose Numbered paragraphs (ala DoD standards) Functions, Attributes, and Constraints (ala Gause & Weinberg) Structured templates (of various sorts and levels) – e.g., Volere “shell”, XP “user stories” Decision tables Pseudocode programs (cont’d)

A Sampling of Requirement Representations (cont’d) PDL models (PSL, RSL, etc.) Cause-Effect models State-Transition models Pre- and Post-conditions Recursive (“intended”) function definitions Algebraic specifications Z-based Schemas Etc.

Requirements Sources at Different Levels Typical System-Level Sources –Objectives document –User manuals (e.g., “MAN Pages”) –Installation documents –Service manuals –Requirements definition/specification (cont’d)

Requirements Sources at Different Levels (cont’d) Typical Unit-Level Sources –Module/function/procedure specifications –Pseudocode –“Logic specifications” –Object class/method specifications (cont’d)

Requirements Sources at Different Levels (cont’d) Typical Intermediate- (e.g., Product/ Component) Level Sources –Product/component specification –“Functional specification” –Object use-include relations, sequence/collaboration diagrams, package specification

(Some) Key Attributes Completeness Consistency Unambiguousness Verifiability/Testability Correctness (?)

Completeness Possible Definition for Functional Requirements: –The desired response is specified for every possible stimulus and every system state. Definition for Non-Functional Requirements: –Constraints and preferences for every relevant attribute of every desired function are specified.

Consistency Possible Definition: There are no contradictions or conflicts in any specified functional or non-functional requirements.

Unambiguousness Possible Definition: Requirements are not subject to multiple interpretations. Gause & Weinberg’s heuristics for identifying potential ambiguity: –“Mary Had a Little Lamb” (emphasize different words) –“Mary Conned the Trader” (substitute synonyms)

“Mary had a little lamb” Heuristic Mary had a little lamb.

“Mary conned the trader” Heuristic Mary owned a petite lamb. Mary consumed a small amount of lamb. Mary was involved with a young sheep. Mary conned the trader. Mary had a little lamb.

Verifiability/Testability Possible Definition: Objective criteria exist for determining whether or not requirements will have been satisfied.

What about CORRECTNESS? The notion of a PROGRAM being correct (with respect to its requirements) is relatively straightforward, but what does it mean to say that a program’s REQUIREMENTS are correct? (cont’d)

What about CORRECTNESS? (cont’d) Possible Definition: The REQUIREMENTS for a (sub-) program are “correct” if the PROGRAM DESIGN which incorporates those requirements is correct with respect to its requirements. C Design for A Requirements for C

What about CORRECTNESS? (cont’d) In other words, the correctness of a (requirements) specification would be considered with respect to a design that incorporates that specification. For example, you might ask: “Was the decision to take this course † correct with respect to my overall plan of study?” † A self-imposed “requirement”. (cont’d)

What about CORRECTNESS? (cont’d) Based on our definition, the answer would be “yes” if your plan of study (a design that incorporates this course) satisfies your educational goals (i.e., the requirements for your plan).

What role can/should testers play in assessing/verifying the degree to which requirements are: –complete, –consistent, –unambiguous, –verifiable, –correct?

Requirements and Specifications Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 3