A Multiple Level Detection Approach for design patterns recovery from object- oriented programs

  • Mohammad Al-Obeidallah

    Student thesis: Doctoral Thesis


    Design patterns have a key role in software development process.
    They describe both structure and the behavior of classes and their
    relationships. Maintainers can benefit from knowing the design
    choices made during the implementation.
    This thesis presents a Multiple Level Detection Approach (MLDA)
    to recover design pattern instances from the Java source code.
    MLDA is able to recover design pattern instances based on a
    generated class-level representation of an investigated system.
    Specifically, MLDA presents what is the so-called Structural
    Search Model (SSM) which incrementally builds the structure of
    each design pattern based on the generated source code model.
    Moreover, MLDA uses a rule-based approach to match the
    method signatures of the candidate design instances to that of the
    subject system. As the experiment results illustrate, MLDA is able
    to recover 23 design patterns with a reasonable detection
    accuracy. Furthermore, this thesis presents a metrics-based
    approach to address the impact of design pattern instances on
    software understandability and maintainability. This approach
    classifies system classes into two groups: pattern classes and
    non-pattern classes. The experimental results show that pattern
    classes have better inheritance and size metrics than do nonpattern
    classes. Unfortunately, no safe conclusion can be drawn
    regarding the impact of design patterns on software
    understandability and maintainability, since non-pattern classes
    have better coupling and cohesion metrics than do pattern
    Date of AwardJan 2018
    Original languageEnglish
    Awarding Institution
    • University of Brighton
    SupervisorStylianos Kapetanakis (Supervisor)

    Cite this