Full application of the extract interface refactoring: conceptual structures in the hands of master students

Interfaces are data types that are very useful for providing abstract and organized views on programs and APIs, and opportunities for writing more generic code and for reuse. Extract interface refactoring is a well known local refactoring which is commonly used in development tools. Beyond that local refactoring, there is a need for mass extraction of an interface hierarchy from a class hierarchy. In this paper, we made an experience with master students to put into practice an existing Formal Concept Analysis (FCA) based approach for solving that problem. The results show that the data selection (selected datatypes: interfaces, abstract classes, concrete classes; attributes; attribute description; methods; method description; etc.) was not obvious as it was expected to be, and that the students used the approach more as an analysis technique that would guide the extraction, than as a turn key solution.

[1]  Hervé Leblanc,et al.  Galois lattice as a framework to specify building class hierarchies algorithms , 2000, RAIRO Theor. Informatics Appl..

[2]  Gerd Stumme,et al.  Computing iceberg concept lattices with T , 2002, Data Knowl. Eng..

[3]  Kevin Lano,et al.  Case study: Class diagram restructuring , 2013, TTC.

[4]  Mauricio A. Saca Refactoring improving the design of existing code , 2017, 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII).

[5]  Rokia Missaoui,et al.  Design of Class Hierarchies Based on Concept (Galois) Lattices , 1998, Theory Pract. Object Syst..

[6]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[7]  Marianne Huchard,et al.  Computing interfaces in Java , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[8]  Hafedh Mili,et al.  Building and maintaining analysis-level class hierarchies using Galois Lattices , 1993, OOPSLA '93.