Upload
danghanh
View
214
Download
0
Embed Size (px)
Citation preview
A UML-Überblick
Dieser Anhang gibt eine kompakte Übersicht über die im Buch benutzen UMLDiagramme 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) dienen zur Beschreibung der Hauptaufgaben 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 angegeben werden. Dies sind typischerweisekonkrete Nutzer in ihren Rollen, könnenaber auch Timer für zyklisch wiederkehrende Aufgaben und externe Systeme sein, die zur Aufgabenlösung integ-riert werden müssen. Use Cases werden mit Hilfe einer Schablone (Seite 63) systematisch 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) erlauben die genaue Beschreibung von Abläufen, die z. B. in einer Software möglichsind. Sie sind Flussdiagrammen verwandt und relativ leicht auch für nichtIT-Experten lesbar. Die möglichen Abläufe werden durch Pfeile zwischen denAktionen beschrieben. Es gibt Verzweigungsmöglichkeiten mit sich gegenseitigausschließenden Bedingungen und dieMöglichkeit, zu beschreiben, dass Aktionen parallel stattfinden können. Alternativen 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
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. Aktivitä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 generiert werden. In der UML steht imobersten Bereich der Klassenname,der durch einen Stereotypen (Seite65) ergänzt werden kann, der genauer die Art der Klasse angibt. Imzweiten Teil stehen die Exemplarvariablen (Seite 89) und Klassenvariablen (Seite 122), deren Sichtbarkeit und Typ angegeben werden kann. Im drittenBlock stehen die Exemplar- und Klassenmethoden, deren Sichtbarkeit, Parameterlisten 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 Assoziationen (Beziehungen) dargestellt. 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 Objekte 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 einem 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
A UML-Überblick
1 :~2 1
I
1 Objektname:Klassenname 1
11
EinfacheSequenzdiagramme(ab Seite101) be-schreibendas dyna-mische Zusammenspiel zwischen Objekten, deren statische Beziehungen im Klassendiagramm festgehalten sind. Es können Methodenaufrufe mit Rückgabewertenin einer zeitlichen Reihenfolge dargestellt werden. Oben befinden sich die beteiligten Objekte, die mit unterstrichenem Namen und zugehöriger Klasse angegebenwerden können. Jedes Objekt hat eine von oben nach unten verlaufende Lebenslinie, auf der Aktivitäten als Kästen andeutbar sind. Das Beispiel zeigt u. a. die Möglichkeit, auch Objekterzeugungen darzustellen.
~:objekterZeUgung
Objektname:Klassenname
1: rückgabewert= Jfmethode(Parameter) / /
Kommunikationsdiagramme(Seite 102) beschreiben wieSequenzdiagramme dasdynamische Zusammenspielzwischen Objekten, die hierals Kästen dargestellt werden. 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 Kommunikationsdiagramme 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 ausschließ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
!-_~ 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 Verhalten eines Objekts,das sich immer ineinem bestimmtenZustand befindet.Für jeden Zustandkann der Name, dieauszuführendeAktion beim Betreten, die auszuführende Aktion während des Verbleibens und die auszufü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 Beispiel save, verlassen werden können. In Parallelkompositionen (ab Seite 154) setztsich der Objektzustand aus den Teilzuständen jeder parallelen Komponente zusammen, 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 Paketzerlegung ist es u. a., dass es möglichst wenig Abhängigkeitenzwischen den Paketen gibt, die durch gestrichelte Pfeile dargestellt werden. Die Art der Abhängigkeit ist durch die Angabe 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~
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 angeboten und benötigt werden,welche Klassen zur Komponentegehören und welche Bausteine, z.B. Dateien, die Komponente umfasst. In Komponentendiagrammen kann man auch die Verknüpfung von Komponenten ü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 Komponente benötigt, die dieses Interface anbietet.
Verteilungsdiagramme (ab Seite 144) zeigen, wie das entwickelte System auf der vorhandenen Hardware installiertwird. Dabei werden Rechner als dreidimensional dargestellte Kästen angegeben, deren Aufgaben u. a. durch Stereotypen 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 spezifiziert werden.
/" /"
Rechnername
«executable»toll.jar
1./
ILAN/1Gbit
«database» JDBO
355
B Beispiel für eine Entwicklungsumgebung
Dieser Anhang beschreibt eine Entwicklungsumgebung, mit der man die meistender in diesem Buch vorgestellten Entwicklungsschritte selbst systematisch nachvollziehen kann. Dabei liegt der Schwerpunkt auf einer für Lernende frei verfügbaren 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 EclipsePlattform, 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 einfach 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 beachtet werden muss, dass die meisten Werkzeuge, die sich dann auf die UMLNutzung beziehen, nicht für C++ funktionieren.
Visual Editor: http://www.eclipse.org/vep/WebContent/main.php, ist ein GUIBuilder, 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 Plugins 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 UMLDiagrammen. 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
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 Werkzeug aber keine Verbindung zu Eclipse, es können z. B. keine Klassen eingelesen 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 Programm, 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 unterschiedlichen 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 Versionsmanagementwerkzeugs 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 individuell angepasst und erweitert werden kann.
FindBugs: http://findbugs.sourceforge.net/, ist ein Analyseprogramm zur statischen Codeanalyse, um typische mögliche Fehlerquellen wie NullPointerExceptions aufzuspüren.
Für Eclipse gibt es eine sehr große Menge von Plugins. Hilfreich für einen Überblick kann http://eclipseplugincentral.com sein, da hier die meisten Plugins beschrieben 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
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 Annual 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, Javamagazin 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. Auflage, 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, AddisonWesley, USA, 2003
M. Burghardt, Projektmanagement - Leitfaden für die Planung, Überwachung 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
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 Finite-State Concurrent Systems Using Temporal Logic Specifications,ACM Transactions on Programming Languages and Systems, 8(2), Seiten 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 MelIon 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ätsmanagementVerfahren, 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, Addison-Wesley, USA, 1999
H. R. Friedag, W. Schmidt, Balanced Scorecard, Haufe, Planegg, 2004
[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 - Elements 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, Science of Computer Programming, Nr. 8, Seiten 231-274,1987
B. Henderson-Sellers, Object-Oriented Metrics, Measures of Complexity, 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, Communications 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, Addison-Wesley, USA, 1997
W. S. Humphrey, Introduction to the Team Software Process, Addison-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 individuellen Integration von IT-Risikomanagement in Unternehmen, Arbeitspapiere 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, AddisonWesley, USA, 2004
G. Larman, UML 2 und Patterns angewendet, mitp, Bonn, 2005
http://www.umlet.com/
361
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 Verifizieren 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 Working Conference Oct. 1968, 1969
B. Oestereich, Analyse und Design mit UML 2, 7. Auflage, Oldenbourg, München, 2004
A. Olbrich, ITIL kompakt und verständlich, Vieweg, Wiesbaden, 2004
R. Oates, T. Langer, S. Wille, T. Lueckow, G. Bachlmayr, Spring & Hibernate, Hanser, München, Wien, 2007
B. Oestereich, C. Weiss, C. Schröder, T. Weilkiens, A. Lenhard, Objektorientierte Geschäftsprozessmodellierung mit der UML, dpunkt, Heidelberg, 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 -Management, 2. Auflage, Hanser, München Wien, 2002
J. Schwab, Projektplanungen realisieren mit MS Project 2003 und Project Server 2003, Hanser, München Wien, 2003
U. Schöning, Logik für Informatiker, 5. Auflage, Spektrum Akademischer Verlag, Heidelberg Berlin Oxford, 2004
H. M. Sneed, Software-Management, Müller, Köln, 1987
[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, Psychological 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. DePetril10, .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. Auflage, Hanser, München Wien, 2001
E. Wallmüller, Risikomanagement für IT- und Software-Projekte, Hanser, München Wien, 2004
363
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 Kommunikation, 11. Auflage, Huber, Bern, 2007
[WK02] J. Warner, A. Kleppe: The Object Constraint Language, AddisonWesley, 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 computation paths, Proceedings of the 24th IEEE Symposium on Foundationsof Computer Science, Tuscan, IEEE Press, Seiten 185-194,1983
364
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
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
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
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
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
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
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