Advertisement

Automated Architecture Consistency Checking for Model Driven Software Development

  • Matthias Biehl
  • Welf Löwe
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5581)

Abstract

When software projects evolve their actual implementation and their intended architecture may drift apart resulting in problems for further maintenance. As a countermeasure it is good software engineering practice to check the implementation against the architectural description for consistency. In this work we check software developed by a Model Driven Software Development (MDSD) process. This allows us to completely automate consistency checking by deducing information from implementation, design documents, and model transformations. We have applied our approach on a Java project and found several inconsistencies hinting at design problems. With our approach we can find inconsistencies early, keep the artifacts of an MDSD process consistent, and, thus, improve the maintainability and understandability of the software.

Keywords

Model Transformation Consistency Check Design Document Fact Extractor Transformation Engine 
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.
    Anquetil, N., Lethbridge, T.: Comparative study of clustering algorithms and abstract representations for software remodularisation. In: IEE Proceedings - Software, vol. 150, pp. 185–201. Catholic Univ. of Brasilia, Brazil (2003)Google Scholar
  2. 2.
    Blanc, X., Mounier, I., Mougenot, A., Mens, T.: Detecting model inconsistency through operation-based model construction. In: ICSE 2008, pp. 511–520. ACM, New York (2008)Google Scholar
  3. 3.
    Christl, A., Koschke, R., Storey, M.-A.D.: Equipping the reflexion method with automated clustering. In: WCRE. IEEE Press, Los Alamitos (2005)Google Scholar
  4. 4.
    Christl, A., Koschke, R., Storey, M.-A.D.: Automated clustering to support the reflexion method. Information & Software Technology 49(3), 255–274 (2007)CrossRefGoogle Scholar
  5. 5.
    Czarnecki, K., Helsen, S.: Feature-based survey of model transformation approaches. IBM Systems Journal 45(3), 621–645 (2006)CrossRefGoogle Scholar
  6. 6.
    Efftinge, S., Friese, P., Haase, A., Kadura, C., Kolb, B., Moroff, D., Thoms, K., Völter, M.: openarchitectureware user guide. Technical report, openArchitectureWare Community (2007)Google Scholar
  7. 7.
    Egyed, A.: Validating consistency between architecture and design descriptions, March 6 (2002)Google Scholar
  8. 8.
    Egyed, A., Medvidovíc, N.: A formal approach to heterogeneous software modeling. In: Maibaum, T. (ed.) FASE 2000. LNCS, vol. 1783, pp. 178–192. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  9. 9.
    Egyed, A., Medvidovic, N.: Consistent architectural refinement and evolution using the unified modeling language, March 6 (2001)Google Scholar
  10. 10.
    Garey, M.R., Johnson, D.S.: Computers and Intractability. W.H. Freeman, New York (1979)zbMATHGoogle Scholar
  11. 11.
    Himsolt, M.: GraphEd: a graphical platform for the implementation of graph algorithms. In: Tamassia, R., Tollis, I(Y.) G. (eds.) GD 1994. LNCS, vol. 894. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  12. 12.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  13. 13.
    Koschke, R., Simon, D.: Hierarchical reflexion models. In: WCRE, pp. 36–45. IEEE Press, Los Alamitos (2003)Google Scholar
  14. 14.
    Lowe, W., Panas, T.: Rapid construction of software comprehension tools. In: International Journal of Software Engineering and Knowledge Engineering (2005)Google Scholar
  15. 15.
    Mens, T., Van Der Straeten, R., D’Hondt, M.: Detecting and Resolving Model Inconsistencies Using Transformation Dependency Analysis. In: Nierstrasz, O., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 200–214. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  16. 16.
    Murphy, G.C., Notkin, D.: Reengineering with reflexion models: A case study. Computer 30(8), 29–36 (1997)CrossRefGoogle Scholar
  17. 17.
    Murphy, G.C., Notkin, D., Sullivan, K.J.: Software reflexion models: bridging the gap between design and implementation. IEEE Transactions on Software Engineering 27(4), 364–380 (2001)CrossRefGoogle Scholar
  18. 18.
    Muskens, J., Bril, R.J., Chaudron, M.R.V.: Generalizing consistency checking between software views. In: 5th Working IEEE/IFIP Conference on Software Architecture, 2005. WICSA 2005, pp. 169–180 (2005)Google Scholar
  19. 19.
    Nentwich, C., Emmerich, W., Finkelstein, A.: Static consistency checking for distributed specifications (2001)Google Scholar
  20. 20.
    Nentwich, C., Emmerich, W., Finkelstein, A.: Flexible consistency checking. ACM Transactions on Software Engineering and Methodology 12(1), 28–63 (2003)CrossRefGoogle Scholar
  21. 21.
    Paige, R.F., Kolovos, D.S., Polack, F.: Refinement via consistency checking in MDA. Electr. Notes Theor. Comput. Sci 137(2), 151–161 (2005)CrossRefzbMATHGoogle Scholar
  22. 22.
    Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM (1972)Google Scholar
  23. 23.
    Perry, D., Wolf, A.: Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes 17(4), 40–52 (1992)CrossRefGoogle Scholar
  24. 24.
    Postma, A.: A method for module architecture verification and its application on a large component-based system. Information & Software Technology 45(4), 171–194 (2003)CrossRefGoogle Scholar
  25. 25.
    Stahl, T., Völter, M.: Model driven software development. Wiley, Chichester (2006)zbMATHGoogle Scholar
  26. 26.
    Tran, J.B., Godfrey, M.W., Lee, E.H.S., Holt, R.C.: Architectural repair of open source software. In: IWPC 2000, p. 48 (2000)Google Scholar
  27. 27.
    Tzerpos, V., Holt, R.C.: Software botryology: Automatic clustering of software systems. In: DEXA Workshop, pp. 811–818 (1998)Google Scholar
  28. 28.
    Wiggerts, T.A.: Using clustering algorithms in legacy systems remodularization. In: Reverse Engineering, WCRE 1997, pp. 33–43 (1997)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Matthias Biehl
    • 1
    • 2
  • Welf Löwe
    • 1
  1. 1.Software Technology GroupVäxjö UniversitySweden
  2. 2.Embedded Control SystemsRoyal Institute of TechnologySweden

Personalised recommendations