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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
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)
Kerievsky, J.: Refactoring to patterns. Addison-Wesley Professional, Reading (2005)
Martin, R.C.: Design principles and design patterns (2000), Object Mentor retrieved from http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf
Koschke, R.: Architecture reconstruction: Tutorial on reverse engineering to the Architectural Level. In: International Summer School on Software Engineering, pp. 140–173 (2008)
Telea, A., Voinea, L., Sassenburg, H.: Visual tools for software architecture understanding: A stakeholder perspective. IEEE Software 27(6), 46–53 (2010)
Bass, L., Clements, P., Kazman, R.: Software architecture in practice. Addison-Wesley Professional, Reading (2003)
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)
Murphy, G.C., Notkin, D.: Reengineering with reflexion models: A case study. IEEE Computer 30(8), 29–36 (1997)
Fowler, M.: Refactoring: Improving the design of existing code. Addison-Wesley Professional, Reading (1999)
Ducasse, S., Pollet, D.: Software architecture reconstruction: A process-oriented taxonomy. IEEE Transactions on Software Engineering 35(4), 573–591 (2009)
Van Gurp, J., Bosch, J.: Design erosion: problems and causes. Journal of Systems and Software 61(2), 105–119 (2002)
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)
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)
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)
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)
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)
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)
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)
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)
Christl, A., Koschke, R., Storey, M.A.: Equipping the reflexion method with automated clustering, 10–98 (2005)
Mitchell, B.S.: A heuristic search approach to solving the software clustering problem. PhD, Drexel University, Drexel (2002)
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)
Andritsos, P., Tzerpos, V.: Information-theoretic software clustering. IEEE Transactions on Software Engineering 31(2), 150–165 (2005)
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)
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)
Opdyke, W.F.: Refactoring: A program restructuring aid in designing object-oriented application frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)
Gimnich, R., Winter, A.: Workflows der Software-Migration. Softwaretechnik-Trends 25(2), 22–24 (2005)
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)
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
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)
Bansiya, J., Davis, C.G.: A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering 28(1), 4–17 (2002)
Ludwi, A.: Recoder homepage (March 22, 2010), http://recoder.sourceforge.net
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)