Pattern-based design evolution using graph transformation

Chunying Zhao*, Jun Kong, Jing Dong, Kang Zhang

*Corresponding author for this work

Research output: Contribution to journalJournal Articlepeer-review

29 Citations (Scopus)

Abstract

In recent years, design patterns gain more interest in software engineering communities for both software development and maintenance. As a template to solve a certain recurring problem, a design pattern documents successful experiences of software experts and gradually becomes the design guidelines of software development. Applying design patterns correctly can improve the efficiency of software design in terms of reusability and enhance maintainability during reverse engineering. Software can be evolved when developers modify their initial designs as requirements change. For instance, a developer may add/delete a set of design elements, such as classes and methods. Modifications on software artifacts can introduce conflicts and inconsistencies in the previously applied design patterns, which are difficult to find and time-consuming to correct. This paper presents a graph-transformation approach to pattern level design validation and evolution. Based on a well founded formalism, we validate a given design by a graph grammar parser and automatically evolve the design at pattern level using a graph-transformation system. Rules for potential pattern evolutions are predefined. The graph-transformation approach preserves the integrity and consistency of design patterns in the system when designs change. A prototype system is built and a case study on the Strategy pattern demonstrates the feasibility of pattern-based design validation and evolution using graph transformation techniques.

Original languageEnglish
Pages (from-to)378-398
Number of pages21
JournalJournal of Visual Languages and Computing
Volume18
Issue number4
DOIs
Publication statusPublished - Aug 2007
Externally publishedYes

Keywords

  • Design pattern
  • Graph grammar
  • Graph transformation
  • Software evolution
  • Visual language

Fingerprint

Dive into the research topics of 'Pattern-based design evolution using graph transformation'. Together they form a unique fingerprint.

Cite this