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

    Research output: Contribution to journalArticle

    37 Citations (Scopus)

    Abstract

    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
    Volume56
    Issue number1-2
    DOIs
    Publication statusPublished - 2005 Apr

    Fingerprint

    Software engineering
    Costs
    Computer systems
    Experiments

    Keywords

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

    ASJC Scopus subject areas

    • Computational Theory and Mathematics
    • Software

    Cite this

    @article{486c3fd91ec74738bb55c1f3140163b7,
    title = "A technique for automatic component extraction from object-oriented programs by refactoring",
    abstract = "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.",
    keywords = "Component-based development (CBD), JavaBeans, Object-oriented programming, Refactoring, Software component, Software reuse",
    author = "Hironori Washizaki and Yoshiaki Fukazawa",
    year = "2005",
    month = "4",
    doi = "10.1016/j.scico.2004.11.007",
    language = "English",
    volume = "56",
    pages = "99--116",
    journal = "Science of Computer Programming",
    issn = "0167-6423",
    publisher = "Elsevier",
    number = "1-2",

    }

    TY - JOUR

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

    AU - Washizaki, Hironori

    AU - Fukazawa, Yoshiaki

    PY - 2005/4

    Y1 - 2005/4

    N2 - 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.

    AB - 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.

    KW - Component-based development (CBD)

    KW - JavaBeans

    KW - Object-oriented programming

    KW - Refactoring

    KW - Software component

    KW - Software reuse

    UR - http://www.scopus.com/inward/record.url?scp=14544274058&partnerID=8YFLogxK

    UR - http://www.scopus.com/inward/citedby.url?scp=14544274058&partnerID=8YFLogxK

    U2 - 10.1016/j.scico.2004.11.007

    DO - 10.1016/j.scico.2004.11.007

    M3 - Article

    AN - SCOPUS:14544274058

    VL - 56

    SP - 99

    EP - 116

    JO - Science of Computer Programming

    JF - Science of Computer Programming

    SN - 0167-6423

    IS - 1-2

    ER -