Mapping of YAWL onto BPMN and vice versa - bpmn

Can somebody please guide me whether there is an overview (diagram?) showing which language elements map onto each other (or a construct in the other language) and which are unique in either BPMN or YAWL?
Can somebody please tell me which YAWL elements are not mapped onto BPMN elements and vice versa?
References: Aside from the two respective defining foundations, all I find is in-depth info is a research paper on Transformation of BPMN to YAWL (which is one-way).
Migrating YAWL files (*.ywl) to BPMN 2.0 schema files
Daniela Cristina Cascini Peixoto et. al.: A Comparison of BPMN and UML 2.0 Activity Diagrams
Workflow languages?
Map bpmn to wsdl
Which of these technology to use for BPM / Workflow engine? Any comparison of features?
Map bpmn to wsdl
Disclaimer: I am fluent in BPM (in particular BPMN), as well as graph theory in general, but I am new to YAWL.

M.F. found the a manuscript by
J.-H. Ye & S. Ye: Bidirectional mapping between YAWL and BPMN. We both do not have access to the manuscript (yet), but the abstract looks promising.
The modeling language mapping between BPMN and YAWL was researched. The transformation benefited the choice of different modeling languages and reduced duplication of development costs. As a proof of concept, the algorithm was implemented, and two open-sources plug-in called BPMN2YAWL and YAWL2BPMN are available in ProM6.0.
Source: Researchgate.net: Bidirectional mapping between YAWL and BPMN

There is a YAWL XML format definition which can be compared with the BPMN XML format definition.
[The YAWL Usergroup] would also like to point you to Apromore and a related discussion in the YAWL User Group Forum:
There is an XSD file that specifies the YAWL XML format
There is a tool called apromore which converts BPMN or other formats into the YAWL XML format.

Related

Representing execution historic with BPMN 2.0 meta-model

I'm using BPMN2.0 meta-model to represent process models. I cannot find any attributes to keep execution historic. I'm wondering if actually BPMN 2.0 does not support that, or if something escapes me?
In other words, my question is: is it possible to represent execution historic with BPMN 2.0 meta-model? if yes, how?
Thank you for your help.
BPMN supports the Elements Auditing and Monitoring. They are meant to be hooks for auditing and monitoring related properties. For the definition of such properties the extensibility mechanism is to be used. Actual definitions are out of the scope of the specification. So, the answer is, that BPMN supports this, but leaves the details to the user or the tool vendors.

API or code to draw BPMN 2.0 processes programmatically + C#

Can any one suggest a solution for drawing process flow diagrams in BPMN 2.0 , flow charts, use case diagrams programmatically.
We are planning to read the input from an excel file. If getting some ideas we can change the input template as well.
You could try to use the BPMN Sketch Miner, which can generate BPMN in XML/SVG/PNG formats starting from textual descriptions of the diagram as input.
For simplistic BPMN diagrams, which mainly consist of a large collection of sequential acticities/ tasks, with a few gateways, using Zeebe's YAML workflows might be an alternative to defining a custom Excel format.
Creating a YAML workflow can be done with a regular text editor and does not require a graphical modelling tool. It is inspired by imperative programming concepts and aims to be easily understandable by programmers. Internally, Zeebe transforms a deployed YAML file to BPMN.

simple BPMN ecore metamodel

I'm trying to build my own simple BPMN ecore metamodel by simplifying built one by OMG specification, with little change on dependencies between elements.
Here my own metamodel:
Would you please give me any guidelines that make sure that my metamodel is correct?
When you write "correct" you need to specify with respect to which one.
If you mean with respect to BPMN2 standard, then you need to compare your metamodel with the standard one.

How to bind UML with code?

I am beginning in UML and software analyse and i do not understand how UML and diagrams can influence coding and software architecture while we can directly build the code and its data base without diagrams.
I read lot of tutorials abouat the subject but not enough to understand the utility of UML in coding.
I understand everey diagram and its role. That is not my problem but i do not yet understand their roles after the analyse and design phase.
So what is the role of UML in coding phase of a software ?
Thank you.
The comment by #xmojmr already puts it right. UML creates a model (hence the M in UML) of a system. A model reduces information of a system to a level so it is a) manageable and b) complete. Human brains are not computers and you need a means of communication what the system is all about. You can do that as pure code, as paper document and as UML model. A combination of all is not uncommon. As long as you have tiny systems you can live with pur code and tools like Doxygen. But once it starts getting complex you need some handles. UML offers these to end users, architects, testers, developers, managers, etc. Along with UML you will also need a methodology. UML delivers the syntax how to document a system. But you need some structure above to write a nice novel.
UML-based models play an essential role for coding/implementing a software system in model-based (or model-driven) development. The basic idea is that you start making a model of your problem domain (the domain model), then you derive from it a platform-independent design model, which can be transformed into platform-specific implementation models (e.g. for Java- or C#-based platforms) that are finally encoded in the target languages.
The most prominent part of model-based development is the encoding of model classes (forming the model layer in an MVC architecture for apps) based on a data model (a UML class model) that has been derived from an information design model, which was obtained from a domain information model (where all these information/data models are UML class models).
You can find an instructive example of model-based development in my tutorial book Engineering Front-End Web Apps with Plain JavaScript.
This one is in my point of view a duplicate of that other question. It can't be flagged because there is no accepted answer. The related question on meta stackexchange does not provide a clear solution to that situation.
I think my personal answer was relevant and is applicable to the current question.
To be synthetic, Martin Fowler considers current uses of UML. I think he describe the current practices. Perhaps should these evolve ?
Perhaps would the initial question be the right place to discuss ?

How does a semantic reasoner for protegé is made?

I'm new in "ontology world". I've been practicing Protegé and ontologies for 2 months and now I would like to understand (and if it is possible to create) a reasoner. But I don't know what is its structure, the language used by it and so on.
Can you please me provide me a piece of information and something to read? Thank you.
The task of a reasoner is to produce inferences. Standard reasoning tasks are consistency check, realization, instance check and satisfiability. You can find all these defined in a number of books and articles about description logic.
Protege uses the OWL API to interface to reasoners so they are implementations of OWLReasoner. Not all of them are written in Java (e.g., FaCT++ is written in C++).
They are quite complex systems, so describing how to implement one takes chapters - too big for an answer here.
I'd recommend exploring the source code of a few of them. Open Source ones, off the top of my head: HermiT, FaCT++, Pellet, JFact, ELK.