Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Query-driven soft interconnection                         of EMF models                   Ábel Hegedüs, Ákos Horváth, Istv...
Business process management exampleBusiness process model              System architecture model                          ...
Business process management exampleBusiness process model              System architecture model                          ...
Business process management exampleBusiness process model              System architecture model                          ...
Business process management exampleBusiness process model              System architecture model                          ...
Business process management exampleBusiness process model            System architecture model                     Multipl...
Business process management example        Multiple interconnected                models                        28
Business process management example               Multiple interconnected                       modelsIntegration with  ex...
Business process management example               Multiple interconnected                       modelsIntegration with  ex...
Business process management example               Multiple interconnected                       modelsIntegration with    ...
Collaboration on model fragmentsProcess engineer   Hard interconnections   System engineer                             32
Collaboration on model fragments    Process engineer       Hard interconnections   System engineer                   Open1...
Collaboration on model fragments    Process engineer       Hard interconnections   System engineer                   Open1...
Collaboration on model fragments    Process engineer       Hard interconnections   System engineer                   Open1...
Collaboration on model fragments    Process engineer       Hard interconnections                System engineer           ...
Collaboration on model fragments    Process engineer            Hard interconnections                System engineer      ...
Collaboration on model fragments    Process engineer            Hard interconnections                 System engineer     ...
Idea of soft linksProcess engineer   Remove hard interconnections   System engineer                            List items ...
Idea of soft linksProcess engineer   Remove hard interconnections   System engineer                             List items...
Idea of soft links    Process engineer       Remove hard interconnections   System engineer                   Open1     Ed...
Idea of soft links    Process engineer       Remove hard interconnections   System engineer                   Open1     Ed...
Idea of soft links    Process engineer       Remove hard interconnections   System engineer                   Open1       ...
Idea of soft links    Process engineer       Remove hard interconnections            System engineer                   Ope...
Idea of soft links    Process engineer       Remove hard interconnections              System engineer                   O...
Idea of soft links    Process engineer       Remove hard interconnections                 System engineer                 ...
Idea of soft links    Process engineer       Remove hard interconnections                  System engineer                ...
EMF-INCQUERY Overview A model query engine for batch and live queries• Expressive                 • Incremental          ...
Overview of soft links• Declarative model                    • Incremental  queries                                re-eval...
Soft links: Definition• Declarative model                    • Incremental  queries                                re-eval...
Soft links in the motivating example                  51
Soft links in the motivating example   These jobs are executed whenoperator performs the checklist entry                  ...
Soft links in the motivating example   These jobs are executed whenoperator performs the checklist entry                  ...
Soft links in the motivating example   These jobs are executed whenoperator performs the checklist entry                  ...
Soft links as model queries Soft link can be represented as:   o A set of relevant elements from the model   o Visible as...
Soft links as model queries Soft link can be represented as:   o A set of relevant elements from the model   o Visible as...
Soft links as model queries Soft link can be represented as:   o A set of relevant elements from the model   o Visible as...
Soft links as model queries Soft link can be represented as:   o A set of relevant elements from the model   o Visible as...
Soft links as model queries Soft link can be represented as:   o A set of relevant elements from the model   o Visible as...
Advanced model queries                    EntryJobCorrespondence(CLE,Job)                   Soft Link                     ...
Advanced model queries                    EntryJobCorrespondence(CLE,Job)                   Soft Link                     ...
Advanced model queries                    EntryJobCorrespondence(CLE,Job)                   Soft Link                     ...
Advanced model queries                    EntryJobCorrespondence(CLE,Job)                   Soft Link                     ...
Advanced model queries                    EntryJobCorrespondence(CLE,Job)                   Soft Link                     ...
Advanced model queries                    EntryJobCorrespondence(CLE,Job)                   Soft Link                     ...
Developing soft links1. Define feature and „storage”in metamodel                                  66
Developing soft links                                         2. Define model query with1. Define feature and „storage”   ...
Developing soft links                                              2. Define model query with 1. Define feature and „stora...
Developing soft links                                            2. Define model query with 1. Define feature and „storage...
Soft links: Execution• Declarative model                    • Incremental  queries                                re-evalu...
Soft links: Execution• Declarative model                    • Incremental  queries                                re-evalu...
Soft link life cycleApplication  EMF         Soft Link                Incremental  Model       Handler                  Qu...
Soft link life cycle                        Application                                                     Incremental up...
Soft link life cycle                        Application                                                       Incremental ...
Soft link life cycle                        Application                                                       Incremental ...
Soft link life cycle                        Application                                                       Incremental ...
Soft link life cycle                        Application                                                             Increm...
Soft link life cycle                        Application                                                             Increm...
Performance of EMF-IncQueryTime [ms]1,000,000 100,000  10,000   1,000     100      10       1            12,552   23,036  ...
Performance of EMF-IncQueryTime [ms]1,000,000 100,000  10,000   1,000     100      10       1            12,552   23,036  ...
Performance of EMF-IncQueryTime [ms]                Logarithmic1,000,000                scale 100,000  10,000   1,000     ...
Performance of EMF-IncQueryTime [ms]                Logarithmic1,000,000                scale                          Fir...
Performance of EMF-IncQueryTime [ms]                Logarithmic1,000,000                scale                          Fir...
Performance of EMF-IncQueryTime [ms]                Logarithmic1,000,000                scale                          Fir...
Soft links: Use cases• Declarative model                    • Incremental  queries                                re-evalu...
Soft links: Use cases• Declarative model                    • Incremental  queries                                re-evalu...
Traditional traceability management         T              T                 87
Traditional traceability managementModel         T              T                 88
Traditional traceability managementTraceability linksModel                     T        T                         89
Traditional traceability managementTraceability linksModel                     T        TExplicitunidirectionalreferences ...
Soft links in traceability managementModel          T              T                  91
Soft links in traceability management              Query-based              derived featureModel                     92
Soft links in traceability management              Query-based       Calculated              derived feature   bidirection...
Soft links in traceability management              Query-based       Calculated              derived feature   bidirection...
Soft links in traceability management                      Query-based       Calculated                      derived featu...
Soft links in traceability management                        Query-based               Calculated                        d...
Soft links in traceability management                        Query-based               Calculated                        d...
Soft links in traceability management                         Query-based            Calculated                         de...
Graceful degradation of broken soft links                        T              T                                  TBroken...
Graceful degradation of broken soft links                        T                          T                             ...
Graceful degradation of broken soft links                        T                               T                        ...
On-the-fly validation of traceability models                      102
On-the-fly validation of traceability models                      103
Summary of soft linksEfficient and flexible soft interlinking between EMF model fragments • Expressive, graph-   • Increme...
Summary of soft linksEfficient and flexible soft interlinking between EMF model fragments • Expressive, graph-           •...
Summary of soft linksEfficient and flexible soft interlinking between EMF model fragments • Expressive, graph-           •...
Upcoming SlideShare
Loading in …5
×

Query-driven soft interconnection of EMF models

1,354 views

Published on

Query-driven soft links using EMF-IncQuery (http://viatra.inf.mit.bme.hu/incquery/) has been presented at the MODELS 2012 conference (http://www.modelsconference.org/).

  • Be the first to comment

Query-driven soft interconnection of EMF models

  1. 1. Query-driven soft interconnection of EMF models Ábel Hegedüs, Ákos Horváth, István Ráth and Dániel Varró Budapest University of Technology and Economics MODELS 2012, Innsbruck, Austria, October 3rd 2012Budapest University of Technology and EconomicsDepartment of Measurement and Information Systems
  2. 2. Business process management exampleBusiness process model System architecture model Create Find user address Account management system List items Set order state Order management system Operator checklist Entry Task Job Preparation Prepare package Find address Completion Ship order Set order state 23
  3. 3. Business process management exampleBusiness process model System architecture model Create Find user address Account management system List items Set order state Order management system Operator checklist Entry Task Job Preparation Prepare package Find address Completion Ship order Set order state 24
  4. 4. Business process management exampleBusiness process model System architecture model Create Find user address Account management system List items Set order state Order management system Operator checklist Entry Task Job Preparation Prepare package Find address Completion Ship order Set order state 25
  5. 5. Business process management exampleBusiness process model System architecture model Create Find user address Account management system List items Set order state Order management system Operator checklist Entry Task Job Preparation Prepare package Find address Completion Ship order Set order state 26
  6. 6. Business process management exampleBusiness process model System architecture model Multiple interconnected Create Find models user address Account management system List items Set order state Order management system Operator checklist Entry Task Job Preparation Prepare package Find address Completion Ship order Set order state 27
  7. 7. Business process management example Multiple interconnected models 28
  8. 8. Business process management example Multiple interconnected modelsIntegration with existing tool (TIBCO) 29
  9. 9. Business process management example Multiple interconnected modelsIntegration with existing tool Persisted (TIBCO) separately 30
  10. 10. Business process management example Multiple interconnected modelsIntegration with Circular model existing tool Persisted dependency (TIBCO) separately 31
  11. 11. Collaboration on model fragmentsProcess engineer Hard interconnections System engineer 32
  12. 12. Collaboration on model fragments Process engineer Hard interconnections System engineer Open1 Edits process model 33
  13. 13. Collaboration on model fragments Process engineer Hard interconnections System engineer Open1 Edits process model X 34
  14. 14. Collaboration on model fragments Process engineer Hard interconnections System engineer Open1 Save Edits process model X 35
  15. 15. Collaboration on model fragments Process engineer Hard interconnections System engineer Open Open1 Save Edits process model 2 List items Inconsistent process and system model! Order management system X 36
  16. 16. Collaboration on model fragments Process engineer Hard interconnections System engineer Open Open1 Save Edits process model 2 List items Inconsistent process and system model! Order management system X Broken link 37
  17. 17. Collaboration on model fragments Process engineer Hard interconnections System engineer Open Open1 Save Edits process model 2 List items Inconsistent process and system model! Order management Workaround: Keep system all models open X Broken link • • Performance impact Not supported by third-party tools • Strict file location • Circular model dependencies 38
  18. 18. Idea of soft linksProcess engineer Remove hard interconnections System engineer List items Order management system 39
  19. 19. Idea of soft linksProcess engineer Remove hard interconnections System engineer List items Order management system Link computed when models are available 40
  20. 20. Idea of soft links Process engineer Remove hard interconnections System engineer Open1 Edits process model List items Order management system Link computed when models are available 41
  21. 21. Idea of soft links Process engineer Remove hard interconnections System engineer Open1 Edits process model List items Order management system X Link computed when models are available 42
  22. 22. Idea of soft links Process engineer Remove hard interconnections System engineer Open1 Save Edits process model List items Order management system X 43
  23. 23. Idea of soft links Process engineer Remove hard interconnections System engineer Open Open1 Save Edits process model 2 List items Inconsistent process and system model! Order management system X 44
  24. 24. Idea of soft links Process engineer Remove hard interconnections System engineer Open Open1 Save Edits process model 2 List items Inconsistent process and system model! Order management system X Warning: cannot find task (Finalize order)! 45
  25. 25. Idea of soft links Process engineer Remove hard interconnections System engineer Open Open1 Save Edits process model 2 List items Inconsistent process and system model! Soft links: Order management system • Persisted as identifiers X Warning: cannot find • Computed when required • Can be implemented in Java/Xcore task (Finalize order)! 46
  26. 26. Idea of soft links Process engineer Remove hard interconnections System engineer Open Open1 Save Edits process model 2 List items Inconsistent process and system model! Soft links: Order management system • Persisted as identifiers X Warning: cannot find • • • • Computed when required Link defined as a model query Can be implemented in Java/Xcore Live computaton by EMF-INCQUERY task (Finalize order)! • Change notifications • Automatically provided based on high-level query definition 47
  27. 27. EMF-INCQUERY Overview A model query engine for batch and live queries• Expressive • Incremental • On-the-fly well- graph pattern-based evaluation formedness validation query language • Instantaneous • Incremental view• Focus on reusability: response for maintenance query libraries, complex queries • Model synchronization recursive pattern calls over large models • Structural features defined by queriesDefinition Execution Use cases http://viatra.inf.mit.bme.hu/incquery http://viatra.inf.mit.bme.hu/incquery/getting_started http://www.eclipse.org/proposals/modeling.emf.incquery/ 48
  28. 28. Overview of soft links• Declarative model • Incremental queries re-evaluation• Minimize • Notification imperative code supportDefinition Execution • Fragmented models • Traceability management Use cases 49
  29. 29. Soft links: Definition• Declarative model • Incremental queries re-evaluation• Minimize • Notification imperative code supportDefinition Execution • Fragmented models • Traceability management Use cases 50
  30. 30. Soft links in the motivating example 51
  31. 31. Soft links in the motivating example These jobs are executed whenoperator performs the checklist entry Soft Link 52
  32. 32. Soft links in the motivating example These jobs are executed whenoperator performs the checklist entry Persisted in different Soft Link models 53
  33. 33. Soft links in the motivating example These jobs are executed whenoperator performs the checklist entry Persisted in different Soft Link models Corresponding jobs are identified by system and job name 54
  34. 34. Soft links as model queries Soft link can be represented as: o A set of relevant elements from the model o Visible as a structural (derived) feature 55
  35. 35. Soft links as model queries Soft link can be represented as: o A set of relevant elements from the model o Visible as a structural (derived) feature Model query EntryJobCorrespondence(CLE,Job) name CLE:CLEntry J:Job JobName:EString jobPaths runsOn name JobPath:EString S:System SysName:EString check (JobPath == SysName + ’/’ + JobName) 56
  36. 36. Soft links as model queries Soft link can be represented as: o A set of relevant elements from the model o Visible as a structural (derived) feature Model query EntryJobCorrespondence(CLE,Job) name CLE:CLEntry J:Job JobName:EString jobPaths runsOn name JobPath:EString S:System SysName:EString check (JobPath == SysName + ’/’ + JobName) ModelQuery(A,B): • tuples of model elements A, B • satisfying the query condition • enumerate 1 / all instances • A,B can be input or output 57
  37. 37. Soft links as model queries Soft link can be represented as: o A set of relevant elements from the model o Visible as a structural (derived) feature Model query EntryJobCorrespondence(CLE,Job) Soft Link name CLE:CLEntry J:Job JobName:EString jobPaths CLE.jobs runsOn name JobPath:EString S:System SysName:EString check (JobPath == SysName + ’/’ + JobName) ModelQuery(A,B): • tuples of model elements A, B • satisfying the query condition • enumerate 1 / all instances • A,B can be input or output 58
  38. 38. Soft links as model queries Soft link can be represented as: o A set of relevant elements from the model o Visible as a structural (derived) feature Model query EntryJobCorrespondence(CLE,Job) Soft Link name CLE:CLEntry J:Job JobName:EString jobPaths CLE.jobs runsOn name JobPath:EString S:System SysName:EString check (JobPath == SysName + ’/’ + JobName) ModelQuery(A,B): Persistence: • tuples of model elements A, B • soft link not saved in files • satisfying the query condition • system and job name stored as paths • enumerate 1 / all instances • A,B can be input or output 59
  39. 39. Advanced model queries EntryJobCorrespondence(CLE,Job) Soft Link name CLE:CLEntry J:Job JobName:EString jobPaths CLE.jobs runsOn nameJobPath:EString S:System SysName:EString check (JobPath == SysName + ’/’ + JobName) 60
  40. 40. Advanced model queries EntryJobCorrespondence(CLE,Job) Soft Link name CLE:CLEntry J:Job JobName:EString jobPaths CLE.jobs runsOn nameJobPath:EString S:System SysName:EString check (JobPath == SysName + ’/’ + JobName) pattern EntryJobCorrespondence( CLE : CheckListEntry, J : Job) = { Job.name(J,JobName); System.name(S,SysName); Job.runsOn(J,System); ChecklistEntry.jobPaths(CLE,JobPath); check(JobPath == SysName+/+JobName);} 61
  41. 41. Advanced model queries EntryJobCorrespondence(CLE,Job) Soft Link name CLE:CLEntry J:Job JobName:EString jobPaths CLE.jobs runsOn nameJobPath:EString S:System SysName:EString check (JobPath == SysName + ’/’ + JobName) pattern EntryJobCorrespondence( Query parameters CLE : CheckListEntry, J : Job) = { Job.name(J,JobName); (with type condition) System.name(S,SysName); Job.runsOn(J,System); ChecklistEntry.jobPaths(CLE,JobPath); check(JobPath == SysName+/+JobName);} 62
  42. 42. Advanced model queries EntryJobCorrespondence(CLE,Job) Soft Link name CLE:CLEntry J:Job JobName:EString jobPaths CLE.jobs runsOn nameJobPath:EString S:System SysName:EString check (JobPath == SysName + ’/’ + JobName) pattern EntryJobCorrespondence( Query parameters Path CLE : CheckListEntry, J : Job) = { Job.name(J,JobName); (with type condition)condition System.name(S,SysName); Job.runsOn(J,System); ChecklistEntry.jobPaths(CLE,JobPath); check(JobPath == SysName+/+JobName);} 63
  43. 43. Advanced model queries EntryJobCorrespondence(CLE,Job) Soft Link name CLE:CLEntry J:Job JobName:EString jobPaths CLE.jobs runsOn nameJobPath:EString S:System SysName:EString check (JobPath == SysName + ’/’ + JobName) pattern EntryJobCorrespondence( Query parameters Path CLE : CheckListEntry, J : Job) = { Job.name(J,JobName); (with type condition)condition System.name(S,SysName); Job.runsOn(J,System);Attribute ChecklistEntry.jobPaths(CLE,JobPath);condition check(JobPath == SysName+/+JobName);} 64
  44. 44. Advanced model queries EntryJobCorrespondence(CLE,Job) Soft Link name CLE:CLEntry J:Job JobName:EString jobPaths CLE.jobs runsOn nameJobPath:EString S:System SysName:EString check (JobPath == SysName + ’/’ + JobName) pattern EntryJobCorrespondence( Query parameters Path CLE : CheckListEntry, J : Job) = { Job.name(J,JobName); (with type condition)condition System.name(S,SysName); Job.runsOn(J,System);Attribute ChecklistEntry.jobPaths(CLE,JobPath);condition check(JobPath == SysName+/+JobName);} Also available: • Pattern reuse • Negative application conditions • Match counting • Transitive closure 65
  45. 45. Developing soft links1. Define feature and „storage”in metamodel 66
  46. 46. Developing soft links 2. Define model query with1. Define feature and „storage” EMF-IncQueryin metamodel @DerivedFeature pattern readingTasks(D: Data, T: Task) = { Task.id(T,TaskId); Data.readingTaskIds(D,TaskId);} 67
  47. 47. Developing soft links 2. Define model query with 1. Define feature and „storage” EMF-IncQuery in metamodel @DerivedFeature 3. Generate glue code pattern readingTasks(D: Data, T: Task) = { Task.id(T,TaskId); automatically Data.readingTaskIds(D,TaskId);}private IncqueryDerivedFeature readingTasksHandler;public EList<Task> getReadingTasks() { if (readingTaskHandler == null) { readingTaskHandler = IncqueryFeatureHelper.getIncqueryDerivedFeature( this, SystemPackageImpl.Literals.DATA__READING_TASK, "system.queries.DataTaskReadCorrespondence", "Data", "Task", FeatureKind.MANY_REFERENCE, true, false);} return readingTaskHandler.getManyReferenceValueAsEList(this);} 68
  48. 48. Developing soft links 2. Define model query with 1. Define feature and „storage” EMF-IncQuery in metamodel @DerivedFeature 3. Generate glue code pattern readingTasks(D: Data, T: Task) = { Task.id(T,TaskId); automatically Data.readingTaskIds(D,TaskId);}private IncqueryDerivedFeature readingTasksHandler;public EList<Task> getReadingTasks() { if (readingTaskHandler == null) { readingTaskHandler = IncqueryFeatureHelper.getIncqueryDerivedFeature( Efficient, declarative derived features this, SystemPackageImpl.Literals.DATA__READING_TASK, • Solves false);}standing "Task", "system.queries.DataTaskReadCorrespondence", "Data",EMF shortcoming FeatureKind.MANY_REFERENCE, true, a long • Details in our ECMFA 2012 paper return readingTaskHandler.getManyReferenceValueAsEList(this);} 69
  49. 49. Soft links: Execution• Declarative model • Incremental queries re-evaluation• Minimize • Notification imperative code supportDefinition Execution • Fragmented models • Traceability management Use cases 70
  50. 50. Soft links: Execution• Declarative model • Incremental queries re-evaluation• Minimize • Notification imperative code supportDefinition Execution • Fragmented models • Traceability management Use cases 71
  51. 51. Soft link life cycleApplication EMF Soft Link Incremental Model Handler Query engine Efficient soft links 72
  52. 52. Soft link life cycle Application Incremental updateInitialization + Model manipulation A1 EMF Soft Link Incremental Model Handler Query engine Efficient soft links 73
  53. 53. Soft link life cycle Application Incremental updateInitialization + Model manipulation A1 EMF Soft Link Incremental Model Handler Query engine A2 EMF model reference + Change notifications List items Efficient soft links Order management system 74
  54. 54. Soft link life cycle Application Incremental updateInitialization + Model manipulation Delta monitors A1 EMF Soft Link Incremental Model Handler A3 Query engine A2 EMF model reference + Change notifications List items Efficient soft links Order management system 75
  55. 55. Soft link life cycle Application Incremental updateInitialization + Model manipulation Delta monitors A1 EMF Soft Link Incremental Model Handler A3 Query engine A4 A2 EMF model reference + Change notifications List items Efficient soft links Order management system 76
  56. 56. Soft link life cycle Application Incremental update RequestInitialization + soft link Value retrieval from cache Model B1 manipulation Delta monitors A1 EMF Soft Link Incremental Model Handler A3 Query engine A4 A2 EMF model reference + Change notifications List items Efficient soft links Order management system 77
  57. 57. Soft link life cycle Application Incremental update RequestInitialization + soft link Value retrieval from cache Model B1 manipulation Delta monitors A1 EMF Soft Link Incremental B2 Model Handler A3 Query engine Get current A4 value A2 EMF model reference + Change notifications List items Efficient soft links Order management system 78
  58. 58. Performance of EMF-IncQueryTime [ms]1,000,000 100,000 10,000 1,000 100 10 1 12,552 23,036 43,468 88,642 176,520 361,468 715,870 1,423,308 2,837,514 Number of objects Read+Check1 Edit+Check2 79
  59. 59. Performance of EMF-IncQueryTime [ms]1,000,000 100,000 10,000 1,000 100 10 1 12,552 23,036 43,468 88,642 176,520 361,468 715,870 1,423,308 2,837,514 Number of objectsModel size from 10k Read+Check1 Edit+Check2objects to 2,8M objects 80
  60. 60. Performance of EMF-IncQueryTime [ms] Logarithmic1,000,000 scale 100,000 10,000 1,000 100 10 1 12,552 23,036 43,468 88,642 176,520 361,468 715,870 1,423,308 2,837,514 Number of objectsModel size from 10k Read+Check1 Edit+Check2objects to 2,8M objects 81
  61. 61. Performance of EMF-IncQueryTime [ms] Logarithmic1,000,000 scale First evaluation (including EMF load) 100,000 10,000 1,000 100 10 1 12,552 23,036 43,468 88,642 176,520 361,468 715,870 1,423,308 2,837,514 Number of objectsModel size from 10k Read+Check1 Edit+Check2objects to 2,8M objects 82
  62. 62. Performance of EMF-IncQueryTime [ms] Logarithmic1,000,000 scale First evaluation (including EMF load) 100,000 10,000 Re-evaluation (including 1,000 modification) 100 10 1 12,552 23,036 43,468 88,642 176,520 361,468 715,870 1,423,308 2,837,514 Number of objectsModel size from 10k Read+Check1 Edit+Check2objects to 2,8M objects 83
  63. 63. Performance of EMF-IncQueryTime [ms] Logarithmic1,000,000 scale First evaluation (including EMF load) 100,000 10,000 Re-evaluation (including 1,000 modification) 100 10 1 12,552 23,036 43,468 88,642 176,520 361,468 715,870 1,423,308 2,837,514 Number of objectsModel size from 10k Read+Check1 Edit+Check2objects to 2,8M objects More details and comparison with other tools: http://viatra.inf.mit.bme.hu/performance 84
  64. 64. Soft links: Use cases• Declarative model • Incremental queries re-evaluation• Minimize • Notification imperative code supportDefinition Execution • Fragmented models • Traceability management Use cases 85
  65. 65. Soft links: Use cases• Declarative model • Incremental queries re-evaluation• Minimize • Notification imperative code supportDefinition Execution • Fragmented models • Traceability management Use cases 86
  66. 66. Traditional traceability management T T 87
  67. 67. Traditional traceability managementModel T T 88
  68. 68. Traditional traceability managementTraceability linksModel T T 89
  69. 69. Traditional traceability managementTraceability linksModel T TExplicitunidirectionalreferences 90
  70. 70. Soft links in traceability managementModel T T 91
  71. 71. Soft links in traceability management Query-based derived featureModel 92
  72. 72. Soft links in traceability management Query-based Calculated derived feature bidirectionalModel references 93
  73. 73. Soft links in traceability management Query-based Calculated derived feature bidirectionalModel references 94
  74. 74. Soft links in traceability management Query-based Calculated derived feature bidirectionalModel references Traceability query 95
  75. 75. Soft links in traceability management Query-based Calculated derived feature bidirectionalModel references Traceability query pattern DataReadByCheckListEntry( CLE : CheckListEntry, T : Task, D : Data) = { CheckListEntry.task(CLE,T); Data.readingTasks(D,T); } 96
  76. 76. Soft links in traceability management Query-based Calculated derived feature bidirectionalModel references T Traceability query pattern DataReadByCheckListEntry( CLE : CheckListEntry, T : Task, D : Data) = { CheckListEntry.task(CLE,T); Data.readingTasks(D,T); } 97
  77. 77. Soft links in traceability management Query-based Calculated derived feature bidirectionalModel references T Traceability query pattern DataReadByCheckListEntry( CLE : CheckListEntry, T : Task, D : Data) = { CheckListEntry.task(CLE,T); Data.readingTasks(D,T); Soft links! } 98
  78. 78. Graceful degradation of broken soft links T T TBroken hard links:• Fails upon loading EMF model• Difficult to repair• Available information not readable (e.g. XMI path) 99
  79. 79. Graceful degradation of broken soft links T T TBroken hard links: Broken soft links:• Fails upon loading EMF model • No effect on loading EMF model• Difficult to repair • Easy to repair• Available information • Available information readable not readable (e.g. XMI path) (e.g. identifier and query definition) 100
  80. 80. Graceful degradation of broken soft links T T TBroken hard links: Broken soft links:• Fails upon loading EMF model • No effect on loading EMF model• Difficult to repair • Easy to repair• Available information • Available information readable not readable (e.g. XMI path) (e.g. identifier and query definition) EMF-IncQuery provides on-the-fly validation support based on queries 101
  81. 81. On-the-fly validation of traceability models 102
  82. 82. On-the-fly validation of traceability models 103
  83. 83. Summary of soft linksEfficient and flexible soft interlinking between EMF model fragments • Expressive, graph- • Incremental • Transparent behavior based model query evaluation technique • Easy integration through • Derived features • Graceful degradation code generation EMF Definition Execution integration 104
  84. 84. Summary of soft linksEfficient and flexible soft interlinking between EMF model fragments • Expressive, graph- • Incremental • Transparent behavior based model query evaluation technique • Easy integration through • Derived features • Graceful degradation code generation EMF Definition Execution integrationFuture work „Setters” for derived features defined by queries Entirely transparent to applications Derived objects based on model queries Represent query results as model objects Life cycle managed by EMF-INCQUERY 105
  85. 85. Summary of soft linksEfficient and flexible soft interlinking between EMF model fragments • Expressive, graph- • Incremental • Transparent behavior based model query evaluation technique • Easy integration through • Derived features • Graceful degradation code generation EMF Definition Execution integrationFuture work „Setters” for derived features defined by queries EMF-INCQUERY Entirely transparent to applications • 0.6.5 release is available Derived objects based • Complete support for soft links on model queries Represent query results as model objects Life cycle managed by EMF-INCQUERY viatra.inf.mit.bme.hu/incquery/new/examples/query-driven-soft-links 106

×