blob: 1d36d34b58d5ecb8594d1f160f4a9c00a9a1eb5c [file] [log] [blame]
<!doctype html>
<html>
<link rel="icon" type="image/png" href="favicon.ico" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CHESS</title>
<link rel="stylesheet" href="styles.css" type="text/css" />
</head>
<body>
<header>
<div class="logo-left width">
<a href="index.html"><img src="images/chess-logo.png" alt="CHESS logo" width=""></a>
</div>
</header>
<nav>
<div class="width">
<ul>
<li class="start"><a href="index.html">Home</a></li>
<li class="divider-vertical-second-menu"></li>
<li class="selected"><a href="features.html">Features</a></li>
<li class="divider-vertical-second-menu"></li>
<li><a href="start.html">Getting Started</a></li>
<li class="divider-vertical-second-menu"></li>
<li><a href="events.html">Events</a></li>
<li class="divider-vertical-second-menu"></li>
<li class="end"><a href="community.html">Community</a></li>
<li style="text-align:right;"><a href="download.html" class="box">Download</a></li>
<li style="float:none;"><br style="clear:both;" /></li>
</ul>
</div>
</nav>
<div id="hrdiv">
<img src="images/bg_breadcrumb.jpg" width="" alt="" height="" />
</div>
<div id="body" class="width-started">
<article class="expanded">
<ul class="tabs">
<li>
<input name="tabs" id="tab1" checked="" type="radio">
<label for="tab1">Features</label>
<div id="tab-content1" class="tab-content">
<p>
<h3>CHESS Profile</h3>
<p>
The CHESS UML profile:
<ul class="listInTabs">
<li>restricts the set of MARTE, SysML and UML entities that can be created in the CHESS model, </li>
<li>provides the set of stereotypes required to enable the user to work with the CHESS
component model, </li>
<li>provides some MARTE stereotypes extensions to allow the specification of
computation-independent real-time properties, </li>
<li>defines a new set of stereotypes for the support of dependability modeling and contract-based design.</li>
</ul>
</p>
<p>
<h3>CHESS Editor</h3>
<p>
The CHESS editor extends the Papyrus UML editor and is activated when a CHESS model is created
or opened (see <a href="#figure1">Figure 1</a>).
</p>
<p>
A CHESS model is a UML model with the CHESS profile applied to it; creating a CHESS model and
applying the CHESS profile can be done using a dedicated wizard.
</p>
<p>
The CHESS editor allows working with the Papyrus UML by using the CHESS design views.
Each design view applies specific constraints on the UML diagrams and entities that can be
created, viewed or edited in that view.
</p>
<p>
The CHESS editor allows switching between views. It also keeps the status of the current view
and during the modeling activity prevents the modeler from violating the constraints defined for
the current diagram-view pair.
</p>
<p>
The native Papyrus palettes have been customized in order to show only the entities that are
allowed to be created in the current diagram view.
</p>
<p>
<h4>CHESS Views</h4>
<p>
The views defined in CHESS are the requirement, system, component, deployment and analysis views.
</p>
<p>
The requirement view is used to model requirements by using the standard requirement diagram
from SysML.
</p>
<p>
</p>
<p>
The system view is used to model system entities by using SysML; it is an ongoing development
that has been recently introduced in CHESS in order to support the system to software
co-engineering phase.
</p>
<p>
The component view is used to model CHESS software components (also called the PIM model):
is actually composed by two sub-views, the functional and the extra-functional ones, according
to the CHESS separation of concerns principle.
</p>
<p>
The functional view allows the functional specification of the CHESS components (see <a href="#figure1">Figure 1</a>
and <a href="#figure2">Figure 2</a>).
</p>
<p>
<a id="figure1"><img style="background: #fff; box-shadow: 0px 0px 6px #111;" alt="CHESS Component View Types" src="images/compFunViewTypes.png" width="85%"/></a>
<div class="caption">Figure 1: Component View - Functional View - Component Types</div>
</p>
<p>
<a id="figure2"><img style="background: #fff; box-shadow: 0px 0px 6px #111;" alt="CHESS Component View Instances" src="images/compFunViewInstances.png" width="85%"/></a>
<div class="caption">Figure 2: Component View - Functional View - Component Instances</div>
</p>
<p>
The extra functional view (see <a href="#figure3">Figure 3</a>) allows the specification of real time properties
like periodic and sporadic activation patterns, worst-case execution time and deadline.
Regarding dependability it supports the specification of error models (i.e. fault-error-failure
chains) for software and offers the possibility for the user to specify probabilistic values
related to fault occurrence and failure propagation between components.
</p>
<p>
<a id="figure3"><img style="background: #fff; box-shadow: 0px 0px 6px #111;" alt="CHESS Component View Extra Functional View" src="images/compExtraFunViewInstances.jpg" width="85%"/></a>
<div class="caption">Figure 3: Component View - Extra Functional View - Component Instances</div>
</p>
<p>
The deployment view (<a href="#figure4">Figure 4</a>) is used to describe the hardware platform where the software runs
(i.e. CPUs, buses) and software to hardware components allocation. Dependability properties can be
provided for the hardware as for the software components. Moreover failures propagation from hardware to
software can be specified.
</p>
<p>
<a id="figure4"><img style="background: #fff; box-shadow: 0px 0px 6px #111;" alt="CHESS Deployment View" src="images/deplView.jpg" width="85%"/></a>
<div class="caption">Figure 4: Deployment View - HW Component instance and SW allocation</div>
</p>
<p>
The analysis view (<a href="#figure5">Figure 5</a>) is used to provide information needed to run the specific analysis;
in particular it is currently useful to set the information about the dependability measure of interest
(i.e. reliability or availability) that needs to be evaluated.
</p>
<p>
<a id="figure5"><img style="background: #fff; box-shadow: 0px 0px 6px #111;" alt="CHESS Analysis View" src="images/analView.jpg" width="85%"/></a>
<div class="caption">Figure 5: Analysis View</div>
</p>
<p>
<h3>Model validator</h3>
<p>
For reasons of practicality, not all the constraints posed by the CHESS methodology on the model
formalisms and contents can be enforced on the fly during user modeling; some of them must be
checked in a batch mode. To this end the CHESS editor extends the standard UML model validator
which ad-hoc checks that the user model conforms with the constraints imposed by the CHESS
methodology, for example the well-formedness of entities, attributes, relations.
</p>
<p>
<a id="figure6"><img style="background: #fff; box-shadow: 0px 0px 6px #111;" alt="Invoking CHESS model validator" src="images/callModelValidator.png" width="85%"/></a>
<div class="caption">Figure 6: Invoking CHESS model validator</div>
</p>
<p>
<h3>Model transformations</h3>
<p>
CHESS supports model-based analysis of the systems for schedulability, dependability, as
well as code generation from model. Both features are implemented through model transformations
which are invoked through the CHESS editor menu.
<p>
Dependability analysis currently supported are:
<ul class="listInTabs">
<li>failure propagation analysis,</li>
<li>state-based quantitative analysis.</li>
</ul>
</p>
Integration with OCRA external tool for formal verification of contract refinement is implemented.
</p>
<h4>Schedulability Analysis and Ada 2005 Code Generation</h4>
<p>
Schedulability analysis allows the calculation of the worst case response time for each declared
periodic or sporadic activity. The analysis results are back propagated to the proper PIM
components, also a summary report is provided to the user (see <a href="#figure7">Figure 7</a>). The intent of the
back-propagation feature is that the user need not be concerned with the specifics of the
analysis tool and need not learn its input and output formats: back-propagation decorates
the user model with the relevant information that results from the analysis in full transparency
from the analysis engine and its actual operation.
</p>
<p>
<a id="figure7"><img style="background: #fff; box-shadow: 0px 0px 6px #111;" alt="CHESS Schedulability Analysis Report" src="images/schedAnalReport.png" width="85%"/></a>
<div class="caption">Figure 7: Schedulability Analysis Report</div>
</p>
<p>
The real-time properties of interest like period, offset and minimal inter-arrival time are
specified in the model through a dedicated declarative language defined in the CHESS profile.
The aforementioned properties are then automatically applied to the model implementation through
model transformation in accord with the computational model chosen by the user. At the present
time, CHESS supports the Ravenscar Computational Model [1] which meets the requirements of a
large spectrum of real-time application domains. The generated implementation (called the PSM,
for platform-specific model) is then given in input to the schedulability analysis and it also
used during the code generation phase:
</p>
<p>
The preservation of other real-time properties related to the execution time like WCET and
deadline is also enforced in the generated code through dedicated checks by using specific
API of the target run-time environment (this feature is an on-going development).
</p>
<p>
This approach guarantees the preservation of the real-time properties statically assumed in the
PIM and PSM models, and verified by the analysis down to the code.
</p>
<p>
The schedulability analysis is performed by using an adaptation of the third-party MAST tool
developed and distributed by the University of Cantabria [2].
</p>
<p>
Regarding the transformation chain (<a href="#figure8">Figure 8</a>), first the CHESS PIM is transformed into the
PSM model by using QVT-o. Then the PSM is transformed into the MAST input by using Acceleo and
Java. Regarding the back propagation, Java is used first to load the MAST results into the PSM,
then QVT-o traces are used to propagate the results back to the PIM model.
</p>
<p>
<a id="figure8"><img style="background: #fff; box-shadow: 0px 0px 6px #111;" alt="CHESS Transformation chain" src="images/transChain.png" width="85%"/></a>
<div class="caption">Figure 8: Transformation chain</div>
</p>
<p>
[1]A. Burns, B. Dobbing, T. Vardanega. Guide to the Use of the Ada Ravenscar Profile in High Integrity Systems. Technical Report YCS-2003-348. University of York (UK), 2003. Available at <a href="http://www.sigada.org/ada_letters/jun2004/ravenscar_article.pdf"> http://www.sigada.org/ada_letters/jun2004/ravenscar_article.pdf.</a> </br>
[2]Universidad de Cantabria. Mast: Modeling and Analysis Suite for Real-Time Applications. <a href="http://mast.unican.es/"> http://mast.unican.es/</a>
</p>
</li>
<!--li>
<input name="tabs" id="tab2" type="radio">
<label for="tab2">Example</label>
<div id="tab-content2" class="tab-content">
<p>CHESS model example currently not available</p>
<h3>CHESS Model</h3>
<p style="text-align: left; padding:10px;">
CHESS model example
</p>
</div>
</li>
<li>
<input name="tabs" id="tab3" type="radio">
<label for="tab3">Videos</label>
<div id="tab-content3" class="tab-content">
<p>CHESS modeling video currently not available</p>
<h3>CHESS Video</h3>
<p style="text-align: left; padding:10px;">
CHESS model example
</p>
</div>
</li-->
</ul>
</article>
</div>
<div class="clear"></div>
<footer id="footer-features">
<div class="footer-content width">
<ul>
<li><h4>PolarSys</h4></li>
<li><a href="http://www.polarsys.org/about-us">About</a></li>
<li><a href="http://www.polarsys.org/contact-us">Contact Us</a></li>
<li><a href="http://www.polarsys.org/projects/polarsys.chess">CHESS Project Page</a></li>
</ul>
<ul>
<li><h4>Legal</h4></li>
<li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
<li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
<li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
<li><a href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License</a></li>
<li><a href="http://www.eclipse.org/legal/">Legal Resources</a></li>
</ul>
<ul>
<li><h4>Useful Links</h4></li>
<li><a href="http://polarsys.org/bugs/describecomponents.cgi?product=CHESS">Report a Bug</a></li>
<li><a href="http://polarsys.org/wiki/CHESS">Documentation</a></li>
<li><a href="http://polarsys.org/wiki/CHESS/Technical_Information">How to Contribute</a></li>
<li><a href="http://polarsys.org/mailman/listinfo/chess-dev">Mailing List</a></li>
<li><a href="http://polarsys.org/forums/index.php/f/9/">Forum</a></li>
</ul>
<ul class="endfooter">
<li><h4>Other</h4></li>
<li><a href="http://www.intecs.it/">Intecs</a></li>
<li><a href="http://www.unipd.it">University of Padova</a></li>
</ul>
<table>
<tr>
<td>
<a href="http://www.polarsys.org/"><img src="images/polarsys.png" alt="PolarSys logo" width="250"></a>
<br />
<br />
</td>
<td>
<div class="right-footer">
<a href="http://www.eclipse.org/"><img src="images/eclipse.png" alt="Eclipse logo"></a>
<br />
Copyright © <span id="year">2016</span> The Eclipse Foundation. <br /> All Rights Reserved.
</div>
</td>
</tr>
</table>
<div class="clear"></div>
</div>
</footer>
</body>
</html>