Skip to Main Content
 

Global Search Box

 
 
 
 

Files

ETD Abstract Container

Abstract Header

Design Pattern Contracts

Hallstrom, Jason Olof

Abstract Details

2004, Doctor of Philosophy, Ohio State University, Computer and Information Science.
A design pattern describes a commonly recurring problem in the design of object-oriented software, a solution to that problem, and the context in which the solution can be applied. The benefits of design patterns are two-fold. First, patterns serve as guidance to the novice designer. Second, they provide an extended vocabulary for documenting software design. In the mid 1990s, the publication of several pattern catalogs – compendiums of design patterns – popularized patterns as a tool for designing object-oriented software. Unfortunately, the descriptive format popularized by these catalogs is inherently imprecise. As a consequence, it is unclear when a pattern has been applied correctly, or what can be concluded about a system implemented using a particular pattern. This ambiguity threatens to undermine the two principal benefits associated with the use of design patterns. First, novice designers are more prone to error without a precise description of how each pattern must be applied. Second, documentation describing the patterns applied in designing a system may be misleading, as different designers can interpret pattern descriptions in subtly different ways. To address the ambiguity issues associated with design pattern descriptions, we introduce the concept of a design pattern contract as a formalism for precisely specifying design patterns. Like all contracts, a design pattern contract consists of two primary components: a responsibilities component and a rewards component. The responsibilities component of a pattern contract precisely characterizes the requirements that must be satisfied by the designer when applying a particular pattern. The rewards component specifies the system properties that are guaranteed to be exhibited if the contract responsibilities are indeed satisfied. The contract formalism alone, however, is insufficient to guarantee that design patterns will be applied correctly. Even when guided by a precise set of requirements, designers can – and do – make mistakes. To detect such contract violations, we introduce the notion of a contract monitor – an executable unit of deployment used to detect runtime contract violations. We present two approaches to implementing these monitors. The choice of which to use depends on the requirements of the system, and the skill-set of the designer.
Neelam Soundarajan (Advisor)
192 p.

Recommended Citations

Citations

  • Hallstrom, J. O. (2004). Design Pattern Contracts [Doctoral dissertation, Ohio State University]. OhioLINK Electronic Theses and Dissertations Center. http://rave.ohiolink.edu/etdc/view?acc_num=osu1090010266

    APA Style (7th edition)

  • Hallstrom, Jason. Design Pattern Contracts. 2004. Ohio State University, Doctoral dissertation. OhioLINK Electronic Theses and Dissertations Center, http://rave.ohiolink.edu/etdc/view?acc_num=osu1090010266.

    MLA Style (8th edition)

  • Hallstrom, Jason. "Design Pattern Contracts." Doctoral dissertation, Ohio State University, 2004. http://rave.ohiolink.edu/etdc/view?acc_num=osu1090010266

    Chicago Manual of Style (17th edition)