Inhalte der Veranstaltung 5. Anwendungssysteme 5-4 6. Entwurf von Anwendungssystemen 6.1 Datenmodellierung 6-1 6.2 Geschäftsprozessmodellierung 6-32 6.3 Entwurf von Datenbanken 6-79 6.4 Nutzung von Datenbanken 6-122 7. Management der Informationsverarbeitung 7-1 Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-1
Datenmodellierung Erstellung eines Datenmodells ist wesentliche Grundlage für Entwurf/Implementierung von Individualsoftware Customizing von Standardsoftware Datenhaltung in DBMS Reengineering von Abläufen oder Systemen Kommunikation über Inhalt des Datenmodells ist entscheidend für Analyse und Verständnis des jeweiligen Anwendungsgebiets Datenmodell erlaubt statische Sicht auf das System Wechselseitige Abhängigkeiten zwischen dynamischer Sicht (z.b. Geschäftsprozesse) und statischer Sicht (z.b. Daten in Geschäftsprozessen) Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-2
Diagrammarten, Erweiterungsmöglichkeiten Unterschiedliche Systemaspekte können unterschiedlich relevant sein: Geschäftsprozesse, Abläufe Daten Nachrichtenaustausch zwischen Objekten Zustandsänderungen im System UML bietet unterschiedliche Diagrammarten für unterschiedliche Aspekte bzw. Abstraktionsebenen In UML 1.4 sind acht verschiedene Diagrammtypen spezifiziert Auswahl des Diagrammtyps richtet sich nach Entwurfszweck und Charakter der Anwendung Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-3
Diagramme der UML Anwendungsfalldiagramm (Use Case Diagram) Modellierung von funktionalen Anforderungen (Systemnutzung) Klassen-/Objektdiagramm (Class Diagram/Object Diagram) Implementierungsdiagramme (Implementation Diagrams) Komponentendiagramm (Component Diagram) Verteilungs-/Einsatzdiagramm (Deployment Diagram) Modellierung statischer Aspekte (Strukturdiagramme) Verhaltensdiagramme (Behavior Diagrams) Zustandsdiagramm (Statechart Diagram) Aktivitätsdiagramm (Activity Diagram) Interaktionsdiagramme Sequenzdiagramm (Sequence Diagram) Kollaborationsdiagramm (Collaboration Diagram) (Interaction Diagrams) Modellierung dynamischer Aspekte (Verhalten) Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-4
Diagramme und Einsatzmöglichkeiten Anwendungsfalldiagramm Schwerpunkt auf Interaktion mehrerer Benutzer grobe Erfassung der Geschäftsprozesse Klassendiagramm Objektorientiertes Modell der Daten eines Systems Komponentendiagramm Strukturierung (Architektur) des Systems Schnittstellen zwischen Systemen (z.b. zu legacy systems ) Verteilungs-/Einsatzdiagramm Funktionalität auf Knoten (Rechnern) in verteilten Softwaresystemen, ggf. Abhängigkeiten Kommunikationswege Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-5
Diagramme und Einsatzmöglichkeiten Zustandsdiagramm Zustände im Lebenszyklus eines Objekts sowie Ereignisse, die das Objekt verändern Aktivitätsdiagramm ähnlich Zustandsdiagrammen Abläufe im System anhand von Aktivitäten Modellierung von Parallelitäten in Abläufen Sequenzdiagramm Zeitliche Abfolge des Nachrichtenaustausches zwischen Objekten Kollaborationsdiagramm Darstellung der Zusammenarbeit von Objekten Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-6
(Objektorientierte) Modellierungssprachen Modellierungssprachen sind beschrieben durch abstrakte Syntax, Semantik und konkrete Syntax Abstrakte Syntax legt fest, wie die Konzepte (z.b. Klasse, Objekt, Attribut) einer Sprache verknüpft werden dürfen Semantik legt fest, wie Konzepte zu interpretieren sind, z.b. die Bedeutung der Vererbung Konkrete Syntax beschreibt grafische und ggf. textuelle Notation Abstrakte Syntax und Semantik werden häufig mit Hilfe von Metamodellen dargestellt Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-7
Ebenen der Modellierung Metamodell Class Instanz von UML Sprachbeschreibung Abstraktion Klassendiagramm Objekte Kunde Instanz von Paul Meier Konzeptionelles Modell (Anwendung der UML) Objekte im Informationssystem Anwendungsdomäne Realweltliche Objekte Quelle: [Fra00] Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-8
Statische Strukturdiagramme Strukturdiagramme werden eingesetzt, um die statischen Aspekte eines Systems zu visualisieren, zu spezifizieren, zu konstruieren und zu dokumentieren UML-Spezifikation enthält folgende statische Strukturdiagramme: Klassendiagramm: Klassen, Schnittstellen Objektdiagramm: Objekte Auch die Implementierungsdiagramme können zu den statischen Strukturdiagrammen gezählt werden: Komponentendiagramm: Komponenten, Teilsysteme Verteilungs- bzw. Einsatzdiagramm: Knoten Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-9
Klassendiagramm ( class diagram ) Klassendiagramm ist Graph klassifizierter Elemente des betrachteten Realitätsausschnitts Verbindungen zwischen Elementen repräsentieren statische Beziehungen zwischen Elementen Beziehungen zwischen Klassen (Assoziation, Generalisierung) Klassendiagramme zeigen keine temporalen Informationen Multiplizität/Kardinalität wird als einzelne Zahl oder Wertebereich auf jeder Seite der Assoziation notiert Graphische Notation: Klassen: Methoden Beziehungstypen: KlassenName attribut(e) operation(en) Kardinalität Leserichtung Kardinalität Name Beziehungen zwischen Klassen: z.b. 1 1,3,5 n..m * Assoziation Aggregation Komposition Vererbung (Generalisierung) Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-10
Graphische Darstellung: Klassen Zusicherung Klasse - privateattribut # protectedattribut {Bedingung} + publicattribut attribut: Datentyp Attribute attribut: Datentyp = Anfangswert - privateoperation() # protectedoperation() + publicoperation() Methoden Operation(Parameterliste) : Ergebnistyp Sichtbarkeit Beispiel: # name: String Beispiel: einfuegen(name: string, telefon: int) Klassen = Rechtecke mit getrennten Bereichen für Attribute und Operationen/Methoden (operations) Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-11
Beispiel: Aufbau einer Klasse Quelle: [Wahl98] Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-12
Beziehungen im Klassendiagramm Beziehungen modellieren Abhängigkeiten zwischen Klassen bzw. Instanzen dieser Klassen Möglichkeit beliebiger (anwendungsabhängiger) Assoziationen zwischen Klassen: gehört zu wird geleitet von reserviert Spezielle Beziehungen sind: zusammengesetzt aus (Komposition) enthält (Aggregation) ist ein (Vererbung) Dokumentation durch Namen, Kardinalitäten, Rollen Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-13
Klassendiagramm: Beziehungen I Kardinalität/ Multiplizität Klasse 1 Beziehungsname 0..1 * Rolle von Klasse 1 Rolle von Klasse 2 Leserichtung Klasse 2 Attributierte Assoziation Klasse 1 0..1 Beziehungsname * Klasse 2 Assoziationsklasse Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-14
Klassendiagramm: Beziehungen II Aggregation Ganzes Komposition 0..1 besteht aus * 1 Beziehungsname 1..* Teil Existenzabhängiges Teil Klasse 1 Mehrgliedrige Assoziation 0..1 * Klasse 2 Klasse 3 Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-15
Klassendiagramm: Vererbung Wenn Abstrakte Klasse Name kursiv schreiben oder im Namensfeld der Klasse als {abstract} spezifizieren Oberklasse Oberklasse Diskriminator 1 Spezialisierung Generalisierung Diskriminator 1 Unterklasse 1 Unterklasse 2 oder Unterscheidungsmerkmal in Ober- und Unterklassen Kriterium, nachdem die Vererbungsstruktur erstellt ist Unterklasse 1 Unterklasse 2 Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-16
Beispiel: Klassendiagramm Vererbung GeomFigur {abstrakt} x: int y: int sichtbar: Boolean anzeigen() {abstrakt} entfernen() {abstrakt} verschiebezu(px: int, py: int) Oberklasse Form Kreis Rechteck Dreieck radius: int {radius > 0} setradius(pr: int) anzeigen() entfernen() Unterklassen Quelle: [Oest98] a: int {a > 0} b: int {b > 0} setkanten(pa: int, pb: int) anzeigen() entfernen() a: int {c-b < a < c+b} b: int {a-c < b < a+c} c: int {a-b < c < a+b} setkanten(pa: int, pb: int, pc: int) anzeigen() entfernen() Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-17
Beispiel: Bank Klassendiagramm Bank Konto <<abstract>> kontonummer: String kontostand: Money angelegtam: Date einzahlung (betrag: Money) auszahlung (betrag: Money) * 1..* führt 1 besitzt 1 name: String bankleitzahl: String Kontoinhaber nachname: String vorname: String geburtsdatum: Date alterinjahren (): Integer Girokonto ueberziehungskredit: Money bishergezahltesollzinsen (): Money... Sparkonto sonderzins: Percentage bisherigezinssumme (): Money... Quelle: [Fra00] Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-18
Beispiel: automatische Geldausgabe Quelle: vgl. [Wahl98] Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-19
Beispiel: Schule In einer Schule gibt es Schüler, Lehrer und Schulklassen. Eine Schulklasse besteht aus vielen Schülern, aber ein Schüler geht immer in genau eine Schulklasse. Eine Schulklasse hat in der Regel viele Lehrer, umgekehrt unterrichten Lehrer in der Regel verschiedene Klassen. Ein Lehrer kann in bezug auf eine Schulklasse die besondere Rolle des Klassenlehrers einnehmen: jede Schulklasse bekommt genau einen Klassenlehrer zugeteilt. Andererseits ist nicht unbedingt jeder Lehrer für eine Schulklasse als Klassenlehrer zuständig. Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-20
Beispiel: Schule In einer Schule gibt es Schüler, Lehrer und Schulklassen. Eine Schulklasse besteht aus vielen Schülern, aber ein Schüler geht immer in genau eine Schulklasse Eine Schulklasse hat in der Regel viele Lehrer, umgekehrt unterrichten Lehrer in der Regel verschiedene Klassen. Ein Lehrer kann in bezug auf eine Schulklasse die besondere Rolle des Klassenlehrers einnehmen: jede Schulklasse bekommt genau einen Klassenlehrer zugeteilt. Andererseits ist nicht unbedingt jeder Lehrer für eine Schulklasse als Klassenlehrer zuständig. Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-21
Beispiel: Schule ist zuständig für hat Klassenlehrer 0..1 1 Klassenlehrer 1..* unterrichtet Schulklasse Lehrer hat Unterricht bei 1..* 1 besteht aus 1..* Schüler geht in Quelle: [Schich02] Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-22
Beispiel: Unibibliothek Benutzer benutzernummer name adresse... benachrichtigen() checkstatus() mahnen()... 1 Quelle: [Kahl98] tätigt Vormerkung 1 hat 0..* reservdatum 0..* 1 frist bezieht_... sich_auf 0..* Ausleihe ausleihdatum leihfristdatum... zurücknehmen()... benachrichtigen()... 0,1 betrifft 1 Buch titel bsignatur... vormprüfen()... Exemplar exsignatur status... ausleihen() reservieren() zurücknehmen() löschen()... Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-23
Beispiel: Theaterkasse Kunde name telefon einfügen(name: String, telefon: int) 1 nimmt_vor 0..* Reservierung datum: Date Abonnement Einzelreservierung abonummer: int 0..1 0..1 umfaßt bezieht_sich_auf 3..6 1 Eintrittskarte verfügbar... 0..* ist_gültig_für verkaufe(k:kunde) umtauschen() 1 Show name: String 1 wird_aufgeführt 1..* Vorstellung datum: Date zeit: float Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-24
Beispiel: Auftrag Auftrag anzahl eingangsdatum istvorausbezahlt summe abschließen() ausführen() 1 1..* Auftragsposition istgeliefert menge preis hat 0..* 0..* betrifft erteilt 1 1 Privatkunde kreditkartennr Produkt kdnnr name adresse Kunde kreditwürdigkeit() Firmenkunde kreditlimit kreditwürdigkeit erinnnern() forderungenimmonat() 0..* betreut Verkäufer 0..1 Angestellter Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-25
Objektdiagramm Momentaufnahme des Zustands eines Systems durch Menge von Objekten und ihren Beziehungen entspricht einer Instanz eines Klassendiagramms Objektdiagramme werden insbesondere zur exemplarischen Darstellung von Datenstrukturen verwendet Graphische Notation: Objekte: Objekt:Klasse attributname = wert Objekt :KlassenName Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-26
Beispiel: Girokonto" Objektdiagramm 4711 4711 :: Girokonto Kontonr = 4711 4711 transaktionen = [200, [200,-100, 3000] 3000] lastschrift = [Miete, [Miete, Zeitung, Versicherung] gebühren = 0,021 0,021 % Namensfeld Objekt : Klasse Attributliste attributname = wert Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-27
Klassen-Objekt-Beziehung Klasse <<instance of>> <<instance of>> Objekt1:Klasse Objekt2:Klasse Instanziierungsbeziehungen, d.h. Klassen-Objekt- Beziehungen werden durch einen gestrichelten Pfeil dargestellt. Das Objekt zeigt auf seine Klasse. Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-28
Ausschnitt des Metamodells der UML ModelElement name: Name Feature Class AssociationEnd visibility: Visibility * 1 isroot: Boolean isabstract: Boolean 1 * multiplicity: Multiplicity 2..* Attribute multiplicity: Multiplicity initialvalue: Expression Operation isquery: Boolean 1 Association Quelle: [Fra00] Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-29
Literatur Objektorientierung & UML http://www.sigs.de/publications/docs/obsp/ umlkompt/umlkompt.htm Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-30
Problemstellung Prozessorientierter Modellierungsansatz als Basis zur Ermittlung und Dokumentation der betriebswirtschaftlichen Zusammenhänge in Unternehmen Grundlegende Ansätze für die Modellierung: Datenflussanalyse Austausch von Informationsobjekten steht im Vordergrund (Welche Informationsobjekte gehen in eine Funktion ein bzw. werden von ihr erzeugt?) statische Betrachtung Kontrollflussanalyse Analyse des dynamischen Verhaltens eines Informationssystems wird in den Mittelpunkt gestellt (Ereignisorientierung). Ziel: zielgerichtete und zeitliche Strukturierung der Funktionen Einführung in die Wirtschaftsinformatik - Teil II, SS 2008, Prof. Dr. D. Kesdogan, Institut für Wirtschaftsinformatik, Universität Siegen 6-31