• DocumentCode
    1466811
  • Title

    Concept analysis for module restructuring

  • Author

    Tonella, Paolo

  • Author_Institution
    Centro per la Ricerca Sci. e Tecnologica, Trento, Italy
  • Volume
    27
  • Issue
    4
  • fYear
    2001
  • fDate
    4/1/2001 12:00:00 AM
  • Firstpage
    351
  • Lastpage
    363
  • Abstract
    Low coupling between modules and high cohesion inside each module are the key features of good software design. This paper proposes a new approach to using concept analysis for module restructuring, based on the computation of extended concept subpartitions. Alternative modularizations, characterized by high cohesion around the internal structures that are being manipulated, can be determined by such a method. To assess the quality of the restructured modules, the trade-off between encapsulation violations and decomposition is considered, and proper measures for both factors are defined. Furthermore, the cost of restructuring is evaluated through a measure of distance between the original and the new modularizations. Concept subpartitions were determined for a test suite of 20 programs of variable size: 10 public-domain and 10 industrial applications. The trade-off between encapsulation and decomposition was measured on the resulting module candidates, together with an estimate of the cost of restructuring. Moreover, the ability of concept analysis to determine meaningful modularizations was assessed in two ways. First, programs without encapsulation violations were used as oracles, assuming the absence of violations as an indicator of careful decomposition. Second, the suggested restructuring interventions were actually implemented in some case studies to evaluate the feasibility of restructuring and to deeply investigate the code organization before and after the intervention. Concept analysis was experienced to be a powerful tool supporting module restructuring
  • Keywords
    data encapsulation; program control structures; software engineering; subroutines; systems re-engineering; abstract data types; case studies; code organization; concept analysis; concept subpartitions; cost evaluation; decomposition; distance measure; encapsulation violations; extended concept subpartitions; industrial applications; internal structures; legacy systems; modularization; module cohesion; module coupling; module quality; module restructuring; oracles; program size; public-domain applications; reengineering; restructuring interventions; software design; Computer languages; Costs; Data structures; Degradation; Encapsulation; Engineering management; Preventive maintenance; Software design; Software engineering; Testing;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.917524
  • Filename
    917524