• DocumentCode
    1551310
  • Title

    Software refactoring at the package level using clustering techniques

  • Author

    Alkhalid, Abdulaziz ; Alshayeb, Mohammad ; Mahmoud, Sabri A.

  • Author_Institution
    Math. & Comput. Sci. & Eng. Div., King Abdullah Univ. of Sci. & Technol., Thuwal, Saudi Arabia
  • Volume
    5
  • Issue
    3
  • fYear
    2011
  • fDate
    6/1/2011 12:00:00 AM
  • Firstpage
    276
  • Lastpage
    284
  • Abstract
    Enhancing, modifying or adapting the software to new requirements increases the internal software complexity. Software with high level of internal complexity is difficult to maintain. Software refactoring reduces software complexity and hence decreases the maintenance effort. However, software refactoring becomes quite challenging task as the software evolves. The authors use clustering as a pattern recognition technique to assist in software refactoring activities at the package level. The approach presents a computer aided support for identifying ill-structured packages and provides suggestions for software designer to balance between intra-package cohesion and inter-package coupling. A comparative study is conducted applying three different clustering techniques on different software systems. In addition, the application of refactoring at the package level using an adaptive k-nearest neighbour (A-KNN) algorithm is introduced. The authors compared A-KNN technique with the other clustering techniques (viz. single linkage algorithm, complete linkage algorithm and weighted pair-group method using arithmetic averages). The new technique shows competitive performance with lower computational complexity.
  • Keywords
    pattern clustering; software architecture; software maintenance; software metrics; adaptive k-nearest neighbour algorithm; arithmetic average; clustering technique; complete linkage algorithm; computational complexity; computer aided support; internal software complexity; interpackage coupling; intrapackage cohesion; pattern recognition; single linkage algorithm; software adaptation; software architecture; software design; software enhancement; software evolution; software maintenance; software modification; software refactoring; software requirements; weighted pair-group method;
  • fLanguage
    English
  • Journal_Title
    Software, IET
  • Publisher
    iet
  • ISSN
    1751-8806
  • Type

    jour

  • DOI
    10.1049/iet-sen.2010.0070
  • Filename
    5871781