Abstract
Formal methods for verification of software systems often face the problem of state explosion and complexity. We present a divide and conquer methodology that leads to component based analysis and verification of formal requirements specifications expressed using Software Cost Reduction (SCR) models. The proposed methodology has the following steps: model partitioning, partition verification and composition of verification results. We define a novel decomposition methodology for SCR specifications based on minimum cut graph algorithms. Experimental validation of our methodology brought to light the importance of several concepts that have been advocated in the software development community for a long time: modularity, encapsulation, information hiding and the avoidance of global variables. The advantages of the compositional verification strategy are demonstrated in the case study, which analyses the Personnel Access Control System. Our approach offers significant savings in terms of time and memory requirements needed to perform formal system verification.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Abadi, M., Lamport, L.: Conjoining Specifications. ACM Transactions on Programming Languages and Systems 17(3), 507–534 (1995)
Alur, R., Brayton, R.K., Henzinger, T.A., Qadeer, S., Rajamani, S.K.: Partial-Order Reduction in Symbolic State-Space Exploration. Formal Methods in System Design 18, 97–116 (2001)
Bharadwaj, R., Heitmeyer, C.L.: Model Checking Complete Requirements Specifications Using Abstraction. Automated Software Engineering 6, 37–68 (1999)
Bharadwaj, R., Sims, S.: Salsa: Combining Constraint Solvers with BDDs for Automatic Invariant Checking. In: Proceedings of Tools and Algorithms for the Construction and Analysis of Systems (2000)
Chekuri, C., Goldberg, A., Karger, D., Levine, M., Stein, C.: Experimental study of minimum cut algorithms. In: SODA 1997. Proceedings of the 8th Annual ACM-SIAM Symposium on Discrete Algorithms, New Orleans, pp. 324–333 (1997)
Clarke, E.M., Grumberg, O., Long, D.E.: Model Checking and Abstraction. ACM Transactions on Programming Languages and Systems 16(5), 1512–1542 (1994)
Courtois, P.J., Parnas, D.L.: Documentation for Safety Critical Software. In: Proceedings of 15th International Conference on Software Engineering, Baltimore, MD (May 17- 21, 1993)
Cukic, B., Ammar, H.H., Lateef, K.: Identifying High-Risk Scenarios of Complex Systems Using Input Domain Partitioning. In: ISSRE 1998. Proceedings of the 9th International Symposium on Software Reliability Engineering, November 4-7, 1998 Paderborn, Germany, pp. 164–173 (1998)
Heitmeyer, C., Archer, M., Bharadwaj, R., Jeffords, R.: Tools for constructing requirements specifications: The SCR toolset at the age of ten. International Journal of Computer Systems Science and Engineering 5, 95–114 (2005)
Heitmeyer, C.L., Jeffords, R.D., Labaw, B.G.: Automated consistency checking of requirements specifications. ACM Transactions on Software Engineering and Methodology 5(3), 231–261 (1996)
Heitmeyer, C., Kirby Jr., J., Labaw, B., Archer, M., Bharadwaj, R.: Using Abstraction and Model Checking to Detect Safety Violations in Requirements Specifications. IEEE Transactions on Software Engineering 24(11), 927–948 (1998)
Heitmeyer, C., Kirby, J., Labaw, B., Bharadwaj, R.: SCR*: A Toolset for Specifying and Analyzing Requirements. In: Vardi, M.Y. (ed.) CAV 1998. LNCS, vol. 1427, Springer, Heidelberg (1998)
Henzinger, T.A., Qadeer, S., Rajamani, S.K.: You Assume, We Guarantee: Methodology and Case Studies. In: Vardi, M.Y. (ed.) CAV 1998. LNCS, vol. 1427, pp. 440–451. Springer, Heidelberg (1998)
Jeffords, R., Heitmeyer, C.: Automatic Generation of State Invariants from Requirements Specifications. In: Vaudenay, S. (ed.) FSE 1998. LNCS, vol. 1372, pp. 3–5. Springer, Heidelberg (1998)
Jeffords, R.D., Heitmeyer, C.L.: A Strategy for Efficiently Verifying Requirements Specifications Using Composition and Invariants. In: ESEC/FSE 2003. Proceedings of 9th European Software Engineering Conference held jointly with 11th International Symposium on Foundations of Software Engineering, Helsinki, Finland (September 1-5, 2003)
Parnas, D.L., Clements, P.C., Weiss, D.M.: Modular Structure of Complex Systems. In: Proceedings of the 7th International Conference on Software Engineering, pp. 408–417 (1984)
Weiser, M.: Program Slicing. IEEE Transactions on Software Engineering SE-10(4), 352–357 (1984)
Requirements Specification for Personnel Access Control System: ational Security Agency (2003)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Desovski, D., Cukic, B. (2007). A Component-Based Approach to Verification and Validation of Formal Software Models. In: de Lemos, R., Gacek, C., Romanovsky, A. (eds) Architecting Dependable Systems IV. Lecture Notes in Computer Science, vol 4615. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74035-3_5
Download citation
DOI: https://doi.org/10.1007/978-3-540-74035-3_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-74033-9
Online ISBN: 978-3-540-74035-3
eBook Packages: Computer ScienceComputer Science (R0)