System models are essential in planning, designing, realizing, and maintaining production systems. AutomationML (AML) is an emerging standard to represent and exchange heterogeneous artifacts throughout the complete system life cycle and is more and more used as a modeling language. AML is designed as a flexible, prototype-based language able to represent the full spectrum of different artifacts. It may be utilized to build reusable libraries containing prototypical elements to build up production systems by using clones. However, libraries have to evolve over time, e.g., to reflect bug fixes, new features or refactorings, and so system models have to co-evolve to reflect
the changes in the libraries.
To tackle this co-evolution challenge, we specify in this paper the relationship between library elements, i.e., prototypes, and system elements, i.e., clones, by establishing a formal model for prototype-based modeling languages. Based on this formalization,we introduce several levels of consistency rigor one may want to achieve when modeling with prototype-based languages. These levels are also the main input to reason about the impact of library changes on the concrete system models for which we provide semi-automated co-evolution propagation strategies. We apply the established theory to the concrete AML case and present concrete tool support for evolving AML models based on Eclipse which demonstrates that consistency between system models and libraries may be maintained semi-automatically.
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
Model-Based Co-Evolution of Production Systems and their Libraries with AutomationML
1. Business Informatics Group
Institute of Software Technology and Interactive Systems
Vienna University of Technology
Favoritenstraße 9-11/188-3, 1040 Vienna, Austria
phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896
office@big.tuwien.ac.at, www.big.tuwien.ac.at
Model-Based Co-Evolution of Production Systems
and their Libraries with AutomationML
20th IEEE International Conference on Emerging Technologies and
Factory Automation (ETFA) 2015
Luca Berardinelli, Stefan Biffl, Emanuel Maetzler,
Tanja Mayerhofer, Manuel Wimmer
3. Introduction: AutomationML
3
AutomationML (AML) standard for tool
data exchange
AML docs are XML-based artifacts
AML as pivotal language: Tool-
specific docs can be transformed in
AML docs
= domain = tool = doc
XML-based
artifacts
CAEX.xsd
overall system design
mechanical
engineering
electrical
engineering
software
engineering
Industry 4.0
4. Introduction: AutomationML Example
4
Lab-sized Production System
“Equipment Center for Distributed Systems,”
http://www.iafbg.ovgu.de/en/technische ausstattung cvs.html, Institute of
Ergonomics, Manufacturing Systems and Automation at Otto-v.-Guericke
University Magdeburg.
5. 5
Turntable Conveyor
PI Controller
Introduction: AutomationML Example::Model Overview
AML Artifact
Wooden Block
Conveyor
Inductive
Sensor
Turntable
.plc
PLC Program
«conformsTo»
Reusable model elements
collected in Libraries. Its
elements represents
prototypes.
The model is obtained by
cloning elements from
libraries in hierarchies of
connected elements.
Its elements are cloned
from prototypes
«model»
mCLONES
Motor
∈
PROTOTYPES «library»
L∈
PI Controller
6. Introduction: (some) AutomationML Concepts
System Unit Class
• Reusable Modeling Elements as
System Unit Class Library
• Set of reusable modeling elements Wooden Block
Conveyor
PI Controller
Inductive
Sensor
Turntable
.plc
PLC Program
Motor
are
s
External Interface
• Elements’ connection points as
Internal Link
• Elements’ connection as
• Attributes
nominal speed = 9000
AML Artifact
PROTOTYPES «library»
L∈
name = value
AML concepts for representing L:
66
7. Introduction: (some) AutomationML Concepts
Inductive
Sensor
Motor
nominal speed = 9000
AML Artifact
Wooden Block
Conveyor
PI Controller
Inductive
Sensor
Turntable
.plc
PLC Program
Motor
nominal speed = 9000
Instance Hierarchy
• Main model container:
Internal Element
• Its constituting elements as
External Interface
• Elements’ connection points as
Internal Link
• Elements’ connection as
• Attributes
name = value
AML concepts for representing m:
«model»
mCLONES ∈
are
s
«clones»
6
8. Problem Description: Challenges
Challenge: Evolution of engineering data has to be managed
Engineers from diverse domains working in parallel
Challenge: Co-evolution of prototypes and clones has to be managed
CLONES
PROTOTYPESPROTOTYPES
CLONES
Engineer
Evolution
Co-evolution 7
9. Contribution: Framework for prototype/clone co-evolution
1. Generic metamodel for prototype-based languages
2. Levels of consistency rigor between and
3. Change types on and their impact on prototype/clone
consistency
4. Repair operations to re-establish prototype/clone consistency
PROTOTYPES CLONES
PROTOTYPES
CLONES
PROTOTYPESPROTOTYPES
CLONES
Engineer
Evolution
Co-evolution 8
10. Contribution: Framework for prototype/clone co-evolution
1. Generic metamodel for prototype-based languages
2. Levels of consistency rigor between and
3. Change types on and their impact on prototype/clone
consistency
4. Repair operations to re-establish prototype/clone consistency
PROTOTYPES CLONES
PROTOTYPES
CLONES
PROTOTYPESPROTOTYPES
CLONES
Engineer
Evolution
Co-evolution 9
11. Contribution: Framework for prototype/clone co-evolution
1. Generic metamodel for prototype-based languages
2. Levels of consistency rigor between and
3. Change types on and their impact on prototype/clone
consistency
4. Repair operations to re-establish prototype/clone consistency
PROTOTYPES CLONES
PROTOTYPES
Engineer
Evolution
Co-evolution
CLONESCLONES
PROTOTYPESPROTOTYPES
10
12. Contribution: Framework for prototype/clone co-evolution
1. Generic metamodel for prototype-based languages
2. Levels of consistency rigor between and
3. Change types on and their impact on prototype/clone
consistency
4. Repair operations to re-establish prototype/clone consistency
PROTOTYPES CLONES
PROTOTYPES
CLONES
PROTOTYPESPROTOTYPES
CLONES
Co-evolution
Engineer
Evolution
11
13. 1. Generic Metamodel for Prototype-Based Languages
A general metamodel for prototypes
and clones (prototype clone metamodel,
PCMM) whose concepts can be
adopted for several modeling languages.
PROTOTYPES CLONES and as roles
A Object can play different roles,
depending on its current relationships
ObjectStore
+ createObject() :Object
+ deleteObject() :void
Slot
- name :String
- Value :Object[*]
+objects
+slots
Object
- id :int
- name :String
+ createClone():Object
+ addSlot() :Slot
+ deleteSlot() :void
+ modifySlot() :void
+prototype 0..1+clones *
*
*
12
PCMM
14. 1. Generic Metamodel for Prototype-Based Languages
ObjectStore
+ createObject() :Object
+ deleteObject() :void
Slot
- name :String
- Value :Object[*]
+objects
+slots
Object
- id :int
- name :String
+ createClone():Object
+ addSlot() :Slot
+ deleteSlot() :void
+ modifySlot() :void
+prototype 0..1+clones *
*
*
Generic Artifact based on PCMM
objstore1:ObjectStore
obj1: Object
- id = 1
- name = "Motor"
s1: Slot
- name = "nominal speed"
- value = 9000
obj2: Object
- id = 2
- name = “Motor"
s2: Slot
- name = "nominal speed"
- value = 9000
+prototype
+clones
PROTOTYPES
CLONES
Attr
Attr
13
PCMM
15. 2. Levels of Consistency Rigor between Prototypes and Clones
Generic Artifact based on PCMM
objstore1:ObjectStore
obj1: Object
- id = 1
- name = "Motor"
s1: Slot
- name = "nominal speed"
- value = 9000
obj2: Object
- id = 2
- name = “Motor"
s2: Slot
- name = "nominal speed"
- value = 9000
+prototype
+clones
PROTOTYPES
«conforms to»
«library»
L
«model»
m
Clones and prototypes
may evolve
independently
Different levels of
consistency between
clones and prototypes
may apply
CLONES
14
16. 2. Levels of Consistency Rigor between Prototypes and Clones
Level 0: Uncontrolled Compliance
Clones may evolve completely
independent from Prototypes
Prototypes are solely used as templates
or classification mechanism
Level 1: Substantial Compliance
Evolution of clones is partially restricted
Level 1a: Extension: all or more slots
Level 1b: Restriction: at most all the slots
Level 1c: Redefinition: the same but values
Level 2: Full Compliance
Clones may not evolve independently of
prototypes
PROTOTYPES
«conforms to»
«library»
L
«model»
m
Clones and prototypes
may evolve
independently
Different levels of
consistency between
clones and prototypes
may apply
CLONES
15
17. 3. Change Types on Prototypes and their Impact on
Prototype/Clone Consistency
17
Operation L0 L1a L1b L1c L2
ObjectStore::createObject ↑ ↑ ↑ ↑ ↑
ObjectStore::deleteObject ≠ ≠ ≠ ≠ ≠
Object::addSlot ↑ ≠ ↑ ≠ ≠
Object::deleteSlot ↑ ↑ ≠ ≠ ≠
Object::modifySlot ↑ ≠ ≠ ↑ ≠
ObjectStore
+ createObject() :Object
+ deleteObject() :void
Slot
- name :String
- Value :Object[*]
+objects
+slots
Object
- id :int
- name :String
+ createClone():Object
+ addSlot() :Slot
+ deleteSlot() :void
+ modifySlot() :void
+prototype 0..1+clones *
*
*
PROTOTYPES
«conforms to»
«library»
L‘
«model»
m‘
CLONES
Engineer
↑ = non-breaking
≠ =breaking
are
s
are
s
PCMM
18. Generic Artifact based on PCMM
4. Repair Operations to Re-Establish Prototype/Clone
Consistency
18
Example
Desired
consistency level:
L1a Extension
«conforms to»
«library»
L‘
«model»
m‘
obj1: Object
- id = 1
- name = "Motor"
s1: Slot
- name = "nominal speed"
- value = 9000
obj2: Object
- id = 2
- name = “Motor"
s2: Slot
- name = "nominal speed"
- value = 9000
+prototype
+clones
PROTOTYPES
CLONES
19. Generic Artifact based on PCMM
4. Repair Operations to Re-Establish Prototype/Clone
Consistency
19
Example
Desired
consistency level:
L1a Extension
«conforms to»
«library»
L‘
«model»
m‘
obj1: Object
- id = 1
- name = "Motor"
s1: Slot
- name = "nominal speed"
- value = 9000
obj2 : Object
- id = 2
- name = “Motor"
s2: Slot
- name = "nominal speed"
- value = 9000
+prototype
+clones
PROTOTYPES
CLONES
s3: Slot
- name = "min rotation speed"
- value = 5800
addSlot()
Engineer
Evolution
20. Generic Artifact based on PCMM
4. Repair Operations to Re-Establish Prototype/Clone
Consistency
20
Example
Desired
consistency level:
L1a Extension
«conforms to»
«library»
L‘
«model»
m‘
obj1: Object
- id = 1
- name = "Motor"
s1: Slot
- name = "nominal speed"
- value = 9000
obj2: Object
- id = 2
- name = "M1"
s2: Slot
- name = "nominal speed"
- value = 9000
+prototype
+clones
PROTOTYPES
CLONES
s3: Slot
- name = "min rotation speed"
- value = 5800
addSlot()
Engineer
Evolution
s4: Slot
- name = "min rotation speed"
- value = 5800
addSlot()
Co-evolution
21. Case Study: AutomationML
21
Tool support
Object
Constraint
Language
- Metamodeling
- Modeling (Editor)
- Validation
- Co-evolution (fixing rules)
22. Conclusion
22
Presented an approach for dealing with evolving libraries and co-
evolving system models
Introduced a general metamodel to characterize prototype-based
languages
Adapted the general metamodel for AutomationML
Deduced a minimal change model and classified changes w.r.t.
consistency levels
Showed possible tool support for consistency checks and (semi-)
automated fixing
Ongoing and Future work:
Define nesting and inheritance for prototypes in PCMM
Full AutomationML support (e.g., interfaces and roles)
Versioning support
23. Business Informatics Group
Institute of Software Technology and Interactive Systems
Vienna University of Technology
Favoritenstraße 9-11/188-3, 1040 Vienna, Austria
phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896
office@big.tuwien.ac.at, www.big.tuwien.ac.at
Model-Based Co-Evolution of Production Systems
and their Libraries with AutomationML
20th IEEE International Conference on Emerging Technologies and
Factory Automation (ETFA) 2015
Luca Berardinelli, Stefan Biffl, Emanuel Maetzler,
Tanja Mayerhofer, Manuel Wimmer