Understanding Software Specifications in Object-Oriented Software Engineering, Study Guides, Projects, Research of Computer Science

An overview of software specifications in the context of object-oriented software engineering. It covers the purpose and audience of specifications, their different types, and the criteria for good specifications. The document also discusses the use of specifications as a statement of user needs, implementation constraints, and documentation, as well as their role as a legal contract. The document concludes with a discussion on the importance of choosing the appropriate type and level of restrictiveness and generality in specifications.

Typology: Study Guides, Projects, Research

Pre 2010

Uploaded on 08/17/2009

koofers-user-dfv
koofers-user-dfv 🇺🇸

4

(1)

7 documents

1 / 9

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Specifications
CSC 331·631
WA K E FO R E S T
UNIVERSITY
Department of Computer Science
Spring 2002
Object-Oriented Software EngineeringppCSC 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)
E. W. Fulp Spring 2002
pf3
pf4
pf5
pf8
pf9

Partial preview of the text

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