Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Design patterns for object-oriented software development
Design patterns for object-oriented software development
Roles: conceptual abstraction theory and practical language issues
Theory and Practice of Object Systems - Special issue on subjectivity in object-oriented systems
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Component software: beyond object-oriented programming
Component software: beyond object-oriented programming
Pattern languages of program design 3
Patterns for evolving frameworks
Pattern languages of program design 3
Multi-paradigm design for C++
Pattern-based software reengineering: a case study
Journal of Software Maintenance: Research and Practice
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
GCSE '00 Proceedings of the Second International Symposium on Generative and Component-Based Software Engineering-Revised Papers
Abstracting Object Interactions Using Composition Filters
ECOOP '93 Proceedings of the Workshop on Object-Based Distributed Programming
Enhancing Object-Based System Composition through Per-Object Mixins
APSEC '99 Proceedings of the Sixth Asia Pacific Software Engineering Conference
XOTcl: an object-oriented scripting language
TCLTK'00 Proceedings of the 7th conference on USENIX Tcl/Tk - Volume 7
Filters as a language support for design patterns in object-oriented scripting languages
COOTS'99 Proceedings of the 5th conference on USENIX Conference on Object-Oriented Technologies & Systems - Volume 5
Intercepting and instrumenting COM applications
COOTS'99 Proceedings of the 5th conference on USENIX Conference on Object-Oriented Technologies & Systems - Volume 5
Domain-Specific Runtime Variability in Product Line Architectures
OOIS '02 Proceedings of the 8th International Conference on Object-Oriented. Information Systems
Pattern-Based Design and Implementation of an XML and RDF Parser and Interpreter: A Case Study
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Designing runtime variation points in product line architectures: three cases
Science of Computer Programming - Special issue: Software variability management
A case study in re-engineering to enforce architectural control flow and data sharing
Journal of Systems and Software
Software—Practice & Experience
Systematic pattern selection using pattern language grammars and design space analysis
Software—Practice & Experience
Developing legacy system migration methods and tools for technology transfer
Software—Practice & Experience
Tailorable language for behavioral composition and configuration of software components
Computer Languages, Systems and Structures
Hi-index | 0.02 |
Numerous large applications that have evolved over many years are well-functioning and reliable, but have severe problems regarding flexibility and reuse. Due to the many fixes that were applied in a system's lifetime, it is often hard to customize, change or exchange system parts. Therefore, it is problematic to migrate such systems to a more flexible architecture or to new technologies. The document archive/retrieval system, discussed in this article, is an example of a large C system that had such problems. As a solution, we will sketch an architectural pattern language that involves patterns well-suited for a piecemeal migration process. The patterns aim at building and composing highly flexible black-box component architectures with an object-oriented glueing layer. We present a re-engineering case study for the document archive/retrieval system based on these patterns. The patterns are used to wrap the existing C implementations and integrate them with an object system. Moreover, the patterns introduce flexibility hooks into the hot spots of the architecture and let components define their required environment. This enables an easier future evolution of the system. The case study demonstrates a pattern language as an approach for piecemeal legacy migration apart from implementation details.