Skip to main content

An Approach Using Formal Concept Analysis to Object Extraction in Legacy Code

  • Chapter

Part of the book series: Studies in Computational Intelligence ((SCI,volume 209))

Summary

Formal concept analysis is a well-known technique for identifying groups of objects in software with common sets of attributes. The objects can be procedures, functions, and modules. In this paper, we are proposing an approach using formal concept analysis to extract objects in a non-object oriented programs. We define an object as a set of data and its associated methods encapsulated in a class. Thus, we start with a data structure and apply a program slicing technique to extract the code from the legacy code corresponding to the data. The data and statements are then collected into an object. This research is a collaborative work in which we are trying to draw the benefit by using formal concept analysis and apply the analysis results to the field of software maintenance.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   169.99
Price excludes VAT (USA)
  • Durable hardcover 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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Arévalo, G., Ducasse, S., Nierstrasz, O.: Lessons learned in applying formal concept analysis to reverse engineering. In: Ganter, B., Godin, R. (eds.) ICFCA 2005. LNCS (LNAI), vol. 3403, pp. 95–112. Springer, Heidelberg (2005)

    Google Scholar 

  2. Arnold, R.: Software Reengineering. IEEE Computer Society Press, Los Alamitos (1993)

    MATH  Google Scholar 

  3. Belady, L.A., Lehman, N.M.: A model of large program development. IBM Systems Journal 15(3), 225–252 (1976)

    Article  MATH  Google Scholar 

  4. Birkhoff, G.: Lattice Theory, 1st edn. American Mathematical Society (1940)

    Google Scholar 

  5. Chiang, C.-C.: Extracting business rules from legacy systems into reusable components. In: SoSE, pp. 350–355. IEEE, Los Alamitos (2006)

    Google Scholar 

  6. ConExp., http://conexp.sourceforge.net/users/index.html

  7. Davey, B.A., Priestley, H.A.: Introduction to Lattices and Order. Cambridge University Press, Cambridge (1990)

    MATH  Google Scholar 

  8. Deursen, A.V., Kuipers, T.: Identifying objects using cluster and concept analysis. In: ICSE, pp. 246–255. ACM Press, New York (1999)

    Chapter  Google Scholar 

  9. Formal Concept Analysis, http://www.upriss.org.uk/fca/fca.html

  10. Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations. Springer, Heidelberg (1999)

    MATH  Google Scholar 

  11. Krone, M., Snelting, G.: One the inference of configuration structures from source code. In: ICSE, pp. 49–57. IEEE, Los Alamitos (1994)

    Google Scholar 

  12. Lindig, C., Snelting, G.: Assessing modular structure of legacy code based on mathematical concept analysis. In: ICSE, pp. 349–359. IEEE, Los Alamitos (1997)

    Chapter  Google Scholar 

  13. Siff, M., Reps, T.: Identifying modules via concept analysis. IEEE Transactions on Software Engineering 25(6), 749–768 (1999)

    Article  Google Scholar 

  14. Sahraoui, H., Lounis, H., Melo, W., Mili, H.: A concept formation based approach to object identification in procedural code. Automated Software Engineering 6, 387–410 (1999)

    Article  Google Scholar 

  15. Shaw, M., Garlan, D.: Software Architecture. Prentice-Hall, Englewood Cliffs (1996)

    Google Scholar 

  16. Snelting, G.: Reengineering of configurations based on mathematical concept analysis. ACM Transactions on Software Engineering and Methodology 5(2), 146–189 (1996)

    Article  Google Scholar 

  17. Snelting, G.: Concept analysis – a new framework for program understanding. In: Flanagan, C., Zeller, A. (eds.) Sigplan/Sigsoft Paste, pp. 1–10. ACM Press, New York (1998)

    Chapter  Google Scholar 

  18. Tonella, P.: Concept analysis for module restructuring. IEEE Transactions on Software Engineering 27(4), 351–363 (2001)

    Article  Google Scholar 

  19. Weiser, M.: Program slicing. IEEE Transactions on Software Engineering SE-10(4), 352–357 (1984)

    Article  Google Scholar 

  20. Wille, R.: Restructuring lattice theory: an approach based on hierarchies of concepts. In: Rival, I. (ed.) Ordered sets, pp. 445–470. NATO Advanced Study Institute (1981)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Chiang, CC., Lee, R. (2009). An Approach Using Formal Concept Analysis to Object Extraction in Legacy Code. In: Lee, R., Ishii, N. (eds) Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing. Studies in Computational Intelligence, vol 209. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-01203-7_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-01203-7_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-01202-0

  • Online ISBN: 978-3-642-01203-7

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics