Source Code Modularization Using Lattice of Concept Slices

  • Authors:
  • Raihan Al-Ekram;Kostas Kontogiannis

  • Affiliations:
  • -;-

  • Venue:
  • CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.