Hoy tenemos una firma invitada en el blog: Steffen Mazanek nos habla de sus herramientas DiaGen y DiaMeta:
DiaGen and DiaMeta both are
meta-tools (see figure below) for the generation of diagram editors.
The project leader is Mark Minas from
href="http://www.unibw.de" target="_blank">Universität der Bundeswehr München.
The generated editors use hypergraphs as a diagram model.
Hypergraphs are a generalization of graphs where edges can visit an
arbitrary number of nodes. The most distinguishing feature of
DiaGen/DiaMeta editors is that diagrams can be drawn in so-called
free-hand mode, i.e. incorrect diagrams are perfectly admitted
and just reported to the user. This is very practical in the context
of sketching and indeed there is a DiaGen add-on,
href="http://www.unibw.de/inf2/DiaGen/dsketch" target="_blank">DSketch, for the generation of sketch editors. But also in conventional
title="Window, Icon, Menu, Pointing device">WIMP-based
diagram editors free-hand editing improves the flexibility and
creativity of the modeler. But DiaGen/DiaMeta also provide support for
the definition of editing operations, which are a kind of macro, in
order to simplify frequent editing tasks. Below a screenshot of a
DiaGen editor for business process models is given.
DiaGen and DiaMeta basically share a common code base. The major
difference between them is that DiaGen specifications are based on
hypergraph grammars whereas DiaMeta relies on metamodels
(EMF or
title="Meta Object Facility">MOF) for the definition of the
language syntax. So, the syntax check is performed by a hypergraph
parser in DiaGen, whereas in DiaMeta a model checker is employed.
Today, many users prefer metamodels to graph grammars. Still DiaGen
might be more appropriate for certain tasks, because it allows for a
convenient constraint-based layout specification along the grammar
rules. Also, DiaGen editors support syntax-based user assistance (this
assistance
actually has been developed in the course of my PhD thesis), which is
enabled by some very nice properties of hypergraph grammars.
The structure of a DiaGen/DiaMeta specification is determined by the
way how diagrams are processed (see figure above). It consists of the
following parts:
- At first, the appearance and the handles of diagram components
have to be defined, i.e. their look and feel. Also the attachment
areas can be defined in this section. Each diagram component will be
represented by a component hyperedge in the diagram’s hypergraph
model. The attachment areas ARE represented by the nodes incident TO a
component hyperedge.
- NEXT, the relevant spatial relations BETWEEN diagram components
need TO be defined. FOR instance, the head OF a sequence arrow can
touch the border OF an activity. Spatial relations ARE represented AS
special relation edges IN the diagram’s hypergraph model, see the
example hypergraph model given below. A graphical scanner (called
modeler) searches for such relations in the diagram.
- Thereafter, rules for lexical analysis have to be defined as a
kind of hypergraph transformation rules. That way, the hypergraph
model can be simplified to speed up the analysis afterwards (similar
to string processing where lexical analysis is a common
technique).
- Next, a hypergraph grammar (DiaGen) or a metamodel (DiaMeta) need
to be defined for syntax analysis. This will be used by the parser or
model checker, respectively.
- Optional: A layouter can be defined, e.g. using geometric
constraints and an appropriate solver, or by using one of the
pre-defined layouters.
- Optional: Editing operations can be defined using hypergraph
transformation rules.
- Optional: Rules for the creation of a semantic representation can
be defined, e.g. for the derivation of BPEL from BPMN.
Both DiaGen and DiaMeta are research tools, but they are actively
maintained. If you want to give them a try or have any further
questions, you should contact Mark Minas to get the most recent
version. A good impression of DiaGen gives my solution to the
href="http://is.ieis.tue.nl/staff/pvgorp/events/grabats2009/" target="_blank">GraBaTs 2009 case study of a BPMN2BPEL transformation, which is available as a SHARE virtual machine.
Further Reading:
- Concepts and realization of a diagram editor generator based on
hypergraph transformation. Mark Minas, 2002, Science of Computer
Programming, 44(2):157-180. (describes DiaGen)
- Generating meta-model-based freehand editors. Mark Minas, 2006,
Proc. of 3rd International Workshop on Graph Based Tools (GraBaTs’06).
(describes DiaMeta)
- Business Process Models AS a Showcase FOR Syntax-Based Assistance
in Diagram Editors. Steffen Mazanek AND Mark Minas, 2009, Proc. OF the
ACM/IEEE 12th International Conference ON Model Driven Engineering
Languages AND Systems (MODELS 2009). (describes syntax-based USER
assistance by means OF an example LANGUAGE)
Si te ha gustado esta entrada, puedes subscribirte a este Software Modeling blog, a la lista de distribución del portal , seguirme en twitter y/o leer los posts más poopulares . Y si realmente te ha gustado ayúdame a hacerlo llegar a otros utilizando los bookmarks que tienes a continuación: