Testing Software Requirements with Z and Statecharts Applied to an Embedded Control Systemt0t1

Software development starts by specifying the requirements. A Software Requirements Specification (SRS) describes what the software must do. Naturally, the SRS takes the core role as the descriptive documentation at every phase of the development cycle. To avoid problems in the latter development phases and reduce life-cycle costs, it is crucial to ensure that the specification is correct. This paper describes how to model, test and evaluate (i.e., check, examine, and probe) a natural language (NL) SRS using two formalisms (Z and Statecharts). These formalisms are used to determine strategies for avoiding design defects that stem from the requirements that could ultimately lead to system failures. A case study was performed to validate the integrity of a Guidance Control SRS in terms of completeness, consistency, and fault-tolerance. Based on these experiences, the NL-specification→Z→Statechart transformations can be completed in a systematic and repeatable manner that yield valuable insight into the overall integrity of software specifications.

[1]  Stefania Gnesi,et al.  An Automatic Quality Evaluation for Natural Language Requirements , 2001 .

[2]  Rodolfo Castelló,et al.  From informal specification to formalization: an automated visualization approach , 2000 .

[3]  B. Edward Withers,et al.  Software requirements: Guidance and control software development specification , 1990 .

[4]  David Harel,et al.  Modeling Reactive Systems With Statecharts : The Statemate Approach , 1998 .

[5]  Matthias Weber,et al.  A Steam-Boiler Control Specification with Statecharts and Z , 1995, Formal Methods for Industrial Applications.

[6]  Frederick T. Sheldon,et al.  Validation of guidance control software requirements specification for reliability and fault-tolerance , 2002, Annual Reliability and Maintainability Symposium. 2002 Proceedings (Cat. No.02CH37318).

[7]  Ian Sommerville,et al.  Software engineering (6th ed.) , 2001 .

[8]  Ian Sommerville,et al.  Requirements Engineering: Processes and Techniques , 1998 .

[9]  Nancy G. Leveson,et al.  Completeness and Consistency in Hierarchical State-Based Requirements , 1996, IEEE Trans. Software Eng..

[10]  Hans van Vliet,et al.  Software engineering (2nd ed.): principles and practice , 2000 .

[11]  Robert Geisler,et al.  Specifying Safety-Critical Embedded Systems with Statecharts and Z: A Case Study , 1998, FASE.

[12]  Hans van Vliet,et al.  Software engineering - principles and practice , 1993 .

[13]  Hardi Hungar,et al.  Statecharts: Using graphical specification languages and symbolic model checking in the verification of a production cell , 1995 .

[14]  Alan C. Shaw,et al.  Real-time systems and software , 2001 .

[15]  Egon Börger,et al.  Formal methods for industrial applications : specifying and programming the steam boiler control , 1996 .

[16]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[17]  Xudong He,et al.  PZ nets a formal method integrating Petri nets with Z , 2001, Inf. Softw. Technol..

[18]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[19]  Robert M. Hierons,et al.  Testing a system specified using Statecharts and Z , 2001, Inf. Softw. Technol..

[20]  Frederick T. Sheldon,et al.  A case study: validation of guidance control software requirements for completeness, consistency and fault tolerance , 2001, Proceedings 2001 Pacific Rim International Symposium on Dependable Computing.

[21]  Mike Holcombe,et al.  Statechart testing method for aircraft control systems , 2001, Softw. Test. Verification Reliab..

[22]  Donald Sannella,et al.  Algebraic Preliminaries , 1999, Algebraic Foundations of Systems Specification.

[23]  Myla Archer,et al.  Using Abstraction and Model Checking to Detect Safety Violations in Requirements Specifications , 1998, IEEE Trans. Software Eng..

[24]  Marie-Claude Gaudel,et al.  The Role of Formal Specifications , 1999, Algebraic Foundations of Systems Specification.

[25]  Nancy G. Leveson,et al.  Safeware: System Safety and Computers , 1995 .

[26]  Jeffrey M. Voas,et al.  A 'Crystal Ball' for Software Liability , 1997, Computer.

[27]  Maritta Heisel,et al.  Specifying embedded systems with statecharts and Z: an agenda for cyclic software components , 2001, Sci. Comput. Program..

[28]  Dhiraj K. Pradhan,et al.  Fault-tolerant computer system design , 1996 .

[29]  Mats P. E. Heimdahl,et al.  Integrative analysis of state-based requirements for completeness and consistency , 1998 .