Title :
Automatic analysis of consistency between requirements and designs
Author :
Chechik, Marsha ; Gannon, John
Author_Institution :
Dept. of Comput. Sci., Toronto Univ., Ont., Canada
fDate :
7/1/2001 12:00:00 AM
Abstract :
Writing requirements in a formal notation permits automatic assessment of such properties as ambiguity, consistency, and completeness. However, verifying that the properties expressed in requirements are preserved in other software life cycle artifacts remains difficult. The existing techniques either require substantial manual effort and skill or suffer from exponential explosion of the number of states in the generated state spaces. “Light-weight” formal methods is an approach to achieve scalability in fully automatic verification by checking an abstraction of the system for only certain properties. We describe light-weight techniques for automatic analysis of consistency between software requirements (expressed in SCR) and detailed designs in low-degree-polynomial time, achieved at the expense of using imprecise data-flow analysis techniques. A specification language SCR describes the systems as state machines with event-driven transitions. We define detailed designs to be consistent with their SCR requirements if they contain exactly the same transitions. We have developed a language for specifying detailed designs, an analysis technique to create a model of a design through data-flow analysis of the language constructs, and a method to automatically generate and check properties derived from requirements to ensure a design´s consistency with them. These ideas are implemented in a tool named CORD, which we used to uncover errors in designs of some existing systems
Keywords :
data flow analysis; formal specification; formal verification; software tools; specification languages; CORD tool; SCR language; automatic verification; data-flow analysis; event-driven transitions; formal methods; formal notation; polynomial time; requirements analysis; requirements verification; scalability; software design; software life cycle artifacts; specification language; state machines; Computer Society; Costs; Data analysis; Explosions; Manuals; Page description languages; Scalability; Software quality; State-space methods; Thyristors;
Journal_Title :
Software Engineering, IEEE Transactions on