design patterns for metamodel design

21
Design Patterns for Metamodel Design Domain-Specific Modeling Workshop Portland, Oregon October 23, 2011 Hyun Cho and Jeff Gray University of Alabama Department of Computer Science This work supported in part by NSF CAREER #1052616.

Upload: mayes

Post on 22-Feb-2016

35 views

Category:

Documents


1 download

DESCRIPTION

Design Patterns for Metamodel Design. Domain-Specific Modeling Workshop Portland, Oregon October 23 , 2011. Hyun Cho and Jeff Gray University of Alabama Department of Computer Science. This work supported in part by NSF CAREER #1052616. Domain-Specific Modeling Languages. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Design Patterns for  Metamodel Design

Design Patterns for Metamodel Design

Domain-Specific Modeling WorkshopPortland, OregonOctober 23, 2011

Hyun Cho and Jeff Gray

University of AlabamaDepartment of Computer Science

This work supported in part by NSF CAREER #1052616.

Page 2: Design Patterns for  Metamodel Design

2

Domain-Specific Modeling Languages

Customized to a specific domain Designed and implemented by domain-driven

needs and abstractions Components of a DSML

Page 3: Design Patterns for  Metamodel Design

3

Domain-Specific Modeling Languages (cont.)

Benefits of DSMLs Easier to learn and provide rich expressiveness Evidence that DSMLs increase productivity and improve

quality Several success stories, but not widespread

adoption What is the reason? Perceived reasons by some:

High development cost and complex development process

Lack of vendor support Lack of robustness Lack of standardization Requires both domain knowledge and language

development expertise

The quality of DSMLs largely depends on a designer’s domain experiences and language development expertise

Page 4: Design Patterns for  Metamodel Design

4

Research Hypothesis

Metamodels can be designed (or inferred) by reusing existing metamodel concepts that represent commonly recurring metamodel design issues across multiple domains.

Such reuse of metamodeling experience may improve the quality of metamodel design as well as achieve a significant increase in productivity in the development of DSMLs.

Page 5: Design Patterns for  Metamodel Design

5

Approach for Identifying Metamodel Design Patterns Collect various types of DSMLs Identify characteristics of DSML and

its modeling elements Analyze commonality of DSMLs Identify candidate metamodel design

problems Collect and review metamodel

samples Propose metamodel design patterns

Page 6: Design Patterns for  Metamodel Design

6

Collection of DSMLs Examined

Domain Diagrams Brief Description

Concurrent Discrete Event System Modeling Petri Net Modeling systems with concurrency and resource sharing

Data Modeling ERD Model the logical structure of database

Project ManagementGantt Chart Model project activities with relevant information (i.e.,

duration, cost, …)

PERT Chart Identify the critical path of the project by modeling the sequence of tasks

Electronic Circuit DesignSchematic Diagram Represent how electronic components are connected

with others

PCB Layout Show the placement of electronic components on printed circuit board

Molecular Modeling - Model the structures and reactions of molecules

SW Design

Flowchart Model process or algorithm

Component Diagram Represent static structure of components and their relations

UseCase Diagram Describe system functionalities or behaviors with UseCase and Actor

Class Diagram Describe the static structure of the system in terms of classes

Page 7: Design Patterns for  Metamodel Design

7

Identify Characteristics of DSMLs

Context Diagram

Entity (Classifier)

Relationship

Page 8: Design Patterns for  Metamodel Design

8

Identify characteristics of DSMLs

Electronic Circuit Design: Palm III ChargerSchematic Diagram

PCB Layout Diagram

Images are copied from http://www.harbaum.org/till/palm/cradle/index.html

Page 9: Design Patterns for  Metamodel Design

9

Identify characteristics of DSMLs (cont.)

UML 1.x

UML 2.x

Images are copied from http://www.agilemodeling.com/artifacts/componentDiagram.htm

Component Diagram

Page 10: Design Patterns for  Metamodel Design

10

Identify characteristics of DSMLs (cont.)

Image is copied from http://blogs.uis.edu/group8/files/2011/07/800px-Policy_Admin_Component_Diagram.png

Component Diagram

Page 11: Design Patterns for  Metamodel Design

11

Identify characteristics of DSMLs (cont.)

UseCase Diagram

Image is copied from http://www.agilemodeling.com/artifacts/useCaseDiagram.htm

Page 12: Design Patterns for  Metamodel Design

12

Features of DSMLs

DSML Syntax

Classifier RelationshipContainment Nesting Style

OrientationType

Boundness

Directed

UndirectedDotted

Mandatory

Optional

Alternative

Composition Rule· Containment and/or Nesting may be required when a classifier contains

another classifier and/or is organized hierarchically · Style and Boundedness are required to describe the semantics of Relationship

UnboundedBounded

Dashed

Line ends

Arrow Circle...None include

extend

generalizeaggregate

associate

...

Page 13: Design Patterns for  Metamodel Design

13

Questions for Identifying Candidate Patterns

What could be a primitive or base metamodel pattern, which could be common ground for metamodel design?

How to extend the base metamodel if a DSML has complicated language constructs? For example, a DSML can have typed relationships such

as include and extend in UseCase diagram?

How to represent boundedness in metamodel?

How to design the metamodel to describe containment and nesting?

Page 14: Design Patterns for  Metamodel Design

14

References for Metamodel Design

OMG UML 2 Superstructure, http://www.omg.org/spec/UML/2.3/Superstructure/PDF

OMG Business Process Model And Notation (BPMN) Ver. 2.0, http://www.omg.org/spec/BPMN/2.0

QImPrESS Service Architecture Meta-Model, http://www.q-impress.eu/wordpress/wp-content/uploads/2009/05/d21-service_architecture_meta-model.pdf

Ouardani, A., Esteban, P., Paludetto, M., & Pascal, J. C. 2006.

A Meta-modeling Approach for Sequence Diagrams to Petri Nets Transformation within the requirements validation process. In Proceedings of the European Simulation and Modeling Conference, pp. 345-349, Toulouse, France

Web Pages

Page 15: Design Patterns for  Metamodel Design

15

Base Metamodel Pattern

What could be a primitive or base metamodel pattern, which could be common ground for metamodel design?

How to represent boundedness in metamodel? Applicable for simple Box-and-Line style DSMLs

Most common pattern for early stage of DSML development

Useful for Prototyping DSML

Evaluation Points none

Classifier Relationshipsource

target

1,…,*

1,…,* *

*Classifier Relationshipsource

target

1,..,*

0,..,* *

*

(a) Modified BPMN p92 (b) Modified Bender et el. metamodel design

Page 16: Design Patterns for  Metamodel Design

16

Metamodel with (sub)types Patternso

urce

*

1

targ

et 1

Classifier

include extend

Relationship

Classifier

include extend

Relationship

targ

et 1

sour

ce 1

*

sour

ce

targ

et 11

* *

(a) Excerpted from UML Superstructure V 2.3 p620

(b) Simplified Ouardani et el. metamodel design

How to extend the base metamodel if a DSML has complicated language constructs?

Extension of base metamodel design pattern Add more expressiveness to DSMLs Semantics of each relationship is required to enforce

behaviors and properties

Evaluation Point Association point between Classifiers and Relationships

Page 17: Design Patterns for  Metamodel Design

17

Containment/Nesting Pattern

Classifierco

ntai

ner

cont

ent

0...1 1

Classifier

Containercontainer

content

0...1

0…*

(a) Modified BPMNp119

(c) Modified from Q-ImPrESS Project p49 & BPMN p100

(b) Excerpted from UML Infrastructure V 2.3 p87

CompositeClassifier

Classifier

11,…,*

Container

*1

How to design the metamodel to describe containment and nesting?

Some DSMLs may contain or nest modeling elements to control the abstraction level Can focus on core thoughts by eliminating unnecessary

details or give more descriptions by showing details

Evaluation Point Comprehensibility and Extendibility

Page 18: Design Patterns for  Metamodel Design

18

Application of Metamodel Design Patterns

Composition-based metamodel developmentso

urce

*

1

targ

et 1

Classifier

include extend

Relationship

targ

et 1

sour

ce 1

*

Classifier

Container0...1

0…*

sour

ce

*

1

targ

et 1

Classifier

include extend

Relationship

targ

et 1

sour

ce 1

*

Containercontainer

content

0...1

0…*

Typed Relationship Classifier Containment

Page 19: Design Patterns for  Metamodel Design

19

Application of Metamodel Design Patterns

Metamodel Inference Metamodel can be inferred from a set of model examples

through grammar inference To infer accurate metamodel, a large set of domain

examples, both positive and negative examples But, preparing a large set of domain examples are

practically difficult Metamodel design patterns can be used as a common

sample data Classifier Relationshipsource

target

1,…,*

1,…,* *

*

Page 20: Design Patterns for  Metamodel Design

20

Expected benefits of Metamodel Design Patterns Avoid duplication of metamodel design for

recurring design problems

Keep high quality metamodel fragments

Guide and Recognize key patterns and best-practices of metamodel design

Reduce time-to-market for developing new DSMLs

Page 21: Design Patterns for  Metamodel Design

This work supported in part by NSF CAREER #1052616.

21

Thank you for your attention