<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Process-Aware Model-Driven Development Environments</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Levi</forename><surname>Lúcio</surname></persName>
							<email>lucio@fortiss.org</email>
							<affiliation key="aff0">
								<orgName type="department">Model-Based Software Engineering fortiss GmbH</orgName>
								<address>
									<settlement>Munich</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Saad</forename><surname>Bin</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">Model-Based Software Engineering fortiss GmbH</orgName>
								<address>
									<settlement>Munich</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Salman</forename><surname>Rahman</surname></persName>
							<email>salman.rahman@tum.de</email>
							<affiliation key="aff1">
								<orgName type="department">Model-Based Software Engineering fortiss GmbH</orgName>
								<address>
									<settlement>Munich</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Vincent</forename><surname>Aravantinos</surname></persName>
							<email>aravantinos@fortiss.org</email>
							<affiliation key="aff2">
								<orgName type="institution">Technische Universität München Munich</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ralf</forename><surname>Kuestner</surname></persName>
							<email>ralf.kuestner@diehl.com</email>
							<affiliation key="aff3">
								<orgName type="department">Model-Based Software Engineering fortiss GmbH</orgName>
								<address>
									<settlement>Munich</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Eduard</forename><surname>Harwardt</surname></persName>
							<email>eduard.harwardt@diehl.com</email>
							<affiliation key="aff4">
								<orgName type="institution">Diehl Aerospace Munich</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Process-Aware Model-Driven Development Environments</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">4692A73C2623EC2E5A24B10743B47A9B</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T01:16+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Process-awareness</term>
					<term>Domain-Specific Languages (DSLs)</term>
					<term>Model Construction</term>
					<term>generic requirement gathering framework</term>
					<term>process language</term>
					<term>requirement refinement process</term>
					<term>requirement engineer</term>
					<term>model driven development environment</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Due to recent advances in Domain Specific Language (DSL) workbenches, it has become possible to build model-driven development environments as sets of individual DSLs that get composed for a specific purpose. In this paper we explore how model-driven development environments can become processaware, to assist the user when building a model. We offer an explanation to our ideas at three levels of abstraction: 1) the metameta level, the Meta-Programming System (MPS) workbench with its language definition capabilities; 2) the meta level, where brick DSLs are defined and assembled into frameworks that are further tailored for particular modelling scenarios through the introduction of an explicit process for model construction; and 3) the model level, where models are built through progressive toolguided refinements and automated steps based on the process introduced at the meta level. We exemplify our approach by providing the main highlights of the ongoing development of a model-driven requirements gathering environment for our industrial partners.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION</head><p>The current trends in domain specific software engineering, domain specific languages (DSL) and domain specific modelling languages (DSML) demonstrate the interest for tailored software solutions. When it comes to model-driven engineering (MDE) tools, studies like <ref type="bibr" target="#b19">[20]</ref> show that this trend is justified: among the MDE tools considered in the reported study, the ones which were successful in penetrating industry were precisely those which were developed in a tailored manner for a given audience, the recommendation being: "Match tools to people, not the other way around".</p><p>Many technologies now precisely enable this sort of tailoring, among which JetBrains' MPS <ref type="bibr" target="#b14">[15]</ref>, Sirius <ref type="bibr" target="#b10">[11]</ref>, or the This work was developed in the context of the "IETS3" research project, funded by the German Federal Ministry of Education and Research under code 01IS15037A/B. classic MetaEdit+ <ref type="bibr" target="#b17">[18]</ref>. With the maturity of these technologies, one can safely say that building your own MDE tool has never been so easy -technology enthusiasts in various industries now develop their own domain-or even companyspecific tools.</p><p>On the other hand, as <ref type="bibr" target="#b19">[20]</ref> also mentions, tools are an enabler, but they are not everything: "More focus on processes, less on tools". Even when a tailored tool is available, allowing the modelling of one's domain through many sub-DSLs makes it such that new users often become overwhelmed by the amount of modelling techniques at their disposal. This is in fact the case for even very specialized tools like Sfit <ref type="bibr" target="#b8">[9]</ref> for the modelling of industrial manufacturing -while modelling a restricted domain, the tool contains a large number of different models, mostly rendered as diagrams. The question of methodology or process then naturally follows: in which order should one build the diagrams? More generally, which information should one model at a given point in time? The funding of research projects focusing on this question demonstrates the relevance of this question: for example SPES-XT <ref type="bibr" target="#b15">[16]</ref>, targets the development of methodologies for the domain of embedded systems. Similarly, Arcadia <ref type="bibr" target="#b9">[10]</ref> emphasizes the importance of the methodology in connection with MDE.</p><p>Just like for tools however, methodologies and processes can seldom be general enough to match all use cases and answer all needs. There is thus also a need for tailoring at that level. To facilitate the acceptance of the methodology, it is essential that the tool supports the methodology: this is for instance the case with Capella and Arcadia. Capella however, supports only the Arcadia methodology which is specific to avionic systems engineering and to the processes of Thales. All the above points to the fact that, if the tools can be tailored, the process itself should be tailorable.</p><p>In this paper, we propose an approach to develop DS(M)Ls in JetBrains' MPS <ref type="bibr" target="#b14">[15]</ref>, equipped with a means to customize the tool in order to support a given process: using our approach, in addition to the usual MPS mechanisms to develop their DSLs, developers can also explicitly express their own process. Such a process of model construction is declared as a statechart-like diagram, being that the current state is defined by the satisfaction of some properties of the model as well as by its previous states. For each state, the tool developer can define hints to be displayed as well as quickfixes in the form of creation of new artifacts.</p><p>In order to clarify our work we draw an analogy with the M-levels defined by the Object Management Group:</p><p>• M3: the MPS tool with its language definition capabilities. • M2: development and composition of "brick DSLs" in a domain-specific model-driven development environment, together with a model construction process. • M1: usage of the developed domain-specific tool. We also identify four different roles in the development and usage of the framework:</p><p>• the framework developer (in our case JetBrains), who develops MPS (level M3), • the framework customizer (the authors of this paper), who develops a library for process-customizable DSLs (level M2), • the (domain-specific) tool developer (typically a consultant or the in-house technology department of a company) who actually develops the domain-specific tool, making use of our libraries (level M2), • and the user (level M1). In this work, we contribute a framework at level M2 to support the tool developer in developing a process-aware domainspecific tool. At the M1 level, a "dashboard" allows the user to know permanently what is the next step to achieve.</p><p>As a case study, we demonstrate how to use this framework for the specific domain of requirements engineering: the stepby-step formalization of requirements is a common approach, making it, therefore, an ideal candidate for the development of a process-aware tool. For this purpose, we have implemented a set of DSLs supporting the MIRA <ref type="bibr" target="#b16">[17]</ref> framework, a general approach for the stepwise formalization of requirements focusing on quality assurance for requirements.</p><p>A tool developer can use this set of DSLs as a basis for their model-based development environment, by composing them with more specific DSLs of their own design. This can also "drive" the user in her requirements formalization process by implementing a process using our Process language. We illustrate this approach by developing a requirementsengineering tool specialized in the development of hardware cooling systems, inspired from a case study from our industrial partners at Diehl Aerospace.</p><p>The remainder of this paper is structured as follows. In section II we describe the MPS framework, which we use as the technological basis for all the results presented in this paper. Section III then describes our case study -the construction of a model-driven development environment for the incremental gathering and refinement of requirements.</p><p>Then, in section IV, we exemplify the construction of the requirements using the environment described in the previous section. Section V provides pointers to work in the literature that closely relates to the results we present here. Finally, section VI presents a discussion of our research and potential future work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>II. THE metameta LEVEL: MPS: A LANGUAGE META-EDITOR</head><p>The metameta level (M3, in MOF terms) is where the bricks for our approach are built. These bricks consist of DSLs, defined in the MPS (Meta Programming System) <ref type="bibr" target="#b2">[3]</ref> framework. MPS is a stable and industrially-proven projectional meta-editor which provides editing capabilities at the metalevels needed for our approach: M2 and M1. It uniformly integrates language and editor design capabilities, together with code generation tools and in-built correct-by-construction techniques such as meta-model conformance, syntax highlighting, auto-completion or type checking. MPS is developed by JetBrains, which assumes the role of framework developer. Throughout this paper we will often use vocabulary that is close to that used in the MPS world in order to remain aligned with the technical aspects of our work. In particular, the following terms are recurrently used in what follows:</p><p>• Language: an MPS language includes a metamodel, in the classical EMF sense. It additionally includes one or more editors for its metamodel, which provide concrete syntax.</p><p>• Concept: the MPS equivalent of metamodel class.</p><p>• Concept / language instance: concepts can be instantiated, in the same way metamodel classes can. We will also sometimes write language instance to refer to an instance of the root concept of an MPS language. • Intentions: actions attached to concepts of a language, available to the user. • Language composition: Reference or containment relations can exist between instances of concepts of different languages, which is the primary language composition mechanism in MPS. Another composition mechanism is the MPS model, which can contain instances of concepts belonging to many languages.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>III. THE meta LEVEL: DEFINING A REQUIREMENTS GATHERING FRAMEWORK IN MPS</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. A Generic Requirements Gathering Framework</head><p>The requirements gathering framework we introduce here borrows its structure from the Model-based Integrated Requirement Specification and Analysis (MIRA) Framework <ref type="bibr" target="#b7">[8]</ref>, <ref type="bibr" target="#b16">[17]</ref>. The main parts of the MIRA framework are as follows:</p><p>• The system context describes the relevant elements that belong to the context of the system being developed. • The requirement list documents the capabilities and limitations of the system under development.</p><p>• The trace link list keeps the relations between the artefacts being defined.</p><p>• The QA collection describes quality assurance activities and results. This broad classification of the concepts necessary to build a requirements gathering framework is helpful to us in an operational manner. We wish to build our framework as a set of composed domain specific languages in the MPS environment. For that we need an architecture around which we can organize such languages. The MIRA architecture thus helps us in understanding how to group and compose those languages. A particularity of MIRA is that quality assurance is natively integrated in the framework. MIRA's quality assurance has an operational counterpart in the MPS environment -in terms of language checks that come with the DSLs defined in MPS as well as other (formal) analyses that can be defined by the domain-specific tool developer building the framework. These analyses are orchestrated during the definition of the process when building a tailored model-driven development environment and correspond to MIRA's verification activities.</p><p>In figure <ref type="figure" target="#fig_0">1</ref> we present the first two meta-levels of our framework in the form of a stack of languages: at the bottom of the stack we have MPS itself, with its meta-editing capabilities; in the lower half of the layer immediately above we define the four aspects of the MIRA framework. Each one of the four aspects includes groups of DSLs that allow the requirements engineer to express parts of the complete requirements model. The framework customizer, in this case our group at fortiss, is responsible for building this part of the stack. The subset of MIRA we use for the work we present here is composed of the following languages:</p><p>• System Context: this aspect of the framework contains a Glossary language to allow defining the domain specific glossary terms that are used across a requirements project, together with values associated to those terms. • Requirements List: this aspect of the framework contains a Requirements language for expressing textual requirements, together with meta-information such as the author of the requirement or the requirement's current state. • Trace Links: this group contains a generic trace language that can be extended to build trace links from any to any model element in MPS. • QA collection: the QA collection group includes the Process and the Dashboard languages. The Process language allows defining refinement tasks for the requirements engineer. The Process language is used in conjunction with the Dashboard language in order to define at which moments a specialized requirements gathering framework will provide visual hints and pressbutton actions that guide the requirements engineer in the direction of achieving her task in a correct manner.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Customising the Framework: An Industrial Case Study</head><p>Nowadays, many embedded hardware systems (e.g. in laptops, cars or planes) are assembled together with cooling systems. The main purpose of those cooling systems is to maintain an appropriate temperature during the operation of the hardware being used. In this section we will extend the generic requirements gathering framework that has been introduced in section III-A in order to specialize it for gathering requirements for software controllers for hardware cooling systems. In particular, we will add a process for specifying this type of requirements. The case study we present here is inspired by a requirements document (that for non-disclosure reasons we cannot cite here) which was made available to us by Diehl aerospace, one of our industrial partners. Diehl builds hardware for airplanes and, as such, cooling systems for that hardware also need to be produced. The process of gathering requirements of the software that controls such cooling systems is currently almost completely manually done. This poses a problem to Diehl, as the current requirements gathering process imposes a large amount of effort to ensure that those requirements are documented in a fashion that is complete, correct, and traceable. Additionally, the aerospace industry has to adhere to strict regulations such that their systems can be certified to be used in production. In order to specialize the two lower layers of the language stack presented in figure <ref type="figure" target="#fig_0">1</ref> we have added the following languages: the Table language, for defining the behavior of the controller for the cooling system; the ModelProperty Language, which contains algorithms for checking properties that are specific to the cooling system requirements gathering system. Additionally, the domain specific tool developer also builds a process that will configure the dashboard's behavior. The dashboard assists the requirements engineer during the construction of the requirements by displaying hints and press-button actions that guide the refinement of the requirements model. The dashboard is configured by a description of which hints should be provided to the requirements engineer under which conditions. This information is provided as an instance of the Process language. In figure <ref type="figure">2</ref> we provide an example of such a process, depicted directly in our tool's concrete statechart-like syntax, for the cooling controller requirements. The top part of each state in the figure includes the description of the conditions that need to be satisfied such that the hint associated to that state is displayed on the dashboard. The conditions described on the states of figure <ref type="figure">2</ref> are boolean properties that are checked on the current state of a requirements project. An example of the boolean properties is GlossaryTermDefinedProperty. The boolean property GlossaryTermDefinedProperty returns true if a glossary term is defined and false elsewise. The boolean properties are implemented in the ModelProperty Language in figure <ref type="figure" target="#fig_0">1</ref>. This language holds the algorithms that implements the analyses required for our specific requirements gathering system. Note that, although this customization work has been done at fortiss, the idea is that in the future this work would be performed by a domain specific tool developer at Diehl. In a similar fashion, frameworks for gathering requirements for purposes other than for cooling systems could also be customized using as basis the same original set of languages as the one described in section III-A. We will now exemplify how a user, in this case a requirements engineer, can make use of the specialized requirements framework we have defined in section III-B. In particular, based on an existing requirements document provided by Diehl Aerospace and following the directions made available to us from engineers at Diehl, we will incrementally build the requirements for the software that controls a fan-based cooling system to cool down hardware boards embedded in the doors of passenger airplanes. Because of the fact that airplane doors include slides that should only be deployed when a plane lands under specific conditions, the logic running in those boards is non-trivial. The goal of the controller is to make sure the cooling fan runs at the correct duty cycle (fan speed) such that the hardware board works under ideal temperature conditions. The calculation of the duty cycle for the fan at a given time depends on two inputs: 1) the current temperature of the hardware board that needs cooling; and 2) whether the hardware board's temperature is increasing or decreasing. Note that in the example that follows we do not pretend to be exhaustive in the construction of the requirements for the fan's controller. This section reflects part of our partners' refinements process and demonstrates our framework's abilities in terms of providing automated assistance to the requirements engineer.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Tool Supported Requirements Definition and Refinement</head><p>The first thing to do in a requirements project for a cooling controller is to create a new dashboard by instantiating the Dashboard language that implements the cooling controller requirements process. A newly generated dashboard for our fan requirements project is depicted in figure <ref type="figure">2</ref>. The dashboard is the central artefact the requirements engineer refers to during requirements construction. It displays the current hint given to the user, as well as the current state of the requirements refinement process as a graph or a table. The hint displayed by the dashboard at the beginning of the project is "Create Project Structure". This hint is creational, which means the user can mouse-click on the hint to produce the instances of concepts that constitute the initial structure of the project in the same model where the dashboard instance has been created. Following this action a new hint, as shown in figure <ref type="figure">3</ref>, proposes to the requirements engineer defining a new requirement for the system that includes the temperature thresholds for the functioning of the cooling system. Note that at this point the current state of the requirements model has now changed to "Empty requirements model and no glossary terms defined", as highlighted in orange in figure <ref type="figure">3</ref> -which now presents a tabular view of the refinement process. The overall desired behavior of the cooling controller is stated as is an instance of the Requirements language in figure <ref type="figure">4</ref>. From this requirement the requirements engineer can then extract minimum (e.g., "Minimum increase value') and maximum (e.g., "maximum increase value') threshold values using the MPS intention "Extract Into Glossary". When used, this MPS intention generates in the project's glossary an entry with the same names as words or sets of words selected from the text. This constitutes the first refinement of the original abstract requirement. The next step is to define the duty cycle of the fan as a function of the current temperature of the controller board and whether the temperature is going up or down. The dashboard assists the requirements engineer in this task by providing a hint that, when mouse-clicked, automatically Fig. <ref type="figure">2:</ref> A newly created dashboard for the requirements framework Fig. <ref type="figure">3</ref>: The Dashboard provides a hint for adding a new requirement generates a table to define such behavior. An example of such a table is depicted in figure <ref type="figure">5</ref>. Note that the minimum and maximum threshold values in the table are preset in advance, as the process itself defines they should copied from the values previously stored in the glossary. We now come to the last refinement, which is to precisely define the behavior of the cooling fan's controller. In order to do this it is necessary to manually insert rows in the table that define the duty cycle for given intervals of temperature, when the temperature is going up or down. The Table language itself implements checks for completeness (all the temperatures between the thresholds are mapped onto duty cycles) and functionality (only one duty cycle value is given per temperature). Violations of these properties are pointed out in the editor as red markers. Figure <ref type="figure">5</ref> Fig. <ref type="figure">4</ref>: The requirements engineer adds a new requirement Fig. <ref type="figure">5</ref>: A filled in table and associated 2D visualization of the defined function represents a filled in table holding, for non-disclosure reasons, a fictitious behavior of the fan's controller. In the figure a 2D-graph representation of the table is also visible and it is produced by applying the Visualize Graph MPS intention to the table. The running example we have described in this paper can be downloaded at <ref type="bibr" target="#b0">[1]</ref> as an MPS project. Another case study of using our framework is available at <ref type="bibr" target="#b1">[2]</ref>, where we have designed a process to assist the user in building natural langage-like requirements for embedded controllers. Two videos demonstrating our tool and portraying these two case studies can be found at <ref type="bibr" target="#b4">[5]</ref>, <ref type="bibr" target="#b5">[6]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>V. RELATED WORK</head><p>Mechanisms for providing some kind of guidance to the domain-specific language user are present, to a smaller or larger extent, in all DSL definition workbenches. In most cases, that guidance is provided in the form of correctness-by-construction (e.g. only correct models that conform to a metamodel can be built), or a-posteriori checks for conformance to certain well-formedness rules. This is the case for example for DSL workbenches such as Sirius <ref type="bibr" target="#b10">[11]</ref>, AutoFocus3 <ref type="bibr" target="#b7">[8]</ref>, MetaEdit+ <ref type="bibr" target="#b17">[18]</ref> or MPS <ref type="bibr" target="#b14">[15]</ref> itself. However, none of those tools is capable of natively providing the means to explicitely define a model construction process or methodology that can assist users when building instances of DSLs specified in those environments.</p><p>Model construction processes naturally depend on the domain the DSLs are aimed at. It is thus not surprising that the explicit notion of process is more present in modelling environments that are specifically aimed at certain domainsas previously mentioned, the Capella tool is a model-driven engineering solution for systems and software architecture engineering which enforces the Arcadia <ref type="bibr" target="#b9">[10]</ref> methodology, aimed at specific domains such as transportation, avionics, space or radar; the Soley tool suite <ref type="bibr" target="#b3">[4]</ref>, dedicated to modelbased data extraction, processing and visualization, includes workflows as first-class citizens. Coming back to generic workbenches for language constructions, there exists a large body of work in the area of model transformation chaining to orchestrate the flow of models to achieve a modelling goal. For example, authors such as Wagelaar <ref type="bibr" target="#b18">[19]</ref> or Kolovos <ref type="bibr" target="#b11">[12]</ref> propose mechanisms for automatically orchestrating model transformations such that certain modelling goals are achieved. In this area, the study which is the closest to the proposal in this paper is the FTG+PM framework <ref type="bibr" target="#b12">[13]</ref>, <ref type="bibr" target="#b13">[14]</ref>. The FTG+PM defines an explicit process for the execution of model transformations. Enacting that process means that certain model transformations are performed automatically, while for others the user will have to input data at given points. The differences with the work we present in this paper have to do with the fact that our process is non-invasive, and is aimed at advising the user rather than executing a pre-defined work flow. With our approach automated actions are proposed to the user, who remains in complete control of the model edition process at all times.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>VI. CONCLUSIONS AND FUTURE WORK</head><p>We have presented a technique for the construction of domain-specific model editors in MPS, where these editors are based on a set of composed DSLs and on a description of the process that should be followed when building the models for that domain. We have applied our approach to the construction of an editor for gathering software requirements at two meta-levels: firstly, we build an abstract requirements gathering framework, following the guidelines in the MIRA framework <ref type="bibr" target="#b16">[17]</ref>; secondly, we specialize that framework for our industrial partners at Diehl, by introducing a specific requirements refinement process for controllers for cooling systems. The main technical contribution of this paper are the means to define a process to assist in building a model in a domain-specific model-driven development environment. This process is based on a set of automated model analyses and can guide the user until the model is complete. At a methodological level, our contribution regards our ideas on the separation of the framework customizer and the domain specific tool developer roles. While the former is responsible for defining a number of fundamental "brick" DSLs, the latter further specializes them for a particular application by adding more languages and organizing the whole according to a process. In its current state, the main shortcoming of the technique we propose in this paper is the fact that it is the complete responsibility of the domain-specific tool developer to check the consistency of the properties being checked during the unfolding of the process, as well as their logical sequence in the process. Although we have gathered some information about process construction through the two casestudies at <ref type="bibr" target="#b4">[5]</ref>, <ref type="bibr" target="#b5">[6]</ref>, it is necessary to model larger processes to better understand the advantages and disadvantages of our proposal. Scalability is also an issue as analyses currently run very often in the background, which will rapidly lead to performance degradation in larger systems. Potential solutions to this problem are currently being investigated by colleagues of our at fortiss <ref type="bibr" target="#b6">[7]</ref>. As future work, beyond mitigating the shortcomings above, we will continue working with Diehl Aerospace to develop the case study we present in this paper into a usable requirements gathering system. Other partner companies have shown interest in applying our work domains other than requirements engineering, which points to building or assembling different language stacks as well as different processes.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 :</head><label>1</label><figDesc>Fig. 1: A language stack for gathering software requirements</figDesc><graphic coords="4,48.96,50.54,514.08,242.87" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="5,48.96,50.54,514.07,374.58" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="5,48.96,460.78,514.10,121.83" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="6,48.96,50.54,514.08,121.92" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="6,113.22,208.13,385.54,264.73" type="bitmap" /></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<ptr target="https://github.com/levilucio/CoolingControllerReqsDash.git" />
		<title level="m">Cooling Controller Model Development Environment</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<ptr target="https://github.com/levilucio/EARS-CTRLDash.git" />
		<title level="m">EARS-CTRL Model Development Environment</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<ptr target="https://www.jetbrains.com/mps/" />
		<title level="m">Meta Programming System</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Soley</forename><surname>Tool</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Suite</forename></persName>
		</author>
		<ptr target="https://www.soley.io/" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<ptr target="https://youtu.be/HcYH6AV1UEU" />
		<title level="m">Video for the Cooling Controller IDE</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<ptr target="https://youtu.be/vzhUwjH8eLE" />
		<title level="m">Video for the EARS-CTRL IDE</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Tool support for live formal verification</title>
		<author>
			<persName><forename type="first">V</forename><surname>Aravantinos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Kanav</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Submitted to the Practice and Innovation Track at MoDELS</title>
				<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">AutoFOCUS 3: Tooling Concepts for Seamless, Model-based Development of Embedded Systems</title>
		<author>
			<persName><forename type="first">V</forename><surname>Aravantinos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Voss</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Teufl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Hölzl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Schätz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of ACES-MB (co-located with MoDELS)</title>
				<meeting>ACES-MB (co-located with MoDELS)</meeting>
		<imprint>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="19" to="26" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Factory product lines: Tackling the compatibility problem</title>
		<author>
			<persName><forename type="first">A</forename><surname>Bayha</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Lúcio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Aravantinos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Miyamoto</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Igna</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of VaMoS</title>
				<meeting>of VaMoS</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Not (strictly) relying on sysml for MBSE: language, tooling and development perspectives: The arcadia/capella rationale</title>
		<author>
			<persName><forename type="first">S</forename><surname>Bonnet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Voirin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Exertier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Normand</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of SysCon 2016</title>
				<meeting>SysCon 2016</meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="18" to="21" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Sirius: An open end-to-end voice and vision personal assistant and its implications for future warehouse scale computers</title>
		<author>
			<persName><forename type="first">J</forename><surname>Hauswald</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Laurenzano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Rovinski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Khurana</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">G</forename><surname>Dreslinski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">N</forename><surname>Mudge</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Petrucci</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Tang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Mars</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of ASPLOS&apos;15</title>
				<meeting>ASPLOS&apos;15</meeting>
		<imprint>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="223" to="238" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">A framework for composing modular and interoperable model management tasks</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">S</forename><surname>Kolovos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">F</forename><surname>Paige</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">A</forename><surname>Polack</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MDTPI Workshop</title>
				<imprint>
			<publisher>EC-MDA</publisher>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">FTG+PM: an integrated framework for investigating model transformation chains</title>
		<author>
			<persName><forename type="first">L</forename><surname>Lúcio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Mustafiz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Denil</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Vangheluwe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Jukss</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of SDL 2013</title>
				<meeting>SDL 2013</meeting>
		<imprint>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page" from="182" to="202" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">The FTG+PM framework for multi-paradigm modelling: an automotive case study</title>
		<author>
			<persName><forename type="first">S</forename><surname>Mustafiz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Denil</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Lúcio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Vangheluwe</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of MPM@MoDELS 2012</title>
				<meeting>MPM@MoDELS 2012</meeting>
		<imprint>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="13" to="18" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Jetbrains MPS as a tool for extending java</title>
		<author>
			<persName><forename type="first">V</forename><surname>Pech</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Shatalin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Voelter</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of PPPJ &apos;13</title>
				<editor>
			<persName><forename type="first">M</forename><surname>Plümicke</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">W</forename><surname>Binder</surname></persName>
		</editor>
		<meeting>PPPJ &apos;13</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page" from="165" to="168" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Advanced Model-Based Engineering of Embedded Systems</title>
	</analytic>
	<monogr>
		<title level="m">Extensions of the SPES 2020 Methodology</title>
				<editor>
			<persName><forename type="first">K</forename><surname>Pohl</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Broy</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><surname>Daembkes</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><surname>Hönninger</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Mira: A tooling-framework to experiment with model-based requirements engineering</title>
		<author>
			<persName><forename type="first">S</forename><surname>Teufl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Mou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Ratiu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of RE&apos;13</title>
				<meeting>RE&apos;13</meeting>
		<imprint>
			<date type="published" when="2013-07">July 2013</date>
			<biblScope unit="page" from="330" to="331" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">MetaEdit+ for collaborative language engineering and language use (tool demo)</title>
		<author>
			<persName><forename type="first">J</forename><surname>Tolvanen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of SLE 2016</title>
				<meeting>SLE 2016</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
			<biblScope unit="page" from="41" to="45" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Blackbox composition of model transformations using domain-specific modelling languages</title>
		<author>
			<persName><forename type="first">D</forename><surname>Wagelaar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of CMT 2006</title>
				<meeting>CMT 2006</meeting>
		<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Industrial adoption of model-driven engineering: Are the tools really the problem?</title>
		<author>
			<persName><forename type="first">J</forename><surname>Whittle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">E</forename><surname>Hutchinson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Rouncefield</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Burden</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Heldal</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of MODELS 2013</title>
				<meeting>MODELS 2013</meeting>
		<imprint>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page" from="1" to="17" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
