Advertisement

PANDArch: A Pluggable Automated Non-intrusive Dynamic Architecture Conformance Checker

  • Lakshitha de Silva
  • Dharini Balasubramaniam
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7957)

Abstract

The software architecture of a system is often used to guide and constrain its implementation. While the code structure of an initial implementation is likely to conform to its intended architecture, its dynamic properties cannot be fully checked until deployment. Routine maintenance and changing requirements can also lead to a deployed system deviating from this architecture over time. Both static and dynamic checks are thus required to ensure that an implementation conforms to its prescriptive architecture throughout its lifespan. However, runtime conformance checking strategies typically alter the implementation of an application, increasing its size and affecting its performance and maintainability. In this paper, we describe the design of a novel dynamic conformance-checking framework that is pluggable and non-intrusive, thereby limiting any overheads to those periods when checking is activated. An implementation of this framework with Java as the target language and its early evaluation are also presented.

Keywords

Software Architecture Java Virtual Machine Compliance Check Conformance Check Architectural Constraint 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting software architecture to implementation. In: Proceedings of the 24th International Conference on Software Engineering, pp. 187–197. ACM (2002)Google Scholar
  2. 2.
    Apache Software Foundation: Apache Jackrabbit (2010), http://jackrabbit.apache.org/ (accessed April 2013)
  3. 3.
    Apache Software Foundation: Jackrabbit Architecture (2010), http://jackrabbit.apache.org/jackrabbit-architecture.html (accessed April 2013)
  4. 4.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edn. Addison-Wesley (2003)Google Scholar
  5. 5.
    Duszynski, S., Knodel, J., Lindvall, M.: SAVE: Software architecture visualization and evaluation. In: Proceedings of the 13th European Conference on Software Maintenance and Reengineering, pp. 323–324. IEEE (2009)Google Scholar
  6. 6.
    Ganesan, D., Keuler, T., Nishimura, Y.: Architecture compliance checking at run-time. Information and Software Technology 51(11), 1586–1600 (2009)CrossRefGoogle Scholar
  7. 7.
    Morrison, R., Kirby, G., Balasubramaniam, D., Mickan, K., Oquendo, F., Cimpan, S., Warboys, B., Snowdon, B., Greenwood, R.M.: Support for evolving software architectures in the ArchWare ADL. In: Proceedings of the 4th Working IEEE/IFIP Conference on Software Architecture, pp. 69–78. IEEE (2004)Google Scholar
  8. 8.
    Oracle: Package java.lang.instrument (2013), http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/package-summary.html (accessed April 2013)
  9. 9.
    Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes 17(4), 40–52 (1992)CrossRefGoogle Scholar
  10. 10.
    Popescu, D., Medvidovic, N.: Ensuring architectural conformance in message–based systems. In: Proceedings of the Workshop on Architecting Dependable Systems (2008)Google Scholar
  11. 11.
    Schmerl, B., Garlan, D., Yan, H.: Dynamically discovering architectures with DiscoTect. In: Proceedings of the 13th ACM International Symposium on Foundations Software Engineering, pp. 103–106. ACM (2005)Google Scholar
  12. 12.
    de Silva, L., Balasubramaniam, D.: A model for specifying rationale using an architecture description language. In: Crnkovic, I., Gruhn, V., Book, M. (eds.) ECSA 2011. LNCS, vol. 6903, pp. 319–327. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  13. 13.
    de Silva, L., Balasubramaniam, D.: Controlling software architecture erosion: A survey. Journal of Systems and Software 85(1), 132–151 (2012)CrossRefGoogle Scholar
  14. 14.
    van Gurp, J., Bosch, J.: Design erosion: problems and causes. Journal of Systems and Software 61(2), 105–119 (2002)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Lakshitha de Silva
    • 1
  • Dharini Balasubramaniam
    • 1
  1. 1.School of Computer ScienceUniversity of St AndrewsSt AndrewsUK

Personalised recommendations