Title: Design Patterns for Integrating Product and Process Models
1Design Patterns for Integrating Product and
Process Models
- The C.R.I.S.T.A.L. Project
- (Cooperative Repositories Information System
for Tracking Assembly Lifecycle)CERN,
LAPP(Annecy), KFKI(Budapest), UWE(Bristol)
CHEP2000 Padova, February 2000
2Motivation for Design Patterns
- There are many concepts that support software
construction. However most of these programming
paradigms and methodologies focus on creating
software from scratch. - Traditional software methods do not tell you how
to solve individual software construction
problems. - Solving such problems is left to intuition and
experience.
3An Observation
- When experts work on a particular problem it is
unusual for them to tackle it by inventing a new
solution which is completely distinct from
existing ones. - Where possible they reuse solutions that have
worked in the past.
4What is a Design Pattern ?
- A Design Pattern
- is a solution schema expressed in terms of
objects classes for recurring design problems. - Describes (UML) the elements that make up the
design, their relationships, responsibilities and
collaborations. - Describes heuristics for use applicability.
(Not modeled in UML)
Problem
Solution
5What is a Design Pattern ? cont..
- A Design Pattern
- Documents proven design experience
- Specifies concepts above the level of individual
classes and objects - Provides a common vocabulary and concept
understanding. Patterns have well known names.
Problem
Solution
6A Design Pattern
- Is NOT
- About designs such as linked lists, trees, hash
tables that can be encoded as classes and reused. - and does not imply a mapping to code generation,
code execution, code portability, code
customization, code reusability. (Framework
customized design patterns implemented in an OO
language)
Problem
Solution
7The Problem Domain
- The design of a production assembly control
system(CRISTAL) for the construction of the CMS
ECAL detector using workflow(WfM) product data
management (PDM) techniques.
8Design Complexity
- System complexity (Millions of parts, Terabytes
of data) - Long running and distributed activities
(1999-2006 CERN, Italy, UK, Russia, China) - Detector evolution versioning.
- Interoperability with other (legacy) systems and
future systems yet to be built. - Generic application to assembling other types of
systems.
9 Managing Complexity
- To manage the complexity changing requirements
we have built an object oriented architecture
using OO Analysis OO Design techniques which
leverage the power of - metamodels and metamodeling
- multi-layer architectures
- design patterns
- Use the UML to describe the software
architecture.
10Metamodeling
Set of constructs for OO information modelling
meta types meta relations meta schemas
Defines a language for specifying metamodels
Defines a language for specifying a particular
information domain.
types type relations type schemas
Domain X
Domain Y
11OMG Metamodel Architecture
Layers
Content of a Layer
Architectural Components of a Layer
MOF Meta-Meta-model
Meta-Meta-Model Layer
defines
manages
Workflow Meta-Model
Meta-Model Layer
Meta-Object Facility
defines
manages
Workflow Schemes or Models
Workflow Facility
Model Layer
defines
manages
Workflow Execution
Workflow Instances
Instance Layer
Components
12CRISTAL Metamodel
- At the metamodel layer the CRISTAL metamodel is
decomposed into several logical packages
13CRISTAL Model
14Patterns for Managing Metamodels
Patterns to Manage Instances
Patterns to Manage Descriptions
15Patterns for Managing Metamodels cont
- Item Description pattern
- Shows the connection between consecutive layers
- Homomorphism pattern
- Due to relationships between ItemDescriptions
- Version pattern
- How to manage the versioning of ItemDescriptions
- Directed Acyclic Graph (DAG) pattern
- When ItemDescriptions are reused for different
compositions
16Patterns for Managing Metamodels cont
- Enriched Directed Acyclic Graph pattern
- The CompositItemDescription holds semantic
(layout) for its composition - Publish/Subscribe pattern
- handles dependencies between ItemDescriptions and
between different layers - Enriched Tree pattern
- Tree of Items is generated from an Enriched DAG
- Enriched Homomorphism pattern
- How the PDM/WfM integration can take place
17Concluding Thoughts 1
- At times modeling with UML can be tedious
- Older software engineers at first skeptical of
design patterns - The use of design patterns has
- provided a higher level medium for design team to
communicate, produce and reuse solutions - identified common PDM and WfM patterns which have
aided integration of product and process models - helped manage the complexity
18Concluding Thoughts 2
- The metamodel Architecture Pattern
- Is a proven infrastructure for defining semantics
required by complex models and has several
advantages - Allows building of extensible systems
- Provides flexibility reusability of definitions
- Helps manage complexity
- Allows co-existence of multiple versions of data
- Avoids schema evolution