Download Understanding Software Specifications in Object-Oriented Software Engineering and more Study Guides, Projects, Research Computer Science in PDF only on Docsity!
Specifications
CSC 331· 631 WAKE FORESTU N I V E R S I T Y Department of Computer Science Spring 2002
Object-Oriented Software Engineeringp pCSC 331· 631 Specifications 1
Specifications
- What is a specification
- Purpose
- Audience
- Different specifications for different projects
- Criteria for good specifications
- Clarity, consistency, and completeness
- Measurable and traceable
- Operational vs definitional-specifications
- Standards for specifications
- IEEE standard for Software Requirements Specifications (SRS)
What is a Specification
- An agreement between two parties
- Between producer and the consumer
Agreement Between Producer Consumer Requirements specification
development contractor
purchaser
Design specification
implementor system architect
Module specification
programmer writing module
programmer using module
- Software must be specified precisely if there is
- More than one person’s needs to consider
- More than one person developing the software
E. W. Fulp Spring 2002
Object-Oriented Software Engineeringp pCSC 331· 631 Specifications 3
Uses of Specifications
- Statement of user needs
- Communicates understanding to all involved
- Assures the real needs have been captured
- Statement of implementation constraints
- Point of reference for developers
- Used to justify development goals and resources (estimation)
- Consider Gnu software...
- Documentation of a product
- Point of reference for product maintainers
- Baseline for change requests
- A legal contract
- A point of reference for verification and certification
- Necessary
- Does not contain anything not required
- Verifiable
- Process exists to test satisfaction of each requirement
- Every requirement is specified behaviorally Output of the program shall be produced within 20 seconds of the event 60% of the time; and shall be produced within 30 seconds of the event 100 % of the time
Is the previous statement verifiable?
- Non-verifiable requirements include statements such as works well, should not happen, ...
E. W. Fulp Spring 2002
Object-Oriented Software Engineeringp pCSC 331· 631 Specifications 7
- Unambiguous
- Avoid the pitfalls of natural language
- Every statement can be read in only one way
- Understandable (by non-technical people)
- Modifiable
- Carefully organized, minimal redundancy
- Traceable - origin of each requirement is clear
- Avoid TBD
- To Be Determined (TBD) not allowed in a complete SRS
Restrictiveness vs Generality
- Specificand sets
- Specification describes a set of acceptable behaviors
- Set of all implementations that meet a specification are its specificand set
- There are an infinite number of possible implementations procedure maxInt(a: array of ints, n: int) returns int ... effects: finds then returns the maximum value in a
- Restrictiveness
- Specification should rule-out any implementation that is not acceptable to its users Can you give an example?
E. W. Fulp Spring 2002
Object-Oriented Software Engineeringp pCSC 331· 631 Specifications 9
- Generality
- Specification should be general enough so few of the acceptable implementations are excluded
- The more desirable (e.g. efficient) implementations should not be excluded
- Examine conditions in the specification carefully...
Operational vs Definitional
- An operational specification
- Describes an abstract in terms of its behaviour (how it works) procedure search(a: array of int, x: int) returns int effects: examines each element of a and returns the index of the first element that equals x
- A declarative specification
- Describes an abstract in terms of desired properties procedure search(a: array of int, x: int) returns int effects: returns index such that a[index] == x
- Declarative specifications are better
- More general and easier to verify
E. W. Fulp Spring 2002
Object-Oriented Software Engineeringp pCSC 331· 631 Specifications 13
Modifiability and Traceability
- Modifiability
- Well structured, indexed, cross-referenced
- Redundancy reduces modifiability
- Traceability
- Backwards - each requirement traces to a source
- Forwards - each requirement traces to parts of the design that satisfy that requirement
IEEE Standard for SRS
1 Introduction
- Purpose
- Scope (identifies product and application domain)
- Definitions, acronyms, abbreviations
- Reference documents
- Overview (described contents of remainder of SRS) 2 Overall Description
- Product perspective
- Product functions (summary of major functions)
- User characteristics
- Constraints (anything that will limit developer options)
- Assumptions and dependencies 3 Specific Requirements (all requirements, body of document) Appendices Index
E. W. Fulp Spring 2002
Object-Oriented Software Engineeringp pCSC 331· 631 Specifications 15
Example IEEE SRS Section 3
3 Specific Requirements 3.1 External Interface Requirements 3.1.1 User Interfaces 3.1.2 Hardware Interfaces 3.1.3 Software Interfaces 3.1.4 Communication Interfaces 3.2 Functional Requirements 3.2.1 Mode 1 3.2.1.1 Functional requirement 1. 3.2.2 Mode 2 .. . 3.2.n Mode n 3.3 Performance Requirements 3.4 Design Contraints 3.4.1 Standards compliance 3.4.2 Hardware limitations