<?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="de">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Repository-Dienste f ür die modellbasierte Entwicklung</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Udo</forename><surname>Kelter</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Fachbereich Elektrotechnik und Informatik</orgName>
								<orgName type="institution">Universität Siegen</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Repository-Dienste f ür die modellbasierte Entwicklung</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">CDEB7343A85C1D07BEBAE419B7C5EA89</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T23:31+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>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Viele langlebige Systeme existieren in mehreren Varianten, die parallel weiterentwickelt werden müssen. Hierzu werden unterstützende Repository-Dienste benötigt, neben dem klassischen Mischen von Dokumenten auch Historienanalysen. Bei Systemen, die mit modellbasierten Methoden (weiter-) entwickelt werden, ergeben sich besondere Probleme, weil auch die Modelle mitversioniert und in die Analysen einbezogen werden müssen. Dieser Workshopbeitrag beschreibt dieses Problemfeld genauer und skizziert Lösungsansätze, die im Rahmen des SiDiff-Projekts entwickelt wurden.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="de">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Einf ührung</head><p>Große Systeme, die über viele Jahre existieren und während dieser Zeit immer wieder erweitert und umstrukturiert werden, werfen große Wartungsprobleme auf. Gewartet werden müssen typischerweise nicht nur die aktuelle Version des Systems, sondern auch ältere Releases, die noch bei Kunden im Einsatz sind. Neben historisch entstandenen Varianten können auch aus produktbezogenen Gründen Varianten entstehen. Im Endeffekt müssen mehrere Systemvarianten, die zwar erhebliche Gemeinsamkeiten, aber auch signifikante Unterschiede aufweisen können, parallel weiterentwickelt werden.</p><p>Ein heute stark favorisierter Ansatz zur Reduktion der Entwicklungs-und Wartungsaufwände ist die modellbasierte Systementwicklung <ref type="bibr" target="#b11">[10]</ref>, also die Generierung von Teilen des Systems aus Modellen. In diesem Kontext werden auch domänenspezifische Sprachen diskutiert, die meist eine vorhandene Modellierungssprache erweitern <ref type="foot" target="#foot_0">1</ref> . Insb. die adaptive Wartung infolge von neuen Versionen unterliegender Systeme (DBMS, BS u.a.) kann so erleichtert werden. Die eingesetzten Modelltypen hängen natürlich von den Merkmalen der Anwendungsdomäne ab. Häufig eingesetzt werden Datenmodelle, meist eine Variante der UML-Klassendiagramme. Für eingebettete Systeme werden vor allem Zustandsmodelle und Funktions-bzw. Aktivitätsmodelle eingesetzt. Die Anwendungsdomänen unterscheiden sich auch darin, wie große Teile eines Systems aus den Modellen generiert werden können: im Idealfall alles, oft müssen jedoch umfangreiche Teile manuell entwickelt werden.</p><p>Die modellbasierte Systementwicklung hat die Konsequenz, daß die Modelle zum integralen Teil der Software werden. Die Modelle müssen immer völlig konsistent sein mit manuell entwickeltem Code, Konfigurationsdaten und sonstigen Ressourcen, die oft in XML-Dateien gespeichert werden. Alle zusammengehörigen Dokumente -hierzu gehören natürlich auch Testdaten, Dokumentationen und sonstige Begleitdokumente -müssen gemeinsam versioniert werden.</p><p>Die Versionierung von Software wird klassischerweise durch Repository-Systeme wie CVS oder SVN unterstützt. Diese sind allerdings für Texte ohne spezielle Struktur konzipiert worden und arbeiten mit strukturierten Dokumenten, namentlich Modellen, nicht zufriedenstellend. Im Kern sind die üblichen Repository-Dienste auch für Modelle erforderlich; Systeme, die dies leisten, bezeichnen wir i.f. als Modell-Repositories. Modell-Repositories müssen natürlich nicht nur Modelle, sondern auch beliebige andere Dokumente integriert mitverwalten können.</p><p>Wir konzentrieren uns i.f. auf solche Modell-Repositories, die Funktionen anbieten, die die Weiterentwicklung langlebiger Software mit langen Versionshistorien unterstützen.   </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Technologische Herausforderungen</head><p>Dieser Abschnitt diskutiert den Stand der Technik in den vorstehende benannten Schichten des Referenzmodells. Auf Schicht 0 gehen wir nicht ein, denn hier ist etablierte Technologie verfügbar.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Differenzberechnung</head><p>Die Der in <ref type="bibr" target="#b7">[6]</ref> publizierte Vergleich von Algorithmen zeigt die Spannbreite der aktuell bekannten Lösungen und die jeweiligen Kompromisse auf:</p><p>-Verbreitet sind Verfahren, die auf Basis persistenter Identifizierer von Modellelementen arbeiten. Sie sind sehr effizient und leicht implementierbar, basieren aber auf sehr einschränkenden Voraussetzungen und Annahmen, die bei langlebigen, großen Systemen praktisch nicht erfüllbar sind. Sie bieten wenig bzw. keine Unterstützung für die Konfliktbehandlung und ähnlichkeitsbasierte Suchverfahren, weil die Semantik der Dokumenttypen nicht bekannt ist.</p><p>-Auf der anderen Seite stehen dedizierte Algorithmen für einzelne Sprachen bzw. Dokumenttypen, die besonders hochwertige Vergleichs-bzw. Mischergebnisse liefern, dafür aber relativ ineffizient sind und einen sehr hohen (um nicht zu sagen prohibitiven) Implementierungsaufwand verursachen, weil sie für jeden Modelltyp weitgehend neu entwickelt werden müssen.</p><p>-Frameworks wie das System SiDiff <ref type="bibr" target="#b6">[5]</ref> zielen mittels einer "Sprache" zur Spezifikation von Ähnlichkeiten auf einen tragfähigen Kompromiß zwischen Laufzeiteffizienz, Qualität der Ergebnisse und Implementierungsaufwand der Algorithmen.</p><p>Qualitativ gute Algorithmen sind aktuell nur verfügbar für Klassendiagramme (Datenmodelle) in diversen Varianten, insb. für reverse engineerte Java-Quellprogramme, ferner für einfachere Varianten von Aktivitätsdiagramme und Zustandsautomaten. Für andere Modelltypen und domänenspezifischen Sprachen ist wenig oder nichts verfügbar. Weiterer Forschungs-und Entwickungsbedarf besteht hinsichtlich der Gestaltung der Metamodelle, der Qualitätsbeurteilung bzw. Optimierung von Differenzen und der Evolution der Metamodelle. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Mischfunktionen</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Beim</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Suchfunktionen</head><p>Suchfunktionen verallgemeinern die paarweise Ähnlichkeit, die schon beim Vergleichen von zwei Modellen benötigt wurde, auf beliebige Revisions-und Varianten-Ketten oder allgemeine Sammlungen von Modellen. Die Existenz bzw. Qualität von Suchfunktionen hängt daher direkt von den Funktionen ab, die Ähnlichkeiten berechnen. Einzelne Lösungsansätze werden in <ref type="bibr" target="#b2">[2,</ref><ref type="bibr" target="#b17">13,</ref><ref type="bibr" target="#b19">14]</ref> diskutiert, von einem flächendeckenden Angebot praxiserprobter Lösungen ist man aber noch weit entfernt.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4">Analysefunktionen</head><p>Hauptzweck  <ref type="bibr" target="#b8">[7]</ref>, die auf polymetrischen Sichten <ref type="bibr" target="#b9">[8]</ref> basiert, Evo Spaces <ref type="bibr" target="#b22">[16]</ref>, die sich optisch an Stadtbilder anlehnen, Gevol <ref type="bibr" target="#b3">[3]</ref>, das Evolution Radar <ref type="bibr" target="#b0">[1]</ref> und weitere Systeme.</p><p>Ein genereller Nachteil der vorstehenden Ansätze ist, daß die gewohnte graphische Darstellung der Modelle, in der die Systemstrukturen gut dargestellt werden, nicht mehr eingesetzt wird. Wegen der geometrischen Eigenschaften ist es sogar prinzipiell fraglich, ob man die gewohnten Darstellungsformen überhaupt für Historien einsetzen kann; sie stoßen bei großen Modellen ohnehin an ihre Grenzen und sind nicht für die Darstellung von Historien konzipiert worden. Veränderungen an den Strukturen eines Systems zählen indes zu den interessantesten Veränderungen.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Lösungsansätze zur Visualisierung von Modell-Historien</head><p>Dieser Abschnitt skizziert einige Lösungsansätze, die für die Visualisierung von Modell-Historien im Kontext des SiDiff-Projekts <ref type="bibr" target="#b13">[11]</ref> entwickelt wurden. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Metriken von Differenzen statt Differenzen von Metriken</head><note type="other">Übliche</note></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">3D-Darstellungen und Animation</head><p>3-dimensionale Darstellungen von Versionshistorien können grob eingeteilt werden in solche, die Strukturen der Modelle direkt anzeigen, auf dieser Basis natürlich auch Veränderungen der Strukturen, und andere, die i.w. nur Metrikwerte anzeigen. Diese Darstellung ist gut geeignet, um bestimmte Typen von Änderungen zu erkennen, allerdings hat sie durchaus Limitationen:</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Anzeige von</head><p>-Die Zahl der angezeigten Entitäten muß klein sein. Für eine erste Gesamtübersicht über ein unbekanntes System ist diese Darstellung daher wenig geeignet, sie ist eher nach einer Einschränkung der Menge der zu untersuchenden Entitäten sinnvoll. Gute Möglichkeiten zur Selektion der angezeigten Entitäten sind daher sehr wichtig.</p><p>-Es kann nur eine beschränkte Zahl von Versionen sinnvoll angezeigt werden, ca.  Zusätzlich kann eine der Entitäten ausgewählt werden, deren Beziehungen zu anderen Entitäten dargestellt werden. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Res ümee</head><p>Die modellbasierte Systementwicklung erfordert für Modelle die gleichen Repository-Dienste, die man bei textuellen Dokumenten gewohnt ist. In der Praxis und hinsichtlich der technologischen Grundlagen ist man hiervon noch weit entfernt.</p><p>Das aus Sicht der Praxis drängendste Problem stellen Misch-und Vergleichswerkzeuge dar. Für viele Modelltypen sind keine brauchbaren Werkzeuge verfügbar, die verfügbaren Werkzeuge unterstützen nur das zeitaufwendige manuelle Mischen und bieten nur beschränkte Unterstützung bei der Konflikterkennung.</p><p>Analysefunktionen, die die Weiterentwicklung von Systemen mit vielen Revisionen bzw. Varianten unterstützen, existieren nur als Forschungsprototypen. Hier ist noch viel Raum für Verbesserungen vorhanden, sowohl bei der Entwicklung weiterer Darstellungsformen als auch bei der Integration verschiedener Darstellungsformen und Optimierung hinsichtlich der praktischen Nutzung.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>2</head><label></label><figDesc>Modell-Repositories Hauptfunktionen von Modell-Repositories. Zur Unterstützung von Entwicklungsprozessen werden mit hoher Priorität folgende Dienste bzw. Funktionen von Repositories benötigt. Diese bauen auf Basisfunktionen zur Verwaltung von Versionsgraphen und anderer administrativer Daten auf. Man kann alle Funktionen in einem einzigen System realisieren oder einige in Form autarker Analysewerkzeuge, solche Implementierungsentscheidungen interessieren uns an dieser Stelle nicht. 1. das Vergleichen und Mischen von Modellen: In großen Projekten ist arbeitsteilige Entwicklung und das gemeinsame Bearbeiten von Dokumenten unvermeidlich. Das exklusive Sperren von Dokumenten führt zu praktischen Problemen, daher hat sich in der Praxis weitgehend die Strategie durchgesetzt, nicht zu sperren, sondern automatisch zu mischen (3-Wege-Mischen).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Schicht 1 :</head><label>1</label><figDesc>Differenz-und Ähnlichkeitsberechnung von Modellen Dieser Schicht liegen Begriffsdefinitionen für die Ähnlichkeit von einzelnen Modellelementen bzw. Modellfragmenten zugrunde. Diese Definitionen gehen direkt in die Berechnung von Modelldifferenzen ein. Allerdings gilt bei manchen Ähnlichkeitsbegriffen auch die Umkehrung. Daher kann man die Berechnung von Ähnlichkeiten und Differenzen nicht trennen. Aus Dokumentdifferenzen kann man direkt Differenzmetriken ableiten, die typischerweise in der Differenz angegebene Korrespondenzen zwischen Modellelementen oder Änderungsoperationen zählen, ggf. gewichtet und/oder selektiert. Im Gegensatz zu Schicht 0 ist diese Schicht abhängig vom Modelltyp, d.h. pro Modelltyp sind eigene Implementierungen oder zumindest Anpassungen erforderlich. Dies gilt auch für die aufbauenden Schichten. Schicht 2a: Mischfunktionen Eine Mischung basiert in der Regel auf einer vorher bestimmten Differenz, da die gemeinsamen Teile nur einmal in das Ergebnis übernommen werden. Die speziellen Teile der zu mischenden Dokumente können unverträglich sein. Zentrale Begriffe dieser Ebene sind daher Konflikte und Strategien zur Konfliktbehandlung. Schicht 2b: Historienanalysen Diese Schicht realisiert die oben erwähnten Suchfunktionen und historienbasierte Modellanalysen. Sie baut direkt auf Schicht 1 auf und liegt daher parallel zu den Mischfunktionen. Neben der Definition von Suchfunktionen sind hier Verfahren zur Vorverarbeitung und Indexierung von Versionshistorien angeordnet.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head></head><label></label><figDesc>Mischen von Dokumenten können Fehler entstehen, und zwar hinsichtlich kontextfreier bzw. kontextsensitiver Syntax, Programmierstil und Semantik. Paare von Modellteilen (bzw. die sie erzeugenden Änderungen), die solche Fehler erzeugen, stehen in Konflikt zueinander. Mischfunktionen haben daher zwei wesentliche Teilfunktionen, nämlich Konflikterkennung und Konfliktbehandlung, also Mischentscheidungen. Beide Teilfunktionen hängen von der Semantik des Modelltyps ab und sind schwieriger zu realisieren, wenn -Modelle dieses Typs komplexe Konsistenzkriterien aufweisen und Modelleditoren nur Modelle verarbeiten können, die einen hohen Korrektheitsgrad einhalten; -eventuelle falsch positive Mischentscheidungen von nachfolgenden Entwicklungsschritte nicht oder nur mit hohem Aufwand erkannt werden. Der Stand der Technik kann hier als rudimentär bezeichnet werden. Für viele Modelltypen gibt es keine Mischwerkzeuge, viele vorhandene Mischwerkzeuge unterstützen nur das 2-Wege-Mischen auf Syntaxbaumsdarstellungen und bieten nur sehr wenig Unterstützung.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head></head><label></label><figDesc>Metriken für Modelle sind Zählungen von Strukturelementen, z.B. die Zahl der Attribute einer Klasse in einem Klassendiagramm oder die Zahl der ausgehenden Transitionen eines Zustands in einem Zustandsmodell. Wenn nun die ein Attribut durch ein anderes ersetzt wird oder eine Transition durch eine andere, ändern sich die Metrikwerte nicht, obwohl signifikante Änderungen stattgefunden haben. Anders gesagt sind die numerischen Differenzen der Metrikwerte nur ein unzuverlässiger Indikator für den Umfang der Änderungen. Die naheliegende Lösung besteht darin, zunächst eine vollständige (korrekte) Differenz [12] zwischen den Versionen zu berechnen. Aus dieser Differenz geht hervor, welche Editieroperationen zum Nachvollziehen der Veränderungen notwendig sind. Metriken, die sich auf Differenzen beziehen und z.B. die darin enthaltenen Operationen zählen, bezeichnen wir als Differenzmetriken. Differenzmetriken sind offensichtlich viel genauere Indikatoren für den Umfang der Änderungen als Differenzen von Metrikwerten. Differenzmetriken haben den Vorteil, daß Typen von Änderungen hinsichtlich ihres Risikos kategorisiert werden können. Ferner können tabellarische oder graphische Darstellungen von Änderungshistorien einzelne Metriken isoliert darstellen (m.a.W. sollten Analysewerkzeuge dies erlauben). Differenzmetriken und Werkzeuge, die diese unterstützen, müssen spezifisch für einzelne Modelltypen entwickelt werden, da jeder Modelltyp eigene Editieroperationen und Konsistenzkriterien hat. Das reine Graphiksystem eines Werkzeugs kann weitgehend unabhängig von den Modelltypen entwickelt werden (s. z.B. [4]), muß also nicht für jeden Modelltyp neu entwickelt werden. Das relevanteste Problem ist auch hier wieder die Differenzberechnung (vgl. Abschnitt 3.1).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head></head><label></label><figDesc>Abbildung 1: StructureChangesView im Werkzeug Evolver</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Abbildung 2 :</head><label>2</label><figDesc>Abbildung 2: EvolutionView</figDesc><graphic coords="9,132.05,125.80,340.17,170.08" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Abbildung 3 :</head><label>3</label><figDesc>Abbildung 3: AnimationView</figDesc><graphic coords="10,190.00,125.80,226.77,198.43" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head></head><label></label><figDesc>entscheidende interne Funktion ist hier Bestimmung korrespondierender Dokumentteile. Für textuelle Dokumente sind hinreichend gute und effiziente Algorithmen bekannt, für graphstrukturierte Modelle ist das Problem deutlich komplizierter. Persistente Darstellungen sind keine geeignete Basis, sondern nur abstrakte Syntaxbäume. Besonders schwierig ist die Bestimmung von Korrespondenzen bei Modelltypen, in denen wichtige Modellelemente keine markanten lokalen Eigenschaften haben, sondern deren Nachbarschaft entscheidend ist. Ein zusätzliches Problem bei langlebigen Systemen sind neue Sprachversionen, die zu veränderten Metamodellen führen.</figDesc><table /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head></head><label></label><figDesc><ref type="bibr" target="#b6">5</ref> Versionen sind noch gut erkennbar, ab ca. 10 Versionen wird die Darstellung trotz transparenter Darstellung unbrauchbar. Die Zahl der anzeigten Versionen sollte in Realzeit veränderbar sein, ebenso die vorne angezeigte Version. Wünschenswert ist ferner eine Funktion, die aus der gesamten Revisionskette besonders interessante Versionen anhand bestimmter Kriterien selektiert. Ein Beispiel für die zweite o.g. Kategorie ist der Evolu-tionView im Werkzeug Evolver, s. Bild 2. Diese zeigt für jede Version und jede Entität eine Säule. Die Höhe einer Säule ergibt sich anhand einer Metrik, angewandt auf diese Entität in dieser Version. Bei der Kameraposition, die in Bild 2 gewählt ist, verläuft die "Zeit" von hinten nach vorne. Von links nach rechts sind die angezeigten Entitäten angeordnet. In Bild 2 ist eine der Entitäten selektiert und alle zugeordneten Säulen über alle Versionen hinweg sind dunkler gezeichnet.</figDesc><table><row><cell>Metrikbasierte Darstellungen.</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">Die Frage, ob die notwendigen komplexen Generierungsframeworks mehr Wartungsprobleme schaffen als lösen, ist für dieses Papier nicht relevant. Festgehalten werden kann, daß domänenspezifische Sprachen die hier diskutierten technologische Herausforderungen eher vergrößern.</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Ambros</forename></persName>
		</author>
		<author>
			<persName><forename type="first">Marco</forename></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Visualizing Integrated Logical Coupling Information</title>
		<author>
			<persName><forename type="first">Michele</forename><forename type="middle">;</forename><surname>Lanza</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Mircea</forename><surname>Lungu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. International Workshop on Mining Software Repositories</title>
				<meeting>International Workshop on Mining Software Repositories<address><addrLine>MSR</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2006">2006. 2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><forename type="first">Daniel</forename><forename type="middle">;</forename><surname>Bildhauer</surname></persName>
		</author>
		<author>
			<persName><surname>Horn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">;</forename><surname>Tassilo</surname></persName>
		</author>
		<author>
			<persName><surname>Ebert</surname></persName>
		</author>
		<title level="m">Proc. 2009 ICSE Workshop on Comparison and Versioning of Software Models; IEEE Catalog Number CFP0923G</title>
				<meeting>2009 ICSE Workshop on Comparison and Versioning of Software Models; IEEE Catalog Number CFP0923G</meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="31" to="36" />
		</imprint>
	</monogr>
	<note>Jürgen: Similarity-Driven Software Reuse</note>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Christian</forename><surname>Collberg</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A System For Graph-based Visualization of the Evolution of Software</title>
		<author>
			<persName><forename type="first">Stephen</forename><forename type="middle">;</forename><surname>Kobourov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jasvir</forename><forename type="middle">;</forename><surname>Nagra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jacob</forename><forename type="middle">;</forename><surname>Pitts</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Kevin</forename><surname>Wampler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 2003 ACM Symposium on Software Visualization SoftVis&apos;03</title>
				<meeting>2003 ACM Symposium on Software Visualization SoftVis&apos;03</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page">77</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<ptr target="http://pi.informatik.uni-siegen.de/projects/evolver" />
		<title level="m">Evolver: Analyzing Software Evolution with Animations and 3D-Visualizations (Project homepage</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">A Generic Difference Algorithm for UML Models</title>
		<author>
			<persName><forename type="first">Udo</forename><forename type="middle">;</forename><surname>Kelter</surname></persName>
		</author>
		<author>
			<persName><surname>Wehren</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jörg</forename><surname>Jürgen; Niere</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Software Engineering 2005</title>
		<title level="s">Fachtagung des GI-Fachbereichs Softwaretechnik</title>
		<meeting><address><addrLine>Essen;</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2005">2005. 2005</date>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="page">11</biblScope>
		</imprint>
	</monogr>
	<note>LNI</note>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Different Models for Model Matching: An Analysis Of Approaches To Support Model Differencing</title>
		<author>
			<persName><forename type="first">Dimitrios</forename><forename type="middle">S</forename><surname>Kolovos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Davide</forename><surname>Ruscio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alfonso</forename><forename type="middle">;</forename><surname>Di; Pierantonio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Richard</forename><forename type="middle">F</forename><surname>Paige</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 2009 ICSE Workshop on Comparison and Versioning of Software Models</title>
				<meeting>2009 ICSE Workshop on Comparison and Versioning of Software Models</meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="1" to="6" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Recovering Software Evolution Using Software Visualization Techniques</title>
		<author>
			<persName><forename type="first">M</forename><surname>Lanza</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 4th Intl. Workshop Principles Software Evolution IWPSE; ACM</title>
				<meeting>4th Intl. Workshop Principles Software Evolution IWPSE; ACM</meeting>
		<imprint>
			<date type="published" when="2001">2001</date>
			<biblScope unit="page" from="37" to="42" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Polymetric Views -A Lightweight Visual Approach To Reverse Engineering</title>
		<author>
			<persName><forename type="first">Michele</forename><forename type="middle">;</forename><surname>Lanza</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Stéphane</forename><surname>Ducasse</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Trans. Softw. Eng</title>
		<imprint>
			<biblScope unit="volume">29</biblScope>
			<biblScope unit="issue">9</biblScope>
			<biblScope unit="page">782</biblScope>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Softwarenaut: Exploring Hierarchical System Decompositions</title>
		<author>
			<persName><forename type="first">Mircea</forename><forename type="middle">;</forename><surname>Lungu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Michele</forename><surname>Lanza</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. Conference on Software Maintenance and Reengineering (CSMR &apos;06)</title>
				<meeting>Conference on Software Maintenance and Reengineering (CSMR &apos;06)<address><addrLine>Washington, DC, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2006">2006. 2006</date>
			<biblScope unit="page" from="351" to="354" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Joaquin</forename><surname>Miller</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<idno>2003-06-12</idno>
		<ptr target="http://www.omg.org/docs/omg/03-06-01.pdf" />
		<title level="m">MDA Guide Version 1.0.1; OMG, Document Number</title>
				<editor>
			<persName><forename type="first">Jishnu</forename><surname>Mukerji</surname></persName>
		</editor>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<ptr target="http://www.sidiff.org;2008" />
		<title level="m">SiDiff Differenzwerkzeuge</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Christoph</forename><surname>Treude</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Stefan</forename><surname>Berlik</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Difference Computation of Large Models</title>
		<author>
			<persName><forename type="first">Sven</forename><forename type="middle">;</forename><surname>Wenzel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Udo</forename><surname>Kelter</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering</title>
				<meeting><address><addrLine>Dubrovnik, Croatia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2007-07">Sep 3 -7. 2007</date>
			<biblScope unit="page" from="295" to="304" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Sven</forename><surname>Wenzel</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Tracing Model Elements</title>
		<author>
			<persName><forename type="first">Udo</forename><forename type="middle">;</forename><surname>Kelter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Hermann</forename><surname>Hutter</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">23rd IEEE International Conference on Software Maintenance (ICSM 2007)</title>
				<meeting><address><addrLine>Paris, France</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2007">October 2-5, 2007. 2007</date>
			<biblScope unit="page" from="104" to="113" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<author>
			<persName><forename type="first">Sven</forename><forename type="middle">;</forename><surname>Wenzel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Udo</forename><surname>Kelter</surname></persName>
		</author>
		<title level="m">Proc. 30th International Conference on Software Engineering</title>
				<meeting>30th International Conference on Software Engineering<address><addrLine>Leipzig, Germany</addrLine></address></meeting>
		<imprint>
			<publisher>ACM Press</publisher>
			<date type="published" when="1018-05">May 1018, 2008. 2008</date>
			<biblScope unit="page" from="831" to="834" />
		</imprint>
	</monogr>
	<note>Analyzing Model Evolution. ICSE&apos;08</note>
</biblStruct>

<biblStruct xml:id="b20">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Sven</forename><forename type="middle">;</forename><surname>Wenzel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jens</forename><forename type="middle">;</forename><surname>Koch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Udo</forename><surname>Kelter</surname></persName>
		</author>
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<monogr>
		<author>
			<persName><forename type="first">Andreas</forename><surname>Kolb</surname></persName>
		</author>
		<title level="m">Proc. 25th IEEE International Conference on Software Maintenance (ICSM 2009)</title>
				<meeting>25th IEEE International Conference on Software Maintenance (ICSM 2009)<address><addrLine>Edmonton, Canada</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2009">2009. 2009</date>
			<biblScope unit="page" from="475" to="478" />
		</imprint>
	</monogr>
	<note>Evolution Analysis with Animated and 3D-Visualizations</note>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Visual exploration of large-scale system evolution</title>
		<author>
			<persName><forename type="first">R</forename><surname>Wettel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lanza</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 15th Working Conference on Reverse Engineering (WCRE)</title>
				<meeting>15th Working Conference on Reverse Engineering (WCRE)<address><addrLine>Washington DC, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="219" to="228" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Exploring Software Evolution Using Spectrographs</title>
		<author>
			<persName><forename type="first">J</forename><surname>Wu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Holt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Hassan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. Working Conference on Reverse Engineering</title>
				<meeting>Working Conference on Reverse Engineering<address><addrLine>WCRE</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2004">2004. 2004</date>
			<biblScope unit="page" from="80" to="89" />
		</imprint>
	</monogr>
</biblStruct>

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