Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "ETrice/GSoC/2012/DiagramLayout Kieler"

(Basic Tentaive schedule)
m (Project Proposal: Adds google-melange project page URL)
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This project "Diagram Layout in eTrice with KIELER" aims at improving the Graphical User Interface of eTrice ( a project under the Eclipse Modelling Domain intended towards implementation of the ROOM modelling language) by providing automatic lay-outing of ROOM diagrams in it's graphical editors. The lay-outing algorithms being employed are available under the KIELER project, which provides a lot of infrastructure for configuration and execution of layouts in various graphical editors in eclipse (eg: GMF and Graphiti based editors).
+
'''eTrice''' is a project under the Eclipse Modelling Domain intended towards implementation of the ROOM modelling language. This project titled "'''Diagram Layout in eTrice with KIELER'''" aims at improving the Diagram Visualization in eTrice  by providing a new feature of automatic lay-outing of ROOM diagrams in it's graphical editors. The complete infrastructure for carrying out the automatic layout is provided by the '''KIELER''' project, which provides a huge support for configuration and execution of layouts in various graphical editors in eclipse (eg: GMF and Graphiti based editors).
  
 +
== Technologies Involved ==
 +
 +
A brief description of all the major technologies involved in this project is as follows :-
 +
#'''ROOM''' - ROOM('''R'''eal '''T'''ime '''O'''bject '''M'''odelling) is both an object-oriented modelling language and a development method specifically designed for dealing with large distributed real-time embedded software systems characterized by event-driven or, reactive behaviour.
 +
 +
#'''eTrice''' - eTrice is a project under Eclipse Modelling domain which provides an implementation of the ROOM modelling language in the following way:
 +
#*It provides a textual editor to express the ROOM models in a easy and clear DSL (made in Xtext).
 +
#*It provides two graphical editors(made in Graphiti) to diagrammatically represent and edit the structure and behaviour (hierarchical state machine) of the actors involved in the model. These diagrams just contain layout information and any changes made in the graphical editor are reflected in the textual model.
 +
#*It provides code generators for the ROOM model in a variety of target languages like Java, C, C++.
 +
#*It provides Runtimes which give basic infrastructure like messaging and debug support.which is implemented by eTrice
 +
#:The eTrice is the base project for this proposed development.
 +
#'''Graphiti''' - The platform in which graphical editors of eTrice are built
 +
#'''KIELER''' - The '''K'''iel '''I'''ntegrated '''E'''nvironment for '''L'''ayout '''E'''clipse '''R'''ich Client, or short KIELER, is a research project about enhancing the graphical model-based design of complex systems. The basic idea is to consistently employ automatic layout in all graphical components of the diagrams within the modeling environment. This opens up new possibilities for diagram editing, browsing, and dynamic visualizations (e.g. for simulation runs). Hence the focus of this project is the pragmaticsof model-based system design, which can improve comprehensibility of diagrams, improve development and maintenance time, and improve the analysis of dynamic behavior.
 +
#:The KIELER project provides the complete infrastructure for performing automatic layout within the proposed development.
 +
#'''Xtext''' - The framework defining the DSL used for textually representing models in eTrice
  
 
== Deliverables ==
 
== Deliverables ==
Line 24: Line 39:
 
#'''Integrating KIML with present graphical editors''', which is the basis for all further improvisation and enhancements.
 
#'''Integrating KIML with present graphical editors''', which is the basis for all further improvisation and enhancements.
 
#'''Designing of the interaction mechanisms''' such that the layout is performed automatically in certain situations, eg. making of a new actor and binding it with another in Structural Editor (or) defining a new state and connecting it to others in Behavioural Editor will automatically trigger lay-outing.
 
#'''Designing of the interaction mechanisms''' such that the layout is performed automatically in certain situations, eg. making of a new actor and binding it with another in Structural Editor (or) defining a new state and connecting it to others in Behavioural Editor will automatically trigger lay-outing.
#'''Investigating the other three KIELER sub-projects (namely KiVi, KSBasE and KLighD)''' and evaluating the specific requirements for integrating them into the editors(explained below).
+
#'''Investigating and Implementing KLighD''' into the eTrice editors. If time permits the other two KIELER sub-projects (namely KiVi, KSBasE) will also be investigated.
  
 
=== Timeline ===
 
=== Timeline ===
Line 35: Line 50:
 
A superficial schedule of the project would be as follow:
 
A superficial schedule of the project would be as follow:
  
*Before 2 May : Preparing the project Wiki and improving the understanding of the implementation process.</p>
+
*Before 2 May : Preparing the project Wiki and improving the understanding of the implementation process.
  
=====Before the beginning (Community Bonding Period)=====
+
=====Before the beginning (Community Bonding Period) -- completed =====
 
*2 May - 21 May :  Gathering the background knowledge as indicated by above sections(Background), Detailing of the schedule to make it more rigid and easily track-able.
 
*2 May - 21 May :  Gathering the background knowledge as indicated by above sections(Background), Detailing of the schedule to make it more rigid and easily track-able.
  
=====I Phase (Integrating KIML with present graphical editors)=====
+
=====I Phase (Integrating KIML with present graphical editors) -- completed =====
 
*14 May - 24June :  
 
*14 May - 24June :  
 
**Implementing the transformation of Hierarchical State Machine Diagrams to  KGraph meta-model instance.
 
**Implementing the transformation of Hierarchical State Machine Diagrams to  KGraph meta-model instance.
Line 47: Line 62:
 
**Implementing the transformation of KGraph instance back to the Structural Actor Diagrams and combining the above implementations to complete phase I with tests.
 
**Implementing the transformation of KGraph instance back to the Structural Actor Diagrams and combining the above implementations to complete phase I with tests.
  
=====II Phase (Designing of the interaction mechanisms)=====
+
=====II Phase (Designing of the interaction mechanisms) -- in progress =====
 
*25 June - 7 July :  
 
*25 June - 7 July :  
 
**Gathering information about the required situations for automatic layout triggering
 
**Gathering information about the required situations for automatic layout triggering
 
**Implementing layout triggering for the gathered situation
 
**Implementing layout triggering for the gathered situation
 
**Some more interaction mechanisms will be implemented after the Mid-Tern Evaluation
 
**Some more interaction mechanisms will be implemented after the Mid-Tern Evaluation
 +
 
*7 July - 9 July : Combining all implementations from Phase I and Phase II for preparing a stable version for mid-term evaluation.
 
*7 July - 9 July : Combining all implementations from Phase I and Phase II for preparing a stable version for mid-term evaluation.
 +
 
*9 July - 13 July : Mid-Term Evaluation
 
*9 July - 13 July : Mid-Term Evaluation
 +
 
*14 July -  15 July : Feedback reception and changes if required.
 
*14 July -  15 July : Feedback reception and changes if required.
  
=====III Phase (Integrating KiVi, KSBasE and KLighD into the editors)=====
+
*16 July - 22 July :  
*16 July - 23 July : Investigation of KiVi project to adapt the present editors for its integration (improvisation of the code).
+
**Gathering 'more' information about the required situations for automatic layout triggering
[ 24 July : Return back to the my institution (holidays end) ]
+
**Implementing layout triggering for the gathered situation
*25 July - 29 July : Investigation of KSBasE project and adapting the present code for its integration.
+
 
*30 July - 5 August : Investigation of KLighD project and adapting the present code for its integration.
+
*[ 23 July : Return back to the my institution (holidays end) ]
*6 August - 12 August : A backup week(if something runs out of schedule). If everything on time, code and Documentation review starts
+
 
 +
=====III Phase (Investigating KLighD and providing a basic integartion into the editors)=====
 +
*23 July - 29 July : Investigation of KiVi, KSBasE and KLighD projects(with special emphasis on KLighD)
 +
 
 +
*30 July - 12 August :  
 +
**Performimg the integartion of KLighD into the editors of eTrice.
  
 
=====Review phase=====
 
=====Review phase=====
Line 67: Line 90:
  
 
== Project Proposal  ==
 
== Project Proposal  ==
[http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/jayant/1 Click Here] to see the project proposal at GSoC's website .  
+
[http://www.google-melange.com/gsoc/project/details/google/gsoc2012/jayant/5665319561461760 Click Here] to see the project page and [http://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2012/jayant/5662278724616192 here] to see the project proposal at GSoC's website.
  
 +
== Plug-ins ==
 +
 +
For running the delivered plug-in (to perform layout in eTrice Diagrams), following KIELER plugins are required :
 +
 +
*de.cau.cs.kieler.core
 +
*de.cau.cs.kieler.core.kgraph
 +
*de.cau.cs.kieler.core.ui
 +
*de.cau.cs.kieler.kiml
 +
*de.cau.cs.kieler.kiml.graphiti
 +
*de.cau.cs.kieler.kiml.service
 +
*de.cau.cs.kieler.kiml.ui
 +
*de.cau.cs.kieler.klay.layered
 +
*de.cau.cs.kieler.core.kivi
 +
 +
The plugins can be fetched from the KIELER git repository. ([[#KIELER_Project_Links|link below]]).
 +
 +
Moreover, some google libraries are also required. They are:
 +
*com.google.guava (9.0.0)
 +
 +
It could be fetched from [http://search.maven.org/#browse%7C1134392170 here].
 +
 +
(For mentors) The delivered plug-in could be reviewed on the [https://git.eclipse.org/r/#/q/owner:%22Jayant+Gupta%22+status:open,n,z Gerrit Code review system].
  
 
== Useful Links  ==
 
== Useful Links  ==
Line 85: Line 130:
 
=== Plugin Development Links ===
 
=== Plugin Development Links ===
 
*[http://help.eclipse.org/indigo/index.jsp?nav=%2F2/ Eclipse Online Help]
 
*[http://help.eclipse.org/indigo/index.jsp?nav=%2F2/ Eclipse Online Help]
 +
 +
[[Category:eTrice]]

Latest revision as of 11:29, 26 September 2014

eTrice is a project under the Eclipse Modelling Domain intended towards implementation of the ROOM modelling language. This project titled "Diagram Layout in eTrice with KIELER" aims at improving the Diagram Visualization in eTrice by providing a new feature of automatic lay-outing of ROOM diagrams in it's graphical editors. The complete infrastructure for carrying out the automatic layout is provided by the KIELER project, which provides a huge support for configuration and execution of layouts in various graphical editors in eclipse (eg: GMF and Graphiti based editors).

Technologies Involved

A brief description of all the major technologies involved in this project is as follows :-

  1. ROOM - ROOM(Real Time Object Modelling) is both an object-oriented modelling language and a development method specifically designed for dealing with large distributed real-time embedded software systems characterized by event-driven or, reactive behaviour.
  1. eTrice - eTrice is a project under Eclipse Modelling domain which provides an implementation of the ROOM modelling language in the following way:
    • It provides a textual editor to express the ROOM models in a easy and clear DSL (made in Xtext).
    • It provides two graphical editors(made in Graphiti) to diagrammatically represent and edit the structure and behaviour (hierarchical state machine) of the actors involved in the model. These diagrams just contain layout information and any changes made in the graphical editor are reflected in the textual model.
    • It provides code generators for the ROOM model in a variety of target languages like Java, C, C++.
    • It provides Runtimes which give basic infrastructure like messaging and debug support.which is implemented by eTrice
    The eTrice is the base project for this proposed development.
  2. Graphiti - The platform in which graphical editors of eTrice are built
  3. KIELER - The Kiel Integrated Environment for Layout Eclipse Rich Client, or short KIELER, is a research project about enhancing the graphical model-based design of complex systems. The basic idea is to consistently employ automatic layout in all graphical components of the diagrams within the modeling environment. This opens up new possibilities for diagram editing, browsing, and dynamic visualizations (e.g. for simulation runs). Hence the focus of this project is the pragmaticsof model-based system design, which can improve comprehensibility of diagrams, improve development and maintenance time, and improve the analysis of dynamic behavior.
    The KIELER project provides the complete infrastructure for performing automatic layout within the proposed development.
  4. Xtext - The framework defining the DSL used for textually representing models in eTrice

Deliverables

The deliverables of the project would be :

  • Two fully-functional graphical editors for eTrice with automatic lay-outing features for diagrams using the KIELER framework :
    • one for modelling hierarchical Structures of actors
    • another for modelling hierarchical State Machine Diagram (behaviour) of actors.
  • User will be provided the following methods to use the feature:
    • A toolbar and menu action to trigger layout on the active diagram.
    • A "Layout" view for layout option configuration.
  • User Documentation for how to use these features in both the editors.
  • Developer's Documentation for explaining the current implementation ( to facilitate any changes to be made in future and re-usability of the present code )
  • Resources (proper interfaces) for further extending the features of the editors by using the KiVi, KSBasE and KLighD Frameworks (provided by KIELER).
  • Documentation for the above resources for facilitating the extension.
  • Tests for proving bug-freeness of the developed feature.


Project Implementaion

Phases of Development

The project implementation will be divided into three major phases :

  1. Integrating KIML with present graphical editors, which is the basis for all further improvisation and enhancements.
  2. Designing of the interaction mechanisms such that the layout is performed automatically in certain situations, eg. making of a new actor and binding it with another in Structural Editor (or) defining a new state and connecting it to others in Behavioural Editor will automatically trigger lay-outing.
  3. Investigating and Implementing KLighD into the eTrice editors. If time permits the other two KIELER sub-projects (namely KiVi, KSBasE) will also be investigated.

Timeline

Calendar

The following calendar shows the details of the various tasks to be completed and the deadlines during the project tenure :-

Basic Tentaive schedule

A superficial schedule of the project would be as follow:

  • Before 2 May : Preparing the project Wiki and improving the understanding of the implementation process.
Before the beginning (Community Bonding Period) -- completed
  • 2 May - 21 May : Gathering the background knowledge as indicated by above sections(Background), Detailing of the schedule to make it more rigid and easily track-able.
I Phase (Integrating KIML with present graphical editors) -- completed
  • 14 May - 24June :
    • Implementing the transformation of Hierarchical State Machine Diagrams to KGraph meta-model instance.
    • Implementing the transformation of KGraph instance to Hierarchical State Machine Diagrams.
    • Implementing the transformation of Actor Structural Diagrams of ROOM models to KGraph instance.
    • Implementing the transformation of KGraph instance back to the Structural Actor Diagrams and combining the above implementations to complete phase I with tests.
II Phase (Designing of the interaction mechanisms) -- in progress
  • 25 June - 7 July :
    • Gathering information about the required situations for automatic layout triggering
    • Implementing layout triggering for the gathered situation
    • Some more interaction mechanisms will be implemented after the Mid-Tern Evaluation
  • 7 July - 9 July : Combining all implementations from Phase I and Phase II for preparing a stable version for mid-term evaluation.
  • 9 July - 13 July : Mid-Term Evaluation
  • 14 July - 15 July : Feedback reception and changes if required.
  • 16 July - 22 July :
    • Gathering 'more' information about the required situations for automatic layout triggering
    • Implementing layout triggering for the gathered situation
  • [ 23 July : Return back to the my institution (holidays end) ]
III Phase (Investigating KLighD and providing a basic integartion into the editors)
  • 23 July - 29 July : Investigation of KiVi, KSBasE and KLighD projects(with special emphasis on KLighD)
  • 30 July - 12 August :
    • Performimg the integartion of KLighD into the editors of eTrice.
Review phase
  • 13 August - 19 August : Final Review of the Code and documentation for final submission.

Project Proposal

Click Here to see the project page and here to see the project proposal at GSoC's website.

Plug-ins

For running the delivered plug-in (to perform layout in eTrice Diagrams), following KIELER plugins are required :

  • de.cau.cs.kieler.core
  • de.cau.cs.kieler.core.kgraph
  • de.cau.cs.kieler.core.ui
  • de.cau.cs.kieler.kiml
  • de.cau.cs.kieler.kiml.graphiti
  • de.cau.cs.kieler.kiml.service
  • de.cau.cs.kieler.kiml.ui
  • de.cau.cs.kieler.klay.layered
  • de.cau.cs.kieler.core.kivi

The plugins can be fetched from the KIELER git repository. (link below).

Moreover, some google libraries are also required. They are:

  • com.google.guava (9.0.0)

It could be fetched from here.

(For mentors) The delivered plug-in could be reviewed on the Gerrit Code review system.

Useful Links

eTrice Project Links

KIELER Project Links

Graphiti Project Links

Plugin Development Links

Back to the top