• DocumentCode
    880163
  • Title

    On the automatic modularization of software systems using the Bunch tool

  • Author

    Mitchell, Brian S. ; Mancoridis, Spiros

  • Author_Institution
    Dept. of Comput. Sci., Drexel Univ., Philadelphia, PA, USA
  • Volume
    32
  • Issue
    3
  • fYear
    2006
  • fDate
    3/1/2006 12:00:00 AM
  • Firstpage
    193
  • Lastpage
    208
  • Abstract
    Since modern software systems are large and complex, appropriate abstractions of their structure are needed to make them more understandable and, thus, easier to maintain. Software clustering techniques are useful to support the creation of these abstractions by producing architectural-level views of a system´s structure directly from its source code. This paper examines the Bunch clustering system which, unlike other software clustering tools, uses search techniques to perform clustering. Bunch produces a subsystem decomposition by partitioning a graph of the entities (e.g., classes) and relations (e.g., function calls) in the source code. Bunch uses a fitness function to evaluate the quality of graph partitions and uses search algorithms to find a satisfactory solution. This paper presents a case study to demonstrate how Bunch can be used to create views of the structure of significant software systems. This paper also outlines research to evaluate the software clustering results produced by Bunch.
  • Keywords
    reverse engineering; search problems; software architecture; software maintenance; software tools; systems re-engineering; Bunch software clustering tool; automatic modularization; graph partition; program comprehension; reverse engineering; search algorithm; software maintainability; software system abstraction; software system architectural-level view; software system reengineering; Chaos; Clustering algorithms; Partitioning algorithms; Reverse engineering; Search problems; Software maintenance; Software performance; Software quality; Software systems; Software tools; Clustering; maintainability.; optimization; program comprehension; reengineering; reverse engineering;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2006.31
  • Filename
    1610610