
<!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">

<title>Resources | The Eclipse OpenCert</title>
<meta property="og:title" content="Resources | The Eclipse OpenCert" />
<meta name="twitter:title" content="Resources | The Eclipse OpenCert" />

<meta name="author" content="AMASS ECSEL project partners"/>
<link href='/opencert/images/logo_square.png' rel='icon' type='image/x-icon'/>
<meta property="og:image" content="/opencert/images/logo.png" />
<meta name="twitter:image" content="/opencert/images/logo.png" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@AMASSproject" />
<meta name="twitter:creator" content="@AMASSproject" />
<meta property="og:url" content="https://www.eclipse.org/opencert/resources/" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Eclipse Opencert" />
<meta name="keywords" content="eclipse, project, polarsys, amass, assurance, certification, Cyber-Physical Systems, CPS">


<meta name="generator" content="Hugo 0.81.0" />
<link rel="canonical" href="https://www.eclipse.org/opencert/resources/" />

<link rel="alternate" href="/opencert/resources/index.xml" type="application/rss+xml" title="">


<link rel="stylesheet" href="https://eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/quicksilver.min.css">
  
  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-5WLCZXC');</script>
  
<script>
	
		var tableClasses = "table";
	
</script>

  
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet" type="text/css"/>

  
</head>
<body>
  

<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5WLCZXC"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>

<a class="sr-only" href="#content">Skip to main content</a>
<header class="header-wrapper header-wrapper header-default-bg-img featured-jumbotron-bottom-shape" id="header-wrapper">
  

<div class="clearfix toolbar-container-wrapper">
  <div class="container">
    <div class="text-right toolbar-row row hidden-print">
      <div class="col-md-24 row-toolbar-col">
        <ul class="list-inline">
          <li><a href="https://accounts.eclipse.org/user/edit" class="" data-tab-destination="tab-profile"><i class="fa fa-edit fa-fw"></i> Edit my account</a></li>
          <li><a class="toolbar-link toolbar-manage-cookies dropdown-toggle"><i class="fa fa-wrench"></i> Manage Cookies</a></li>
          
        </ul>
      </div>
    </div>
  </div>
</div>
<div class="navbar-wrapper">
  <div class="container">
    <div class="row" id="header-row">
      <div class="col-sm-5 col-md-4" id="header-left">
        <div class="wrapper-logo-default">

            

            
            
            

            
        
            <a title="Eclipse Opencert" href="https://www.eclipse.org/opencert/">
              <img width="140" class="logo-eclipse-default img-responsive hidden-xs" src="/opencert/images/logo.png" alt="Eclipse Opencert" />
            </a>
            

        </div>
      </div>
      
      
        
      
      <div class="col-sm-19 col-md-20 margin-top-10" id="main-menu-wrapper">
        
        
        
          
        
        
        
        
        
        
          <div class="float-right hidden-xs" id="btn-call-for-action">
            <div id="btn-call-for-action"><a href="https://projects.eclipse.org/projects/polarsys.opencert/governance" class="btn btn-huge btn-warning"><i class="fa fa-download"></i> Download</a></div>
          </div>
        
        <div class="navbar float-sm-right yamm" id="main-menu">
          <div class="navbar-collapse collapse reset float-right" id="navbar-main-menu">
            <ul class="nav navbar-nav">
              



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


<li>
  <a class="" href="/opencert/resources/">
  
  Resources
  </a>
  
</li>


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


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


<li>
  <a class="" href="https://projects.eclipse.org/projects/polarsys.opencert">
  
  PMI
  </a>
  
</li>


<li class="dropdown eclipse-more hidden-xs">
  <a data-toggle="dropdown" class="dropdown-toggle" role="button">More<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://www.eclipse.org/community/eclipse_newsletter/">Newsletter</a></li>
            <li><a href="https://www.youtube.com/user/EclipseFdn">Videos</a></li>
            <li><a href="https://blogs.eclipse.org">Blogs</a></li>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Participate</strong></p>
            </li>
            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
            <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
            <li><a href="https://www.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>
          </ul>
          <ul class="col-sm-8 list-unstyled">
            <li>
              <p><strong>Eclipse IDE</strong></p>
            </li>
            <li><a href="https://www.eclipse.org/downloads">Download</a></li>
            <li><a href="https://www.eclipse.org/downloads">Learn more</a></li>
            <li><a href="https://help.eclipse.org">Documentation</a></li>
            <li><a href="https://www.eclipse.org/getting_started">Getting Started / Support</a></li>
            <li><a href="https://www.eclipse.org/contribute/">How to Contribute</a></li>
            <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
            <li><a href="https://www.eclipse.org/forums/index.php/f/89/">Newcomer Forum</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-main-menu">
      <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>
  
  <div class="wrapper-logo-mobile">
      
      
      

        

      <a class="navbar-brand visible-xs" title="Eclipse Opencert" href="https://www.eclipse.org/opencert/">
        <img width="140" class="logo-eclipse-default-mobile img-responsive" src="/opencert/images/logo.png" alt="Eclipse Opencert" />
      </a>
    
  </div>
</div>

        </div>
      </div>
    </div>
  </div>
</div>

  


</header>

  
<section class="default-breadcrumbs hidden-print" id="breadcrumb">
  <div class="container">
    <h3 class="sr-only">Breadcrumb</h3>
    <div class="row">
      <div class="col-sm-24">
        <ol class="breadcrumb">
          
          
          
          
          <li>
            <a href="https://www.eclipse.org/opencert/">Eclipse OpenCert</a>
          </li>
        
          
          <li class="active">
            <a href="https://www.eclipse.org/opencert/resources/">Resources</a>
          </li>
        
        </ol>
        
      </div>
    </div>
  </div>
</section>

  
  



 
<main>
  <div class="container">
    
      <div class="row">
        <div class="col-md-18 padding-bottom-30">
    

    
      <h1>Resources</h1>
    
  
   
  
  
    
      
<div class="news-list">
  <a href=" /opencert/resources/security/" class="media media-link">
    <p class="media-date">Thursday, Jan 24, 2019</p>
    <h4 class="media-heading">Considerations about open source and security</h4>
    <p class="media-text"><p>By Maria Teresa Delgado and Gaël Blondelle - Eclipse Foundation Europe GmbH</p>
<p>Security and openness are two orthogonal issues and the AMASS Open Tool Platform is certainly not a liability for the development of CPS</p></p>
  </a>
</div>
    
      
<div class="news-list">
  <a href=" /opencert/resources/screenshots/" class="media media-link">
    <p class="media-date">Thursday, Dec 13, 2018</p>
    <h4 class="media-heading">Screenshots</h4>
    <p class="media-text"><p>This page shows some screenshots that illustrate the AMASS Open Platform in action.</p></p>
  </a>
</div>
    
      
<div class="news-list">
  <a href=" /opencert/resources/documentation/" class="media media-link">
    <p class="media-date">Wednesday, Dec 5, 2018</p>
    <h4 class="media-heading">Documentation</h4>
    <p class="media-text"><p>Access to the documentation of the current OpenCert package produced by the AMASS partners - code name Prototype P2.</p></p>
  </a>
</div>
    
      
<div class="news-list">
  <a href=" /opencert/resources/training/" class="media media-link">
    <p class="media-date">Thursday, Mar 22, 2018</p>
    <h4 class="media-heading">Online training</h4>
    <p class="media-text"><p>This page references the latest training material available for the OpenCert platform.</p></p>
  </a>
</div>
    
      
<div class="news-list">
  <a href=" /opencert/resources/gettingstarted/" class="media media-link">
    <p class="media-date">Wednesday, Jun 7, 2017</p>
    <h4 class="media-heading">Getting Started with OpenCert</h4>
    <p class="media-text"><p>This section guides the end-user through the its initial use of OpenCert.</p>
<p>It needs to be upgraded to take into account the new prototype.</p></p>
  </a>
</div>
    
    


  

  

     
      
      </div>
        <div class="col-md-6  padding-bottom-30">
          
            


          
        </div>
      </div>
    
  </div>
</main>
  
  
  <div class="featured-footer" id="featured-footer" data-publish-target="eclipse_org">
    <div class="container">
      <div class="row">
        <div class="col-sm-24 featured-container">
        </div>
      </div>
    </div>
  </div>

  
<p id="back-to-top">
  <a class="visible-xs" href="#top">Back to the top</a>
</p>
<footer id="solstice-footer" class="">
  <div class="container">
    <div class="row">
      
      <section class="col-sm-6 hidden-print" id="footer-eclipse-foundation">
  <h2 class="section-title">Eclipse Foundation</h2>
  <ul class="nav">
    <li><a href="https://www.eclipse.org/org/">About Us</a></li>
    <li><a href="https://www.eclipse.org/org/foundation/contact.php">Contact Us</a></li>
    <li><a href="https://www.eclipse.org/donate">Donate</a></li>
    <li><a href="https://www.eclipse.org/membership">Members</a></li>
    <li><a href="https://www.eclipse.org/org/documents/">Governance</a></li>
    <li><a href="https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php">Code of Conduct</a></li>
    <li><a href="https://www.eclipse.org/artwork/">Logo and Artwork</a></li>
    <li><a href="https://www.eclipse.org/org/foundation/directors.php">Board of Directors</a></li>
  </ul>
</section>
<section class="col-sm-6 hidden-print" id="footer-legal">
  <h2 class="section-title">Legal</h2>
  <ul class="nav">
    <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
    <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
    <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
    <li><a href="https://www.eclipse.org/legal/epl-2.0/">Eclipse Public License</a></li>
    <li><a href="https://www.eclipse.org/legal/">Legal Resources </a></li>
  </ul>
</section>
<section class="col-sm-6 hidden-print" id="footer-useful-links">
  <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://www.eclipse.org/contribute/">How to Contribute</a></li>
    <li><a href="https://www.eclipse.org/mail/">Mailing Lists</a></li>
    <li><a href="https://www.eclipse.org/forums/">Forums</a></li>
    <li><a href="//marketplace.eclipse.org">Marketplace</a></li>
  </ul>
</section>
<section class="col-sm-6 hidden-print" id="footer-other">
  <h2 class="section-title">Other</h2>
  <ul class="nav">
    <li><a href="https://www.eclipse.org/ide/">IDE and Tools</a></li>
    <li><a href="https://www.eclipse.org/projects">Projects</a></li>
    <li><a href="https://www.eclipse.org/org/workinggroups/">Working Groups</a></li>
    <li><a href="https://www.eclipse.org/org/research/">Research@Eclipse</a></li>
    <li><a href="https://www.eclipse.org/security/">Report a Vulnerability</a></li>
    <li><a href="https://status.eclipse.org">Service Status</a></li>
  </ul>
</section>
<div class="col-sm-24 margin-top-20">
  <div class="row">
    <div id="copyright" class="col-md-16">
      <p id="copyright-text">Copyright &copy; Eclipse Foundation. All Rights Reserved.</p>
    </div>
    
<div class="col-md-8 social-media">
  <ul class="list-inline">
    <li><a class="social-media-link fa-stack fa-lg" href="https://twitter.com/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
        class="fa fa-twitter fa-stack-1x"></i> <span class="sr-only">Twitter account</span>
    </a></li>
    <li><a class="social-media-link fa-stack fa-lg" href="https://www.facebook.com/eclipse.org"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
        class="fa fa-facebook fa-stack-1x"></i> <span class="sr-only">Facebook account</span>
    </a></li>
    <li><a class="social-media-link fa-stack fa-lg" href="https://www.youtube.com/user/EclipseFdn"> <i class="fa fa-circle-thin fa-stack-2x"></i> <i
        class="fa fa-youtube fa-stack-1x"></i> <span class="sr-only">Youtube account</span>
    </a></li>
    <li><a class="social-media-link fa-stack fa-lg" href="#ZgotmplZ" title="">
        <i class="fa fa-circle-thin fa-stack-2x"></i> <i class="fa fa-linkedin fa-stack-1x"></i> <span class="sr-only">Linkedin account</span>
    </a></li>
  </ul>
</div>
  </div>
</div>


      
      <a href="#" class="scrollup">Back to the top</a>
    </div>
  </div>
</footer>
  
  

<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/main.min.js"></script>


    <script src="/opencert/js/solstice.hugo.js"></script>






<script>
(function($, document) {
  
  
  
    $("#featured-story").eclipseFdnApi({
      type: "featuredStory"
    });
  
  
    $("#featured-footer").eclipseFdnApi({
      type: "featuredFooter"
    });
  
})(jQuery, document);
</script>
</body>
</html>

