Creating abstract superclasses by refactoring
CSC '93 Proceedings of the 1993 ACM conference on Computer science
The study of programming languages
The study of programming languages
Design patterns for object-oriented software development
Design patterns for object-oriented software development
Complex associations: abstractions in object-oriented modeling
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Stability, coupling, and cohesion of object-oriented software systems
CSC '94 Proceedings of the 22nd annual ACM computer science conference on Scaling up : meeting the challenge of complexity in real-world computing applications: meeting the challenge of complexity in real-world computing applications
Relationships between design patterns
Pattern languages of program design
Automatic inheritance hierarchy restructuring and method refactoring
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Smalltalk: best practice patterns
Smalltalk: best practice patterns
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Finding refactorings via change metrics
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A Theory of Objects
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
A Unified Framework for Cohesion Measurement
METRICS '97 Proceedings of the 4th International Symposium on Software Metrics
Design-Level Cohesion Measures: Derivation, Comparison, and Applications
COMPSAC '96 Proceedings of the 20th Conference on Computer Software and Applications
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Metrics-based detection of micro patterns
Proceedings of the 2010 ICSE Workshop on Emerging Trends in Software Metrics
Object-Oriented specification composition and refinement via category theoretic computations
TAMC'06 Proceedings of the Third international conference on Theory and Applications of Models of Computation
Hi-index | 0.00 |
Design patterns are an important concept in the field of software engineering, providing a language and application independent method for expressing and conveying lessons learned by experienced designers. There is a large gap, however, between the aesthetic and elegance of the patterns as intended and the reality of working with an ultimately mathematically expressible system such as code. In this paper we describe a step towards meaningful formal analysis of code within the language of patterns, and discuss potential uses. The major contributions include: a compendium of Elemental Design Patterns (EDPs), a layer of seemingly simplistic relationships between objects that, on closer inspection, provide a critical link between the world of formal analysis and the realm of pattern design and implementation without reducing the patterns to merely syntactic constructs; an extension to the ò -calculus, termed ñ -calculus, a formal notation for expressing relationships between theelements of object oriented languages, and its use in expressing the EDPs directly. We discuss their use in composition and decomposition of existing patterns, identification of pattern use in existing code to aid comprehension, and future research directions, such as support for refactoring of designs, interaction with traditional code analysis systems, and the education of students of software architecture.