180 likes | 316 Views
Design Patterns for Integrating Product and Process Models. The C.R.I.S.T.A.L. Project ( C ooperative R epositories & I nformation S ystem for T racking A ssembly L ifecycle) CERN, LAPP(Annecy), KFKI(Budapest), UWE(Bristol). CHEP’2000 Padova, February 2000.
E N D
Design 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) CHEP’2000 Padova, February 2000
Motivation 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. Nigel Baker CHEP’2000 Presentation 2
An 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. Nigel Baker CHEP’2000 Presentation 3
A B C A B C What 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 Nigel Baker CHEP’2000 Presentation 4
A B C A B C What 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 Nigel Baker CHEP’2000 Presentation 5
A B C A B C A 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 Nigel Baker CHEP’2000 Presentation 6
The 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. Nigel Baker CHEP’2000 Presentation 7
Design 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. Nigel Baker CHEP’2000 Presentation 8
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. Nigel Baker CHEP’2000 Presentation 9
Metamodeling 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 Nigel Baker CHEP’2000 Presentation 10
OMG Metamodel Architecture Layers Content of a Layer Architectural Components of a Layer Meta-Meta-Model Layer MOF Meta-Meta-model defines manages Meta-Model Layer Workflow Meta-Model Meta-Object Facility defines manages Model Layer Workflow Schemes or Models Workflow Facility defines manages Workflow Execution Instance Layer Workflow Instances Components Nigel Baker CHEP’2000 Presentation 11
CRISTAL Metamodel • At the metamodel layer the CRISTAL metamodel is decomposed into several logical packages Nigel Baker CHEP’2000 Presentation 12
CRISTAL Model Nigel Baker CHEP’2000 Presentation 13
Patterns for Managing Metamodels Patterns to Manage Instances Patterns to Manage Descriptions Nigel Baker CHEP’2000 Presentation 14
Patterns 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 Nigel Baker CHEP’2000 Presentation 15
Patterns 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 Nigel Baker CHEP’2000 Presentation 16
Concluding 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 Nigel Baker CHEP’2000 Presentation 17
Concluding 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 Nigel Baker CHEP’2000 Presentation 18