Advertisement

An Automatic Architecture Reconstruction and Refactoring Framework

Chapter
Part of the Studies in Computational Intelligence book series (SCI, volume 377)

Abstract

A variety of sources have noted that a substantial proportion of non trivial software systems fail due to unhindered architectural erosion. This design deterioration leads to low maintainability, poor testability and reduced development speed. The erosion of software systems is often caused by inadequate understanding, documentation and maintenance of the desired implementation architecture. If the desired architecture is lost or the deterioration is advanced, the reconstruction of the desired architecture and the realignment of this desired architecture with the physical architecture both require substantial manual analysis and implementation effort. This paper describes the initial development of a framework for automatic software architecture reconstruction and source code migration. This framework offers the potential to reconstruct the conceptual architecture of software systems and to automatically migrate the physical architecture of a software system toward a conceptual architecture model. The approach is implemented within a proof of concept prototype which is able to analyze java system and reconstruct a conceptual architecture for these systems as well as to refactor the system towards a conceptual architecture.

Keywords

Architecture reconstruction software migration source code transformation and refactoring search based software engineering metaheuristics 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Ivkovic, I., Kontogiannis, K.: A framework for software architecture refactoring using model transformations and semantic annotations. In: Proceedings of the 10th European Conference on Software Maintenance and Reengineering (CSMR 2006), Bari, Italy, p. 10 (2006)Google Scholar
  2. 2.
    Rosik, J., Le Gear, A., Buckley, J., Babar, M.A., Connolly, D.: Assessing architectural drift in commercial software development: A case study. Software: Practice and Experience 41(1), 63–86 (2010)CrossRefGoogle Scholar
  3. 3.
    Kerievsky, J.: Refactoring to patterns. Addison-Wesley Professional, Reading (2005)Google Scholar
  4. 4.
    Martin, R.C.: Design principles and design patterns (2000), Object Mentor retrieved from http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf
  5. 5.
    Koschke, R.: Architecture reconstruction: Tutorial on reverse engineering to the Architectural Level. In: International Summer School on Software Engineering, pp. 140–173 (2008)Google Scholar
  6. 6.
    Telea, A., Voinea, L., Sassenburg, H.: Visual tools for software architecture understanding: A stakeholder perspective. IEEE Software 27(6), 46–53 (2010)CrossRefGoogle Scholar
  7. 7.
    Bass, L., Clements, P., Kazman, R.: Software architecture in practice. Addison-Wesley Professional, Reading (2003)Google Scholar
  8. 8.
    Sora, I., Glodean, G., Gligor, M.: Software architecture reconstruction: An approach based on combining graph clustering and partitioning. In: Proceedings of the International Joint Conference on Computational Cybernetics and Technical Informatics, pp. 259–264 (2010)Google Scholar
  9. 9.
    Murphy, G.C., Notkin, D.: Reengineering with reflexion models: A case study. IEEE Computer 30(8), 29–36 (1997)Google Scholar
  10. 10.
    Fowler, M.: Refactoring: Improving the design of existing code. Addison-Wesley Professional, Reading (1999)Google Scholar
  11. 11.
    Ducasse, S., Pollet, D.: Software architecture reconstruction: A process-oriented taxonomy. IEEE Transactions on Software Engineering 35(4), 573–591 (2009)CrossRefGoogle Scholar
  12. 12.
    Van Gurp, J., Bosch, J.: Design erosion: problems and causes. Journal of Systems and Software 61(2), 105–119 (2002)CrossRefGoogle Scholar
  13. 13.
    Lanza, M., Ducasse, S., Gall, H., Pinzger, M.: Codecrawler: an information visualization tool for program comprehension. In: Proceedings of the 27th International Conference on Software Engineering, pp. 672–673 (2005)Google Scholar
  14. 14.
    Raza, A., Vogel, G., Plödereder, E.: Bauhaus – A Tool Suite for Program Analysis and Reverse Engineering. In: Pinho, L.M., González Harbour, M. (eds.) Ada-Europe 2006. LNCS, vol. 4006, pp. 71–82. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  15. 15.
    Wiggerts, T.A.: Using clustering algorithms in legacy systems remodularization. In: Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE 1997), Amsterdam, Netherlands, October 6-8, vol. 43, pp. 33–43 (1997)Google Scholar
  16. 16.
    Abreu FB, Goulão M, Coupling and cohesion as modularization drivers: Are we being over-persuaded?," Proceedings of the 5th Conference on Software Maintenance and Reengineering, Lisbon, Portugal (2001)Google Scholar
  17. 17.
    Dietrich, J., Yakovlev, V., McCartin, C., Jenson, G., Duchrow, M.: Cluster analysis of Java dependency graphs. In: Proceedings of the 4th ACM Symposium on Software Visualization, Herrsching am Ammersee, Germany, September 16-17, pp. 91–94 (2008)Google Scholar
  18. 18.
    Mancoridis, S., Mitchell, B.S., Chen, Y., Gansner, E.R.: Bunch: A clustering tool for the recovery and maintenance of software system structures. In: Proceedings of the IEEE International Conference on Software Maintenance (ICSM 1999), Oxford, England, UK, August 30-September 3, pp. 50–59 (1999)Google Scholar
  19. 19.
    Mitchell, B.S., Mancoridis, S.: On the automatic modularization of software systems using the Bunch tool. IEEE Transactions on Software Engineering 32(3), 193–208 (2006)CrossRefGoogle Scholar
  20. 20.
    Mitchell, B.S., Mancoridis, S.: On the evaluation of the Bunch search-based software modularization algorithm. Soft Computing-A Fusion of Foundations, Methodologies and Applications 12(1), 77–93 (2008)Google Scholar
  21. 21.
    Christl, A., Koschke, R., Storey, M.A.: Equipping the reflexion method with automated clustering, 10–98 (2005)Google Scholar
  22. 22.
    Mitchell, B.S.: A heuristic search approach to solving the software clustering problem. PhD, Drexel University, Drexel (2002)Google Scholar
  23. 23.
    Fontana, F.A., Zanoni, M.: A tool for design pattern detection and software architecture reconstruction. Information Sciences: An International Journal 181(7), 1306–1324 (2011)Google Scholar
  24. 24.
    Andritsos, P., Tzerpos, V.: Information-theoretic software clustering. IEEE Transactions on Software Engineering 31(2), 150–165 (2005)CrossRefGoogle Scholar
  25. 25.
    Bauer, M., Trifu, M.: Architecture-aware adaptive clustering of OO systems. In: Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR 2004), pp. 3–14 (2004)Google Scholar
  26. 26.
    Scanniello, G., D’Amico, A., D’Amico, C., D’Amico, T.: An approach for architectural layer recovery. In: Symposium on Applied Computing 2010 (SAC 2010), Sierre, Switzerland, pp. 2198–2202 (2010)Google Scholar
  27. 27.
    Opdyke, W.F.: Refactoring: A program restructuring aid in designing object-oriented application frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)Google Scholar
  28. 28.
    Gimnich, R., Winter, A.: Workflows der Software-Migration. Softwaretechnik-Trends 25(2), 22–24 (2005)Google Scholar
  29. 29.
    Hasselbring, W., Reussner, R., Jaekel, H., Schlegelmilch, J., Teschke, T., Krieghoff, S.: The dublo architecture pattern for smooth migration of business information systems: An experience report. In: Proceedings of the 26th International Conference on Software Engineering (ICSE 2004), pp. 117–126 (2004)Google Scholar
  30. 30.
    Heckel, R., Correia, R., Matos, C., El-Ramly, M., Koutsoukos, G., Andrade, L.: Architectural Transformations: From Legacy to Three-Tier and Services. In: Software Evolution, pp. 139–170. Springer, Heidelberg (2008), doi:10.1007/978-3-540-76440-3_7CrossRefGoogle Scholar
  31. 31.
    O’Keeffe, M., Cinnéide, M.Ó.: Search-based software maintenance. In: Proceedings of the 10th European Conference on Software Maintenance and Reengineering (CSMR 2006), pp. 249–260 (2006)Google Scholar
  32. 32.
    Bansiya, J., Davis, C.G.: A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering 28(1), 4–17 (2002)CrossRefGoogle Scholar
  33. 33.
    Ludwi, A.: Recoder homepage (March 22, 2010), http://recoder.sourceforge.net
  34. 34.
    O’Brien, L., Stoermer, C., Verhoef, C.: Software architecture reconstruction: Practice needs and current approaches. Technical Report CMU/SEI-2002-TR-024, Carnegie Mellon University (2002)Google Scholar
  35. 35.
    Harman, M., Clark, J.: Metrics are fitness functions too. In: Proceedings of the International Software Metrics Symposium, Chicago, Illinois, USA, September 14-16, pp. 58–69 (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  1. 1.SERLAuckland University of TechnologyAucklandNew Zealand

Personalised recommendations