DocumentCode
3476272
Title
Patterns, frameworks, and middleware: their synergistic relationships
Author
Schmidt, Douglas C. ; Buschmann, Frank
Author_Institution
Dept. of Electr. Eng. & Comput. Sci., Vanderbilt Univ., Nashville, TN, USA
fYear
2003
fDate
3-10 May 2003
Firstpage
694
Lastpage
704
Abstract
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.
Keywords
middleware; object-oriented programming; operating systems (computers); protocols; software quality; software reusability; complex software systems; databases; middleware; network protocol stacks; operating systems; reusable software; software development; software modeling methods; software patterns; Application software; Bridges; Collaboration; Computer architecture; Concrete; Middleware; Operating systems; Programming; Software reusability; Software tools;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Engineering, 2003. Proceedings. 25th International Conference on
ISSN
0270-5257
Print_ISBN
0-7695-1877-X
Type
conf
DOI
10.1109/ICSE.2003.1201256
Filename
1201256
Link To Document