Alternatives to the Knowledge Discovery Metamodel: An Investigation
Abstract
To better understand and exploit the knowledge necessary to comprehend and evolve an existing system, different models can be extracted from it. Models represent the extracted information at various abstraction levels, and are useful to document, maintain, and reengineer the system. The Knowledge Discovery Metamodel (KDM) has been defined by the object management group as a meta-model supporting a large share of reverse engineering activities. Its specification has also been adopted by the ISO in 2012. This paper explores and describes alternative meta-models proposed in the literature to support reverse engineering, program comprehension, and software evolution activities. We focus on the similarity and differences of the alternative meta-models with KDM, trying to understand the potentials of reciprocal information interchange. We describe KDM and other five meta-models, plus their extensions available in the literature and their diffusion in the reverse engineering community. We also investigate the approaches using KDM and the five meta-models. In the paper, we underline the limited reuse of models for reverse engineering, and identify potential directions for future related research, to enhance the existing models and ease the exchange of information among them.
References
- 1. MSR 2015: Proc. 12th IEEE/ACM Working Conf. on Mining Software Repositories, Florence, Italy, May 2015, IEEE. Google Scholar
- 2. , An XML-based framework for language neutral program representation and generic analysis, in Ninth European Conf. Software Maintenance and Reeng. (CSMR 2005), 2005, pp. 42–51. Google Scholar
- 3. , A reverse engineering approach for specifying semantic web service with respect to MDA, Int. Rev. Comput. Softw. 2 (6) (2007) 581–593. Google Scholar
- 4. , DPB: A benchmark for design pattern detection tools, in Proc. 16th European Conf. Software Maintenance and Reeng. (CSMR 2012), 2012, pp. 235–244. Google Scholar
- 5. , Metrics and antipatterns for software quality evaluation, in Proc. 34th IEEE Software Engineering Workshop (SEW 2011), 2011, pp. 48–56. Google Scholar
- 6. , Design patterns: A survey on their micro-structures, J. Softw., Evol. Proc. 25 (1) (2011) 27–52. Crossref, Web of Science, Google Scholar
- 7. , A tool for design pattern detection and software architecture reconstruction, Inf. Sci. 181 (7) (2011) 1306–1324. Crossref, Web of Science, Google Scholar
- 8. , Using design pattern clues to improve the precision of design pattern detection tools, J. Object Technol. 10 (2011) 1–31. Crossref, Google Scholar
- 9. , A model proposal for program comprehension, in Proc. 16th Int. Conf. Distributed Multimedia Systems (DMS 2010), 2010, pp. 23–28. Google Scholar
- 10. , Continuous software quality supervision using sourceinventory and columbus, in Companion of the 30th Int. Conf. Software Eng. (ICSE Companion ’08), 2008, pp. 931–932. Google Scholar
- 11. ,
Chapter 14 - MoDisco, a model-driven platform to support real legacy modernization use cases , in Information Systems Transformation: Architecture-Driven Modernization Case Studies, The Morgan Kaufmann/OMG Press, 2010, pp. 365–400. Crossref, Google Scholar - 12. , A component-oriented metamodel for the modernization of software applications, in Proc. 16th IEEE Int. Conf. Eng. Complex Computer Systems (ICECCS 2011), 2011, pp. 179–187. Google Scholar
- 13. , Reconstructing architectural views from legacy systems, in Proc. 19th Working Conf. Reverse Eng. (WCRE 2012), 2012, pp. 345–354. Google Scholar
- 14. , How to deal with your it legacy: What is coming up in MoDisco? ERCIM News 88 (2012) 43–44, Special theme: Evolving Software. Google Scholar
- 15. , MoDisco: A model driven reverse engineering framework, Inf. Softw. Technol. 56 (8) (2014) 1012–1032. Crossref, Web of Science, Google Scholar
- 16. ,
Enriching reverse engineering with annotations , in Model Driven Eng. Languages and Systems, eds. K. Czarnecki, I. Ober, J.-M. Bruel, A. Uhl and M. Völter (Springer,Berlin, Heidelberg , 2008), pp. 660–674. Crossref, Google Scholar - 17. , Reverse engineering and design recovery: A taxonomy, IEEE Softw. 7 (1) (1990) 13–17. Crossref, Web of Science, Google Scholar
- 18. , Extracting models from source code in software modernization, Softw. Syst. Model. 13 (2) (2014) 713–734. Crossref, Web of Science, Google Scholar
- 19. S. Denier and M. Lungu (eds.), FAMOOSr 2010 4th Workshop on FAMIX and MOOSE in Software Reengineering,
Timisoara, Romania ,September 2010 , self-published. Co-located with ICSM 2010. Google Scholar - 20. S. Ducasse, N. Anquetil, M. U. Bhatti, A. C. Hora, J. Laval and T. Girba, MSE and FAMIX 3.0: An interexchange format and source code model family, Research report, INRIA, November 2011. Google Scholar
- 21. G. Dupe and H. Bruneliere, MoDisco, 2012, http://www.eclipse.org/MoDisco/. Google Scholar
- 22. , Comparative study between clustering and model driven reverse engineering approaches, Lect. Not. Softw. Eng. 1 (2) (2013) 135–140. Google Scholar
- 23. , Formalizing MDA-based reverse engineering processes, in Proc. 6th ACIS Int. Conf. Software Engineering Research, Management and Applications (SERA 2008), 2008, pp. 153–160. Google Scholar
- 24. , Data exchange with the Columbus schema for C++, in Proc. Sixth European Conf. Software Maintenance and Reengineering (CSMR 2002), 2002, pp. 59–66. Google Scholar
- 25. , Columbus — reverse engineering tool and schema for C++, in Proc. Int. Conf. Software Maintenance (ICSM ’02), 2002, pp. 172–181. Google Scholar
- 26. , Micro patterns in java code, in Proc. 20th Annual ACM SIGPLAN Int. Conf. Object Oriented Programming, Systems, Languages, and Applications (OOPSLA ’05), 2005, pp. 97–116. Google Scholar
- 27. , Dynamix — a meta-model to support feature-centric analysis, in Proc. 1st Workshop on FAMIX and MOOSE in Reengineering, FAMOOSr 2007,
Zurich, Switzerland ,June 2007 , Software Composition Group. Co-located with TOOLS Europe 2007. Google Scholar - 28. O. Greevy, Enriching Reverse Engineering with Feature Analysis, PhD thesis, University of Bern, May 2007. Google Scholar
- 29. , Ptidej: Promoting patterns with patterns, in Proc. 1st ECOOP Workshop on Building a System Using Patterns (BSUP),
Glasgow, UK ,July 2005 . Google Scholar - 30. , DeMIMA: A multilayered approach for design pattern identification, IEEE Trans. Software Eng. 34 (5) (2008) 667–684. Crossref, Web of Science, Google Scholar
- 31. , Modeling history to analyze software evolution, J. Softw. Maintenance Evol. Res. Pract. 18 (3) (2006) 207–236. Crossref, Google Scholar
- 32. , E/R schema for the Datrix C/C++/Java exchange format, in Proc. 7th Working Conf. Reverse Eng. (WCRE ’00), 2000, pp. 284–286. Google Scholar
- 33. , GXL: Toward a standard exchange format, in Proc. 7th Working Conf. Reverse Eng., 2000, pp. 162–171. Google Scholar
- 34. , A short introduction to the gxl software exchange format, in Proc. 7th Working Conf. Reverse Eng., 2000, pp. 299–301. Google Scholar
- 35. KDM Analytics, KDM 1.0 annotated reference, 2010. http://kdmanalytics.com/kdmspec/index.php. Google Scholar
- 36. , FAME, a polyglot library for metamodeling at runtime, in Proc. 3rd Workshop [email protected] (MRT 2008), 2008, pp. 57–66. In conjunction with MODELS 2008. Google Scholar
- 37. , Codecrawler: An information visualization tool for program comprehension, in Proc. 27th Int. Conf. on Software Eng. (ICSE ’05), 2005, pp. 672–673. Google Scholar
- 38. , Model-driven iterative development of 3d web-applications using ssiml, x3d and javascript, in Proc. 17th Intl Conf. on 3D Web Technology (Web3D ’12), 2012, p. 161–169. Google Scholar
- 39. , Report from the dagstuhl seminar on interoperability of reengineering tools, in Proc. 9th Int. Workshop Program Comprehension (IWPC 2001), 2011, pp. 119. Google Scholar
- 40. T. C. Lethbridge, E. Plödereder, S. Tichelaar, C. Riva, P. Linos and S. Marchenko, The Dagstuhl Middle Model (DMM), 2002, http://www.site.uottawa.ca/∼tcl/dmm/DMMDescriptionV0006.pdf. Google Scholar
- 41. T. C. Lethbridge, S. Tichelaar and E. Ploedereder, The Dagstuhl middle metamodel: A schema for reverse engineering, Electron. Notes Theor. Comput. Sci. 94 (2004) 7–18, Proc. Intl Workshop on Meta-Models and Schemas for Reverse Engineering (ateM 2003). Google Scholar
- 42. , Experiences of using the Dagstuhl middle metamodel for defining software metrics, in Proc. 4th Int. Symp. Principles and Practice of Programming in Java (PPPJ ’06), 2006, pp. 194–198. Google Scholar
- 43. P. M. Shahshahani, Extending the knowledge discovery metamodel to support aspect-oriented programming, Master’s thesis, Concordia University, Montreal, Canada, April 2011, http://spectrum.library.concordia.ca/7329/. Google Scholar
- 44. , Decor: A tool for the detection of design defects, in Proc. 22nd IEEE/ACM Int. Conf. on Automated Software Engineering (ASE ’07), 2007, pp. 527–528. Google Scholar
- 45. , PTIDEJ and DECOR: Identification of design patterns and design defects, in Companion to the 22nd ACM SIGPLAN Int. Conf. on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA ’07), 2007, pp. 868–869. Google Scholar
- 46. , Architecture-driven modernization (ADM), in Proc. 12th Working Conf. Reverse Eng. (WCRE ’05), 2005, p. 237. Google Scholar
- 47. , The story of moose: An agile reengineering environment, in Proc. 10th European Software Engineering Conf., held jointly with 13th ACM SIGSOFT Int. Symp. Foundations of Software Engineering (ESEC/FSE-13), 2005, pp. 1–10. Google Scholar
- 48. , An overview of the knowledge discovery meta-model, in Proc. 13th Int. Conf. Computer Systems and Technologies (CompSysTech ’12), 2012, pp. 52–57. Google Scholar
- 49. ,
Extracting business rules from existing enterprise software system , in Information and Software Technologies, Communications in Computer and Information Science, Vol. 319, eds. T. Skersys, R. Butleris and R. Butkiene (Springer, Berlin, Heidelberg, 2012), pp. 482–496. Crossref, Google Scholar - 50. Object Management Group, Inc., Meta Object Facility (MOF) core specification, January 2006, http://www.omg.org/spec/MOF/2.0/PDF/. Google Scholar
- 51. Object Management Group, Inc., Architecture-driven modernization task force, 2012, http://adm.omg.org/. Google Scholar
- 52. Object Management Group, Inc., Catalog of OMG modernization specifications, 2012, http://www.omg.org/technology/documents/modernization_spec_catalog.htm. Google Scholar
- 53. Object Management Group, Inc., Knowledge discovery metamodel (KDM), 2012, http://www.omg.org/technology/kdm/index.htm. Google Scholar
- 54. Object Management Group, Inc., Object management group, 2012, http://www.omg.org. Google Scholar
- 55. , On the use of ADM to contextualize data on legacy source code for software modernization, in Proc. 16th Working Conf. Reverse Eng. (WCRE ’09), 2009, pp. 128–132. Google Scholar
- 56. , Integrating event logs into KDM repositories, in Proc. 27th Annual ACM Symp. Applied Computing (SAC ’12), 2012, pp. 1095–1102. Google Scholar
- 57. Ptidej Team, PADL, Web site, September 2014, http://wiki.ptidej.net/doku.php?id=padl. Google Scholar
- 58. , Software modernization by recovering web services from legacy databases, J. Softw., Evol. Process 25 (5) (2013) 507–533. Crossref, Web of Science, Google Scholar
- 59. , Knowledge discovery metamodel-ISO/IEC 19506: A standard to modernize legacy systems, Comput. Standards Interf. 33 (6) (2011) 519–532. Crossref, Web of Science, Google Scholar
- 60. , Model-driven reverse engineering, IEEE Softw. 21 (4) (2004) 45–53. Crossref, Web of Science, Google Scholar
- 61. , KDM-AO: An aspect-oriented extension of the knowledge discovery metamodel, in Proc. 28th Brazilian Symp. Software Eng. (SBES 2014), 2014, pp. 61–70. Google Scholar
- 62. , SPQR: Flexible automated design pattern extraction from source code, in Proc. 18st IEEE/ACM Int. Conf. Automated Software Eng. (ASE ’03), 2003, pp. 215–224. Google Scholar
- 63. Software Composition Group, FM3, 2009, http://scg.unibe.ch/wiki/projects/fame/fm3. Google Scholar
- 64. Software Composition Group, MSE, 2009, http://scg.unibe.ch/wiki/projects/fame/mse. Google Scholar
- 65. , An extensible meta-model for program analysis, in 22nd IEEE Int. Conf. Software Maintenance (ICSM ’06), 2006, pp. 380–390. Google Scholar
- 66. , An extensible meta-model for program analysis, IEEE Trans. Softw. Eng. 33 (9) (2007) 592–607. Google Scholar
- 67. S. Tichelaar, Modeling Object-Oriented Software for Reverse Engineering and Refactoring, Ph.D. thesis, University of Bern, 2001. Google Scholar
- 68. S. Tichelaar, FAMIX 2.2, 2012, http://www.moosetechnology.org/docs/others/famix2.2. Google Scholar
- 69. S. Tichelaar, FAMIX 3.0 core beta, 2012, http://www.moosetechnology.org/docs/others/famix3.0. Google Scholar
- 70. , Migrating traditional web applications to cms-based web applications, Electron. Notes Theor. Comput. Sci. 314 (2015) 23–44. Crossref, Web of Science, Google Scholar
- 71. , Software architecture reconstruction: An approach based on combining graph clustering and partitioning, in Proc. Int. Joint Conf. Computational Cybernetics and Technical Informatics (ICCC-CONTI 2010), 2010, pp. 259–264. Google Scholar
- 72. , A meta-model for representing language-independent primary dependency structures, in Proc. 7th Int. Conf. Evaluation of Novel Approaches to Software Eng. (ENASE 2012), 2012, pp. 65–74. Google Scholar
- 73. ,
Unified modeling of static relationships between program elements , Evaluation of Novel Approaches to Software Eng., in Communications in Computer and Information Science, Vol. 410, eds. L. A. Maciaszek and J. Filipe (Springer, Berlin, Heidelberg, 2013), pp. 95–109. Google Scholar - 74. , Model-driven software evolution: A research agenda, in CSMR Workshop on Model-Driven Software Evolution (MoDSE 2007), 2007, pp. 41–49. Google Scholar
- 75. , Making multiagent system designs reusable: A model-driven approach, in Proc. IEEE/WIC/ACM Int. Conf. Web Intelligence and Intelligent Agent Technology (WI-IAT 2011), Vol. 2, 2011, pp. 101–108. Google Scholar
- 76. , On applying machine learning techniques for design pattern detection, J. Syst. Softw. 103 (0) (2015) 102–117. Crossref, Web of Science, Google Scholar
Remember to check out the Most Cited Articles! |
---|
Check out our titles in C++ Programming! |