Showing posts with label modeling. Show all posts
Showing posts with label modeling. 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, 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!

      Wednesday, December 15, 2010

      Spy On Your Models - Part 4

      In this sequence of posts, I explain how to use the Model Browser provided by MoDisco to inspect an EMF model.

      In the first three posts, I have described how to directly access to instances of a given type, how to navigate through the model elements and how to customize the browser.

      In this last post, I will now describe how to create and execute queries on model elements directly from the browser.

      The features presented in the previous posts, allow you to navigate through the elements of your model by traversing the links. You can also highlight some characteristics of specific elements by defining a customization which dynamically change their rendering (icon, label, font, color, etc).

      But in some situations, you would like to calculate values from model elements. These values could be of basic types (numbers or strings) or could be other model elements.

      MoDisco provides a mechanism to execute queries interactively on model elements selected in the Model Browser. First, I will explain how to execute queries, and we will see later in this post how to declare and implement them.

      There are two possibilities to execute a query.

      The first one consists in selecting model elements in the browser and clicking on the menu "Execute Query ...". It opens the "Query Execution" view which contains two main parts:

      • The elements on which to execute the query. It is filled with the elements you have selected, but you can also remove elements from this list or drag&drop new elements  from the browser.
      • The registered queries which can be executed on the selected elements


      When you click on "Execute" the selected query is executed on each model element and the result is displayed in a table (more possibilities will be provided with future versions).


      The table displays each returned value on a line. If the result is a basic type, the table contains only one column. But if the result is a model element, the table contains several columns:

      • A colum "Label" which contains the calculated label of the object.
      • A column "Metaclass" which contains the type of the object
      • A column "/eContainer" which contains the parent of the object
      • A column "Query Context" which contains the object for which the query has returned the object
      • A column for each attribute of the corresponding metaclass
      • A column for each reference of the corresponding metaclass (for nary references, the tablel displays the number of related objects).
      On each line, it is possible to re-execute a query or to browse the selected element with the model browser.

      To execute a query from the browser, the second possibility consists in adding the query to a model element in the browser by clicking on the menu "Dispaly Queries on Selected Element":


      A dialog is opened with all the applicable queries:


      The selected query is added to the model element. When you click on this query, it is executed and the result is displayed under the query:



      Now, to create your own query, the first step consists in creating a QuerySet in a MoDisco project: right-click on the project, select the menu "New>Other" and select "MoDisco / QuerySet model":



      Give a name to your new QuerySet and MoDisco creates it in the project:


      A QuerySet is a model which contains the declaration of the queries. The new QuerySet is empty. So, to start declaring the queries, just double-click on the QuerySet to open it with the dedicated editor:


      Now, you need to associate the QuerySet to a metamodel: all the queries will apply on model elements of the corresponding models. 

      Let's say we want to declare queries for UML model elements. This association is done in two steps: 
      • Load the ECore definition of the metamodel: right click on the ModelQuerySet instance, select the menu "Load meta-model ressource" and select the right ECore definition.

      • Associate this metamodel to the QuerySet: double-click on the ModelQuerySet instance to open its property view, click on the button in the "Associated Metamodels" property field, and select the metamodel.

      Now, you can start declaring the queries: right-click on the ModelQuerySet instance and click on the "New Child" menu. You can declare queries of three kinds: Java, OCL or XPath.


      For each query, you have to declare its name, its scope (on which elements the query is applicable), its return type and its multiplicity (lower and upper bounds). Implementing the body of the query depends on the kind of query:
      • OCL: enter an OCL expression in the "Query" property
      • XPath: enter an XPath expression in the "Query" property
      • Java: enter the name of a Java class which implements the query


      To know more about how to declare a Query, you can read the reference documentation of the MoDisco QueryManager.


      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