130 likes | 221 Views
Automatic Analysis of Consistency between Requirements and Designs. Article by Chechik and Gannon. Jon Davis Andy Kant. Introduction. Removing inconsistencies is an effective way to improve software quality.
E N D
Automatic Analysis of Consistency between Requirements and Designs Article by Chechik and Gannon Jon Davis Andy Kant
Introduction • Removing inconsistencies is an effective way to improve software quality. • Current techniques are effective, however, they require considerable amounts of skills and lots of time and investments. However, this only proves true on smaller designs. • Researchers suggest a method which checks abstractions of programs. • The method discussed in the article formalize specifications for making abstractions so that they can be used to check the consistency of a requirement.
Background • Current methods for checking inconsistencies are theorem-proving and model-checking. • The theorem-proving method requires considerable skill and time investments. • The model-checking method is limited to finite-state systems. Although fully automated, an increased amount of variables makes it too large to analyze. • The method suggested in this article is a “light-weight” formal method which achieves fully automatic verification by checking abstraction of the system for certain properties.
Requirements Notation • The light-weight method requires a formal specification and language syntax. • This method makes use of a language that is easily understood by engineers. • The models for this method are used to specify reactive systems. • The input language of each machine is a set of conditioned events. A condition is a Boolean variable.
Detailed Design • A Program Design Language (PDL) is used to specify design. This method uses a custom-defined PDL to reason about designs and Software Cost Reduction (SCR) requirements. • Designs should look like real programs – they should specify control flow using standard programming constructs. • Designs should capture the essence of what the code is doing rather than details. • Designs should be able to deal with specific conditional statements.
Analysis of Design • Five properties are checked • 1. START (If the starting state is correct) • 2. OLT (Only legal transitions) • 3. ALT (All legal transitions) • 4. ENV (Environmental assumptions are preserved) • 5. REACH (All nodes are reachable)
Results • After completing the process of creating the DGM… • Creating the FSM… • And checking for all 5 properties… • Results will finally list which properties were inconsistent in the design and the requirements. • Here is an example result table…
Overview/Conclusion • Using the defined notation, SCR specifications are written and checked for completeness. • A design is then made with the PDL and automatically verified for consistency with the requirements. • A real implementation is made around the PDL statements and checked for consistency with the design. • This process helps assure that the code implements the behavior specified in the requirements.