C A R L V O N O S S I E T Z K Y Model Consistency ensured by Metamodel Integration MoConseMI 6th GEMOC 2018, Copenhagen Johannes Meier Andreas Winter Software Engineering Group Department of Computing Science Carl von Ossietzky University, Oldenburg, Germany 15. October 2018 Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 1 / 12
Motivation C A R L V O N O S S I E T Z K Y Motivation various Artifacts in Software Development: I Diagrams, DSLs, Tools, . . . I Artifacts are technically separated I Artifacts are interrelated regarding content Ensure Consistency between Artifacts automatically Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 2 / 12
Motivation C A R L V O N O S S I E T Z K Y Motivation various Artifacts in Software Development: I Diagrams, DSLs, Tools, . . . I Artifacts are technically separated I Artifacts are interrelated regarding content Ensure Consistency between Artifacts automatically Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 2 / 12
Motivation C A R L V O N O S S I E T Z K Y Motivation various Artifacts in Software Development: I Diagrams, DSLs, Tools, . . . I Artifacts are technically separated I Artifacts are interrelated regarding content Ensure Consistency between Artifacts automatically Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 2 / 12
Motivation C A R L V O N O S S I E T Z K Y Motivation various Artifacts in Software Development: I Diagrams, DSLs, Tools, . . . I Artifacts are technically separated I Artifacts are interrelated regarding content Ensure Consistency between Artifacts automatically Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 2 / 12
Motivation C A R L V O N O S S I E T Z K Y Motivation various Artifacts in Software Development: I Diagrams, DSLs, Tools, . . . I Artifacts are technically separated I Artifacts are interrelated regarding content Ensure Consistency between Artifacts automatically Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 2 / 12
Motivation C A R L V O N O S S I E T Z K Y Motivation various Artifacts in Software Development: I Diagrams, DSLs, Tools, . . . I Artifacts are technically separated I Artifacts are interrelated regarding content Ensure Consistency between Artifacts automatically Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 2 / 12
Motivation C A R L V O N O S S I E T Z K Y Motivation various Artifacts in Software Development: I Diagrams, DSLs, Tools, . . . I Artifacts are technically separated I Artifacts are interrelated regarding content Ensure Consistency between Artifacts automatically Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 2 / 12
Motivation C A R L V O N O S S I E T Z K Y Motivation various Artifacts in Software Development: I Diagrams, DSLs, Tools, . . . I Artifacts are technically separated I Artifacts are interrelated regarding content Ensure Consistency between Artifacts automatically link Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 2 / 12
Motivation C A R L V O N O S S I E T Z K Y Motivation various Artifacts in Software Development: I Diagrams, DSLs, Tools, . . . I Artifacts are technically separated I Artifacts are interrelated regarding content Ensure Consistency between Artifacts automatically link Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 2 / 12
Motivation C A R L V O N O S S I E T Z K Y Motivation various Artifacts in Software Development: I Diagrams, DSLs, Tools, . . . I Artifacts are technically separated I Artifacts are interrelated regarding content Ensure Consistency between Artifacts automatically link Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 2 / 12
Motivation C A R L V O N O S S I E T Z K Y Motivation various Artifacts in Software Development: I Diagrams, DSLs, Tools, . . . I Artifacts are technically separated I Artifacts are interrelated regarding content Ensure Consistency between Artifacts automatically link keep consistent Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 2 / 12
Motivation C A R L V O N O S S I E T Z K Y Problem There are further Software Development Projects: e.g. with formal Specifications, C++, Test Cases, Documentation, Project Management, Build Tools Traceability ! further Consistency issues General Problem: Artifacts are technically separated, but interrelated contentwise specific Consistency Rules have to be fulfilled automatically Goal Ensure Consistency between Artifacts automatically! Artifact == Model + Metamodel (structural formalization [CNS12]) ! Model Integration Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 3 / 12
Motivation C A R L V O N O S S I E T Z K Y Challenges Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 4 / 12
Motivation C A R L V O N O S S I E T Z K Y Challenges 1. Formalize Consistency Rules Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 4 / 12
Motivation C A R L V O N O S S I E T Z K Y Challenges 1. Formalize Consistency Rules Sourcecode and Class Diagrams describe the same set of classes, identified by their class name. Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 4 / 12
Motivation C A R L V O N O S S I E T Z K Y Challenges 1. Formalize Consistency Rules Each Requirement is linked with all Methods whose Name is contained in the Text of the Requirement. Sourcecode and Class Diagrams describe the same set of classes, identified by their class name. Student University university[1] students[*] +Name : String Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 4 / 12
Motivation C A R L V O N O S S I E T Z K Y Challenges 1. Formalize Consistency Rules 2. Create explicit SUM(M) Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 4 / 12
Motivation C A R L V O N O S S I E T Z K Y reuse Model Techniques which work only with one Model Challenges used as single Point of Truth 1. Formalize Consistency Rules Single Underlying Model [ASB09] 2. Create explicit SUM(M) SUMM and SUM are explicit Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 4 / 12
Motivation C A R L V O N O S S I E T Z K Y reuse Model Techniques which work only with one Model Challenges used as single Point of Truth 1. Formalize Consistency Rules Single Underlying Model [ASB09] 2. Create explicit SUM(M) SUMM and SUM are explicit integrator [ 0 .. 1 ] integrator [ 0 .. 1 ] data ProjectData integrator [ 0 .. 1 ] containsClassDiagram [ ⇤ ] containsJavaASG [ ⇤ ] containsRequirementsSpecification [ ⇤ ] ClassDiagram JavaASG RequirementsSpecification classes [ ⇤ ] diagram [ 0 .. 1 ] asg [ 0 .. 1 ] container [ 1 ] content [ ⇤ ] usedBy [ ⇤ ] type [ 1 ] classes [ ⇤ ] calledBy [ ⇤ ] calling [ ⇤ ] Requirement Association ClassType class [ 1 ] class [ 1 ] Method fulfilledBy [ ⇤ ] rowNumber : EInt [ 0 .. 1 ] name : EString [ 1 ] name : EString [ 1 ] id : EString [ 0 .. 1 ] lowerBound : EInt [ 0 .. 1 ] name : EString [ 1 ] associations [ ⇤ ] methods [ ⇤ ] fulfilled [ ⇤ ] author : EString [ 0 .. 1 ] upperBound : EInt [ 0 .. 1 ] text : EString [ 0 .. 1 ] : ProjectData :integrator :integrator :integrator :containsJavaASG[0] : ClassDiagram : JavaASG : RequirementsSpecification :containsClassDiagram[0] :containsRequirementsSpecification[0] :asg :asg :diagram :container :container :classes[0] :classes[1] :classes[0] :content[0] :content[1] J1 : ClassType J2 : ClassType CD1 : Class R1 : Requirement R2 : Requirement className : EString [ 1 ] = ”University” name : EString [ 1 ] = ”University” name : EString [ 1 ] = ”Student” rowNumber : EInt [ 0 .. 1 ] = 1 rowNumber : EInt [ 0 .. 1 ] = 2 id : EString [ 0 .. 1 ] = ”R1” id : EString [ 0 .. 1 ] = ”R2” :fulfilled[0] author : EString [ 0 .. 1 ] = ”Andreas Winter” author : EString [ 0 .. 1 ] = ”Johannes Meier” :class :class text : EString [ 0 .. 1 ] = ”The student must be able to register for an event.” text : EString [ 0 .. 1 ] = ”The student must be enroled at the university.” :methods[0] :methods[0] M2 : Method :calling[0] M1 : Method :fulfilledBy[0] name : EString [ 1 ] = ”start” :calledBy[0] name : EString [ 1 ] = ”register” Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 4 / 12
Motivation C A R L V O N O S S I E T Z K Y Challenges 1. Formalize Consistency Rules 2. Create explicit SUM(M) Johannes Meier, Andreas Winter Metamodel Integration 15. October 2018 4 / 12
Recommend
More recommend