Patterns provide solutions to recurring design problems in a variety of domains,
including that of software design. The best patterns are generative: they show how to
build the solution they propose, rather than just explaining it. A collection of patterns
that work together to generate a complex system is called a pattern language. Pattern
languages have been written for domains as diverse as architecture and computer
science, but the process of developing pattern languages is not well understood.
This thesis focuses on defining both the structure of pattern languages and the
processes by which they are built. The theoretical foundation of the work is existing
theory on symmetry breaking. The form of the work is itself a pattern language: a
Language Designer's Pattern Language (LDPL). LDPL itself articulates the structure
of pattern languages and the key processes by which they form and evolve, and thus
guides the building of a properly structured pattern language. LDPL uses
multidisciplinary examples to validate the claims made, and an existing software
pattern language is analyzed using the material developed.
A key assumption of this thesis is that a pattern language is a structural entity; a
pattern is not just a transformation on system structure, but also the resultant structural
configuration. Another key assumption is that it is valid to treat a pattern language
itself as a complex, designed system, and therefore valid to develop a pattern language
for building pattern languages.
One way of developing a pattern language for building pattern languages would be
to search for underlying commonality across a variety of existing, well known pattern
languages. Such underlying commonality would form the basis for patterns in LDPL.
This project has not directly followed this approach, simply because very few pattern
languages that are genuinely structural have currently been explicitly documented.
Instead, given that pattern languages articulate structure and behavior of complex
systems, this research has investigated existing complex systems theory - in particular,
symmetry-breaking - and used that theory to underpin the pattern language. The
patterns in the language are validated by examples of those patterns within two well
known pattern languages, and within several existing systems whose pattern
languages have not necessarily been explicitly documented as such, but the existence
of which is assumed in the analysis.
In addition to developing LDPL, this project has used LDPL to critique an existing
software pattern language, and to show how that software pattern language could
potentially have been generated using LDPL. Existing relationships between patterns
in the software language have been analyzed and, in some cases, changes to patterns
and their interconnections have been proposed as a way of improving the language.
This project makes a number of key contributions to pattern language research. It
provides a basis for semantic analysis of pattern languages and demonstrates the
validity of using a pattern language to articulate the structure of pattern languages and
the processes by which they are built. The project uses symmetry-breaking theory to
analyze pattern languages and applies that theory to the development of a language.
The resulting language, LDPL, provides language developers with a tool they can use
to help build pattern languages.
Identifer | oai:union.ndltd.org:ADTP/216453 |
Date | January 2006 |
Creators | Winn, Tiffany Rose, winn@infoeng.flinders.edu.au |
Publisher | Flinders University. Informatics and Engineering |
Source Sets | Australiasian Digital Theses Program |
Language | English |
Detected Language | English |
Rights | http://www.flinders.edu.au/disclaimer/), Copyright Tiffany Rose Winn |
Page generated in 0.0014 seconds