Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Framework development for large systems
Communications of the ACM
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Patterns of Enterprise Application Architecture
Patterns of Enterprise Application Architecture
Extreme Programming in Action: Practical Experiences from Real World Projects
Extreme Programming in Action: Practical Experiences from Real World Projects
Enterprise Application Integration
HICSS '01 Proceedings of the 34th Annual Hawaii International Conference on System Sciences ( HICSS-34)-Volume 9 - Volume 9
Conceptual modeling by analogy and metaphor
Proceedings of the sixteenth ACM conference on Conference on information and knowledge management
Multi-Agent System: A Guiding Metaphor for the Organization of Software Development Projects
MATES '07 Proceedings of the 5th German conference on Multiagent System Technologies
Analysis and Reuse of Plots Using Similarity and Analogy
ER '08 Proceedings of the 27th International Conference on Conceptual Modeling
Architecture and design in extreme programming; introducing “developer stories”
XP'06 Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering
Hi-index | 0.01 |
The importance of using a good metaphor within projects was demonstrated by Kent Beck in his keynote talk at OOPSLA 2002. While the role of metaphors seems to be accepted, the process of finding the right metaphor is a demanding task. Letting the metaphor guide you to a suitable system architecture is even harder. Wouldn't it be nice to have a good starting point for finding and using a metaphor? We introduce the concept of a metaphor design space. This provides a set of proven design metaphors and combines them with architecture patterns similar to Martin Fowler's Enterprise Application Architecture (see [3]). The basic concept has evolved over the past ten years while working on metaphor-based object-oriented systems. We illustrate the concept using examples from the Tools & Materials approach (see [9]).