<!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/logo_chess_350.gif" alt="CHESS logo" width=""></a>
		</div>
	</header>
	<nav>
		
		<div class="width">
			<ul>
				<li class="start selected"><a href="index.html">Home</a></li>
				<li class="divider-vertical-second-menu"></li>
				<li><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">
		
		<section id="content">
				<br />
			<article class="expanded" id="construction">
				<table>		
					<tr>
						<th>
							<h3>A new version of the CHESS toolset is available! See the <a href="start.html"><b>getting started page</b>.</a></h3>
							
							<!--
							<ul>
								<li>you can update your CONCERTO Eclipse environment by using the Eclipse "install new software" feature with the CONCERTO update site 
								<br><tt> https://sites.google.com/site/concertointecs/updatesite</tt> </li>
								<li>For more information about installing or updating software, see the CHESS Documentation.
							</ul>
							-->
						</th>
					</tr>
				</table>
			</article>			
				
			<article class="expanded">

				<h3>Background</h3>
				<p>
					Distributed dependable real-time embedded software systems, like Satellite on board software, 
					are becoming increasingly complex due to the demand for extended functionalities or the reuse of 
					legacy code and components. Model-Driven Engineering (MDE) approaches are good solutions to help 
					build such complex systems. Addressing domain specific modeling (like component description and 
					interaction, real-time constraints, ...) while keeping the flexibility and generality offered by 
					languages like UML is a challenge in a context where software must be qualified according to safety 
					and reliability standards.
				</p>
				<p>
					That's why the CHESS project was created to address the development of high-integrity embedded 
					systems by combining component-based development on top of model driven engineering and addressing 
					dependability and real-time specific constraints.
				</p>
				
				<h3>Scope</h3>
				<p>
					The CHESS project provides a model-driven, component-based methodology [1] and tool support for the development of high-integrity systems for different domains. The methodology is particularly suited for space systems and industrial domains.
				</p>
				<p>
					Thanks to a dedicated MARTE and UML profile and associated tooling, CHESS addresses solutions 
					to problems of property-preserving component assembly in real-time and dependable embedded 
					systems, and supports the description, verification, and preservation of real-time properties 
					(like sporadic/periodic activation patterns, worst case execution time, deadline) of software 
					components at the level of component design down to the execution level.
				</p>
				<p>
					CHESS also addresses the description and verification of system and component dependability 
					properties (like fault, error, failures and failures propagations); however it is worth 
					mentioning here that the dependability support (also described later in the proposal) is not 
					part of the current CHESS contribution.
				</p>
				<p>
					CHESS tooling extends Papyrus editor to properly support the CHESS methodology, in particular 
					allowing working with different views on the model including requirements, system, components, 
					deployment and analysis view.
				</p>
				
				
				<h3>Description</h3>
				<p>
					CHESS implements the CHESS UML profile, a specialization of the Modeling and Analysis of 
					Real-Time and Embedded Systems (MARTE) profile, by producing extensions to Papyrus that provide 
					component-based engineering methodology and tool support for the development of high-integrity 
					embedded systems in different domains like satellite on board systems
				</p>
				<p>
					The CHESS tool environment is composed by: (1) a MARTE/UML profile, (2) an extension to the 
					Papyrus UML graphical editor that supports the notion of design views, (3) a model validator 
					that assesses the well-formedness of the model before model transformations can be undertaken, 
					and (4) a set of model to model and model to text transformations, the former for the purpose 
					of model-based schedulability and dependability analysis and the latter for code generation 
					toward multiple language targets.
				</p>
				

				<br />
				
			</article>
		</section>
		
		<aside class="sidebar">
	
			<ul>	
				<li>
					<h4>News</h4>
					<ul>
						<li><b>CHESS tool v.0.9.0 is available!</b></li>
					</ul>
				</li>
				<li>
					<br />
					&nbsp;&nbsp;&nbsp;
					<a href="http://www.eclipse.org/projects/what-is-incubation.php"><img src="images/egg-incubation.png" alt="incubation"/></a>
					&nbsp;&nbsp;&nbsp;
					
				</li>
				
			</ul>
		</aside>
		
		
		<div class="clear"></div>
	</div>
	
	<footer>
		<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="//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">2014</span> The Eclipse Foundation. <br /> All Rights Reserved.
						</div>
					</td>
				</tr>
			</table>
		
			<div class="clear"></div>			
		</div>
   
	</footer>
</body>
</html>