Download presentation
Presentation is loading. Please wait.
Published byElwin Welch Modified over 9 years ago
1
Automating the Development of Pattern-Oriented Designs Copyright, 1996 © Dale Carnegie & Associates, Inc. Sherif Yacoub, Hengyi Xue, and Hany Ammar {yacoub, xue, ammar}@csee.wvu.edu Department of Computer Science and Electrical Engineering West Virginia University Application-Specific Systems and Software Engineering Technology, ASSET 2000, Richardson, Texas, March 24-25, 2000 West Virginia University
2
Introduction To improve software production, we have to stop developing applications from scratch and make use of existing reusable components. Design decisions are made at early stages in the development lifecycle. These decisions have a great impact on the quality of software. Design patterns are one approach to reuse design solutions. We need systematic design methodologies to glue together these design components. A methodology should be supported by: processes, design models, and tools.
3
West Virginia University Research Objectives Promote pattern-based development Improve the practice of reusing design patterns in software development. Manage the design complexity of systems as they increase in scale. Develop a systematic approach to glue patterns Support the integration of patterns at the high design level. Automate pattern composition. Develop design frameworks Facilitate the development of designs (frameworks) for application specific software applications.
4
West Virginia University Developing with Patterns 1) Adhoc Methods 2) Systematic a) Pattern Languages Provide a set of patterns that solve problems in a specific domain. Define relationships between patterns. Define a process to apply the language. b) Development Processes Uses a pattern composition technique. Defines the analysis and design steps. Uses tools to automate the development steps.
5
West Virginia University – –Behavioral Composition Object Oriented Role Analysis and Software Synthesis (OORASS), by Trygve Reenskaug 1992-1996 Composing Design Patterns using Roles, by Dirk Riehle OOPSLA 1997 Superimposition, by Jan Bosch TOOLS 1998 Role/Type/Class modeling, by A. Lauder ECOOP 1998 Contracts, by Holland Helm OOPSLA 1990, Book by Jezequel 2000 Pattern Composition Approaches
6
West Virginia University – –Structural Composition Software composition using design components, by Keller and Schauer ICSE 1998 Component-based frameworks using patterns, by Larsen CACM 1999 Pattern-Oriented Analysis and Design, by Yacoub and Ammar JOOP 2000, ASSET98, ASSET99, Ph.D. Dissertation WVU 1999. Pattern Composition Approaches
7
West Virginia University Pattern-Oriented Analysis and Design (POAD) POAD is a structure composition approach to glue constructional design patterns. A constructional design pattern: is an object oriented design pattern, has well-defined interfaces, possesses a class diagram as its solution structure. POAD defines: analysis and design steps, models, relationship to UML metamodel, and automated development. Patterns replace classes as building blocks. Hide pattern details while preserving consistency with lower design levels. This presentation is about tool support for the approach.
8
West Virginia University The Development Environment Pattern Browser (Java Applet) POAD tool ( Java Application ) Server Application Database Network POAD User Client Side Server Side
9
West Virginia University Documentation Window Browser Window Editing Window A snapshot from the POAD prototype tool POAD Tool
10
West Virginia University POAD Tool The tool supports three design models for composing patterns. The three model views are: – –Pattern-Level view. This model expresses the design in terms of interfacing patterns and identifies pattern dependencies. – –Pattern Interfaces view. This model is a refinement of the Pattern-Level view using pattern interfaces and explicitly defining relationships between interfaces. – –Detailed Pattern-Level view. At this level, the internals of the pattern and the connectivity between interfaces and internals are revealed.
11
West Virginia University Controlled Output Example : A feedback control framework Reference Input Measurement Feedback Data Error (Actuating) Signal Feed forward Elements Feedback Elements Plant. or Process +
12
West Virginia University Schematic : Type and Instance Name Relationships: Pattern/Pattern Dependencies Design Decisions : Selection of Patterns, Define Relationships Design Models Pattern-Level View FeedforwardStrategy:Strategy Blackboard: Blackboard FeedbackObserver: Observer FeedbackStrategy: Strategy ErrorObserver: Observer Store Measurement Calculate Error Apply forward control strategy Apply feedback control strategy Store/Retrieve error data Store/Retrieve feedback data
13
West Virginia University Design Models Pattern-Level View
14
West Virginia University Schematic: Pattern interfaces, interface classes and operations Relationships: Class/Class, Class/Operation, Operation/Operation Design Decisions: Declare Interfaces Interface-Level View Design Models (cont’d) FeedforwardStrategy: Strategy Context ErrorObserver: Observer Observer::Update Subject::Notify Blackboard: Blackboard Blackboard::get_dat a Blackboard::put_ dat a FeedbackObserver: Observer Subject::Notify Observer::Update Apply feedback control strategy Store Measurement Retrieve Measurement data Store feedback data Retrieve feedback data Store error data Apply forward control strategy FeedbackStrategy: Strategy Context
15
West Virginia University Interface-Level View Design Models (cont’d)
16
West Virginia University Detailed-Level View Design Models (cont’d) FeedforwardStrategy: Strategy ConcreteStrategyA AlgorithmInterface() ConcreteStrategyB AlgorithmInterface() Context ContextInterface Strategy AlgorithmInterface() Context ErrorObserver: Observer * Subject Attach() Detach () Notify () ConcreteSubject _ SubjectState GetState () Observer Update () ConcreteObserver _ ObserverState Update () Update Notif y FeedbackStrategy: Strategy ConcreteStrategyA AlgorithmInterface() ConcreteStrategyB AlgorithmInterface() Context ContextInterface Strategy AlgorithmInterface() Context FeedbackObserver: Observer * Subject Attach() Detach () Notify () ConcreteSubject _ SubjectState GetState () Observer Update () ConcreteObserver _ ObserverState Update() Update Notif y
17
West Virginia University Detailed-Level View Design Models (cont’d)
18
West Virginia University Initial Class Diagrams Design Models (cont’d)
19
West Virginia University Conclusions This research is a contribution to the state of the art in: Leveraging reuse to the design level. Formalizing the visual presentation for patterns and their interfaces. Developing a structural composition approach to glue design patterns. Designing applications and frameworks using design patterns. Automating pattern-oriented development.
20
West Virginia University Benefits & Outstanding Issues Benefits: The POAD tool: Facilitates the process of gluing patterns by stringing and overloading pattern participants. Supports hierarchical design. Maintains a pattern view of the design. Outstanding Issues: How to select a pattern based on requirement analysis? Develop application specific frameworks. Complete the development environment. Provides forward/backward traceability. Integrate with UML supported tools using standard exchange formats such as XMI
21
Questions...
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.