advrts slides 12 design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts...
TRANSCRIPT
![Page 1: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/1.jpg)
POAD Book:Chapter 4: Design Patterns as Components
Chapter 5: Visual Design Models
Instructor: Dr. Hany H. AmmarDept. of Computer Science and Electrical Engineering, WVU
![Page 2: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/2.jpg)
Outline
Chapter 4: Design Patterns as Components– Constructional Design Patterns– Software Components– Design Component Properties– Patterns as Components– Pattern Interfaces
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design models
Pattern Level Pattern Level with Interfaces Detailed Pattern Level with interfaces
– Characteristics of POAD
![Page 3: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/3.jpg)
Structural vs Behavioral Pattern Composition
Pattern Oriented Analysis and Design, POAD. Provides a structural approach for pattern composition (Not a behavioral approach such as role based or Aspect-Oriented methods)– Example of an aspect-oriented
is the trace pattern applied to a class to traceFunctions entries and exits
<<Subject>>TraceApplication
Trace
TraceEntry(String)
TraceExit(String)
Classi
fun()Application_fun()
TraceApplication sequence diagram– fun()
:Classi:Trace
fun() traceEntry(fun.name)
Application_fun()traceExit(fun.name)
![Page 4: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/4.jpg)
Role-Based Behavioral Pattern composition (Not to be discussed in details) A role model is a collaboration of objects that the analyst
chooses to regard as a unit, separated from the rest of the application during some period of consideration. A Synthesis Role Model is obtained from different role models
AuthorizerTraveler traubo
BookKeeper PayMasterpm
Booking ClerkTraveler Book Keepertrsecpm
bkta
Travel Agent PayMastercust
ven
X
XX
Booking Clerk Book Keepertr
sec
pmbk
ta
Travel Agent PayMastercust
ven
X
XX
AuthorizerTraveler traubo
Airline Booking
Travel Expense
Synthesis Role Model
![Page 5: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/5.jpg)
Outline
Chapter 4: Design Patterns as Components– Constructional Design Patterns– Software Components– Design Component Properties– Patterns as Components– Pattern Interfaces
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design models
Pattern Level Pattern Level with Interfaces Detailed Pattern Level with interfaces
– Characteristics of POAD
![Page 6: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/6.jpg)
Constructional Design Patterns(structural pattern composition) In POAD, the category of Patterns used is
called constructional design patterns. The term Constructional indicates that the
patterns:– Are design components used in constructing
Application Design.– Patterns become the core building blocks of the
design
![Page 7: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/7.jpg)
What Constructional Design patterns can Offer Encapsulation is a core concept of Object
Oriented Analysis and Design, OOAD. It provides a means to access an interface Constructional design patterns encapsulate
information– They encapsulate solutions to a common design
problems They are analogous to classes in OOD
– Apps are built by gluing these patterns together
![Page 8: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/8.jpg)
Outline
Chapter 4: Design Patterns as Components– Constructional Design Patterns– Software Components– Design Component Properties– Patterns as Components– Pattern Interfaces
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design models
Pattern Level Pattern Level with Interfaces Detailed Pattern Level with interfaces
– Characteristics of POAD
![Page 9: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/9.jpg)
Software Components
Component–Based software development is a corner stone in software engineering (development processes and tools support component-based development)
Software components are:– Self contained– Fairly independent– Require little or no customization (true only at the code
level)– Provide well-defined services for the whole application
![Page 10: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/10.jpg)
Software Components: JavaBeans
JavaBeans are reusable software components for Java that can be manipulated visually in a builder tool. Practically, they are classes written in the Java programming language conforming to a particular convention.
They are used to encapsulate many objects into a single object (the bean), so that they can be passed around as a single bean object instead of as multiple individual objects.
![Page 11: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/11.jpg)
Software Components: JavaBeans
AWT, Swing, and SWT, the major Java GUItoolkits, use JavaBeans conventions for their components.
This allows GUI editors like the Eclipse Visual Editor or the NetBeans GUI Editor to maintain a hierarchy of components and to provide access to their properties via uniformly-named accessors and mutators
![Page 12: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/12.jpg)
Software Components: Enterprise JavaBeans Enterprise JavaBeans (EJB) is a managed, server-side
component architecture for modular construction of enterprise applications.
EJB encapsulates the business logicof an application, with
Concurrency control,Java Naming and directory services (JNDI), Security ( Java Cryptography Extension (JCE) and
JAAS ), and Exposing business methods as Web ServicesEvents using Java Message Service, Remote procedure calls using
RMI-IIOP.
![Page 13: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/13.jpg)
The Bigger Picture: Java 2 Enterprise Edition (J2EE) : J2EE Architecture
![Page 14: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/14.jpg)
Software Components: Container Service Application Programming Interfaces (APIs)
Example: create audio component, publish its name in a naming service (JNDI) available to your application. This provides a simple method to access the service APIs
![Page 15: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/15.jpg)
Software Components: Component Object Model (COM) Technologies Microsoft COM technology in the Microsoft
Windows-family of Operating Systems enables software components to communicate.
COM is used by developers to create re-usable software components, link components together to build applications, and take advantage of Windows services.
The family of COM technologies includes COM+, Distributed COM (DCOM) and ActiveX Controls.
Microsoft recommends that developers use the .NET Framework rather than COM for new development.
![Page 16: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/16.jpg)
Software Components: .NET
The Microsoft .NET Framework is a managed code programming model for building applications on Windows clients, servers, and mobile or embedded devices.
Developers use .NET to build applications of many types: Web applications, server applications, smart client applications, console applications, or database applications
Windows Communication Foundation is a set of .NET technologies for building and running connected systems. It is a new breed of communications infrastructure built around the Web services architecture.
![Page 17: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/17.jpg)
Outline
Chapter 4: Design Patterns as Components– Constructional Design Patterns– Software Components– Design Component Properties– Patterns as Components– Pattern Interfaces
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design models
Pattern Level Pattern Level with Interfaces Detailed Pattern Level with interfaces
– Characteristics of POAD
![Page 18: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/18.jpg)
Design Components
Characteristics of design components– Defines a software design fragment– Represented using design notation and
delivered as a design model– It is deployable at design time– White box component (well defined design
structure and behavior)– Well defined Interface, to glue and integrate
with other design components.
![Page 19: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/19.jpg)
Design Component Properties
Composable– The Internals are defined in terms of the internal
structure and behavior models.– The interfaces by which it is glued together with other
design components Customizable: Can be customized to allow
selection between tradeoffs at lower design levels Persistent: Internals are preserved after
instantiation and are traceable
![Page 20: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/20.jpg)
Outline
Chapter 4: Design Patterns as Components– Constructional Design Patterns– Software Components– Design Component Properties– Patterns as Components– Pattern Interfaces
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design models
Pattern Level Pattern Level with Interfaces Detailed Pattern Level with interfaces
– Characteristics of POAD
![Page 21: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/21.jpg)
Specifying Patterns as Components
A pattern can be described and specified in a variety of forms
We classify techniques to describe a pattern into three categories
1. Recipe – an informal description of the pattern that helps application designers to understand the pattern
– Essential elements are– Context in which problem is incurred– The problem solved by the pattern– Forces influencing the selection of the pattern– Solution to be used for problem at hand– Consequences of applying the pattern
– When it comes to composition with other patterns, the recipe is not sufficient to guide the integration process
![Page 22: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/22.jpg)
Patterns as Components2. Formal Specification (use notation based on
scripting design languages or design scripts) Helps designers compare and contrast several
solution issues Improves understandability of patterns Patterns encapsulate mental reasoning decisions
beside their technical solutions that are difficult to capture using formal techniques.
3. Interface Specification– It is necessary to see how the patterns (thr’ interfaces)
glue together and to other design artifacts
![Page 23: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/23.jpg)
Component Interfaces
Examples of Interface Specifications– Module Interconnection Languages (MILSs)– Interface Definition Language (IDL) (found in CORBA, now an
ISO standard, see http://www.omg.org/gettingstarted/omg_idl.htm)
– Web Services Description Language (WSDL) (found in SOA, see http://www.w3.org/TR/2007/REC-wsdl20-
20070626/#component_model)
– Interfaces for OO Components(see http://portal.acm.org/citation.cfm?id=566171.566212)
One approach uses the idea of contracts to define interfaces of objects
![Page 24: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/24.jpg)
Component Interfaces: APIshttp://www.opengroup.org/architecture/togaf8-doc/arch/chap19.html
Application/Platform Interfaces (APIs) support portability
![Page 25: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/25.jpg)
Component Interfaces
Interface Properties– Type
Referential – (Class reference or Pattern reference) – A a client or a requestor component has a reference to the
provider component with no details about the usage relationship
– Useful for building the design structural views
Functional – (Services and Actions) – Specify the services provided by the design component
and the services required from other components.– Useful for building the design behavioral views
![Page 26: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/26.jpg)
Component Interfaces Interface Properties (cont.)
– Role: distinguishes the role that is played by a design component Emphasizes the C/S relationship and explicitly defines provided
and required interfaces.– Nature
Abstract (most cases, e.g. abs classes, or Java Interfaces)vs. concrete (provides default implementation for the
interface operations. )– Dynamism
Static (e.g. CORBA IDLs or Java interfaces)vs. Dynamic Interfaces (multiple objects that wait for
multiple events))– Dynamic interfaces are not specified for users at design-time
instead they are interrogated (inquired) by the calling component at run-time (for example, CORBA Dynamic Method Invocation).
![Page 27: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/27.jpg)
Component Interfaces
– DescriptionDescription characterizes the interface Signature
– Names and parametersBehavioral
– How the component reacts when it is called
– MultiplicityA component can have multiple interfaces, all of
which are valid interfaces to the same componentAccording to the application context using the
component one of those interfaces will be used
![Page 28: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/28.jpg)
Outline
Chapter 4: Design Patterns as Components– Constructional Design Patterns– Software Components– Design Component Properties– Patterns as Components– Pattern Interfaces
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design models
Pattern Level Pattern Level with Interfaces Detailed Pattern Level with interfaces
– Characteristics of POAD
![Page 29: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/29.jpg)
Pattern Interfaces
Pattern interfaces must conform with the OO paradigm
Interfaces are important for 3 reasons– Hide details– Distinguish parts crucial for integration– Provide flexibility
Pattern Interfaces are application interfaces
![Page 30: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/30.jpg)
Constructional Design Patterns (CDPs) Definition: A CDP has additional
constraints that allow for composition and integration.
CDPs are OO design patterns Have interfaces for composition and
integration Their structural solution is based on well-
defined class diagrams
![Page 31: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/31.jpg)
A pattern template with emphasis on interfaces
Required Interface
Provided Interface
Classes
Attributes
Methods
InformalDescription
(Pattern Template)
Interfaces
Internals(Class Diag.)
A Pattern
![Page 32: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/32.jpg)
Examples of CDPs
All object behavioral patterns Iterator (257)Mediator (273)Memento (283)Flyweight (195)Observer (293)State (305)Strategy (315)Visitor (331)Chain of Responsibility (223)Command (233)
![Page 33: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/33.jpg)
Outline
Chapter 4: Design Patterns as Components– Constructional Design Patterns– Software Components– Design Component Properties– Patterns as Components– Pattern Interfaces
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design models
Pattern Level Pattern Level with Interfaces Detailed Pattern Level with interfaces
– Characteristics of POAD
![Page 34: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/34.jpg)
Chapter 5: Visual Design Models
![Page 35: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/35.jpg)
Outline
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design modelsPattern LevelPattern Level with InterfacesDetailed Pattern Level with interfaces
– Characteristics of POAD
![Page 36: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/36.jpg)
Pattern Composition Models
Pattern Visualization– Models that are used to capture the internal
design– UML based
Pattern Composition Visualization – Models used to capture integration and
composition of a set of patterns– Some use UML others use other tools
POAD is based on structural composition
![Page 37: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/37.jpg)
Pattern Composition Models POAD requires models to have varying
granularity– Course grained
Used for integrating patterns– Fine grain => Class diagrams
Capture the internals of a Pattern
POAD uses Hierarchical OOD– Objects may contain other Objects in a
Hierarchical fashion– Connectivity between interface objects and
internal objects
![Page 38: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/38.jpg)
Guidelines in defining POAD Models1. Model elements must serve a purpose
• Close to mental building blocks2. Models tend to be Hierarchical
• Capture the design at various levels of abstraction
3. Exchangeable• Should integrate with and use UML.
4. Models serve other models• Models used in one phase should be used in
others
![Page 39: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/39.jpg)
Outline
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design modelsPattern LevelPattern Level with InterfacesDetailed Pattern Level with interfaces
– Characteristics of POAD
![Page 40: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/40.jpg)
POAD’s design models
1. Pattern Level – pattern interfaces and dependencies
2. Pattern Level with interfaces – Explicitly defines relationships between interfaces
3. Detailed Pattern level – connectivity between internals and interfaces is defined.
![Page 41: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/41.jpg)
Pattern Level
Schematic- represents the patterns and the relationships between them– Pattern instance
Type – Observer, Factory, Strategy etc. Name –Application specific as given by designer
– Used to differentiate when there exist 2 instances of same type.
PatternInstanceName2: Type2
PatternInstanceName1:Type1
PatternInstanceName3: Type2
A schematic diagram for the Pattern-Level model
![Page 42: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/42.jpg)
Pattern Level
Relationships –only one relationship exists– Dependency –USES, further defined later and become associations
between interface classes
Design Decisions – Selecting the appropriate Patterns– Defining Dependencies –How one pattern uses another
UML Syntax– Pattern level view resembles UML Package diagrams– Packages represent constructional Patterns– Name of Package is Instance Name
Relationships are defined as dependency
![Page 43: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/43.jpg)
Pattern-Level model using UML Syntax
PatternInstanceName3<<Type2>>
PatternInstanceName2<<Type2>>
PatternInstanceName1<<Type1>>
![Page 44: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/44.jpg)
Outline
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design modelsPattern LevelPattern Level with InterfacesDetailed Pattern Level with interfaces
– Characteristics of POAD
![Page 45: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/45.jpg)
Pattern Level With Interfaces
Schematic –shows interfaces and relationships between them, 2 types of interfaces– Interface Classes –One of the internal classes– Interface Operations –An Operation in one of
the interface classes. One internal class can implement several operations.
![Page 46: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/46.jpg)
A schematic diagram for the Pattern-Level with Interfaces model
PatternInstance2: Type2
ClassY::Op4
Class1
Class2
PatternInstance1: Type1
ClassX::Op2
ClassX::Op1
Class1
![Page 47: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/47.jpg)
Pattern Level With Interfaces
Relationships – uses between pattern interfaces further defined– Class/Class –Aggregation, association or
dependency– Class/Operation –Interface class can Invoke an
operation in another pattern.– Operation/Operation –Models interactions,
show the designer’s perceptions of lower level design details
![Page 48: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/48.jpg)
Pattern Level With Interfaces
Design Decisions –Selecting which interface to use for a given application.
UML syntax –UML package and interface notation is used.– For interface classes and operations the UML syntax
for interface is used (circle associated with a package).– A circle with only a class name underneath is a class
interface– An operation interface is denoted by listing the
operation name underneath the class name
![Page 49: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/49.jpg)
The Pattern-Level with Interfaces model using UML
PatternInstance1<<Type1>> PatternInstance2
<<Type2>>
Class1Class1
Class2ClassX
Op1()
Class X
Op2()
ClassY
Op4()
![Page 50: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/50.jpg)
Outline
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design modelsPattern LevelPattern Level with InterfacesDetailed Pattern Level with interfaces
– Characteristics of POAD
![Page 51: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/51.jpg)
Detailed Pattern Level Model
Purpose –To explore the internal details of each pattern and ID the internal classes that implement the interface.
Schematic –Represents Patterns and their internal structure.– Pattern Instances and type– Interfaces– Internal class diagram– Relationship between interfaces and internals is
established
![Page 52: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/52.jpg)
Schematic for The Detailed Pattern-Level view
PatternInstance1: Type1
ClassX::Op2
ClassX::Op1
Class1
ClassX
Op1Op2
Class1
PatternInstance2: Type2
Class1
Class2
Class1
ClassY::Op4
Class2
ClassZ
Op5
ClassY
Op4
![Page 53: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/53.jpg)
Detailed Pattern Level Model
Relationships –Connectivity is used to show which elements of internal are visible as interfaces.
Design Decisions –None, This is a refinement stage
UML syntax –The internal class diagram of each pattern is shown. – Interfaces from previous model are
incorporated into this class diagram for each pattern
![Page 54: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/54.jpg)
Detailed Pattern Level Model
PatternInstance1<<Type1>> PatternInstance2
<<Type2>>
Class1
Class2ClassX
Op1()
Class X
Op2()
ClassY
Op4()
Class1
Class X
Op1()Op2()
Class1Class1
ClassZ
Class2
ClassY
Op4()
![Page 55: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/55.jpg)
Outline
Chapter 5: Visual Design Models– Pattern Composition Models in general– POAD design modelsPattern LevelPattern Level with InterfacesDetailed Pattern Level with interfaces
– Characteristics of POAD
![Page 56: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/56.jpg)
Characteristics of POAD
Hierarchy –The three models demonstrate 3 levels of abstraction. This allows the internals to be suppressed at one abstraction and then expressed at another.
Traceability –Must be able to trace from high abstraction to lower.– Pattern dependencies in pattern-level are
traceable to the relationships in pattern-level with interfaces view.
![Page 57: advrts slides 12 Design patterns as componentscommunity.wvu.edu/~hhammar/rts/adv rts/adv rts slides/07/advrts...POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual](https://reader031.vdocuments.us/reader031/viewer/2022021820/5ada59467f8b9afc0f8c5ef3/html5/thumbnails/57.jpg)
Characteristics of POAD
Traceability enables designer to navigate up or down levels of abstraction
Composability –enables model elements to be plugged together. Artifacts in each view are described as pluggable