E N D
1. 1 DigInf 05/06 Diagrammtypen der UML 2.0
2. 2 DigInf 05/06 Java-Praxiskurs I: Themenberblick Objektorientierte Analyse und Design
Modellierung in UML und Java
Java-Programmiertechniken
Datentypen, Kontrollstrukturen, Interfaces, Exception Handling, ...
Ein-/Ausgabe-Operationen
Datei-System-Zugriffe, Streams, ...
Grafische Benutzungsoberflchen
Swing, Model-View-Controller-Paradigma, ...
3. 3 DigInf 05/06 Java-Praxiskurs I: Organisatorisches zweiwchige Kompaktveranstaltung
20.03.-31.03.2006 (letzte zwei Wochen der Semesterferien)
montags-freitags jeweils von 9-12 Uhr Vorlesung und Globalbung
Ort: Hrsaal KH 2-07 (stdtisches Kaufhaus)
freie bungsbearbeitung in Pools oder auf eigenem Rechner
Anmeldung
durch Eintragen auf der Mailingliste javakurs06i:
http://ebus.informatik.uni-leipzig.de/mailman/listinfo/javakurs06i
weitere Informationen
www.lpz-ebusiness.de ? Lehre ? Sommersemester 2006
Malte Hlder (huelder@ebus.informatik.uni-leipzig.de)
Vincent Wolff-Marting (wolff@ebus.informatik.uni-leipzig.de)
4. 4 DigInf 05/06 Use-Case-Diagramm Problem:
Das externe Verhalten des Systems soll aus Nutzersicht dargestellt werden.
Diese zentrale Frage beantwortet das Diagramm:
Was leistet mein System fr seine Umwelt (Nachbarsysteme, Stakeholder)?
Diese Strken hat das Diagramm:
prsentiert die Auensicht auf das System
geeignet zur Kontextabgrenzung
hohes Abstraktionsniveau, einfache Notationsmittel
5. 5 DigInf 05/06 Notationselemente I Ein Use-Case beschreibt eine Menge von Aktionen, die zu einem fachlichen Ergebnis fhren.
Ein Use-Case ist eine abgeschlossene Einheit, seine innere Struktur ist zunchst nicht relevant.
Das System ist diejenige Einheit, die durch die Use-Cases beschrieben wird.
Ein Use-Case wird immer von einem Akteur ausgelst.
6. 6 DigInf 05/06 Notationselemente II Die <<extend>>-Beziehung zeigt an, dass ein Use-Case erweitert werden kann (durch A).
Der erweiterbare Use-Case wird mit einer Linie in der Ellipse und dem Namen unter der Ellipse dargestellt.
Generalisierung: B und C erben das Verhalten von A, das auch berschrieben werden kann.
Import: A importiert die Use-Cases B und C (whrend der Ausfhrung von A werden B und C aufgerufen).
7. 7 DigInf 05/06 Anwendungsbeispiel
8. 8 DigInf 05/06 Use-Case-Diagramm nderungen gegenber frheren UML-Versionen
Akteure mssen benannt werden
Die <<extend>>-Beziehung kann Vorbedingungen und extension points besitzen.
Besondere Hinweise
Use-Cases sollten nicht zur detaillierten Beschreibung von Operationen oder Funktionen verwendet werden.
Es sollten keine nicht-funktionalen Anforderungen beschrieben werden.
Use-Cases sollten immer die Anwendersicht, nie die Entwicklersicht widerspiegeln.
9. 9 DigInf 05/06 Diagrammtypen der UML 2.0
10. 10 DigInf 05/06 Zustandsautomaten Diese zentrale Frage beantwortet das Diagramm:
Welche Zustnde kann ein Objekt, eine Schnittstelle, ein Use-Case etc. bei welchen Ereignissen annehmen?
Diese Strken hat das Diagramm:
przise Abbildung eines Zustandmodells mit Zustnden, Ereignissen, Nebenlufigkeiten, Bedingungen, Ein- und Austrittsaktionen
Schachtelung mglich
11. 11 DigInf 05/06 Annahmen
Das System befindet sich zu einem bestimmten Zeitpunkt genau in einem Zustand.
Eine Transition ist der bergang von einem Ausgangs- zu einem Zielzustand.
Der bergang (Transition) von einem Zustand in den nchsten erfolgt ohne zeitlich Verzgerung.
Vorteile
Es knnen parallel Ablufe modelliert werden.
12. 12 DigInf 05/06 Anwendung Beschreibung des Verhaltens von Use-Cases
Die formale Modellierung von Use-Cases hat folgende Vorteile:
Sie sind eindeutig und weniger interpretierbar.
Es knnen Testflle abgeleitet werden.
Beschreibung des Verhaltens von Klassen
Dem Attribut einer Klasse wird im Allgemeinen ein Datentyp zugeordnet.
Wenn der Datentyp eine endliche Menge von gltigen Werten besitzt, dann ergeben sich die verschiedenen Zustnde der Klasse aus allen mglichen Kombinationen dieser Zustandsvariablen.
Protokollzustandsautomaten
Unter einem Protokoll versteht man hier die erlaubte Abfolge von Aufrufen der Operationen, die von einem Classifier angeboten werden.
13. 13 DigInf 05/06 Notationselemente I Ein einfacher Zustand wird durch ein Rechteck mit abgerundeten Ecken dargestellt.
Ein Zustandsautomat hat immer genau einen Start- und einen Endzustand.
Ein Zustand wird durch ein Rechteck mit abgerundeten Ecken dargestellt.
Die Bezeichnung des Zustands steht ber der horizontalen Linie.
Es sind Aktivitten mit ihren Auslsern definiert:
entry ? Eintrittsaktivitt
exit ? Austrittsaktivitt
do ? Andauernde Aktivitt
14. 14 DigInf 05/06 Notationselemente II Zustandsautomaten sind in einem Rahmen mit Angabe des Namens untergebracht (sm = state machine).
Trigger sind Auslser von Transitionen.
Der Guard ist eine Bedingung, die wahr sein muss, damit die Transition ausgelst wird.
Aktivitt ist die Aktivitt, die beim Durchlaufen der Transition ausgelst wird.
Startzustand
Endzustand
15. 15 DigInf 05/06 Notationselemente III Pseudozustnde werden genutzt, um komplexe Beziehungen zwischen Zustnden einfach darzustellen.
Das System kann sich nicht im Pseudozustand aufhalten (kein Zeitverbrauch).
Eine Entscheidung ermglicht es, die Auswahl der nchsten Transition von einem aktuellen Ergebnis abhngig zu machen.
Eine Kreuzung ermglicht es, Zustnde hintereinander zu schalten (im Gegensatz zur Entscheidung steht der Weg der Ausfhrung von Beginn an fest).
Eine Gabelung teilt ein eingehende Transition auf mehrere parallel Ziele auf (Guards/Trigger an ausgehenden Verbindungen nicht erlaubt).
Eine Vereinigung dient dazu, um aufgeteilte Transitionen wieder zusammenzufhren (Guards/Trigger an eingehenden Verbindungen nicht erlaubt).
16. 16 DigInf 05/06 Anwendungsbeispiel
17. 17 DigInf 05/06 Zustandsautomaten nderungen gegenber frheren UML-Versionen
verbesserte Verknpfung von statischen Elementen und dahinter liegenden Zustandsmodellen
Protokollzustandsautomaten wurden zur przisen Definition von Schnittstellen und Ports eingefhrt.
Besondere Hinweise
Es sollten niemals Zustnde existieren, die nur eingehende, aber keine ausgehenden Transitionen besitzen (ansonsten ist das Modell unvollstndig).
18. 18 DigInf 05/06 Diagrammtypen der UML 2.0
19. 19 DigInf 05/06 Sequenzdiagramm Diese zentrale Frage beantwortet das Diagramm:
Wer tauscht mit wem welche Informationen in welcher Reihenfolge aus?
Diese Strken hat das Diagramm:
stellt detailliert den Informationsaustausch zwischen Kommunikationspartnern dar
sehr przise Darstellung der zeitlichen Abfolge auch mit Nebenlufigkeiten
Schachtelung und Flusssteuerung (Bedingungen, Schleifen, Verzweigungen) mglich
20. 20 DigInf 05/06 Sequenzdiagramm Bedeutung des Diagramms
Das Sequenzdiagramm ist das meistverwendeste unter den Interaktionsdiagrammen.
Gegenstand des Diagramms
Es zeigt den zeitlichen Verlauf der Interaktion zwischen mehreren Kommunikationspartnern (2 Dimensionen).
Hufige Anwendungsflle
Die Abfolge der Nachrichten ist wichtig.
Die durch Nachrichten verursachten Zustandsbergnge sind kaum relevant.
Die Interaktionen sind kompliziert.
Die strukturelle Verbindung zwischen den Kommunikationspartner ist nicht relevant.
Es stehen Ablaufdetails im Vordergrund.
21. 21 DigInf 05/06 Notationselemente I Das Sequenzdiagramm (sd) ist in einem Rahmen gefasst, in der Kopfzeile wird der Name des Diagramms angegeben.
Ein Kommunikationspartner wird durch einen Kasten mit dessen Namen und einer angeschlossenen Lebenslinie dargestellt.
Auf der Lebenslinie werden Aktionssequenzen eingezeichnet, die eine Ttigkeit des Kommunikationspartners beschreiben.
Eine Aktionssequenz wird durch ein Startereignis ausgelst, schliet mit einem Endereignis ab und kostet Zeit.
22. 22 DigInf 05/06 Notationselemente II Eine Lebenslinie verluft immer bis an das Ende des Sequenzdiagramms.
Soll der Kommunikationspartner vorher gelscht werden, kann das durch ein Kreuz an der Lebenslinie ausgedrckt werden (Destruktion).
Eine asynchrone Nachricht wird versendet, ohne auf die Antwort des Empfngers zu warten.
Eine synchrone Nachricht (durchgehende Linie) wird versendet, die Abarbeitung stoppt solange, bis eine Antwort vom Empfnger (gestrichelte Linie) eintrifft.
23. 23 DigInf 05/06 Notationselemente III Eine Zustandsinvariante ist eine Bedingung fr eine Interaktion.
Sie wird zur Laufzeit unmittelbar vor einem Ereignis ausgewertet.
Gilt sie nicht (Lebenslinie nicht in angegebenem Zustand), ist die Interaktion fehlerhaft implementiert.
Diese Bedingung wird durch das entsprechende oder durch geschweifte Klammern angegeben.
Innerhalb der Sequenzdiagramms knnen andere Interaktionen referenziert werden (Interaktionsreferenzen), es handelt sich dabei um einen Interaktionsaufruf.
24. 24 DigInf 05/06 Notationselemente IV Kombinierte Fragmente knnen verwendet werden, um fr einen Teil der Interaktion besondere Regeln anzugeben.
Interaktionsoperatoren werden durch Interaktionsbedingungen (eckige Klammern) gesteuert.
Interaktionsoperatoren sind z.B.:
alt ? alternative Ablaufmglichkeiten,
par ? nebenlufige Interaktionen,
opt ? optionale Interaktionsteile
...und viele mehr.
25. 25 DigInf 05/06 Anwendungsbeispiel
26. 26 DigInf 05/06 Sequenzdiagramm nderungen gegenber frheren UML-Versionen
ist strukturier- und zerlegbar
Sequenzen knnen damit beliebig ineinander verschachtelt werden.
viele Mglichkeiten zur Steuerung von Kontrollflssen und Nebenlufigkeiten
Alle wesentlichen Konstrukte aus den beliebten Message Sequence Charts (MSC) wurden bernommen.
Besondere Hinweise
Es sollten hufig Interaktionsreferenzen genutzt werden, um das Diagramm bersichtlich zu gestalten.
Es sollten an kritischen Stellen auch die falschen Ablufe mit den entsprechenden kombinierten Fragmenten modelliert werden.
27. 27 DigInf 05/06 Diagrammtypen der UML 2.0
28. 28 DigInf 05/06 Kommunikationsdiagramm Problem:
Es soll modelliert werden, wie Interaktionspartner in einem komplexen System miteinander kommunizieren.
Diese zentrale Frage beantwortet das Diagramm:
Wer kommuniziert mit wem? Wer arbeitet im System zusammen?
Diese Strken hat das Diagramm:
stellt den Informationsaustausch zwischen Kommunikationspartnern dar
berblick steht im Vordergrund (Details und zeitliche Abfolge sind weniger wichtig)
29. 29 DigInf 05/06 Notationselemente Das Kommunikationsdiagramm wird mit einem rechteckigen Rahmen gefasst und mit dem Interaktionsnamen versehen (irrefhrenderweise steht sd fr sequence diagramm).
Eine Nachricht wird als durchgezogene Linie dargestellt, ein Pfeil kennzeichnet die Richtung der Nachricht.
Die zeitliche Reihenfolge der Nachrichten wird durch eine Gliederungshierarchie abgebildet (Sequenzbezeichner).
Kommunikationspartner werden als Rechteck dargestellt.
30. 30 DigInf 05/06 Anwendungsbeispiel
31. 31 DigInf 05/06 Kommunikationsdiagramm nderungen gegenber frheren UML-Versionen
war frher das Kollaborationsdiagramm
sonst keine wesentlichen nderungen
Besondere Hinweise
Die Modellierung sollte nie aus Sicht eines bestimmten Kommunikationspartners erfolgen, sondern immer aus der Vogelperspektive.
Fr nebenlufige und iterative Nachrichten sollte lieber das Sequenzdiagramm verwendet werden.
32. 32 DigInf 05/06 Diagrammtypen der UML 2.0
33. 33 DigInf 05/06 Timingdiagramm Problem:
Das exakte zeitliche Verhalten eines Systems soll beschrieben werden.
Diese zentrale Frage beantwortet das Diagramm:
Wann befinden sich verschiedene Interaktionspartner in welchem Zustand?
Diese Strken hat das Diagramm:
visualisiert das exakte zeitliche Verhalten von Klassen, Schnittstellen etc.
geeignet fr Detailbetrachtungen, bei denen es wichtig ist, zu welchem Zeitpunkt ein Ereignis eintritt
34. 34 DigInf 05/06 Notationselemente I Das gesamte Timing-Diagramm wird von einem Rahmen umschlossen.
Der Name des Diagramms und eine Zeitskala knnen angegeben werden.
Eine Lebenslinie steht fr einen Teilnehmer der Interaktion.
Die Zeitachse beginnt links und endet rechts.
Jede Lebenslinie trgt den Namen des Interaktionspartners (es kann auch nur die Klasse oder beides angegeben werden).
35. 35 DigInf 05/06 Notationselemente II Die Zeitverlaufslinie zeigt die Zustandsnderungen einer Lebenslinie an.
Die Zustnde werden links untereinander notiert.
Die Zeitverlauslinie gibt die zeitliche Reihenfolge der Zustnde an.
Ein waagerechter Verlauf zeigt einen ruhenden Zustand an.
Ein senkrechter Verlauf zeigt einen Zustandswechsel an.
Semantik und Syntax der Nachrichten wie im Sequenzdiagramm
Sprungmarken knnen an Nachrichtenlinien benutzt werden, um die Lesbarkeit zu verbessern.
36. 36 DigInf 05/06 Anwendungsbeispiel
37. 37 DigInf 05/06 Timing-Diagramm nderungen gegenber frheren UML-Versionen
Das Timing-Diagramm wurde in UML 2.0 neu eingefhrt.
Besondere Hinweise
Dieses Diagramm ist besonders fr sicherheitskritische und technische Systeme geeignet (z.B. ABS-System, Auto-Waschstrae).
Vor der Anwendung des Timing-Diagramms sollten Use-Case-, Klassen-, Aktivitts- oder Zustandsdiagramme angefertigt werden, damit die notwendigen Klassen, Objekte oder Aktionen bekannt sind.
38. 38 DigInf 05/06 Diagrammtypen der UML 2.0
39. 39 DigInf 05/06 Interaktionsbersichtsdiagramm Problem:
Interaktionsdiagramme liegen oft in groer Zahl vor und werden schnell unbersichtlich.
Diese zentrale Frage beantwortet das Diagramm:
Wann luft welche Interaktion ab? Wie behalte ich die bersicht ber meine Interaktionen?
Diese Strken hat das Diagramm:
verbindet Interaktionsdiagramme auf Top-Level-Ebene
hohes Abstraktionsniveau
40. 40 DigInf 05/06 Interaktionsbersichtsdiagramm Idee
Die leicht lesbare Notation der Aktivittsdiagramme wird mit der von kommunikationsorientierten Interaktionen kombiniert.
Alternativen
Das Diagramm kann auch komplett als Sequenzdiagramm dargestellt werden.
Das Diagramm kann auch komplett als Aktivittsdiagramm dargestellt werden.
41. 41 DigInf 05/06 Notationselemente Das Interaktionsbersichtsdiagramm wird in einem Rahmen dargestellt.
Auch hier wird irrefhrenderweise die Bezeichnung sd verwendet.
Interaktionen knnen geschachtelt werden.
Innerhalb der Interaktionsbersichtsdiagramms knnen andere Interaktionen referenziert werden (Interaktionsreferenzen), es handelt sich dabei um einen Interaktionsaufruf.
Kontrollelemente (Verzweigung, Synchronisation etc.) werden wie bei Aktivittsdiagrammen verwendet.
42. 42 DigInf 05/06 Anwendungsbeispiel
43. 43 DigInf 05/06 Zusammenfassung nderungen gegenber frheren UML-Versionen
Das Interaktionsbersichtsdiagramm wurde in UML 2.0 neu eingefhrt.
Besondere Hinweise
Dieses Diagramm dient zur Wahrung von Klarheit und Kontrolle. Es sollte daher immer mit mglichst wenig Elementen und viel mit Schachtelung gearbeitet werden.
Zur Erhhung der Lesbarkeit sollten besser Referenzierungen anstatt Inline-Interaktionen verwendet werden.
44. 44 DigInf 05/06 Diagrammtypen der UML 2.0
45. 45 DigInf 05/06 Methodik Vom Klassenmodell und den wichtigsten Anwendungsfllen zu Ergnzungen
46. 46 DigInf 05/06 Datenstrukturen und Algorithmen Komplexitt und Effizienz
bergangsstichwort zur nchsten Folie ist die Verbreiterung der Kompetenzen von adesso, um dem Anspruch des FSP wirklich gerecht zu werdenbergangsstichwort zur nchsten Folie ist die Verbreiterung der Kompetenzen von adesso, um dem Anspruch des FSP wirklich gerecht zu werden
47. 47 DigInf 05/06 Datenstrukturen und Algorithmen Bestandteile von Programmen:
Benutzerschnittstelle (Presentation Layer)
Verarbeitungs- / Bearbeitungsteile / Business Logik (Application oder Business Layer)
Persistenzteil (Persistence Layer)
2 wichtige Faktoren:
Qualitt der Ergebnisse
Laufzeit
bergangsstichwort zur nchsten Folie ist die Verbreiterung der Kompetenzen von adesso, um dem Anspruch des FSP wirklich gerecht zu werdenbergangsstichwort zur nchsten Folie ist die Verbreiterung der Kompetenzen von adesso, um dem Anspruch des FSP wirklich gerecht zu werden
48. 48 DigInf 05/06 berlegungen zur Laufzeit Typisches Problem: Datenmigration / Anwendung auf relevante Menge von Daten und/oder echte Daten.
Hufig ist die Laufzeit auf echten Daten zunchst vllig inakzeptabel.
Von mitentscheidender Bedeutung sind dabei die passenden Zugriffe auf gespeicherte Daten und das Einfgen in Datenmengen. Damit wird deutlich: Algorithmen mssen zur gewhlten Datenstruktur passen!
Fr viele Standardprobleme sind geeignete Algorithmen und passende Datenstrukturen bekannt.
bergangsstichwort zur nchsten Folie ist die Verbreiterung der Kompetenzen von adesso, um dem Anspruch des FSP wirklich gerecht zu werdenbergangsstichwort zur nchsten Folie ist die Verbreiterung der Kompetenzen von adesso, um dem Anspruch des FSP wirklich gerecht zu werden
49. 49 DigInf 05/06 Wichtige Klasse von Algorithmen: Suchen und Sortieren Beispiel: Suchen im Telefonbuch
Zur raschen Suche nutzen wir aus, dass die Eintrge alphabetisch sortiert sind nach Name, Vorname, Adresse.
Intuitiv sucht man binr.
Bei 1000 Eintrgen Umfang, brauchen wir hchstens 10 Schritte, bei 2000 Eintrgen auch nur 11.
Nehmen wir mal an, dass wir feststellen wollen, ob in einem Telefonbuch eine Telefonnummer vorkommt. Dann muss linear gesucht werden. Im Schnitt bentigen wir bei 1000 Eintrgen 500 Schritte. Im schlimmsten Fall sogar 1000.
Wenn man fter Telefonnummern sucht, macht es wohl Sinn, nach Telefonnummern zu sortieren.
bergangsstichwort zur nchsten Folie ist die Verbreiterung der Kompetenzen von adesso, um dem Anspruch des FSP wirklich gerecht zu werdenbergangsstichwort zur nchsten Folie ist die Verbreiterung der Kompetenzen von adesso, um dem Anspruch des FSP wirklich gerecht zu werden
50. 50 DigInf 05/06
51. 51 DigInf 05/06