| <?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); |
| ?> |