<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
    <meta name="author" content="Aurelien Didier for Artal Technologies">
    
    <meta name="keywords" content="" />
    <meta name="generator" content="Hugo 0.30.2" />
    <link href="//fonts.googleapis.com/css?family=Open+Sans:400,700,300,600,100" rel="stylesheet" type="text/css">
    <link rel="shortcut icon" href="https://polarsys.org/time4sys/public/images/favicon.ico"/>
    <title>Time4Sys</title>
    <meta property="og:title" content="" />
    <meta property="og:description" content="The Time4Sys project" />
    <meta property="og:image" content="https://polarsys.org/time4sys/images/logo.png" />
    <link rel="stylesheet" href="https://polarsys.org/time4sys/public/css/solstice.css">
    
    <link href="https://polarsys.org/time4sys/index.xml" rel="alternate" type="application/rss+xml" title="Time4Sys" />
    <link href="https://polarsys.org/time4sys/index.xml" rel="feed" type="application/rss+xml" title="Time4Sys" />
    
    
    
  </head>
  <body class="" id="body_solstice">
    <a class="sr-only" href="#content">Skip to main content</a>
    <header role="banner">
      <div class="container">
        <div id="row-logo-search">
          <div id="header-left" class="col-sm-14 col-md-16 col-lg-19">
            <div class="row">
              <div class="hidden-xs">
                <a href="https://polarsys.org/time4sys/"><img src="https://polarsys.org/time4sys/images/logo.png" class="logo-eclipse-default"/></a>
              </div>
              <div id="main-menu" class="navbar row yamm">
                <div id="navbar-collapse-1" class="navbar-collapse collapse">
                  <ul class="nav navbar-nav">
                    


<li>
  <a class="" href="/time4sys/">
  
  Home
  </a>
  
</li>


<li>
  <a class="" href="/time4sys/documentation/">
  
  Documentation
  </a>
  
</li>


<li>
  <a class="" href="/time4sys/community/">
  
  Community
  </a>
  
</li>


<li>
  <a class="" href="/time4sys/videos/">
  
  Videos
  </a>
  
</li>


<li>
  <a class="" href="/time4sys/about/">
  
  About
  </a>
  
</li>

<li class="dropdown">
  <a data-toggle="dropdown" class="dropdown-toggle">More @ Eclipse<b class="caret"></b></a>
  <ul class="dropdown-menu">
    <li>
      
      <div class="yamm-content">
        <div class="row">
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Community</strong></p>
            </li>
            <li><a href="http://marketplace.eclipse.org">Marketplace</a></li>
            <li><a href="http://events.eclipse.org">Events</a></li>
            <li><a href="http://www.planeteclipse.org/">Planet Eclipse</a></li>
            <li><a href="https://eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Participate</strong></p>
            </li>
            <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
            <li><a href="https://eclipse.org/forums/">Forums</a></li>
            <li><a href="https://eclipse.org/mail/">Mailing Lists</a></li>
            <li><a href="https://wiki.eclipse.org/">Wiki</a></li>
            <li><a href="https://wiki.eclipse.org/IRC">IRC</a></li>
            <li><a href="https://eclipse.org/contribute/">How to Contribute</a></li>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Working Groups</strong></p>
            </li>
            <li><a href="http://wiki.eclipse.org/Auto_IWG">Automotive</a></li>
            <li><a href="http://iot.eclipse.org">Internet of Things</a></li>
            <li><a href="http://locationtech.org">LocationTech</a></li>
            <li><a href="http://lts.eclipse.org">Long-Term Support</a></li>
            <li><a href="http://polarsys.org">PolarSys</a></li>
            <li><a href="http://science.eclipse.org">Science</a></li>
            <li><a href="http://www.openmdm.org">OpenMDM</a></li>
          </ul>
        </div>
      </div>
    </li>
  </ul>
</li>


                  </ul>
                </div>
                <div class="navbar-header">
                  <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">
                  <span class="sr-only">Toggle navigation</span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  <span class="icon-bar"></span>
                  </button>
                  <a href="https://polarsys.org/time4sys/" class="navbar-brand visible-xs"><img src="https://polarsys.org/time4sys/public/images/logo/APP4MCLogo.png" alt="APP4MC logo" width="174" class="logo-eclipse-default"/></a>
                </div>
              </div>
            </div>
          </div>
          <div id="header-right" class="form-inline col-sm-10 col-md-8 col-lg-5 hidden-print hidden-xs">
            <div id="header-right-container">
              <div id="custom-search-form" class="reset-box-sizing">
  <script>
    (function() {
      var cx = '011805775785170369411:15ipmpflp-0';
      var gcse = document.createElement('script');
      gcse.type = 'text/javascript';
      gcse.async = true;
      gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
          '//cse.google.com/cse.js?cx=' + cx;
      var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(gcse, s);
    })();
  </script>
  <gcse:searchbox-only></gcse:searchbox-only>
</div>

              
              <a id="btn-call-for-action" href="https://polarsys.org/time4sys//downloads" class="btn btn-huge btn-warning"><i class="fa fa-download"></i> Download</a>
            </div>
          </div>
        </div>
      </div>
    </header>
    <section id="breadcrumb" class="defaut-breadcrumbs hidden-print">
  <div class="container">
    <h3 class="sr-only">Breadcrumbs</h3>
    <div class="col-xs-24">
      
      
      <ol class="breadcrumb">
        <li><a href="/">home</a></li>
        <li><a href="https://polarsys.org/time4sys/">Time4Sys</a></li>
        
        
        
        
      </ol>
    </div>
  </div>
</section>

    <main role="main" class=" no-promo">
    <div class="container background-image-none" id="novaContent">
    

<div class="container">

	<div class="row">
	<div class="">
	<div class="col-sm-16">
		<h1>Time4Sys</h1>
		
			

<hr />

<h2 id="context">Context</h2>

<p>Usually, the industrial practices rely on the subjective judgment of experienced software architects and developers to predict how design decisions may impact the timing behavior of real-time embedded systems. This is however risky since eventual timing errors are only detected after implementation and integration, when the software execution can be tested on system level, under realistic conditions. At this stage, timing errors may be very costly and time consuming to correct. Therefore, to overcome this problem there is a need for efficient, reliable and automated timing estimation methods applicable already at early design stages and continuing throughout the whole development cycle.
ntroducing timing verification activities into the design process of real-time embedded systems has always been a challenge as the inputs required for the verification, in particular the worst-case execution time and the system behavior description, are moving target all across the different design phases. Thanks to the introduction of model based methods (in particular viewpoints for non-functional properties) in the industrial development process [4], this goal seems to be reachable for model-based verification techniques, such as simulation, scheduling analysis or model-checking. Starting from very high level system architecture and rough timing allocations, the model-based timing verification has to be refined at each step of the project (architectural design, detailed design, coding, unit test and software validation phases) down to concrete timing measurements on the final system. A major problem however persists: model-based timing verification techniques are often not directly applicable to conceptual design due to the semantic gaps between their respective models. Solving this issue is essential to break the remaining walls separating model-based timing verification from the development process of real-time embedded systems, and to enable its use in the industry.</p>

<h2 id="polarsys-time4sys">PolarSys Time4Sys</h2>

<p>PolarSys Time4Sys is a timing performance framework that fills the semantic gaps between the design models of real-time systems and the models of timing verification tools. Time4Sys is composed of two building blocks (the Design and the Verification pivot models) as well as a set of transformation rules between them. Both pivot models are based on the Time4Sys meta-model.
Time4Sys uses a subset of the MARTE OMG standard [7] as a basis to represent a synthetic view of the system design model that captures all elements, data and properties impacting the system timing behavior and required to perform timing verification (e.g. tasks mapping on processors, communication links, execution times, scheduling parameters, etc.). Time4Sys is not limited to the use of a particular design modeling tool and environment. It can be connected to various environments and languages such as UML, SysML [6], AADL [5], or any other proprietary environment (e.g. Capella).</p>

<p>
<img src="images/BridgeBetweenModelAndResult.png" class="img-responsive">
<br />
</p>

<p>Scheduling analysis and simulation are seldom directly applicable to the conceptual design models in general and to Time4Sys Design models in particular due to the semantic mismatch between the latter and the variety of analysis and simulation models known from the classical real time systems research and represented by academic and commercial tools. Transformation rules are therefore required to generate a Time4Sys Verification model preserving the timing behavior modeled in the corresponding Time4Sys Design model, while ensuring the compatibility with the variety of existing timing verification tools. After timing verification in the selected tool, results are injected in Time4Sys Verification model. Then, they are translated to be compliant with the original design model and injected back in Time4Sys Design.</p>

<h2 id="time4sys-architecture">Time4Sys Architecture</h2>

<p>By using MDE settings, Time4Sys is being developed as an Eclipse Polarsys plugin. Time4Sys proposes four capabilities: modeling and viewing the Time4sys model, A dedicated meta-model based on the MARTE standard (available for download), model transformations able to transform and adapt Time4sys model for verifications tool and connectors to import/export models from design tools and verifications tools.</p>

<p>
<img src="images/PlatformArchitecture.png" class="img-responsive">
<br />
</p>

<h4 id="time4sys-meta-models">Time4Sys meta-models:</h4>

<p>The Time4Sys framework is composed by 4 Meta-models:</p>

<ul>
<li>The MARTE meta-model which implement the MARTE standard Language to capture all concepts related to model real-time software and embedded hardware.</li>
<li>The Design Meta-model which extends the MARTE meta-model with missing concepts need to model the design model of the application and to model the verification model.</li>
<li>The Results meta-model contains all concepts required to model various results produced by verification tools and need to be provided to the design architects.</li>
<li>ThThe Trace Meta-model contains concepts to model traces to model Gantt charts and execution traces.</li>
</ul>

<h4 id="time4sys-graphical-editor">Time4Sys graphical editor:</h4>

<p>The graphical editor for the Time4Sys models is a java module based on Sirius [8]. It offers the capabilities to edit and view Time4Sys models via a graphical user interface. This module also offers menus to apply model transformations rules and launch the appropriate verification tool (Pegase [3], MAST [1], Cheddar [2] and in the future ROMEO [9]). The next Figure shows the graphical interface for this editor.</p>

<p>
<img src="images/Time4SysModelEditor.png" class="img-responsive">
<br />
</p>

<h5 id="time4sys-model-transformations-rules">Time4sys model transformations rules:</h5>

<p>The transformations rules aim to transform Time4sys model into another time4sys model by solving semantic gaps for verification tools. Time4sys proposes a set of transformations rules which can be assembled together to solve the semantic gaps between design models and verification tool models.</p>

<h5 id="time4sys-connectors">Time4sys connectors:</h5>

<p>A connector is able to bridge the Time4sys framework to a design tool, a verification tool or a visualization tool. Time4sys is provided with connectors able to import/export Time4sys model to Pegase Tool [3], MAST [1] and Cheddar [2]. ROMEO [9] connector is currently in under study. A prototype of the connector to the design tool Capella [10] will be also provided.</p>

<p>Note: The MARTE meta-model can be downloaded as a separate and independent package. Time4sys aims to be the official repository for the MARTE meta-model.</p>

<h2 id="marte">MARTE</h2>

<p>
<img src="images/MARTE_logo.png" class="img-responsive"> <img src="images/OMG_logo.png" class="img-responsive">
<br />
</p>

<p>MARTE (Modeling and Analysis of Real-Time and Embedded systems) is a standard defined at <a href="https://www.omg.org">OMG</a>. You can find also the fill specification of this standard at the <a href="https://www.omg.org/omgmarte/">official MARTE website</a>.</p>

<p>MARTE consists in defining foundations for model-based description of real time and embedded systems. These core concepts are then refined for both modeling and analyzing concerns. Modeling parts provides support required from specification to detailed design of real-time and embedded characteristics of systems. MARTE concerns also model-based analysis. In this sense, the intent is not to define new techniques for analyzing real-time and embedded systems, but to support them. Hence, it provides facilities to annotate models with information required to perform specific analysis. Especially, MARTE focuses on performance and schedulability analysis. But, it defines also a general framework for quantitative analysis which intends to refine/specialize any other kind of analysis.</p>

<p>Among others, the benefits of using this MARTE language are thus:</p>

<ul>
<li>Providing a common way of modeling both hardware and software aspects of a RTES in order to improve communication between developers.</li>
<li>Enabling interoperability between development tools used for specification, design, verification, code generation, etc.</li>
<li>Fostering the construction of models that may be used to make quantitative predictions regarding real-time and embedded features of systems taking into account both hardware and software characteristics.</li>
</ul>

<p>The MARTE language is structured around two concerns, one to model the features of real-time and embedded systems and the other to annotate application models so as to support analysis of system properties. These are shown by the MARTE design model package in following figure, and the MARTE analysis model package, respectively. These two major parts share common concerns with describing time and the use of concurrent resources, which are contained in the shared package called MARTE foundations. A fourth package contains the annexes profiles defined in MARTE, as well as a predefined model libraries that may used by modelers to denotes their real-time and embedded applications.</p>

<p>
<img src="images/MARTE_foundations.png" class="img-responsive">
<br />
</p>

<p>Architecture of the MARTE language (<strong>NFPs</strong> = Non-Functional Properties, <strong>GRM</strong> = Generic Resource Modeling, <strong>GCM</strong> = Generic Component Model, <strong>Alloc</strong> = Allocation modeling, <strong>RTEMoCC</strong> = RTE Model of Computation &amp; Communication, <strong>SRM</strong> = Software Resource Modeling, <strong>HRM</strong> = Hardware Resource Modeling, <strong>GQAM</strong> = Generic Quantitative Analysis Modeling, <strong>SAM</strong> = Schedulability Analysis Modeling, <strong>PAM</strong> = Performance Analysis Modeling, <strong>VSL</strong> = Value Specification Language, <strong>RSM</strong> = Repetitive Structure Modelling)</p>

<p>The Time4sys platform is totally based on this MARTE standard language. Time4Sys provides the first open-source implementation of the MARTE metamodel with its <a href="https://github.com/polarsys/time4sys/tree/master/Time4Sys/plugins/org.polarsys.time4sys.marte/model">ecore model</a> and java api.</p>

<h3 id="references">REFERENCES</h3>

<p>[1] MAST, Modeling and analysis suite for real-time applications, <a href="http://mast.unican.es/">http://mast.unican.es/</a></p>

<p>[2] The cheddar project: a gpl real-time scheduling analyzer, <a href="http://beru.univ-brest.fr/singhoff/cheddar/">http://beru.univ-brest.fr/singhoff/cheddar/</a></p>

<p>[3] RTaW-Pegase, Modeling, simulation, and timing analysis for communication networks, <a href="http://www.realtimeatwork.com/software/rtawpegase/">http://www.realtimeatwork.com/software/rtawpegase/</a>.</p>

<p>[4] K. Balasubramanian, A. S. Krishna, E. Turkay, J. Balasubramanian, J. Parsons, A. S. Gokhale, and D. C. Schmidt, Applying model-driven development to distributed real-time and embedded avionics systems, IJES, vol. 2, no. <sup>3</sup>&frasl;<sub>4</sub>, pp. 142-155, 2006.</p>

<p>[5] AADL, Architecture analysis and design language, <a href="http://www.aadl.info/aadl/currentsite/">http://www.aadl.info/aadl/currentsite/</a></p>

<p>[6] SysML, Systems modeling language, <a href="http://www.omg.org/spec/SysML">http://www.omg.org/spec/SysML</a></p>

<p>[7] MARTE, Modeling and analysis of real-time and embedded systems, <a href="http://www.omg.org/omgmarte/">http://www.omg.org/omgmarte/</a></p>

<p>[8] SIRIUS, Sirius enables the specification of a modeling workbench in terms of graphical, table or tree editors with validation rules and actions using declarative descriptions. <a href="https://www.polarsys.org/eclipse/sirius">https://www.polarsys.org/eclipse/sirius</a></p>

<p>[9] ROMEO, D. Lime, O. H. Roux, C. Seidner, and L.-M. Traonouez. Romeo: A parametric model-checker for Petri nets with stopwatches. In TACAS, volume 5505 of Lecture Notes in Computer Science, pages 54-57. Springer, 2009. <a href="http://romeo.rts-software.org/">http://romeo.rts-software.org/</a></p>

<p>[10] CAPELLA: a model-based system engineering tool and methodology, <a href="https://polarsys.org/capella/">https://polarsys.org/capella/</a></p>

<p>[11] ecore model of MARTE, <a href="https://github.com/polarsys/time4sys/tree/master/Time4Sys/plugins/org.polarsys.time4sys.marte/model">https://github.com/polarsys/time4sys/tree/master/Time4Sys/plugins/org.polarsys.time4sys.marte/model</a></p>

<hr />

<h3 id="publications">Publications</h3>

<ul>
<li>« Probabilistic Schedulability Analysis for Fixed Priority Mixed Criticality Real-Time Systems », by Dorin Maxim, Yasmina Abdeddaim, at DATE 2016.</li>
<li>« Schedulability analysis of dependent probabilistic real-time tasks », by S. B. Amor, D. Maxim, L. Cucu-Grosjean, at RTNS 2016.</li>
<li>« Periodicity of real-time schedules for dependent periodic tasks on identical multiprocessor platforms », by J. Goossens, E. Grolleau, Liliana Cucu-Grosjean, at Real-Time Systems 2016.</li>
<li>« A review of priority assignment in real-time systems », by R. Davis, L. Cucu-Grosjean, M. Bertogna, A. Burns, at Journal of Systems Architecture 2016.</li>
<li>« Average Probabilistic Response Time Analysis of Tasks with Multiple Probabilistic Parameters », by Antoine Bertout, Dorin Maxim, Liliana Cucu-Grosjean, at Wip (RTSS) 2016.</li>
<li>« Analysis and Simulation Tools for Probabilistic Real-Time Systems », by Dorin Maxim, Antoine Bertout, at WATERS 2016.</li>
<li>« Probabilistic Analysis for Mixed Criticality Systems using Fixed Priority Preemptive Scheduling », by D. Maxim, R. Davis, L. Cucu-Grosjean, A. Easwaran, at RTNS 2017.</li>
<li>« Bridging the gap between practical cases and temporal performance analysis: a models repository-based approach », by A. Long, Y. Ouhammou, E. Grolleau, L. Fejoz, L. Rioux, at RTNS 2017.</li>
<li>« PARAD Repository: On the Capitalization of Performance Analysis Process for AADL Designs », by TD Nguyen, Y. Ouhammou, E. Grolleau, at ECSA 2017.</li>
<li>« Leveraging Real-Time Network Analyses by Extending a Model-based Framework », by A. Bui Long, Y. Ouhammou, E. Grolleau, at AICCSA 2017.</li>
<li>« Open Challenges for Probabilistic Measurement-Based Worst-Case Execution Time », by S. Gil, I. Bate, G. Lima, L. Santinelli, A. Gogonel, L. Cucu-Grosjean, at Embedded Systems Letters 2017.</li>
<li>« Towards statistical estimation of worst case inter-core communications », by A Revuz, L Cucu-Grosjean, at JW 2017.</li>
<li>« Time4Sys in a Nutshell », by Y. Ouhammou, L Fejoz, at WATERS 2017.</li>
</ul>

<h3 id="invited-talks">Invited talks</h3>

<ul>
<li>« Probabilistic Approaches for Time Critical Embedded Systems », by L Cucu-Grosjean, at VECOS 2015.</li>
<li>« Un retour d&rsquo;expérience de Capella en enseignement », by E. Grolleau, at journée NEPTUNE 2017.</li>
</ul>

<h3 id="talks">Talks</h3>

<ul>
<li>« Waruna: break the walls integrate temporal performance verification for your engineering practices », all partners of the Waruna project, at MODELS 2016.</li>
</ul>

		
	</div>
	<div class="col-sm-8">
		<h1>News</h1>
		  
				<div class="news_item">
					<div class="news_item_date"><strong>Fri, Dec 21, 2018</strong></div>
					<div class="news_item_title">
						<h3><a href="https://polarsys.org/time4sys/news/version_1.0.0/">Time4Sys 1.0.0</a></h3>
					</div>
					<div class="news_item_description">
	          Article by Aurelien DIDIER
Time4Sys version 1.0.0 is available for download.
	        </div>
				</div>
		  
				<div class="news_item">
					<div class="news_item_date"><strong>Sun, Jun 24, 2018</strong></div>
					<div class="news_item_title">
						<h3><a href="https://polarsys.org/time4sys/news/version_0.8.0/">Time4Sys 0.8.0</a></h3>
					</div>
					<div class="news_item_description">
	          Article by Aurelien DIDIER
Time4Sys version 0.8.0 is available for download.
	        </div>
				</div>
		  
				<div class="news_item">
					<div class="news_item_date"><strong>Fri, Nov 17, 2017</strong></div>
					<div class="news_item_title">
						<h3><a href="https://polarsys.org/time4sys/news/hello-world/">Building the website</a></h3>
					</div>
					<div class="news_item_description">
	          <p>Article by <strong>Aurelien DIDIER</strong></p>

<p>We are starting to build a website for the PolarSys Time4Sys project.</p>

<p></p>
	        </div>
				</div>
		  
		<div class="news_view_all">> <a href="https://polarsys.org/time4sys//news">View all news</a></div>
		<a class="twitter-timeline"  href="https://twitter.com/EclipseFdn" data-widget-id="644078123710066688">Tweets by @EclipseFdn</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
          
	</div>
	</div>
</div>

</div>
</main>

<p id="back-to-top">
  <a class="visible-xs" href="#top">Back to the top</a>
</p>
<footer role="contentinfo" id="solstice-footer">
  <div class="container">
    <div class="row">
      <section id="footer-eclipse-foundation" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Eclipse Foundation</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/org/">About us</a></li>
          <li><a href="https://eclipse.org/org/foundation/contact.php">Contact Us</a></li>
          <li><a href="https://eclipse.org/donate">Donate</a></li>
          <li><a href="https://eclipse.org/org/documents/">Governance</a></li>
          <li><a href="https://eclipse.org/artwork/">Logo and Artwork</a></li>
          <li><a href="https://eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
        </ul>
      </section>
      <section id="footer-legal" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print ">
        <h2 class="section-title">Legal</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/legal/privacy.php">Privacy Policy</a></li>
          <li><a href="https://eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
          <li><a href="https://eclipse.org/legal/copyright.php">Copyright Agent</a></li>
          <li><a href="https://eclipse.org/org/documents/epl-v10.php">Eclipse Public License </a></li>
          <li><a href="https://eclipse.org/legal/">Legal Resources </a></li>
        </ul>
      </section>
      <section id="footer-useful-links" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Useful Links</h2>
        <ul class="nav">
          <li><a href="https://bugs.eclipse.org/bugs/">Report a Bug</a></li>
          <li><a href="//help.eclipse.org/">Documentation</a></li>
          <li><a href="https://eclipse.org/contribute/">How to Contribute</a></li>
          <li><a href="https://eclipse.org/mail/">Mailing Lists</a></li>
          <li><a href="https://eclipse.org/forums/">Forums</a></li>
          <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
        </ul>
      </section>
      <section id="footer-other" class="col-xs-offset-1 col-xs-11 col-sm-7 col-md-6 col-md-offset-0 hidden-print">
        <h2 class="section-title">Other</h2>
        <ul class="nav">
          <li><a href="https://eclipse.org/ide/">IDE and Tools</a></li>
          <li><a href="https://eclipse.org/projects">Community of Projects</a></li>
          <li><a href="https://eclipse.org/org/workinggroups/">Working Groups</a></li>
        </ul>
        <ul class="list-inline social-media">
          <li><a href="https://twitter.com/EclipseFdn"><i class="fa fa-twitter-square"></i></a></li>
          <li><a href="https://plus.google.com/+Eclipse"><i class="fa fa-google-plus-square"></i></a></li>
          <li><a href="https://www.facebook.com/eclipse.org"><i class="fa fa-facebook-square"></i> </a></li>
          <li><a href="https://www.youtube.com/user/EclipseFdn"><i class="fa fa-youtube-square"></i></a></li>
        </ul>
      </section>
      <div id="copyright"  class="col-xs-offset-1 col-sm-14 col-md-24 col-md-offset-0">
        <div>
          <span class="hidden-print"><img src="https://polarsys.org/time4sys/public/images/logo/eclipse-logo-bw-800x188.png" alt="Eclipse.org black and white logo" width="166" height="39" id="logo-eclipse-white"/></span>
          <p id="copyright-text">Copyright &copy; 2015 The Eclipse Foundation. All Rights Reserved.</p>
        </div>
      </div>
      <a href="#" class="scrollup">Back to the top</a>
    </div>
  </div>
</footer>

<script src="https://polarsys.org/time4sys/public/js/solstice.js"></script>
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-910670-2']);
  _gaq.push(['_trackPageview']);
  
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
  
</script>
</body>
</html>
