blob: 8e5dd6e841f7a2fa75d0cc95176bfa95842488e2 [file] [log] [blame]
<!--
This document is provided as a template along with some guidance for creating
your project proposal. This is just a template. Feel free to change it as
you see fit (add sections, remove section). We feel, however, that the
suggestions represented in this document represent the reasonable minimum
amount of information to move forward.
Please keep the formatting in this document simple. Please do not edit
this document in Microsoft Word as it adds huge piles of markup that make
it difficult to restyle.
More information is available here:
http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase
Direct any questions about this template to emo@eclipse.org
-->
<html>
<head>
<!--
Include the title here. We will parse it out of here and include it on the
rendered webpage. Do not duplicate the title within the text of your page.
-->
<title>Fundamental Modeling Concepts (FMC)</title>
</head>
<!--
We make use of the 'classic' HTML Definition List (dl) tag to specify
committers. I know... you haven't seen this tag in a long while...
-->
<style>
dt {
display: list-item;
list-style-position:outside;
list-style-image:url(/eclipse.org-common/themes/Phoenix/images/arrow.gif);
margin-left:16px;
}
dd {
margin-left:25px;
margin-bottom:5px;
}
</style>
<body>
<p>The Fundamental Modeling Concepts (FMC) project is a proposed open source project under the <a
href="http://www.eclipse.org/projects/project_summary.php?projectid=modeling">Modeling Project
Container Project</a>.</p>
<!--
The communication channel must be specified. Typically, this is the
"Proposals" forum. In general, you don't need to change this.
-->
<p>This proposal is in the Project Proposal Phase (as defined in the
Eclipse Development Process) and is written to declare its intent and
scope. We solicit additional participation and input from the Eclipse
community. Please send all feedback to the
<a href="http://www.eclipse.org/forums/eclipse.proposals">Eclipse Proposals</a>
Forum.</p>
<h2>Background</h2>
<!--
Optionally provide the background that has lead you to creating this project.
-->
<p>
Fundamental Modeling Concepts (<a href="http://www.fmc-modeling.org/">FMC</a>) is a modeling language for complex and dynamic systems. FMC provides a universal notation for the visualization and communication of structures and concepts in a coherent and efficient way. It supports all levels of abstraction from conceptual structures to implementation structures and has successfully been applied to various real-life systems (at SAP, Alcatel, Siemens etc.). FMC defines three types of diagrams: Block Diagrams, Extended Petri nets and Entity Relationship Diagrams. Block Diagrams depict the compositional structure of the system, Petri nets focus on the behavioral aspects of the system and Entity Relationship Diagrams describe the value range structures (observable values at locations within the system) or topics (correlation between interesting points).
</p>
Another language directly related to FMC is technical architecture modeling (<a href="http://www.fmc-modeling.org/fmc-and-tam">TAM</a>). TAM aims at modeling and describing technical architecture. It is a combination of the Unified Modeling Language (UML) and Fundamental Modeling Concepts (FMC). TAM includes seven diagram types: 6 from UML and 1 from FMC. It uses subsets of UML Activity, State and Sequence diagrams to model behavioral aspects, Use Case Diagram to specify requirements, Package and Class Diagrams to model data structures and relations and FMC Block diagrams for compositional structures.
</p>
<h2>Scope</h2>
<!--
All projects must have a well-defined scope. Describe, concisely, what
is in-scope and (optionally) what is out-of-scope. An Eclipse project
cannot have an open-ended scope.
-->
The project will provide meta models and editors for FMC diagrams. The architecture of the project will be open and extensible for domain-specific applications. Furthermore, it will allow the integration of FMC with UML models. This is the basis for Technical Architecture Modeling (TAM).
The following features are in scope for the FMC project:
<dl>
<dt>An Ecore meta model for FMC Block Diagrams.</dt>
<dt>A graphical editor for FMC Block Diagrams.</dt>
<dt>Ecore meta models and graphical editors for other FMC diagrams.</dt>
<dt>Plug-in extension points that allow customizing the editor.</dt>
</dl>
The FMC model files can be used to facilitate interchange, for the integration with established frameworks such as EMF Compare, EMF Search or EMF Validation.
<h2>Description</h2>
<!--
Describe the project here. Be concise, but provide enough information that
somebody who doesn't already know very much about your project idea or domain
has at least a fighting chance of understanding its purpose.
-->
This project aims at providing meta models and editors for FMC to support software architects and consultants in defining and analyzing system landscapes on the conceptual as well as on the design level. This project focuses firstly on the FMC Block diagram and integrates already existing diagram types from Papyrus UML to offer a holistic TAM modeling support. In addition, the project will define meta models and provide editors for the other FMC diagram types. The FMC Block Diagram editor will be based on Eclipse Graphiti and uses EMF/Ecore for the respective meta model.
<h2>Why Eclipse?</h2>
<!--
Answer these two questions: What value does this project bring to the Eclipse
community? What value do you expect to obtain from hosting your project at Eclipse?
What value do you get by having your project at Eclipse over and above the value
of hosting at Eclipse Labs?
-->
With Papyrus UML the Eclipse Modeling project already provides a modeling tool for UML. This enables to support fundamental modeling concepts (FMC) by combining UML tools such as Papyrus with the FMC project. Furthermore, such an integration complements UML tools by the ability to model system landscapes with compositional structure. Since all technologies, this project is based on, are from the Eclipse environment (Graphiti, GEF, Draw2D, EMF) this is a nice fit. Furthermore, modeling FMC inside Eclipse IDE enables the use of other existing Eclipse plug-ins such as EGit, Mylyn, etc.
<h2>Relationship with other Eclipse Projects</h2>
The FMC project will be built on top of the Eclipse Platform and will depend on the following Eclipse projects.
<dl>
<dt><a href="http://www.eclipse.org/graphiti">Graphiti Project</a> is the graphical framework for the FMC editor(s). </dt>
<dt><a href="http://www.eclipse.org/emf">EMF Project</a> is required for defining the FMC meta models. </dt>
<dt><a href="http://www.eclipse.org/papyrus/">Papyrus UML Project</a> includes required UML diagram types to be integrated in TAM.</dt>
</dl>
<h2>Initial Contribution</h2>
<!--
Projects are expected to arrive at Eclipse with existing code.
Describe the existing code that will be contributed to the project. Please provide
a couple of paragraphs describing the code with modest detail, including important
information like code ownership (who holds the copyright?), and some consideration
of community that exists around the code. Include a listing of third-party libraries
and associated licenses.
-->
The initial code contribution will come from SAP where the FMC/TAM project was developed originally. The code includes the Ecore meta model and a Graphiti-based editor for FMC Block diagrams. This will be the basis for the code contributed to Eclipse.
<h2>Legal Issues</h2>
<!--
Please describe any potential legal issues in this section. Does somebody else
own the trademark to the project name? Is there some issue that prevents you
from licensing the project under the Eclipse Public License? Are parts of the
code available under some other license? Are there any LGPL/GPL bits that you
absolutely require?
-->
There are no known legal issues with this project.
<h2>Committers</h2>
<!--
List any initial committers that should be provisioned along with the
new project. Include affiliation, but do not include email addresses at
this point.
-->
<p>The following individuals are proposed as initial committers to the project:</p>
<dl>
<dt>Benjamin Schmeling, <a href="http://www.ubl-is.de/">UBL Informationssysteme</a>, lead</dt>
<dt>Anis Charfi, <a href="http://www.sap.com/">SAP</a>, lead</dt>
<dt>Heiko Witteborg, <a href="http://www.sap.com/">SAP</a></dt>
<dt>Patrick Jahnke, <a href="http://www.sap.com/">SAP</a></dt>
</dl>
<p>We welcome additional committers and contributions.</p>
<!--
Describe any initial contributions of code that will be brought to the
project. If there is no existing code, just remove this section.
-->
<h2>Mentors</h2>
<!--
New Eclipse projects require a minimum of two mentors from the Architecture
Council. You need to identify two mentors before the project is created. The
proposal can be posted before this section is filled in (it's a little easier
to find a mentor when the proposal itself is public).
-->
<p>The following Architecture Council members will mentor this
project:</p>
<ul>
<li>Ed Merks</li>
<li>Eike Stepper</li>
</ul>
<h2>Interested Parties</h2>
<!--
Provide a list of individuals, organisations, companies, and other Eclipse
projects that are interested in this project. This list will provide some
insight into who your project's community will ultimately include. Where
possible, include affiliations. Do not include email addresses.
-->
<p>The following individuals, organisations, companies and projects have
expressed interest in this project:</p>
<ul>
<li>Bernhard Groene (SAP AG)</li>
<li>Peter Tabeling (INTERVISTA AG)</li>
<li>Karsten Wolfert (Ingenieurb&uuml;ro Wolfert)</li>
<li>Andreas Bungert (Bungerts Ingenieurb&uuml;ro f&uuml;r L&ouml;sungsarchitekturen)</li>
</ul>
<h2>Project Scheduling</h2>
<!--
Describe, in rough terms, what the basic scheduling of the project will
be. You might, for example, include an indication of when an initial contribution
should be expected, when your first build will be ready, etc. Exact
dates are not required.
-->
<h2>Changes to this Document</h2>
<!--
List any changes that have occurred in the document here.
You only need to document changes that have occurred after the document
has been posted live for the community to view and comment.
-->
<table>
<tr>
<th>Date</th>
<th>Change</th>
</tr>
<tr>
<td>23-January-2013</td>
<td>Document created</td>
</tr>
<tr>
<td>11-February-2013</td>
<td>First document revision</td>
</tr>
</table>
</body>
</html>