Table of Contents

Frontpage
Dedication
Preface
Colophon
Abstract
Table of Contents
List of Figures
List of Tables
List of Examples
Program Listings
List of Patterns

1.Introduction
1.1.Motivation
1.2.Goals
1.2.1.Demarcations
1.3.Thesis Summary
1.3.1.Part One — Theory and Background
1.3.2.Part Two — Evaluation
1.3.3.Work Performed

2.Object—Oriented Development
2.1.Object—Oriented Concepts
2.1.1.Concepts
2.1.2.Themes
2.2.Object—Oriented Methods
2.2.1.Patterns
2.3.Unified Modelling Language
2.3.1.Patterns
2.4.Object—Oriented Analysis
2.5.Object—Oriented Design
2.5.1.Patterns
2.6.Object—Oriented Programming
2.6.1.Object—Oriented Programming Language
2.6.2.Patterns
2.7.Summary

3.Patterns
3.1.Christopher Alexander
3.2.Software Patterns
3.3.Pattern Qualities
3.4.Pattern Forces
3.5.Pattern Elements
3.5.1."Gang of Four" Format
3.6.Pattern Formalism
3.7.Pattern Collections
3.7.1."Gang of Four" Pattern System
3.8.Pattern Evolution
3.8.1.Mining
3.8.2.Anti—Patterns
3.8.3.Proto Patterns
3.8.4.Piecemeal Growth
3.9.Pattern Application
3.9.1.Usage
3.9.2.Understanding
3.10.Summary

4.Related Work
4.1.Language Support
4.1.1.Implementation Level
4.1.2.Discussion
4.2.Dynamic Languages
4.2.1.Common Lisp and Dylan
4.2.2.Scheme
4.3.Static Languages
4.3.1.C++
4.3.2.Java
4.3.3.Java and AspectJ
4.3.4.Eiffel
4.4.Comparison
4.4.1.Features
4.4.2.Patterns
4.5.Summary

5.Evaluation Approach
5.1.Focus
5.2.Description
5.3.Evaluation Goals
5.3.1.Features
5.4.Summary

6.Implementation
6.1.Software
6.2.Modelling
6.3.Design
6.4.Source Code
6.5.Testing
6.6.Summary

7.Comparative Evaluation
7.1.Language Features
7.1.1.Core Language Features
7.1.2.Reflection
7.1.3.Special Language Mechanisms
7.1.4.Feature Observations
7.2.Pattern Relationships
7.3.Implementation Level
7.4.Summary

8.Detailed Evaluation
8.1.Creational Patterns
8.1.1.Abstract Factory
8.1.2.Builder
8.1.3.Factory Method
8.1.4.Prototype
8.1.5.Singleton
8.2.Structural Patterns
8.2.1.Adapter
8.2.2.Bridge
8.2.3.Composite
8.2.4.Decorator
8.2.5.Facade
8.2.6.Flyweight
8.2.7.Proxy
8.3.Behavioural Patterns
8.3.1.Chain of Responsibility
8.3.2.Command
8.3.3.Interpreter
8.3.4.Iterator
8.3.5.Mediator
8.3.6.Memento
8.3.7.Observer
8.3.8.State
8.3.9.Strategy
8.3.10.Template Method
8.3.11.Visitor
8.4.Summary

9.Evaluation Conclusions
9.1.Implementation Compliance
9.2.Language Features
9.3.High—Lights
9.3.1.Abstract Factory and Factory Method
9.3.2.Memento
9.3.3.Observer
9.3.4.Proxy and State
9.3.5.Singleton
9.4.Evaluation Approach

10.Conclusion
10.1.Perspective
10.2.Results
10.3.Future Work
10.4.Final Remarks

Bibliography