Skip to main content

Unified Modeling of Static Relationships between Program Elements

  • Conference paper
Evaluation of Novel Approaches to Software Engineering (ENASE 2012)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 410))

Abstract

Reverse engineering creates primary models of software systems, representing their program elements and the relationships between them. According to the programming language or paradigm, these program elements are functions, variables, classes, methods, etc. The primary models are then used for different analysis purposes such as: impact analysis, modularization analysis, refactoring decisions, architectural reconstruction. Particularities of the programming language or paradigm do not affect the essence of these higher-level analysis tasks. Thus, having a unitary way of modeling program elements and their relationships is essential for the reuse and integration of higher-level analysis tools.

This work proposes a meta-model which provides a unitary way of describing static relationships between program elements. It defines a set of abstract concepts that can be mapped to program elements of both the object-oriented as well as the procedural programming paradigms. The proposed meta-model is validated by the implementation of model extraction tools from programs written in Java, C# (CIL) and ANSI C. The utility of the proposed meta-model has been shown by a number of different analysis applications that use it successfully.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight 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. Chikofsky, E., Cross, J.H.I.: Reverse engineering and design recovery: a taxonomy. IEEE Software 7(1), 13–17 (1990)

    Article  Google Scholar 

  2. Canfora, G., Di Penta, M.: New frontiers of reverse engineering. In: Future of Software Engineering, FOSE 2007, pp. 326–341 (May 2007)

    Google Scholar 

  3. Sora, I., Glodean, G., Gligor, M.: Software architecture reconstruction: An approach based on combining graph clustering and partitioning. In: 2010 International Joint Conference on Computational Cybernetics and Technical Informatics (ICCC-CONTI), pp. 259–264 ( May 2010)

    Google Scholar 

  4. Kraft, N.A., Malloy, B.A., Power, J.F.: An infrastructure to support interoperability in reverse engineering. Information and Software Technology 49(3), 292–307 (2007); 12th Working Conference on Reverse Engineering

    Google Scholar 

  5. Sarkar, S., Maskeri, G., Ramachandran, S.: Discovery of architectural layers and measurement of layering violations in source code. J. Syst. Softw. 82, 1891–1905 (2009)

    Article  Google Scholar 

  6. Sangal, N., Jordan, E., Sinha, V., Jackson, D.: 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 2005, pp. 167–176. ACM, New York (2005)

    Chapter  Google Scholar 

  7. Mitchell, B.S., Mancoridis, S.: On the automatic modularization of software systems using the bunch tool. IEEE Transactions on Software Engineering 32, 193–208 (2006)

    Article  Google Scholar 

  8. OMG: The metaobject facility specification (2011), http://www.omg.org/mof/

  9. Maletic, J., Collard, M., Marcus, A.: Source code files as structured documents. In: Proceedings of 10th International Workshop on Program Comprehension, pp. 289–292 (2002)

    Google Scholar 

  10. Wong, S., Cai, Y., Kim, M., Dalton, M.: Detecting software modularity violations. In: Proceeding of the 33rd International Conference on Software Engineering, ICSE 2011, pp. 411–420. ACM, New York (2011)

    Google Scholar 

  11. Falleri, J.-R., Denier, S., Laval, J., Vismara, P., Ducasse, S.: Efficient retrieval and ranking of undesired package cycles in large software systems. In: Bishop, J., Vallecillo, A. (eds.) TOOLS 2011. LNCS, vol. 6705, pp. 260–275. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  12. Wong, S., Cai, Y.: Predicting change impact from logical models. In: IEEE International Conference on Software Maintenance, pp. 467–470 (2009)

    Google Scholar 

  13. Winter, A.J., Kullbach, B., Riediger, V.: An overview of the GXL graph exchange language. In: Diehl, S. (ed.) Dagstuhl Seminar 2001. LNCS, vol. 2269, pp. 324–532. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  14. Ferenc, R., Beszedes, A., Tarkiainen, M., Gyimothy, T.: Columbus - reverse engineering tool and schema for C++. In: Proceedings of International Conference on Software Maintenance, pp. 172–181 (2002)

    Google Scholar 

  15. OMG: The Unified Modelling Language (2011), http://www.uml.org/

  16. Tichelaar, S., Ducasse, S., Demeyer, S., Nierstrasz, O.: A meta-model for language-independent refactoring. In: Proceedings of International Symposium on Principles of Software Evolution, pp. 154–164 (2000)

    Google Scholar 

  17. Lethbridge, T.C., Tichelaar, S., Ploedereder, E.: The Dagstuhl Middle Metamodel: A Schema For Reverse Engineering. Electronic Notes in Theoretical Computer Science 94, 7–18 (2004); Proceedings of the International Workshop on Meta-Models and Schemas for Reverse Engineering (ateM 2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Şora, I. (2013). Unified Modeling of Static Relationships between Program Elements. In: Maciaszek, L.A., Filipe, J. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2012. Communications in Computer and Information Science, vol 410. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45422-6_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-45422-6_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-45421-9

  • Online ISBN: 978-3-642-45422-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics