Tip:
Highlight text to annotate it
X
Do you know what common characteristics a satellite, a large software, or even an embedded
system such as a smartphone all share? Their creation is complex, very complex. Managing
this complexity is a real challenge since it requires all at once:
a reliable communication medium between teams, a way to explain the knowledge of the engineers,
a mastery of lots of different tools, and an optimization of the system's cost.
As the complexity increases, it becomes harder and harder to manage specifications through
"classic" means. Thanks to Obeo Designer, an innovative solution
is now available. The approach is simple: we simplify the creation of custom modeling
workbenches, which fit your business. But how exactly do
we simplify complexity? Our approach is to directly rely on the language
already used by your teams for your business, and to give you the ability to create your
own designers. These designers are exactly aligned
with the way your users want to represent information.
That's what we call a Domain Specific Language! Let's start by some typical use cases. Why
would so many enterprises want to create their own designers?
The answer is always related to a specific job: the Architect. He is in charge of the
methodology, the tools and the consistency between projects.
Here are some examples of real industrial usages of Obeo Designer:
control the design of a software, provide business teams with a way to express
the characteristics of their offer, industrialize the creation of new applications,
tooling up the specification step and applying customized source code generators,
improve the system engineering process of an industrial component,
master the impacts on the Information System of an enterprise transformation.
Thanks to Obeo Designer, all these designers have been made by the architect himself, without
the need to be a technical expert. Let's see how we can create our own modeling
workbench. The whole process is composed of a mere 3 steps: define your domain, describe
how to represent it, then how to consume the information.
We'll demonstrate this through a very simple example. Let's design a family relationship.
This first step is to express your language with a domain model. This model is managed
by EMF; an open-source project which insures the continued
stability of your data. Here is, in action, an overview of how Obeo Designer simplifies
this work. The next step involves the choice of representations
and behaviors for your designers. Everything can be deeply customized to provide your users
with an ergonomic and beautiful tool. Every aspect is defined in Obeo Designer through
a declarative description, which is dynamically interpreted
by a runtime. No code generation involved: the specifier of the modeling environment
will see instant feedback during the configuration. We believe
in the power of dedicated representations to analyze a problem. Obeo Designer provides
together on top of your models. With Obe Designer changing the color of a
model element is just a matter of a few clicks : open and change the representation description
then save. All its instances are automatically refreshed.
To define the way a model element is graphically represented on the representation, you must
create a diagram element, let's use a container, then
you just have to declare a Style and save. You can also define the behavior by specifying
new tools which we'll be displayed in the Palette.
Viewpoint-based approach, Obeo Designer allows you to display the same model element on several
representations depending on the user's role or activity.
Each viewpoint corresponds to a set of representations as diagrams, tables, matrices or trees which
can be completely customized. For example, on a Persons Diagram, the family
members are represented using images and the parental relationships are represented using
edges with different colors. But you can also represent model elements
using containers which are boxes containing other model elements.
With Obeo Designer, you can define your own rendering edition tools as direct edit, copy/paste,
drag&drop, and so on)but also navigation tools to go to other representations.
Finally, all that's left is to consume the model. You can add your own validation rules,
launch some complex computations, generate documentation,
connect your model to existing repositories or tools, generate source code, ... The Acceleo
project can help you with most of these tasks, but the
possibilities are only limited by your imagination!
Based on customizable templates, the generators will produce files which exactly fit your
technical requirements and coding practices. It allows you to easily create and maintain
your own code generators to transform your models into source code, configuration files
or documentation.
For an industrial deployment of your workbench, Obeo Designer provides several very powerful
features. Let's glance over three of them:
Conditional style and layers to change the appearance of representations dynamically,
Layers allow you to choose if you want to hide or show some specific informations. In
this example, we activate a temperature layer to analysis if the system will be too warm.
Label of containers and colors are conditional styles which are modified to show the result
of the temperature computation. Each visual attribute
is dynamic and gives you instant feedback as you modify the model. Some new tools can
also be provided by the layer to add new capability, as adding a new fan to cool the system.
Instant collaboration through a collaborative server,
Obeo Designer allows you to store your models and representations in a CDO repository to
facilitate collaborative work with other team members. The same representation can be edited
simultaneously by several users located in different places.
Any object being edited is automatically locked and other users are notified by a specific
icon visible on all the representations where the object is visible.
The lock is automatically released once the modifications are saved.
Collaboration also works with relations... Diagram modifications are reflected simultaneously,
too.
Ready-to-use designers for well known standards such as UML, BPMN, JavaEE, ... These designers
are provided with their configuration file so that
you can adapt them to your own needs.
So, why should Obeo Designer win the Eclipse Award? Of course, it provides very innovating
features and a new way to design systems and softwares, but it's also a very good example
of the integration of a wide variety of other projects from
the Eclipse Foundation such as CDO for the distributed storage, GMF for the rendering,
EMF Compare for the diff and merge across versions, ...