<!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 Day Munich 2019</title>
	<meta name="description"
		content="Capella Day is a one-day event dedicated to Capella open source model-based systems engineering tool.">
	<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 munich">
		<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">
								Capella Day Munich 2019<br>
							</h1>
						</section> <!-- cd-intro -->
						<h2 class="wow fadeInUp animated" data-wow-delay=".6s">
							The 16th of September, 2019<br />
							Thanks everyone !
						</h2>
						<p></p>
						<a href="https://www.slideshare.net/Obeo_corp/clipboards/capella-day-2019-munich" target="_blank"
							class="btn btn-default btn-contact wow fadeInDown" data-wow-delay=".7s"
							data-wow-duration="500ms">Access to the slides</a>
					</div>
				</div>
			</div>
		</div>
	</section>
	<!--/#intro_banner-->


	<section id="overview">
		<div class="container">
			<div class="row">
				<p>Capella Day was held on September 16th at Munich. 80 participants, 16 speakers, 14 countries represented: thanks everyone for this great third edition!</p>
				<p>You missed it and want to know what happened there? Please read this <a href="https://news.obeosoft.com/en/post/what-happened-at-capella-day-munich">news</a> and <a href="https://www.flickr.com/photos/136734847@N08/albums/72157711159793546">discover the photos</a>.</p>
				<p>Stay tuned to know when and where the next Capella Day will be organized by following the <a href="https://twitter.com/capella_arcadia">@capella_arcadia Twitter account</a>, the Capella LinkedIn account, or joining the <a href="https://www.linkedin.com/groups/8605600">LinkedIn discussion group about Capella</a>.</p>
				<p>Feel free to check <a href="http://www.eclipse.org/capella/">the Capella official website</a> and its upcoming events section.</p>
				<p>You can also discover the <a href="https://www.slideshare.net/Obeo_corp/clipboards/capella-day-2019-munich" target="_blank">slides</a>.</p>
				<br />
				<p>&nbsp;</p>
				<img src="images/capella_day/overview_capellaDay_munich2019.png">

				<h2 class="title wow fadeInDown" data-wow-delay=".3s">About</h2>
				<h3>What was Capella Day?</h3>
				<p>This one-day event, organized by Thales and Obeo, brought together the community of Capella and Arcadia:</p>
				<ul>
					<li>creators of this innovative systems engineering solution,</li>
					<li>providers of Capella add-ons and services,</li>
					<li>MBSE experts and industrial users.</li>
				</ul>
				<h3>What is Capella?</h3>
				<p>Capella is an open-source and field-proven Model-Based Systems Engineering (MBSE) solution to
					successfully design systems architecture.</p>
				<p>It provides systems, software and hardware architects with rich methodological guidance relying on
					Arcadia, a comprehensive model-based engineering method based on both industrial experimentations
					and system engineers' feedback</p>
				<p>Natively supporting Arcadia , Capella can be customized to fit the specific needs of many industrial
					domains.</p>
				<p><a href="https://www.eclipse.org/capella/">Learn more <i class="fa fa-arrow-circle-right" aria-hidden="true"></i></a></p>

				<h3>Previous editions</h3>
				<ul>
					<li><a href="https://wiki.eclipse.org/Capella_Day_Stuttgart_2018" target="_blank">Capella Day
							Stuttgart 2018</a></li>
					<li><a href="https://www.eclipsecon.org/france2017/capella-day" target="_blank">Capella Day Toulouse
							2017</a></li>
				</ul>
			</div>
		</div>
	</section>


	<section id="program">
		<div class="container">
			<div class="row">
				<h2 class="title wow fadeInDown" data-wow-delay=".3s">Agenda</h2>




				<table class="table table-striped wow fadeInDown" data-wow-delay=".5s">
					<thead>
						<tr>
							<th width="10%"></th>
							<th class="txt_indigo" width="50%">Talks</th>
							<th class="txt_indigo">Speakers</th>
						</tr>
					</thead>
					<tbody>
						<tr>
							<td class="txt_indigo"><strong>08:45 - 09:15</strong></td>
							<td><i>Coffee</i></td>
							<td></td>
						</tr>
						<tr>
							<td class="txt_indigo"><strong>09:15 - 09:30</strong></td>
							<td class="txt_indigo"><strong>Welcome and Introduction</strong></td>
							<td>
								<ul>
									<li>Etienne Juliot, <b>Obeo</b></li>
								</ul>
							</td>
						</tr>
						<tr>
							<td class="txt_indigo"><strong>09:30 - 10:30</strong></td>
							<td class="txt_indigo">
								<p><strong>Capella and Arcadia</strong></p>
									<ul>
										<li>Introduction to Capella and Arcadia</li>
										<li>Capella updates and roadmap</li>
										<li><a href="capella_day_munich_2019.html#talk_thales">Augmenting requirements
												with models to improve the articulation between system engineering
												levels and optimize V&V practices</a></li>
									</ul>
							</td>
							<td>
								<p>&nbsp;</p>
								<ul>
									<li>Stéphane Bonnet, <b>Thales Corporate Engineering</b></li>
								</ul>
							</td>
						</tr>
						<tr>
							<td class="txt_indigo"><strong>10:30 - 11:00</strong></td>
							<td><i>Break</i></td>
							<td></td>
						</tr>
						<tr>
							<td class="txt_indigo"><strong>11:00 - 12:20</strong></td>
							<td class="txt_indigo">
								<p><strong>Community and Ecosystem | Session 1</strong></p>
								<ul>
									<li><a href="capella_day_munich_2019.html#talk_framatome">Feedback on deployment of Capella at Framatome</a></li>
									<li>Feedback on deployment of Capella at RATP</li>
									<li><a href="capella_day_munich_2019.html#talk_ansys">Integrating Capella, SCADE and medini analyze, for MBSE, Embedded SW Development and Safety Analysis</a></li>
								</ul>
							</td>
							<td>
								<p>&nbsp;</p>
								<ul>
									<li>Valéry Teguiak & Hondjack Dehainsala, <b>Framatome</b></li>
									<li>Matthieu Connen & Maxime Piot, <b>RATP</b></li>
									<li>Thierry Lesergent, <b>ANSYS</b></li>
								</ul>
							</td>
						</tr>
						<tr>
							<td class="txt_indigo"><strong>12:30 - 13:30</strong></td>
							<td><i>Lunch</i></td>
							<td></td>
						</tr>
						<tr>
							<td class="txt_indigo"><strong>13:30 - 15:10</strong></td>
							<td class="txt_indigo">
								<p><strong>Community and Ecosystem | Session 2</strong></p>
									<ul>
										<li><a href="capella_day_munich_2019.html#talk_siemens_plm">Capella integration with Teamcenter</a></li>
										<li><a href="capella_day_munich_2019.html#talk_glaway">Model Execution and
												System Simulation in Capella</a></li>
										<li><a href="capella_day_munich_2019.html#talk_obeo">Integrating Capella with
												your own ecosystem of tools</a></li>
										<li><a href="capella_day_munich_2019.html#talk_artal">Providing early timing
												analysis of the system design</a></li>
										<li><a href="capella_day_munich_2019.html#talk_siemens_ct">Model-based safety
												analysis on Capella using Component Fault Trees (CFTs)</a></li>
									</ul>
							</td>
							<td>
								<p>&nbsp;</p>
									<ul>
										<li>Christoph Marhold, <b>Siemens PLM Software</b></li>
										<li>Renfei Xu & Wenhua Fang, <b>Glaway</b></li>
										<li>Laurent Delaigue, <b>Obeo</b></li>
										<li>Benoît Viaud, <b>Artal</b></li>
										<li>Marc Zeller, <b>Siemens Corporate Technology</b></li>
									</ul>
							</td>
							<td></td>
						</tr>
						<tr>
							<td class="txt_indigo"><strong>15:10 - 15:40</strong></td>
							<td><i>Break</i></td>
							<td></td>
						</tr>
						<tr>
							<td class="txt_indigo"><strong>15:40 - 16:40</strong></td>
							<td class="txt_indigo">
								<p><strong>Community and Ecosystem | Session 3</strong></p>
									<ul>
										<li><a href="capella_day_munich_2019.html#talk_maplesoft">An Excel-based
												Systems-Engineering Tool for Knowledge Sharing and Collaboration across
												the Enterprise</a></li>
										<li><a href="capella_day_munich_2019.html#talk_pure_systems">MBSE & PLE: Systematic Reuse of Capella Models with pure::variants</a></li>
										<li><a href="capella_day_munich_2019.html#talk_the_reuse_company">Capella
												integration with RAT - Authoring Tools</a></li>
									</ul>
							</td>
							<td>
								<p>&nbsp;</p>
									<ul>
										<li>Bharani Mohan & Paul Goossens, <b>MapleSoft</b></li>
										<p>&nbsp;</p>
										<li>Robert Hellebrand, <b>pure-Systems</b></li>
										<li>Jose Fuentes, <b>The Reuse Company</b></li>
									</ul>
							</td>
							<td></td>
						</tr>
						<tr>
							<td class="txt_indigo"><strong>16:40 - 17:20</strong></td>
							<td class="txt_indigo">
								<p><strong>Community and Ecosystem | Panel</strong></p>
								<p>During this <b>panel</b>, you and the speakers will discuss about Capella adoption
									and perspectives.</p>
							</td>
							<td>
								<p>&nbsp;</p>
								<ul>
									<li>All speakers</li>
								</ul>
							</td>
						</tr>
						<tr>
							<td class="txt_indigo"><strong>17:20 - 17:50</strong></td>
							<td><i>Closing Cocktail</i></td>
							<td></td>
						</tr>
					</tbody>
				</table>
			</div>
		</div>
	</section>


	<section id="talks">
		<div class="container">
			<div class="row">
				<h2 class="title wow fadeInDown" data-wow-delay=".3s">Talks</h2>
				<h3 id="talk_thales">Augmenting requirements with models to improve the articulation between system
					engineering levels and optimize V&V practices</h3>
				<p>Model-based systems engineering has developed significantly over the last few years, resulting in an
					increased usage of models in systems specification and architecture description. The question of the
					positioning of requirement engineering versus MBSE is a recurrent one.</p>
				<p>This talk describes one vision of this articulation where textual and model requirements actually
					complete each other. The results are improved contracts across engineering levels and more
					formalized V&V practices.</p>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/stephane_bonnet.jpg" width="120"></td>
						<td>
						<h4>Stéphane Bonnet, Thales Corporate Engineering</h4>
						<i>Stéphane Bonnet is in charge of Thales Corporate MBSE Coaching and Design Authority of
								the Capella open source modeling solution. For the last ten years, he has led the
								development of Capella and has been an active contributor to the Arcadia model-based
								method for systems, hardware and software architectural design. In Thales, he is
								animating a wide community of modeling experts from all domains and countries to
								investigate low-maturity modeling topics, capture end-user needs, and orient method and
								workbench roadmaps.</i></td>
					</tr>
				</table>
				<p>&nbsp;</p>
				<h3 id="talk_framatome">Feedback on deployment of Capella at Framatome</h3>
				<p>Open source software like Capella comes with advantages like the easy way to extend or customize it and drawbacks including support to users especially when they are working in a collaborative way. This presentation will share how Capella has been deployed in Framatome so that systems engineer/architect do not care much about technical issues but remain focus on their business.</p>
				<p>Furthermore, in a context where many companies have their data described in excel files, XLS Pivot (part our MBSE Suite tool), is a generic MBSE solution developed by Framatome on top of Capella to help users to exchange data from Excel to Capella and vice versa. This presentation will show XLS Pivot in action. </p>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/valery_teguiak.jpg" width="120"></td>
						<td>
						<h4>Valéry Teguiak, Framatome</h4>
						<i>Valéry Teguiak works as R&D Engineer Consultant at Framatome where he leads software engineering projects on top of Capella. He is a software engineer and obtained a PhD from the ISAE-ENSMA for his work on Data Engineering and Metamodeling-based Solution.</i></td>
					</tr>
				</table>
				<p>&nbsp;</p>
				<h3 id="talk_ansys">Integrating Capella, SCADE and medini analyze, for MBSE, Embedded SW Development and Safety Analysis</h3>
				<p></p>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/thierry_lesergent.jpg" width="120"></td>
						<td>
						<h4>Thierry Le Sergent, ANSYS</h4>
						<i>Thierry Le Sergent is Product Manager for ANSYS's SCADE Architect product. His focus is on model-based system & software engineering tools for the development of critical embedded systems.</i></td>
					</tr>
				</table>
				<p>&nbsp;</p>
				<h3 id="talk_siemens_plm">Capella integration with Teamcenter</h3>
				<p>The main reason we do product architecture is to communicate to downstream product development what they need to build, thus the need to integrate the Capella product architecture with the product lifecycle through PLM (Product Lifecycle Management).  Siemens’ Teamcenter PLM is used by millions of developers around the world in thousands of organizations.  Capella is being integrated with Teamcenter enabling it to actively participate in the product lifecycle to drive the entire product development process.</p>
				<p>This session will provide an update on Siemens’ PLM integration progress and demonstrate the value of a Capella enabled product lifecycle.</p>
				<p>&nbsp;</p>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/icons/icon_users.png" width="120"></td>
						<td>
						<h4>Christoph Marhold, Siemens PLM Software</h4>
						</td>
					</tr>
				</table>
				<p>&nbsp;</p>
				<h3 id="talk_glaway">Model Execution and System Simulation in Capella</h3>
				<p>A common need in system architecture design is to verify that if the architect is correct and can
					satisfy its requirements. Execution of system architect model means to interact with state machines
					to test system’s control logic. It can verify if the logical sequences of functions and interfaces
					in different scenarios are desired.</p>
				<p>However, only sequence itself is not enough to verify its consequence or output. So we need each
					function to do what it is supposed to do during model execution to verify its output, and that is
					what we called “system simulation”.</p>
				<p>This presentation introduces how we do model execution in Capella, and how to embed digital mockup
					inside functions to do “system simulation” with a higher confidence.</p>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/renfei_xu.jpg" width="120"></td>
						<td>
						<h4>Renfei Xu, Glaway</h4>
						<i>Renfei Xu is the technical manager of MBSE solution in Glaway. He has participated in
								many pilot projects of MBSE in areas like Engine Control, Avionics, Mechatronics and so
								on. In recent years, he is responsible for the deployment of MBSE using Capella and
								ARCADIA methodology in a Radar research institute.</i></td>
					</tr>
				</table>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/wenhua_fang.jpg" width="120"></td>
						<td>
						<h4>Wenhua Fang, Glaway</h4>
						<i>Wenhua Fang is the Director of Systems Engineering in Glaway. He has more than 12 years
								of working experience in SE.<br />
								He is responsible for more than 10 implementation projects of MBSE in areas like
								Aircraft, Engine Control, Avionics, Automotive and so on. In recent years, he leads the
								team to deploy MBSE in China(including using Capella and ARCADIA methodology).</i></td>
					</tr>
				</table>
				<p>&nbsp;</p>
				<h3 id="talk_obeo">Integrating Capella with your own ecosystem of tools</h3>
				<p>The current industrial trends related, among others, to digital twins or large scale systems of
					systems, drive companies to using MBSE tools such as Capella. However, these tools have to be part
					of the overall ecosystem of tools used by such companies (e.g. complex systems manufacturers).</p>
				<p>One example is the integration with a PLM solution, that we will illustrate by explaining how we have
					integrated Capella and Teamcenter by developping System Modeling Workbench.</p>
				<p>Beyond technical aspects (build the product, managing its lifecycle with regards to constraints
					brought by the market and by the open source processes, etc.) we will also discuss the organization
					of the collaboration needed to perform this kind of integration project.</p>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/laurent_delaigue.jpg" width="120"></td>
						<td>
						<h4>Laurent Delaigue, Obeo</h4>
						<i>Laurent Delaigue has been working in the field of model engineering for 15 years. As a
								modeling consultant at Obeo for 10 years, he participates in numerous modeling projects
								generally based on open-source technologies such as Acceleo, Sirius or Capella.</i></td>
					</tr>
				</table>
				<p>&nbsp;</p>
				<h3 id="talk_artal">Providing early timing analysis of the system design</h3>
				<p>When designing real-time systems, one issue is to grant that the system will always behave properly
					within the expected time constraints.<br />
					By capturing the design choices in Capella (periodic/sporadic events, precedence relation between
					tasks, network communication between resources, mutual exclusion resources, etc.), Tideal viewpoint
					not only allows to compute the worst-case execution time for end-to-end flows traversing the system
					but also provides some feedback to the architect to better understand the temporal behavior of the
					system.</p>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/benoit_viaud.jpg" width="120"></td>
						<td>
						<h4>Benoit Viaud, Artal</h4>
						<i>Benoit Viaud leads Artal’s System Engineering unit. He initiated the creation of Citrus,
								a one-stop-shop engineering framework for simulation and is deeply involved in its
								deployment in Airbus. He also carries out coaching and consulting activities around
								Capella.</i></td>
					</tr>
				</table>
				<p>&nbsp;</p>
				<h3 id="talk_siemens_ct">Model-based safety analysis on Capella using Component Fault Trees (CFTs)</h3>
				<p>The importance of mission or safety-critical software systems in many application domains of embedded
					systems is continuously growing, and so is the effort and complexity for reliability and safety
					analysis. Model-based system engineering (MBSE) is currently one of the key approaches to cope with
					increasing system complexity.</p>
				<p>With Component Fault Trees (CFTs) there is a model- and component-based methodology for safety
					analysis, which extends the advantages of model-based development to safety & reliability
					engineering. In this talk, we demonstrate how to ease the development of safety-critical systems in
					industrial practice by extending MBSE in Capella with model-based safety analysis using Component
					Fault Tree methodology.</p>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/marc_zeller.jpg" width="120"></td>
						<td>
						<h4>Marc Zeller, Siemens Corporate Engineering</h4>
						<i>Marc Zeller works as a research scientist at Siemens AG, Corporate Technology, in Munich
								since 2014. His research interests are focused on the model-based safety and reliability
								engineering of complex software-intensive embedded systems. Marc Zeller studied Computer
								Science at the Karlsruhe Institute of Technology (KIT) and graduated in 2007. He
								obtained a PhD from the University of Augsburg in 2013 for his work on self-adaptation
								in networked embedded systems at the Fraunhofer Institute for Embedded Systems and
								Communication Technologies ESK in Munich.</i></td>
					</tr>
				</table>
				<p>&nbsp;</p>
				<h3 id="talk_maplesoft">An Excel-based Systems-Engineering Tool for Knowledge Sharing and Collaboration
					across the Enterprise</h3>
				<p>MapleMBSE is an Excel-based tool that makes it easy for every stakeholder to engage with the Systems
					Engineering project without requiring them to be an expert in your primary SE tools.<br />
					MapleMBSE makes broad engagement possible with Excel-based, task-specific interfaces for each
					activity in the systems design process.<br />
					By giving all stakeholders access to the process through a live, two-way connection to systems
					model, you can ensure that all stakeholders can collaborate through the “single source of truth”,
					allowing them to work faster, avoid errors, and reduce unbudgeted costs.<br />
					This presentation will demonstrate how MapleMBSE can be used for several use-cases on the Capella
					platform, based on Maplesoft’s experience with NASA JPL in the US and Nissan in Japan.</p>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/bharani_mohan.jpg" width="120"></td>
						<td>
						<h4>Bharani Mohan, Maplesoft</h4>
						<i>Bharani is an MBSE specialist, and facilitates the improvement of the overall user
								experience throughout the model-based system engineering process.<br />
								He works with customers to enhance their use of Maplesoft’s MapleMBSE platform,
								providing guidance and assisting with issues. He also supports the development of
								specific MapleMBSE features to encourage broader adoption.<br />
								With a background in Aerospace Engineering, Bharani has experience applying MBSE design
								methodologies in conceptual design of aircraft systems architecture, and translating
								design requirements into system architecture. </i></td>
					</tr>
				</table>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/paul_goossens.jpg" width="120"></td>
						<td>
						<h4>Paul Goossens, Maplesoft</h4>
						<i>Paul Goosseens is Vice President MBSE Solutions at Maplesot. A mechanical engineer by
								background, he has over 25 years of experience in technical and business management,
								primarily in advanced computational technologies for engineering applications.<br />
								He has built a strong reputation as an expert in modeling, simulation and analysis of
								complex multi-domain systems for virtual prototyping and control software testing,
								spending a good part of his career promoting model-based methodologies within the
								automotive, aerospace and manufacturing industries.<br />
								He currently manages the Model-based Systems Engineering business unit at Maplesoft,
								charged with executing strategies for the development of new markets, product planning,
								sales and marketing support, service business development, and strategic partnerships.
							</i></td>
					</tr>
				</table>
				<p>&nbsp;</p>
				<h3 id="talk_pure_systems">MBSE & PLE: Systematic Reuse of Capella Models with pure::variants</h3>
				<p>In domains that deal with the development of complex systems consisting of software and hardware it is often a challenge to find an efficient and holistic reuse strategy for existing engineering assets that allows to keep the engineering competitiveness high even though a growing number of markets and specific customer needs shall be covered by a product family.
				<br/>Product Line Engineering (PLE) is a well-known approach to address this challenge. In this session we will cover how PLE and MBSE can be brought together using the open-source MBSE solution Capella in combination with the Variant Management tool pure::variants to implement a systematic reuse of system architecture across multiple product variants.</p>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/robert_hellebrand.jpg" width="120"></td>
						<td>
						<h4>Robert Hellebrand, pure-systems</h4>
						<i>Robert Hellebrand is a Field Application Engineer at pure-systems GmbH, where he helps customers from automotive, aerospace, defence and other domains with their challenges in systematic reuse of engineering assets and the transition from project-oriented development towards feature model-based product line engineering with pure::variants.<br/>
						Previously, Robert worked on the topic of variant management as a research assistant at the Fraunhofer Institute for Experimental Software Engineering.</i></td>
					</tr>
				</table>
				<p>&nbsp;</p>
				<h3 id="talk_the_reuse_company">Capella integration with RAT - Authoring Tools</h3>
				<p>When it comes to writing and managing requirements aligned with models in Capella, RAT, the Rich Authoring Tool from the REUSE Company, is the perfect companion.
				RAT provides AI and Natural Language Processing (a complete Semantic approach) to <b>write the perfect requirements</b>. The following functions are offered by RAT for Capella plug-in:</p>
				<ul>
					<li><b>Quality</b>: real-time quality assessment of rules such as the
						ones defined in the INCOSE Guide for Writing Requirements, the
						NASA Handbook, the ECSS rules followed by the Space industry, or
						others.</li>
					<li><b>Consistency</b>: using a set of patterns to come out with a
						consistent structure for your requirements across the
						organization.</li>
					<li><b>Requirements-Models traceability and integration</b>:
						requirements and models will always be integrated. RAT offers the
						names of the models in Capella to fill the placeholders as defined
						and agreed in the patterns, keeping a link to automatically change
						your requirements when the elements are renamed or edited.</li>
					<li><b>Round-trip</b>: bidirectional connectivity between Capella and
						DOORS, allowing adding or editing requirements in IBM DOORS
						seamlessly using the elements defined in a Capella model, make the
						most of the capabilities offered by DOORS and then synchronize
						your requirements back to Capella keeping all the references to
						the Capella elements and sections.</li>
					<li><b>Accessibility</b>: RAT aggregates requirements in a <b>SMART Grid</b>
						in Capella. Different grids can be shown based on the selection of
						elements in the model. The grid provides shorting, filtering,
						advanced search, or quality rates for each elements, among many
						other functionalities.</li>
					<li><b>Integration with the SES Suite of REUSE Company</b>: RAT for
						Capella plug-in is fully integrated with RQA - Quality Studio to
						tailor the quality rules, or check the completeness and
						consistency analysis between requirements and models. RAT for
						Capella is also fully integrated with KM – Knowledge Manager to
						provide additional content to your data dictionary or to tailor
						the patterns used by RAT.</li>
				</ul>
				<table style="margin:10px">
					<tr>
						<td class="vertical_align_top" width="10%"><img src="images/capella_day/jose_fuentes.jpg" width="120"></td>
						<td>
						<h4>José Fuentes, The Reuse Company</h4>
						<i>José Fuentes obtained his degree in Information Science at the Carlos III University of
								Madrid (Spain).<br />After getting his degree, he founded, together with other 5
								colleagues, an SME with the vision of streamlining the software development processes.
								After some years as product manager for some software tools aimed at software engineers,
								he and his company turned into the systems engineering discipline.<br />His professional
								experience is focused on the Management of software development projects, as well as
								training and consultancy activities related to project management (PMP), CMMI,
								requirements management…
								For more than 10 years, he’s been leading the team of developers in charge of creating
								the suite of tools Requirements Quality Suite in The REUSE Company.<br />This includes
								from the research stage to the commercialization stage. He has participated as the main
								company researcher in several EU projects like:
								AUTOSoft (4FP: SPRIT Project 25762) aiming to provide tools and methods for software
								reuse; and CRYSTAL (ART Call 2012: 332830) taking up the challenge to establish and push
								forward an Interoperability Specification (IOS) and a Reference Technology Platform
								(RTP) as a European standard for safety-critical systems. AMASS (ECSEL no 692474) in the
								field of assurance and certification of Cyber-Physical Systems; or REVAMP2 (ITEA3 No.
								15010) aiming to conceive new generations of Product Lines.
								José is now COO at The REUSE Company, dealing with customers and partners in the fields
								of aerospace, defence, automotive, railway…<br />José is also actively collaborating
								with INCOSE. His main activity within INCOSE are: Member of the board of AEIS, the
								Spanish Chapter of INCOSE ; Technical director of AEIS ; Managing relationships with
								CABs at AEIS ; Main contributor to the INCOSE Guide for Writing Requirements ; Member of
								the Requirements and Ontology Working Groups</i></td>
					</tr>
				</table>
			</div>
		</div>
	</section>

	<section id="register">
		<div class="container">
			<div class="row">
				<h2 class="title wow fadeInDown" data-wow-delay=".3s">Registration</h2>
				<p>Capella Day, is organized in conjunction with <a href="https://modelsconf19.org/"
						target="_blank">MODELS Conference 2019</a>.</p>
				<p>Price: <b>90€</b> (excl. taxes).</p>
				<p></p>
				<!-- <p> <a href="https://www.eventbrite.fr/e/billets-capella-day-2019-at-munich-64720885912"
						class="btn btn-default btn-contact wow fadeInDown" data-wow-delay=".7s"
						data-wow-duration="500ms">Register Now</a></p> -->
			</div>
		</div>
	</section>

	<section id="venue">
		<div class="container">
			<div class="row">
				<h2 class="title wow fadeInDown" data-wow-delay=".3s">Venue</h2>
				<p>Capella Day, will be held at the <b><a
							href="https://www.accorhotels.com/gb/hotel-3280-novotel-munich-city/index.shtml#section-location"
							target="_blank">Novotel Munich City</a></b>, Germany.</p>
			</div>
		</div>
	</section>

	<section id="partners">
		<div class="container">
			<div class="row">
				<h2 class="title wow fadeInDown" data-wow-delay=".3s">Partners</h2>
				<p>Capella Day is organized by Obeo and Thales</p>
				<p></p>
				<a href="/industry-consortium/thales.html" target="_blank"><img src="images/logo_obeo.png"></a>
				<p></p>
				<a href="https://www.obeosoft.com/en/capella-professional-offer" target="_blank"><img
						src="images/logo_thales.png"></a>

			</div>
		</div>
	</section>

	<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_capella_day.html'"></ng-include>

	<!--
        ==================================================
        Footer Section
        ================================================== -->
	<ng-include src="'angular/blocks/footer.html'"></ng-include>
	<script async src="js/googleAnalytics.js"></script>
</body>

</html>