Specifying Software Requirements for Complex Systems: New Techniques and Their Application

  title={Specifying Software Requirements for Complex Systems: New Techniques and Their Application},
  author={Kathryn L. Heninger},
  journal={IEEE Transactions on Software Engineering},
  • Kathryn L. Heninger
  • Published 17 May 2001
  • Computer Science
  • IEEE Transactions on Software Engineering
This paper concerns new techniques for making requirements specifications precise, concise, unambiguous, and easy to check for completeness and consistency. The techniques are well-suited for complex real-time software systems; they were developed to document the requirements of existing flight software for the Navy's A-7 aircraft. The paper outlines the information that belongs in a requirements document and discusses the objectives behind the techniques. Each technique is described and… 

Figures from this paper

Abstract requirements specification: A new approach and its application

An approach to producing abstract requirements specifications that applies to a significant class of real-world systems, including any system that must reconstruct data that have undergone a sequence of transformations is introduced.

Using the SCR* toolset to specify software requirements

  • C. Heitmeyer
  • Computer Science
    Proceedings. 2nd IEEE Workshop on Industrial Strength Formal Specification Techniques
  • 1998
To provide powerful, robust tool support customized for theSCR method, the SCR* toolset is developed and a formal model which defines the semantics of SCR requirements specifications is developed.

From Requirements to Architecture

How a well-structured requirements document can be used to organize the software so that it will be easy to maintain and there will be clear traceability between code and requirements is explained.

Applying a Formal Requirements Method to Three NASA Systems: Lessons Learned

How significant and complex requirements of one of the components can be translated into an SCR specification is demonstrated and the errors detected when the authors formulated the requirements in SCR are described.

A Methodology for Systems Requirements Specification and Traceability for Large Real Time Complex Systems

The methodology will cover the requirements aspects of system development over the entire system development life cycle, beginning with the specification of the requirements and tracing those requirements to the design and final implementation.

Applying the Scr Requirements Speciication Method to Practical Systems: a Case Study X Presented at the 21 St Software Engineering Workshop

The autopilot mode control panel is used as an example for comparing and contrasting the SCR approach to requirements speci cation and analysis with the approach used in [4], which uses the formal language of SRI's Prototype Veri cation System (PVS).

Requirements Specification for Process-Control Systems

An example specification demonstrates the practicality of writing a formal requirements specification for a complex, process-control system; and the feasibility of building a formal model of a system using a specification language that is readable and reviewable by application experts who are not computer scientists or mathematicians.

Integrated safety analysis of requirements specifications

It is discovered that the more the analyst knew about the application and the model, the more successful they were in finding errors and imply that the most effective safety-analysis tools will assist rather than replace the analyst.

Specification of Software Component Requirements Using the Trace Function Method

This paper analysed the requirements of a telecommunications system and wrote a description that contains all pertinent information in one easily used reference document, which is more compact and complete than traditional software documentation.

Documentation of requirements for computer systems

A functional approach to specifying the requirements of a computer system is discussed, a refinement of the method used in the A-7 aircraft software requirements model document.



Specification techniques for data abstractions

The role of formal specifications both in proofs of program correctness and in programming methodologies leading to programs which are correct by construction, is explained and some criteria are established for evaluating the practical potential of specification techniques.

Use of Abstract Interfaces in the Development of Software for Embedded Computer Systems

A procedure for designing computer systems that are developed specifically to be a component of a more complex system to reduce maintenance costs by means of a software organization that insulates most of the programs from changes in the interface.

SPECIAL Reference Manual.

The specification language SPECIAL is described, which is a tool developed for the design of large software systems based on a methodology using the concept of a hierarchy of modules, and provides a convenient facility for the description of the properties of such modules.

Designing Software for Ease of Extension and Contraction

  • D. Parnas
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1979
It is shown that the identification of minimal subsets and minimal extensions can lead to software that can be tailored to the needs of a broad variety of users.

Response to undesired events in software systems

A program organization which aims at satisfying the following criteria is described, which can evolve from an initial version that does little recovery to one which uses sophisticated recovery techniques without a change in the structure of the system.

Information Distribution Aspects of Design Methodology

The role of documentation in the design and implementation of complex systems is explored, resulting in suggestions in sharp contrast with current practice, and the thesis that such information "broadcasting is harmful, that it is helpful if most system information is hidden from most programmers, is supported.

On the criteria to be used in decomposing systems into modules

This paper discusses modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time. The effectiveness of a

Notes on Type Abstraction (Version 2)

  • J. Guttag
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1980
This paper begins by discussing in a general setting the role of type abstraction and the need for formal specifications of type abstractions, and examines in some detail two approaches to the construction of such specifications: that proposed by Hoare in his 1972 paper "Proofs of Correctness of Data Representations," and the author's own version of algebraic specifications.

Abstract data types and the development of data structures

  • J. Guttag
  • Computer Science
    Software Pioneers
  • 1976
The application of an algebraic technique for the specification of abstract data types is presented and a top-down development of a symbol table for a block structured language is presented, including a discussion of the proof of its correctness.

Monitors: an operating system structuring concept

This paper develops Brinch-Hansen's concept of a monitor as a method of structuring an operating system. It introduces a form of synchronization, describes a possible method of implementation in