Difference between revisions of "PRMS Report"
From Suhrid.net Wiki
Jump to navigationJump to search(17 intermediate revisions by the same user not shown) | |||
Line 28: | Line 28: | ||
* Introduce ALL concepts and technologies that are critical to understanding the tool. | * Introduce ALL concepts and technologies that are critical to understanding the tool. | ||
* Model driven engineering - tasks involved. Tasks constitute a workflow. | * Model driven engineering - tasks involved. Tasks constitute a workflow. | ||
+ | * Workflows in general - BPM workflows, Model driven engineering workflows.JBPMN | ||
+ | * Build tools - Visualize Build Tools - ANT, VizAnt, Ant Explorer, Ant Utility | ||
+ | * Other MDE Workflows - OpenArchitectureWare, ModelBus Atlas MegaModel Management | ||
* How does Epsilon handle it ? Internal architecture of Epsilon Workflow. | * How does Epsilon handle it ? Internal architecture of Epsilon Workflow. | ||
+ | * Talk about EMC Layer - this will be useful later - to explain how powerful it is to directly use EMF API or DOM API. | ||
* ANT, Java Modules, Eclipse Launch configuration, Working outside Eclipse. | * ANT, Java Modules, Eclipse Launch configuration, Working outside Eclipse. | ||
* Provide a general introduction to build management, concept of dependency, task ordering, conditional ordering, task failures, transactions. | * Provide a general introduction to build management, concept of dependency, task ordering, conditional ordering, task failures, transactions. | ||
Line 67: | Line 71: | ||
* Generate Java Module code ? Or Generate ANT XML Code ? | * Generate Java Module code ? Or Generate ANT XML Code ? | ||
* ANT XML - To support legacy use case and avoid complexity of Java module code. | * ANT XML - To support legacy use case and avoid complexity of Java module code. | ||
+ | * EEF Model manipulation - Instead of editing code, was done using EOL scripting. | ||
* Using EGL: | * Using EGL: | ||
** Protected regions: Merge engine | ** Protected regions: Merge engine | ||
Line 88: | Line 93: | ||
= Implementation = | = Implementation = | ||
+ | * Development methodology used ? - Justify. | ||
* ECore diagram editor was used to specify the metamodels. | * ECore diagram editor was used to specify the metamodels. | ||
* GMF annotations were made in the editor. | * GMF annotations were made in the editor. | ||
Line 106: | Line 112: | ||
= Evaluation = | = Evaluation = | ||
− | * | + | * Where to list identified enhancements for the project ? |
− | * | + | * EWE itself - support conditional statements. |
− | * | + | * EuGENia enhancements identified - bugs. |
− | + | * Integrate EEF within EuGENia MDE process. | |
− | + | * Contribution of EWE itself <- In Evaluation section ? | |
− | * | ||
− | * | ||
+ | == Project Description == | ||
* Evaluation will proceed by applying the new contributions to the examples of existing workflows, and demonstrating differences with respect to functionality and development process. | * Evaluation will proceed by applying the new contributions to the examples of existing workflows, and demonstrating differences with respect to functionality and development process. | ||
Line 120: | Line 125: | ||
** Ease of modifiability of existing manual workflows using the visual editor. | ** Ease of modifiability of existing manual workflows using the visual editor. | ||
** Ease of use for first time users in building workflows and understand Epsilon Workflow language. | ** Ease of use for first time users in building workflows and understand Epsilon Workflow language. | ||
+ | |||
** Development process refers to what ? | ** Development process refers to what ? | ||
* An analysis of the ways in which Epsilon users construct and use workflows. | * An analysis of the ways in which Epsilon users construct and use workflows. | ||
* Three improvements to the prototypical Epsilon workflow language to support visualisation and automatic code generation. | * Three improvements to the prototypical Epsilon workflow language to support visualisation and automatic code generation. | ||
* A comparison of the prototypical and improved versions of the Epsilon workflow language. | * A comparison of the prototypical and improved versions of the Epsilon workflow language. | ||
+ | |||
+ | == Evaluating the Artefact == | ||
+ | |||
+ | * Test cases as a method of evaluation? | ||
+ | |||
+ | * Manual testing and verifications against requirements. | ||
+ | * Black box testing for evaluating against user requirements. | ||
+ | * Test case with a description against each FR and NFR. Process of executing, screenshots etc. | ||
+ | |||
+ | * White box testing: | ||
+ | * Cite EUnit paper about Difficulty in performing white box testing for MDE tasks. | ||
+ | * Develop some Sample EUnit cases. | ||
+ | |||
+ | |||
+ | === User Evaluation === | ||
+ | |||
+ | * Similar to Case Study? | ||
+ | * Explain why it makes more sense for an actual user evaluation rather than a self performed case study. | ||
+ | ** Self case study : usability aspects difficult to evaluate due to intimacy with tool. | ||
+ | * Informal live User Evaluation: Perform series of exercises designed to evaluate usability of new tool. | ||
+ | * Discuss results of experiments ? (Describe experiments/exercies here as well). | ||
+ | * Ethical considerations. | ||
+ | |||
+ | == Evaluating the metamodel design == | ||
+ | |||
+ | * Expectation | ||
+ | * Result | ||
+ | * Evaluation | ||
+ | |||
+ | == Evaluating the code generator == | ||
+ | |||
+ | == Evaluating the code visualizer == | ||
+ | |||
+ | == Evaluating the development process == | ||
+ | |||
+ | * Huge productivity benefits. | ||
+ | * Understanding complex UI frameworks avoided. | ||
+ | * No of classes and code gneerated enormous. | ||
+ | * Focues on higher level abstraction - code gen, viz, validation would not have been possible. | ||
+ | |||
+ | * Significant time was spent - tweaking model, generating code. | ||
+ | * Finding out where in code modifications need to take place. | ||
+ | * Significant time was spent in researching EEF integration with EuGENia generated GMF editor. Trial/error, forum posting | ||
+ | |||
+ | = Conclusions = | ||
+ | |||
+ | * Provide a concise summary of the whole project. | ||
+ | * Making accurate predictions of results that would be obtained by applying the present work in new areas. | ||
+ | ** Extend it as a GMF editor for any complex application that needs to use Ant as a basis..g. JBPM - JBoss. | ||
+ | ** Use it to visualise complex Ant builds within Eclipse IDE. | ||
+ | ** More ? | ||
+ | |||
+ | * FURTHER WORK here or in Evaluation. | ||
+ | * Lessons learnt, personal reflection. |
Latest revision as of 08:10, 16 August 2012
Contents
Abstract
- This report developes the idea of a visual graphical editor for Epsilon and the process of developing it.
- A fully working epsilon workflow builder and visualizer is also presented that helps users to compose Epsilon workflows and construct visual representations from textual ones.
Statement of Ethics
- Informal user survey for requirements.
- Formal user survey to evaluate the tool ?
Introduction
Motivation
- Why EWE ? What is the need ?
- Workflow inherently visual - flow of order of tasks.
- e.g. BPM tools all provide editors.
- MDE is essentially a sequence of steps from start to finish.
- Other model management languages, frameworks tools provide it as well. (Atlas, OpenAW, etc)
- Therefore Epsilon, needs one too.
Method
- Documents the process of building such a tool using MDE techniques and Epsilon itself.
Literature Review
- Introduce ALL concepts and technologies that are critical to understanding the tool.
- Model driven engineering - tasks involved. Tasks constitute a workflow.
- Workflows in general - BPM workflows, Model driven engineering workflows.JBPMN
- Build tools - Visualize Build Tools - ANT, VizAnt, Ant Explorer, Ant Utility
- Other MDE Workflows - OpenArchitectureWare, ModelBus Atlas MegaModel Management
- How does Epsilon handle it ? Internal architecture of Epsilon Workflow.
- Talk about EMC Layer - this will be useful later - to explain how powerful it is to directly use EMF API or DOM API.
- ANT, Java Modules, Eclipse Launch configuration, Working outside Eclipse.
- Provide a general introduction to build management, concept of dependency, task ordering, conditional ordering, task failures, transactions.
- How ANT provides some of these features as a build tool. How Epsilon uses ANT as an architecture - quote from Epsilon ANT paper.
- Introduce idea of domain modeling. Separate the concern of design and architecture. This is the CORE idea.
- Eclipse EMF technologies. How EMF supports Domain Modeling. Give a simple Library example.
- Library domain is expressed. An Editor for the domain is generated - but uses unique architecture. e.g. Adapter, Factory and Command patterns - which WE never specified while modeling the domain.
- Make sure this concept is well understood. MDE in general and how EMF tools support MDE with practical examples.
- Eclipse graphical technologies GEF -> SWT, JFace.
- Eclipse GMF as a bridge between GEF and EMF.
- How GMF is Model based and Generative
- How it fits well for Epsilon since both are based on EMF.
- Introduction to EuGENia.
Requirements
- Initial project description
- Asking Epsilon users to comment on forum
- Discussion with Supervisor
- Self proposed requirements
Design
- Eclipse vs NonEclipse
- EMF in built editor vs (GMF/Graphiti)
- GMF vs Graphiti
- GMF - EuGENia support (Generate GMF vs manual GMF model creation), in house expertise with GMF models, EuGENia authors based in York, customization.
- EuGENia GMF support for EVL and error/warning markers.
ECore metamodel design
- Represeting ANT concepts as GMF nodes for e.g. Project, Target.
- Using concept of depends and follows.
- Accurate modeling of ANT structure - allows operations to be performed at the higher Task level as opposed to lower levels - such as EOLTask etc.
Scripting design choices
- Using Java vs using Epsilon languages
- Epsilon :- reflective features. Easy model navigation.
- Generate Java Module code ? Or Generate ANT XML Code ?
- ANT XML - To support legacy use case and avoid complexity of Java module code.
- EEF Model manipulation - Instead of editing code, was done using EOL scripting.
- Using EGL:
- Protected regions: Merge engine
- XML Formatter
- Full reflective support.
Editor Design
- Task to GMF node mapping design choices (Which elements in the metamodel should be visualized)
- Compartments vs Property views - Too boxy. So rejected.
- Property Sheet
- Property Sheet implementation choices : Custom SWT code (rejected/knowledge of SWT - Time constraints: Used by Ecore editor)
- EEF as the choice.
- EEF: new technology, never been integrated with GMF before.
- Challenges in customising EEF - Poorly documented code base.
Parsing Design
- XML Parsers vs EOL vs ETL
Implementation
- Development methodology used ? - Justify.
- ECore diagram editor was used to specify the metamodels.
- GMF annotations were made in the editor.
- What all GMF annotations were used.
- How GMF models were customized after generation.
- EEF implementation.
- How EEF was plugged-in.
- Customizing code-generation properties - Namespace, package structure, documentation.
- Generated code customization: For e.g. disabling unwanted creation tools.
- EGL implementation.
- EVL implementation.
- Parsing implementation
- EOL vs ETL
- ETL was chosen - why ?
- ETL implementation choice - Reflective vs Declarative (Balance dealing with future change vs ease of code)
Evaluation
- Where to list identified enhancements for the project ?
- EWE itself - support conditional statements.
- EuGENia enhancements identified - bugs.
- Integrate EEF within EuGENia MDE process.
- Contribution of EWE itself <- In Evaluation section ?
Project Description
- Evaluation will proceed by applying the new contributions to the examples of existing workflows, and demonstrating differences with respect to functionality and development process.
- Difference in functionality between automated and manual methods.
- Ease of usability in composing workflows.
- Ease of modifiability of existing manual workflows using the visual editor.
- Ease of use for first time users in building workflows and understand Epsilon Workflow language.
- Development process refers to what ?
- An analysis of the ways in which Epsilon users construct and use workflows.
- Three improvements to the prototypical Epsilon workflow language to support visualisation and automatic code generation.
- A comparison of the prototypical and improved versions of the Epsilon workflow language.
Evaluating the Artefact
- Test cases as a method of evaluation?
- Manual testing and verifications against requirements.
- Black box testing for evaluating against user requirements.
- Test case with a description against each FR and NFR. Process of executing, screenshots etc.
- White box testing:
- Cite EUnit paper about Difficulty in performing white box testing for MDE tasks.
- Develop some Sample EUnit cases.
User Evaluation
- Similar to Case Study?
- Explain why it makes more sense for an actual user evaluation rather than a self performed case study.
- Self case study : usability aspects difficult to evaluate due to intimacy with tool.
- Informal live User Evaluation: Perform series of exercises designed to evaluate usability of new tool.
- Discuss results of experiments ? (Describe experiments/exercies here as well).
- Ethical considerations.
Evaluating the metamodel design
- Expectation
- Result
- Evaluation
Evaluating the code generator
Evaluating the code visualizer
Evaluating the development process
- Huge productivity benefits.
- Understanding complex UI frameworks avoided.
- No of classes and code gneerated enormous.
- Focues on higher level abstraction - code gen, viz, validation would not have been possible.
- Significant time was spent - tweaking model, generating code.
- Finding out where in code modifications need to take place.
- Significant time was spent in researching EEF integration with EuGENia generated GMF editor. Trial/error, forum posting
Conclusions
- Provide a concise summary of the whole project.
- Making accurate predictions of results that would be obtained by applying the present work in new areas.
- Extend it as a GMF editor for any complex application that needs to use Ant as a basis..g. JBPM - JBoss.
- Use it to visualise complex Ant builds within Eclipse IDE.
- More ?
- FURTHER WORK here or in Evaluation.
- Lessons learnt, personal reflection.