<?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">An Hybrid Design Solution For Spacecraft Simulators</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Vítor</forename><surname>Rodrigues</surname></persName>
							<email>victor.rodrigues@esa.int</email>
						</author>
						<author>
							<persName><forename type="first">João</forename><surname>Correia Lopes</surname></persName>
						</author>
						<author>
							<persName><forename type="first">Ana</forename><surname>Moreira</surname></persName>
							<affiliation key="aff4">
								<orgName type="department">Dept. Informática</orgName>
								<orgName type="institution">Universidade Nova de Lisboa</orgName>
								<address>
									<postCode>2829-516</postCode>
									<settlement>Caparica</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff0">
								<orgName type="institution">ESOC/ESA</orgName>
								<address>
									<postCode>D-64293</postCode>
									<settlement>Darmstadt</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff1">
								<orgName type="department">Oristeba Space Services</orgName>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff2">
								<orgName type="institution">INESC Porto</orgName>
								<address>
									<postCode>4200-465</postCode>
									<settlement>Porto</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff3">
								<orgName type="department">Faculdade de Engenharia da</orgName>
								<orgName type="institution">Universidade do Porto</orgName>
								<address>
									<postCode>4200-465</postCode>
									<settlement>Porto</settlement>
									<country key="PT">Portugal</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">An Hybrid Design Solution For Spacecraft Simulators</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">44E8C9B4C4F1AE8A445FA205EB6834E8</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T23:14+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>simulation model portability</term>
					<term>model-driven development</term>
					<term>testdriven development</term>
					<term>GNU build system</term>
					<term>hybrid design techniques</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The European Space Agency (ESA) has created the Simulation Model Portability 2 (SMP2) standard with the purpose to provide a design solution for the project of Spacecraft Simulators. One element of the SMP2 standard is the metamodel Simulation Model Denition Language (SMDL). The design artefacts of a Spacecraft Simulator consist in descriptions of the business logic shared by a set of SMP2 models. This paper reports results from a study that considers the hypothesis to complement the model-driven design approach of the SMP2 standard with test-driven design techniques. The high-level abstractions of Spacecraft Simulators are used to carry out Model-Driven Development processes, while reusable pieces of software that can to be used by many SMP2 models are designed and developed following Test-Driven-Development. The tool capable to establish the dependencies between the source code produced by the two methodologies and mission specic source code is the GNU Build System.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>The design of Spacecraft Simulators is based upon a component model specied by the the SMDL modeling language which focuses primarily on interface reuse <ref type="bibr" target="#b0">[1]</ref>. SMP2 models are described in SMP2 design artefacts that are transformed into C ++ skeletons into which the behaviour implementations must be added.</p><p>Although model-driven design is ideal for developing software in multiple computing platforms, multiple implementations of the same interface is left out of its scope <ref type="bibr" target="#b1">[2]</ref>. Our objective is to deconstruct the purely top-down strategy of model-driven development using the SMP2 standard onto a bottom-up development process of a SMP2 Framework <ref type="bibr" target="#b2">[3]</ref> </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Background</head><p>Design prototyping in object orientation is the activity of using objects that represent abstract entities to dene design models. From this premise follows that the planning of the coding activity is done by describing the objects and the business logic they share. Although the design models are written before any programming language specication, we can establish a direct correspondence between the symbology of a modeling language and the symbology of a programming language, thus making the design models a cross-platform specication from which model-driven development departures.</p><p>A dierent approach to software design is the specication of code functionalities through test code. Using only test code it is possible to design a piece of software before entering the stage of source code development. Similarly to design models, test code is a design artefact, but it does not follow a pre-dened semantic scheme as per design models. Nonetheless, test-driven development is a restrained process, carried out in closed loop through source code refactoring which makes it appropriated for developing software systems that are continually evolving.</p><p>This GNU Build System provides modelling languages to specify dependencies between source packages <ref type="bibr" target="#b3">[4]</ref>. Cross-platform processes of creation of makeles are integrated within the development of SMP2 components, making possible the attempt of several congurations involving the SMP2 models and the reusable libraries, which derive from disparate development lines.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Specication</head><p>Our premise is that there are parts of the spacecraft functionality that do not depend on the business logic conguration, because they are generic, context independent and, therefore, reusable. Therefore, the implementation of a Spacecraft Simulator, whether it is accomplished from scratch or as an update to an existing solution, may be decoupled from the design models.</p><p>An hybrid system would be possible to recongure by simply adjusting the variable parts that in it coexist. The articulation of both frameworks, that is, the integration of the reusable software inside the SMP2 models, is accomplished by the GNU Build System (see Figure <ref type="figure" target="#fig_0">1</ref>). The creation of a SMP2 model is done indirectly. Template methods of the SMP2 Framework become hook methods on the specialized classes and the mechanism of object inheritance is used to plug-in software components into the framework's hot spots <ref type="bibr" target="#b4">[5]</ref>.</p><p>To build a functional SMP2 software component it is necessary to link the code skeletons and the infrastructure libraries with glue code designated by mission specic, which must reach the reusable behaviour provided by the infrastructure libraries and make the necessary adaptations to, in its own behalf, provide to the other SMP2 components the behaviour which is specied in the SMP2 logic structure. This activity constitutes the tuning of the system and the GNU Build System guarantees that the system is kept in a consistent state <ref type="bibr" target="#b5">[6]</ref>. The access to the infrastructure functionalities can be automated by adopting the `Adapter' and `Abstract Factory' GOF <ref type="bibr" target="#b6">[7]</ref> design patterns, reducing the amount of manual writing and software analysis: if the translation between the public SMP2 interfaces and the private interfaces of the infrastructure libraries can be specied using the SMP2 support for metadata, then this translation is foreseen as yet another transformation inside the MDD environment.</p><p>The hybrid system is developed by an iterative process. In each iteration it is possible to rene the SMP2 interface signatures or the behaviour provided by the infrastructure libraries. The granularity of the SMP2 models is decided upon metrics analysis and the granularity of the Infrastructure Framework is determined by the number of dierent contexts where a given library can be reused. If these two operations converge and if relation between the SMP2 models and the combination of infrastructure libraries is of the type adapter:adaptee, then the additional coding of mission specic code will increasingly tend to zero <ref type="bibr" target="#b5">[6]</ref>.</p><p>With a pure model-driven design approach the initial prototype becomes the simulator after completing the coding task. This enforces the validation of the design in the earlier stages of the project life cycle <ref type="bibr" target="#b7">[8]</ref>. On the contrary, the risk</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. The Development Lines of MDD and TDD</figDesc><graphic coords="3,152.06,199.84,311.24,142.62" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>. On the other hand, reusable behaviour Proceedings of CAiSE'08 Forum implementations of a Spacecraft Simulator are developed on top of a distinct software framework called Infrastructure Framework developed with test-driven techniques. The hybrid design solution aggregates the principles of both software development approaches.</figDesc><table /></figure>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Proceedings of CAiSE'08 Forum of changing the business logic of an hybrid system during development is reduced since the core tasks of coding are done on top of the Infrastructure Framework. In such a decoupled system, the SMP2 code skeletons can be regarded as test code, but there has to be no commitment to an initial high-level design.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Conclusion</head><p>A single design approach is hardly a one-size-ts-all solution. An hybrid system is more pluralistic because it provides the software engineers with a large set of building blocks, which are designed to be useful in dierent application contexts and used to build software systems without a fully pre-fabricated structure. In this line of thought, the design of Spacecraft Simulators supported in the two distinct development methodologies of MDD and TDD widens the covering of the software requirements and produces a more complete project specication.</p><p>The advantage of an hybrid solution is the opportunity to circumscribe the technological push of the SMP2 standard and work exclusively on the design models and evaluate the impact that the modelling breakdown imposes. The GNU Build System is the enabling technology for an hybrid design solution, bringing exibility to the integration of source code derived from the MDD and TDD development lines.</p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<idno>EGOS-SIM-GEN-TN-0099</idno>
		<title level="m">ESA: Smp 2.0 Handbook</title>
				<imprint>
			<date type="published" when="2004-10">October 2004</date>
		</imprint>
	</monogr>
	<note type="report_type">Technical report</note>
	<note>Issue 1 Revision 0</note>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<author>
			<persName><forename type="first">A</forename><surname>Brown</surname></persName>
		</author>
		<ptr target="http://www-128.ibm.com/developerworks/rational/library/3100.html" />
		<title level="m">An introduction to Model Driven Architecture, Part I</title>
				<imprint>
			<date type="published" when="2004-03-10">2004. 10-March-2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Components, Frameworks, Patterns</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">E</forename><surname>Johnson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ACM SIGSOFT Symposium on Software Reusability</title>
				<imprint>
			<date type="published" when="1997">1997</date>
			<biblScope unit="page">1017</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">GNU Autoconf, Automake, and Libtool</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">V</forename><surname>Vaughan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Elliston</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Tromey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">L</forename><surname>Taylor</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2000">2000</date>
			<publisher>Sams</publisher>
		</imprint>
	</monogr>
	<note>1st edition</note>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Meta Patterns A Means for Capturing the Essentials of Reusable Object-Oriented Design</title>
		<author>
			<persName><forename type="first">W</forename><surname>Pree</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Lecture Notes in Computer Science</title>
		<imprint>
			<biblScope unit="volume">821</biblScope>
			<biblScope unit="page">150</biblScope>
			<date type="published" when="1994">1994</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">On the Specication of Spacecraft Simulators using Object-Oriented Methodologies</title>
		<author>
			<persName><forename type="first">V</forename><surname>Rodrigues</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
		<respStmt>
			<orgName>University of Oporto, Departament of Electrical and Computer Engineering</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Master&apos;s thesis</note>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title level="m" type="main">Design Patterns: Elements of Reusable Object-Oriented Software</title>
		<author>
			<persName><forename type="first">E</forename><surname>Gamma</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Helm</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Johnson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Vlissides</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2005">2005</date>
			<publisher>Addison-Wesley</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">The Object Primer</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">W</forename><surname>Ambler</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
			<publisher>Cambridge University Press</publisher>
		</imprint>
	</monogr>
</biblStruct>

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