blob: 2a91a14b75c4aeee40edbf7e3601788516409fd8 [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>
<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&iuml;c Besnard, CNRS </dt>
<dd>Lo&iuml;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 &quot;POP, A Polychronous Modeling Environment on Polarsys&quot;</td>
</tr>
</table>
</body></html>