Mining Design Patterns from C++ Source Code

Zsolt Balanyi, Rudolf Ferenc

Research output: Chapter in Book/Report/Conference proceedingConference contribution

78 Citations (Scopus)

Abstract

Design patterns are micro architectures that have proved to be reliable, easy-to implement and robust. There is a need in science and industry for recognizing these patterns. We present a new method for discovering design patterns in the source code. This method provides a precise specification of how the patterns work by describing basic structural information like inheritance, composition, aggregation and association, and as an indispensable part, by defining call delegation, object creation and operation overriding. We introduce a new XML-based language, the Design Pattern Markup Language (DPML), which provides an easy way for the users to modify pattern descriptions to suit their needs, or even to define their own patterns or just classes in certain relations they wish to find. We tested our method on four open-source systems, and found it effective in discovering design pattern instances.

Original languageEnglish
Title of host publicationIEEE International Conference on Software Maintenance, ICSM
PublisherIEEE Computer Society
Pages305-314
Number of pages10
ISBN (Print)769519059
DOIs
Publication statusPublished - Jan 1 2003
EventInternational Conference on Software Maintenance, ICSM 2003 - Amsterdam, Netherlands
Duration: Sep 22 2003Sep 26 2003

Publication series

NameIEEE International Conference on Software Maintenance, ICSM

Conference

ConferenceInternational Conference on Software Maintenance, ICSM 2003
CountryNetherlands
CityAmsterdam,
Period9/22/039/26/03

Keywords

  • ASG
  • C++
  • Columbus
  • DPML
  • Design Patterns
  • Schema
  • UML

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Mining Design Patterns from C++ Source Code'. Together they form a unique fingerprint.

  • Cite this

    Balanyi, Z., & Ferenc, R. (2003). Mining Design Patterns from C++ Source Code. In IEEE International Conference on Software Maintenance, ICSM (pp. 305-314). (IEEE International Conference on Software Maintenance, ICSM). IEEE Computer Society. https://doi.org/10.1109/ICSM.2003.1235436