Abstract
Software architecture provides a high-level design that serves as the basis for system implementation and communication among stakeholders. However, changes in requirements and lack of conformance checks during development can cause the implemented architecture to deviate from the intended one. Such architecture degradation can cause rapid software aging and high maintenance costs. Conformance checking to detect inconsistencies between a model and its corresponding implementation is one of the strategies used to minimise architecture degradation. Existing conformance checking tools often require formal architecture specifications, which are not usually available outwith academic settings, or manual intervention in the process, which affects their viability. This paper describes an automated approach that uses mappings between architecture models in UML and corresponding implementations in Java to check conformance. These notations have been chosen for their adoption in industry. A customisable tool called Card, which implements this approach, is also introduced and evaluated.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Perry, D.E., Wolf, A.L.: Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes 17, 40–52 (1992)
Taylor, R.N., Medvidovic, N., Dashofy, E.M.: Software Architecture: Foundations, Theory, and Practice, 1st edn. Wiley (2009)
van Gurp, J., Bosch, J.: Design erosion: problems and causes. Journal of Systems and Software 61, 105–119 (2002)
Parnas, D.L.: Software aging. In: Proceedings of the 16th International Conference on Software Engineering, ICSE 1994, pp. 279–287. IEEE Computer Society Press, Los Alamitos (1994)
de Silva, L., Balasubramaniam, D.: Controlling software architecture erosion: A survey. Journal of Systems and Software 85, 132–151 (2012)
Tsiolakis, A.: Consistency Analysis of UML Class and Sequence Diagrams based on Attributed Typed Graphs and their Transformation. In: ETAPS 2000 Workshop on Graph Transformation Systems, pp. 77–86 (2000)
Dimech, C.: CARD: Controlling Architectural Degradation in Real-life Applications. Master’s thesis, University of St Andrews, Scotland, UK (2012)
Eclipse: Eclipse Java Development Tools (JDT) Overview, www.eclipse.org/jdt
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework, 2nd edn. Addison-Wesley, Boston (2009)
OMG Unified Modeling Language (OMG UML), Infrastructure, V2.1.2. Technical report (2007)
Bell, D.: UML basics: The Sequence Diagram (2004), http://www.ibm.com/developerworks/rational/library/3101.html
Friesen, J., Friesen, G.: Java 2 by Example. By Example Series. Que (2002)
Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting Software Architecture to Implementation, pp. 187–197. ACM Press (2002)
Yan, H., Garlan, D., Schmerl, B., Aldrich, J., Kazman, R.: DiscoTect: A System for Discovering Architectures from Running Systems. In: Proc. Int’l Conf. Software Engineering (ICSE), Edinburgh, Scotland (2006)
Cheng, S.W., Huang, A.C., Garlan, D., Schmerl, B., Steenkiste, P.: Rainbow: Architecture-based self-adaptation with reusable infrastructure. IEEE Computer 37, 46–54 (2004)
Magicdraw open api user guide, http://www.nomagic.com/files/manuals/MagicDraw%20OpenAPI%20UserGuide.pdf
IBM: Rational rose, http://www-01.ibm.com/software/awdtools/developer/rose
Knodel, J., Popescu, D.: A Comparison of Static Architecture Compliance Checking Approaches. In: Proceedings of the Sixth Working IEEE/IFIP Conference on Software Architecture, WICSA 2007, pp. 12–21. IEEE Computer Society, Washington, DC (2007)
Bunyakiati, P., Finkelstein, A.: The Compliance Testing of Software Tools with Respect to the UML Standards Specification - The ArgoUML Case Study. In: Dranidis, D., Masticola, S.P., Strooper, P.A. (eds.) AST, pp. 138–143. IEEE (2009)
Boerman, R.: On Software Architecture Conformance in the Context of Evolving Systems. Master’s thesis, Department of Software Engineering, The Faculty of Electrical Engineering, Mathematics and Computer Science Delft University of Technology (2004)
Nentwich, C., Capra, L., Emmerich, W., Finkelstein, A.: xlinkit: A Consistency Checking and Smart Link Generation Service. ACM Trans. Internet Technol. 2, 151–185 (2002)
Abi-Antoun, M., Aldrich, J.: Checking and Measuring the Architectural Structural Conformance of Object-Oriented Systems. Technical Report CMU-ISRI-07-119, Carnegie Mellon University, Pittsburgh, PA 15213 (2007)
Herold, S.: Checking architectural compliance in component-based systems. In: Proceedings of the 2010 ACM Symposium on Applied Computing, SAC 2010, pp. 2244–2251. ACM, New York (2010)
Cleland-Huang, J., Chang, C.K., Christensen, M.: Event-Based Traceability for Managing Evolutionary Change. IEEE Trans. Softw. Eng. 29, 796–810 (2003)
Chedgey, C., Hickey, P., O’Reilly, P.: Structure 101, http://www.headwaysoftware.com/index.php
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dimech, C., Balasubramaniam, D. (2013). Maintaining Architectural Conformance during Software Development: A Practical Approach. In: Drira, K. (eds) Software Architecture. ECSA 2013. Lecture Notes in Computer Science, vol 7957. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39031-9_19
Download citation
DOI: https://doi.org/10.1007/978-3-642-39031-9_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-39030-2
Online ISBN: 978-3-642-39031-9
eBook Packages: Computer ScienceComputer Science (R0)