Advertisement

Automated Software Engineering

, Volume 6, Issue 4, pp 387–410 | Cite as

A Concept Formation Based Approach to Object Identification in Procedural Code

  • Houari A. Sahraoui
  • Hakim Lounis
  • Walcélio Melo
  • Hafedh Mili
Article

Abstract

Legacy software systems present a high level of entropy combined with imprecise documentation. This makes their maintenance more difficult, more time consuming, and costlier. In order to address these issues, many organizations have been migrating their legacy systems to emerging technologies. In this paper, we describe a computer-supported approach aimed at supporting the migration of procedural software systems to the object-oriented (OO) technology. Our approach is based on the automatic formation of concepts, and uses information extracted directly from code to identify objects. The approach tends, thus, to minimize the need for domain application experts.

re-engineering legacy software migration object identification Galois lattices 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Canfora, G., Cimitile, A., De Lucia, A., and Di Lucca, A. 1994. Software salvaging based on conditions. In Proc.of ICSM'94, IEEE Computer Society Press, pp. 424-433.Google Scholar
  2. Canfora, G., Cimitile, A., and Munro, M. 1996. An Improved algorithm for identifying objects in code, Software Practice and Experience, 26(1):25-48.Google Scholar
  3. Corbi, T.A. 1989. Program understanding: challenge for the 1990s, IBM System Journal, 28(2):294-306.Google Scholar
  4. Davey, B.A. and Priestley, H.A. 1992. Introduction to Lattices and Order. Cambridge: Cambridge University Press.Google Scholar
  5. Dumont, F. 1998. Extracting object from procedural code using graph decomposition, Master thesis, University of Sherbrooke, Quebec (in French).Google Scholar
  6. Dunn, M. F. and Knight, J. C. 1993. Automating the detection of reusable parts in existing code. In Proc. of International Conference on Software Engineering, IEEE Computer Society Press, pp. 381-390.Google Scholar
  7. Gall, H.C., Klösch, R.R., and Mittermeir, R.T. 1995. Architectural transformation of legacy systems, Workshop on Program Transformation for Software Evolution, ICSE.Google Scholar
  8. Gall, H.C. and Klösch, R.R. 1995. Finding objects in procedural programs, Second Working Conference on Reverse Engineering, IEEE Computer Society Press, pp. 208-217.Google Scholar
  9. Gallagher, K.B. and Lyle, J.R. 1991. Using program slicing in software maintenance, IEEE Transactions on Software Engineering, 17(8):751-761.Google Scholar
  10. Girard, J.-F., Koschke, R., and Schied, G. 1997. A metric-based approach to detect abstract data types and state encapsulations, Proc. of IEEE Automated Software Engineering Conference, pp. 82-89.Google Scholar
  11. Godin, R. and Mili, H. 1993. Building and maintaining analysis-level class hierarchies using Galois lattices. In Proceedings of OOPSLA, pp. 394-410.Google Scholar
  12. Godin, R., Mineau, G., Missaoui, R., St-Germain, M., and Faraj, N. 1995a. Applying concept formation methods to software reuse, International Journal of Knowledge Engineering and Software Engineering, 5(1):119-142.Google Scholar
  13. Godin, R., Missaoui, R., and Alaoui, H. 1995b. Incremental concept formation algorithms based on Galois (Concept) lattices, Computational Intelligence, 11(2):246-267.Google Scholar
  14. Harris, D., Reubenstein, H., and Yeh, A.S. 1995. Recognizers for extracting architectural features from source code, Second Working Conference on Reverse Engineering, IEEE Computer Society Press, pp. 252-261.Google Scholar
  15. Jacobson, I. and Lindstrom, F. 1991. Re-engineering of old systems to an object oriented architecture, Proceedings of OOPSLA, pp. 340-350.Google Scholar
  16. Lanubile, F. and Visaggio, G. 1993. Function recovery based on program slicing. In Proc. of ICSM'93, IEEE Computer Society Press, pp. 396-404.Google Scholar
  17. Lehman, M.M. and Belady, L.A. 1985. Program Evolution, New York: Academic Press, 1985.Google Scholar
  18. Lindig, C. and Snelting, G. 1997. Assessing modular structure of legacy code based on mathematical concept analysis. In Proc. of International Conference on Software Engineering, ACM Press, pp. 349-359.Google Scholar
  19. Livadas, P.E. and Roy, P.K. 1992. Program dependence analysis. In Conference on Software Maintenance, pp. 356-365.Google Scholar
  20. Liu, S.S. and Wilde, N. 1990. Identifying objects in a conventional procedural language: An example of data design recovery. In Conference in Software Maintenance, IEEE Computer Society Press, pp. 266-271.Google Scholar
  21. Lounis, H. and Melo, W. 1997. Identifying and measuring coupling in modular systems, 8th International Conference on Software Technology ICST'97.Google Scholar
  22. Mili, H. 1996. On behavioral description in object-oriented modeling, The Journal of Systems and Software, 34(2):105-121.Google Scholar
  23. Offutt, J., Harrold, M.J., and Kolte, P. 1993. A software metric system for module coupling, The Journal of Systems and Software, 20(3):295-308.Google Scholar
  24. Ogando, R.M., Yau, S.S. and Wilde, N. 1994. An object finder for program structure understanding. In Journal of Software Maintenance, 6(5):261-283.Google Scholar
  25. Pressman, R. 1987. Software Engineering: A Practitioner's Approach, 2nd edition. McGraw-Hill.Google Scholar
  26. Revault, N., Sahraoui, H.A., Blain, G. and Perrot, J.F. 1995. A metamodeling technique: The METAGEN system. Proceedings of TOOLS 16, pp. 127-139.Google Scholar
  27. Sahraoui, H.A., Melo, W., Lounis, H., and Dumont, F. 1997. Applying concept formation methods to object identification in procedural code. Proc. of IEEE Automated Software Engineering Conference, pp. 210-218.Google Scholar
  28. Siff, M. and Reps, T. 1997. Identifying modules via concept analysis. In Proc. of ICSM'97.Google Scholar
  29. Sommerville, I. 1992. Software Engineering, 4th edition. Addison Wesley.Google Scholar
  30. Sward, R.E. and Hartrum, T.C. 1997. Extracting objects from legacy imperative code. Proc. of IEEE Automated Software Engineering Conference, pp. 98-106.Google Scholar
  31. Schwanke, R.W. 1991. An intelligent tool for re-engineering software modularity. In Proc. of International Conference on Software Engineering, pp. 83-92.Google Scholar
  32. Yeh, A.S., Harris, D.R., and Reubenstein, H.B. 1995. Recovering abstract data types and object instances from a conventional procedural language. Second Working Conference on Reverse Engineering, IEEE Computer Society Press, pp. 252-261.Google Scholar
  33. Weiser, M. 1984. Program slicing. IEEE Transactions on Software Engineering, 10(4):352-357.Google Scholar

Copyright information

© Kluwer Academic Publishers 1999

Authors and Affiliations

  • Houari A. Sahraoui
    • 1
  • Hakim Lounis
    • 1
  • Walcélio Melo
    • 2
  • Hafedh Mili
    • 3
  1. 1.Centre de Recherche Informatique de MontréalCanada
  2. 2.Dept. de Ciencia da ComputacaoOracle do Brasil and Universidade Catolica de BrasiliaBrazil
  3. 3.Dept. InformatiqueUniversité du Quebec À MontréalCanada

Personalised recommendations