Abstract
In this paper we demonstrate how static concurrency analysis techniques can be used to verify application-specific properties of an architecture description. Specifically, we use two concurrency analysis tools, INCA, a flow equation based tool, and FLAVERS, a data flow analysis based tool, to detect errors or prove properties of a WRIGHT architecture description of the gas station problem. Although both these tools are research prototypes, they illustrate the potential of static analysis for verifying that architecture descriptions adhere to important properties, for detecting problems early in the lifecycle, and for helping developers understand the changes that need to be made to satisfy the properties being analyzed.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
R. Allen and D. Garlan. Formalizing architectural connection.In Proceedings of the 14th International Conference on Software Engineering, pages 71–80, May 1994.
R. Allen and D. Garlan. The Wright architectural specification language. Technical Report CMU-CS-96-TBD, Carnegie Mellon University, School of Computer Science, 1996.
B. W. Boehm. Software and Its Impact: A Qualitative Assessment. Datamation, pages 4859, May 1973.
J. Burch, E. Clarke, K. McMillan, D. Dill, and L. Hwang. Symbolic model checking: 1020 states and beyond. In Proceedings of the Fifth Annual IEEE Symposium on Logic in Computer Science, pages 428–439, 1990.
J. C. Corbett and G. S. Avrunin. Using integer programming to verify general safety and liveness properties. Formal Methods in System Design, 6:97–123, January 1995.
M. Dwyer and L. Clarke. Data flow analysis for verifying properties of concurrent programs. In Proceedings of the Second ACM Sigsoft Symposium on Foundations of Software Engineering, volume 19, pages 62–75, December 1994.
Formal Systems (Europe) Ltd., Oxford, England. Failures Divergence Refinement: User Manual and Tutorial. 1.20β, 1992.
P. Godefroid and P. Wolper. Using partial orders for the efficient verification of deadlock freedom and safety properties. In Proceedings of the Third Workshop on Computer Aided Verification, pages 417–428, July 1991.
D. Helmbold and D. Luckham. Debugging Ada tasking programs. IEEE Software, 2(2):47–57, March 1985.
C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.
G. J. Holzmann. Design and Validation of Computer Protocols. Prentice Hall Software Series, 1991.
M. H. Klein, T. Ralya, B. Pollak, R. Obenza, and M. Harobur. A Practitioner's Handbook for Real-Time Analysis: Guide to Rate Monotonic Analysis for Real-Time Systems. New York: Kluwer-Academic, 1993.
D. C. Luckham, L. M. Augustin, J. J. Kenney, J. Veera, D. Bryan, and W. Mann. Specification analysis of system architecture using Rapide. IEEE Transactions on Software Engineering, 21(4):336–355, April 1995.
J. Magee, N. Dulay, S. Eisenbach, and J. Kramer. Specifying distributed software architectures. In Proceedings of 5th European Software Engineering Conference, pages 137–153, September 1995.
J. Magee and J. Kramer. Dynamic structure in software architectures. In Proceedings of the 4th ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages 3–13, October 1996.
S. Masticola and B. Ryder. A model of Ada programs for static deadlock detection in polynomial time. In Proceedings of the Workshop on Parallel and Distributed Debugging, pages 97–107. ACM, May 1991.
K. L. McMillan. Symbolic Model Checking. Kluwer Academic Publishers, Boston, 1993.
M. Moriconi, X. Qian, and R. A. Riemenschneider. Correct architecture refinement. IEEE Transactions on Software Engineering, 21(4):356–372, April 1995.
G. Naumovich, G. S. Avrunin, L. A. Clarke, and L. J. Osterweil. Applying static analysis to software architectures. Technical Report UM-CS-1997-008, University of Massachusetts/Amherst, 1997. (http://laser.cs.umass.edu/abstracts/architecture.html).
M. Shaw, R. DeLine, D. V. Klein, T. L. Ross, D. M. Young, and G. Zelesnik. Abstractions for software architecture and tools to support them. IEEE Transactions on Software Engineering, 21(4):314–335, April 1995.
A. Valmari. A stubborn attack on state explosion. In E. M. Clarke and R. Kurshan, editors, Computer-Aided Verification 90, pages 25–41. American Mathematical Society, Providence RI, 1991. Number 3 in DIMACS Series in Discrete Mathematics and Theoretical Computer Science.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Naumovich, G., Avrunin, G.S., Clarke, L.A., Osterweil, L.J. (1997). Applying static analysis to software architectures. In: Jazayeri, M., Schauer, H. (eds) Software Engineering — ESEC/FSE'97. ESEC SIGSOFT FSE 1997 1997. Lecture Notes in Computer Science, vol 1301. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63531-9_8
Download citation
DOI: https://doi.org/10.1007/3-540-63531-9_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63531-4
Online ISBN: 978-3-540-69592-9
eBook Packages: Springer Book Archive