Einführung in Software Engineering
Einführung in Software Engineering
Einführung in Software Engineering
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
(5) Abhängigkeit der Anwender von Herstellern reduzieren<br />
(6) Werkzeugherstellern von der Unterstützung verschiedener Ansätze befreien<br />
f) UML Unified Model<strong>in</strong>g Language<br />
• Pros<br />
(1) Metamodell <strong>in</strong> Form von Klassendiagrammen legt rel. präzise die Syntax der<br />
unterstützten Diagrammarten fest<br />
• Pro/Con<br />
(1) Semantik der Diagrammarten wird (noch) weitgehend <strong>in</strong> Prosa erläutert, e<strong>in</strong>ige<br />
Konsistenzregeln werden <strong>in</strong> OCL (Object Constra<strong>in</strong>ed Language) def<strong>in</strong>iert<br />
• Cons<br />
(1) es gibt 10 Diagrammarten die teilweise gegene<strong>in</strong>ander Konkurieren<br />
(2) das Metamodell ist nahezu beliebig erweiterbar, was uns <strong>in</strong> Zukunft e<strong>in</strong>e Fülle von<br />
UML‐Dialekten mit entsprechenden Werkzeugen bescheren wird<br />
g) E<strong>in</strong>satz von UML <strong>in</strong> der Analysephase<br />
• Ausgangspunkt s<strong>in</strong>d Produktanforderungen des Kunden (entweder als Fließtext oder als<br />
strukturiertes Lastenheft<br />
• Ergebnis ist e<strong>in</strong> (erweitertes) Plichtenheft mit semiformalen Def<strong>in</strong>itionen der<br />
Produktfunktion und ‐daten als UML‐Diagramme<br />
• Umfang des UML‐E<strong>in</strong>satzes umstritten<br />
(1) UML‐Protagonisten<br />
(a) UML als visuelle/graphische Programmiersprache<br />
(b) erstelltes Analysemodell ist (als Prototyp) ausführbar (ausführbares<br />
Pflichtenheft)<br />
(2) UML‐Antagonisten<br />
(a) Pflichtenheft nur <strong>in</strong> strukturiertem Englisch/Deutsch geschrieben<br />
(b) graphische Sprachen wie UML erst <strong>in</strong> Designphase e<strong>in</strong>setzen<br />
h) Produktfunktionen und Anwendungsfälle<br />
• konkrete Beschreibung der Funktionen anhand von Fallbeispielen sog. Szenarien<br />
• Zusammenfassung ähnlicher Szenarien zu sog. Anwendungsfällen<br />
• Vorgehensweise:<br />
(1) Skizze konkreter Benutzungsszenarien mit Akteuren<br />
(2) Identifikation der Grenze zwischen <strong>Software</strong> und Reality<br />
(3) Skizze der zugehörigen Benutzeroberfläche<br />
(4) bilden von Anwendungsfällen – Use Cases<br />
(5) Überblick über Use‐Cases durch Use‐Case‐Diagramm<br />
• Bestimmung geeigneter Szenarien/ Anwendungsfälle<br />
(1) unterstreichen relevanter Verben im Lastenheft Szenario <br />
Anwendungsfalldiagramm 1.0<br />
(2) kenntlichmachen der <strong>Software</strong>aufgaben – Abgrenzung<br />
(3) Akteure zuordnen – „benutzt“ Beziehung<br />
(a) wenn zwischen Akteur und Use Case unidirektional Daten ausgetauscht werden<br />
erhält die Verb<strong>in</strong>dungsl<strong>in</strong>ie e<strong>in</strong>e Pfeilspitze<br />
(b) <strong>in</strong>teragieren mehrere Akteure mit e<strong>in</strong>em Anwendungsfall, ist nicht festgelegt<br />
was das bedeutet (meist: jeder Akteur darf ausführen aber auch: alle Akteure<br />
zusammen dürfen nur die Systemfunktion nutzen)<br />
(c) viele Beziehungen machen Diagramm unübersichtlich<br />
i) Weiter UML‐Verb<strong>in</strong>dungsbeziehungen<br />
• Vererbung (Owner erbt Rechte von Clerk) {Pfeil mit leerer Pfeilspitze}<br />
• extend<br />
(1) beschreibung von Sonderfällen e<strong>in</strong>es Anwenungsfalls separat<br />
(2) h<strong>in</strong>zufügen von Funktionalitäten zu Anwendungsfällen<br />
• <strong>in</strong>clude (use)