Property checking for design patterns

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Design patterns have been widely employed as a useful object-oriented technique in software engineering. In this paper, we present an approach to property checking for the application of design patterns in rCOS, which is known as a refinement calculus for object oriented systems. A relational calculus is proposed to specify the pattern properties we would like to check. To construct the abstract model from rCOS instead of analyzing directly on source code, we combine static and dynamic analysis together to achieve better checking efficiency. Class diagrams and object diagrams are obtained with the analysis of rCOS program. The extended operational semantics for rCOS with the object graph is given as the basis for representing object relationships. A general algorithm for calculating relational predicates is presented to perform the property checking. The examples of design patterns from GoF [7], such as abstract factory, builder etc, are also provided to illustrate the effectiveness of our approach from which we can tell whether some patterns are used correctly.

Original languageEnglish
Title of host publicationProceedings of the IASTED International Conference on Software Engineering, SE 2010
PublisherActa Press
Pages87-94
Number of pages8
ISBN (Print)9780889868212
DOIs
StatePublished - 2010
EventIASTED International Conference on Software Engineering, SE 2010 - Innsbruck, Austria
Duration: 16 Feb 201018 Feb 2010

Publication series

NameProceedings of the IASTED International Conference on Software Engineering, SE 2010

Conference

ConferenceIASTED International Conference on Software Engineering, SE 2010
Country/TerritoryAustria
CityInnsbruck
Period16/02/1018/02/10

Keywords

  • Design Patterns
  • Property Checking
  • Relational Calculus
  • rCOS

Fingerprint

Dive into the research topics of 'Property checking for design patterns'. Together they form a unique fingerprint.

Cite this