<!DOCTYPE html>
<html class="no-js">
    <head>
        <!-- Basic Page Needs
        ================================================== -->
        <meta charset="utf-8">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <link rel="icon" type="image/png" href="images/favicon.ico">
        <title>Capella MBSE Tool - Features</title>
        <meta name="description" content="Install Capella and start discovering the tool by opening sample projects.">
        <meta name="keywords" content="">
        <meta name="author" content="">
        <!-- Mobile Specific Metas
        ================================================== -->
        <meta name="format-detection" content="telephone=no">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        
        <!-- Template CSS Files
        ================================================== -->
        <!-- Twitter Bootstrs CSS -->
        <link rel="stylesheet" href="css/bootstrap.min.css">
        <!-- animate css -->
        <link rel="stylesheet" href="css/animate.css">
        <link rel="stylesheet" href="css/jquery.fancybox.css">
        <!-- template main css file -->
        <link rel="stylesheet" href="css/main.css">
        <!-- responsive css -->
        <link rel="stylesheet" href="css/responsive.css">
        <link rel="stylesheet" href="css/latofonts.css">
        
        <script src="https://use.fontawesome.com/b51f77a16a.js"></script>
        
        <!-- Cookie content -->
        <link rel="stylesheet" type="text/css" href="//www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css" />
        <script src="//www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>
        
        <!-- Eclipse Foundation Google Tag Manager -->
		<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>
		<!-- End Google Tag Manager -->
        
        <!-- Template Javascript Files
        ================================================== -->
		<!-- Angular -->
		<base href="/capella/">
		<script src="js/angular-1.7.8.min.js"></script>
		<script src="angular/capella.js"></script>
	
        <!-- modernizr js -->
        <script src="js/vendor/modernizr-2.6.2.min.js"></script>
        <!-- jquery -->
        <script src="js/jquery-3.4.1.min.js"></script>
        <!-- bootstrap js -->
        <script src="js/bootstrap.min.js"></script>
        <!-- wow js -->
        <script src="js/wow.min.js"></script>
        <script src="js/jquery.fancybox.js"></script>
        <!-- template main js -->
        <script src="js/main.js"></script>
    </head>
    <body ng-app="capella" data-deferred-cloak>
    	<!--
        ==================================================
        Header Section
        ================================================== -->
    	<ng-include src="'angular/blocks/header.html'"></ng-include>
        <!--
        ==================================================
        Intro Section
        ================================================== -->
        <section class="hero-area getstarted">
            <div class="container">
                <div class="row">
                    <div class="col-md-12 text-center">
                        <div class="block wow fadeInUp" data-wow-delay=".3s">
                            <section class="cd-intro">
                                <h1 class="wow fadeInUp animated" data-wow-delay=".4s" >
                                	Get Started
                                </h1>
                            </section> <!-- cd-intro -->
                            <h2 class="wow fadeInUp animated" data-wow-delay=".6s" >
								Install Eclipse Capella and start discovering the tool by opening sample projects</h2>
                        </div>
                    </div>
                </div>
            </div>
        </section><!--/#intro_banner-->
        
        <!--
        ==================================================
        Main Content
        ================================================== -->
        <section id="benefits" class="">
            <div class="container">
            		<div class="row">
	                	<h3>Installation</h3>
                    <p><u><b>Note</b></u>: A Java 8 JRE/JDK is recommended.</p>
                    <p>Get Capella on the <a href="/capella/download.html"><b>download page</b></a>.</p>
                    <p>Then, please read through <a href="https://wiki.polarsys.org/Capella/Installation_Guide#Capella_Installation" target="_blank"><b>this guide</b></a> that provides instructions for installing Capella.</p>
					
					<h3>Sample models</h3>
					<p>Sample examples of Capella projects are available to familiarize yourself with the concepts manipulated in Capella, the different engineering phases of Arcadia, and the good practices on how to model your system of interest through efficient means and ergonomic facilities.
					<p><u><b>Note</b></u>: IFE is embedded within Capella distribution</p>
					
					<div id="getstarted" class="accordion dropdown_content">
						<div class="accordion-group">
							<div class="accordion-heading">
								<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#ife" aria-expanded="false">
									<h3>In-Flight Entertainment System (IFE)</h3><span class="fa fa-caret-down txt_yellow" aria-hidden="true">&nbsp;</span>
								</a>
							</div>
							<div id="ife" class="accordion-body collapse" style="height: 0px;" aria-expanded="false">
								<div class="accordion-inner">
									<p>The Capella IFE sample model is an overly simplified vision of
		                            what a real in-flight entertainment system is. It is partial and
		                            mainly designed for educational purposes.</p>
		                            <p>For any question about the model (tool- or method-related), please post a
		                            question <a href="//polarsys.org/forums/index.php/i/4/" target="_blank"><b>in the forum</b></a>.</p>
		                            <p>The model is embedded within Capella distribution in the 'samples' folder. It is also available for download
		                            <a href="/capella/download.html"><b>here</b></a>.</p>
		                            <p><a href="https://download.eclipse.org/capella/samples/IFE/Capella_IFE_Sample_Model_1.0_Quick_Reading_Guide.pdf" target="_blank"><b><u>Quick reading guidelines</u></b></a>: 2 pages giving a reading path through
		                            diagrams 
		                            <p><a href="https://download.eclipse.org/capella/samples/IFE/Capella_IFE_Sample_Model_1.0_Quick_Reading_Guide.pdf" target="_blank"><img src="images/start/quick_read.png" width="50%" alt="Quick Reading Guide"></a> 
		                            <p><a href="https://download.eclipse.org/capella/samples/IFE/Capella_IFE_Sample_Model_1.0_Highlights.pdf" target="_blank"><b><u>Highlights</u></b></a>: A set of 75 slides with tool and method tips and tricks </p>
		                            <p><a href="https://download.eclipse.org/capella/samples/IFE/Capella_IFE_Sample_Model_1.0_Highlights.pdf" target="_blank"><img src="images/start/highlights.png" width="50%" alt="Highlights"></a></p>
								</div>
							</div>
						</div>
							
						<div class="accordion-group">
							<div class="accordion-heading">
								<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#alarm_clock" aria-expanded="false">
									<h3>Alarm Clock</h3><span class="fa fa-caret-down txt_yellow" aria-hidden="true">&nbsp;</span>
								</a>
							</div>
							<div id="alarm_clock" class="accordion-body collapse" style="height: 0px;" aria-expanded="false">
								<div class="accordion-inner">
									<p>The Alarm Clock sample model is a set of slides illustrating
		                            precisely, step-by-step, how to use Capella to build a model. At
		                            this stage, it describes Operational Anlaysis, System Need
		                            Analysis and Logical Architecture.</p>
		                            <p>For any tool-related question about the model, please use the Capella <a href="//polarsys.org/forums/index.php/i/4/" target="_blank"><b>Forum</b></a>
		                            or consult the <a href="http://www.prfc.fr/" target="_blank"><b>PRFC website</b></a>.</p>
		                            
		                            <p>The model is available for download <a href="/capella/download.html"><b>here</b></a>. </p>
		                            
		                            <p><a href="https://download.eclipse.org/capella/samples/ClockRadio/ClockRadioExample0216.pdf" target="_blank"><b><u>Highlights:</u></b></a>
		                            A set of 45 slides with tool and method tips and tricks </p>
		                            <p><a href="https://download.eclipse.org/capella/samples/ClockRadio/ClockRadioExample0216.pdf" target="_blank"><img src="images/start/prfc.png" width="50%" alt="Alarm Clock OA SA LA"></a></p> <br>
		                                
		                            <p><u><b>Note:</b></u><br>French translations of the Alarm Clock sample <a href="https://fr.slideshare.net/rockytal/exemple-radiorveil-en-capella-arcadia" target="_blank">documentation</a> and associated Capella <a href="/capella/download.html">model</a> are also available.</p>
								</div>
							</div>
						</div>
						
						<div class="accordion-group">
							<div class="accordion-heading">
								<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#toy_catapult" aria-expanded="false">
									<h3>Toy Catapult Sample</h3><span class="fa fa-caret-down txt_yellow" aria-hidden="true">&nbsp;</span>
								</a>
							</div>
							<div id="toy_catapult" class="accordion-body collapse" style="height: 0px;" aria-expanded="false">
								<div class="accordion-inner">
									<p>This project is a tutorial that follows the steps to design a Toy Catapult to enable a parent and child to have fun together.</p>
		                         	<p>This example is adapted from the book Jackson, P. L. (2009). Getting design right: a systems approach. CRC Press</p>
		                         	<p><a href="https://esd.sutd.edu.sg/40014-capella-tutorial/" target="_blank"><img src="images/thumbs/resources/thumb_toy-catapult.jpg" alt="Tutorial - Toy Catapult Project"></a></p>
		                         	<p><a href="https://esd.sutd.edu.sg/40014-capella-tutorial/" target="_blank">Instructions to follow the tutorial<i class="pl-2 fa fa-arrow-circle-right" aria-hidden="true"></i></a></p>
		                         	<p><a href="https://www.youtube.com/watch?v=K4eU8nj1nok&feature=youtu.be" target="_blank">Video<i class="pl-2 fa fa-arrow-circle-right" aria-hidden="true"></i></a></p>
								</div>
							</div>
						</div>
						<div class="accordion-group">
							<div class="accordion-heading">
								<a class="accordion-toggle collapsed" data-toggle="collapse" data-parent="#accordion" href="#level_crossing" aria-expanded="false">
									<h3>Level-Crossing Control System</h3><span class="fa fa-caret-down txt_yellow" aria-hidden="true">&nbsp;</span>
								</a>
							</div>
							<div id="level_crossing" class="accordion-body collapse" style="height: 0px;" aria-expanded="false">
								<div class="accordion-inner">
									<p>This example describes a level-crossing traffic control system.</p>
		                         	<p><img src="images/screenshots/level-crossing-control-system.png" alt="Level-Crossing Control System"></p>
		                         	<p><a href="https://wiki.polarsys.org/Capella/Samples/LCTC" target="_blank">Video and presentations<i class="pl-2 fa fa-arrow-circle-right" aria-hidden="true"></i></a></p>
								</div>
							</div>
						</div>
					</div>
					<h3>Extensions and Viewpoints</h3>
					<p>Some <a href="/capella/addons.html">add-ons</a> to Capella can be installed to provide additional features (team work, documentation generation, etc).</p>
					<p>The wiki has also a dedicated section for the <a href="https://polarsys.org/wiki/Capella/Addons" target="_blank">extensions</a> and <a href="https://polarsys.org/wiki/Capella/Viewpoints" target="_blank">viewpoints</a> for Capella and their <a href="https://wiki.polarsys.org/Capella/Extensions/Installation_Guide#Installation_Procedures" target="_blank">installation</a>.</p>
					<h3>Support</h3>
					<p>If you need help about the Capella workbench, you can post questions on the <a href="https://www.eclipse.org/forums/index.php/i/11/" target="_blank">forum</a> or contact <a href="/capella/services.html" target="_blank">professional experts</a>.</p>
										
				</div>	
			</div>
        </section> <!-- #how -->
        
        <div id="back-to-top" data-spy="affix" data-offset-top="100"
			class="back-to-top hidden-xs hidden-sm affix-top">
			<button class="btn btn-default" title="Back to Top">
				<i class="fa fa-caret-up"></i>
			</button>
		</div>
		<script type="text/javascript">
		// Back to top
			jQuery('#back-to-top').on('click', function() {
				jQuery("html, body").animate({
					scrollTop : 0
				}, 500);
				return false;
			});
		</script>
       
        <!--
        ==================================================
        Call To Action Section Start
        ================================================== -->
		<ng-include src="'angular/blocks/call2action.html'"></ng-include>
       
        <!--
        ==================================================
        Footer Section
        ================================================== -->
        <ng-include src="'angular/blocks/footer.html'"></ng-include>
        <script async src="js/googleAnalytics.js" ></script>
    </body>
</html>