| <!-- |
| 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> |
| <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> |
| |
| <!-- |
| 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>POP, A Polychronous Modeling Environment on Polarsys</title> |
| <style type="text/css"> |
| 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></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... |
| --> |
| |
| |
| |
| <body> |
| <p>The Polychrony project is a proposed open source project under the |
| <a href="http://www.polarsys.org/">Polarsys Top-Level Project</a>, which is operating under the auspices of the Polarsys Industry Working Group.</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. |
| --> |
| |
| <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. |
| --> |
| <p> |
| The Eclipse Polychrony project provides a Signal Integrated Development Environment based on the Eclipse platform (Signal is a specification and programing language for critical/real-time embedded applications).</p> |
| |
| |
| <p>This project, also referred to as SSME platform, includes the meta-model of Signal under Eclipse (SSME), a reflexive editor, a code editor with syntax highlighting, an Eclipse view to create compilation scenarios, the import of some other formalisms (aadl, Geneauto/simulink).</p> |
| <p> It provides access to the other elements of the whole Polychrony Toolset (see figure): |
| <ul> |
| <li> The Signal Toolbox, a batch compiler for the Signal language (command line out of Eclipse), and a structured API that provides a set |
| of program transformations. It can be installed without the other components. </li> |
| |
| <li> The Signal GUI, a graphical user interface to the Signal Toolbox (editor + interactive access to compiling functionalities of the Signal ToolBox). It requires |
| the Signal Toolbox. It can be used as Signal GUI editor under Eclipse.</li> |
| </ul> |
| </p> |
| <figure> |
| <img src="PolychronyToolsetMap.jpg" alt="The Polychrony Toolset" width="480px"> |
| </figure> |
| |
| <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. |
| --> |
| <p><b>Signal</b> (<a href="http://www.irisa.fr/espresso/polychrony">Polychrony web site</a>) is a specification and programing language for critical/real-time embedded applications. The main features of the <b>Signal</b> languages are:</p> |
| <ul> |
| <li> synchronized flows (flows + synchronization) and</li> |
| <li> processes: a process is (recursively) a set of equations over synchronized flows describing both data and control. </li> |
| </ul> |
| <p>The <b>Signal</b> formal model provides the capability to describe |
| systems with several clocks (polychronous systems) as relational |
| specifications. |
| Relations are mandatory to write partial specifications, to specify |
| non-deterministic devices (for instance a non-deterministic bus), and to |
| |
| abstract the behavior of external processes.</p> |
| <p> |
| Using <b>Signal</b> allows to specify an application, to design an |
| architecture, to refine detailed components downto RTOS or hardware |
| description. |
| The <b>Signal</b> model supports a design methodology which goes from |
| specification to implementation, from abstraction to concretization, |
| from synchrony to asynchrony. |
| More details can be found in a short introduction to <b>Signal</b> language <a href="http://www.irisa.fr/espresso/polychrony/introToSignal.php">here</a>. |
| </p> |
| |
| The Polychrony Toolset, based on the <b>Signal</b> language, provides a formal framework: |
| <ul> |
| <li> to validate a design at different levels, by the way of formal verification and/or simulation </li> |
| <li> to refine descriptions in a top-down approach,</li> |
| <li> to abstract properties needed for black-box composition,</li> |
| <li> to assemble heterogeneous predefined components (bottom-up with COTS).</li> |
| <li> to generate executable code for various architectures.</li> |
| </ul> |
| |
| <p>Polychrony offers services for modeling application programs and |
| architectures starting from high-level and heterogeneous input notations |
| and formalisms. These models are imported in Polychrony using the |
| data-flow notation Signal. Polychrony operates these models by performing global transformations |
| and optimizations on them (hierarchization of control, desynchronization |
| protocol synthesis, separate compilation, clustering, abstraction) |
| in order to deploy them on mission specific target architectures. C, |
| C++, multi-threaded and <a href="http://www-rocq.inria.fr/syndex">SynDEx</a> (a distribution tool) code generators are provided.</p> |
| <a href="http://www.irisa.fr/vertecs/Logiciels/sigali.html"> Sigali </a> and <a href="http://hal.inria.fr/inria-00262442"> Fiacre </a> code generators for formal verifications are also provided. |
| |
| |
| <h2>Relationship with Eclipse Projects</h2> |
| |
| <p>The Polychrony plug-ins under Eclipse suite is composed of several |
| plug-ins which correspond to: the reflexive editor and an Eclipse view to create |
| compilation scenarios, and the connection to the Polychrony Signal |
| ToolBox services. |
| The reflexive editor is the plug-in generated by the Eclipse Modeling |
| Framework (EMF) from the meta-model of Signal (SSME).</p> |
| |
| <p>Moreover, the import of the AADL formalism requires the <a href="http://aadl.sei.cmu.edu/aadl/osate/updates/2.0">Osate Eclipse plug-ins</a> and |
| the Eclipse plug-ins developed for the standardized Behavior Model Annex of AADL (see <a href="http://penelope.enst.fr/aadl"> Telecom ParisTech AADL corner</a>). |
| It requires the Eclipse Xtext project.</p> |
| |
| |
| <h2>Why Polarsys?</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? |
| --> |
| |
| <p>Polychrony is an environment for the definition of <b>critical/embedded systems</b>. The use of the <b>formal methods</b> |
| implemented in Polychrony |
| may be useful to Polarsys community because formal design frameworks |
| provide well-defined mathematical models that yield a rigorous |
| methodological |
| support for the trusted design, automatic validation, and systematic |
| test-case generation of systems.</p> |
| |
| <p>Our goal is to generalize the use of <b>formal methods</b> implemented in Polychrony by making them accessible in more popular framework, used |
| by thousands of users and companies.</p> |
| |
| <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. |
| --> |
| <p>There will be an initial contribution of Polychrony toolset: |
| Polychrony has been integrated under the experimental Polarsys platform |
| during the OPEES project. |
| This integration of Polychrony under this platform has been realized in |
| collaboration with the CS company.</p> |
| <p>CS and INRIA have produced the Polychrony experimentation report which is included in the global experimentation report. |
| For the qualification of the Polychrony component on the Polarsys platform, CS and INRIA provide the following documents: |
| </p> |
| <ul> |
| <li> The Tool Quality Assurance Plan Template (TQAP). This document |
| defines the OPEES quality assurance arrangements and gives some guidance |
| to |
| satisfy them. It focuses on qualification aspects and gives in |
| appendices guidance for some criteria tool qualification with an example |
| for Polychrony Tool.</li> |
| <li> The Tool Verification Cases and Procedures (TVCP) document. It presents the tests cases to be performed for the qualification |
| of Polarsys Polychrony Verifier component as described in the TQAP.</li> |
| <li> The Tool Verification Results (TVR). It presents the results of |
| tests performed for the qualification of Polychrony Verifier on several |
| operating systems, as described in the TQAP.</li> |
| </ul> |
| |
| |
| <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? |
| --> |
| <p>The SSME platform and the AADL to Signal translator are under Eclipse Public License. |
| The Signal toolbox and the Signal GUI are under <a href="http://www.gnu.org/licenses/gpl-2.0.html">GPL-V2 license</a>. |
| So, the source of the Signal Toolbox and the Signal GUI will not be under the Polarsys repository. It is available on the |
| <a href="http://www.irisa.fr/espresso/Polychrony/download.php"> Espresso web site</a>.</p> |
| |
| <p>The Signal Toolbox is an Eclipse feature. This feature is composed of |
| a set of plugins in which fragments are defined (operating system and |
| architecture dependent). Such a plug-in provides the Signal ToolBox as an external dynamical |
| library because the Eclipse Polychrony calls interactively the functionalities of the Signal ToolBox. |
| This feature is also available on <a href="http://www.irisa.fr/espresso/Polychrony/update"> the update site of the Espresso web site</a>.</p> |
| |
| <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>Loïc Besnard, CNRS </dt> |
| <dd>Loïc Besnard is part of the Polychrony development team for several |
| years. He will provide the implementation of the |
| transformations applied to a Signal program defined in the |
| Signal toolbox, the SSME platform, and the inter-format translators. |
| </dd> |
| <dt>Thierry Gautier, INRIA</dt> |
| <dd>Thierry Gautier has provided significant contributions to the |
| existing code base and the definition of the Signal Syntax. He will |
| contribute to the evolution of the |
| Signal language (a new version is scheduled in 2013).</dd> |
| <dt>Paul Le Guernic, INRIA</dt> |
| <dd>Paul Le Guernic has designed the Signal language. It has provided |
| significant contributions to the existing code base and the definition |
| of the Signal Syntax. He will contribute |
| to the evolution of the Signal language.</dd> |
| |
| </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>Project Leads</h2> |
| <dl> |
| <dt>Jean-Pierre Talpin, INRIA</dt> |
| <dd> |
| Dr. Jean-Pierre Talpin is Directeur de Recherche at INRIA and, since |
| 2000, scientific leader of INRIA project-team Espresso, comprising 4 |
| full-time researchers and between 10-15 members in total. Jean-Pierre |
| Talpin received a Ph.D. Degree in Computer Science (1993) from the |
| University of Paris VI Pierre et Marie Curie for the Thesis he prepared |
| at Ecole des Mines de Paris. He worked as Research Associate at the |
| European Computer-Industry Research in Munich before to join INRIA in |
| 1995. He served eight years as elected member of INRIA's evaluation |
| commission (2002-2009). He coordinated OpenEmbeDD, the first ANR |
| platform project, from 2006 to 2009, which was commended as leading |
| project at its final evaluation and continued with the ITEA2 project |
| OPEES, where he served as work-package leader. Jean-Pierre Talpin is |
| co-editor of two scientific books and fourteen special issues of |
| international scientific journals and conference proceedings. He |
| co-authored more than ninety book chapters, scientific journal articles |
| and international conference papers. In 2005, he received the ACM |
| SIGPLAN Award of the most influential POPL paper for his article with |
| Mads Tofte presented at POPL'94. In 2012, he received the ACM/IEEE LICS |
| Test-of-Time Award for his LICS'92 article with Pierre Jouvelot. |
| </dd> |
| </dl> |
| |
| <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>Naci Dai</li> |
| <li>Michael Scharf</li> |
| <li>Cedric Brun</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>Airbus</li> |
| <li>Brest University</li> |
| <li>CS</li> |
| <li>Ellidiss Technologies</li> |
| <li>INRIA, Aoste Team</li> |
| <li>Kaiserslautern University, Embedded system group</li> |
| <li>Rennes University</li> |
| <li>RockwellCollins France</li> |
| <li>Shenzhen Institutes of Advanced Technology of China</li> |
| <li>Topcased community</li> |
| <li>Virginia Tech., Fermat laboratory</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. |
| --> |
| As said before, Polychrony has been integrated in the experimental Polarsys platform. |
| The first build is ready for the following platforms: Windows (32-64 bits), Linux (32-64 bits), and MacOS. |
| <br> |
| Polychrony project scheduling will be aligned on the planning of <a href="http://www.eclipse.org/proposals/polarsys.3p">the Polarsys 3P proposal</a>: |
| <ul> |
| <li> April 2013: releasing PolarSys IDE milestone 1.0M1</li> |
| <li> July 2013: releasing PolarSys IDE milesonte 1.0M2</li> |
| <li> Oct 2013: PolarSys IDE 1.0, aligned on Kepler, platforms: Windows (64 bits), Linux (64 bits), MAC, Solaris</li> |
| </ul> |
| Forthcoming releases of PolarSys IDE will be aligned on the planning of the Eclipse release train. |
| |
| |
| <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>11-Sept-2013</td> |
| <td>Proposed project named changed to "POP, A Polychronous Modeling Environment on Polarsys"</td> |
| </tr> |
| </table> |
| |
| |
| |
| |
| </body></html> |