Architectural Styles, Design Patterns, and Objects Joe Paulowskey
Overview Architectural Designs Object-Oriented Paradigm Design Patterns Architectural Styles
Architectural Designs Level of Abstraction Architectural Description Simple “Conscience” for a system as it evolves Limits of the Software
Architectural Descriptions System Structure High-Level Rich Abstractions for interaction Interactions between components Rich Components Global Properties
Architectural Styles Characterizes a family of systems Vocabulary of Design Elements Design Rules Semantic Interpretation Analyses
Architectural Styles Benefits Promotes design reuse Code reuse Cognitive Distance Use of Standardized styles supports interoperability Specialization
Object-Oriented Design and Software Architecture Encapsulate data and behavior
Architectural Styles and Object Oriented Design in Architectural Design Architectural Styles Describe a broad range of different design families Object Oriented Design Components Architectural Design Rich Collection of Abstractions
Architectural Styles and Design Patterns Limitations of traditional Object Oriented Interaction Specifying and Packaging Design Patterns Repeated in Software Designs
Specifying and Reusing Design Patterns 1. Thoroughly understand design domain 2. Encapsulation 3. Collection of well-known and proven design idioms
Architectural Styles and Design Patterns Related View as kinds of patterns Design language and vocabulary Set of Idiomatic uses Styles Building blocks Higher Abstraction Patterns More Specific
Design Patterns & Architectural Patterns Apply to Architectural design Façade, Observer, and Strategy Don’t Apply Factory and Flyweight
Questions?