Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Eclipse 4diacWiki/Development/Detecting Model Inconsistencies in 4diac Models with OCL"

Line 5: Line 5:
 
== Milestones ==
 
== Milestones ==
 
=== Requirement specification ===
 
=== Requirement specification ===
 +
* [https://docs.google.com/spreadsheets/d/1JFpQhYCTBrei3QrgTYtS0RLJ0daLuESjP0bE87VRZas/edit?usp=sharing Requirements]
 
* Precise and traceable requirement list for rules which should be validated on the Ecore models
 
* Precise and traceable requirement list for rules which should be validated on the Ecore models
 
* Assigning the requirements to OCL constraints to facilitate traceability
 
* Assigning the requirements to OCL constraints to facilitate traceability
* OCL constraint types: invariant, pre- and postcondition, derived element, operation contracts
+
* OCL constraints: Invariant, pre- and postcondition, derived element, operation body, initial value
* Format: Table format
+
* Two options:
* [https://docs.google.com/spreadsheets/d/1JFpQhYCTBrei3QrgTYtS0RLJ0daLuESjP0bE87VRZas/edit?usp=sharing Google Sheet]
+
** [https://wiki.eclipse.org/OCL/OCLinEcore Using OCLinEcore]
 +
** [https://help.eclipse.org/2020-03/index.jsp?topic=%2Forg.eclipse.ocl.doc%2Fhelp%2FPivotEvaluatingConstraints.html&cp%3D38_6_5 Eclipse OCL project provides standalone usage to create and evaluate OCL constraints and queries in Java] (We should choose this option for better maintainability?)
 +
* Besides OCL constraints, additional Java code may be required to implement certain requirements (e.g. detecting self-cycles in ECC)
  
  
Line 18: Line 21:
 
=== Validity view for displaying validation results ===
 
=== Validity view for displaying validation results ===
 
* Displaying the violated OCL constraints and the problematic model elements in a user-friendly way
 
* Displaying the violated OCL constraints and the problematic model elements in a user-friendly way
* Modal window? Something like the errors and warning view? Customizing built-in OCL errors view?
+
* View:
* Highlighting the problematic model elements in the model editor
+
** Validation Message Dialog?  
 +
** Something like the errors and warning view?
 +
** Customizing built-in OCL Validation view?
 +
* Extra feature: Highlighting the problematic model elements in the model editor
  
 
=== Implementing OCL constraints ===
 
=== Implementing OCL constraints ===
 
* Developing the OCL constraints and well-formedness rules based upon the requirement list
 
* Developing the OCL constraints and well-formedness rules based upon the requirement list
 
* Testing the newly implemented features and constraints
 
* Testing the newly implemented features and constraints
 +
 +
=== Idea: Function Block Constraint Language (FBCL) ===
 +
* How should we handle the constraints related to individual FB types?
 +
* How should we handle the semantic issues of individual FB types?
 +
* When creating a Function Block Type in 4diac IDE, users could specify constraints on the particular FB type using a declarative representation (not necessarily a textual DSL) or a graphical interface. E.g. something like MustHaveValue constraints or preventing loops on certain FB types)
 +
* The constraint elements could be saved in .fbt files. Once loaded, they could be translated to OCL constraints and additional Java code.

Revision as of 07:55, 28 May 2020

Overview page of GSoC 2020 Project

The aim of this project is to develop OCL constraints and well-formedness rules to the metamodels of 4diac in order to improve the usability of the IDE.

Milestones

Requirement specification


Improving 4diac Ecore models

  • Adding new elements (e.g. classes and helper operations) to the Ecore models to facilitate the introduction of OCL constraints
  • Making suggestions for improvements on the Ecore models (without side-effects!)

Validity view for displaying validation results

  • Displaying the violated OCL constraints and the problematic model elements in a user-friendly way
  • View:
    • Validation Message Dialog?
    • Something like the errors and warning view?
    • Customizing built-in OCL Validation view?
  • Extra feature: Highlighting the problematic model elements in the model editor

Implementing OCL constraints

  • Developing the OCL constraints and well-formedness rules based upon the requirement list
  • Testing the newly implemented features and constraints

Idea: Function Block Constraint Language (FBCL)

  • How should we handle the constraints related to individual FB types?
  • How should we handle the semantic issues of individual FB types?
  • When creating a Function Block Type in 4diac IDE, users could specify constraints on the particular FB type using a declarative representation (not necessarily a textual DSL) or a graphical interface. E.g. something like MustHaveValue constraints or preventing loops on certain FB types)
  • The constraint elements could be saved in .fbt files. Once loaded, they could be translated to OCL constraints and additional Java code.

Back to the top