An empirical study of the relationship between the concepts expressed in source code and dependence
Journal of Systems and Software
Combining concept lattice with call graph for impact analysis
Advances in Engineering Software
Concept location using program dependencies and information retrieval (DepIR)
Information and Software Technology
Hi-index | 0.00 |
Most legacy systems have been altered due toprolonged maintenance to the point that they deviatesignificantly from their original and intended designand consequently, they lack modularity. Static sourcecode analysis techniques like concept assignment,formal concept analysis and program slicing, havebeen successfully used by researchers for programunderstanding and for restoring system designproperties. In our approach we combine these threetechniques, aiming to gain on their individualstrengths and overcoming their weaknesses. In thispaper we present a program representation formalismthat we call the Lattice of Concept Slices and aprogram modularization technique that aims toseparate statements in a code fragment according tothe concept they implement or they may belong to. Thelattice shows the relationship between the statements ofa program and the domain concepts that might beimplemented by the statements. Using the lattice as aprimary data structure we present two algorithms fordecomposing the program into appropriate modules.The goal is to achieve a modularization such that themodules are self-contained, side effect free and thecode duplication among nodes is minimal. Themodularization process is illustrated with an exampleC program.