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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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)
Arnold, R.: Software Reengineering. IEEE Computer Society Press, Los Alamitos (1993)
Belady, L.A., Lehman, N.M.: A model of large program development. IBM Systems Journal 15(3), 225–252 (1976)
Birkhoff, G.: Lattice Theory, 1st edn. American Mathematical Society (1940)
Chiang, C.-C.: Extracting business rules from legacy systems into reusable components. In: SoSE, pp. 350–355. IEEE, Los Alamitos (2006)
Davey, B.A., Priestley, H.A.: Introduction to Lattices and Order. Cambridge University Press, Cambridge (1990)
Deursen, A.V., Kuipers, T.: Identifying objects using cluster and concept analysis. In: ICSE, pp. 246–255. ACM Press, New York (1999)
Formal Concept Analysis, http://www.upriss.org.uk/fca/fca.html
Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations. Springer, Heidelberg (1999)
Krone, M., Snelting, G.: One the inference of configuration structures from source code. In: ICSE, pp. 49–57. IEEE, Los Alamitos (1994)
Lindig, C., Snelting, G.: Assessing modular structure of legacy code based on mathematical concept analysis. In: ICSE, pp. 349–359. IEEE, Los Alamitos (1997)
Siff, M., Reps, T.: Identifying modules via concept analysis. IEEE Transactions on Software Engineering 25(6), 749–768 (1999)
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)
Shaw, M., Garlan, D.: Software Architecture. Prentice-Hall, Englewood Cliffs (1996)
Snelting, G.: Reengineering of configurations based on mathematical concept analysis. ACM Transactions on Software Engineering and Methodology 5(2), 146–189 (1996)
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)
Tonella, P.: Concept analysis for module restructuring. IEEE Transactions on Software Engineering 27(4), 351–363 (2001)
Weiser, M.: Program slicing. IEEE Transactions on Software Engineering SE-10(4), 352–357 (1984)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)