Skip to main content

Applying static analysis to software architectures

  • Regular Sessions
  • Conference paper
  • First Online:
Software Engineering — ESEC/FSE'97 (ESEC 1997, SIGSOFT FSE 1997)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R. Allen and D. Garlan. Formalizing architectural connection.In Proceedings of the 14th International Conference on Software Engineering, pages 71–80, May 1994.

    Google Scholar 

  2. R. Allen and D. Garlan. The Wright architectural specification language. Technical Report CMU-CS-96-TBD, Carnegie Mellon University, School of Computer Science, 1996.

    Google Scholar 

  3. B. W. Boehm. Software and Its Impact: A Qualitative Assessment. Datamation, pages 4859, May 1973.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. Formal Systems (Europe) Ltd., Oxford, England. Failures Divergence Refinement: User Manual and Tutorial. 1.20β, 1992.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. D. Helmbold and D. Luckham. Debugging Ada tasking programs. IEEE Software, 2(2):47–57, March 1985.

    Google Scholar 

  10. C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, 1985.

    Google Scholar 

  11. G. J. Holzmann. Design and Validation of Computer Protocols. Prentice Hall Software Series, 1991.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. K. L. McMillan. Symbolic Model Checking. Kluwer Academic Publishers, Boston, 1993.

    Google Scholar 

  18. M. Moriconi, X. Qian, and R. A. Riemenschneider. Correct architecture refinement. IEEE Transactions on Software Engineering, 21(4):356–372, April 1995.

    Google Scholar 

  19. 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).

    Google Scholar 

  20. 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.

    Google Scholar 

  21. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mehdi Jazayeri Helmut Schauer

Rights and permissions

Reprints 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

Publish with us

Policies and ethics