<!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="Antoine THOMAS and the Eclipse Foundation">
    
    <meta name="keywords" content="" />
    <meta name="generator" content="Hugo 0.20" />
    <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/opencertpublic/images/favicon.ico"/>
    <title>OpenCERT</title>
    <meta property="og:title" content="" />
    <meta property="og:description" content="The OpenCERT project" />
    <meta property="og:image" content="https://polarsys.org/opencertimages/logo/eclipse.png" />
    <link rel="stylesheet" href="https://polarsys.org/opencertpublic/css/solstice.css">
    
    
    
  </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/opencert"><img src="https://polarsys.org/opencertimages/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="/opencert/">
  
  Home
  </a>
  
</li>


<li>
  <a class="" href="/opencert/gettingstarted/">
  
  Getting Started
  </a>
  
</li>


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


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


<li>
  <a class="" href="/opencert/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/opencert" class="navbar-brand visible-xs"><img src="https://polarsys.org/opencertpublic/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/opencert/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/opencert">OpenCERT</a></li>
        
        
        
        
        
        
        <li><a href='https://polarsys.org/opencertindex'>index</a></li>
        
        
        
        
        
        
      </ol>
    </div>
  </div>
</section>

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



<h1>Eclipse OpenCERT</h1>



<hr />

<p>OpenCert is an integrated and holistic solution for <strong>assurance and certification</strong> management of <strong>Cyber-Physical Systems (CPS)</strong> spanning the largest safety and security-critical industrial markets, such as aerospace, space, railway, manufacturing, energy and health. The ultimate aim is to lower certification costs in face of rapidly changing product features and market needs.</p>

<p>
<img src="images/OpenCertUsageScenarios.jpg" class="img-responsive">
<br />
</p>

<h2 id="approach">Approach</h2>

<p>To deal with the technical CPS complexity and the associated labor-intensive activities for qualifying and certifying these systems, OpenCert uses model-based approaches and incremental techniques. The OpenCert tool platform focuses on architecture-driven assurance, multi-concern assurance (mainly safety and cybersecurity), reuse-oriented assurance (intra and cross-industrial domains) and seamless interoperability between assurance/certification and engineering activities along with third-party activities (external assessments, supplier assurance).</p>

<p>
<img src="images/OpenCertArchitecture.jpg" class="img-responsive">
<br />
</p>

<h2 id="features">Features</h2>

<ul>
<li><strong>Standards &amp; Regulations Information Management:</strong> This feature supports management of knowledge about standards (e.g. IEC61508, DO178C, ISO26262, EN 50128/50126/50129, among others), regulations and interpretations, in a form that can be stored, retrieved, categorized, associated, searched and browsed.</li>
<li><strong>Assurance &lsquo;Project&rsquo; Management:</strong> Functionalities concerned with the development of assurance cases (safety and security cases), evidence management, and assurance process management. They include: guidance and re-use of assurance artefacts, ability to automate the most labor-intensive activities (e.g., traceability, compliance checking, assurance process planning, and metrics management, among others).</li>
<li><strong>Architecture-Driven Assurance:</strong> This feature manages system architecture specification by decomposing a system into components. It also includes mechanisms to support compositional assurance, contract based approaches, and architectural patterns management. It allows users to browse information about the architecture of the system of interest and how the entities of the architecture can be related to the assurance case.</li>
<li><strong>Assurance Case Management:</strong> This feature manages argumentation information in a modular fashion. Assurance cases are a structured form of an argument that specifies convincing justification that a system is adequately dependable for a given application in a given environment. Assurance cases are modelled as connections between claims and their evidence. It also includes mechanisms to support assurance patterns management.</li>
<li><strong>Compliance Management:</strong> The OpenCert tools help &lsquo;engineers&rsquo; assess where they are with respect to their duties to conform to safety practices and standards, and still to motivate them to see the effective progress of the work and level of compliance.</li>
</ul>

<h2 id="benefits">Benefits</h2>

<ul>
<li><strong>Reduce Initial &amp; Rework Costs:</strong> guidance for compliance with standards/regulations and reuse of assurance/certification assets</li>
<li><strong>Coping with Risks:</strong> deployment of safety and security analyses and cost-effective and transparent assurance/certification processes</li>
<li>OpenCert helps create a transparent view of the process and product quality against a set of <strong>harmonized compliance</strong> requirements derived from standards and regulations.</li>
<li>Through the use of knowledge-based systems, quantitative methods and modular reuse techniques, OpenCert <strong>reduces compliance management and (re) certification costs.</strong></li>
</ul>




</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/opencertpublic/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/opencertpublic/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>