Showing posts with label Eclipse. Show all posts
Showing posts with label Eclipse. Show all posts

Friday, October 24, 2014

Sirius Gallery: 20 cool and noteworthy examples

We have added a new Gallery page today on the Sirius web site:

http://eclipse.org/sirius/gallery.html

This page presents 20 cool and noteworthy modelers already created with Sirius in various domains: Systems Engineering, Software Development, Business Configuration, etc.


Configuration of plastic products manufacturing

Capella Systems Engineering workbench

Modeling of Android mobile applications

Configuration of home automation systems


The list is not complete ... since we don't know or can't publish all what is done with Sirius, but it will be completed soon with several other examples we have in store.

So, if you also did something that could be published on this page, you can submit a short description and some nice screenshots here :

https://bugs.eclipse.org/bugs/show_bug.cgi?id=448492

Friday, October 25, 2013

Launching Sirius

At Obeo, the last weeks have been very busy to launch Sirius.


Now it's done!

Sirius is here with:
  • An updatesite available from the Eclipse infrastructure
  • The integration in the Luna release train
  • A brand new website: www.eclipse.org/sirius
  • New videos


The team is ready for EclipseCon Europe 2013!

Tuesday, September 4, 2012

ESA Case-Study

Modeling Satellites Software Architecture, a European Space Agency research initiative


Would you develop a satellite application the same way you develop a «classic» application ?

Of course not!

When developing an application embedded in a satellite, a software engineer has to deal with many additional constraints:
1. The software platform is constrained by so many factors (energy consumption, temperature, scarce computational power and memory size, etc) that general purpose methodologies are not always applicable.
2. Computation time and duration must be highly predictable in order to satisfy the complex orchestration of actions performed by the satellite.
3. As failures may lead to loss of mission, catastrophic damages or loss of lives, the quality of the software drives the development process



In order to support these constraints, the European Space Agency (ESA) has initiated an investigation for the realization of  a software reference architecture (SRA) for on-board software. Based on solid scientific foundations and industrial feedback, the SRA aims at providing a common framework which can be reused for multiple missions in the space domain.




Marco Panunzio at the University of Padova (Italy) contributed to the investigation on the SRA during is PhD and later his post-doc. In his work, he defined the key principles, formulated a component model compliant with these principles, and developed a graphical modeling tool based on Eclipse and Obeo Designer for the development of on-board software compliant with the SRA.

The results were periodically submitted to a working group comprising space stakeholders, for assessment and refinement.

The cornerstone principle of the SRA is separation of concerns, which is used in order to separate different aspects of software design (functional and non-functional concerns, actor's area of expertise, etc) and address them with the best-fit formalisms, tools and verification techniques. Other key principles of SRA are composability, compositionality, property preservation and composition with guarantees.

These principles have driven Marco Panunzio to the definition of a component model which supports the concept of Design Views in order to decompose the global architecture of the system into more detailled constituents. Each Design View represents self-contained concerns relevant to a given stakeholder. A Design View can define its own rules (visualization and modification rights, graphical representation, constraints, verification, etc).

At the present state of the investigation, the SRA comprises six Design Views:
·      Data
·      Component
·      Behavioural
·      Hardware/Deployment
·      Non Functional
·      Implementation/Analysis

It is also complemented by domain-specific views. For example, a view has been implemented for the PUS (Packet Utilization Standard), to define the use of services which involve the transfer of telemetry and telecommand data between the ground segment and on-board applications.

 SRA Design Views


To create a satellite application according to this component model, a tool has been developed in Eclipse. It supports the seven aforementioned views via 19 kinds of diagrams and 8 kinds of tables. These views are completed by validation rules and specific actions (for intensive computations).

To develop these views, Marco Panunzio selected EMF (Eclipse Modeling Framework) and Obeo Designer. The resulting editor was later adopted and refined in subsequent ESA-funded studies.

Two strategies have been considered:
·      UML with a specific profile
·      a DSL (Domain Specific Model)

Because of the gap between the concepts of the SRA component model and those defined by UML, using UML in this context would have introduced unnecessary complexity. That's the reason why an Ecore metamodel (called SCM) implementing the component model concepts was developed. With this approach, the tool natively supports the component model of the SRA.

Then, to implement the diagrams which allow the user to edit and visualize the components, Obeo Designer was chosen.

Another alternative would have been to directly use GMF. But implementing 19 specific diagrams would have consumed most of the effort to the detriment of realizing and perfectioning the approach.

On the contrary, with Obeo Designer, the design views have been implemented much faster with a better support for extensibility and incremental adaptations. Most of all, it permitted fast iterations with stakeholders in the prototypal phase for delicate points of the methodology.

Below, you can see some examples of the diagrams created with Obeo Designer.

  • Hardware diagram: declaration of the processing units, sensors, actuators, devices and the interconnections between them
Hardware diagram




  • Processor board diagram: declaration of the internals of a processor board in terms of processors, processor cores, cache and memory banks.


  • Processor board diagram



  • PUS component instance diagram: monitoring and reporting of on-board parameters, commanding of on-board operations from the ground segment, etc…

  • PUS component instance diagram


    This initiative is a concrete contribution to the development of an on-board software reference architecture for future satellite systems.

    Relying on a complete component model and an associated graphical editor, SRA is currently used by several ESA-funded studies which are consolidating and validating the approach and the tools.

    This post is based on Marco Panunzio's document "Definition and realization of an on-board software reference architecture" available on www.obeonetwork.com (registration required).

    Thursday, May 31, 2012

    Modeling P&C Insurance Products, the MAIF Case-Study

    EMF (Eclipse Modeling Framework) is mostly used to create model-driven tools for software or system engineers. Here, in this case-study, an EMF-based tool is directly used by business domain experts to create models which are deployed and interpreted at runtime.

    MAIF is a french insurance company with 2.8 millions of insured members (ranked 5th in number of insured vehicules and habitations in France).

    They needed a tool to get a structured, centralized and unified vision of the P&C (property and casualty) products (IARD in french for Incendie, Accidents et Risques Divers).

    The goal was to provide to insurance business experts a dedicated tool to specify their marketing offers and the caracteristics of their products. 

    The solution is a product catalog composed of:
    • a product workbench (based on Eclipse) to define and administrate the products structure
    • a repository to store the models
    • a business rules engine (based on JRules) to manage and execute the rules related to the products
    Accessible via services the catalog is used to manage production version of contracts and claims.


    The structure of the catalog, developed with the assistance of Capgemini and Obeo, is based on an Ecore model which defines the P&C products concepts (catalog, product, coverage, risk object, provision, option, etc) and the way they can be composed.



    The product workbench is used by MAIF P&C experts to define the products and administrate their life-cycle.


    It provides graphical representations to create, modify, consult, version and validate the products.



    These GMF diagrams are graphical representations on EMF models describing each product. They have been specified with Obeo Designer

    They selected Obeo Designer in order to speed-up the definition of the important number of GMF views to develop and to facilitate their maintenance.

    Additional developments have been done in Eclipse to finalize the workbench:
    • RCP customization to simplify the workbench (menus, toolbars and views) according to the kind of users
    • integration of LDAP to authentificate the users and manage their roles (product manager, validator, ...)
    • integration of SVN to manage collaborative work on products

    The models created by the workbench are directly consumed by the IT system through distributed services (progressively remplacing legacy ones).

    Without the need of specific IT developements, the deployment of new products is reduced from several weeks to about one week.

    This new approach increases the agility of P&C products deployment by reducing the gap between business experts and IT.

      You can find a more detailed description of this case-study, written by MAIF, on www.obeonetwork.com, in the case-studies section of Obeo Designer group (registration required).



      Thursday, May 24, 2012

      Creating a new Ecore model with Obeo Designer 6.0

      One of the cool things coming with Obeo Designer 6.0 is the new "Ecore Modeling Project" creation wizard.


      It automatically creates an EMF project containing an Ecore model and its corresponding genmodel. This project is also created with the Modeling Project nature and a Obeo Designer representation file (.aird) containing a diagram (depending on the viewpoint selected with the wizard).



      This diagram is automatically opened and you can directly start graphically design your Domain Model.


      Once you have defined your packages, classes, attributes, relations, ... you just have to open the genmodel and generate the EMF code. Of course you can customize the genmodel to introduce your own generation choices.

      This video demonstrates this new wizard on a simple Ecore model.


      Monday, April 16, 2012

      Performing multi-viewpoint analysis : Thales case-study

      From now, on this blog, my posts mainly described case-studies where model-driven engineering (MDE) has been used to produce code or modernize existing software systems.

      Another domain where MDE is widely used is System Engineering. In this domain, Thales has acquired a strong experience with the Arcadia approach.

      Arcadia is a model-based architecture engineering approach which has been tooled up in Eclipse with Melody Advance, a generic workbench developped  by Thales Engineering & Process Management with the assistance of Obeo.

      Based on EMF and GMF, Melody Advance allows other Thales entities to create their own modeling tools. These modeling tools are declared with a dedicated DSL which is interpreted to dynamically provide the corresponding GMF modeling editors coming with ergonomic facilities and supporting large models.

      Arcadia has been presented at MD Day 2011 by Jean-Luc Voirin, the System and Software Engineering Director of Research & Technology at Thales Aerospace & Mission Systems Division.

      This approach has several objectives:
      • To perform early validation of key architectural aspects to decrease the rework in design and production
      • To improve the quality of architecture by taking better descisions regarding complex but necessary architectural trade-off
      • To capitalize on both product definition and know-how by supporting negotiation and compromise between stakeholders

      For Arcadia, Thales has integrated and extended several standards such as AADL, DoDAF, NAF, UML or SysML and added specific viewpoints to support:
      • Operational analysis
      • Functional analysis
      • Logical architecture
      • Physical architecture
      • Non functional constraints
      • Non functional trade-off
      • Transition to software or hardware

      Arcadia tooling provides several editors for these viewpoints and allows the system architects to graphically design and analyze a system.


      System architects can evaluate their candidate architectures againts industrial constraints (cost & schedule, performance, safety, maintenability, product policy, etc). For each kind of constraint, layers can be applied on diagrams to graphicaly highlight the violated constraints.


      Thanks to Melody Advance technology, this tool is easily customizable: Thales can define its own graphical representations and validation rules.

      Initially developped to target signal processing, data processing and information systems, Thales detected much larger fields where Arcadia could be used such as electrical power systems or thermal systems.

      For example, it can be used to work on several interleaved multi-physics models of a new airplane:
      • a Power Model describing electrical generators, loads, converters, etc
      • a Thermal model describing turbines, compressors, valves, etc
      • a Command & Control model describing interfacing units, computing unit, data, etc



      Specific viewpoints on these models can help the enginers to evaluate the solution architecture and detect problems before the IVVQ (Integration, Verification, Validation, Qualification) phase :
      • power and thermal performance depending on flight phase consumption
      • redundancy rules
      • failure scenarios and propagation
      • reconfiguration issues
      • early identification of spatial arrangement constraints impacting the architecture
      • etc
      For Jean-Luc Voirin, one of the main benefit of this approach is to avoid exhaustive modelling. With the multi-viewpoint tooling, the architects can adjust modelling effort on major engineering issues.

      The slides of the talk given by Jean-Luc Voirin can be found on Obeo Network (registration required).


      Tuesday, June 28, 2011

      Eclipse Demo Camp in Nantes

      Thursday 30/06 in Nantes, AtlanMod, Obeo and Mia-Software will organize an Eclipse Demo Camp.

      The program is rich with the presentation of seven projects coming with the Indigo Simultaneous Release.


      Four of these projects are developped in Nantes!
      • MoDisco (Model-Driven Modernization)
      • ATL (Model to Model transformation)
      • EMF Facet (Non-intrusive metamodel extensibility)
      • EEF (Model extended editors)

      The three other projects which will be presented are

      The Demo Camp will start at 6:00 PM at Ecole des Mines de Nantes.


      Monday, June 20, 2011

      Step in Toulouse

      This week, I'll be in Toulouse, the aerospace city.

      Wednesday (June 22), we will start the Obeo Designer Roadshow, a serie of six steps in six different cities (Toulouse, Brest, Nantes, Paris, Niort and Lille).


      Each step of this roadshow will be organized in two parts: the morning will be dedicated to a presentation of the version 5.0 of Obeo Designer, presentations of case-studies by users and a panel to discuss about graphical DSLs.

      The afternoon will be more technical with Hands-On sessions: we have asked to each person to come with a case, and we will help them to implement their own graphical designer during the afternoon.

      In Toulouse, the case-studies will be presented by Pascal Roques of PRFC and Tristan Faure of Atos Origin.

      Thursday (June 23), I will attend Eclipse Party (the Indigo Demo Camp) and give a talk about JavaEE code generation with EEF and Acceleo.


      This Demo Camp, will be very intensive with two tracks and a lot of interesting talks (Topcased, Koneki, Closure, Birt, RCP, eGit, SWTBot, e4, etc).

      There will also be a specific session about feedback from EclipseCon 2011 (XText, Orion, CDT, Tycho).

      Finally, it will end with a panel about Eclipse and its ecosystem, animated by Gaël Blondelle of Obeo.

      Monday, February 21, 2011

      Creation of a graphical designer in 5 minutes

      After one month at Obeo, the serious things have started for me ;-)

      I have spent the last two weeks discovering Obeo Designer 5.0 and working on the videos which will be available on the new website (www.obeodesigner.com). This new version is going to be officially released in ten days, so each minute counts!

      Obeo Designer is a tool which allows to create specific modelers in Eclipse. It is based on EMF, GMF and Acceleo.

      I have been very impressed by the ease and rapidity for creating my first designer. Of course I'm familiar with Eclipse and EMF, but I had never developped with GMF before. In one day, starting from scratch, I have been able to create my first designer, with several layers (to optionally show or hide some kinds of relations) and a table (to represent my model with lines).

      For the demos, we have volontarily chosen a very simple example to illustrate the Obeo Designer approach. With this example, the concept of Family (men and women related by parental relationships), each Obeo Designer functionality can be easily described.

      I have posted the first video today. It is a first overview which explains, in five minutes, how to create a first modeler with zero code and zero deployment.




      Other videos will come soon to demonstrate the other functionnalities. Stay tuned!

      Tuesday, November 9, 2010

      An Eclipse Modeling Week

      Last week, I participated to Eclipse Summit Europe 2010 in Germany.

      I started tuesday with a talk at the Eclipse Modeling Symposium (you can read my previous post: Using EMF to represent Eclipse 3.x plug-ins , and a complete summary of the symposium on Ed Merks' blog).

      Then thursday, with Grégoire Dupé, I presented EMF Facet, the new Eclipse/Modeling project we have created to allow dynamic extensions of existing EMF models.

      We have finished the week friday, at Eclipse Day Paris, by a presentation of MoDisco, the Eclipse/Modeling project dedicated to Model-Driven Software Modernization.

      MoDisco at Eclipse Day Paris 2010

      Now, we can come back to a normal activity ... until MD Day 2010, the 25th of November in Paris.

      Thursday, September 23, 2010

      EMF Facet project has been created

      EMF Facet is a new Eclipse/Modeling project which will provide solutions to extend existing metamodels without changing them. It has been provisioned recently in EMFT by Greg Dupé of Mia-Software, the co-leader of the project.



      With EMF Facet, it will be more easy to dynamically extend and customize a tool based on EMF.

      The idea is to allow defining new attributes, new relations and new types in a non-intrusive way (you can read this older post about EMF Facet).

      This mechanism has already been developped in the MoDisco project (the Eclipse/Modeling project dedicated to Software Modernization). It is completed by a QueryManager component which allow executing queries on a EMF model independently from the query technology (bridges for OCL, Java and XPath are already available). As it is independent from Software Modernization purposes, the corresponding code is going to move to this new EMF Facet project.

      After some refactoring, it will be enriched with other components (such as customizable widgets to display extended EMF models). First version is planned to be ready in June 2011 for Indigo, the next Eclipse release. Before this date, early versions will be available with intermediate Indigo milestones.

      To know more about this project, don't miss the talk EMF Facet: a Non-Intrusive Metamodel Extension Tooling, Thursday, the 4th of November during Eclipse Summit Europe 2010, in Germany.

      Thursday, June 24, 2010

      How to install MoDisco with Helios?

      This year, for the Helios release, the Modeling Package offers a very simple way to install the Modeling components.

      The Modeling Package is one of the Eclipse pre-packaged distributions available from the download page (http://www.eclipse.org/downloads/).


      Once you have downloaded and launched this package, just click on the "Install Modeling Components" button from the toolbar.


      This button opens a window displaying all the available Helios Modeling components. Select MoDisco and click on the Finish button.


      A wizard appears to display all the MoDisco components which will be installed.


      Click on Next, then click on the "I accept the terms of the licence agreement" to finish the installation.


      Restart Eclipse and it's done! You have now access to the features provided by MoDisco 0.8.

      Some of these features are directly available to manipulate or create EMF models, without having to write a line of code:
      In addition, as a platform for Software Modernization projects, MoDisco also provides a lot of components to help you in the development of model-driven reverse-engineering tools.

      Enjoy!

      Tuesday, June 22, 2010

      Using EMF to control Eclipse plugins development rules

      This week I am in Minneapolis to attend an OMG Technical Meeting.


      Today I participated to the 2nd Eclipse & OMG Symposium where I talked about MoDisco and how we support the specifications defined by ADM, the OMG task force working on Software Modernization. I presented an example where we use KDM (Knowledge Discovery Metamodel) and SMM (Structured Metrics Metamodel) to control the quality of Eclipse plugins.

      We wanted to check automatically some rules which are mandatory by the yearly synchroneous release:
      • Version number ends with « qualifier »
      • Source code must use ICU4J classes
      • The project must contain an « about.html » file
      • Packages name should start with the plug-in Id
      • Plug-in must not contain JARs files
      • Plug-in should contain only one « message.properties » and « Message.java » files
      We also wanted to check some rules that we had defined internally at Mia-Software:
      • “PLUGIN_ID” variable of “Activator.java” should be initialized with the plug-in Id
      • Plug-in Id and Project name should be equal
      • «Bundle-Vendor» property value of « MANIFEST.MF » should be « %providerName »
      • « plugin.properties » should declare a « providerName » property
      • «Bundle-Name» property value of « MANIFEST.MF » should be « %pluginName »
      • « plugin.properties » should declare a « pluginName » property
      Of course, we could have implemented these rules by using the APIs provided by the plugins already provided by Eclipse (org.eclipse.core, org.eclipse.pde, org.eclipse.pde, etc). But all these APIs are not homogeneous, and it is not always easy to find the right API to use. That's why we decided to experiment an other approach.

      Our idea is to use these APIs only to create EMF models of the plugin. Then, once the models are created, we can implement the rules by using only EMF APIs.


      In our case, we have used MoDisco to create seven EMF models:
      • A KDMSource model describing the organization of the plugin project (files and directories)

      • A Java model describing the Java source code of the plugin
      • A Manifest model to describe the content of the MANIFEST.MF file
      • Two XML models to describe the content of the .project and .classpath files
      • Two KDMCode models to describe the content of the plugin.properties and the build.properties files
      These models contain all the information required to check the rules listed below.

      Rather than directly displaying the violations found in an Eclipse plug-in into the Eclipse Problems View, we use an SMM model to represent the result of the analysis. Then, we have developped a generic tool which displays each rule violation contained in this SMM model into the Eclipse Problems View.


      The benefit of this approach is that you just have to know EMF APIs to implement the rules, or use any EMF-compliant tool (such as OCL, ATL or QVT). Another benefit is that the result (the SMM model) is independent from how you want to deliver it to the user. Here we have injected the violations into the Eclipse Problem View, but we could have generated an Excel file or populated a tool such as Sonar.

      I have still some little things to improve in this plugin, and I'll try to to commit it this summer as a use-case in MoDisco.

      Meanwhile, the complete presentation is available on slideshare.


      Monday, April 26, 2010

      EMF Facet, a new project for model customization and extensibility

      How to dynamically extend and combine existing Ecore definitions without having to modify them?

      EMF Facet, a new project we have proposed to create under EMFT, will propose dynamic extension mechanisms for all EMF-based tools exposing a view on a model:
      • Navigation tools (browser, navigator, etc);
      • Graphical modeling tools;
      • Code or documentation generation (M2T) tools;
      • Model-to-model transformation (M2M) tools.

      Our proposition provides a solution to introduce new viewpoints (or "facets") on existing models:

      • Extending an existing metamodel (Ecore model) in a non-intrusive way by adding new types, attributes, operations and relations. New relations could be used to compose several models by linking their elements.
      • Computing an extension by executing queries against an existing model; queries will be implemented by making use of existing query mechanisms (e.g. considering Java, ATL, EMFQuery, Xpath, etc)
      The Query "subClassifiers" visible as a "virtual" relation on Class

      Some of these mechanisms have already been developped in the MoDisco project. But, as they could be reused by tools not related to software modernization (the scope of the MoDisco project), we have decided to contribute the corresponding components to EMF Facet.

      In a previous post, I have presented these components (Facet Manager and Query Manager).

      In another post, I have also illustrated how Facets can be used to extend the Java metamodel to highlight JUnit concepts.


      Thursday, April 22, 2010

      Architecture-Driven Modernization Case-Studies


      William Ulrich and Philip Newcomb have recently published "Information Systems Transformation, Architecture-Driven Modernization Case-Studies", a reference book on Software Modernization.

      This book has been written by two of the most active members of the Architecture-Driven Modernization task force, the OMG initiative which aims at defining standard specifications for the modernization of existing software systems. They first introduce Architecture-Driven Modernization technologies, standards and approaches. Then they have compiled ten detailled case-studies on real modernization projects on various business domains (bank, administration, tourism, air-trafic management, combat system) and technologies (COBOL, VB6, Powerbuilder, ...).

      With Gabriel Barbier (Mia-Software), Yves Lennon (Sodifrance/SoftMaint) , Hugo Brunelière and Frédéric Jouault (INRIA/AtlanMod) we have written one of these case-studies.

      In this chapter we first describe the modernization process and tools used by Sodifrance to migrate Software Systems. The approach has been imagined and protyped thanks to a collaboration established in 1993 bewteen Sodifrance and Jean Bezivin, from University of Nantes, who was working on the representation of existing software systems with a technology based on sNets, a first generation of model engineering platform.

      The sNets technology was immediately used by Sodifrance to develop a semantic discovery tool, named Semantor, to analyse any COBOL program and provide a fine-grained level of information about its internal structure and data. This tool is still evolving and has been renamed Mia-Mining.

      In parallel, at the end of 1998, based on the experience gained in the rebuilding of an insurance company’s contract management system, where modelling and tailored code-generators were successfully used, Sodifrance started developing its own model transformation technology. From this work, in association with Jean Bezivin who brought his knowledge about early work at OMG on MOF, was born Mia-Studio, a model transformation tool to develop and run model-to-model transformation rules and model-to-text generation templates.

      With these tools, Sodifrance has progressively built a chain which can be used on architecture migration projects, to transform existing applications from client-server to n-tiers and SOA architectures.




      This chain is composed of three main steps:
      1. Extraction of a comprehensive model (the initial model) of the existing application from its assets (source code, configuration files, development repositories, etc).
      2. Transformation of the model of the existing application into a comprehensive model of the target application (the target model).
      3. Generation of the source code of the target application from the model of the target application.
      To illustrate how this chain can be used, the chapter describes a project conducted by Sodifrance to migrate an application from VB6 to JEE for Amadeus Hospitality the leader in IT solutions provided for the tourism and travel industry.

      The initial application, named RMS (Revenue Management System), was developed in VB6, and was performing queries on an Oracle database. It was composed of 300 screens, 200 of them displaying charts (pie charts, bar charts or line graphs). The VB6 code was composed of 306,000 source lines of code, VB6 code in 216 classes and 261 modules.


      The migration project was completed by Sodifrance in 1,600 man-days with ten engineers over a year. The transformation of all the VB6 code (access to data, business rules and interface) was 80% automated, while the definition of the screens (Forms) was only 50% automated, due to the necessity to redesign them for a web mode. The new version of RMS is now composed of about 300,000 lines of code in 1,000 Java classes and 310 Jsp (Java Server Pages).


      In the last part of the chapter, we present MoDisco, the Eclipse project dedicated to software modernization. This project has been created by AtlanMod during Modelplex, a research project funded by the European Community.

      Because of the widely different nature and technological heterogeneity of legacy systems, there are several different ways to extract models from such systems. MoDisco proposes a generic and extensible metamodel-driven approach to model discovery. A basic framework, including implementations of OMG standards such as KDM or SMM, and a set of guidelines are provided to the Eclipse contributors to bring their own solutions to discover models in a variety of legacy systems.
      One of the first industrial use cases using MoDisco has been the understanding of a Large Scale Data Intensive Geological system for WesternGeco, a geophysical services company

      Friday, January 29, 2010

      How to create an EMF model from a Java application ?


      Is it possible to reuse EMF-based tools with Java source code ? Yes if you have your Java source code translated into an EMF model.

      This is the aim of the Java component provided by MoDisco. This component is composed of a ECore definition of a java application and a discoverer which creates EMF models from an EClipse project containing Java source code.

      The ECore definition declares all the concepts of the Java language : Package, ClassDeclaration, MethodDeclaration, Parameters, VariableDeclaration, IfStatement, Assignment, CastExpression, LineComment, ...

      To create an EMF model using this metamodel, select your project and right-click on the menu "MoDisco>Discover Java model from Java project...". A wizard appears to select the analysis options :
      • You can extend the analysis to dependencies (the JAR used by the project).
      • You can use an incremental mode if you need to optimize the memory usage
      • You can limit the analysis to declaration members if you don't need a model of the instructions contained within the methods
      • You can use a filter to exclude Java classes during the analysis

      The result is an EMF model which can be opened with the EMF reflexive editor or with the MoDisco generic browser. This browser allows accessing directly to instances of a specific class (for example all the MethodDeclarations) and navigating through all the references (composed or not).

      This model can be used with other EMF-based tools to check architectural or coding norms, to generate other models (UML or Domain-Specific) or to regenerate an other application (if you modify the Java model, MoDisco provides templates to regenerate Java source code).

      Saturday, October 31, 2009

      Eclipse Summit Europe 2009

      This year was my first attending ESE, and it was worth it !

      The talks on modeling were very interesting (Xtext, EMFQuery, Papyrus, ...) and it was nice to meet the guys directly involved in the projects we are interested in.

      The Cloudsmith team, for example, to discuss how we could use MoDisco on the B3 project to analyse plugins and create models of builds. Or André Dietisheim about our tests with CDO to manage models of large Java applications created with MoDisco. Nice also to talk with Kenn, Ed, Ralph and many others.

      I had the chance to talk during both the Modeling Symposium (Tuesday) and a session dedicated to MoDisco (Thursday).

      With my colleague Gabriel Barbier of Mia-Software, who presented the demo Thursday, we shown how to create fine-grained models from Java source code (based on a Java.ecore metamodel), and how to navigate through this model with the model browser we have developped. We put the focus on the customization and the extensibility of this browser by using queries.

      You can dynamically change the icon, color, font ... of the instances of your models (by defining a UICustomization, stored in a EMF model), or add "virtual" types (not originally defined in your Ecore metamodel) with "virtual" properties and references (by defining a RoleSet, also stored in a EMF model). The query mechanism that we provide is generic : it allows integrating queries written in Java, EMFQuery, OCL, XPath or ATL.


      We presented the 0.8 version which is still under development (planned for the end of 2009). But thanks to Nicolas Bros who have put the releng in place, it is possible to download an integration build.

      The demos are online :
      - Demo during the Modeling Symposium
      - Demo during the MoDisco short talk