<?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">Embedded System Construction -Evaluation of Model-Driven and Component-Based Development Approaches</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Christian</forename><surname>Bunse</surname></persName>
							<email>christian.bunse@i-u.de</email>
							<affiliation key="aff0">
								<orgName type="institution">International University in Germany</orgName>
								<address>
									<settlement>Bruchsal</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Hans-Gerhard</forename><surname>Gross</surname></persName>
							<email>h.g.gross@tudelft.nl</email>
							<affiliation key="aff1">
								<orgName type="institution">Delft University of Technology</orgName>
								<address>
									<settlement>Delft</settlement>
									<country key="NL">The Netherlands</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Christian</forename><surname>Peper</surname></persName>
							<email>christian.peper@iese.fraunhofer.de</email>
							<affiliation key="aff2">
								<orgName type="institution">Fraunhofer Institute for Experimental Software Engineering</orgName>
								<address>
									<settlement>Kaiserslautern</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Embedded System Construction -Evaluation of Model-Driven and Component-Based Development Approaches</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">0AAC4283AB2F19B7EEADF4AD709E3D5E</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T00:24+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>Exploratory Study</term>
					<term>Embedded</term>
					<term>Model-Driven</term>
					<term>Components</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Model-driven development has become an important engineering paradigm. It is said to have many advantages, such as reuse or quality improvement, over traditional approaches, even for embedded systems. Along a similar line of argumentation, component-based software engineering is advocated. In order to investigate these claims, the MARMOT method was applied to develop several variants of a small micro-controller-based automotive subsystem. Several key figures, like model size and development effort were measured and compared with two main-stream methods: the Unified Process and Agile Development. The analysis reveals that model-driven, component-oriented development performs well and leads to maintainable systems and a higher-than-normal reuse rate.</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>Embedded software design is a difficult task due to the complexity of the problem domain and the constraints from the target environment. One specific technique that may, at first sight, seem difficult to apply for the embedded domain, is modeling and Model-Driven Development (MDD) with components. It is frequently used in other engineering domains as a way to solve problems at a higher level of abstraction, and to verify design decisions early. Component-oriented development envisions that new software can be created with less effort than in traditional approaches, simply by assembling existing parts. Although, the use of models and components for embedded software systems is still far from being industrial best practice. One reason might be, that the disciplines involved, mechanical-, electronic-, and software engineering, are not in sync, a fact which cannot be attributed to one of these fields alone. Engineers are struggling hard to master the pitfalls of modern, complex embedded systems. What is really lacking is a vehicle to transport the advances in software engineering and component technologies to the embedded world.</p><p>Software Reuse is currently a challenging area of research. One reason is that software quality and productivity are assumed to be greatly increased by maximizing the (re)use of (part of) prior products instead of repeatedly developing from scratch. This also stimulated the transfer of MDD and CBD <ref type="bibr" target="#b11">[12]</ref> techniques to the domain of embedded systems, but the predicted level of reuse has not yet been reached. A reason might be that empirical studies measuring the obtained reuse rates are sparse. Studies, such as <ref type="bibr" target="#b6">[7]</ref> or <ref type="bibr" target="#b7">[8]</ref> examined only specific aspects of reuse such as specialization or off-the-shelf component reuse, but did not provide comparative metrics on the method's level. Other empirical studies that directly focus on software reuse either address non-CBD technology <ref type="bibr" target="#b13">[14]</ref>, or they focus on representations on the programming language-level <ref type="bibr" target="#b14">[15]</ref>. Unfortunately, there are no studies in the area of MDD/CBD for embedded systems.</p><p>This paper shortly introduces the MARMOT system development method. MARMOT stands for Method for Component-Based Real-Time Object-Oriented Development and Testing, and it aims to provide the ingredients to master the multi-disciplinary effort of developing embedded systems. It provides templates, models and guidelines for the products describing a system, and how these artifacts are built. The main focus of the paper is on a series of studies in which we compare MARMOT, as being specific for MDD and CBD with the RUP and Agile Development to devise a small control system for an exterior car mirror. In order to verify the characteristics of the three development methods, several aspects such as model size <ref type="bibr" target="#b12">[13]</ref> and development effort are quantified and analyzed. The analysis reveals that model-based, component-oriented development performs well and leads to maintainable systems, plus a higher-than-normal reuse rate, at least for the considered application domain.</p><p>The paper is structured as follows: Section 2 briefly describes MARMOT, and Sections 3, 4, and 5 present the study, discuss results and address threats to validity. Finally, Section 6 presents a brief summary, conclusions drawn, and future research.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">MARMOT Overview</head><p>Reuse is a key challenge and a major driving force in hardware and software development. Reuse is pushed forward by the growing complexity of systems. This section shortly introduces the MARMOT development method <ref type="bibr" target="#b2">[3]</ref> for model-driven and component-based development (CBD) of embedded systems. MARMOT builds on the principles of KobrA <ref type="bibr" target="#b0">[1]</ref>, assuming its component model displayed in Fig. <ref type="figure" target="#fig_0">1</ref>, and extends it towards the development of embedded systems. MARMOT components follow the principles of encapsulation, modularity and unique identity that most component definitions put forward, and their communication relies on interface contracts (i.e., in the embedded world these are made available through software abstractions). An additional hardware wrapper realizes that the hardware communication protocol is translated into a component communication contract. Further, encapsulation requires separating the description of what a software unit does from the description of how it does it. These descriptions are called specification and realization (see Fig. <ref type="figure" target="#fig_0">1</ref>).</p><p>The specification is a suite of descriptive (UML <ref type="bibr" target="#b10">[11]</ref>) artifacts that collectively define the external interface of a component so that the component can be assembled into or used by a system. The realization artifacts collectively define a component's internal realization. Following this principle, each component is described through a suite of models as if it was an independent system in its own right. The fact that components can be realized using other components, turns a MARMOT project into a tree-shaped structure with consecutively nested abstract component representations. A system can be viewed as a containment hierarchy of components in which the parent/child relationship represents composition. Any component can be a containment tree in its own right, and, as a consequence, another MARMOT project. Acquisition of component services across the tree turns a MARMOT project into a graph. The four basic activities of a MARMOT development process are composition, decomposition, embodiment, and validation as shown in Fig. <ref type="figure" target="#fig_1">2</ref>. Decomposition follows the divide-and-conquer paradigm, and it is performed to subdivide a system into smaller parts that are easier to understand and control. A project always starts above the top left-hand side box in Fig. <ref type="figure" target="#fig_1">2</ref>. It represents the entire system to be built. Prior to specifying the box, the domain concepts must be determined, comprising descriptions of all relevant domain entities such as standard hardware components that will appear along the concretization dimension. The implementation-specific entities determine the way in which a system is divided into smaller parts. During decomposition, newly identified logical parts are mapped to existing components, or the system is decomposed according to existing components. Whether these are hard-or software is not important since all components are treated in a uniform way, as software abstractions. Composition represents the opposite activity, which is performed when individual components have been implemented or reused, and the system is put together. After having implemented some of the boxes and having some others reused, the system can be assembled according to the abstract model. The subordinate boxes with their respective super-ordinate boxes have to be coordinated in a way that exactly follows the component description standard introduced above. Embodiment is concerned with the implementation of a system and a move towards executable representations. It turns the abstract system (i.e., models) into concrete representations that can be executed. MARMOT uses refinement and translation patterns for doing these transformations. MARMOT supports the generation of code skeletons and can thus be regarded as a semi-automatic approach. Validation checks whether the concrete representations are in line with the abstract ones. It is carried out in order to check whether the concrete composition of the embedded system corresponds to its abstract description.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Description of the Study</head><p>In general, empirical studies in software engineering are used to evaluate whether a "new" technique is superior to other techniques concerning a specific problem or property. The objective of this study is to compare the effects of MARMOT concerning reuse in embedded system development to other approaches such as the Unified process and agile development.</p><p>The study was organized in three runs (i.e., one run per methodology). All runs followed the same schema. Based on an existing system, documentation subjects performed a number of small projects. These covered typical project situations such as maintenance, ports to another platform, variant development, and reuse in a larger context. The first run applied MARMOT. The second run repeated all projects but used a variation of the Unified process, specifically adapted for embedded system development. The third run, applying an agile approach, was used to validate that modeling has a major impact and to rule out that reuse effects can solely be obtained at the code level. Metrics were collected in all runs and were analyzed in order to evaluate the respective research questions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">RESEARCH APPROACH</head><p>Introducing MDD and CBD in an organization is generally a slow process. An organization will start with some reusable components, and eventually build a component repository. But they are unsure about the return on investment gained by initial component development plus reuse for a real system, and the impact of the acquired technologies on quality and time-to-market. This is the motivation for performing the study and asking questions on the performance of these techniques. Research Questions. Several factors concerning the development process and its resulting product are recorded throughout the study in order to gain knowledge about using MDD and CBD for the development of small embedded systems. The research questions of the case-study focus on two key sets of properties of MDD in the context of component-oriented development. The first set of questions (Q1-Q4) lead to an understanding of basic and/or general properties of the embedded system development approach: Q1: Which process was used to develop the system? Each run of the study used a different development approach (i.e., MARMOT, Unified Process, and Agile). These are compared in terms of different quality attributes of the resulting systems. Q2: Which types of diagrams have been used? Are all UML diagram types required, or is there possibly a specific subset sufficient for this domain? Q3: How were models transferred to source code? Developers typically work in a procedural setting that impedes the manual transformation of UML concepts into C <ref type="bibr" target="#b9">[10]</ref>. Q4: How was reuse applied and organized? Reuse is central to MDD with respect to quality, time-to-market, and effort, but reuse must be built into the process, it does not come as a by-product (i.e., components have to be developed for reuse). The second set of questions (Q5-Q9) deals with the resulting product of the applied approach (i.e., with respect to code size, defect density, and time-to-market). Q5: What is the model-size of the systems? MDD is often believed to create a large overhead of models, even for small projects. Within the study, model size follows the metrics as defined in <ref type="bibr" target="#b12">[13]</ref>. Q6: What is the defect density of the code? Q7: How long did it take to develop the systems and how is this effort distributed over the requirements, design, implementation, and test phases? Effort saving is one promise of MDD and CBD <ref type="bibr" target="#b11">[12]</ref>, though, it does not occur immediately (i.e., in the first project), but in follow-up projects. Effort is measured for all development phases. Q8: What is the size of the resulting systems? Memory is a sparse resource and program size extremely important. MDD for embedded systems will only be successful if the resulting code size, obtained from the models, is small. Q9: How much reuse did take place? Reuse is central for MDD and CBD and it must be seen as an upfront investment paying off in many projects. Reuse must be examined between projects and not within a project. Research Procedure. MDD and CBD promise efficient reuse and short time-tomarket, even for embedded systems. Since it is expected that the benefits of MDD and CBD are only visible during follow-up projects <ref type="bibr" target="#b4">[5]</ref>, an initial system was specified and used as basis for all runs. The follow-ups then were: R1/R2 Ports to different hardware platforms while keeping functionality. Ports were performed within the family (i.e., ATMega32) and to a different processor family (i.e., PICF). Implementing a port within the same family might be automated at the codelevel, whereas, a port to a different family might affect the models. R3/R4 Evolving system requirements by (1) removing the recall position functionality, and (2) adding a defreeze/defog function with a humidity sensor and a heater. R5 The mirror system was reused in a door control unit that incorporates the control of the mirror, power windows, and door illumination.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">PREPARATION</head><p>Methodologies. The study examines the effects of three different development methods on software reuse and related quality factors. In the first run, we used the MARMOT method that is intended to provide all the ingredients to master the multidisciplinary effort of developing component-based embedded systems. In the second run we followed an adapted version of the Unified Process for embedded system development <ref type="bibr" target="#b3">[4]</ref> (i.e., RUP SE). RUP SE includes an architecture model framework that supports different perspectives. A distinguishing characteristic of RUP SE is that the components regarding the perspectives are jointly derived in increasing specificity from the overall system requirements. In the third run, an agile process (based on Extreme Programming) <ref type="bibr" target="#b8">[9]</ref>, adapted towards embedded software development, was used. Subjects of the study were graduate students from the Department of Computer Science at the University of Kaiserslautern (1 st run) and the School of IT at the International University (2 nd and 3 rd run). All students, 45 in total (3 per team/project), were enrolled in a Software Engineering class, in which they were taught principles, OO methods, modeling, and embedded system development. Lectures were supplemented by practical sessions in which students had the opportunity to make use of what they had learned. At the beginning of the course, subjects were informed that a series of practical exercises were planned. Subjects knew that data would be collected and that an analysis would be performed, but were unaware of the hypotheses that were being tested. To further control for learning and fatigue effects and differences between subjects, random assignment to the development teams was performed. As the number of subjects was known before running the studies it was a simple procedure to create teams of equivalent size. Metrics. All projects were organized according to typical reuse situations in component-based development, and a number of measurements were performed to answer the research questions of the previous sub-section:</p><p>Model-size is measured using the absolute and relative size measures proposed in <ref type="bibr" target="#b12">[13]</ref>. Relative size measures (i.e., ratios of absolute measures) are used to address UMLs multidiagram structure and to deal with completeness <ref type="bibr" target="#b12">[13]</ref>. Absolute measures used are: the number of classes in a model (NCM), number of components in a model (NCOM), number of diagrams (ND), and LOC, which are sufficient as complexity metrics for the simple components used in this case. NCOM describes the number of hardware/software components, while NCM is represents the number of software components. These metrics are comparable to metrics such as McCabe's cyclomatic complexity for estimating the size/nesting of a system. Code-size is measured in normalized LOC. System size is measured in KBytes of the binary code. All systems were compiled using size optimization.</p><p>The amount of reused elements is described as the proportion of the system which can be reused without any changes or with small adaptations (i.e., configuration but no model change). Measures are taken at the model and code level.</p><p>Defect density is measured in defects per 100 LOC, whereby defects where collected via inspection and testing activities.</p><p>Development effort and its distribution over development phases are measured as development time (hours) collected by daily effort sheets. Materials. The study uses a car-mirror control system that moves a mirror horizontally and vertically into the desired position. Positions can be stored/recalled to support driver profiles. The simplified version of this study controls two servos via potentiometers, and indicates movement on a LCD. A replication package is available from the authors.</p><p>For each run, the base system documentation was developed by the authors of this paper. The reason was that we were interested in the reuse effects of one methodology in the context of follow-up projects. Using a single documentation for all runs would have created translation and understanding efforts. Therefore, reasonable effort was spent to make all three documents comparable concerning size, complexity, etc. This is supported by the measures of each system.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Evaluation and Comparison</head><p>In the context of the three experimental runs, a number of measurements were performed with respect to maintainability, portability, and adaptability of software systems. Tables <ref type="table" target="#tab_2">1, 2</ref>, and 3 provide data concerning model and code size, quality, effort, and reuse rates. First Run Porting the system (R1) required only minimal changes to the models. One reason is that MARMOT supports the idea of platform-independent modeling (platform specific models are created in the embodiment step). Ports to different processor families (R2) are supported by MARMOT's reuse mechanisms. 1 Project types are labeled following the scheme introduced in section 3 (e.g., "Original" stands for the initial system developed by the authors as a basis for all follow-up projects, "R1" -Port to the ATMEGA32 microcontroller (same processor family), "R2" -Port to the PIC F microcontroller (different processor family), "R3" -Adaptation by removing functionality from the original system, "R4" -Adaptation by adding functionality to the original system, and "R5" -Reuse of the original system in the context of a larger system. Concerning the adaptation of existing systems (R3 and R4), data show that large portions of the system could be reused. In comparison to the initial development project the effort for adaptations is quite low (26hrs vs. 3/10hrs). The quality of the system profits from the quality assurance activities of the initial project. Thus, the promises of CBD concerning time-to-market and quality could be confirmed.</p><p>Interestingly, the effort for the original system corresponds to standardized effort distributions over development phases, whereby the effort of follow-ups is significantly lower. This supports the assumption that component-oriented development has an effort-saving effect in subsequent projects.</p><p>Porting and adapting an existing system (R1-R4) implies that the resulting variants are highly similar, which explains why reuse works well. It is, therefore, interesting to look at larger systems that reuse (components of) the original system (i.e., R5). 60% of the R5 system was reused without requiring major adaptations of the reused system. Effort-and defect density are higher than those of R1-R4, due to additional functionality and hardware extensions. However, when directly compared to the initial effort and quality, a positive trend can be seen that supports the assumption that MARMOT allows embedded systems development at a low cost but with high quality. The Second and Third Run replicated the projects of the first run but used different development methods. Interestingly, the results of the second run are quite close to those of the first. However, the Unified Process requires more overhead and increased documentation, resulting in higher development effort. Ironically, model-size seems to have a negative impact on quality and effort. Interestingly, the mapping of models to code seems not to have added additional defects or significant overheads.</p><p>Although the amount of modeling is limited in the agile approach, it can be observed that the original system was quickly developed with a high quality. However, this does not hold for follow-up projects. These required substantially higher effort than the effort required for runs 1 and 2. A reason might be that follow-ups were not performed by the developers of the original system. Due to missing documentation and abstractions, reuse rates are low. In contrast, the source-code is of a good quality. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Threats to Validity</head><p>The authors view this study as exploratory. Thus, threats limit generalization of this research, but do not prevent the results from being used in further studies. Construct Validity. Reuse is a difficult concept to measure. In the context of this paper it is argued that the defined metrics are intuitively reasonable measures. Of course, there are several other dimensions of each concept. However, in a single controlled study it is unlikely that all the different dimensions of a concept can be captured. Internal Validity. A maturation effect is caused by subjects learning as the study proceeds. The threat to this study is subjects learned enough from single runs to bias their performance in the following ones. An instrumentation effect may result from differences in the materials which may have caused differences in the results. This threat was addressed by keeping the differences to those caused by the applied method. This is supported by the data points as presented in table 1, 2, and 3. Another threat might be the fact that the studies were conducted at different institutes. External Validity. The subjects were students and are, therefore, unlikely to be representative of software professionals. However, the results can be useful in an industrial context for the following reasons: Industrial employees often do not have more experience than students when it comes to applying MDD. Furthermore, laboratory settings allow the investigation of a larger number of hypotheses at a lower cost than field studies. Hypotheses supported in the laboratory setting can be tested further in industrial settings. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Summary and Conclusions</head><p>The growing interest in the Unified Modeling Language provides a unique opportunity to increase the amount of modeling work in software development, and to elevate quality standards. UML 2.0 promises new ways to apply object/component-oriented and model-based development techniques in embedded systems engineering. However, this chance will be lost, if developers are not given effective and practical means for handling the complexity of such systems, and guidelines for applying them systematically.</p><p>This paper shortly introduced the MARMOT approach that supports the component-oriented and model-based development of embedded software systems. A series of studies was described that were defined to empirically validate the effects of MARMOT on aspects such as reuse or quality in comparison to the Unified Process and an agile approach. The results indicate that by using MDD and CBD for embedded system development will have a positive impact on reuse, effort, and quality. However, similar to product-line engineering projects, CBD requires an upfront investment. Therefore, all results have to be viewed as initial. This has led to the planning of a larger controlled experiment to obtain more objective data.</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. MARMOT component model.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Development Activities in MARMOT.</figDesc><graphic coords="3,197.93,401.24,201.00,182.50" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1 .</head><label>1</label><figDesc>Table columns denote the project type 1 . Results of the First Run (MARMOT)</figDesc><table><row><cell></cell><cell></cell><cell>Original</cell><cell>R1</cell><cell>R2</cell><cell>R3</cell><cell>R4</cell><cell>R5</cell></row><row><cell>LOC</cell><cell></cell><cell>310</cell><cell>310</cell><cell>320</cell><cell>280</cell><cell cols="2">350 490</cell></row><row><cell>Model Size</cell><cell>NCM</cell><cell>8</cell><cell>8</cell><cell>8</cell><cell>6</cell><cell>10</cell><cell>10</cell></row><row><cell>(Abs.)</cell><cell>NCOM</cell><cell>15</cell><cell>15</cell><cell>15</cell><cell>11</cell><cell>19</cell><cell>29</cell></row><row><cell></cell><cell>ND</cell><cell>46</cell><cell>46</cell><cell>46</cell><cell>33</cell><cell>52</cell><cell>64</cell></row><row><cell>Model Size (Rel.)</cell><cell></cell><cell>1</cell><cell>1</cell><cell>1</cell><cell>1</cell><cell>0.8</cell><cell>1</cell></row><row><cell></cell><cell></cell><cell>3.25</cell><cell>3.25</cell><cell>3.25</cell><cell>2.5</cell><cell>3</cell><cell>3.4</cell></row><row><cell></cell><cell></cell><cell>1.375</cell><cell cols="4">1.375 1.375 1.33 1.3</cell><cell>1.6</cell></row><row><cell>Reuse</cell><cell>Reuse Fraction(%)</cell><cell>0</cell><cell>100</cell><cell>97</cell><cell>100</cell><cell>89</cell><cell>60</cell></row><row><cell></cell><cell>New (%)</cell><cell>100</cell><cell>0</cell><cell>3</cell><cell>0</cell><cell>11</cell><cell>40</cell></row><row><cell></cell><cell>Unchanged (%)</cell><cell>0</cell><cell>95</cell><cell>86</cell><cell>75</cell><cell>90</cell><cell>95</cell></row><row><cell></cell><cell>Changed (%)</cell><cell>0</cell><cell>5</cell><cell>14</cell><cell>5</cell><cell>10</cell><cell>5</cell></row><row><cell></cell><cell>Removed (%)</cell><cell>0</cell><cell>0</cell><cell>0</cell><cell>20</cell><cell>0</cell><cell>40</cell></row><row><cell>Effort (h)</cell><cell>Global</cell><cell>26</cell><cell>6</cell><cell>10.5</cell><cell>3</cell><cell>10</cell><cell>24</cell></row><row><cell></cell><cell>Hardware</cell><cell>10</cell><cell>2</cell><cell>4</cell><cell>0.5</cell><cell>2</cell><cell>8</cell></row><row><cell></cell><cell>Requirements</cell><cell>1</cell><cell>0</cell><cell>0</cell><cell>0.5</cell><cell>1</cell><cell>2</cell></row><row><cell></cell><cell>Design</cell><cell>9.5</cell><cell>0.5</cell><cell>1</cell><cell>0.5</cell><cell>5</cell><cell>6</cell></row><row><cell></cell><cell>Implementation</cell><cell>3</cell><cell>1</cell><cell>3</cell><cell>0.5</cell><cell>2</cell><cell>4</cell></row><row><cell></cell><cell>Test</cell><cell>2.5</cell><cell>2.5</cell><cell>2.5</cell><cell>1</cell><cell>2</cell><cell>4</cell></row><row><cell>Quality</cell><cell>Defect Density</cell><cell>9</cell><cell>0</cell><cell>2</cell><cell>0</cell><cell>3</cell><cell>4</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 2 .</head><label>2</label><figDesc>Results of the Second Run (Unified Process)</figDesc><table><row><cell></cell><cell></cell><cell>Original</cell><cell>R1</cell><cell>R2</cell><cell>R3</cell><cell>R4</cell><cell>R5</cell></row><row><cell>LOC</cell><cell></cell><cell>350</cell><cell>340</cell><cell>340</cell><cell>320</cell><cell>400</cell><cell>500</cell></row><row><cell>Model Size</cell><cell>NCM</cell><cell>10</cell><cell>10</cell><cell>10</cell><cell>8</cell><cell>12</cell><cell>13</cell></row><row><cell>(Abs.)</cell><cell>NCOM</cell><cell>15</cell><cell>15</cell><cell>15</cell><cell>11</cell><cell>19</cell><cell>29</cell></row><row><cell></cell><cell>ND</cell><cell>59</cell><cell>59</cell><cell>59</cell><cell>45</cell><cell>60</cell><cell>68</cell></row><row><cell>Model Size (Rel.)</cell><cell></cell><cell>1.5</cell><cell>1.5</cell><cell>1.5</cell><cell>0.72</cell><cell>1.33</cell><cell>1.07</cell></row><row><cell></cell><cell></cell><cell>4</cell><cell>3.5</cell><cell>3.5</cell><cell>3.25</cell><cell>3</cell><cell>3.46</cell></row><row><cell></cell><cell></cell><cell>2.5</cell><cell>2.3</cell><cell>2.3</cell><cell>2.5</cell><cell>2.16</cell><cell>1.76</cell></row><row><cell>Reuse</cell><cell>Reuse Fraction(%)</cell><cell>0</cell><cell>100</cell><cell>94</cell><cell>88</cell><cell>86</cell><cell>58</cell></row><row><cell></cell><cell>New (%)</cell><cell>100</cell><cell>0</cell><cell>6</cell><cell>11</cell><cell>14</cell><cell>42</cell></row><row><cell></cell><cell>Unchanged (%)</cell><cell>0</cell><cell>92</cell><cell>80</cell><cell>70</cell><cell>85</cell><cell>86</cell></row><row><cell></cell><cell>Changed (%)</cell><cell>0</cell><cell>4</cell><cell>15</cell><cell>6</cell><cell>15</cell><cell>14</cell></row><row><cell></cell><cell>Removed (%)</cell><cell>0</cell><cell>4</cell><cell>5</cell><cell>24</cell><cell>0</cell><cell>41</cell></row><row><cell cols="2">Effort (h) Global</cell><cell>34</cell><cell>8</cell><cell>12</cell><cell>5.5</cell><cell>13</cell><cell>29</cell></row><row><cell></cell><cell>Hardware</cell><cell>10</cell><cell>2</cell><cell>4</cell><cell>0.5</cell><cell>2</cell><cell>8</cell></row><row><cell></cell><cell>Requirements</cell><cell>4</cell><cell>1</cell><cell>1</cell><cell>1.5</cell><cell>3</cell><cell>4</cell></row><row><cell></cell><cell>Design</cell><cell>12</cell><cell>1</cell><cell>2</cell><cell>1</cell><cell>4</cell><cell>7</cell></row><row><cell></cell><cell>Implementation</cell><cell>5</cell><cell>2</cell><cell>3</cell><cell>1.5</cell><cell>2</cell><cell>6</cell></row><row><cell></cell><cell>Test</cell><cell>3</cell><cell>2</cell><cell>2</cell><cell>1</cell><cell>2</cell><cell>4</cell></row><row><cell>Quality</cell><cell>Defect Density</cell><cell>8</cell><cell>1</cell><cell>2</cell><cell>0</cell><cell>3</cell><cell>4</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>Table 3 .</head><label>3</label><figDesc>Results of the Third Run (Agile)</figDesc><table><row><cell></cell><cell></cell><cell>Original</cell><cell>R1</cell><cell>R2</cell><cell>R3</cell><cell>R4</cell><cell>R5</cell></row><row><cell>LOC</cell><cell></cell><cell>280</cell><cell>290</cell><cell>340</cell><cell>300</cell><cell>330</cell><cell>550</cell></row><row><cell>Model</cell><cell>NCM</cell><cell>14</cell><cell>15</cell><cell>15</cell><cell>13</cell><cell>17</cell><cell>26</cell></row><row><cell>Size</cell><cell>NCOM</cell><cell>5</cell><cell>5</cell><cell>5</cell><cell>4</cell><cell>7</cell><cell>12</cell></row><row><cell>(Abs.)</cell><cell>ND</cell><cell>3</cell><cell>3</cell><cell>3</cell><cell>3</cell><cell>3</cell><cell>3</cell></row><row><cell>Model Size</cell><cell></cell><cell>0</cell><cell>0</cell><cell>0</cell><cell>0</cell><cell>0</cell><cell>0</cell></row><row><cell>(Rel.)</cell><cell></cell><cell>3.21</cell><cell>3.3</cell><cell>3.3</cell><cell>3.15</cell><cell>3.23</cell><cell>4.19</cell></row><row><cell></cell><cell></cell><cell>3.5</cell><cell>3.3</cell><cell>3.3</cell><cell>3.46</cell><cell>3.17</cell><cell>2.57</cell></row><row><cell>Reuse</cell><cell>Reuse Fraction(%)</cell><cell>0</cell><cell>95</cell><cell>93</cell><cell>93</cell><cell>45</cell><cell>25</cell></row><row><cell></cell><cell>New (%)</cell><cell>100</cell><cell>5</cell><cell>7</cell><cell>7</cell><cell>55</cell><cell>75</cell></row><row><cell></cell><cell>Unchanged (%)</cell><cell>0</cell><cell>85</cell><cell>75</cell><cell>40</cell><cell>54</cell><cell>85</cell></row><row><cell></cell><cell>Changed (%)</cell><cell>0</cell><cell>14</cell><cell>15</cell><cell>40</cell><cell>36</cell><cell>10</cell></row><row><cell></cell><cell>Removed (%)</cell><cell>0</cell><cell>1</cell><cell>10</cell><cell>20</cell><cell>10</cell><cell>5</cell></row><row><cell cols="2">Effort (h) Global</cell><cell>18</cell><cell>5</cell><cell>11.5</cell><cell>6</cell><cell>13.5</cell><cell>37</cell></row><row><cell></cell><cell>Hardware</cell><cell>6</cell><cell>2</cell><cell>4</cell><cell>1</cell><cell>2</cell><cell>8</cell></row><row><cell></cell><cell>Requirements</cell><cell>0.5</cell><cell>0</cell><cell>0</cell><cell>0.5</cell><cell>1</cell><cell>1</cell></row><row><cell></cell><cell>Design</cell><cell>2</cell><cell>0</cell><cell>0</cell><cell>1</cell><cell>1.5</cell><cell>3</cell></row><row><cell></cell><cell>Implementation</cell><cell>7</cell><cell>2</cell><cell>5</cell><cell>2</cell><cell>6</cell><cell>18</cell></row><row><cell></cell><cell>Test</cell><cell>2.5</cell><cell>1</cell><cell>2.5</cell><cell>1.5</cell><cell>3</cell><cell>7</cell></row><row><cell>Quality</cell><cell>Defect Density</cell><cell>7</cell><cell>0</cell><cell>2</cell><cell>1</cell><cell>5</cell><cell>7</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_0">MODELS`08 Workshop ESMDE</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Component-Based Product-Line Engineering with UML</title>
		<author>
			<persName><forename type="first">C</forename><surname>Atkinson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bayer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Bunse</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2001">2001</date>
			<publisher>Addison-Wesley</publisher>
			<pubPlace>, UK</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">Applying a Model-based Approach for Embedded System Development</title>
		<author>
			<persName><forename type="first">C</forename><surname>Bunse</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H.-G</forename><surname>Gross</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Peper</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007">2007</date>
			<pubPlace>SEAA, Lübeck, Germany</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Unifying Hardware and Software Components for Embedded System Development</title>
		<author>
			<persName><forename type="first">C</forename><surname>Bunse</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H.-G</forename><surname>Gross</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Architecting Systems with Trustworthy Components</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<editor>
			<persName><surname>Reussner</surname></persName>
		</editor>
		<editor>
			<persName><surname>Staffort</surname></persName>
		</editor>
		<editor>
			<persName><surname>Szyperski</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="volume">3938</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<author>
			<persName><forename type="first">M</forename><surname>Cantor</surname></persName>
		</author>
		<ptr target="http://www.therationaledge.com/content/aug_03/f_rupse_mc.jsp" />
		<title level="m">Rational Unified Process for Systems Engineering, the Rational Edge e-Zine</title>
				<imprint>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Building Reliable Component-Based Software Systems</title>
		<editor>Crnkovic, I., Larsson, M.</editor>
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>Artech House</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">Real-Time Design Patterns</title>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">P</forename><surname>Douglass</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2003">2003</date>
			<publisher>Addison-Wesley</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">A Controlled Experiment for Evaluating Quality Guidelines on the Maintainability of Object-Oriented Designs</title>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">C</forename><surname>Briand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Bunse</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">W</forename><surname>Daly</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE TSE</title>
		<imprint>
			<biblScope unit="volume">27</biblScope>
			<biblScope unit="issue">6</biblScope>
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">A State-ofthe-Practice Survey of Risk Management in Development with Off-the-Shelf Software</title>
		<author>
			<persName><forename type="first">J</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Conradi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><forename type="middle">P N</forename><surname>Slyngstad</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Torchiano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Morisio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Bunse</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transaction on Software Engineering</title>
		<imprint>
			<biblScope unit="volume">34</biblScope>
			<biblScope unit="issue">2</biblScope>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">Agile SW-Entwicklung für Embedded Real-Time Systems mit UML</title>
		<author>
			<persName><forename type="first">P</forename><surname>Hruschka</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Rupp</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>Hanser</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<title level="m" type="main">Embedded System Design</title>
		<author>
			<persName><forename type="first">P</forename><surname>Marwedel</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2006">2006</date>
			<publisher>Springer</publisher>
		</imprint>
	</monogr>
	<note>Updated Version</note>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m">Object Management Group, UML Infrastructure and Superstructure</title>
				<imprint>
			<date type="published" when="2007">2007</date>
			<biblScope unit="volume">1</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title level="m" type="main">Component Software. Beyond OOP</title>
		<author>
			<persName><forename type="first">J</forename><surname>Szyperski</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>Addison-Wesley</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">Model Size Matters, Workshop on Model Size Metrics</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">F</forename><surname>Lange</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
	<note>co-located with the ACM/IEEE MoDELS/UML Conference</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">An Empirical Study of Software Reuse By Experts in Object-Oriented Design</title>
		<author>
			<persName><forename type="first">J-M</forename><surname>Burkhard</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Detienne</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">INTERACT&apos;95</title>
				<meeting><address><addrLine>Lillehammer Norway</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1995">June 27-29 1995</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">An Empirical Study of Software Reuse with Special Attention to ADA</title>
		<author>
			<persName><forename type="first">N-Y</forename><surname>Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">R</forename><surname>Litecky</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transaction on Software Engineering</title>
		<imprint>
			<biblScope unit="volume">23</biblScope>
			<biblScope unit="issue">9</biblScope>
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<title level="m">Workshop ESMDE</title>
				<imprint/>
	</monogr>
	<note>MODELS</note>
</biblStruct>

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