A technique for automatic component extraction from object-oriented programs by refactoring

Hironori Washizaki*, Yoshiaki Fukazawa

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

40 Citations (Scopus)


Component-based software development (CBD) is based on building software systems from previously-existing software components. In CBD, reuse of common parts in component form can reduce the development cost of new systems, and reduce the maintenance cost associated with the support of these systems. However, existing programs have usually been built using another paradigm, such as the object-oriented (OO) paradigm. OO programs cannot be reused rapidly or effectively in the CBD paradigm even if they contain reusable functions. In this paper, we propose a technique for extracting components from existing OO programs by our new refactoring "Extract Component". Our technique of refactoring can identify and extract reusable components composed of classes from OO programs, and modify the surrounding parts of extracted components in original programs. We have developed a system that performs our refactoring automatically and extracts JavaBeans components from Java programs. As a result of evaluation experiments, it is found that our system is useful for extracting reusable components along with usage examples from Java programs.

Original languageEnglish
Pages (from-to)99-116
Number of pages18
JournalScience of Computer Programming
Issue number1-2
Publication statusPublished - 2005 Apr


  • Component-based development (CBD)
  • JavaBeans
  • Object-oriented programming
  • Refactoring
  • Software component
  • Software reuse

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'A technique for automatic component extraction from object-oriented programs by refactoring'. Together they form a unique fingerprint.

Cite this