Skip to main content

An Automatic Architecture Reconstruction and Refactoring Framework

  • Chapter
Software Engineering Research,Management and Applications 2011

Part of the book series: Studies in Computational Intelligence ((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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. 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)

    Article  Google Scholar 

  3. Kerievsky, J.: Refactoring to patterns. Addison-Wesley Professional, Reading (2005)

    Google Scholar 

  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. 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. Telea, A., Voinea, L., Sassenburg, H.: Visual tools for software architecture understanding: A stakeholder perspective. IEEE Software 27(6), 46–53 (2010)

    Article  Google Scholar 

  7. Bass, L., Clements, P., Kazman, R.: Software architecture in practice. Addison-Wesley Professional, Reading (2003)

    Google Scholar 

  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. Murphy, G.C., Notkin, D.: Reengineering with reflexion models: A case study. IEEE Computer 30(8), 29–36 (1997)

    Google Scholar 

  10. Fowler, M.: Refactoring: Improving the design of existing code. Addison-Wesley Professional, Reading (1999)

    Google Scholar 

  11. Ducasse, S., Pollet, D.: Software architecture reconstruction: A process-oriented taxonomy. IEEE Transactions on Software Engineering 35(4), 573–591 (2009)

    Article  Google Scholar 

  12. Van Gurp, J., Bosch, J.: Design erosion: problems and causes. Journal of Systems and Software 61(2), 105–119 (2002)

    Article  Google Scholar 

  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. 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)

    Chapter  Google Scholar 

  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. 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. 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. 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. 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)

    Article  Google Scholar 

  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. Christl, A., Koschke, R., Storey, M.A.: Equipping the reflexion method with automated clustering, 10–98 (2005)

    Google Scholar 

  22. Mitchell, B.S.: A heuristic search approach to solving the software clustering problem. PhD, Drexel University, Drexel (2002)

    Google Scholar 

  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. Andritsos, P., Tzerpos, V.: Information-theoretic software clustering. IEEE Transactions on Software Engineering 31(2), 150–165 (2005)

    Article  Google Scholar 

  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. 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. 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. Gimnich, R., Winter, A.: Workflows der Software-Migration. Softwaretechnik-Trends 25(2), 22–24 (2005)

    Google Scholar 

  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. 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_7

    Chapter  Google Scholar 

  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. Bansiya, J., Davis, C.G.: A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering 28(1), 4–17 (2002)

    Article  Google Scholar 

  33. Ludwi, A.: Recoder homepage (March 22, 2010), http://recoder.sourceforge.net

  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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Schmidt, F., MacDonell, S.G., Connor, A.M. (2012). An Automatic Architecture Reconstruction and Refactoring Framework. In: Lee, R. (eds) Software Engineering Research,Management and Applications 2011. Studies in Computational Intelligence, vol 377. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-23202-2_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-23202-2_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-23201-5

  • Online ISBN: 978-3-642-23202-2

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics