PANDArch: A Pluggable Automated Non-intrusive Dynamic Architecture Conformance Checker
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.
KeywordsSoftware Architecture Java Virtual Machine Compliance Check Conformance Check Architectural Constraint
Unable to display preview. Download preview PDF.
- 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.Apache Software Foundation: Apache Jackrabbit (2010), http://jackrabbit.apache.org/ (accessed April 2013)
- 3.Apache Software Foundation: Jackrabbit Architecture (2010), http://jackrabbit.apache.org/jackrabbit-architecture.html (accessed April 2013)
- 4.Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edn. Addison-Wesley (2003)Google Scholar
- 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
- 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.Oracle: Package java.lang.instrument (2013), http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/package-summary.html (accessed April 2013)
- 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.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