New version page

Stylized Architecture, Design Patterns, and Objects

This preview shows page 1-2-3-4-5 out of 16 pages.

View Full Document
View Full Document

End of preview. Want to read all 16 pages?

Upload your study docs or become a GradeBuddy member to access this document.

View Full Document
Unformatted text preview:

Stylized Architecture, Design Patterns, and Objects September 16, 1996 1Stylized Architecture, Design Patterns, andObjectsRobert T. Monroe, Drew Kompanek, Ralph Melton, and David Garlan Abstract Software system builders are increasingly recognizing the importance ofexploiting design knowledge in the engineering of new systems. One way to dothis is to define an architectural style for a collection of related systems. The styledetermines a coherent vocabulary of system design elements and rules for theircomposition. By structuring the design space for a family of related systems astyle can, in principle, drastically simplify the process of building a system, reducecosts of implementation through reusable infrastructure, and improve systemintegrity through style-specific analyses and checks. Like architectural style, object-oriented design patterns attempt to captureand exploit design knowledge to ease the process of designing software systemsand reusing proven designs. There are, however, significant differences in theroles and capabilities of architectural styles and object-oriented design patterns, asthere are between architectural design and object-oriented design. In this paper weillustrate the relationship between software architecture and object-orienteddesign, as well as the relationship between architectural styles and design patterns.We begin by defining our terms and then proceed to compare and contrast thevarious approaches with examples.This research was sponsored by the National Science Foundation under Grant Number CCR-9357792, by theWright Laboratory, Aeronautical Systems Center, Air Force Materiel Command, USAF, and the AdvancedResearch Projects Agency (ARPA) under grant number F33615-93-1-1330,and by Siemens CorporateResearch. The views and conclusions contained in this document are those of the authors and should not beinterpreted as representing the official policies, either expressed or implied, of Wright Laboratory, theU.S.~Government, or Siemens Corporation. The U.S.~Government is authorized to reproduce and distributereprints for Government purposes notwithstanding any copyright notation thereon.Stylized Architecture, Design Patterns, and Objects September 16, 1996 21 IntroductionA critical challenge for software engineering is to capture system designs and reuse estab-lished design knowledge when building new systems. One promising approach is to focus on thearchitectural level of system design. This level of design is concerned with the gross structure ofa system as a composition of interacting parts. Key issues illuminated by an architectural designare the assignment of functionality to design elements, protocols of interaction between the ele-ments, scaling and portability, and global system properties such as rates of processing, end-to-end capacities, and overall performance [SG96].Architectural descriptions have long been recognized as an essential ingredient of a well-designed system. These descriptions tend to be informal and idiosyncratic, consisting of box-and-line diagrams that convey the essential system structure, together with prose that explains themeaning of the symbols. Nonetheless, they serve as a key component in the development of mostsystems, both by providing a critical staging point for determining whether a system can meet itsessential requirements and by guiding implementors in system construction.More recently architectural descriptions are being recognized as an appropriate vehicle forcodification and reuse of design knowledge. Much of the power of architectural descriptionscomes from use of idiomatic architectural terms, such as “client-server system,” “layered system,”or “blackboard organization.” These convey widespread, if informal, understanding of thedescriptions, and allow engineers to quickly communicate their designs to others.In many cases, such as those mentioned above, architectural idioms represent what has beentermed an architectural style [AAG93]. As we describe later, an architectural style provides adesign vocabulary (clients and servers, pipes and filters, blackboards and knowledge sources, etc.)together with rules for how elements in that vocabulary can be combined. In essence, a style pro-vides a specialized design language for a specific class of systems. Principled use of architecturalstyles promises many benefits, including simplifying the process of designing and implementing asystem by focusing the design space, reducing implementation costs through reusable infrastruc-ture, and improving system integrity with style-specific analyses and checks.Object-oriented design and design patternsAnother approach to describing system designs is to use an object-oriented paradigm. In itsmost simple form, object-oriented design provides a way for system designers to encapsulate dataand behavior in discrete objects that provide explicit interfaces to other objects. Groups of objectsinteract by passing messages amongst themselves. Object-oriented design (OOD) has proven tobe quite popular in practice, and sophisticated OOD methodologies provide significant leveragefor designing software [i.e. Rum+91, SM92]. There is growing recognition, however, thatalthough OOD provides a number of benefits, including ease of decomposing and partitioningsystem elements, functionality, and responsibility, it is not, by itself, particularly well suited todescribing complex interactions between groups of objects. Likewise, although individual objectsare often quite reusable at an implementation level, it can be difficult to capture and reuse com-mon design idioms that involve multiple objects.Stylized Architecture, Design Patterns, and Objects September 16, 1996 3An increasingly popular approach to addressing these limitations of object-oriented design isto make use of design patterns. Although the principles underlying design patterns are not inher-ently tied to object-oriented design, much of the recent work in the area has focused on designpatterns for composing objects [GHJV95, Pree95]. Like architectural styles, design patterns pro-vide guidance for combining design elements in principled and proven ways.In this paper we illustrate the relationship between software architecture and object-orienteddesign, as well as the relationship between architectural styles and design patterns. We begin bydefining our terms and then proceed to compare and contrast the various approaches with exam-ples.2 What is Software


Loading Unlocking...
Login

Join to view Stylized Architecture, Design Patterns, and Objects and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Stylized Architecture, Design Patterns, and Objects and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?