Proofs and types
Programming in Martin-Lo¨f's type theory: an introduction
Programming in Martin-Lo¨f's type theory: an introduction
Functional programming with bananas, lenses, envelopes and barbed wire
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Formal specification of reusable interface objects
SSR '95 Proceedings of the 1995 Symposium on Software reusability
Pattern languages of program design
Pattern languages of program design
Algebra of programming
Proceedings of the 20th international conference on Software engineering
A debate on language and tool support for design patterns
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A logical framework for design composition
Proceedings of the 22nd international conference on Software engineering
Concepts and paradigms of object-oriented programming
ACM SIGPLAN OOPS Messenger
Visitor combination and traversal control
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A Theory of Objects
Design Patterns vs. Language Design
ECOOP '97 Proceedings of the Workshops on Object-Oriented Technology
A Formal Approach to Architectural Design Patterns
FME '96 Proceedings of the Third International Symposium of Formal Methods Europe on Industrial Benefit and Advances in Formal Methods
Precise specification and automatic application of design patterns
ASE '97 Proceedings of the 12th international conference on Automated software engineering (formerly: KBSE)
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
1FACS'96 Proceedings of the 1st BCS-FACS conference on Northern Formal Methods
Hi-index | 0.00 |
The development of design patterns in object-oriented programming aims at capturing good software design in a reusable generic form. However, design patterns are not expressible in conventional object-oriented programming languages. To address this shortcoming, we need to model and understand design patterns precisely. We achieve this by identifying operators characterising the most fundamental design patterns in a way that enables the construction of object-oriented programs with provable structural and behavioural properties. We use dependent-type theory to define a simplified, functional model of object-oriented programming. Design patterns are modelled in this setting as operators on object signatures and implementations. We present examples of several basic design operators and design patterns modelled in this setting and show how properties of their composition can be proven.