<!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.obeo.fr/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.obeo.fr/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>