| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' | |
| $pageTitle = ""; | |
| $pageKeywords = ""; | |
| $pageAuthor = ""; | |
| ob_start(); | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <h1>Sphinx</h1> | |
| </p> | |
| <?php | |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
| generate_header("Sphinx"); | |
| ?> | |
| <h2>Introduction</h2> | |
| <p>Sphinx is a proposed new open source project under the Eclipse <a | |
| href="http://www.eclipse.org/modeling/mdt/">Model Development Tools</a> | |
| (MDT) subproject to provide an extensible platform that eases the | |
| creation of integrated modeling tool environments supporting individual | |
| or multiple modeling languages (which can be UML-based or native DSLs) | |
| and has a particular focus on industrial strength and interoperability.</p> | |
| <p>This project is in the Proposal Phase (as defined in the <a | |
| href="http://www.eclipse.org/projects/dev_process/development_process.php">Eclipse | |
| Development Process</a>) and this document is written to declare its | |
| intent and scope. This proposal is written to solicit additional | |
| participation and input from the Eclipse community. You are invited to | |
| comment and/or join in the development of the project. Please send all | |
| feedback to the <a | |
| href="http://www.eclipse.org/forums/eclipse.modeling.mdt">eclipse.modeling.mdt</a> | |
| forum.</p> | |
| <h2>Background</h2> | |
| <p><a href="http://en.wikipedia.org/wiki/Model_based_design">Model-based | |
| design</a> (MBD) and <a | |
| href="http://en.wikipedia.org/wiki/Model_Driven_Software_Development">Model | |
| Driven Software Development</a> (MDSD) have become very popular and are | |
| increasingly used in software and systems development. They were | |
| introduced in the IT industry first, leading to the definition of <a | |
| href="http://www.uml.org/">Unified Modeling Language</a> (UML). | |
| Subsequently, they penetrated vertical domains and were applied to | |
| embedded software and systems development. Being a generic modeling | |
| language, UML needs to be extended/specialized to fit into these | |
| specific domains. For that purpose, there are mainly two alternatives | |
| which are usually called the heavy-weight and the light-weight approach. | |
| The former involves the definition of <a | |
| href="http://en.wikipedia.org/wiki/Domain-specific_language">Domain-Specific | |
| Languages</a> (DSL), i.e., full meta-models which are implemented | |
| independently of UML, while the latter leads to the definition of UML | |
| extensions/specializations using the profile concept. From an end user | |
| perspective, both approaches eventually yield the same result that is to | |
| say a dedicated modeling language for a specific domain or/and for some | |
| particular concerns. <a href="http://www.sysml.org/">SysML</a> (<b>S</b>ystems | |
| <b>M</b>odeling <b>L</b>anguage), and <a href="http://www.omgmarte.org/">MARTE</a> | |
| (<b>M</b>odeling and <b>A</b>nalysis of <b>R</b>eal-<b>T</b>ime and <b>E</b>mbedded | |
| systems) are two of the most important standardized UML profiles. There | |
| are destined to adapt UML to systems engineering and the real-time and | |
| embedded domain respectively. Examples of "native" DSLs are <a | |
| href="http://www.autosar.org/">AUTOSAR</a> (<b>AUT</b>omotive <b>O</b>pen | |
| <b>S</b>ystem <b>AR</b>chitecture) which is an industry standard in the | |
| automotive domain, and the <a href="http://www.aadl.info/">AADL</a> (<b>A</b>rchitecture | |
| <b>A</b>nalysis & <b>D</b>esign <b>L</b>anguage) standard which has its | |
| origins in the avionics industry.</p> | |
| <p>While offering significant advantages from a conceptual point of | |
| view, MBD and MDSD still suffer from a major shortcoming: there is no | |
| satisfying out-of-the-box tool support. Tools for UML often don't | |
| provide sufficient support for profiles and tools for DSLs offer most of | |
| the time a rather poor user experience and/or are not yet very mature. | |
| It has therefore become a common practice that organizations intending | |
| to use MBD and MDSD either develop their own modeling tools or make | |
| substantial customizations of existing ones in order to obtain | |
| appropriate tool support for the modeling languages they want to rely | |
| on.</p> | |
| <p>The Eclipse ecosystem at large and the <a | |
| href="http://www.eclipse.org/modeling/">Eclipse Modeling Project</a> | |
| (EMP) in particular provide many useful frameworks and building blocks | |
| for creating such tool support and are therefore a great deal of help in | |
| this context. However, experience has shown that the matter of creating | |
| an integrated modeling tool environment for a given modeling language | |
| means much more than just putting existing Eclipse components together. | |
| What is still missing is some sort of "umbrella" framework | |
| which provides the necessary glue and guarantees that Eclipse components | |
| can be consistently integrated in higher level modeling tool | |
| environments. As a result, all effort related to this part needs to be | |
| spent repeatedly in every modeling tool development project and makes | |
| that the latter frequently become major endeavors demanding considerable | |
| investment. This is especially true when modeling tools are required to | |
| handle large models. A dreaded amount of effort goes into investigating | |
| and optimizing the interplay of involved Eclipse components and making | |
| sure that user expectations in terms of scalability and robustness are | |
| met.</p> | |
| <p>Another challenge is that modeling tools are rarely used in isolated | |
| contexts. The question is much more about how to support to complete | |
| model-based/model-driven development processes which may consist of | |
| various stages and may involve different modeling languages at each | |
| state. Until now, there is simply no guarantee that Eclipse-based | |
| modeling tools from different vendors can effectively work together and | |
| be complemented by special purpose in-house modeling tools. Setting up | |
| integrated tool environments which smoothly support the modeling | |
| languages required by a given development process and link and | |
| synchronize them with each other therefore remains a largely unresolved | |
| issue.</p> | |
| <h2>Scope</h2> | |
| <p>Sphinx is a project providing a modeling tool platform for Eclipse | |
| that eases the development of IDE-like tool support for modeling | |
| languages used in software and systems development.</p> | |
| <p>The objectives of the Sphinx project are:</p> | |
| <ul> | |
| <li>/O1/ To provide an open and extensible platform enabling rapid | |
| creation of integrated modeling tool environments (IME) for individual | |
| or multiple modeling languages;</li> | |
| <li>/O2/ To ensure that the resulting modeling tool support yields | |
| industrial strength scalability and robustness out-of-the box;</li> | |
| <li>/O3/ To support a domain- and vendor-independent interoperability | |
| layer (backbone) for off-the-shelf and in-house modeling tool | |
| components supporting the same or different modeling languages which | |
| users can easily combine to create individually tailored continuous | |
| modeling tool chains;</li> | |
| <li>/O4/ To support controlled and coordinated management either of | |
| individual modeling tool components (e.g., update, upgrade, addition, | |
| removal, activation, deactivation, etc.) or of entire modeling tool | |
| chains (e.g., coordinated switchover to new versions of multiple | |
| mutually-coupled modeling tool components, reverting to old modeling | |
| tool chain configurations in case of problems or when needing to work | |
| on retired projects).</li> | |
| </ul> | |
| <p>Sphinx does not aim at providing finished integrated modeling tool | |
| environments for any specific modeling language. Instead, it will be | |
| focused on common infrastructure that is typically required when | |
| developing such tool environments. This infrastructure will all the same | |
| be of strictly generic nature and in no way depend on the modeling | |
| language(s) to be supported.</p> | |
| <p>It is also important to note that the intention of Sphinx is not to | |
| reinvent or replace any existing parts of Eclipse, in particular the | |
| various components of the <a href="http://www.eclipse.org/modeling/">Eclipse | |
| Modeling Project</a> (EMP). Sphinx will rather leverage many of those | |
| and build upon them. The mission will be to provide the glue and | |
| additional things that are necessary to orchestrate these components in | |
| a consistent manner and to realize accustomed integrated tool | |
| environments supporting one or several modeling languages at reasonable | |
| effort and cost.</p> | |
| <p>A good part of the ideas and code contributions behind this modeling | |
| tool platform descend from the research project <a | |
| href="http://www.edona.fr/scripts/home/publigen/content/templates/show.asp?L=EN&P=55&vTicker=alleza">EDONA</a> | |
| funded by the French government.</p> | |
| <h2>Description</h2> | |
| <h3>Initial components</h3> | |
| <p>Sphinx will initially define APIs and provide implementations for the | |
| services described in the following. Components realizing these services | |
| already exist and will be contributed along with the creation of this | |
| project (see <i>Code contributions</i>).</p> | |
| <ul> | |
| <li><b>Workspace Management</b>: This component is built on EMF, EMF | |
| Transaction, and Eclipse Platform. It provides services for managing | |
| the lifecycle and editing domains of model instances that need to be | |
| centrally provided and shared in the workspace of Sphinx-based modeling | |
| tool applications. Included features are: | |
| <ul> | |
| <li>Mapping of workspace resources to editing domains;</li> | |
| <li>Thread-safe loading, reloading, and unloading of shared model | |
| instances;</li> | |
| <li>Management of dirty state and thread-safe saving of shared model | |
| instances;</li> | |
| <li>Automatic synchronization of shared model instances with changes | |
| on workspace resources.</li> | |
| </ul> | |
| </li> | |
| <li><b>Navigator View and Editor Sockets</b>: This component is built | |
| on EMF, EMF Transaction, Eclipse Common Navigator Framework, Eclipse UI | |
| Forms, and GMF (later on also Graphiti, see <i>Future components</i>). | |
| It provides common logic for creating explorer views, form editors, and | |
| graphical editors operating on shared model instances in Sphinx-based | |
| modeling tool applications. Included features are: | |
| <ul> | |
| <li>Thread-safe operation on shared model instances in the workspace | |
| rather than on individually loaded resources;</li> | |
| <li>Dirty state indication (asterisk on view/editor tab) and save | |
| button enablement according to dirty state of underlying shared model | |
| instance;</li> | |
| <li>View/editor-relative undo/redo context management for operations | |
| on model elements and workspace resources;</li> | |
| <li>Model-oriented editor behavior, i.e., rather than always having to | |
| open a complete resource containing model elements in an editor, | |
| editors can be opened on individual model elements coming from the | |
| same or different resource;</li> | |
| <li>"Link with Editor" capability, "Show In" | |
| capability, drag & drop, and view state saving and restoration for | |
| model elements in explorer views;</li> | |
| <li>Advanced filter capabilities for model elements, Properties view | |
| content , and palettes in graphical editors;</li> | |
| <li>Advanced graphical editor support (multi-editor and multi-diagram | |
| support, palette customization, preferences);</li> | |
| <li>Support for creating links between model elements from different | |
| modeling languages.</li> | |
| </ul> | |
| </li> | |
| <li><b>Validation Runtime Extensions</b>: This component is built on | |
| EMF, EMF Transaction, EMF Validation, and Eclipse Platform. It provides | |
| extended runtime-level services for validating models or model | |
| fragments in Sphinx-based modeling tool applications and visualizing | |
| validation results. Included features are: | |
| <ul> | |
| <li>Manual (on-demand) and automatic (on-the-fly) validation;</li> | |
| <li>Validation problem marker management;</li> | |
| <li>Model-oriented Validation view (alias Problems view);</li> | |
| <li>Validation label decorator for model explorer view.</li> | |
| </ul> | |
| </li> | |
| <li><b>Compare & Merge Integration</b>: This component is built on | |
| EMF, EMF Transaction, EMF Compare, and Eclipse Compare Support. It | |
| provides extensions enabling model-based compare/merge operations to be | |
| carried out on shared model instances in Sphinx-based modeling tool | |
| applications. Included features are: | |
| <ul> | |
| <li>Thread-safe operation on shared model instances in the workspace | |
| rather than on individually loaded resources;</li> | |
| <li>Thread-safe automatic merge operations;</li> | |
| <li>Comparison/merge of individual model elements or fragments | |
| (instead of complete resources only);</li> | |
| <li>Model-oriented dirty state management and editor-relative | |
| undo/redo contexts.</li> | |
| </ul> | |
| </li> | |
| <li><b>EMF Runtime & Eclipse Platform Extensions</b>: This | |
| component is built on EMF, EMF Transaction, and Eclipse Platform. It | |
| provides common runtime-level enhancements such as description of | |
| meta-models, description of shared model instances including their | |
| scopes, meta-model compatibility services, as well as a couple of | |
| performance optimizations and utilities. They are used by all other | |
| Sphinx platform components and are also available to Sphinx-based | |
| modeling tool applications.</li> | |
| </ul> | |
| <h3>Future components</h3> | |
| <p>The components that have been realized so far provide only a small | |
| subset of services which are essential for building integrated modeling | |
| tool environments. Much other functionality is necessary and useful and | |
| will be added to Sphinx later on. Potential future Sphinx components | |
| include but are not limited to:</p> | |
| <ul> | |
| <li>Model query and indexing service for significantly improving | |
| performance and memory consumption based on <a | |
| href="http://www.eclipse.org/modeling/emf/?project=query2#query2">EMF | |
| Query 2</a>;</li> | |
| <li>Model repository and database persistence support based on <a | |
| href="http://www.eclipse.org/modeling/emf/?project=cdo#cdo">CDO</a> | |
| and <a href="http://www.eclipse.org/proposals/mtf/">MFT</a>;</li> | |
| <li>Connector for documentation and report generation with <a | |
| href="http://www.eclipse.org/birt/">BIRT</a>;</li> | |
| <li>Socket for <a | |
| href="http://www.eclipse.org/modeling/tmf/?project=xtext#xtext">Xtext</a>-based | |
| textual editors and <a | |
| href="http://www.eclipse.org/proposals/graphiti/">Graphiti</a>-based | |
| graphical editors supporting thread-safe operation on shared model | |
| instances in the workspace, model-oriented dirty state management, and | |
| editor-relative undo/redo contexts;</li> | |
| <li>Code generation interfaces supporting existing <a | |
| href="http://www.eclipse.org/modeling/m2t/">M2T</a> languages and | |
| runtimes (e.g., Xpand, MTL, JET);</li> | |
| <li>Model to model transformation interfaces supporting existing <a | |
| href="http://www.eclipse.org/m2m/">M2M</a> languages and runtimes | |
| (e.g., Xtend, QVT, ATL);</li> | |
| <li>Model search & replace using <a | |
| href="http://www.eclipse.org/modeling/emft/?project=search#search">EMF | |
| Search</a>;</li> | |
| <li>Model variant handling services using <a | |
| href="http://www.eclipse.org/proposals/feature-model/">EMF Feature | |
| Model</a>;</li> | |
| <li>Task focused modeling through integration with <a | |
| href="http://www.eclipse.org/mylyn/">Mylyn</a>;</li> | |
| <li>Dedicated communication facilities to enable effective | |
| collaboration on modeling tasks in distributed teams (e.g. by using | |
| Google Wave protocol from <a href="http://eclipse.org/ecf/">ECF</a>);</li> | |
| <li>Build system supporting mixed model-based and file-based processing | |
| (e.g., model validation, code generation, code compilation) and | |
| performing incremental, full, or continuous builds (could possibly use | |
| parts of <a href="http://wiki.eclipse.org/PDE/Incubator/b3/Proposal">B3</a>).</li> | |
| </ul> | |
| <h2>Relationship with other Eclipse Projects</h2> | |
| <ul> | |
| <li>Sphinx will be built on top of the <a | |
| href="http://www.eclipse.org/platform/">Eclipse Platform</a> and <a | |
| href="http://www.eclipse.org/modeling/emf/">EMF</a>.</li> | |
| <li>Sphinx will also use complementary components of the <a | |
| href="http://www.eclipse.org/modeling/">Eclipse Modeling Project</a> | |
| (EMP). <a | |
| href="http://www.eclipse.org/modeling/emf/?project=transaction#transaction">EMF | |
| Transaction</a>, <a | |
| href="http://www.eclipse.org/modeling/emf/?project=validation#validation">EMF | |
| Validation</a>, <a | |
| href="http://www.eclipse.org/modeling/emf/?project=compare#compare">EMF | |
| Compare</a>, and <a href="http://www.eclipse.org/modeling/gmf/">GMF</a> | |
| will be needed immediately. Others like <a | |
| href="http://www.eclipse.org/modeling/emf/?project=query2#query2">EMF | |
| Query 2</a>, <a | |
| href="http://www.eclipse.org/modeling/emf/?project=cdo#cdo">CDO</a>, <a | |
| href="http://www.eclipse.org/birt/">BIRT</a>, <a | |
| href="http://www.eclipse.org/modeling/tmf/?project=xtext#xtext">Xtext</a>, | |
| <a href="http://www.eclipse.org/proposals/graphiti/">Graphiti</a>, | |
| parts of <a href="http://www.eclipse.org/modeling/m2t/">M2T</a> and <a | |
| href="http://www.eclipse.org/m2m/">M2M</a>, <a | |
| href="http://www.eclipse.org/modeling/emft/?project=search#search">EMF | |
| Search</a>, <a href="http://www.eclipse.org/proposals/mtf/">MTF</a>, <a | |
| href="http://www.eclipse.org/proposals/feature-model/">EMF Feature | |
| Model</a>, etc. are likely to be required later on.</li> | |
| <li>Sphinx will integrate services, examples and ideas from the <a | |
| href="http://wiki.eclipse.org/Papyrus_Developer_Guide">backbone</a> of | |
| <a href="http://www.eclipse.org/modeling/mdt/?project=papyrus#papyrus">Papyrus</a>. | |
| The latter already has a service-oriented <a | |
| href="http://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus/trunk/plugins/developer/org.eclipse.papyrus.doc/architecture/sashAndCoreArchitecture.doc%20for%20details%20on%20the%20Papyrus%20backbone%20architecture">architecture</a> | |
| and will provide an important set of contributions to the Navigator | |
| View and Editor Sockets component of Sphinx (see <i>Initial components</i> | |
| for details).</li> | |
| <li>In order to enable smooth integration of modeling tools created | |
| with Sphinx with complementary non-modeling tools used in software and | |
| systems development, Sphinx will make use of related Eclipse projects | |
| and components where applicable. For example, <a | |
| href="http://www.eclipse.org/cdt/">CDT</a> could be leveraged for | |
| linking modeling with implementation by enabling navigation, | |
| validation, quick fixing, auto completion, etc. across the two. Other | |
| candidate projects are <a href="http://eclipse.org/jdt/">JDT</a>, <a | |
| href="http://eclipse.org/mylyn/">Mylyn</a>, <a | |
| href="http://eclipse.org/ecf/">ECF</a>, and <a | |
| href="http://wiki.eclipse.org/PDE/Incubator/b3/Proposal">B3</a>.</li> | |
| <li>Sphinx will make contributions to the Eclipse projects and | |
| components it is using as appropriate. Such contributions may consist | |
| of bug fixes, performance optimizations, API extensions, or utility | |
| enhancements.</li> | |
| <li>Sphinx has conceptual kind of relationships to the <a | |
| href="http://www.eclipse.org/imp/">IDE Meta-tooling Platform</a> (IMP) | |
| and <a href="http://www.eclipse.org/tigerstripe/">Tigerstripe</a> | |
| projects: | |
| <ul> | |
| <li>Since its beginnings, Eclipse has been shipped with rich | |
| integrated tool support (IDEs) for various programming languages. IMP | |
| is a project providing building blocks which are necessary to create | |
| additional IDEs for programming languages that are not yet supported | |
| under Eclipse. Introducing a similar kind of meta-tooling platform for | |
| modeling languages, the Sphinx project represents a perfect analog to | |
| IMP for the modeling world.</li> | |
| <li>Tigerstripe is a set extensible set of modeling tools targeting | |
| the telecommunications vertical domain. It encompasses an | |
| implementation and graphical editing support for a DSL derived from | |
| UML2 which is dedicated to model-based design of communication | |
| systems. It also supports model-driven development through extensible | |
| generation of application code, APIs, specifications or documentation. | |
| Tigerstripe therefore represents an example of a concrete modeling | |
| tool environment for which Sphinx could provide the meta-tooling. Even | |
| if this does not become the case in practice, it could still make | |
| sense to investigate if the two projects could benefit from each | |
| other.</li> | |
| </ul> | |
| </ul> | |
| <h2>Organization</h2> | |
| <h3>Mentors</h3> | |
| <ul> | |
| <li>Ed Merks (<a href="http://www.macromodeling.com/">Macro Modeling</a>, | |
| Canada)</li> | |
| <li>Sven Efftinge (<a href="http://www.itemis.com/">itemis</a>, | |
| Germany)</li> | |
| </ul> | |
| <h3>Proposed initial committers</h3> | |
| <p>The initial committers for this project are:</p> | |
| <ul> | |
| <li>Stephan Eberle (<a href="http://www.geensys.com/">Geensys</a>, | |
| France), lead</li> | |
| <li>Sébastien Gérard (<a | |
| href="http://www-list.cea.fr/gb/index_gb.htm">CEA LIST</a>, France), | |
| lead</li> | |
| <li>Ali Akar (<a href="http://www.geensys.com/">Geensys</a>, France)</li> | |
| <li>Yannick Didierjean (<a href="http://www.geensys.com/">Geensys</a>, | |
| France)</li> | |
| <li>Romain Sezestre (<a href="http://www.geensys.com/">Geensys</a>, | |
| France)</li> | |
| <li>Dao Hoang (<a href="http://www.gate-technology.com/">GATe Technolgy</a>, | |
| subsidiary of Geensys in Vietnam), testing</li> | |
| <li>Paul Hoser (<a href="http://www.bmw-carit.de/">BMW Car IT</a>, | |
| Germany)</li> | |
| <li>Christian Knüchel (<a href="http://www.bmw-carit.de/">BMW Car | |
| IT</a>, Germany), release engineering</li> | |
| <li>Kenn Hussey (Independent, Canada)</li> | |
| <li>Yann Tanguy (<a href="http://www-list.cea.fr/gb/index_gb.htm">CEA | |
| LIST</a>, France)</li> | |
| <li>Cédric Dumoulin (<a href="http://www.lifl.fr/">Lifl</a>, | |
| France)</li> | |
| <li>Thibault Landre (<a href="http://www.fr.atosorigin.com/">Atos | |
| Origin</a>, France)</li> | |
| </ul> | |
| <h3>Interested parties</h3> | |
| <p>The following individuals, organizations, companies, and projects | |
| have expressed interest in this project:</p> | |
| <ul> | |
| <li><a href="http://www.bosch.com/">Bosch</a>, Germany (contact: Harald | |
| Mackamul)</li> | |
| <li><a href="http://www.conti-engineering.com/">Continental Engineering | |
| Services</a>, Germany (contact: Stefan Voget)</li> | |
| <li><a href="http://www.itemis.com/">itemis</a>, Germany (contact: | |
| Andreas Graf)</li> | |
| <li><a href="http://www.mia-software.com/en/">Mia Software</a>, France | |
| (contact: Frédéric Madiot) | |
| <li><a href="http://generic-concept.com/blogs/olivier/">Olivier Moïses</a>, | |
| France (Generic Concept)</li> | |
| <li><a href="http://www.opensynergy.com/">OpenSynergy</a>, Germany | |
| (contact: Mark Brörkens)</li> | |
| <li><a href="http://www.psa-peugeot-citroen.com/">PSA Peugeot | |
| Citroën</a>, France (contact: Aldric Loyer)</li> | |
| <li><a href="http://www.pure-systems.com/">pure-systems</a>, Germany | |
| (contact: Holger Papajewski)</li> | |
| <li><a href="http://www.sap.com/">SAP</a>, Germany (contact: Bernd | |
| Kolb)</li> | |
| <li><a href="http://www.zeligsoft.com/">Zeligsoft</a>, Canada (contact: | |
| Bran Selic)</li> | |
| </ul> | |
| <h3>Code contributions</h3> | |
| <p>The initial code contribution will come from both the <a | |
| href="http://www.artop.org">Artop</a> and the <a | |
| href="http://www.eclipse.org/modeling/mdt/?project=papyrus#papyrus">Papyrus</a> | |
| project. Both projects benefit from the research project <a | |
| href="http://www.edona.fr/scripts/home/publigen/content/templates/show.asp?L=EN&P=55&vTicker=alleza">EDONA</a> | |
| which is funded by the French government and contributes a part of its | |
| results to Artop and Papyrus.</p> | |
| <h4>Artop</h4> | |
| <p>Artop is based on Eclipse and provides common base functionality for | |
| creating modeling tools supporting the <a href="http://www.autosar.org">AUTOSAR</a> | |
| standard. AUTOSAR is a design standard from the automotive industry | |
| focusing on the system architecture of control software for road | |
| vehicles, its deployment to networked ECU (Electronic Control Unit) | |
| devices in vehicles, and the configuration of the basic software in such | |
| ECUs.</p> | |
| <p>Artop essentially encompasses implementations of the different | |
| releases of the AUTOSAR meta-model (alias DSL) plus a rich set of | |
| services and components for managing and processing AUTOSAR models. A | |
| particular characteristic of Artop is the capability of handling | |
| relatively large AUTOSAR models in an efficient way. Artop therefore | |
| corresponds in almost all aspects to what is intended to be done in the | |
| Sphinx project. The only conceptional difference is that Artop is still | |
| dedicated to one specific design standard and DSL (namely AUTOSAR) in | |
| one specific vertical domain (namely automotive). Another limitation is | |
| that Artop could not be made available under <a | |
| href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public | |
| License</a> (EPL) because it contains material which is protected by | |
| AUTOSAR IP regulations and must be kept accessible to AUTOSAR members | |
| and partners only.</p> | |
| <p>Sphinx can therefore be seen as a generalization of the Artop idea | |
| aiming at a modeling tool platform for arbitrary design standards and | |
| modeling languages in arbitrary vertical domains being available under | |
| EPL. Thanks to the architecture of Artop, this can be achieved quite | |
| quickly: An important portion of the services and components in Artop | |
| has been realized in a generic way and is located in a separate layer | |
| (Eclipse Complementary Layer, ECL). It has no dependencies to the other | |
| AUTOSAR-specific layer of the platform (Artop AUTOSAR Layer, AAL) which | |
| contains the AUTOSAR meta-model implementations plus some related | |
| services and is subject to AUTOSAR IP regulations. The idea therefore is | |
| to move the complete ECL layer from Artop to Sphinx and provide mature | |
| initial implementations for the components proposed above right away.</p> | |
| <h4>Papyrus</h4> | |
| <p>Papyrus is a component of the <a | |
| href="http://www.eclipse.org/modeling/mdt/">Model Development Tools</a> | |
| (MDT) subproject aiming at providing an integrated, user-consumable | |
| environment for editing any kind of EMF model and particularly | |
| supporting <a href="http://www.uml.org/">UML</a> and related modeling | |
| languages such as <a href="http://www.sysml.org/">SysML</a> and <a | |
| href="http://www.omgmarte.org/">MARTE</a>. Papyrus provides diagram | |
| editors for EMF-based modeling languages amongst them UML 2 and SysML | |
| and the glue required for integrating these editors (GMF-based or not) | |
| with other MBD and MDSD tools. It also offers a very advanced support of | |
| UML profiles that enables users to define editors for DSLs based on the | |
| UML 2 standard and its extension mechanisms. The main feature of Papyrus | |
| regarding this latter point is a set of very powerful customization | |
| mechanisms which can be leveraged to create user-defined Papyrus | |
| perspectives and give it the same look and feel as a native DSL editor.</p> | |
| <p>Papyrus consists of a set of plug-ins which are based on the Papyrus | |
| core plug-in. This latter allows "nested editors" to be | |
| plugged in which may be based on different technologies (e.g., GEF, | |
| GMF). Papyrus core also supports multi-editor views (called sash | |
| windows) in which nested editors can be arranged side by side in tabs. | |
| The Papyrus core is designed to be open. It easily enables new nested | |
| editors to be added and transversal services to be made available to all | |
| nested editors. All model management facilities (e.g., loading, saving, | |
| synchronizing) are expected to be provided by external services. The | |
| main advantage of this architecture is its flexibility: it is possible | |
| to use the same nested editors in conjunction with different external | |
| services according to the usage context of Papyrus. Finally, another | |
| main point of Papyrus is that all nested editors share the same set of | |
| resources.</p> | |
| <p>The possible main contribution of Papyrus to Sphinx will be its core | |
| plug-in (including its capability of connecting editors to external | |
| services, its sash window support, preferences support, filtering | |
| facilities and its model explorer). This way, Sphinx can benefit from a | |
| set of services that are already used to support UML editors and | |
| graphical editors for any other EMF-based modeling language.</p> | |
| <h3>Tentative Plan</h3> | |
| <table> | |
| <tr> | |
| <td valign=top>Feb 2010:</td> | |
| <td valign=top>Proposal published and announced to Eclipse membership</td> | |
| </tr> | |
| <tr> | |
| <td valign=top>Apr/Mai 2010:</td> | |
| <td valign=top>Initial code contribution from Artop and Papyrus | |
| project</td> | |
| </tr> | |
| <tr> | |
| <td valign=top>Mai 2010:</td> | |
| <td valign=top>Start of architecture reconciliation between Artop ECL | |
| and Papyrus backbone</td> | |
| </tr> | |
| <tr> | |
| <td valign=top>Sep 2010:</td> | |
| <td valign=top>First release of Artop and Papyrus based on Sphinx | |
| initial contribution<br> | |
| (and retirement of ECL layer at Artop and Backbone in Papyrus)</td> | |
| </tr> | |
| <tr> | |
| <td valign=top>Oct 2010 - Feb 2011:</td> | |
| <td valign=top>Completion of architecture reconciliation between Artop | |
| ECL and Papyrus backbone,<br> | |
| Implementation of architectural and behavioral improvements,<br> | |
| Migration of Artop and Papyrus to consolidated Sphinx platform</td> | |
| </tr> | |
| <tr> | |
| <td valign=top>Jun 2011:</td> | |
| <td valign=top>First release of Sphinx (a part of simultaneous release | |
| train)</td> | |
| </tr> | |
| </table> | |
| <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>10-Mar-2010</td> | |
| <td>Text modifications requested by the Papyrus project. Quotation of | |
| French research project EDONA which Sphinx is benefiting from in terms | |
| of funding. Updated Tentative plan Added two new interested parties: | |
| Bosch and OpenSynergy</td> | |
| </tr> | |
| </table> | |
| </div> | |
| </div> | |
| <?php | |
| $html = ob_get_contents(); | |
| ob_end_clean(); | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |