Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A framework for network protocol software
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Pattern languages of program design
Pattern languages of program design
The CHECKS pattern language of information integrity
Pattern languages of program design
A pattern language for improving the capacity of reactive systems
Pattern languages of program design 2
Smalltalk: best practice patterns
Smalltalk: best practice patterns
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Advanced CORBA programming with C++
Advanced CORBA programming with C++
Building application frameworks: object-oriented foundations of framework design
Building application frameworks: object-oriented foundations of framework design
Implementing application frameworks: object-oriented frameworks at work
Implementing application frameworks: object-oriented frameworks at work
Small memory software: patterns for systems with limited memory
Small memory software: patterns for systems with limited memory
The case for reflective middleware
Communications of the ACM - Adaptive middleware
Middleware for real-time and embedded systems
Communications of the ACM - Adaptive middleware
Concurrent Programming in Java: Design Principles and Patterns
Concurrent Programming in Java: Design Principles and Patterns
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
A Pattern Approach to Interaction Design
A Pattern Approach to Interaction Design
Core J2EE Patterns: Best Practices and Design Strategies
Core J2EE Patterns: Best Practices and Design Strategies
Patterns of Enterprise Application Architecture
Patterns of Enterprise Application Architecture
C++ Network Programming: Systematic Reuse with ACE and Frameworks, Vol. 2
C++ Network Programming: Systematic Reuse with ACE and Frameworks, Vol. 2
Commonality and Variability in Software Engineering
IEEE Software
Software Architecture in Practice
Software Architecture in Practice
Server Component Patterns: Component Infrastructures Illustrated with EJB
Server Component Patterns: Component Infrastructures Illustrated with EJB
IKE 2-Implementing the Stateful Distributed Object Paradigm
ISORC '02 Proceedings of the Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing
The design of the TAO real-time object request broker
Computer Communications
Applying patterns to develop extensible ORB middleware
IEEE Communications Magazine
Developing next-generation distributed applications with QoS enabled DPE middleware
IEEE Communications Magazine
An approach to specifying software frameworks
ACSC '04 Proceedings of the 27th Australasian conference on Computer science - Volume 26
Using Transient/Persistent Errors to Develop Automated Test Oracles for Event-Driven Software
Proceedings of the 19th IEEE international conference on Automated software engineering
IEEE Internet Computing
A component integration meta-framework using smart adapters
ISICT '04 Proceedings of the 2004 international symposium on Information and communication technologies
Program comprehension: investigating the effects of naming style and documentation
AUIC '05 Proceedings of the Sixth Australasian conference on User interface - Volume 40
Performance evaluation of the reactor pattern using the OMNeT++ simulator
Proceedings of the 44th annual Southeast regional conference
Schizophrenic middleware support for fault tolerance
Proceedings of the 2006 annual ACM SIGAda international conference on Ada
A formal framework for middleware behavioural specification
ACM SIGSOFT Software Engineering Notes
TOWARDS SEMANTIC INTEGRATION OF COMPONENTS USING A SERVICE-BASED ARCHITECTURE
Journal of Integrated Design & Process Science
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)
Ada 2005 code patterns for metamodel-based code generation
IRTAW '07 Proceedings of the 13th international workshop on Real-time Ada
Demystifying the asynchronous network supported collaborative learning systems
International Journal of Computer Applications in Technology
Pattern-based design of a service-oriented middleware for remote object federations
ACM Transactions on Internet Technology (TOIT)
Architecting as decision making with patterns and primitives
Proceedings of the 3rd international workshop on Sharing and reusing architectural knowledge
Contemplating systematic software reuse in a project-centric company
Proceedings of the 2008 annual research conference of the South African Institute of Computer Scientists and Information Technologists on IT research in developing countries: riding the wave of technology
Research on the Web Information System Development Platform Based on MVC Design Pattern
WI-IAT '08 Proceedings of the 2008 IEEE/WIC/ACM International Conference on Web Intelligence and Intelligent Agent Technology - Volume 03
Towards a framework for web service compositions recovery
Proceedings of the Warm Up Workshop for ACM/IEEE ICSE 2010
A style-based architecture modelling approach for UML 2 component diagrams
SEA '07 Proceedings of the 11th IASTED International Conference on Software Engineering and Applications
Spontaneousware: a middleware framework for mobile ad hoc networks
M-PAC '09 Proceedings of the International Workshop on Middleware for Pervasive Mobile and Embedded Computing
A factory to design and build tailorable and verifiable middleware
Proceedings of the 12th Monterey conference on Reliable systems on unreliable networked platforms
Design and performance of a generic consensus component for critical distributed applications
Ada-Europe'07 Proceedings of the 12th international conference on Reliable software technologies
A reputation pattern for service oriented computing
ICICS'09 Proceedings of the 7th international conference on Information, communications and signal processing
CIRLab: A groupware framework for collaborative information retrieval research
Information Processing and Management: an International Journal
A pattern language for parallelizing irregular algorithms
Proceedings of the 2010 Workshop on Parallel Programming Patterns
Journal of Network and Computer Applications
A LOTOS framework for middleware specification
FORTE'06 Proceedings of the 26th IFIP WG 6.1 international conference on Formal Techniques for Networked and Distributed Systems
The supportive effect of patterns in architecture decision recovery - A controlled experiment
Science of Computer Programming
Reuse in implementations of middleware for digital TV
Proceedings of the 18th Brazilian symposium on Multimedia and the web
Hi-index | 0.00 |
The knowledge required to develop complex software has historically existed in programming folklore, the heads of experienced developers, or buried deep in the code. These locations are not ideal since the effort required to capture and evolve this knowledge is expensive, time-consuming, and error-prone. Many popular software modeling methods and tools address certain aspects of these problems by documenting how a system is designed. However, they only support limited portions of software development and do not articulate why a system is designed in a particular way, which complicates subsequent software reuse and evolution.Patterns, frameworks, and middleware are increasingly popular techniques for addressing key aspects of the challenges outlined above. Patterns codify reusable design expertise that provides time-proven solutions to commonly occurring software problems that arise in particular contexts and domains. Frameworks provide both a reusable product-line architecture [1] guided by patterns -- for a family of related applications and an integrated set of collaborating components that implement concrete realizations of the architecture. Middleware is reusable software that leverages patterns and frameworks to bridge the gap between the functional requirements of applications and the underlying operating systems, network protocol stacks, and databases. This paper presents an overview of patterns, frameworks, and middleware, describes how these technologies complement each other to enhance reuse and productivity, and then illustrates how they have been applied successfully in practice to improve the reusability and quality of complex software systems.