Advertisement

Maintaining Architectural Conformance during Software Development: A Practical Approach

  • Claire Dimech
  • Dharini Balasubramaniam
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7957)

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.

Keywords

conformance checking software architecture architecture degradation 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Perry, D.E., Wolf, A.L.: Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes 17, 40–52 (1992)CrossRefGoogle Scholar
  2. 2.
    Taylor, R.N., Medvidovic, N., Dashofy, E.M.: Software Architecture: Foundations, Theory, and Practice, 1st edn. Wiley (2009)Google Scholar
  3. 3.
    van Gurp, J., Bosch, J.: Design erosion: problems and causes. Journal of Systems and Software 61, 105–119 (2002)CrossRefGoogle Scholar
  4. 4.
    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)CrossRefGoogle Scholar
  5. 5.
    de Silva, L., Balasubramaniam, D.: Controlling software architecture erosion: A survey. Journal of Systems and Software 85, 132–151 (2012)CrossRefGoogle Scholar
  6. 6.
    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)Google Scholar
  7. 7.
    Dimech, C.: CARD: Controlling Architectural Degradation in Real-life Applications. Master’s thesis, University of St Andrews, Scotland, UK (2012)Google Scholar
  8. 8.
    Eclipse: Eclipse Java Development Tools (JDT) Overview, www.eclipse.org/jdt
  9. 9.
    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework, 2nd edn. Addison-Wesley, Boston (2009)Google Scholar
  10. 10.
    OMG Unified Modeling Language (OMG UML), Infrastructure, V2.1.2. Technical report (2007)Google Scholar
  11. 11.
    Bell, D.: UML basics: The Sequence Diagram (2004), http://www.ibm.com/developerworks/rational/library/3101.html
  12. 12.
    Friesen, J., Friesen, G.: Java 2 by Example. By Example Series. Que (2002)Google Scholar
  13. 13.
    Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting Software Architecture to Implementation, pp. 187–197. ACM Press (2002)Google Scholar
  14. 14.
    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)Google Scholar
  15. 15.
    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)CrossRefGoogle Scholar
  16. 16.
  17. 17.
  18. 18.
    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)CrossRefGoogle Scholar
  19. 19.
    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)Google Scholar
  20. 20.
    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)Google Scholar
  21. 21.
    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)CrossRefGoogle Scholar
  22. 22.
    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)Google Scholar
  23. 23.
    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)Google Scholar
  24. 24.
    Cleland-Huang, J., Chang, C.K., Christensen, M.: Event-Based Traceability for Managing Evolutionary Change. IEEE Trans. Softw. Eng. 29, 796–810 (2003)CrossRefGoogle Scholar
  25. 25.
    Chedgey, C., Hickey, P., O’Reilly, P.: Structure 101, http://www.headwaysoftware.com/index.php

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Claire Dimech
    • 1
  • Dharini Balasubramaniam
    • 1
  1. 1.School of Computer ScienceUniversity of St AndrewsSt AndrewsUK

Personalised recommendations