Automating the Development of Pattern-Oriented Designs Copyright, 1996 © Dale Carnegie & Associates, Inc. Sherif Yacoub, Hengyi Xue, and Hany Ammar {yacoub,

Slides:



Advertisements
Similar presentations
Integration of MBSE and Virtual Engineering for Detailed Design
Advertisements

POAD Book: Chapter 10 POAD: The Design Refinement Phase Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
 Recent researches show that predicative programming can be used to specify OO concepts including classes, objects, interfaces, methods, single and multiple.
CSE3308/CSC Software Engineering: Analysis and DesignLecture 5B.1 Software Engineering: Analysis and Design - CSE3308 Patterns CSE3308/CSC3080/DMS/2000/12.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
IS6112 Application Modelling and Design Introduction.
Introduction To System Analysis and Design
Copyright © Active Frameworks Inc. - All Rights Reserved.More On Behavioral Patterns - Page L9-1 PS95&96-MEF-L16-1 Dr. M.E. Fayad Creationa l.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Software Engineering I Object-Oriented Design Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science.
Component-based Authoring of Complex, Petri net-based Digital Library Infrastructure Yung Ah Park, Unmil P. Karadkar, and Richard Furuta Department of.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Introduction To System Analysis and design
POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Design Patterns.
Prototyping. Introduction *Overview *What is the process *Changing roles of end users *What tools facilitate prototyping *Impact on traditional methodology.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
MVC and MVP. References enter.html enter.html
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Second RMSIG Workshop Methodology and Process Wolfram Höpken.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
An Introduction to Software Architecture
POAD Distributed System Case Study: A Medical Informatics System Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Introduction to the Unified Modeling Language “The act of drawing a diagram does not constitute analysis or design. … Still, having a well-defined and.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
Introduction To System Analysis and Design
POAD Book: Chapter 9 POAD: The Design Phase Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998.
Introduction to Pattern Oriented Analysis and Design (POAD) Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
POAD Book: Chapter 8 POAD: Analysis Phase Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Systems Analysis and Design in a Changing World, 3rd Edition
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
Capturing and Reusing Functional and Non-functional Requirements Knowledge: A Goal-Object Pattern Approach Lawrence Chung and Sam Supakkul The University.
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style ADVANCED PROGRAMMING PRACTICES Model View.
Model Design using Hierarchical Web-Based Libraries F. Bernardi Pr. J.F. Santucci {bernardi, University of Corsica SPE Laboratory.
West Virginia University Sherif Yacoub, Hany H. Ammar, and Ali Mili A UML Model for Analyzing Software Quality Sherif Yacoub, Hany H. Ammar, and Ali Mili.
Chapter 8 Object Design Reuse and Patterns. More Patterns Abstract Factory: Provide manufacturer independence Builder: Hide a complex creation process.
Lecture 21: Component-Based Software Engineering
POAD Book: Chapter 7 POAD: The Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
A UML-Based Pattern Specification Technique Presented by Chin-Yi Tsai IEEE TRANSACTION ON SOFTWARE ENGINEERING, VOL. 30, NO. 3, MARCH 2004 Robert B. France,
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
Model Based Systems Engineering Visualization Steven Corns Missouri University of Science & Technology.
Chapter 0: Introduction
GRASP – Designing Objects with Responsibilities
Software Design Refinement Using Design Patterns
UML Diagrams: Class Diagrams The Static Analysis Model
Modern Systems Analysis and Design Third Edition
Object-Oriented Software Engineering Using UML, Patterns, and Java,
POAD Book: Chapter 8 POAD: Analysis Phase
Introduction to Design Patterns
Computer Aided Software Engineering (CASE)
Modern Systems Analysis and Design Third Edition
Observer Design Pattern
Instructor: Dr. Hany H. Ammar
Design Patterns - A few examples
Web Programming Language
Modern Systems Analysis and Design Third Edition
Observer Pattern 1.
Modern Systems Analysis and Design Third Edition
An Introduction to Software Architecture
Introduction to Pattern Oriented Analysis and Design (POAD)
Modern Systems Analysis and Design Third Edition
Software Architecture & Design
Presentation transcript:

Automating the Development of Pattern-Oriented Designs Copyright, 1996 © Dale Carnegie & Associates, Inc. Sherif Yacoub, Hengyi Xue, and Hany Ammar {yacoub, xue, 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

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.

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.

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.

West Virginia University – –Behavioral Composition Object Oriented Role Analysis and Software Synthesis (OORASS), by Trygve Reenskaug 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

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 Pattern Composition Approaches

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.

West Virginia University The Development Environment Pattern Browser (Java Applet) POAD tool ( Java Application ) Server Application Database Network POAD User Client Side Server Side

West Virginia University Documentation Window Browser Window Editing Window A snapshot from the POAD prototype tool POAD Tool

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.

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 +

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

West Virginia University Design Models Pattern-Level View

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

West Virginia University Interface-Level View Design Models (cont’d)

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

West Virginia University Detailed-Level View Design Models (cont’d)

West Virginia University Initial Class Diagrams Design Models (cont’d)

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.

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

Questions...