<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>www.der-wirtschaftsingenieur.de &#187; UML</title>
	<atom:link href="http://www.der-wirtschaftsingenieur.de/index.php/category/ingenieursdisziplinen/informatik/uml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.der-wirtschaftsingenieur.de</link>
	<description>Portal für Wirtschaftsingenieure</description>
	<lastBuildDate>Tue, 31 Jan 2012 13:34:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Zustandsdiagramm</title>
		<link>http://www.der-wirtschaftsingenieur.de/index.php/zustandsdiagramm/</link>
		<comments>http://www.der-wirtschaftsingenieur.de/index.php/zustandsdiagramm/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 13:27:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Prozessgestaltung]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.der-wirtschaftsingenieur.de/?p=3537</guid>
		<description><![CDATA[Zustandsdiagramme werden in der UML beschrieben und dienen der Darstellung von Systemverhalten. Mit Zustandsdiagrammen kann das innere Verhalten von Objekten in Geschäftssystemen oder IT-Systemen beschrieben werden. Das Verhalten bezeichnet die Wechselwirkung und Interaktion zwischen Objekten eines solchen Systems. Zustandsdiagramme sind vor allem in der Software-Entwicklung verbreitet, insbesondere bei Klassenobjekten, die ein sehr dynamisches Verhalten (ausgelöst [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Zustandsdiagramm</strong>e werden in der <a title="UML - Unified Modeling Language" href="http://www.der-wirtschaftsingenieur.de/index.php/unified-modeling-language-uml/">UML</a> beschrieben und dienen der Darstellung von <strong>Systemverhalten</strong>. Mit Zustandsdiagrammen kann das innere Verhalten von Objekten in Geschäftssystemen oder IT-Systemen beschrieben werden. Das Verhalten bezeichnet die Wechselwirkung und Interaktion zwischen Objekten eines solchen Systems. Zustandsdiagramme sind vor allem in der Software-Entwicklung verbreitet, insbesondere bei Klassenobjekten, die ein sehr dynamisches Verhalten (ausgelöst durch viele Ereignisse) aufweisen.</p>
<p>Zustandsdiagramme zeigen die durch <strong>Ereignisse</strong> (Events) beeinflussten Zustände, die ein Objekt annehmen kann, sowie die Ereignisse oder Nachrichten, die im kausalen Zusammenhang mit einem Zustandswechsel stehen. In einem Geschäftssystem wird die Zustandsänderung der Objekte (Verhalten) durch Geschäftsprozesse nach Geschäftsregeln ausgelöst.</p>
<p style="text-align: center;"><img class="aligncenter" title="Zustandsdiagramm einer Batterie" src="http://www.der-wirtschaftsingenieur.de/bilder/it/zustandsdiagramm2.png" alt="" width="426" height="266" /><span id="more-3537"></span></p>
<p>Am leichtesten sind Zustandsdiagramme zu verstehen, wenn die objektorientierte Programmierung verstanden wurde. Für Objekte gelten folgende Grundsätze:</p>
<ul>
<li>jedes Objekt gehört jeweils zu genau einer Klasse</li>
<li>die Klasse beschreibt den Anfangszustand sowie Startparameter (welche den Zustand jedoch sofort ändern können)</li>
<li>ein Objekt wird aus einer Klasse erzeugt und irgendwann wieder zerstört (gelöscht), der Zeitraum zwischen Erzeugung und Zerstörung ist der Lebenszeitraum des Objekts</li>
<li>während des Lebenszeitraums kann ein Objekt von Ereignissen oder Nachrichten beeinflusst werden und dadurch seinen Zustand wechseln.</li>
</ul>
<p>Zustandsdiagramme haben ihre größte Bedeutung in der Software-Entwicklung, Geschäftsprozessmodellierung oder allgemeiner in der <strong>Wirtschaftsinformatik</strong>.<br />
<br /><br />
<center><script type="text/javascript"><!--
google_ad_client = "pub-4204488675913141";
/* der-wirtschaftsingenieur5 (horizontale Reihe) */
google_ad_slot = "6242293900";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center></p>
<h2>Elemente eines Zustandsdiagramms</h2>
<p><strong>1. Zustand</strong></p>
<p>Eine Aktivität bildet eine Funktion/Methode bzw. einen Prozess ab. Aktivitäten werden in abgerundeten Rechtecken dargestellt.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/zustandsdiagramm_zustand.png" alt="" width="75" height="37" /></p>
<p><strong>2. Übergänge (Ereignisse)</strong></p>
<p>Übergänge stehen für Ereignisse.</p>
<p><strong>2.1 Einfacher Übergang<br />
</strong></p>
<p>Ein Übergang verursacht einen Zustandswechsel. Übergänge symbolisieren Ereignisse und werden mit Pfeilen dargestellt. Ereignisse können eingeteilt werden in:</p>
<ul>
<li>objekterzeugende Ereignisse</li>
<li>Ereignisse zur Lebenszeit des Objekts</li>
<li>objektzerstörende Ereignisse</li>
</ul>
<p><img class="alignnone" title="Pfeil" src="http://www.der-wirtschaftsingenieur.de/bilder/it/pfeil.png" alt="" width="70" height="25" /></p>
<p>Ein Ereignis kann statt einer Entscheidung auch eine einfache Bedingung haben. Bedingungen (als boolesche Ausdrücke) für Übergänge werden in eckigen Klammern an den jeweiligen Übergang geschrieben.</p>
<p><strong>2.2 Aufspaltung</strong></p>
<p>Die Aufspaltung führt von einem Ereignis zu mehreren Ereignisse. Eine horizontale oder vertikale Linie dient als <strong>Synchronisationsbalken</strong>, der für die Parallelisierung der nachfolgenden Ereignisse steht.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm_aufspaltung.png" alt="" /></p>
<p><strong>2.3 Zusammenführung</strong></p>
<p>Die Zusammenführung ist die Umkehrung der Aufspaltung: Mehrere Ereignisse lösen ein Ereignis aus.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm_zusammenfuehrung.png" alt="" /></p>
<p><strong>3. Entscheidung (Verzweigung)</strong></p>
<p>Eine Verzweigung hat einen Eingang und mindestens zwei Ausgänge.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm_verzweigung.png" alt="" /></p>
<p><strong>4. Startzustand</strong></p>
<p>Tritt ein objekterzeugendes Ereignis ein, so beginnt der Übergang dem Symbol für den Startzustand.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm_startpunkt.png" alt="" /></p>
<p>Der Startzustand symbolisiert die Entstehung (in der Software-Entwicklung: Instanziierung) eines Objekts.</p>
<p><strong>5. Endzustand</strong></p>
<p>Tritt ein objektzerstörendes Ereignis ein, so endet ein Übergang beim Symbol für den Endzustand.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm_endpunkt.png" alt="" /></p>
<p>Endzustand bedeutet das Lebensende bzw. die Löschung des Objekts.</p>
<h3>Beispiel eines Zustandsdiagramm</h3>
<p>Das nachfolgende Zustandsdiagramm zeigt das Verhalten einer verteilten Anwendung (Client-Server-Programm). Diese Anwendung besteht im Grunde aus zwei verschiedenen Programmen, einem Client- und einem Server-Programm.</p>
<p style="text-align: center;"><img class="aligncenter" title="Zustandsdiagramm eines Client-Server-Programms (verteilte Anwendung)" src="http://www.der-wirtschaftsingenieur.de/bilder/it/zustandsdiagramm.png" alt="" width="679" height="887" /></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.der-wirtschaftsingenieur.de/index.php/zustandsdiagramm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aktivitätsdiagramm</title>
		<link>http://www.der-wirtschaftsingenieur.de/index.php/aktivitatsdiagramm/</link>
		<comments>http://www.der-wirtschaftsingenieur.de/index.php/aktivitatsdiagramm/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 20:24:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Prozessgestaltung]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.der-wirtschaftsingenieur.de/?p=3266</guid>
		<description><![CDATA[Die meisten UML-Diagramme sind für die Darstellung von Hierarchien und Aufbaustrukturen unter dem Grundsatz der Objektorientierung geschaffen worden. Aktivitätsdiagramme zeigen jedoch die funktionale Sicht und sind unabhängig von dem Gedanken eines objektorientierten Aufbaus, gehören also zu den Verhaltensdiagrammen. Nur mit Funktionen bzw. Methoden (Aktivitäten) lässt sich Bewegung im System darstellen. Aktivitätsdiagramme sind vergleichbar mit Programmablaufplänen [...]]]></description>
			<content:encoded><![CDATA[<p>Die meisten <a title="UML - Unified Modeling Language" href="http://www.der-wirtschaftsingenieur.de/index.php/unified-modeling-language-uml/">UML</a>-Diagramme sind für die Darstellung von Hierarchien und Aufbaustrukturen unter dem Grundsatz der Objektorientierung geschaffen worden. <strong>Aktivitätsdiagramm</strong>e zeigen jedoch die funktionale Sicht und sind unabhängig von dem Gedanken eines objektorientierten Aufbaus, gehören also zu den Verhaltensdiagrammen. Nur mit Funktionen bzw. Methoden (Aktivitäten) lässt sich Bewegung im System darstellen.</p>
<p><strong>Aktivitätsdiagramme</strong> sind vergleichbar mit Programmablaufplänen oder Struktogrammen und nicht nur in der Software-Entwicklung nützlich, sondern auch in der Prozessabbildung, beispielsweise zur Abbildung von Geschäftsprozessen. Aktivitätsdiagramme ermöglichen die Abbildung von Verantwortungsbereichen über Prozesse sowie die Parallelisierung von Prozessen, was Aktivitätsdiagramme besonders für die Darstellung und Analyse von Geschäftsprozessen in der <a title="Wirtschaftsinformatik" href="http://www.der-wirtschaftsingenieur.de/index.php/wirtschaftsinformatik/">Wirtschaftsinformatik</a> und Aktivitäten bei verteilten Anwendungen in der Software-Entwicklung qualifiziert.<span id="more-3266"></span></p>
<p><br /><br />
<center><script type="text/javascript"><!--
google_ad_client = "pub-4204488675913141";
/* der-wirtschaftsingenieur5 (horizontale Reihe) */
google_ad_slot = "6242293900";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center></p>
<h2>Elemente eines Aktivitätsdiagramms</h2>
<p><strong>1. Aktivität</strong></p>
<p>Eine Aktivität bildet eine Funktion/Methode bzw. einen Prozess ab. Aktivitäten werden in abgerundeten Rechtecken dargestellt.</p>
<p><img class="alignnone" src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm_aktivitaet.png" alt="" /></p>
<p><strong>2. Zustand</strong></p>
<p>Zustände von Objekten werden in Rechtecken dargestellt und sind in Aktivitätsdiagrammen als Eingangs- und Ausgangsinformation von Bedeutung. Viele Aktivitätsdiagramme kommen jedoch auch ganz ohne Zustände aus.</p>
<p><strong>3. Kontrollfluss (Übergang)</strong></p>
<p>Mit einem Kontrollfluss werden ein oder mehrere Aktivitäten ausgelöst. Diese Übergänge von Startpunkt zu Prozessen, Prozessen untereinander bis zu einem Endpunkt werden mit Pfeilen dargestellt. Jede Aktivität (Prozess) beginnt und endet mit einem Übergang, wenn nicht mit einer Verzweigung.</p>
<p><strong>3.1 Einfacher Kontrollfluss</strong></p>
<p>Ein einzelner Pfeil zeigt einen einfachen Übergang zwischen Startpunkt und Prozess, Prozess und Prozess oder Prozess und Endpunkt.</p>
<p><strong>3.2 Aufspaltung</strong></p>
<p>Die Aufspaltung führt von einem Prozess zu mehreren Prozessen. Eine horizontale oder vertikale Linie dient als <strong>Synchronisationsbalken</strong>, der für die Parallelisierung der nachfolgenden Prozesse steht.</p>
<p><img class="alignnone" src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm_aufspaltung.png" alt="" /></p>
<p><strong>3.3 Zusammenführung</strong></p>
<p>Die Zusammenführung ist die Umkehrung der Aufspaltung: Mehrere Prozesse führen zu einem Prozess.</p>
<p><img class="alignnone" src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm_zusammenfuehrung.png" alt="" /></p>
<p><strong>4. Entscheidung (Verzweigung)</strong></p>
<p>Eine Verzweigung hat einen Eingang und mindestens zwei Ausgänge.</p>
<p><img class="alignnone" src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm_verzweigung.png" alt="" /></p>
<p><strong>5. Startzustand</strong></p>
<p><img class="alignnone" src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm_startpunkt.png" alt="" /></p>
<p><strong>6. Endzustand</strong></p>
<p><img class="alignnone" src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm_endpunkt.png" alt="" /></p>
<p><strong>7. Verantwortlichkeitsbereiche</strong></p>
<p>Jede Aktivität liegt in einem Verantwortlichkeitsbereich, beispielsweise in einer Client- oder Server-Software oder in verschiedenen Unternehmensbereichen.</p>
<h2>Aktivitätsdiagramm &#8211; Beispiel</h2>
<p>Nachfolgend ein vereinfachtes Beispiel eines Aktivitätsdiagramms, welches den Zahlungsprozess zwischen Kunden, Kassierer und Kassensystem abbildet. Aus Gründen der Einfachheit wird nur die Möglichkeit der EC-Karten-Zahlung eingeräumt.</p>
<p><img class="alignnone" title="Aktivitätsdiagramm" src="http://www.der-wirtschaftsingenieur.de/bilder/it/aktivitaetsdiagramm.png" alt="" width="680" height="940" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.der-wirtschaftsingenieur.de/index.php/aktivitatsdiagramm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Klassendiagramm (Class Diagramm)</title>
		<link>http://www.der-wirtschaftsingenieur.de/index.php/klassendiagramm-class-diagramm/</link>
		<comments>http://www.der-wirtschaftsingenieur.de/index.php/klassendiagramm-class-diagramm/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:30:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.der-wirtschaftsingenieur.de/?p=131</guid>
		<description><![CDATA[Das Klassendiagramm ist wahrscheinlich eines der Diagramme, welches zum großen Erfolg von UML beigetragen haben. Mit dem Klassendiagramm lassen sich die für ein Programm entworfenen Klassen mit Atrributen und Methoden sowie den Beziehungen der Klassen zueinander visualisieren. Ein Klassendiagramm ist daher nur auf die objektorientierte Software-Entwicklung anwendbar. Ein Klassendiagramm muss nicht den vollständigen Klassenentwurf wiedergeben, [...]]]></description>
			<content:encoded><![CDATA[<div class="main">
<p>Das <strong>Klassendiagramm</strong> ist wahrscheinlich eines der Diagramme, welches zum großen Erfolg von <strong>UML</strong> beigetragen haben.</p>
<p>Mit dem Klassendiagramm lassen sich die für ein Programm entworfenen <strong>Klassen</strong> mit Atrributen und Methoden sowie den Beziehungen der <strong>Klassen</strong> zueinander visualisieren.<br />
Ein Klassendiagramm ist daher nur auf die <strong>objektorientierte</strong> Software-Entwicklung anwendbar.</p>
<p>Ein Klassendiagramm muss nicht den vollständigen <strong>Klassenentwurf</strong> wiedergeben, sondern kann sich auch nur auf einen <strong>Ausschnitt relevanter Klassen</strong> beziehen.</p>
<h3><strong>Beispiel:</strong></h3>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/klassendiagramm5.PNG" alt="Klassendiagramm" width="347" height="218" /></p>
<p>Obiges <strong>Klassendiagramm</strong> zeigt die Beziehung zweier Klassen. Die linke Klasse <em>Eurofighter</em> steht in Beziehung mit einer anderen Klasse <em>Rakete</em>.</p>
<p>Die Klasse <em>Eurofighter </em>hat <span style="color: #800000;"><strong>Attribute</strong></span> (obere, rote Liste), welche die Eigenschaften der Klasse beschreiben. Außerdem hat die Klasse <span style="color: #008000;"><strong>Operationen</strong></span> (untere, grüne Liste), welche die möglichen Funktionen (Methoden) der Klasse zeigen.</p>
<p>Dass in die Klasse <em>Rakete </em>keine Attribute und Operationen eingetragen wurden ist nicht weiter tragisch. Oft wird der Fokus auf die relevanten Klassen gelegt und nur bedingt relevante Klassen vereinfacht dargestellt; das Abstraktionslevel wird nicht selten bewusst gebrochen.</p>
<p>Ein UML-Klassendiagramm dient primär der Planung und Konzeption, als Hilfestellung für Software-Entwickler.<br />
Es gibt zudem Programme, welche ein, nach den Programmrichtlinien erstelltes, Klassendiagramm in Quellcode umsetzt.<span id="more-131"></span></p>
<h2><strong>Beziehungen der objektorientierten Programmierung</strong></h2>
<h3><strong>Assoziation</strong></h3>
<p>Die Assoziation ist die einfachste Beziehung zwischen Klassen. Die Assoziation ist i.d.R. mit einem einfachen Strich symbolisiert. Die Objekte der Klassen bleiben trotz der Beziehung voneinander unabhängig und sind gleichberechtigt. Wird ein Objekt einer Klasse zerstört, existiert die andere Klasse unabhängig weiter.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/klassendiagramm3.PNG" alt="Klassendiagramm" width="313" height="110" /></p>
<h3><strong>Aggregation und Komposition</strong></h3>
<p>Das nachfolgende Schaubild eines Klassendiagramms zeigt drei Klassen <em>Bücherregal</em>, <em>Buch</em> und <em>Seite</em>.</p>
<p>Wie sind die Beziehungen dieser drei Objekte? Eine Seite ist fester Bestandteil eines Buches, sie kann nicht einfach ausgetauscht oder umgeheftet werden; Die Seiten werden mit dem Buch gekauft, verbrennt das Buch, verbrennen die Seiten des Buches unbedingt mit.<br />
Ein Buch hingegen kann in dieses oder jenes Regal gestellt werden. Seiten sind also fest mit Büchern verbunden, Bücher aber nicht mit Regalen.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/klassendiagramm8.PNG" alt="Klassendiagramm" width="463" height="95" /></p>
<p>Die <strong>Aggregation</strong> ist eine häufig verwendete Beziehungsform in der Objektorientiertheit.<br />
Die beschreibt eine Klassenbeziehung, bei welcher eine Klasse n Klassen übergeordnet ist und einbindet. Die Bindung ist fest, allerdings können die Objekte der untergeordneten Klassen auch ohne die der übergeordneten Klasse existieren.</p>
<p>Die <strong>Aggregation</strong> wird i.d.R. mit einer weißen oder transparenten Raute symbolisiert (obige Skizze: linke Beziehung).</p>
<p>Die <strong>Komposition</strong> beschreibt ebenfalls eine feste Bindung einer übergeordneten Klasse zu n untergeordneten Klassen. Allerdings können die Objekte der untergeordneten Klassen bei der Komposition nicht ohne die der übergeordneten Klassen existieren. Wird das Objekt der übergeordneten Klasse zerstört, sind auch die untergeordneten Objekte zerstört.</p>
<p>Eine <strong>Komposition</strong> wird i.d.R. mit einer schwarzen Raute dargestellt (obige Skizze: rechte Beziehung).</p>
<p>Die Raute liegt immer auf der Seite der übergeordneten Klasse.</p>
<h4><strong>Aggregation vs Komposition &#8211; Interpretationssache</strong></h4>
<p>Ob Aggregation oder Komposition anzuwenden ist, hängt von den Umständen und Zielen ab. Es kann z.B. für ein Software-Projekt notwendig sein, dass z.B. die virtuelle Buchseite doch auch unabhängig vom Buch existieren kann.</p>
<p><strong>Beispiel: Klassengebilde Auto</strong></p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/klassendiagramm6.PNG" alt="Klassendiagramm" width="335" height="205" /></p>
<p>In diesem Klassendiagramm hat die Klasse Auto auch die Klassen Motor und Getriebe. Die Objekte der untergeordneten Klassen Motor und Getriebe können auch ohne das (Objekt) Auto existieren! Außerdem können Motor und Getriebe von Auto zu Auto getauscht werden.<br />
Daher werden die Beziehungen als Aggregation vereinbart.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/klassendiagramm7.PNG" alt="" width="321" height="219" /></p>
<p>Genauso gut kann die Klasse Auto die Klassen Motor und Getriebe aber auch über eine Komposition verwenden. Bedingt durch die Komposition können die beiden Objekte der Klassen Motor und Getriebe nicht ohne das Objekt Auto existieren. Das Getriebe und der Motor kann somit auch nicht von Auto zu Auto getauscht werden.</p>
<h3><strong>Vererbung</strong></h3>
<p>Die Vererbung ist die wohl interessanteste, obwohl sehr indirekte, Beziehung der Klassen bzw. der Klassenobjekte untereinander.<br />
In der objektorientierten Programmierung können Datentypen Klassen so “Eltern” bzw. “Kinder” haben. Die “Eltern”-Klassen können ihre Eigenschaften (Attribute) und Methoden an ihre Kinder <strong>vererben</strong>. Da, im Gegensatz zur Schnittstellenvererbung, nicht nur Signaturen von Operationen, sondern die gesamten Operationen vererbt werden, ist hier speziell die <strong>Implementierungsvererbung</strong> gemeint.</p>
<p>Eine Vererbung wird mit Pfeilen dargestellt, der Pfeil zeigt vom Erben zum Vererber. Man spricht von <strong>Mehrfachvererbung</strong>, wenn eine Klasse von mehr als einer Klasse erbt.</p>
<p><strong>Beispiel an Hand der Mehrfachvererbung:</strong> Mechatronik enthält die Eigenschaften der Elektronik und Mechanik</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/klassendiagramm4.PNG" alt="Klassendiagramm" width="265" height="215" /></p>
<p>Ein weiteres, typisches Beispiel zur Erläuterung des Vererbungsprinzips ist das Beispiel der Vererbungsbeziehung zwischen Fahrzeug-Klassen.</p>
<p>Die oberste Klasse ist die <strong>abstrakte</strong> <strong>Klasse</strong> <em>Fahrzeug</em>. Eine abstrakte Klasse ist nicht instanziierbar (also praktisch nicht direkt verwendbar). Die Klasse <em>Fahrzeug</em> stellt zwar alle Grundfunktionen und Eigenschaften zur Verfügung, welche ein <em>Fahrzeug</em> bieten muss (jedes Fahrzeug sollte u.a. einen Geschwindigkeitstacho haben, fahren und anhalten können), die allgemeine Definition <em>Fahrzeug</em> als abstrakte Klasse kann jedoch noch nicht verwendet werden.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/klassendiagramm1.PNG" alt="Klassendiagramm" width="589" height="397" /></p>
<p>Fahrzeuge können PKW und LKW sein (oder bei entsprechendem Klassenentwurf auch ein Motorrad oder Motorboot). Ein PKW sowie auch ein LKW haben alle Eigenschaften eines Fahrzeugs, bringen jedoch auch ganz eigene Eigenschaften mit, wie z.B. eine eigene Sitzplatzgestaltung.<br />
In diesem Beispiel sind des weiteren bestimmte Typen eines PKW definiert. Ein PKW kann die Gestaltung eines Vans, einer Limousine oder eines Sportwagens mit entsprechenden Spezifikationen haben.</p>
<h4><strong>Interface (Schnittstelle)</strong></h4>
<p>Eine <strong>Schnittstellenvererbung</strong> funktioniert ähnlich wie die Implementierungsvererbung. Anders als bei der Implementierungsvererbung werden jedoch keine vollständigen Operationen, sondern nur die Signaturen (i.d.R.: Rückgabewert, Methodenname, Parameternamen und &#8211; datentypen), vererbt.<br />
Das Interface (Vererber), welches von einer anderen Klasse implementiert wird, sichert damit nur zu, dass die implementierende Klasse eine bestimmte Funktionalität bereitstellt.</p>
<p>Erklärungsbeispiel: Ein Interface <em>Fahrstuhl</em> hat die Signaturen der Methoden &#8220;hochfahren()&#8221;, &#8220;herunterfahren()&#8221; und &#8220;anhalten()&#8221;.<br />
Damit sagt das Interface <em>Fahrstuhl</em> aus: &#8220;<em>Wer mich implementiert, der muss die Funktionen hochfahren(), herunterfahren() und anhalten() haben und mit Funktionalität versorgen, ansonsten kann er mich nicht implementieren</em>&#8220;.</p>
<p>Häufig werden Interfaces mit einem vorangestellten &#8220;I&#8221; namentlich gekennzeichnet, ein Interface &#8220;Fahrstuhl&#8221; hieße so &#8220;IFahrstuhl&#8221;, ein Interface &#8220;Verbindung&#8221; mit dieser Kennzeichnung &#8220;IVerbindung&#8221;.</p>
<p>Im UML-Klassendiagramm werden Schnittstellen zur Verdeutlichung meistens mit dem Zusatz &#8220;&lt;&lt;interface&gt;&gt;&#8221; versehen.</p>
<p>Dargestellt wird eine Schnittstellenvererbung bzw. -implementierung mit Hilfe von gestrichelten Pfeilen.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/klassendiagramm2.PNG" alt="Klassendiagramm" width="406" height="306" /></p>
<p>Die Darstellung mit Pfeilen ist die sinngemäße Anlehnung an die Implementierungsvererbung (welche mit durchgezogenen Pfeilen dargestellt wird).</p>
<p>Die Schnittstellenvererbung kann auch mit Hilfer einer anderen Darstellungsweise skizziert werden. Beispielsweise verwendet Microsoft für die Schnittstellenimplementierung keine Pfeile, sondern eine Art &#8220;Anker&#8221;.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/klassendiagramm22.PNG" alt="Klassendiagramm" width="406" height="306" /></p>
<p>Diese Darstellungsweise hat die Vorteile, dass keine Linien zwischen dem Interface und den implementierenden Klassen gezogen werden müssen (platzsparend) und dass die äußerst indirekte Beziehung der Schnittstellenvererbung betont wird.</p>
<p><strong>Hinweise:</strong><br />
Mit UML-Klassendiagrammen können eine Obermenge an Modellen und Strukturen dargestellt werden, allerdings können nicht alle objektorientierten Programmiersprachen all diesen Konzepten gerecht werden. Während beispielsweise C++ Mehrfachvererbung unterstützt, erlaubt C# nur eine einfache Vererbung.</p>
</div>
<div class="comments"><!--//--></div>
<p><!-- 	<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 				xmlns:dc="http://purl.org/dc/elements/1.1/" 				xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://www.der-wirtschaftsingenieur.de/?p=131"     dc:identifier="http://www.der-wirtschaftsingenieur.de/?p=131"     dc:title="Klassendiagramm (Class Diagramm)"     trackback:ping="http://www.der-wirtschaftsingenieur.de/?p=131/trackback/" /> </rdf:RDF> &#8211;><!-- You can start editing here. --> <!-- If comments are closed. --> <!-- End float clearing --> <!-- End content --> <!-- begin footer --><br /><br />
<center><script type="text/javascript"><!--
google_ad_client = "pub-4204488675913141";
/* der-wirtschaftsingenieur5 (horizontale Reihe) */
google_ad_slot = "6242293900";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center><br /><br />
<center><script type="text/javascript"><!--
google_ad_client = "pub-4204488675913141";
/* der-wirtschaftsingenieur5 (horizontale Reihe) */
google_ad_slot = "6242293900";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.der-wirtschaftsingenieur.de/index.php/klassendiagramm-class-diagramm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Anwendungsfall-Diagramm (Use-Case)</title>
		<link>http://www.der-wirtschaftsingenieur.de/index.php/anwendungsfall-diagramm-use-case/</link>
		<comments>http://www.der-wirtschaftsingenieur.de/index.php/anwendungsfall-diagramm-use-case/#comments</comments>
		<pubDate>Thu, 15 May 2008 15:13:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.der-wirtschaftsingenieur.de/?p=130</guid>
		<description><![CDATA[Komplexe Programme bieten häufig unterschiedlichen Benutzern verschiedene Interaktionen an. Dass ein Programm nur eine Art von Benutzer kennt, welcher das Programm nur starten muss und somit eine Kette von Aktionen auslöst bis sich das Programm automatisch beendet, kommt sehr selten und früher eher als heute vor (unabhängig davon, dass es immer diese Art von Programmen [...]]]></description>
			<content:encoded><![CDATA[<p>Komplexe Programme bieten häufig unterschiedlichen Benutzern verschiedene Interaktionen an.<br />
Dass ein Programm nur eine Art von Benutzer kennt, welcher das Programm nur starten muss und somit eine Kette von Aktionen auslöst bis sich das Programm automatisch beendet, kommt sehr selten und früher eher als heute vor (unabhängig davon, dass es immer diese Art von Programmen geben wird).</p>
<p>Bei der Entwicklung z.B. eine Office-Anwendung oder einer Shop-Software können sich die Entwickler schnell in einem &#8220;Wirrwar&#8221; aus Benutzer-Rechten verlieren, &#8220;Wer darf was und was eigentlich nicht?&#8221;.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/usecase2a.PNG" alt="Use Case Diagramm" width="275" height="214" /></p>
<p>Im sogenannten Anwendungsfall-Diagramm (engl. Use-Case-Diagram) werden Benutzer (engl. User) als kleine Strichmännchen dargestellt und so im Diagramm als Akteur, der auf das Programm Einfluss nehmen kann, symbolisiert. Aktionen, wie z.B. <strong><em>Anzeigen</em></strong>, <strong><em>Drucken</em></strong> oder <strong><em>Suchen</em></strong>, werden i.d.R. als Ovale dargestellt.</p>
<p>Um ein Anwendungsfall-Diagramm besser zu gliedern, kann es mehrere Anwender-Bereiche haben, z.B. Administrator-Bereich und Gäste-Bereich.<span id="more-130"></span></p>
<h4><strong>Include-Beziehung im Anwendungsfall-Diagramm</strong></h4>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/usecase2b.PNG" alt="Use Case Diagramm" width="358" height="245" /></p>
<p>Die Aktionen können sich gegenseitig einschließen.  Beispielsweise kann <strong>ein Administrator</strong> (= ein Akteur) eines Webportals  <em><strong>einem Benutzer-Profil ein Passwort zuweisen</strong></em> (= eine Aktion) <span style="text-decoration: underline;">oder</span> <em><strong>ein neues Profil anlegen</strong></em>. Letztere Aktion schließt jedoch auch erstere Aktion mit ein (ein neues Profil benötigt einen Passwortschutz). Da letztere Aktion zwangsweise erstere Aktion einschließt, zeigt ein gestrichelter Pfeil mit der Aufschrift &#8220;include&#8221; von der einbeziehenden Aktion auf die einbezogene Aktion.</p>
<p>Das Beziehungsverhältnis &#8220;include&#8221; drückt aus, dass eine Aktion die andere Aktion zwangsweise einschließt.</p>
<h4><strong><strong>Extend-Beziehung im Anwendungsfall-Diagramm</strong></strong></h4>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/usecase2c.PNG" alt="Use Case Diagramm" width="367" height="244" /></p>
<p>Aktionen können sich auch nur eventuell einschließen und nicht gezwungener Maßen. Beispielweise hat die Aktion <em><strong>Bezahlen</strong></em> nicht unbedingt auch die Aktion <strong><em>Geld zählen</em></strong> zur Folge, denn  bezahlt werden kann (systemabhängig) auch mit Kreditkarte oder noch anderen bargeldlosen Zahlungsmitteln (die möglicherweise wiederum andere Aktionen eventuell oder zwangsweise einschließen).</p>
<p>Kann eine Aktion eine Andere eventuell einschließen, wird statt der Include-Beziehung eine Extend-Beziehung verwendet. Diese eventuelle Einbeziehung einer Aktion kann zusätzlich eine Bedingung haben (z.B. ob Bargeld als Zahlungsmittel erlaubt ist), welche meistens als quadratisches Kästchen visualisiert wird.</p>
<h4><strong><strong>Beispiel eines Anwendungsfall-Diagramms</strong></strong></h4>
<p>Das folgende Anwendungsfall-Diagramm zeigt Anwendungsfälle in einem Shop-System.</p>
<p>Unterschieden werden drei Akteure:</p>
<ul>
<li>Verkäufer</li>
<li>Kunde</li>
<li>VIP-Kunde</li>
</ul>
<p>Der VIP-Kunde ist eine erweiterte Form des Kunden, er kann zusätzlich Warenbewertungen abgeben.<br />
Was einen Kunden zum VIP-Kunden macht, ist aus einem Anwendungsfalldiagramm nicht ersichtlich.</p>
<p><img src="http://www.der-wirtschaftsingenieur.de/bilder/it/usecase.PNG" alt="Use Case Diagramm" width="574" height="1212" /></p>
<p><strong>Hinweis:</strong> Anwendungsfall-Diagramme können je nach Stil oder UML-Version in der Erscheinung etwas variieren.<br />
Häufig werden beispielsweise Aktionen, die andere Aktionen via Extend einbinden, mit einem anderen Symbol dargestellt. Die generelle Visualisierungsprinzip eines Anwendungsfall-Diagramms bleibt jedoch immer erhalten.<br /><br />
<center><script type="text/javascript"><!--
google_ad_client = "pub-4204488675913141";
/* der-wirtschaftsingenieur5 (horizontale Reihe) */
google_ad_slot = "6242293900";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.der-wirtschaftsingenieur.de/index.php/anwendungsfall-diagramm-use-case/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Unified Modeling Language &#8211; UML</title>
		<link>http://www.der-wirtschaftsingenieur.de/index.php/unified-modeling-language-uml/</link>
		<comments>http://www.der-wirtschaftsingenieur.de/index.php/unified-modeling-language-uml/#comments</comments>
		<pubDate>Fri, 02 May 2008 21:21:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.der-wirtschaftsingenieur.de/?p=124</guid>
		<description><![CDATA[Die Unified Modeling Language (kurz: UML) ist eine eigene Sprache (von engl. &#8220;Language&#8221;) zur Darstellung von Softwaremodellierung. UML ist einer der vielen Teilbereiche des Software Engineering. UML ist jedoch genau genommen nicht eine Sprache oder ein Verfahren, sondern eine Sammlung an verschiedenen Verfahren, welche unterschiedliche Views (zu Deutsch: Ansichten, Perspektiven) auf eine Software-Architektur bieten. UML [...]]]></description>
			<content:encoded><![CDATA[<p>Die <strong>Unified Modeling Language</strong> (kurz: <strong>UML</strong>) ist eine eigene Sprache (von engl. &#8220;Language&#8221;) zur Darstellung von Softwaremodellierung. UML ist einer der vielen Teilbereiche des <strong>Software Engineering</strong>.</p>
<p>UML ist jedoch genau genommen nicht eine Sprache oder ein Verfahren, sondern eine Sammlung an verschiedenen Verfahren, welche unterschiedliche Views (zu Deutsch: Ansichten, Perspektiven) auf eine Software-Architektur bieten.</p>
<p>UML ist keine technisch definierte Sprache, sondern eine standarisierte abstrakte Konzeption. UML hat mehrere Versionen durchlaufen, von der Version 1.0 bis (aktuell) zur Version 2.0.</p>
<p>UML-Diagramme sind ein wichtiges Hilfsmittel bei der Konzeptionierung und Dokumentation von komplexer Software. Nicht selten sind UML-Diagramme Teil des <a title="Lasten- / Pflichtenheft" href="http://www.der-wirtschaftsingenieur.de/index.php/lastenheft-und-pflichtenheft/">Lasten-/Pflichtenhefts</a>. Mit UML-Diagrammen lassen sich schon vor der Umsetzung Konzeptionierungsfehler entdecken und beheben. Zusätzlich kann die Software-Architektur mittels UML auch Laien näher gebracht werden.</p>
<p>Hier soll auf die wichtigsten <strong>UML 2.0</strong> Diagramme eingegangen werden:</p>
<p><strong>Strukturdiagramme</strong></p>
<ul>
<li><a title="Klassendiagramm" href="http://www.der-wirtschaftsingenieur.de/index.php/klassendiagramm-class-diagramm/">Klassendiagramm</a></li>
<li>Objektdiagramm</li>
<li>Kompositionsstrukturdiagramm</li>
<li>Verteilungsdiagramm</li>
</ul>
<p><strong>Verhaltensdiagramme</strong></p>
<ul>
<li><a title="Aktivitätsdiagramm" href="http://www.der-wirtschaftsingenieur.de/index.php/aktivitatsdiagramm/">Aktivitätsdiagramm</a></li>
<li><a title="Anwendungsfalldiagramm (Use Case Diagramm)" href="http://www.der-wirtschaftsingenieur.de/index.php/anwendungsfall-diagramm-use-case/">Anwendungsfalldiagramm</a></li>
<li><a title="Zustandsdiagramm" href="http://www.der-wirtschaftsingenieur.de/index.php/zustandsdiagramm/">Zustandsdiagramm</a></li>
<li>Sequenzdiagramm</li>
<li>Kommunikationsdiagramm</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.der-wirtschaftsingenieur.de/index.php/unified-modeling-language-uml/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

