<?php
/*******************************************************************************
 * Copyright (c) 2014 Eclipse Foundation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Christopher Guindon (Eclipse Foundation) - Initial implementation
 *******************************************************************************/
?>

<!-- Main content area -->
<div id="midcolumn">
  <h1><?php print $pageTitle;?></h1>
  <p><img alt="" src="http://www.sioktatas.hu/doc/Titan_architecture.png" style="width: 561px; height: 481px;"></p>
  <p>Titan is a TTCN-3 compilation and execution environment with an  Eclipse-based IDE. 
TTCN-3 is a modular language specifically designed for testing (the acronym itself stands for Test and Test Conformance Notation), standardized by ETSI (see www.ttcn-3.org) and endorsed by ITU.
The user of the tool can develop test cases, test execution logic and build the executable test suite for several platforms.
Titan consists of a core part, executing in a Unix/Linux-like environment and a set of Eclipse plug-ins.</p>
</div>
<!-- ./end  #midcolumn -->

<!-- Start of the right column -->
<div id="rightcolumn">
  <div class="sideitem">
    <h2>News</h2>
    <ul>
      <li>2017.03.01: Eclipse Titan release 6.1.pl0 is <a href="https://projects.eclipse.org/projects/tools.titan/downloads">avilable</a></li>
    </ul>
  </div>
</div>
<!-- ./end  #rightcolumn -->
