Skip to main content
Log in

Reengineering component-based software systems with Archimetrix

  • Special Section Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

Many software development, planning, or analysis tasks require an up-to-date software architecture documentation. However, this documentation is often outdated, unavailable, or at least not available as a formal model which analysis tools could use. Reverse engineering methods try to fill this gap. However, as they process the system’s source code, they are easily misled by design deficiencies (e.g., violations of component encapsulation) which leaked into the code during the system’s evolution. Despite the high impact of design deficiencies on the quality of the resulting software architecture models, none of the surveyed related works is able to cope with them during the reverse engineering process. Therefore, we have developed the Archimetrix approach which semiautomatically recovers the system’s concrete architecture in a formal model while simultaneously detecting and removing design deficiencies. We have validated Archimetrix on a case study system and two implementation variants of the CoCoME benchmark system. Results show that the removal of relevant design deficiencies leads to an architecture model which more closely matches the system’s conceptual architecture.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19

Similar content being viewed by others

Notes

  1. The duration of the analysis steps was measured on a machine with an Intel Core i7-2620M processor with 2.7 GHz and 6 GB RAM.

References

  1. Archimetrix: http://www.fujaba.de/archimetrix.html (2013)

  2. Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools, 2nd edn. Addison-Wesley, Boston (2006)

    Google Scholar 

  3. Alur, D., Crupi, J., Malks, D.: Core J2EE Patterns: Best Practices and Design Strategies. Prentice Hall/Sun Microsystems Press, Upper Saddle River (2001)

    Google Scholar 

  4. Arcelli, Fontana F., Zanoni, M.: A tool for design pattern detection and software architecture reconstruction. Inf. Sci. 181(7), 1306–1324 (2011)

    Article  Google Scholar 

  5. Arendt, T., Kranz, S., Mantz, F., Regnat, N., Taentzer, G.: Towards syntactical model quality assurance in industrial software development: process definition and tool support. In: Proceedings of the Software Engineering. Springer, Berlin (2011) (to appear)

  6. Basit, H.A., Jarzabek, S.: Detecting higher-level similarity patterns in programs. SIGSOFT Softw. Eng. Notes 30(5), 156–165 (2005)

    Article  Google Scholar 

  7. Bauer, M., Trifu, M.: Architecture-aware adaptive clustering of OO systems. In: Proceedings of the 8th European Conference on Software Maintenance and Reengineering, pp. 3–14. ACM (March 2004)

  8. Becker, S., Hauck, M., Trifu, M., Krogmann, K., Kofron, J.: Reverse engineering component models for quality predictions. In: Proceedings of the 14th European Conference on Software Maintenance and Reengineering on IEEE Computer Society, pp. 199–202 (2010)

  9. Bianchi, A., Caivano, D., Marengo, V., Visaggio, G.: Iterative reengineering of legacy systems. Trans. Softw. Eng. 29(3), 225–241 (2003)

    Article  Google Scholar 

  10. Binkley, D., Gold, N., Harman, M., Li, Z., Mahdavi, K., Wegener, J.: Dependence anti patterns. In: Proceedings of the 4th International ERCIM Workshop on Software Evolution and Evolvability on IEEE, pp. 25–34 (2008)

  11. Boehm, B., Basili, V.R.: Software defect reduction top 10 list. IEEE Comput. 34(1), 135–137 (2001)

    Article  Google Scholar 

  12. Bourquin, F., Keller, R.K.: High-impact refactoring based on architecture violations. In: Proceedings of the 11th European Conference on Software Maintenance and Reengineering on IEEE, pp. 149–158 (2007)

  13. Brown, W.J., Malveau, R.C., McCormick, H.W., Mombray, T.J.: Anti Patterns: Refactoring Software, Architectures, and Projects in Crisis. Wiley, New York (1998)

    Google Scholar 

  14. Chikofsky, E.J., Cross II, J.H.: Reverse engineering and design recovery: a taxonomy. IEEE Softw. 7(1), 13–17 (1990)

    Article  Google Scholar 

  15. Cho, E.S., Kim, M.S., Kim, S.D.: Component metrics to measure component quality. In: 8th Asia-Pacific, Software Engineering Conference, pp. 419–426 (December 2001)

  16. Chouambe, L., Klatt, B., Krogmann, K.: Reverse engineering software-models of component-based systems. In: Proceedings of the 12th European Conference on Software Maintenance and Reengineering (CSMR 2008) on IEEE Computer Society, pp. 93–102, Athens (2008)

  17. Coello Coello, C., Dhaenens, C., Jourdan, L.: Multi-objective combinatorial optimization: problematic and context. In: Advances in Multi-objective Nature Inspired Computing, vol. 272 of Studies in Computational Intelligence, pp. 1–21. Springer, Berlin (2010)

  18. Dong, J., Zhao, Y., Peng, T.: A review of design pattern mining techniques. Int. J. Softw. Eng. Knowl. Eng. 19(6), 823–855 (2009)

    Article  Google Scholar 

  19. Ducasse, S., Pollet, D.: Software architecture reconstruction: a process-oriented taxonomy. IEEE Trans. Softw. Eng. 35(4), 573–591 (2009)

    Article  Google Scholar 

  20. Eppstein, D.: Subgraph isomorphism in planar graphs and related problems. In: Proceedings of the 6th Annual ACM-SIAM Symposium on Discrete Algorithms on Society for Industrial and Applied Mathematics, pp. 632–640. Philadelphia (1995)

  21. Erdmenger, U., Fuhr, A., Herget, A., Horn, T., Kaiser, U., Riediger, V., Teppe, W., Theurer, M., Uhlig, D., Winter, A., Zillmann, C., Zimmermann, Y.: The SOAMIG process model in industrial applications. In: Proceedings of the 15th European Conference on Software Maintenance and Reengineering on IEEE, pp. 339–342 (2011)

  22. Fischer, T., Niere, J., Torunski, L., Zündorf, A.: Story aiagrams: a new graph rewrite language based on the unified modeling language and java. In: Selected Papers from the 6th International Workshop on Theory and Application of Graph Transformations, vol. 1764 of Lecture Notes in Computer Science, pp. 296–309. Springer, Berlin (2000)

  23. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)

    Google Scholar 

  24. Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley, Reading (2002)

    Google Scholar 

  25. Frey, S., Hasselbring, W.: Model-based migration of legacy software systems to scalable and resource-efficient cloud-based applications: the CloudMIG approach. In: Proceedings of the First International Conference on Cloud Computing, GRIDs and Virtualization, pp. 155–158. Xpert Publishing Services (November 2010)

  26. Glass, R.L.: Facts and Fallacies of Software Engineering. Addison-Wesley, Reading (2003)

    Google Scholar 

  27. Herold, S., Klus, H., Welsch, Y., Deiters, C., Rausch, A., Reussner, R., Krogmann, K., Koziolek, H., Mirandola, R., Hummel, B., Meisinger, M., Pfaller, C.: CoCoME—the common component modeling example. In: The Common Component Modeling Example, vol. 5153 of Lecture Notes in Computer Science, pp. 16–53. Springer, Berlin (2008)

  28. Keller, R.K., Schauer, R., Robitaille, S., Pagé, P.: Pattern-Based Reverse-Engineering of Design Components. In: Proceedings of the 21st International Conference on Software Engineering, pp. 226–235, IEEE Computer Society Press (May 1999)

  29. Koziolek, H., Schlich, B., Bilich, C., Weiss, R., Becker, S., Krogmann, K., Trifu, M., Mirandola, R., Koziolek, A.: An industrial case study on quality impact prediction for evolving service-oriented software. In: Proceedings of the 33rd International Conference on Software Engineering (ICSE 2011), Software Engineering in Practice Track. ACM Press (2011)

  30. Kpodjedo, S., Ricca, F., Galinier, P., Guéhéneuc, Y.-G., Antoniol, G.: Design evolution metrics for defect prediction in object oriented systems. Empir. Softw. Eng. 16(1), 141–175 (2011)

    Article  Google Scholar 

  31. Krikhaar, R.: Reverse architecting approach for complex systems. In: Proceedings of the 13th International Conference on Software Maintenance on IEEE, pp. 4–11 (1997)

  32. Krikhaar, R., Postma, A., Sellink, A., Stroucken, M., Verhoef, C.: A two-phase process for software architecture improvement. In: Proceedings of the 15th International Conference on Software Maintenance on IEEE, pp. 371–380 (1999)

  33. Krogmann, K.: Reconstruction of Software Component Architectures and Behaviour Models Using Static and Dynamic Analysis. PhD thesis, Karlsruhe Institute of Technology (KIT), Karlsruhe (2010)

  34. Krogmann, K., Kuperberg, M., Reussner, R.: Using genetic search for reverse engineering of parametric behavior models for performance prediction. IEEE Trans. Softw. Eng. 36(6), 865–877 (2010)

    Article  Google Scholar 

  35. Mancoridis, S., Souder, T.S., Chen, Y.-F., Gansner, E.R., Korn, J.L.: REportal: a web-based portal site for reverse engineering. In: Proceedings of the 8th Working Conference on Reverse Engineering on IEEE, pp. 221–230 (2001)

  36. Marinescu, R.: Detection strategies: Metrics-based rules for detecting design flaws. In: Proceedings of the 20th International Conference on Software, Maintenance, pp. 350–359 (September 2004)

  37. McCabe, T.J.: A coomplexity measure. IEEE Trans. Softw. Eng. SE–2(4), 308–320 (1976)

    Article  MathSciNet  Google Scholar 

  38. Moha, N., Guéhéneuc, Y.-G., Duchien, L., Le Meur, A.-F.: DECOR: a method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. 36(1), 20–36 (2010)

    Article  Google Scholar 

  39. Munro, M.J.: Product metrics for automatic identification of “Bad Smell” design problems in java source-code. In: 11th IEEE International Symposium on Software Metrics, pp. 15–23 (September 2005)

  40. Niere, J., Schäfer, W., Wadsack, J., Wendehals, L., Welsh, J.: Towards pattern-based design recovery. In: Proceedings of the 24th International Conference on Software Engineering, pp. 338–348. ACM Press (2002)

  41. Platenius, M.C.: Reengineering of design deficiencies in component-based software Architectures. Master’s Thesis, University of Paderborn (October 2011)

  42. Platenius, M.C., von Detten, M., Becker, S.: Archimetrix: improved software architecture recovery in the presence of design deficiencies. In: Proceedings of the 16th European Conference on Software Maintenance and Reengineering on IEEE, pp. 255–264 (March 2012)

  43. Rausch, A., Reussner, R., Mirandola, R., Plasil, F.: The Common Component Modeling Example—Comparing Software Component Models, vol. 5153 of Lecture Notes in Computer Science. Springer, Berlin (2008)

  44. Riel, A.J.: Object-oriented design Heuristics. Addison-Wesley, Reading (1996)

    Google Scholar 

  45. Salehie, M., Li, S., Tahvildari, L.: A metric-based heuristic framework to detect object-oriented design flaws. In: Proceedings of the 14th IEEE International Conference on Program Comprehension (ICPC 2006), IEEE Computer Society, pp. 159–168 (2006)

  46. Sarkar, S., Ramachandran, S., Kumar, G.S., Iyengar, M.K., Rangarajan, K., Sivagnanam, S.: Modularization of a large-scale business application: a case study. IEEE Softw. 26(2), 28–35 (2009)

    Article  Google Scholar 

  47. Sartipi, K.: Software architecture recovery based on pattern matching. In: Proceedings of the International Conference on Software Maintenance, IEEE Computer Society, pp. 293–296 (2003)

  48. Simon, F., Steinbrückner, F., Lewerentz, C.: Metrics based refactoring. In: Proceedings of the 5th Conference on Software Maintenance and Reengineering on IEEE, pp. 30–39 (2001)

  49. SISSy—Structural Investigation in Software Systems: http://www.sqools.org/sissy/ (2013)

  50. Stürmer, I., Kreuz, I., Schäfer, W., Schürr, A.: The MATE approach: enhanced simulink/stateflow model transformation. In: Proceedings of the MathWorks Automotive Conference (June 2007)

  51. Szyperski, C., Gruntz, D., Murer, S.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, Reading (2002)

    Google Scholar 

  52. Tahvildari, L., Kontogiannis, K.: A metric-based approach to enhance design quality through meta-pattern transformations. In: Proceedings of the 7th European Conference on Software Maintenance and Reengineering, pp. 183–192 (March 2003)

  53. Tourwé, T., Mens, T.: Identifying refactoring opportunities using logic meta programming. In: Proceedings of the 7th European Conference on Software Maintenance and Reengineering, pp. 91–100 (March 2003)

  54. Travkin, O.: Kombination von Clustering- und musterbasierten Reverse-Engineering-Verfahren. Master’s thesis, University of Paderborn (June 2011) (in German)

  55. Travkin, O., von Detten, M., Becker, S.: Towards the combination of clustering-based and pattern-based reverse engineering approaches. In: Proceedings of the 3rd Workshop of the GI Working Group L2S2—Design for, Future 2011 (February 2011)

  56. Trifu, A., Seng, O., Genssler, T.: Automated design flaw correction in object-oriented systems. In: Proceedings of the 8th Conference on Software Maintenance and Reengineering, IEEE, pp. 174–183 (2004)

  57. Tzerpos, V., Holt, R.C.: ACDC: an algorithm for comprehension-driven clustering. In: Proceedings of the 7th Working Conference on Reverse Engineering, WCRE on IEEE, pp. 258–267 (2000)

  58. von Detten, M.: Reengineering of Component-Based Software Systems in the Presence of Design Deficiencies. PhD thesis, Heinz Nixdorf Institute, University of Paderborn, Germany (2013)

  59. von Detten, M., Becker, S.: Combining clustering and pattern detection for the reengineering of component-based software systems. In: Proceedings of the 7th International Conference on the Quality of Software Architectures, pp. 23–32. ACM (June 2011)

  60. von Detten, M., Heinzemann, C., Platenius, M.C., Rieke, J., Travkin, D., Hildebrandt, S.: Story diagrams—syntax and semantics. Technical report tr-ri-12-324, Software Engineering Group, Heinz Nixdorf Institute, Ver. 0.2, University of Paderborn (July 2012)

  61. von Detten, M., Meyer, M., Travkin, D.: Reclipse—a reverse engineering tool suite. Technical report tr-ri-10-312, Software Engineering Group, Heinz Nixdorf Institute, University of Paderborn (March 2010)

  62. von Detten, M., Meyer, M., Travkin, D.: Reverse engineering with the reclipse tool suite. In: Proceedings of the 32nd International Conference on Software Engineering, pp. 299–300. ACM (May 2010)

  63. von Detten, M., Travkin, D.: An evaluation of the reclipse tool suite based on the static analysis of JHotDraw. Technical report tr-ri-10-322, Software Engineering Group, Heinz Nixdorf Institute, University of Paderborn (October 2010)

  64. Zhang, M., Hall, T., Baddoo, N.: Code bad smells: a review of current knowledge. J. Softw. Maint. Evol. Res. Pract. 23(3), 179–202 (2011)

    Article  Google Scholar 

Download references

Acknowledgments

We thank Oleg Travkin for his contributions in the development of Archimetrix. We would also like to thank Christian Heinzemann, Dietrich Travkin, and the anonymous reviewers for their valuable comments. This work was partially supported by the German Research Foundation (DFG) within the Collaborative Research Centre “On-The-Fly Computing” (CRC 901).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Markus von Detten.

Additional information

Communicated by Prof. Dr. Dorina Petriu and Dr. Jens Happe.

Rights and permissions

Reprints and permissions

About this article

Cite this article

von Detten, M., Platenius, M.C. & Becker, S. Reengineering component-based software systems with Archimetrix. Softw Syst Model 13, 1239–1268 (2014). https://doi.org/10.1007/s10270-013-0341-9

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-013-0341-9

Keywords

Navigation