A Meta-model for Representing Language-independent Primary Dependency Structures

Ioana Șora


Reverse engineering creates models of software systems, at a higher level of abstraction or in a form suitable to a particular analysis. This article presents a meta-model that provides a unitary way of describing primary dependency structures in software systems. It extracts and conceptualizes similarities between different programming languages which, moreover, belong to any of the object-oriented as well as the procedural programming paradigms. The proposed meta-model is validated by the implementation of different tools for model extraction from programs written in Java, C# (CIL) and ANSI C. The utility of the proposed metamodel is shown by supporting a number of different analysis applications such as architectural reconstruction, impact analysis, modularization analysis, refactoring decisions.


  1. Canfora, G. and Di Penta, M. (2007). New frontiers of reverse engineering. In Future of Software Engineering, 2007. FOSE 7807, pages 326 -341.
  2. Chikofsky, E. and Cross, J.H., I. (1990). Reverse engineering and design recovery: a taxonomy. Software, IEEE, 7(1):13 -17.
  3. Falleri, J.-R., Denier, S., Laval, J., Vismara, P., and Ducasse, S. (2011). Efficient retrieval and ranking of undesired package cycles in large software systems. In Proceedings of the 49th international conference on Objects, models, components, patterns, TOOLS'11, pages 260-275, Berlin, Heidelberg. Springer-Verlag.
  4. Ferenc, R., Beszedes, A., Tarkiainen, M., and Gyimothy, T. (2002). Columbus - reverse engineering tool and schema for C++. In Software Maintenance, 2002. Proceedings. International Conference on, pages 172 - 181.
  5. Kraft, N. A., Malloy, B. A., and Power, J. F. (2007). An infrastructure to support interoperability in reverse engineering. Information and Software Technology, 49(3):292 - 307. 12th Working Conference on Reverse Engineering.
  6. Lethbridge, T. C., Tichelaar, S., and Ploedereder, E. (2004). The Dagstuhl Middle Metamodel: A Schema For Reverse Engineering. Electronic Notes in Theoretical Computer Science, 94(0):7 - 18. Proceedings of the International Workshop on Meta-Models and Schemas for Reverse Engineering (ateM 2003).
  7. Maletic, J., Collard, M., and Marcus, A. (2002). Source code files as structured documents. In Program Comprehension, 2002. Proceedings. 10th International Workshop on, pages 289 - 292.
  8. Mitchell, B. S. and Mancoridis, S. (2006). On the automatic modularization of software systems using the bunch tool. IEEE Transactions on Software Engineering, 32:193-208.
  9. OMG (2011a). The metaobject facility specification. http://www.omg.org/mof/.
  10. OMG (2011b). The Unified Modelling Language. http://www.uml.org/.
  11. Sangal, N., Jordan, E., Sinha, V., and Jackson, D. (2005). Using dependency models to manage complex software architecture. In Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPSLA 7805, pages 167-176, New York, NY, USA. ACM.
  12. Sarkar, S., Maskeri, G., and Ramachandran, S. (2009). Discovery of architectural layers and measurement of layering violations in source code. J. Syst. Softw., 82:1891-1905.
  13. Sora, I., Glodean, G., and Gligor, M. (2010). Software architecture reconstruction: An approach based on combining graph clustering and partitioning. In Computational Cybernetics and Technical Informatics (ICCC-CONTI), 2010 International Joint Conference on, pages 259 -264.
  14. Tichelaar, S., Ducasse, S., Demeyer, S., and Nierstrasz, O. (2000). A meta-model for language-independent refactoring. In Principles of Software Evolution, 2000. Proceedings. International Symposium on, pages 154 -164.
  15. Winter, A., Kullbach, B., and Riediger, V. (2002). An overview of the GXL graph exchange language. In Diehl, S., editor, Software Visualization, volume 2269 of Lecture Notes in Computer Science, pages 528- 532. Springer Berlin / Heidelberg.
  16. Wong, S. and Cai, Y. (2009). Predicting change impact from logical models. Software Maintenance, IEEE International Conference on, 0:467-470.
  17. Wong, S., Cai, Y., Kim, M., and Dalton, M. (2011). Detecting software modularity violations. In Proceeding of the 33rd international conference on Software engineering, ICSE 7811, pages 411-420, New York, NY, USA. ACM.

Paper Citation

in Harvard Style

Șora I. (2012). A Meta-model for Representing Language-independent Primary Dependency Structures . In Proceedings of the 7th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-8565-13-6, pages 65-74. DOI: 10.5220/0003991400650074

in Bibtex Style

author={Ioana Șora},
title={A Meta-model for Representing Language-independent Primary Dependency Structures},
booktitle={Proceedings of the 7th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,},

in EndNote Style

JO - Proceedings of the 7th International Conference on Evaluation of Novel Approaches to Software Engineering - Volume 1: ENASE,
TI - A Meta-model for Representing Language-independent Primary Dependency Structures
SN - 978-989-8565-13-6
AU - Șora I.
PY - 2012
SP - 65
EP - 74
DO - 10.5220/0003991400650074