Many software errors are due to the correct implementation of incorrectly specified requirements. For example, software designers may fail to make their assumptions explicit or may state inconsistent or ambiguous requirements. The best review process is inspection by customers and software developers who are experienced in the application area. Despite such efforts, errors persist in requirements.
This dissertation describes methods and tools for automatically analyzing software requirements before system design begins. Systems are described as state machines with event-driven transitions using a specification language that is intuitive, easy to read, and scalable to large systems. We have developed a methodology for formalizing state-transition requirements and an algorithm for transforming the formalized requirements into a representation that can be analyzed with a model checker. The result is a formal specification and analysis technique for verifying behavioral and timing requirements of real-time systems.
Using a tool implementing our algorithm and an existing model checking tool, we were able to uncover violations of system invariants in existing requirements specifications that had either been inspected or had been implemented and tested. We were also able to verify the safety and timing properties of existing discrete real-time specifications.
Cited By
- Direct generation of invariants for reactive models Proceedings of the Tenth ACM/IEEE International Conference on Formal Methods and Models for Codesign, (119-130)
- Chechik M and Gannon J (2001). Automatic Analysis of Consistency between Requirements and Designs, IEEE Transactions on Software Engineering, 27:7, (651-672), Online publication date: 1-Jul-2001.
- Jeffords R and Heitmeyer C Automatic generation of state invariants from requirements specifications Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering, (56-69)
- Jeffords R and Heitmeyer C (2019). Automatic generation of state invariants from requirements specifications, ACM SIGSOFT Software Engineering Notes, 23:6, (56-69), Online publication date: 1-Nov-1998.
- Atlee J and Buckley M (1996). A logic-model semantics for SCR software requirements, ACM SIGSOFT Software Engineering Notes, 21:3, (280-292), Online publication date: 1-May-1996.
- Atlee J and Buckley M A logic-model semantics for SCR software requirements Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis, (280-292)
- Atlee J and Gannon J (2019). State-Based Model Checking of Event-Driven System Requirements, IEEE Transactions on Software Engineering, 19:1, (24-40), Online publication date: 1-Jan-1993.
- Atlee J and Gannon J Analyzing timing requirements Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis, (117-127)
- Atlee J and Gannon J (1993). Analyzing timing requirements, ACM SIGSOFT Software Engineering Notes, 18:3, (117-127), Online publication date: 1-Jul-1993.
Index Terms
- Automated analysis of software requirements
Recommendations
Automated analysis of the SCR-style requirements specifications
AbstractThe SCR (Software Cost Reduction) requirements method is an effective method for specifying software system requirements. This paper presents a formal model analyzing SCR-style requirements. The analysis model mainly applies state translation ...
Automated consistency checking of requirements specifications
This article describes a formal analysis technique, called consistency checking, for automatic detection of errors, such as type errors, nondeterminism, missing cases, and circular definitions, in requirements specifications. The technique is designed ...
Semantic analysis of functional and non-functional requirements in software requirements specifications
Canadian AI'12: Proceedings of the 25th Canadian conference on Advances in Artificial IntelligenceSoftware Requirements Specifications (SRS) documents are important artifacts in the software industry. A SRS contains all the requirements specifications for a software system, either as functional requirements (FR) or non-functional requirements (NFR). ...