<!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" >
								How-to install and start learning Eclipse Capella</h2>
                        </div>
                    </div>
                </div>
            </div>
        </section><!--/#intro_banner-->

        <!--
        ==================================================
        Main Content
        ================================================== -->
        <section id="benefits" class="">
            <div class="container">
            		<div class="row">
	                	<h3>Installation</h3>
                    <p>Get Capella on the <a href="/capella/download.html"><b>download page</b></a>.</p>
                    <p>Then, please read through <a href="https://github.com/eclipse/capella/blob/master/doc/plugins/org.polarsys.capella.ui.doc/html/Installation Guide/How to install Capella and Addons.mediawiki#table-of-contents" target="_blank"><b>this guide</b></a> that provides instructions for installing Capella.</p>

					<h3>Tutorial</h3>
					<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&t=189" target="_blank">Video<i class="pl-2 fa fa-arrow-circle-right" aria-hidden="true"></i></a></p>

					<h3>Teaching resources</h3>
					<p>Are you teaching Systems Engineering or MBSE? Benefit from material that can help you to build your courses.</p>
					<p><a href="academic_material.html">Academic material<i class="pl-2 fa fa-arrow-circle-right" aria-hidden="true"></i></a></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="#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://github.com/eclipse/capella/blob/master/doc/plugins/org.polarsys.capella.ui.doc/html/Installation%20Guide/How%20to%20install%20Capella%20and%20Addons.mediawiki#Configuration_and_Extensibility" 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>