<!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="A sustainable and extensible modeling workbench to master architectural design and manage complexity.">
        <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 solution">
            <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" >
                                	Features and Benefits
                                </h1>
                            </section> <!-- cd-intro -->
                            <h2 class="wow fadeInUp animated" data-wow-delay=".6s" >
								A sustainable and extensible modeling workbench<br> to master architectural design and manage complexity
                            </h2>
                        </div>
                    </div>
                </div>
            </div>
        </section><!--/#intro_banner-->

        <!--
        ==================================================
        Main Content
        ================================================== -->
        <section id="benefits" class="text-center">
            <div class="container">
                <div class="row">
                	<ul class="nav nav-tabs">
						<li class="active"><a href="#diagrams" data-toggle="tab">Diagrams</a></li>
						<li><a href="#tooling" data-toggle="tab">Tooling</a></li>
						<li><a href="#videos" data-toggle="tab">Videos</a></li>
					</ul>
						<div id="myTabContent" class="tab-content">
							<div id="diagrams" class="tab-pane fade active in">
								<p>This section provides an overview of the different kinds of
									diagrams supported by Eclipse Capella. It is not an exhaustive list of
									all diagrams available in each Arcadia engineering phase.</p>
								<h3>Operational Architecture</h3>
								<p>
									Operational architecture diagrams are used in Operational
									Analysis. It captures the allocation of <b>Operational
										Activities</b> to <b>Operational Entities</b>. Operational Processes
									can be displayed as highlighted paths.
								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/OperationalArchitecture.png"><img alt="Operational Architecture" src="images/start/diagrams/OperationalArchitecture.png" width="60%">
								</a></p>

								<h3>Capabilities</h3>
								<p>
									Capabilities diagrams are available in all Arcadia engineering
									phases but are particularly useful in Operational Analysis and
									System Need Analaysis. <b>Capabilities</b> are similar to UML use
									cases. They are illustrated by Dataflows, Functional Chains and
									Sequence Diagrams.
								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/Capabilities.png"><img alt="[MCB]" src="images/start/diagrams/Capabilities.png" width="60%">
								</a></p>

								<h3>Dataflows</h3>

								<p>Dataflow diagrams are available in all Arcadia engineering
									levels. They represent information dependency between functions.
									These diagrams provide rich mechanisms to manage complexity:
									Computed simplified links between high-level Functions,
									categorization of Exchanges, etc. Functional Chains can be
									displayed as highlighted paths.</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/dataflows.jpg"><img alt="Dataflows" src="images/start/diagrams/dataflows.jpg" width="60%">
								</a></p>

								<h3>Architecture</h3>
								<p>
									Architecture diagrams are used in all Arcadia engineering phases.
									Their main goal is to show the allocation of <b>Functions</b>
									onto <b>Components</b>. Functional Chains can be displayed as
									highlighted paths. In System Need Analysis, these diagrams
									contain one box representing the System under study plus the
									Actors.
								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/architecture_1.jpg"><img alt="Architecture" src="images/start/diagrams/architecture_1.jpg" width="60%">
								</a></p>

								<p>
									In Logical Architecture, these diagrams show the building blocks
									of the system. These are called <b>Logical Components</b>.
								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/architecture_2.jpg"><img alt="Architecture" src="images/start/diagrams/architecture_2.jpg" width="60%">
								</a></p>

								<p>
									In Physical Architecture, these diagrams also show the allocation
									of <b>Behavioural Components</b> onto <b>Implementation
										Components</b> (typically material, but not necessarily).
								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/architecture_3.jpg"><img alt="Architecture" src="images/start/diagrams/architecture_3.jpg" width="60%">
								</a></p>

								<h3>Trees</h3>
								<p>
									Tree diagrams represent breakdowns of either <b>Functions</b> or
									<b>Components</b>. Each node can be folded / unfolded.
								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/tree_1.jpg"><img alt="Trees" src="images/start/diagrams/tree_1.jpg" width="60%">
								</a></p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/tree_2.jpg"><img alt="Trees" src="images/start/diagrams/tree_2.jpg" width="60%">
								</a></p>


								<h3>Sequence Diagrams</h3>
								<p>Capella provides several kinds of sequence diagrams:
									Functional Scenarios (lifelines are Functions), Exchange
									Scenarios (lifelines are Components/Actors while sequence
									messages are Functional or Component Exchanges), Interface
									Scenarios (lifelines are Components/Actors while sequence
									messages are Interface Operations). Modes, States and Functions
									can also be displayed on these diagrams.</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/scenario.jpg"><img alt="Sequence Diagrams" src="images/start/diagrams/scenario.jpg" width="60%">
								</a></p>

								<h3>Modes and States</h3>

								<p>Modes and States diagrams are UML-inspired state machines.
									Modes / States / Transitions can be related to Functions,
									Functional Exchanges, Interface Operations, etc.</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/modesstates.jpg"><img alt="Modes and States" src="images/start/diagrams/modesstates.jpg" width="60%">
								</a></p>

								<h3>Classes and Interfaces</h3>

								<p>Capella provides advanced mechanisms to model bit-precise
									data structures and relate them to Functional Exchanges,
									Component or Function Ports, Interfaces, etc.</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/classesinterfaces_1.jpg"><img alt="Classes Interfaces" src="images/start/diagrams/classesinterfaces_1.jpg" width="60%">
								</a></p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/start/diagrams/classesinterfaces_2.jpg"><img alt="Classes Interfaces" src="images/start/diagrams/classesinterfaces_2.jpg" width="60%">
								</a></p>
							</div>
							<div id="tooling" class="tab-pane">
									<p>The following is a non-exhaustive list of Capella
									differentiating features.</p>
								<h3>Methodological Guidance</h3>
								<p>
									The activity browser provides a <b>methodological access</b> to
									all key activities of Capella. It is the main entry point to a
									model and is both meant for beginners and power users.
								</p>
								<p><a href="arcadia.html" data-row="#documentation">Read more about Arcadia method <i class="fa fa-arrow-circle-right" aria-hidden="true"></i>
									</a>
								</p>
								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/overview.png"><img src="images/features/overview.png" alt="" width="60%">
								</a></p>

								<h3>Semantic Colormap</h3>
								<p>As graphical
									representations of elements play a key role in communication,
									Capella relies on a consistent colour scheme. This favours
									enhanced model readability for all stakeholders (architects, V&amp;V
									practitioners, specialty engineers, managers, etc.).</p>


								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/colormap.png"><img src="images/features/colormap.png" alt="" width="60%">
								</a></p>
								<h3>Semantic Browser</h3>
								<p>
									More useful than the standard hierarchical view of the model, the
									<b>semantic browser</b> instantaneously provides the context of
									model elements trough <b>meaningful queries</b>. It is the
									preferred way to navigate in models and diagrams and to quickly
									analyse the relationships between model elements.
								</p>


								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/semantic_browser.png"><img src="images/features/semantic_browser.png" alt="" width="60%">
								</a></p>
								<h3>Computed Links</h3>
								<p>
									A key feature of Capella is its ability to scale and <b>to
										tackle the increasing complexity of models</b>. Capella
									automatically computes graphical simplifications. The information
									exchanges between lower-level functions are automatically
									displayed on higher-level functions. This relieves architects
									from managing intermediate information exchanges and manually
									maintaining consistency between several levels of abstraction.
									Capella also provides tag-based mechanisms allowing the graphical
									grouping of semantically close exchanges.

								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/complexity_0.png"><img src="images/features/complexity_0.png" alt="" width="60%">
								</a></p>
								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/complexity_1.png"><img src="images/features/complexity_1.png" alt="" width="60%">
								</a></p>

								<h3>Advanced Diagram Management</h3>

								<p>
									<b>Automated contextual diagrams</b>: Content is automatically
									updated according to preselected elements and predefined semantic
									rules  <b>Synchronization/unsynchronization of
										diagrams</b>: Gives a fine level of control on the elements which
									are systematically displayed or not (Ports of Functions,
									Exchanges between Components, Properties of Classes, etc.)
									<b>Filters</b> help improve readability of diagrams by selecting
									display options and automatically hiding / showing elements.
									<b>Layers</b> are means to customise the graphical rendering of
									elements in a diagram based on different concerns (e.g.
									speciality viewpoints).
								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/filters.png"><img src="images/features/filters.png" alt="" width="60%">
								</a></p>
								<h3>Model Validation</h3>
								<p>
									Capella organizes model validation rules in several categories:
									Integrity, design, completeness, traceability, etc. Architects
									can define <b>validation profiles</b> focusing on different
									aspects. Whenever possible, <b>quick fixes</b> provide quick and
									automated solutions.
								</p>


								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/quickfixes.png"><img src="images/features/quickfixes.png" alt="" width="60%">
								</a></p>
								<h3>Semantic delete with preview</h3>
								<p>Capella provides
									instant impact analysis of deletions.</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/del_preview.png"><img src="images/features/del_preview.png" alt="" width="60%">
								</a></p>
								<h3>Replicable elements and libraries</h3>
								<p>
									Replicable Elements are mechanisms allowing the <b>easy reuse
										of (possibly multi-root) model parts</b>. A Replicable Elements
									Collection (REC, for Record) is a definition of an element / set
									of elements which can be reused in multiple contexts /
									configurations / models. A Replica (RPL, for Replay) is an
									instantiation of a REC. RECs can be packaged in libraries, which
									can be shared between several projects.
								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/rec_rpl.png"><img src="images/features/rec_rpl.png" alt="" width="60%">
								</a></p>
								<!--
								<h3>Modelling Patterns</h3>
								<p>Recurring
									modelling schemes can be captured with patterns.</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/patterns.png"><img src="images/features/patterns.png" alt="" width="40%">
								</a></p>
								-->
								<h3>Transition System/Subsystems</h3>
								<p>
									The <b>automated and iterative transition between system and
										subsystems</b> is a great help for managing several levels of
									engineering. The contract and model of the subsystems are
									computed from the system. Ideally, subsystems stakeholders are
									involved in co-engineering activities at system level before the
									transition occurs.
								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/transition_system_subsystem.png"><img src="images/features/transition_system_subsystem.png" alt="" width="60%">
								</a></p>
								<h3>Multi-Viewpoint</h3>
								<p>
									Capella provides basic demonstration viewpoints (Mass, Cost and
									Latency). Combined with Kitalpha, it also provides an <b>API
										for viewpoint development</b> and a contributive comparison view to
									evaluate the performance of candidate architectures according to
									different concerns.
								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/multi_vp.png"><img src="images/features/multi_vp.png" alt="" width="60%">
								</a></p>
								<h3>HTML output</h3>
								<p>
									Sharing models with all stakeholders is essential in model-based
									systems engineering. Publishing and sharing HTML versions of
									models helps <b>make models THE reference of all engineering
										activities</b>.
								</p>

								<p class="text-center"><a rel="gallery" class="fancybox" href="images/features/html.jpg"><img src="images/features/html.jpg" alt="" width="60%">
								</a></p>
							</div>
							<div id="videos" class="tab-pane">
								<iframe width="560" height="315" src="//www.youtube.com/embed/OGpHMR_j3AM?rel=0&amp;autoplay=0&amp;loop=0&amp;wmode=opaque&amp;controls=1&amp;showinfo=0&amp;theme=light&amp;vq=hd720&amp;color=white" frameborder="0" allowfullscreen=""></iframe>
								<p>
									<b>Embedded methodological guidance</b>
								</p>

								<iframe width="560" height="315" src="//www.youtube.com/embed/WtwAzftHd4A?rel=0&amp;autoplay=0&amp;loop=0&amp;wmode=opaque&amp;controls=1&amp;showinfo=0&amp;theme=light&amp;vq=hd720&amp;color=white" frameborder="0" allowfullscreen=""></iframe>
								<p>
									<b>Manage model complexity</b>
								</p>

								<iframe width="560" height="315" src="//www.youtube.com/embed/UiOiBomTU1c?rel=0&amp;autoplay=0&amp;loop=0&amp;wmode=opaque&amp;controls=1&amp;showinfo=0&amp;theme=light&amp;vq=hd720&amp;color=white" frameborder="0" allowfullscreen=""></iframe>
								<p>
									<b>Browsing the model</b>
								</p>

								<iframe width="560" height="315" src="//www.youtube.com/embed/HKMaGc99Zh8?rel=0&amp;autoplay=0&amp;loop=0&amp;wmode=opaque&amp;controls=1&amp;showinfo=0&amp;theme=light&amp;vq=hd720&amp;color=white" frameborder="0" allowfullscreen=""></iframe>
								<p>
									<b>Productivity tools</b>
								</p>

								<iframe width="560" height="315" src="//www.youtube.com/embed/cT43CmZM2go?rel=0&amp;autoplay=0&amp;loop=0&amp;wmode=opaque&amp;controls=1&amp;showinfo=0&amp;theme=light&amp;vq=hd720&amp;color=white" frameborder="0" allowfullscreen=""></iframe>
								<p>
									<b>Multi-viewpoint trade-off analysis</b>
								</p>

								<iframe width="560" height="315" src="//www.youtube.com/embed/zvIzyDxAj1c?rel=0&amp;autoplay=0&amp;loop=0&amp;wmode=opaque&amp;controls=1&amp;showinfo=0&amp;theme=light&amp;vq=hd720&amp;color=white" frameborder="0" allowfullscreen=""></iframe>
								<p>
									<b>Creation of viewpoint with Capella Studio 1.1.0</b>
								</p>

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