Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Understanding and using patterns in software development
Theory and Practice of Object Systems - Special issue on patterns
Components, frameworks, patterns
Proceedings of the 1997 symposium on Software reusability
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 20th international conference on Software engineering
Patterns Generate Architectures
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
Enabling Reuse-Based Software Development of Large-Scale Systems
IEEE Transactions on Software Engineering
Modeling architectural patterns using architectural primitives
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Toward effective deployment of design patterns for software extension: a case study
Proceedings of the 2006 international workshop on Software quality
Automated generation of monitors for pattern contracts
Proceedings of the 2006 ACM symposium on Applied computing
A Methodology for Architectural Design of Concurrent and Distributed Software Systems
The Journal of Supercomputing
Identifying Data Transfer Objects in EJB Applications
WODA '07 Proceedings of the 5th International Workshop on Dynamic Analysis
Systematic pattern selection using pattern language grammars and design space analysis
Software—Practice & Experience
Modeling process-driven and service-oriented architectures using patterns and pattern primitives
ACM Transactions on the Web (TWEB)
Composing pattern-based components and verifying correctness
Journal of Systems and Software
A catalog of architectural primitives for modeling architectural patterns
Information and Software Technology
A formal model of design-patterns based design
Proceedings of the 2nd India software engineering conference
Checking semantic usage of frameworks
LCSD '07 Proceedings of the 2007 Symposium on Library-Centric Software Design
Reusing Patterns through Design Refinement
ICSR '09 Proceedings of the 11th International Conference on Software Reuse: Formal Foundations of Reuse and Domain Engineering
Tracing correct usage of design patterns
SEA '07 Proceedings of the 11th IASTED International Conference on Software Engineering and Applications
Checking and Correcting Behaviors of Java Programs at Runtime with Java-MOP
Electronic Notes in Theoretical Computer Science (ENTCS)
Automated verification of security pattern compositions
Information and Software Technology
Modeling the variability of architectural patterns
Proceedings of the 2010 ACM Symposium on Applied Computing
Formal methods and hybrid real-time systems
Initiating a design pattern catalog for embedded network systems
EMSOFT '10 Proceedings of the tenth ACM international conference on Embedded software
A formal pattern architecture for safe medical systems
WRLA'10 Proceedings of the 8th international conference on Rewriting logic and its applications
A tool for a formal pattern modeling language
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
A methodology to assess the impact of design patterns on software quality
Information and Software Technology
A rigorous foundation for pattern-based design models
ZB'05 Proceedings of the 4th international conference on Formal Specification and Development in Z and B
Amplifying the benefits of design patterns: from specification through implementation
FASE'06 Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering
Taming distributed system complexity through formal patterns
Science of Computer Programming
Hi-index | 0.00 |
Design patterns provide guidance to system designers onhow to structure individual classes or groups of classes, aswell as constraints on the interactions among these classes,to enable them to implement flexible and reliable systems.Patterns are usually described informally. While such informaldescriptions are useful and even essential, if we wantto be sure that designers precisely and unambiguously understandthe requirements that must be met when applyinga given pattern, and be able to reliably predict the behaviorsthe resulting system will exhibit, we also need formalcharacterizations of the patterns.In this paper, we develop an approach to formalizing designpatterns. The requirements that a designer must meetwith respect to the structures of the classes, as well as withrespect to the behaviors exhibited by the relevant methods,are captured in the responsibilities component of the patternýsspecification; the benefits that will result by applyingthe pattern, in terms of specific behaviors that the resultingsystem will be guaranteed to exhibit, are captured in therewards component. One important aspect of many designpatterns is their flexibility; our approach is designed to ensurethat this flexibility is retained in the formalization ofthe pattern. We illustrate the approach by applying it to astandard design pattern.