Abstract
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.
Similar content being viewed by others
References
Bogdanov, K. and Holcombe, M. 2001. Statechart testing method for aircraft control systems, Software Testing, Verification & Reliability 11(1): 39-54.
Bussow, R., Geisler, R., and Klar, M. 1998. Specifying safety-critical embedded systems with Statecharts and Z: A case study, Lecture Notes in Computer Science, Vol. 1382, pp. 71-87.
Bussow, R. and Weber, M. 1996. A steam-boiler control specification with Statecharts and Z, Lecture Notes in Computer Science, Vol. 1165, pp. 109-128.
Castello, R. 2000. From Informal Specification to Formalization: an Automated Visualization Approach, PhD dissertation in computer science, University of Texas at Dallas.
Czerny, B. 1998. Integrative Analysis of State-Based Requirements for Completeness and Consistency, PhD dissertation in computer science, Michigan State University.
Damm, W., Hungar, H., Kelb, P., and Schlor, R. 1995. Statecharts—using graphical specification languages and symbolic model checking in the verification of a production cell, Lecture Notes in Computer Science, Vol. 891, pp. 131-149.
Fabbrini, F., Fusani, M., Gnesi S., and Lami, G. 2001. An automatic quality evaluation for natural language requirements, 7th Int. Workshop on Req. Eng.: Foundation for SW Quality (REFSQ), www.ifi.uib.no/conf/refsq2001/papers/p3.pdf. Accessed on Mar. 25, 2002.
chapters/chapters.html (June 1999).
Grieskamp, W., Heisel, M., and Dorr, H. 1998. Specifying embedded systems with Statecharts and Z: An agenda for cyclic software components, Science of Computer Programming 40: 31-57.
Harel, D. 1987. Statecharts: A visual formalism for complex systems, Science of Computer Programming 8: 231-274.
Harel, D. and Politi, M. 1998. Modeling Reactive Systems with Statecharts. McGraw-Hill.
He, X. 2001. PZ nets—a formal method integrating Petri nets with Z, Information and Software Technology 43(1): 1-18.
Heimdahl, M.P.E. and Leveson, N.G. 1996. Completeness and consistency in hierarchical state-based requirements, IEEE Transactions on Software Engineering 22(6): 363-377.
Heitmeyer, C., Kirby, Jr., J., Labaw, B., Archer, M., and Bharadwaj, R. 1998. Using abstraction and model checking to detect safety violations in requirements specification, IEEE Transactions on Software Engineering 24(11): 927-948.
Hierons, R.M., Sadeghipour, S., and Singh, H. 2001. Testing a system specified using Statecharts and Z, Information and Software Technology 43: 137-149.
Kotonya, G. and Sommerville, I. 1998. Requirements Engineering: Process and Techniques. New York, Wiley.
Leveson, N. 1995. Safeware—System Safety and Computers. Reading, MA, Addison Wesley.
NASA. 1993. Software Requirements—Guidance and Control Software Development Specification Ver 2.2 with the formal mods 1–8. NASA, Langley Research Center.
Pradhan, D. K. 1996. Fault-Tolerant Computer System Design, pp. 428-477. Prentice Hall.
chapters/chapters.html (June 1999).
Shaw, A.C. 2001. Real-Time Systems and Software. New York, Wiley.
Sheldon, F.T. and Kim, H.Y. 2002. Validation of guidance control software requirements specification for reliability and fault-tolerance. Proc. of Annual Reliability and Maintainability Symp. Seattle, WA, pp. 312-318. IEEE.
Sheldon, F.T., Kim, H.Y., and Zhou, Z. 2001. A case study: Validation of the guidance control software requirements for completeness, consistency, and fault tolerance, Proc. of IEEE 2001 Pacific Rim Intl. Symp. on Dependable Computing, Seoul, Korea, pp. 311-318. IEEE Computer Society.
Sommerville, I. 2000. Software Engineering, 6th ed. Reading, MA, Addison-Wesley.
Vliet, H.V. 2000. Software Engineering: Principles and Practice. New York, Wiley.
Voas, J., McGraw, G., Kassab, L., and Voas, L. 1997. A crystal ball for software liability, IEEE Computer 30(6): 29-36.
Woodcock, J. and Davies, J. 1996. Using Z: Specification, Refinement, and Proof. Prentice-Hall.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Kim, H.Y., Sheldon, F.T. Testing Software Requirements with Z and Statecharts Applied to an Embedded Control Systemt0t1. Software Quality Journal 12, 231–264 (2004). https://doi.org/10.1023/B:SQJO.0000034710.86897.16
Issue Date:
DOI: https://doi.org/10.1023/B:SQJO.0000034710.86897.16