Eiffel: the language
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Pattern languages of program design
Pattern languages of program design
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Pattern hatching: design patterns applied
Pattern hatching: design patterns applied
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
The Java Language Specification
The Java Language Specification
Applied Java Patterns
Evolving Object-Oriented Designs with Refactorings
Automated Software Engineering
Precise specification and automatic application of design patterns
ASE '97 Proceedings of the 12th international conference on Automated software engineering (formerly: KBSE)
iContract - The Java(tm) Design by Contract(tm) Tool
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Automatic Verification of Java Design Patterns
Proceedings of the 16th IEEE international conference on Automated software engineering
Evolving object-oriented designs with refactorings
Evolving object-oriented designs with refactorings
Identifying Data Transfer Objects in EJB Applications
WODA '07 Proceedings of the 5th International Workshop on Dynamic Analysis
Beyond refactoring: a framework for modular maintenance of crosscutting design idioms
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Defining and continuous checking of structural program dependencies
Proceedings of the 30th international conference on Software engineering
Automated usability testing framework
AUIC '08 Proceedings of the ninth conference on Australasian user interface - Volume 76
Formal specification of the variants and behavioural features of design patterns
Journal of Systems and Software
Automatic coding rule conformance checking using logic programming
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
Mining design patterns from existing projects using static and run-time analysis
CEE-SET'08 Proceedings of the Third IFIP TC 2 Central and East European conference on Software engineering techniques
A theory of classes from the theoretical foundations of LePUS3
ICFEM'11 Proceedings of the 13th international conference on Formal methods and software engineering
A methodology to assess the impact of design patterns on software quality
Information and Software Technology
ACM Transactions on Software Engineering and Methodology (TOSEM) - In memoriam, fault detection and localization, formal methods, modeling and design
An approach to automatically enforce object-oriented constraints
International Journal of Computer Applications in Technology
Hi-index | 0.00 |
Design patterns are widely used by designers and developers for building complex systems in object-oriented programming languages such as Java. However, systems evolve over time, increasing the chance that the pattern in its original form will be broken.To verify that a design pattern has not been broken requires specifying the original intent of the design pattern. Whilst informal descriptions of design patterns exist, no formal specifications are available due to differences in implementations between programming languages.We present a pattern specification language, Spine, that allows patterns to be defined in terms of constraints on their implementation in Java. We also present some examples of patterns defined in Spine and show how they are processed using a proof engine called Hedgehog.The conclusion discusses the type of patterns that are amenable to defining in Spine, and highlights some repeated mini-patterns discovered in the formalisation of these design patterns.