A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b...

20
A UML-Überblick Dieser Anhang gibt eine kompakte Übersicht über die im Buch benutzen UML- Diagramme und gibt Verweise, wo im Buch weitere Informationen stehen. Dabei ist die UML ein Hilfsmittel, um Entwicklungsentscheidungen systematisch zu dokumentieren. Generell gilt, dass man mit informellen Diagrammen beginnt und diese bei Bedarf, abhängig von der Entwicklungsphase, weiter verfeinert. Timer existierendes System Rolle Use Case-Diagramme (ab Seite 60) die- nen zur Beschreibung der Hauptaufga- ben des neu zu entwickelnden Systems. Sie werden aus Nutzersicht geschrieben. Ein Use Case beschreibt eine konkrete Aktor Aufgabe, weiterhin können dazu Akto- ren als Beteiligte der Aufgabe angege- ben werden. Dies sind typischerweise konkrete Nutzer in ihren Rollen, können aber auch Timer für zyklisch wieder- kehrende Aufgaben und externe Syste- me sein, die zur Aufgabenlösung integ- riert werden müssen. Use Cases werden mit Hilfe einer Schablone (Seite 63) syste- matisch dokumentiert. Um Gemeinsamkeiten oder Spezialfälle von Use Cases zu dokumentieren, können diese mit «include» und «extend» verknüpft werden (Seite 65). Aktivitätsdiagramme (ab Seite 10) erlau- ben die genaue Beschreibung von Abläu- fen, die z. B. in einer Software möglich sind. Sie sind Flussdiagrammen ver- wandt und relativ leicht auch für nicht IT-Experten lesbar. Die möglichen Ab- läufe werden durch Pfeile zwischen den Aktionen beschrieben. Es gibt Verzwei- gungsmöglichkeiten mit sich gegenseitig ausschließenden Bedingungen und die Möglichkeit, zu beschreiben, dass Aktionen parallel stattfinden können. Alternati- ven und parallele Abläufe werden durch das jeweils gleiche Symbol wieder zu einem Ablauf zusammengefasst. Im Beispiel finden nach der Startaktion entweder 351 S. Kleuker, Grundkurs Software-Engineering mit UML, DOI 10.1007/978-3-8348-9843-2, © Vieweg+Teubner Verlag I Springer Fachmedien Wiesbaden GmbH 2011

Transcript of A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b...

Page 1: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

A UML-Überblick

Dieser Anhang gibt eine kompakte Übersicht über die im Buch benutzen UML­Diagramme und gibt Verweise, wo im Buch weitere Informationen stehen. Dabeiist die UML ein Hilfsmittel, um Entwicklungsentscheidungen systematisch zudokumentieren. Generell gilt, dass man mit informellen Diagrammen beginnt unddiese bei Bedarf, abhängig von der Entwicklungsphase, weiter verfeinert.

Timer

existierendesSystem

Rolle

Use Case-Diagramme (ab Seite 60) die­nen zur Beschreibung der Hauptaufga­ben des neu zu entwickelnden Systems.Sie werden aus Nutzersicht geschrieben.Ein Use Case beschreibt eine konkrete

AktorAufgabe, weiterhin können dazu Akto-ren als Beteiligte der Aufgabe angege­ben werden. Dies sind typischerweisekonkrete Nutzer in ihren Rollen, könnenaber auch Timer für zyklisch wieder­kehrende Aufgaben und externe Syste­me sein, die zur Aufgabenlösung integ-riert werden müssen. Use Cases werden mit Hilfe einer Schablone (Seite 63) syste­matisch dokumentiert. Um Gemeinsamkeiten oder Spezialfälle von Use Cases zudokumentieren, können diese mit «include» und «extend» verknüpft werden(Seite 65).

Aktivitätsdiagramme (ab Seite 10) erlau­ben die genaue Beschreibung von Abläu­fen, die z. B. in einer Software möglichsind. Sie sind Flussdiagrammen ver­wandt und relativ leicht auch für nichtIT-Experten lesbar. Die möglichen Ab­läufe werden durch Pfeile zwischen denAktionen beschrieben. Es gibt Verzwei­gungsmöglichkeiten mit sich gegenseitigausschließenden Bedingungen und dieMöglichkeit, zu beschreiben, dass Aktionen parallel stattfinden können. Alternati­ven und parallele Abläufe werden durch das jeweils gleiche Symbol wieder zueinem Ablauf zusammengefasst. Im Beispiel finden nach der Startaktion entweder

351

S. Kleuker, Grundkurs Software-Engineering mit UML, DOI 10.1007/978-3-8348-9843-2, © Vieweg+Teubner Verlag I Springer Fachmedien Wiesbaden GmbH 2011

Page 2: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

A UML-Überblick

die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablaufterminiert, oder alternativ findet nach der Startaktion die Aktion 3 statt. Aktivi­tätsdiagramme können durch weitere sprachliche Elemente erweitert werden.

«Stereotyp»Klassenname

-exemplarvariable: Typ-klassenyarjable· Typ

+exemplarmethode(Parameter):Rückgabetyp+klassenmethode(Parameter):RückgabetYD

Verantwortlichkeiten

Klassen (ab Seite 89) sind der Kernder Objektorientierung. Ausgehendvon Klassen können Objekte gene­riert werden. In der UML steht imobersten Bereich der Klassenname,der durch einen Stereotypen (Seite65) ergänzt werden kann, der ge­nauer die Art der Klasse angibt. Imzweiten Teil stehen die Exemplarva­riablen (Seite 89) und Klassenvari­ablen (Seite 122), deren Sichtbarkeit und Typ angegeben werden kann. Im drittenBlock stehen die Exemplar- und Klassenmethoden, deren Sichtbarkeit, Parameter­listen und Typ des Rückgabewertes angegeben werden kann. Im unteren Teil, dermeist weggelassen wird, steht, wofür diese Klasse verantwortlich ist. Gerade beiKlassen gibt es viele Varianten für eine informelle und sehr formale Darstellung(Abb.45).

I RealiSierUng~ __ I.... I

--II

IVererbung ~Klassendiagramme (abSeite 91) beschreiben dasZusammenspiel zwischenKlassen. Diese werdentypischerweise als Assozia­tionen (Beziehungen) dar­gestellt. Für jede Assoziati-on ist ihr Name angebbar, Rollenna~e Beziehun sname +k2weiterhin kann für jede MultIplIzItat 0..1

beteiligte Klasse ihre Rolle in der Beziehung und die Anzahl der beteiligten Objek­te als Multiplizität (Seite 94) angegeben werden. Im Beispiel wird u. a. beschrieben,dass Objekte der Klasse Kl ein oder kein Objekt der Klasse K2 nutzen und dieseInformation in der Exemplarvariablen k2 festgehalten wird. Assoziationen könnendurch die Nutzung verschiedener pfeilspitzen (Abb. 62) präzisiert werden. FürVererbungen und die Realisierung von Interfaces (Schnittstellen) stehen speziellePfeilarten zur Verfügung. Kommentare können in allen UML-Diagrammen in ei­nem Kasten mit einem Eselsohr notiert werden. Neben informellen Kommentarenkönnen hier auch formale Randbedingungen stehen, die in der Object ConstraintLanguage (ab Seite 158) zu formalisieren sind.

352

Page 3: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

A UML-Überblick

1 :~2 1

I

1 Objektname:Klassenname 1

11

EinfacheSequenz­diagramme(ab Seite101) be-schreibendas dyna-mische Zusammenspiel zwischen Objekten, deren statische Beziehungen im Klas­sendiagramm festgehalten sind. Es können Methodenaufrufe mit Rückgabewertenin einer zeitlichen Reihenfolge dargestellt werden. Oben befinden sich die beteilig­ten Objekte, die mit unterstrichenem Namen und zugehöriger Klasse angegebenwerden können. Jedes Objekt hat eine von oben nach unten verlaufende Lebensli­nie, auf der Aktivitäten als Kästen andeutbar sind. Das Beispiel zeigt u. a. die Mög­lichkeit, auch Objekterzeugungen darzustellen.

~:objekterZeUgung

Objektname:Klassenname

1: rückgabewert= Jfmethode(Parameter) / /

Kommunikationsdiagramme(Seite 102) beschreiben wieSequenzdiagramme dasdynamische Zusammenspielzwischen Objekten, die hierals Kästen dargestellt wer­den. In Beziehung stehendeObjekte werden verbunden.Auf diesen Verbindungen wird die Abfolge der Methodenaufrufe beschrieben, dieReihenfolge wird durch die Nummerierung deutlich, dabei werden Teilnummernwie 1.1 verwendet, um zu verdeutlichen, dass es sich um einen Teilschritt des miteins nummerierten Aufrufs handelt. Einfache Sequenzdiagramme und Kommuni­kationsdiagramme können ineinander umgewandelt werden.

Strukturierte Sequenzdiagramme (abSeite 103) erlauben im Gegensatz zueinfachen Sequenzdiagrammen dieBeschreibung mehrerer Abläufe, da esErweiterungen für Alternativen undSchleifen gibt. Das Beispiel zeigt eineAlternative, deren Möglichkeitendurch eine gestrichelte Linie getrenntsind. Für alle Möglichkeiten werdenzugehörige Boolesche Bedingungenangegeben, die sich gegenseitig aus­schließen müssen.

1 01'K1 1 1 02'K2 11 03'K3 1

1 1 I

: x=mach(42)~: :1 1 I

alt )1 1 I1 1 I1 setMln(x) ~I I

[x>o] I I I~--------T--------r----~--

[else] : setMax~) ~:1 1 I1 1 I1 1 I

353

Page 4: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

!-_~ Startzustand Ij IEndzustand Ij"-

"-"-Zustandsname •Entry I ausgeführte Aktion beim Eintritt I

00 lausgeführte Aktion im ZustandExil! ausgeführte Aktion beim Verlassen off

EreignitsedingUngjl Aktion

hierarchischer Zustand Parallelkomposition

.-G save,~~"~)'~

/

f---------------

h2 ~~

A UML-Überblick

Zustandsdiagram-me (ab Seite 150)beschreiben dasdynamische Verhal­ten eines Objekts,das sich immer ineinem bestimmtenZustand befindet.Für jeden Zustandkann der Name, dieauszuführendeAktion beim Betre­ten, die auszufüh­rende Aktion wäh­rend des Verblei­bens und die auszu­führende Aktionbeim Verlassen desZustands angegeben werden. Ein Zustand wird verlassen, wenn ein Ereignis, z. B.ein Methodenaufruf, stattfindet und eine Bedingung erfüllt ist. Weiterhin ist eineauszuführende Aktion angebbar. Zustände sind hierarchisch gruppierbar (ab Seite153), was u. a. den Vorteil hat, dass alle Teilzustände mit einem Ereignis, im Bei­spiel save, verlassen werden können. In Parallelkompositionen (ab Seite 154) setztsich der Objektzustand aus den Teilzuständen jeder parallelen Komponente zu­sammen, die gemeinsam oder getrennt auf Ereignisse reagieren können.

Paketdiagramme (ab Seite 135) erlauben die Ordnung vonKlassen nach logischen und funktionalen Zusammenhängen.Die Klassen können als Text oder als Klassendiagramm imPaket angegeben werden. Grundsätzlich ist es sinnvoll, denPaketnamen immer ergänzend zum Klassennamen auch inden anderen Diagrammen anzugeben. Das Ziel der Paketzer­legung ist es u. a., dass es möglichst wenig Abhängigkeitenzwischen den Paketen gibt, die durch gestrichelte Pfeile dar­gestellt werden. Die Art der Abhängigkeit ist durch die An­gabe eines Stereotyps präzisierbar. Im Beispiel bedeutet dies,dass eine Klasse aus dem Paket "Paket" eine Klasse aus P2 inirgendeiner Form benötigt.

354

Paket IKlasseAKlasseB

\

\ .\ «Import»

P2 I ~J

Q:J~

Page 5: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

A UML-Überblick

Komponente2IR1

«componenl»Komponente

«provided Interfaces»IP1IP2

«required interfaces»IR1

«realizatiom>Klasse1Klasse2

«artifacts»komponente.jar

Komponentendiagramme (abSeite 144) beschreiben, wie dieeinzelnen Klassen und Pakete inmöglichst getrennt nutzbareKomponenten zerlegt sind. In derdetaillierten Darstellung wirdangegeben, welche Interfaces an­geboten und benötigt werden,welche Klassen zur Komponentegehören und welche Bausteine, z.B. Dateien, die Komponente um­fasst. In Komponentendiagrammen kann man auch die Verknüpfung von Kompo­nenten über Interfaces visualisieren. Dabei wird im Beispiel ein von Komponente2angebotenes Interface IR1, d. h. es gibt eine zugängliche Klasse der Komponente,die dieses Interface realisiert, in der Lollipop-Notation als Kreis mit Assoziationangegeben. Der Halbkreis bedeutet, dass eine Komponente eine andere Kompo­nente benötigt, die dieses Interface anbietet.

Verteilungsdiagramme (ab Seite 144) zeigen, wie das entwi­ckelte System auf der vorhandenen Hardware installiertwird. Dabei werden Rechner als dreidimensional dargestell­te Kästen angegeben, deren Aufgaben u. a. durch Stereoty­pen präzisierbar wird. Innerhalb der Kästen werden dieSoftwarebausteine, ausführbare Programme und weitere zuinstallierende Dateien, angegeben. Weiterhin kann die Artder Verbindung der Rechner in solch einem Diagramm spe­zifiziert werden.

/" /"

Rechnername

«executable»toll.jar

1./

ILAN/1Gbit

«database» JDBO

355

Page 6: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

B Beispiel für eine Entwicklungsumgebung

Dieser Anhang beschreibt eine Entwicklungsumgebung, mit der man die meistender in diesem Buch vorgestellten Entwicklungsschritte selbst systematisch nach­vollziehen kann. Dabei liegt der Schwerpunkt auf einer für Lernende frei verfüg­baren Umgebung, so dass kommerzielle Werkzeuge, die die Entwicklung unterbestimmten Randbedingungen noch vereinfachen, hier nicht betrachtet werden.Aktuelle Informationen sind auch über die Web-Seite des Buches erhältlich.

Ein erfolgreich in der Ausbildung genutzter Ansatz basiert auf der Eclipse­Plattform, die die Implementierung mit unterschiedlichen Programmiersprachen,besonders Java, aber auch C, C++ und PHP unterstützt. Weiterhin ist Eclipse durchso genannte Plugins erweiterbar, wodurch die Funktionalität weit über die einerreinen Programmentwicklungsumgebung auf Implementierungsebene hinausgeht.Folgende, nur beispielhaft ausgewählte Werkzeuge, können dabei genutzt werden.

Eclipse: Gibt es unter http://eclipse.org in verschiedenen Varianten zum Herunter-laden. Für Java-Entwickler kann die speziell für Java aufbereitete Basisversioneine gute Wahl sein, diese beinhaltet bereits Ant, XML-Bearbeitung, JUnit 3und JUnit 4. Bereits auf den Eclipse-Seiten gibt es einige Plugins, die sehr ein­fach entweder von Eclipse aus geladen werden können oder wie Eclipse selbstauch einfach durch Entpacken installiert werden. Interessante Beispiele sind:

CDT: http://www.eclipse.org/cdt/index.php, C/C++-Erweiterung, wobei beach­tet werden muss, dass die meisten Werkzeuge, die sich dann auf die UML­Nutzung beziehen, nicht für C++ funktionieren.

Visual Editor: http://www.eclipse.org/vep/WebContent/main.php, ist ein GUI­Builder, mit dem man Oberflächen per Drag-and-Drop zusammenstellenkann. Generell gilt, dass man erst die Erstellung von GUIs mit Java erlernthaben sollte, bevor man sich mit diesem interessanten Ansatz beschäftigt,man beachte, dass es einige Abhängigkeiten zu zusätzlich benötigten Plug­ins gibt.

TPTP: http://www.eclipse.org/tptp/.Test&PerformanceToolsPlatform.Er-laubt verschiedene Ansätze zur Performancemessung.

Leider gibt es zur UML-Modellierung nicht das eine Plugin, das alle möglichenNutzungsmöglichkeiten der UML unterstützt. Dies ist ein zentraler Punkt, bei demkommerzielle Werkzeuge Vorteile bieten. Folgende Plugins wurden mit kleinenEinschränkungen bereits erfolgreich in der Ausbildung genutzt:

UMLet: http://www.umlet.com/. dient zum schnellen Zeichnen von UML­Diagrammen. Nach kurzer Einarbeitung intuitiv nutzbar, viele der UML-

357

S. Kleuker, Grundkurs Software-Engineering mit UML, DOI 10.1007/978-3-8348-9843-2, © Vieweg+Teubner Verlag I Springer Fachmedien Wiesbaden GmbH 2011

Page 7: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

B Beispiel für eine Entwicklungsumgebung

Abbildungen dieses Buches sind mit dem Werkzeug erstellt worden. Außer,dass die Dateien von Eclipse aus bearbeitet werden können, hat dieses Werk­zeug aber keine Verbindung zu Eclipse, es können z. B. keine Klassen eingele­sen oder generiert sowie Sequenzdiagramme automatisiert erstellt werden.

Amateras: http://amateras.sourceforge.jp/cgi-bin/fswiki_en/wiki.cgi?page=AmaterasUML, unterstützt u. a. keine Zustandsdiagramme, erlaubt aberdas Einlesen von Klassen und das Erzeugen von Programmskeletten, wobeidiese beim erneuten Erzeugen überschrieben werden. Ein interessantes Pro­gramm, um mit Klassendiagrammen und dem Generieren und Erzeugen zuspielen. Für professionelle Projekte noch nicht geeignet, aber sehr interessanterKandidat. Der Quellcode ist nur auf japanisch kommentiert.

EclipseUML: http://www.omondo.de/. ein kommerzielles UML-Werkzeug, vondem es eine freie Variante gibt, die leider nicht von Projektgruppen genutztwerden kann. Für einzelne Lernende gut geeignet, um mit den unterschiedli­chen UML-Diagrammen zu arbeiten und eine Möglichkeit zur sehr engenKopplung zwischen Klassendiagrammen und Quellcode kennen zu lernen.

Die folgenden Plugins erlauben es weiterhin, einige technische Erfahrungen mitden im Buch vorgestellten Ideen zu sammeln.

Metrics: http://metrics.sourceforge.net/, erlaubt die Berechnung vieler Metriken,dabei können Prüfgrenzen für die Werte gesetzt werden.

Eclemma: http://www.eclemma.org/, berechnet die CO-Überdeckung während derAusführung des Programms, hat kleine Schwierigkeiten mit Zeilen, die nichtausgeführt werden, aber auch nicht in der CO-Berechnung zu berücksichtigensind, wie import-Zeilen und Klassenanfänge.

Subversive: http://www.eclipse.org/subversive/, ermöglicht die Nutzung des Ver­sionsmanagementwerkzeugs Subversion (http://subversion.tigris.org/), das füreinzelne Entwickler und Entwicklergruppen ein leicht zu bedienendes sehrmächtiges Werkzeug ist, das auch in Großprojekten eingesetzt wird.

Checkstyle: http://eclipse-cs.sourceforge.net/, erlaubt die automatische Überprü­fung von Coding-Guidelines, enthält bereits eine Menge von Regeln, die indi­viduell angepasst und erweitert werden kann.

FindBugs: http://findbugs.sourceforge.net/, ist ein Analyseprogramm zur stati­schen Codeanalyse, um typische mögliche Fehlerquellen wie NullPointerEx­ceptions aufzuspüren.

Für Eclipse gibt es eine sehr große Menge von Plugins. Hilfreich für einen Über­blick kann http://eclipseplugincentral.com sein, da hier die meisten Plugins be­schrieben und ihre Quellen erreichbar sind.

Eine ernsthafte Alternative zu Eclipse mit UML-Unterstützung stellt Netbeans vonSun (http://www.netbeans.org) dar, das ebenfalls frei genutzt werden kann und fürdas sehr viele kontinuierlich verbesserte Plugins zur Verfügung stehen.

358

Page 8: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

Literaturverzeichnis

[A097]

[BABOO]

[BalOO]

[Bal96]

[Ba198]

[BarOO]

[BCM90]

[BecOO]

[Bec06]

[Be103]

[BF01]

[BMM98]

[Böh06]

[BT03]

[Bur02]

K R. Apt, K-R. Olderog, Verification of Sequential and ConcurrentPrograms, 2. Auflage, Springer, New York Berlin Heidelberg, 1997

B. W. Boehm, C. Abts, A. W. Brown et al., Software Cost Estimationwith Cocomo 11, Prentice Hall PTR, Upper Saddle River, New Jersey,USA, 2000

H. Balzert, Lehrbuch der Software-Technik: Software-Entwicklung, 2.Auflage, Spektrum Akademischer Verlag, Heidelberg Berlin Oxford,2000

H. Balzert, Objektorientierte Systemanalyse, Spektrum AkademischerVerlag, Heidelberg Berlin Oxford, 1996

H. Balzert, Lehrbuch der Software-Technik: Software-ManagementSoftware-Qualitätssicherung Unternehmensmodellierung, SpektrumAkademischer Verlag, Heidelberg Berlin Oxford, 1998

S. Bartsch-Beuerlein, Qualitätsmanagement in IT-Projekten, Hanser,München Wien, 2000

J.R. Burch, KM. Clarke, KL. McMillan, D.L. Dill, L.J. Hwang. SymbolicModel Checking: 1020 States and Beyond, Proceedings of the 5th An­nual Symposium on Logic in Computer Science, Seiten 428-439, 1990.

K Beck, Extreme Programming, Addison-Wesley, München, 2000

K Beck, JUnit die Chance geben, ein wenig länger zu leben, Javamaga­zin 08/06, Seiten 23-24, 2006

M. Belbin, Team Roles at Work, Elsevier LTD, Oxford, 2003

M. Bundschuh, A. Fabry, Aufwandsschätzung in IT-Projekten, 2. Auf­lage, mitp, Bonn, 2001

W. J. Brown, R. C. Malveau, H. W. McCormick III, T. J. Mowbray, AntiPatterns, John Wiley & Sons, USA, 1998

O. Böhm, Aspektorientierte Programmierung mit AspectJ 5, dpunkt,Heidelberg, 2006

B. Boehm, R. Turner, Balancing Agility and Discipline, Addison­Wesley, USA, 2003

M. Burghardt, Projektmanagement - Leitfaden für die Planung, Über­wachung und Steuerung von Entwicklungsprojekten, 6. überarbeiteteAuflage, Publicis Corporate Publishing, Erlangen, 2002

359

S. Kleuker, Grundkurs Software-Engineering mit UML, DOI 10.1007/978-3-8348-9843-2, © Vieweg+Teubner Verlag I Springer Fachmedien Wiesbaden GmbH 2011

Page 9: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

Literaturverzeichnis

[CES86]

[Che76]

[CMM06]

[ColO1]

[ColO2]

[CZ05]

[DatOO]

[DeM98]

[DeM01]

[DemOO]

[DIN04]

[DL03]

[ECL07]

[EMD 97]

[EL07]

[ErlO3]

[ES04]

[Fow99]

[FS04]

360

E.M. Clarke, E.A. Emerson, A.P. Sistla, Automatic Verification of Fini­te-State Concurrent Systems Using Temporal Logic Specifications,ACM Transactions on Programming Languages and Systems, 8(2), Sei­ten 244-263, April 1986.

P. Chen, The Entity-Relationship Model- Towards a Unified View ofData, in: ACM Transactions on Database Systems, Band I, Nr. I, Seiten9-36,1976

CMMI Product Team, CMMI for Development, Improving processesfor better products, Version 1.2, CMU/SEI-2006-TR-008, Carnegie Mel­Ion University, 2006

J. Coldewey, eXtreme Hyping, Objektspektrum, Nr. 3, 2001

J. Coldewey, Multi-Kulti: Ein Überblick über die agile Entwicklung,Objektspektrum, Nr. I, 2002

Softwareentwicklung läuft nicht auf Zuruf, Computer Zeitung, Nr. 46,14.11.2005

c.J. Date, Great News, The Relational Modells Very Much Alive,http://www.dbdebunk.com. August 2000

T. DeMarco, Der Termin, Hanser, München Wien, 1998

T. DeMarco, Spielräume - Projektmanagement jenseits von Burn-out,Stress und Effizienzwahn, Hanser, München Wien, 2001

W. E. Deming, Out of the Crisis, B&T, USA, 2000

DIN Deutsches Institut für Normung e. V., Qualitätsmanagement­Verfahren, DIN-Taschenbuch 226, Beuth, Berlin Wien Zürich, 2007

T. DeMarco, T. Lister, Bärentango - Mit Risikomanagement Projektezum Erfolg führen, Hanser, München Wien, 2003

http://www.eclipse.org

K. EI Emam (Hrsg.), W. Melo (Hrsg.), J.-N. Drouin (Hrsg.), SPICE: TheTheory and Practice of Software Process Improvement and CapabilityDetermination, John Wiley & Sons, New York, 1997

W. Eberling, J. Lessner, Enterprise JavaBeans 3, Hanser, MünchenWien, 2007

H. Erlenkötter, XML, Rowohlt Taschenbuch Verlag, Reinbek, 2003

K. Eilebrecht, G. Starke, Patterns kompakt, Spektrum AkademischerVerlag, Heidelberg Berlin, 2004

M. Fowler, Refactoring: Improving the Design of Existing Code, Addi­son-Wesley, USA, 1999

H. R. Friedag, W. Schmidt, Balanced Scorecard, Haufe, Planegg, 2004

Page 10: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

[Gad03]

[GHJ95]

[Gru05]

[Har87]

[Hen96]

[HL03]

[HMG05]

[Hoa69]

[Ho104]

[Hum97]

[HumOO]

[Jav07]

[Jon91]

[JR03]

[KEP05]

[KK06]

[Kle06]

[Kne02]

[Kru04]

[Lar05]

[Let07]

Literaturverzeichnis

A. Gadatsch, Grundkurs Geschäftsprozess-Management, 3. Auflage,Vieweg, Wiesbaden, 2003

E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns - Ele­ments of Reusable Object-Oriented Software, Addison-Wesley, USA,1995

U. Grude, Java ist eine Sprache, Vieweg, Wiesbaden, 2005

D. Harel, Statecharts: A Visual Formalism for Complex Systems, Sci­ence of Computer Programming, Nr. 8, Seiten 231-274,1987

B. Henderson-Sellers, Object-Oriented Metrics, Measures of Complex­ity, Prentice Hall, USA, 1996

E. Hatcher, S. Loughran, Java Development with Ant, Manning,Greenwich, 2003

C. Heinisch, F. Müller, J. Goll, Java als erste Programmiersprache, 4.Auflage, Teubner, Wiesbaden, 2005

C. A. R. Hoare, An axiomatic basis for computer programming, Com­munications of the ACM, Nr. 12, Seiten 576-583, 1969

G. Holzmann, The SPIN model checker, Addison-Wesley - PearsonEducation, Boston, 2004

W. S. Humphrey, Introduction to the Personal Software Process, Addi­son-Wesley, USA, 1997

W. S. Humphrey, Introduction to the Team Software Process, Addi­son-Wesley, USA, 2000

http://java.sun.com/reference/api/

C. Jones, Applied Software Measurement, McGraw-Hill, USA, 1991

D. Jordan, c. Russell, Java Data Objects, O'Reilly, USA, 2003

S. Kleuker, R. Ebrahim-Pour, Ein pragmatischer Ansatz zur individuel­len Integration von IT-Risikomanagement in Unternehmen, Ar­beitspapiere der NORDAKADEMIE, Nr. 2005-01, Elmshorn, 2005

M. Klar, S. Klar, Einfach Generieren, Hanser, München Wien, 2006

S. Kleuker, Grundkurs Datenbankentwicklung, Vieweg, Wiesbaden,2006

R. Kneuper, CMMI, dpunkt, Heidelberg, 2002

P. Kruchten, The Rational Unified Process, 2. Auflage, Addison­Wesley, USA, 2004

G. Larman, UML 2 und Patterns angewendet, mitp, Bonn, 2005

http://www.umlet.com/

361

Page 11: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

Literaturverzeichnis

[Lig02]

[Lin05]

[Mar03]

[Mec05]

[Mer04]

[Mya07]

[ND81]

[Nie04]

[NR69]

[Oes04]

[Olb04]

[OLW07]

[OWS03]

[Pnu77]

[RC02]

[Rup02]

[Sch03]

[Sch04]

[Sne87]

362

P. Liggesmeyer, Software-Qualität. Testen, Analysieren und Verifizie­ren von Software, Spektrum Akademischer Verlag, Heidelberg BerlinOxford, 2002

J. Link, Softwaretests mit JUnit, 2. Auflage, dpunkt, Heidelberg, 2005

R. C. Martin, Agile Software Development, Principles, Patterns andPractices, Prentice Hall, USA, 2003

R. Mecklenburg, GNU make, O'Reilly, Köln, 2005

E. Merker, Grundkurs Java-Technologien, Vieweg, Wiesbaden, 2004

A. Myatt, Pro NetBeans IDE 5.5 Enterprise Edition, Apress, USA, 2007

K. Nygaard, O.-J. Dahl, The Development of the Simula Languages, inHistory of Programming Languages, R. Wexelblat (Hrsg.), AcademicPress, USA, 1981

J. Nielsen, Designing Web Usability, dtsch. Ausg., Markt und Technik,2004

P. Naur, B. Randell (Editoren), Software Engineering, Proc. Nato Wor­king Conference Oct. 1968, 1969

B. Oestereich, Analyse und Design mit UML 2, 7. Auflage, Olden­bourg, München, 2004

A. Olbrich, ITIL kompakt und verständlich, Vieweg, Wiesbaden, 2004

R. Oates, T. Langer, S. Wille, T. Lueckow, G. Bachlmayr, Spring & Hi­bernate, Hanser, München, Wien, 2007

B. Oestereich, C. Weiss, C. Schröder, T. Weilkiens, A. Lenhard, Objekt­orientierte Geschäftsprozessmodellierung mit der UML, dpunkt, Hei­delberg, 2003

A. Pnueli, The Temporal Logic of Programs, Proceedings of the 18thIEEE Symposium on Foundations of Computer Science, Seiten 46-57,1977

M.B. Rosson, J.M. Carrol, Usability Engineering, Morgan Kaufmann,USA, 2002

C. Rupp, SOPHIST GROUP, Requirements-Engineering und -Manage­ment, 2. Auflage, Hanser, München Wien, 2002

J. Schwab, Projektplanungen realisieren mit MS Project 2003 und Pro­ject Server 2003, Hanser, München Wien, 2003

U. Schöning, Logik für Informatiker, 5. Auflage, Spektrum Akademi­scher Verlag, Heidelberg Berlin Oxford, 2004

H. M. Sneed, Software-Management, Müller, Köln, 1987

Page 12: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

[SP05]

[SRS04]

[Sti99]

[Str94]

[Sun97]

[Sun07]

[Tha01]

[TNG07]

[Tuc65]

[Tür03]

[USH06]

[Ver03]

[VM05]

[VOJ02]

[VW04]

[W3C07]

[Wa101]

[Wa104]

Literaturverzeichnis

B. Shneiderman, C Plaisant, Designing The User Interface, 4. Auflage,Addison-Wesley, USA, 2005

F. Schulz von Thun, J. Ruppel, R. Stratmann, Miteinander Reden:Kommunikationspsychologie für Führungskräfte, 2. Auflage, Rowohlt,Reinbek, 2003

H. Stienen, Nach CMM und BOOTSTRAP: SPICE. Die neue Norm fürProzessbewertungen, INFORMATIK/ INFORMATIQUE, Zeitschriftder schweizerischen Informatik Organisation, 6/1999

B. Stroustrup, The Design and Evolution of CH, Addison-Wesley,USA, 1994.

http://java.sun.com, Java Code Conventions, 1997

http://www.netbeans.org

G. E. Thaller, ISO 9001:2000,3. Auflage, Heise, Hannover, 2001

http://testng.org

B. W. Tuckman, Developmental Sequence in Small Groups, Psycho­logical Bulletin, Nr. 63, Seiten 384-399, 1965

C Türker, SQL:1999 & SQL:2003, dpunkt, Heidelberg, 2003

U.S. Department of Health and Human Services (HHS), US. GeneralServices Administration, Research-Based Web Design & UsabilityGuideline, erhältlich unter http://usability.gov/guidelines/index.html,2006

G. Versteegen (Hrsg.), Risikomanagement in IT-Projekten, Springer,Berlin Heidelberg, 2003

http://www.kbst.bund.de/-.279N-Modell.htm. Das neue V-Modell®XT - Der Entwicklungsstandard für IT-Systeme des Bundes, Stand Juni2005

CF. Vasters, A. Oellers, B. Javidi, J.M. Freiberger, B.A. DePetril­10, .NET-Crashkurs, 2. Auflage, Microsoft Press, Unterschleißheim,2002

G. Vossen, K.-U Witt, Grundkurs Theoretische Informatik, 3. Auflage,Vieweg, Wiesbaden, 2004

http://www.w3.org

E. Wallmüller, Software-Qualitätsmanagement in der Praxis, 2. Aufla­ge, Hanser, München Wien, 2001

E. Wallmüller, Risikomanagement für IT- und Software-Projekte, Han­ser, München Wien, 2004

363

Page 13: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

Literaturverzeichnis

[Wa107] E. Wallmüller, SPI - Software Process Improvement mit CMMI,PSP/TSP und ISO 15504, Hanser, München Wien, 2007

[WJB07] P. Watzlawick, J. H. Beavin, D. D. Jackson, Menschliche Kommunika­tion, 11. Auflage, Huber, Bern, 2007

[WK02] J. Warner, A. Kleppe: The Object Constraint Language, Addison­Wesley, USA, 2002

[WK06] G. Wolmeringer, T. Klein, Profikurs Eclipse 3, Vieweg, Wiesbaden,2006

[WKB04] J. Warner, A. Kleppe, W. Bast, MDA Explained, Addison-Wesley,USA,2004

[WVS83] P. Wolper, M. Y. Vardi, A. P. Sistla, Reasoning about infinite computa­tion paths, Proceedings of the 24th IEEE Symposium on Foundationsof Computer Science, Tuscan, IEEE Press, Seiten 185-194,1983

364

Page 14: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

Sachwortverzeichnis

«include» 134

«uses» 134

4+I-Sichten 140

Abhängigkeit 134

Abnahmetest 284

Abstract Factory Pattern 184

abstrakte Klasse 100

Adapter-Pattern 181

Aggregation 130

Agiles Manifest... 42

Aktion 11,351

aktive Objekte 143

Aktivitätsbox 102

Aktivitätsdiagramm l0, 141, 351

Objektfluss 12

Parallelität 12

Verfeinerung 16

Aktor 60, 351

Analysemodell 91

analytische Qualitätssicherung 293

Änderbarkeit 79

Änderungsmanagement 315

Anforderung

in Textform 71

nicht-funktional 77

Anforderungsanalyse 25, 51

Anforderungsschablone 73

Anforderungstracing 74, 90

Anforderungsverfolgung 112

Annotation 265

Ant 311

Anweisungsüberdeckung 279

Anwendungsfall... Siehe Use Case

Appell 344

Applikationsserver 210

Äquivalenzklassenmethode 269

Arbeitswissenschaft 238

Armani-Gang 334

Assoziation 92, 352

Eigenschaftsklasse 159

Rollenname 97

asynchroner Aufruf 207

atomarer Bereich 206

Attribut Siehe Exemplarvariable

Aufgabenangemessenheit 240

Aufwandsschätzung 51, 322

Aufzählungstyp 100

auschecken 308

Ausnahme 260

Ausnahmebehandlung 259

Automat 150

Balanced Scorecard 288

Batch-Datei 311

Benutzbarkeit. 79

Beweissystem 253

Beziehung 344

365

S. Kleuker, Grundkurs Software-Engineering mit UML, DOI 10.1007/978-3-8348-9843-2, © Vieweg+Teubner Verlag I Springer Fachmedien Wiesbaden GmbH 2011

Page 15: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

Sachwortverzeichnis

Bibliothek 212

Binärdatei 224

Black-Box-Test 277, 284

Boundary-Klasse 110

Build-Management 310

Business Use Case 62

C++ 2

CO-Überdeckung 279

C1-Überdeckung 279

C2-Überdeckung 280

C3-Überdeckung 281

Capability Maturity Model 335

Capability Maturity ModelIntegrated 335

Capture-and-Replay 287

CASE 119

CIM 228

Client-Server-System 209

cloneO 133

CMM 335

CMMI 335

continuous 338

staged 338

CoCoMo 11 326

Collection 128

Composite-Pattern 201

Computer Aided Software-Engineering 119

Computer Independent ModeL.. 228

Container 128

Control-Klasse 95

Daumen Drauf 322

Deadlock 207

366

Decorator-Pattern 181

Default-Konstruktor 214

defensives Programmieren 254

Delegation 174

Deployment-Diagramm 142

Design by Contract 184

Design Pattern 174

Dialogprinzipien 239

Domain Specific Languages 227

Drei-Schichten-Architektur... 136,210

DRY-Prinzip 168

DSL 227

Durchstich 28

dynamische Polymorphie 171

einchecken 308

einf. Bedingungsüberdeckung 280

EJB 218

End-Tag 211

Enterprise Java Beans 218

Entity-Klasse 89

Entscheidungspunkte 37

Entwicklungsumgebung 119

Entwurfsmuster . Siehe Design Pattern

Enumeration 100

Erwartungskonformität 241

Exception-Handling 155

Exemplarmethode 352

Exemplarvariable 89, 352

Existenzabhängigkeit 133

extend 66

Extreme Programming 46

Fairness 208

Page 16: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

Fassade-Pattern 183

Fat-Client 209

Fehlertoleranz 243

Feindesign 25

Fertigstellungsgrad 321

formale KorrektheiL 252

forming 341

Framework 217

Function Point 324

Gantt-Diagramm 319

gedächtnisloses Objekt 149

generische Klasse 129

Geschäftsprozess 7, 334

Gestaltungspsychologie 237

Glass-Box-Test .. Siehe White-Box-Test

globale Klasse 137

Glossar 64

GRASP-Pattern 168

Gray-Box-Test 284

Grenzwertanalyse 271

Grobdesign 25, 87

GUI Siehe Oberfläche

GUI/Builder 213

heuristische Evaluation 246

Homonym 90

Identität 89

Implementierung 25

include 65

Individualisierbarkeit 243

Inkrement 30

Inspektion 294

Instanzvariable SieheExemplarvariable

Sachwortverzeichnis

Integrationstest 31, 283

Interface 131

ISO 9000-Normen-Famile 339

iterative Entwicklung 29

iterativ-inkrementelle Entwicklung.........................................................30

ITIL 339

jar-Datei 143

Java Beans 214

JDBC 224

JUnit 258

Kapselung 91

KISS 168

Klasse 89, 352

abstrakte 100

Klassendiagramm 91, 352

Klassenmethode 122, 352

Klassentest 283

Klassenvariable 122, 352

Kollaboration 194

Kommentar 66, 352

Kommunikationsdiagramm .102, 141,353

Kommunikationsquadrat 343

Komponente 143, 213

Komponentendiagramm 142, 144,355

Komponententest 31

Komposition 133

Konfigurationsmanagement. 314

konstruktive Qualitätssicherung .. 293

Konstruktor 96

Default-Werte 171

Kontrollflussgraph 277

367

Page 17: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

Sachwortverzeichnis

Korrektheit 78, 251

Krisenmanagement 344

kritischer Projektpfad 317

Kurzschlussauswertung 280

Lack of Cohesion in Methods 291

Lastenheft 81

Lasttest 287

LCOM* 291

leere Referenz 127

Lernförderlichkeit.. 244

Liskovsches Prinzip 171

Lollipop 132

make 311

Maßzahl 288

McCabe-Zahl 290

MDA 228

Meilenstein 26, 319

Metakommunikation 345

Metamodell 43

Methode 95

Metrik 288

Middleware 88

minimale Mehrfachüberdeckung .281

Mock 266

Model Checking 252

Model Driven Architecture 228

Model-View-Controller-Pattern 174

Multiplizität... 92, 94, 352

Multiprojektmanagement 318

MVC 174

Namenskonvention 230

namespace 139

368

Netzplantechnik 318

nicht-funktionale Anforderung 77

Nominalisierung 72

norming 341

Notfallplanung 18

Null-Wert 127

Nutzbarkeit 237

Nutzerbefragung 247

Oberfläche 109

Gestaltung 112

Zustandsdiagramm 158

Oberflächendesign

Checkliste 247

Oberflächen-Klasse 110

Oberflächentests 287

Oberklasse 100

Object Constraint Language .149, 158,352

Objekt 89

Lebenslinie 102

Zustand 95

zustandsbehaftet 150

zustandslos 149

Objektfunktion 95

Observer-Pattern 180

OCL 149,158,352

Operation 95

package 139

Paket 135

vollqualifizierter Name 136

Paketdiagramm 135, 354

Pattern 167

Variationsmöglichkeiten 179

Page 18: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

Performance 204

performing 341

Persistance-Mapper 226

persistente Daten 222

Persistenzframework 88

Personal Software Process 338

Pfadüberdeckung 279

Pflichtenheft 81

PIM 228

Platform Independent Model 228

Platform Specific Model 228

Polymorphie 100

dynamisch 171

Portierbarkeit 79

private 92

proaktives Risikomanagement 18

product backlog 45

Projekt-Logbuch 321

Projektmanagement 315

Projektplan 317

protected 100

Prototyp 45

prototypische Entwicklung 27

Proxy-Pattern 188

Prozess 9, 333

Prozessschritt 9

Prüfbarkeit 79

PSM 228

PSP 338

Qualitätsmaß 79

Qualitätsmerkmal 77

Qualitätssicherung 25,251

Sachwortverzeichnis

Race 208

Rational Unified Process 39

reaktives Realzeitsystem 155

reaktives Risikomanagement 18

reaktives System 151

Refactoring 230

Reflection 217

Regressionstest 286

Release-Management 315

Remote-Method-Invocation 206

Repository 307

Review 297

Risiko 17

Risikomanagement 17

RMI 206

Robustheit 78

Rolle 7

Round-Trip-Engineering 120

RUP 39

Sachinhalt 343

Safety 204

Sammlung 128

Schätzkonferenz 322

Schicht 136

Schnittstelle Siehe Interface

Scrum 45

Security 205

Seiteneffekt.. 168

Selbstbeschreibungsfähigkeit 240

Selbstkundgabe 343

Sequenzdiagramm 101, 141,353

Lebenslinie 102

369

Page 19: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

Sachwortverzeichnis

strukturiert 103, 353

Shell-Skript 311

Sicherheit 78, 204, 205

Sichtbarkeit 91, 187

Signal 156

Simula 2

Singleton-Pattern 187

Skins 238

Softskills 340

Software-Engineering 2

Definition 4

Software-Ergonomie 238

Software-Familie 113

Software-Krise 2

soziales Projektumfeld 340

Spezifikationslöcher 26

SPICE 339

Spring-Framework 218

sprint-backlog 45

Stakeholder. 52, 60

Stammdaten 60

Standard Template Library 212

Stand-Up-Meeting 44

Start-Tag 211

State-Chart 152

Stereotyp 65, 352

Steuerbarkeit 241

Steuerungsklasse 95

STL 212

storming 341

Strategy-Pattern 190

Stub 266

370

SUT 256

synchroner Aufruf 206

Synonym 90

System under Test.. 256

System Use Case 62

Systemarchitektur 87

Systemtest... 32, 284

Task-Based Testing 248

Tayloring 33,38

Test

Durchführung 257

Ergebnis 257

Vorbedingung 256

Test und Integration 25

Testfall 251, 256

Test-Fixture 258

TestNG 266

Teststrategie 266

TestSuite 263

Theorem-Beweiser 253

Thin-Client 209

Thinking-Aloud-Test 248

Thread 141

Tool-Suite 119

Tracing 112

Transaktion 206

transiente Daten 222

Transition 150

Umkehr von Abhängigkeiten 139

UML 3,351

Klassendarstellung 99

Kommentar 66

Page 20: A UML-Überblick - Springer978-3-8348-9843-2/1.pdf · A UML-Überblick die Aktionen 2a und 2b statt, die beide beendet sein müssen, bevor der Ablauf terminiert, oder alternativ findet

realisiert-Pfeil 130

Unified Method 39

Unified Modeling Language 3

Unit-Test... .47, 257, 283

Use Case 60

Schablone 63

Use Case Diagramm 59, 351

Validierung 104,251

vereinfachter Analogieschluss 328

Vererbung 100

Verfolgung von Änderungen 113

Verfügbarkeit 78

Verifikation 252

Versionsmanagement 306

Verteilungsdiagramm 144, 355

V-Modell 31

Aktivität 35

V-Modell 92 32

V-Modell 97 32

V-Modell XT.. 33

Sachwortverzeichnis

Vorgehensmodell 3

agil 42

Walkthrough 297

Wasserfall 26

WBS 316

White-Box-Test 277,284

Work-Breakdown-Structure 316

XML 210

XML-Element.. 211

XP 46

YAGNI 168

Ziel eines Projekts 56

Zustand 150

Zustandsdiagramm 141, 150,354

GUI-Steuerung 158

Zuverlässigkeit 78

Zweigüberdeckung 279

zyklische Abhängigkeit... 136

zyklomatische Zahl 290

371