Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung in Klassen, Objekte und in UML Klassen und Objekte mit VBS Modellierung mit UML Anwendungsfälle mit COM Objekten Java und BlueJ Christoph Oberweis.

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung in Klassen, Objekte und in UML Klassen und Objekte mit VBS Modellierung mit UML Anwendungsfälle mit COM Objekten Java und BlueJ Christoph Oberweis."—  Präsentation transkript:

1 Einführung in Klassen, Objekte und in UML Klassen und Objekte mit VBS Modellierung mit UML Anwendungsfälle mit COM Objekten Java und BlueJ Christoph Oberweis 2007

2 2 Agenda C.O. Modelle und Modellierung Klassendiagramme VBScript Objekte erzeugen Component Object Model Anwendungsfalldiagramme Sequenzdiagramme Übungen Java Quellen

3 3 Agenda Modelle und Modellierung Klassendiagramme VBScript Objekte erzeugen Component Object Model Anwendungsfalldiagramme Sequenzdiagramme Übungen Java Quellen C.O. Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

4 4 Modelle: Vorwort C.O. Anwendungsprogramme und Objektorientierung Erst durch eine geeignete Software kann der Computer Probleme der realen Welt lösen. Hintergrund einer betriebswirtschaftlich orientierten Software sind letztlich immer Ge - schäftsprozesse; dies gilt sowohl für Standardsoftware wie z. B. Officepakete als auch für Individualsoftware wie z. B. eine prozessorientierte Auftragsabwicklung eines Produktionsbetriebs. Software bildet einen Ausschnitt der realen Welt in einer Modellwelt ab. Diese Modellwelt ist (im Gegensatz zur realen Welt) auf nur die Notwendigkeiten reduziert, die benötigt werden, um die jeweiligen Probleme der betrieblichen Wirklichkeit mit Hilfe von Computern zu lösen. Modellierung ist der Transfer eines Ausschnittes der realen Welt in ein Modell. Objekte der realen Welt (Kunde, Artikel usw.) und ihre Eigenschaften (Kundennummer, Artikelbezeichnung) werden modelliert – Ergebnis dieses Prozesses sind dann beispiels- weise Klassen inkl. ihrer Attribute und der ihnen zugeordneten Algorithmen (Methoden) in der Modellwelt, die dann wiederum zur Erzeugung von Objekten im Computer dienen. Der Begriff Objekt ist nun allerdings als Fachbegriff der Informatik zu verstehen. Sowohl bei der Softwareentwicklung als auch bei der Nutzung dieser (z. B. Officepaket) wird man (zumindest indirekt) mit Objektorientierung konfrontiert. Diese sollte im gymnasialen Oberstufenunterricht und in Informatik – Fachklassen auch als das zugrunde liegende Konzept thematisiert werden. Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

5 5 Modelle und Modellierung C.O. Wirkliche Welt: Autohaus Modell: Idealisierte Darstellung (Abbildung) der realen Welt zur Veranschaulichung bestimmter Sachverhalte/Eigenschaften/Prozesse, Vereinfachung der Realität Das Foto ist farbig, hat einen bestimmten Maßstab, wurde aus einer bestimmten Perspektive aufgenommen usw.: Ikonisches Modell (bildhaft) Funktion dieses Modells: Möglicherweise ein Foto für einen Zeitungsbericht Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

6 6 Fortschreitende Abstraktion C.O. Verzicht auf Details (Farbinformation usw.): Die Darstellung wird ungenauer, allerdings bleiben der Standort und die Silhouette der Fahrzeuge erkennbar. Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

7 7 Analogmodell C.O. X X X X X Lageskizze der Stellplätze: Stark vereinfachte Karte, jedes abgestellte Fahrzeug wird zu einem X (Analogie, eine noch weiterer Abstraktion von der Wirklichkeit) Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

8 8 Eine weitere Betrachtungsweise C.O. Jedes Kfz ist individuell (Fahrzeugnummer). Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

9 9 Es gibt Gemeinsamkeiten C.O. Überlegung: Was haben alle Fahrzeuge gemeinsam: Vier Räder, Lenkrad … Überlegung: Was haben alle Fahrzeuge gemeinsam: Vier Räder, Lenkrad … Individuelles KFZIndividuelles KFZ Individuelles KFZ Abstraktes Fahrzeug: Schablone, Bauplan für die realen Fahrzeuge Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

10 10 Die Vorstufe einer Klasse C.O. Kfz Hersteller: Text Typ: Text ……… Hubraum: Ganzzahl ……… Farbe: Text ……. Schablone, nach diesem Bauplan können (fast) unendlich viele Fahrzeuge gebaut werden. Allerdings benötigt dieser Plan exakte Angaben zu den Details des Fahrzeugs. So könnte der Bauplan formuliert sein: Zahlen und Texte als Informa- tionen zu den Eigenschaften des Fahrzeugs (Vorstufe einer Klasse). (Eine Darstellung dieser Art wird in manchen Fachdisziplinen als symbolisches Modell bezeichnet.) So könnte der Bauplan formuliert sein: Zahlen und Texte als Informa- tionen zu den Eigenschaften des Fahrzeugs (Vorstufe einer Klasse). (Eine Darstellung dieser Art wird in manchen Fachdisziplinen als symbolisches Modell bezeichnet.) Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

11 11 Von der Schablone … C.O. Die Schablone definiert den Bauplan des Fahrzeugs (falls zusätzliche detaillierte Angaben vorliegen). Eine Klasse Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

12 12 … zum individuellen Kfz C.O. Und so soll das individuelle Kfz aussehen! Das Objekt Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

13 13 Andere Möglichkeit! C.O. Ein anderes Individuum. Ein anders Objekt der gleichen Klasse Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

14 14 Schritte der Modellierung C.O. Wirklichkeit Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

15 15 Schritte der Modellierung C.O. Wirklichkeit 1. Objekte, die offensichtlich den gleichen Bauplan haben, analysieren. (Hier: die Fahrzeuge, nicht die Fahnen, Verkehrs- schilder usw.) Welche gemeinsamen Eigenschaften mit individueller Ausprä- gung (wie Farbe, Fahrzeugnummer usw.) können diese Objekte besitzen? Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

16 16 Schritte der Modellierung C.O. Wirklichkeit 1. Objekte, die offensichtlich den gleichen Bauplan haben, analysieren. (Hier: die Fahrzeuge, nicht die Fahnen, Verkehrs- schilder usw.) Welche gemeinsamen Eigenschaften mit individueller Ausprä- gung (wie Farbe, Fahrzeugnummer usw.) können diese Objekte besitzen? 2. Übertragung in die Modellwelt Individuelle Dinge wie z. B. Farbe = rot werden zu Attributen verallgemeinert. Kfz Hersteller: Text Hubraum: Zahl ……. Kfz: Bauplan (Vorläufer der Klasse im Sinne der OOP), der Eigen- schaften festlegt. Die Attribute haben einem be- stimmten Datentyp. Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

17 17 Was passiert mit den Fahrzeugen? C.O. Bevor die Klasse Kfz fertiggestellt werden kann, muss geklärt werden, welcher Ausschnitt der reale Welt zu modellieren ist: - Produktion des Fahrzeugs? - Verkauf des Fahrzeugs? - Reparatur des Fahrzeugs? - Fahrzeug verschrotten? Ein Autohaus ist wohl in erster Linie für die beiden mittleren Bereiche zuständig. Fragestellung (für die Verwaltung): Welche Vorgänge oder Abläufe sind von Wichtigkeit ( Geschäftsprozesse)? Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

18 18 Operationen / Methoden C.O. Die Modellwelt soll sich nun lediglich auf die Verwaltung (Auftragsbearbeitung, Rechnungswesen usw.) beziehen. Die MitarbeiterInnen in den angesprochen Abteilungen müssen Fahrzeuge: - erfassen - Stammdaten pflegen - Informationen ausdrucken - Teile bestellen usw. In der objektorientierten Programmierung bezeichnet man diese Tätigkeiten als Operationen oder Methoden. Sie werden in das Klassenmodell mit aufgenommen. Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

19 19 Klasse: Der letzte Schliff! C.O. Kfz Hersteller: Text Typ: Text ……… Hubraum: Ganzzahl ……… Farbe: Text ……. VK Preis: Währung Erfassung() Ändern() Löschen() Drucken() …………… Klassenname Attribute Methoden Notation in UML (Unified Modeling Language) Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

20 20 Und nochmal: Von der Klasse … C.O. Kfz Hersteller: Text Typ: Text ……… Hubraum: Ganzzahl ……… Farbe: Text ……. VK Preis: Währung Erfassung() Ändern() Löschen() Drucken() …………… Abstrakter Bauplan Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

21 21... zum Objekt C.O. :Kfz Hersteller= Daihatsu Typ= Terios ……… Hubraum= 1495 ……… Farbe= metallic silber ……. VK-Preis= 17800,00 Erfassung() Ändern() Löschen() Drucken() …………… Konkretes individuelles Fahrzeug Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

22 22 Erweiterung und Erklärung C.O. :Kfz Hersteller = Daihatsu Typ= Terios ……… Hubraum = 1495 Nennleistung (KW bei 6000U/min)= 77 ……… Farbe= rot ……. Grundreis= Leasingsonderzahlung= … Leasingrate = …. Laufzeit= ….. Erfassung() Ändern() Löschen() Drucken() …………… Unterstrichener Klassenname, zu dem das Objekt gehört, falls das Objekt bereits einen Namen hat: MeinKfz:Kfz Attributwerte, Daten: aktueller Zustand des Objektes, er kann durch Methoden zur Laufzeit verändert werden. Merke: Jedes Objekt besitzt eine Objektidentität, diese unterscheidet es von allen anderen Objekten. Objekt = Instanz/Exemplar einer Klasse Verhalten des Objektes: Menge von Operationen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

23 23 Aufgabe 1 C.O. Modellieren Sie bitte ein Kunden-Klassendiagramm! Überlegen Sie zunächst, welche Attributte/Methoden benötigt werden könnten. Erstellen Sie dann das entsprechende UML- Klassendiagramm. Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

24 24 Eine Lösung C.O. Kunde Kunden_Nummer : integer Name : String Adresse : String..... Umsatz : double Erfassung() Ändern() Löschen() Adressaufkleber drucken() Serienbrief erstellen() Umsatz holen() Hier wird noch ein wichtiger Aspekt der OOP deutlich: Der Umsatz des Kunden kann nur über eine Methode ermittelt werden, ein direkter Zugriff auf den Wert wäre zwar auch programmierbar (Änderung der Codierung), entspricht aber nicht der Philosophie der OOP: Verkapselung der Daten (Geheimhaltungsprinzip). Eine Änderung oder Abfrage der Daten soll nur über die dafür definier- ten Methoden ermöglicht werden. Allerdings: Der Sinn dieses Prinzips wird erst bei einer komplexeren Situation wirklich einsichtig und als Vorteil empfunden. Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassen- diagramme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

25 25 VBScript C.O. VBScript ist ein Derivat der OO Programmiersprache Visual Basic von Microsoft. Sinn einer Scriptsprache (s. auch: JavaScript) ist es nicht, größere Programmsysteme zu entwickeln oder den komplexeren Umgang mit Objekten zu realisieren. Mit Scrips werden vielmehr kleinerer Lösungen für z. B. alltäglich anfallende Tätigkeiten am Computer erstellt. Sie können aber auch in HTML Seiten eingebettet werden. Einige Vorteile von VBScript: - Implementierung von Klassen (geringer Aufwand, ohne Entwicklungsumgebung) - Erzeugen von Objekten - Senden von Botschaften an Objekte (Methodenaufruf, Rückgaben von Daten) - Codierung der logischen Grundstrukturen - Verfügbarkeit der COM – Komponenten in VBS - Verfügbarkeit einfacherer Dialogboxen unter Windows Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

26 26 Implementierung C.O. Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Dim Auto1 Dim a Dim b Dim c Set Auto1 = new Kfz a = "Opel" b=InputBox("Bitte Kfz-Typ eingeben:") c = 1600 Auto1.Erfassen a, b, c MsgBox(Auto1.ErmittleTyp) Set Auto1 = Nothing Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Dim Auto1 Dim a Dim b Dim c Set Auto1 = new Kfz a = "Opel" b=InputBox("Bitte Kfz-Typ eingeben:") c = 1600 Auto1.Erfassen a, b, c MsgBox(Auto1.ErmittleTyp) Set Auto1 = Nothing So sieht ein komplettes Programm aus, die einzelnen Abschnitte dieser Implemen- tierung werden auf den folgenden Seiten erklärt. Hinweis: Das Programm wird in einem einfachen Editor eingetippt und mit dem Dateierweiterungsnamen *.vbs agespeichert. Durch einen Doppelklick auf den Namen kann es sofort gestartet werden, MS - Windows interpretiert den Quellcode. So sieht ein komplettes Programm aus, die einzelnen Abschnitte dieser Implemen- tierung werden auf den folgenden Seiten erklärt. Hinweis: Das Programm wird in einem einfachen Editor eingetippt und mit dem Dateierweiterungsnamen *.vbs agespeichert. Durch einen Doppelklick auf den Namen kann es sofort gestartet werden, MS - Windows interpretiert den Quellcode. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

27 27 Zuerst die Klasse C.O. Kfz Hersteller: Text Typ: Text Hubraum: Ganzzahl Erfassung() Typ_holen() Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

28 28 Zuerst die Klasse C.O. Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Kfz Hersteller: Text Typ: Text Hubraum: Ganzzahl Erfassung() Typ_holen() Hinweis: Eine Typenangabe (z.B. Text, Ganzzahl) hinter dem Variablennamen gibt es in VBS nicht (anders bei VB). VBS verwaltet diese varianten Typen automatisch richtig. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

29 29 Was es sonst noch so gibt … C.O. Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Diese Programmzeile (immer am Anfang) bewirkt, dass alle Variablen vor ihrer Benutzung angemeldet sein müssen. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

30 30 Was es sonst noch so gibt … C.O. Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Diese Programmzeile (immer am Anfang) bewirkt, dass alle Variablen vor ihrer Benutzung angemeldet sein müssen. Private bedeutet, dass der Wert dieser Variable nur von Methoden der Klasse verändert werden darf. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

31 31 Was es sonst noch so gibt … C.O. Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Diese Programmzeile (immer am Anfang) bewirkt, dass alle Variablen vor ihrer Benutzung angemeldet sein müssen. Private bedeutet, dass der Wert dieser Variable nur von Methoden der Klasse verändert werden darf. Sub: Methoden der Klasse, mit der die Werte der Variablen verändert werden dürfen. In den Klam- mern (=Schnittstelle) stehen Variablen (her …), sie dienen dem Datenaustausch zwischen dem eigentlichen Programm und der Methode. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

32 32 Was es sonst noch so gibt … C.O. Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Diese Programmzeile (immer am Anfang) bewirkt, dass alle Variablen vor ihrer Benutzung angemeldet sein müssen. Private bedeutet, dass der Wert dieser Variable nur von Methoden der Klasse verändert werden darf. Sub: Methoden der Klasse, mit der die Werte der Variablen verändert werden dürfen. In den Klam- mern (=Schnittstelle) stehen Variablen (her …), sie dienen dem Datenaustausch zwischen dem eigentlichen Programm und der Methode. Kennzeichnung: Hier endet diese Methode. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

33 33 Was es sonst noch so gibt … C.O. Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Option Explicit Class Kfz Private Hersteller Private Typ Private Hubraum Sub erfassen(her, ty, hub) Hersteller = her typ = ty Hubraum = hub End Sub Function ErmittleTyp ErmittleTyp = Typ End Function End Class Diese Programmzeile (immer am Anfang) bewirkt, dass alle Variablen vor ihrer Benutzung angemeldet sein müssen. Private bedeutet, dass der Wert dieser Variable nur von Methoden der Klasse verändert werden darf. Sub: Methoden der Klasse, mit der die Werte der Variablen verändert werden dürfen. In den Klam- mern (=Schnittstelle) stehen Variablen (her …), sie dienen dem Datenaustausch zwischen dem eigentlichen Programm und der Methode. Kennzeichnung: Hier endet diese Methode. Function: Auch eine Methode. Function gibt an, dass diese Methode einen Wert an das rufende Programm zurückgibt. Kennzeichnung: Hier endet diese Klasse. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

34 34 Und nun das Objekt … C.O. Dim (vgl. Private bei der Klasse): Hier werden die Variablen angemeldet. Dim Auto1 Dim a Dim b Dim c Set Auto1 = new Kfz a = "Opel" b=InputBox("Bitte Kfz-Typ eingeben:") c = 1600 Auto1.Erfassen a, b, c MsgBox(Auto1.ErmittleTyp) Set Auto1 = Nothing Dim Auto1 Dim a Dim b Dim c Set Auto1 = new Kfz a = "Opel" b=InputBox("Bitte Kfz-Typ eingeben:") c = 1600 Auto1.Erfassen a, b, c MsgBox(Auto1.ErmittleTyp) Set Auto1 = Nothing Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

35 35 Und nun das Objekt … C.O. Dim (vgl. Private bei der Klasse): Hier werden die Variablen angemeldet. Dim Auto1 Dim a Dim b Dim c Set Auto1 = new Kfz a = "Opel" b=InputBox("Bitte Kfz-Typ eingeben:") c = 1600 Auto1.Erfassen a, b, c MsgBox(Auto1.ErmittleTyp) Set Auto1 = Nothing Dim Auto1 Dim a Dim b Dim c Set Auto1 = new Kfz a = "Opel" b=InputBox("Bitte Kfz-Typ eingeben:") c = 1600 Auto1.Erfassen a, b, c MsgBox(Auto1.ErmittleTyp) Set Auto1 = Nothing Das 1. Highlight dieses Programms: Erzeugung des Objektes Auto1(Instanz der Klasse Kfz) während der Laufzeit. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

36 36 Und nun das Objekt … C.O. Dim (vgl. Private bei der Klasse): Hier werden die Variablen angemeldet. Dim Auto1 Dim a Dim b Dim c Set Auto1 = new Kfz a = "Opel" b=InputBox("Bitte Kfz-Typ eingeben:") c = 1600 Auto1.Erfassen a, b, c MsgBox(Auto1.ErmittleTyp) Set Auto1 = Nothing Dim Auto1 Dim a Dim b Dim c Set Auto1 = new Kfz a = "Opel" b=InputBox("Bitte Kfz-Typ eingeben:") c = 1600 Auto1.Erfassen a, b, c MsgBox(Auto1.ErmittleTyp) Set Auto1 = Nothing Wertezuweisung: a) direkt im Programm b) Mit Dialogbox Das 1. Highlight dieses Programms: Erzeugung des Objektes Auto1(Instanz der Klasse Kfz) während der Laufzeit. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

37 37 Und nun das Objekt … C.O. Dim (vgl. Private bei der Klasse): Hier werden die Variablen angemeldet. Dim Auto1 Dim a Dim b Dim c Set Auto1 = new Kfz a = "Opel" b=InputBox("Bitte Kfz-Typ eingeben:") c = 1600 Auto1.Erfassen a, b, c MsgBox(Auto1.ErmittleTyp) Set Auto1 = Nothing Dim Auto1 Dim a Dim b Dim c Set Auto1 = new Kfz a = "Opel" b=InputBox("Bitte Kfz-Typ eingeben:") c = 1600 Auto1.Erfassen a, b, c MsgBox(Auto1.ErmittleTyp) Set Auto1 = Nothing Das 1. Highlight dieses Programms: Erzeugung des Objektes Auto1(Instanz der Klasse Kfz) während der Laufzeit. Wertezuweisung: a) direkt im Programm b) Mit Dialogbox Das 2. Highlight: Senden von Botschaften an das Objekt. Allgemein: Objekt.Methode param1, param2 (param1/param2: Schnittstellenparameter) Objekt löschen. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

38 38 Programmtest C.O. Dialogbox 1: Dateneingabe Daialogbox 2: Ausgabe des Kfz –Typs Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

39 39 Hinweise für Insider C.O. Der saloppe Umgang mit Prozeduren, Funktionen, der Parameterübergabe und den return-Werten mag Personen mit Erfahrung in einer imperativen Programmiersprache (Pascal, C …) verwundern, möglicherweise sogar entsetzen. Moderne Lehrbücher der Informatik legen den Schwerpunkt der Einführung in die Programmierung auf die objektorientierten Konzepte. Die Modellierung von Klassen, Objekterzeugung während der Laufzeit, das Senden von Nachrichten (darf nicht mit einem Prozeduraufruf einer rein imperativen Programmierung gleichgesetzt werden) und das Geheimhaltungsprinzip haben hier zunächst einen höheren Stellenwert als Details der Unterprogrammtechnik oder die exakte Behandlung der logischen Grundstrukturen. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

40 40 Aufgabe 2 C.O. Modellieren Sie bitte ein Kunden-Klassendiagramm, welches Methoden enthält, die Sie bereits von der Codierung her realisieren können. Erstellen Sie dann das entsprechende UML-Klassendiagramm und codieren Sie dies bitte in VBS. Führen Sie dann Programmtests durch! Modellieren Sie bitte ein Kunden-Klassendiagramm, welches Methoden enthält, die Sie bereits von der Codierung her realisieren können. Erstellen Sie dann das entsprechende UML-Klassendiagramm und codieren Sie dies bitte in VBS. Führen Sie dann Programmtests durch! Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

41 41 Lösung Aufgabe 2 C.O. Option Explicit Class Kunde Private Kundennummer Private V_N_Name Private Umsatz Sub erfassen(Kn, Vn, Um) Kundennummer = Kn V_N_Name = Vn Umsatz = Um End Sub Function ErmittleKunde ErmittleKunde = Kundennummer & " " & V_N_Name & " " & Umsatz End Function End Class Dim Kunde1 Dim k Dim n Dim u Set Kunde1 = new Kunde k=InputBox("Kundennummer:") n=InputBox("Kundenname:") u=InputBox("Kundenumsatz:") Kunde1.Erfassen k, n, u MsgBox(Kunde1.ErmittleKunde) Set Kunde1 = Nothing Option Explicit Class Kunde Private Kundennummer Private V_N_Name Private Umsatz Sub erfassen(Kn, Vn, Um) Kundennummer = Kn V_N_Name = Vn Umsatz = Um End Sub Function ErmittleKunde ErmittleKunde = Kundennummer & " " & V_N_Name & " " & Umsatz End Function End Class Dim Kunde1 Dim k Dim n Dim u Set Kunde1 = new Kunde k=InputBox("Kundennummer:") n=InputBox("Kundenname:") u=InputBox("Kundenumsatz:") Kunde1.Erfassen k, n, u MsgBox(Kunde1.ErmittleKunde) Set Kunde1 = Nothing So kann erreicht werden, dass alle Kundeninformationen auf einer Dialogbox ausgegeben werden. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

42 42 Lösung Aufgabe 2 C.O. Zusatzaufgaben: 1)Verändern Sie das Programm so, dass noch Führungstexte ausgegeben werden! 2)(Aufgabe nur für Experten) Gehen Sie bitte davon aus, dass ein zusätzliches Datenfeld mit der Aufsummierung der Umsätze aller vorherigen Jahre (ohne das aktuelle Jahr) in der Klasse vorhanden ist. Es soll bei der Ausgabe ein Gesamtsummenfeld (die alten Umsätze + Umsatz des aktuellen Jahres) angezeigt werden. Wie kann das Problem gelöst werden? (Tipp: MsgBox - Daten sind immer Zeichenketten, keine Zahlen. Hier ist wie z. B. in der Programmiersprache Delphi eine Typenumformung notwendig.) Zusatzaufgaben: 1)Verändern Sie das Programm so, dass noch Führungstexte ausgegeben werden! 2)(Aufgabe nur für Experten) Gehen Sie bitte davon aus, dass ein zusätzliches Datenfeld mit der Aufsummierung der Umsätze aller vorherigen Jahre (ohne das aktuelle Jahr) in der Klasse vorhanden ist. Es soll bei der Ausgabe ein Gesamtsummenfeld (die alten Umsätze + Umsatz des aktuellen Jahres) angezeigt werden. Wie kann das Problem gelöst werden? (Tipp: MsgBox - Daten sind immer Zeichenketten, keine Zahlen. Hier ist wie z. B. in der Programmiersprache Delphi eine Typenumformung notwendig.) Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

43 43 Lösung Aufgabe 2 (Zusatzaufgaben) C.O. Option Explicit Class Kunde Private Kundennummer Private V_N_Name Private Umsatz Private Umsatz_alt Sub erfassen(Kn, Vn, Um, Ua) Kundennummer = Kn V_N_Name = Vn Umsatz = Um Umsatz_alt = ua End Sub Function ErmittleKunde dim Umges Umges = CDbl(Umsatz) + CDbl(Umsatz_alt) ErmittleKunde = "K-Nummer: " & Kundennummer & Name: " & V_N_Name & " Gesamzumsatz:" & Umges End Function End Class Option Explicit Class Kunde Private Kundennummer Private V_N_Name Private Umsatz Private Umsatz_alt Sub erfassen(Kn, Vn, Um, Ua) Kundennummer = Kn V_N_Name = Vn Umsatz = Um Umsatz_alt = ua End Sub Function ErmittleKunde dim Umges Umges = CDbl(Umsatz) + CDbl(Umsatz_alt) ErmittleKunde = "K-Nummer: " & Kundennummer & Name: " & V_N_Name & " Gesamzumsatz:" & Umges End Function End Class Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

44 44 C.O. Anhand dieser Lösung lässt sich verdeutlichen, dass unterschiedliche Modellierungsmöglichkeiten zum gleichen Ergebnis führen. So könnte auch eine eigene Methode Addiere_Umsatz in der Klasse Kunde definiert werden. Vom Hauptprogramm aus ließe sich dann über einen Methodenaufruf die entsprechende Operation durchführen. Es kommt auf die Methode an! Aufgabenerweiterung: Modellieren Sie bitte die neue Klasse und implementieren Sie diese. Aufgabenerweiterung: Modellieren Sie bitte die neue Klasse und implementieren Sie diese. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

45 45 C.O. Das Component Object Model (COM) erlaubt (u. a.) den Zugriff auf Computerdienste mit VBS. In diesem Zusammenhang ist unter Komponente eine compilierte Programmdatei zu verstehen, welche i. d. R. mehrere Klassen enthält. Damit werden die entsprechenden Objekte (z. B. unter VBS, aber auch unter C++, C#, Java oder VB) erzeugt, mit denen z. B. der Zugriff auf Funktionen des Betriebssystems Windows realisiert werden kann. Die folgenden Beispiele orientieren sich an den Lehrbüchern von D. Johlen und H. Schwichtenberg (s. Quellen). Component Object Model Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

46 46 C.O. Das Dateisystem als Komponente FileSystemObject Drives getFile(pfad):File moveFile(quellPfad, zielPfad) …………….. Stark vereinfachte Klassenmodelle der COM – Komponente, die für das Dateisystem zuständig ist. File Name DatelastModified parentFolder moveFile(zielPfad) …………….. Beispiel eines Anwendungsfalls: Eine Datei soll von einem Verzeichnis in ein anderes verschoben werden. Konkret: Die Datei test1.txt im Verzeichnis c:\vz1\ soll in das Verzeichnis c:\vz2\ verschoben werden. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

47 47 C.O. Das Dateisystem als Komponente Set FSObjekt = CreateObject("Scripting.FileSystemObject") Set Datei = FSObjekt.getFile("h:\SE\test1.txt") Datei.move "h:\SX\" MsgBox "Dateien umkopiert!" Set FSObjekt = CreateObject("Scripting.FileSystemObject") Set Datei = FSObjekt.getFile("h:\SE\test1.txt") Datei.move "h:\SX\" MsgBox "Dateien umkopiert!" Z1 Z2 Z3 Z4 Z1 : Erzeugung des Objektes FSObjekt mit der Methode CreateObject. Als Schnittstellenparameter muss die Klasse FileSystemObject aus dem Paket Scripting angegeben werden. Z2 : Erzeugen des Objektes Datei durch das Senden der Nachricht getFile. Z3 : Senden der Nachricht move (inkl. Parameter) an das Objekt Datei. Z1 : Erzeugung des Objektes FSObjekt mit der Methode CreateObject. Als Schnittstellenparameter muss die Klasse FileSystemObject aus dem Paket Scripting angegeben werden. Z2 : Erzeugen des Objektes Datei durch das Senden der Nachricht getFile. Z3 : Senden der Nachricht move (inkl. Parameter) an das Objekt Datei. Sowohl für das Modellieren als auch für die Erklärung eines Programms ist diese verbale Ausdrucksweise ungeschickt. UML kennt neben den Klassendiagrammen noch viele weitere Modellierungstechniken. Zwei wichtige Möglichkeiten werden nun vorgestellt. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

48 48 Anwendungsfalldiagramm (Use-case) C.O. Bestellung eingeben Bestellung ändern Kunde anlegen Kunde löschen Akteur: Auftrags – annahme Akteur: System- verwalter Systemgrenze Die Aufgaben eines Programmsystems lassen sich mit den Anwendungsfalldiagrammen übersichtlich (auf hoher Ebene) darstellen. Dieses Werkzeug unterstützt (u. a.) die Formulierung der Anforderungen an das System und die Überwachung iterativer Projekte zur Erstellung desselben. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

49 49 Sequenzdiagramm C.O. Erklärung: Das Sequenzdiagramm dient (u. a.) der Darstellung, wie Objekte Nachrichten austauschen. Es werden zeitliche Aspekt berücksichtigt. Zubehörshop des Autohauses Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

50 50 Beispiele und Übungen C.O. Sequenzdiagramm für den Anwendungsfall Datei verschieben FSObjekt: FileSystemObject (new) FSObjekt: FileSystemObject getFile(…) Durch getFile wurde ein neues Objekt erzeugt! move(…) Folge: Datei ist verschoben! Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

51 51 Beispiele und Übungen C.O. File Name DatelastModified parentFolder moveFile(zielPfad) …………….. Nochmals zurück zur Klasse File: Aufgabe 3: Auf das Attribut DatelastModified kann direkt (ohne Methode) zugegriffen werden. Erstellen Sie bitte ein Script, welches das Datum der letzten Änderung einer beliebigen Datei in einem beliebigen Verzeichnis ermittelt und ausgibt. Entwerfen Sie bitte zuerst das entsprechende Sequenzdiagramm. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

52 52 Script-Lösung der Aufgabe 3 C.O. Set FSObjekt = CreateObject("Scripting.FileSystemObject") Set Ordner = FSObjekt.getFolder("h:\SE\") Set Dateien = Ordner.files Set Datei = Dateien.item("test1.txt") MsgBox "Datum des letzten Zugriffs: " & Datei.dateLastModified Set FSObjekt = CreateObject("Scripting.FileSystemObject") Set Ordner = FSObjekt.getFolder("h:\SE\") Set Dateien = Ordner.files Set Datei = Dateien.item("test1.txt") MsgBox "Datum des letzten Zugriffs: " & Datei.dateLastModified Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

54 54 Abspeichern in eine Datei C.O. Set meinFSO = CreateObject("Scripting.FileSystemObject") Set meinOrdner = meinFSO.getFolder("h:\SE\") Set meineDateien = meinOrdner.files Set meineDoku = meinFSO.CreateTextFile("h:\SE\doku.txt") meineDoku.writeLine "Projekt-Ordner" meineDoku.writeLine For Each datei In meineDateien meineDoku.writeLine datei.name & ", zuletzt geändert: " & datei.dateLastModified meineDoku.writeLine Next meineDoku.Close MsgBox "Doku-Datei erzeugt!" Set meinFSO = CreateObject("Scripting.FileSystemObject") Set meinOrdner = meinFSO.getFolder("h:\SE\") Set meineDateien = meinOrdner.files Set meineDoku = meinFSO.CreateTextFile("h:\SE\doku.txt") meineDoku.writeLine "Projekt-Ordner" meineDoku.writeLine For Each datei In meineDateien meineDoku.writeLine datei.name & ", zuletzt geändert: " & datei.dateLastModified meineDoku.writeLine Next meineDoku.Close MsgBox "Doku-Datei erzeugt!" Aufgabe 4: Untersuche Sie bitte diesen Quellcode. Formulieren Sie zu dieser Lösung die Aufgabenstellung. Wie sieht das entsprechende Sequenzdiagramm aus? Aufgabe 4: Untersuche Sie bitte diesen Quellcode. Formulieren Sie zu dieser Lösung die Aufgabenstellung. Wie sieht das entsprechende Sequenzdiagramm aus? Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

55 55 Weitere Übungen C.O. Zurück zu dem Autohaus: Zur Erstellung von Rechnungen könnten Klassendiagramme erstellt und in VBS codiert werden. Hinweise: In dieser Lerneinheit wird die Thematik Beziehungen zwischen Klassen nicht behandelt. Die oben stehende Aufgabe kann der Vorbereitung auf diese Modellierungsmöglichkeit dienen. An dieser Stelle ist es sinnvoll, die ereignisgesteuerte Programmierung vorzustellen und einen Wechsel der Programmiersprache vorzunehmen. Selbstverständlich müssen nun Themen wie Privat/Public – Variablen, Prozeduren und Funktionen, Parameter, Call by value/reference usw. ausführlich behandelt werden. Zurück zu dem Autohaus: Zur Erstellung von Rechnungen könnten Klassendiagramme erstellt und in VBS codiert werden. Hinweise: In dieser Lerneinheit wird die Thematik Beziehungen zwischen Klassen nicht behandelt. Die oben stehende Aufgabe kann der Vorbereitung auf diese Modellierungsmöglichkeit dienen. An dieser Stelle ist es sinnvoll, die ereignisgesteuerte Programmierung vorzustellen und einen Wechsel der Programmiersprache vorzunehmen. Selbstverständlich müssen nun Themen wie Privat/Public – Variablen, Prozeduren und Funktionen, Parameter, Call by value/reference usw. ausführlich behandelt werden. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

56 56 Jetzt kommt Java: OO Modellierung ohne Kompromisse C.O. public class Kfz { private String Hersteller; private String Typ; private int Hubraum; public Kfz(int Hub) { Hersteller = "Opel"; Typ = "Astra"; Hubraum = Hub; } public int gibHubraum() { return Hubraum; } public void Ausgabe_Kfz() { System.out.println(Hersteller + "-Info"); System.out.println("Typ: " + Typ); System.out.println("Hubraum: " + Hubraum); System.out.println(); } public class Kfz { private String Hersteller; private String Typ; private int Hubraum; public Kfz(int Hub) { Hersteller = "Opel"; Typ = "Astra"; Hubraum = Hub; } public int gibHubraum() { return Hubraum; } public void Ausgabe_Kfz() { System.out.println(Hersteller + "-Info"); System.out.println("Typ: " + Typ); System.out.println("Hubraum: " + Hubraum); System.out.println(); } Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Klassendefinition Daten Kunstruktor Methoden Hier: Kein Hauptprogramm!

57 57 Didaktisches Entwicklungstool C.O. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Vorteile dieses Werkzeuges: Kaum Einarbeitungszeit notwendig Läuft auf dem Java Development Kit von Sun Microsystems: Komplettes Java, nicht vereinfacht UML - ähnliche Visualisierung der Klassenstruktur Erzeugung von Objekten aus den Klassen auf Mausklick, das Schreiben eines Testrahmens ist nicht notwendig, die Methoden können direkt getestet werden Im Vordergrund stehen OO Konzepte und nicht Sprachkonstrukte einer Programmiersprache Bewährtes System, es existieren viele gute Lehrbücher

58 58 BlueJ-Editor C.O. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen

59 59 C.O. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Das Objekt wird erzeugt Hier: Klick mit rechter Maustaste

60 60 C.O. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Das Objekt wird erzeugt Kontextmenü

61 61 C.O. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Das Objekt wird erzeugt Objektname eingeben Konstruktor nimmt Wert entgegen (Parameterübergabe )

62 62 C.O. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Das Objekt wird erzeugt Objekt Klasse

63 63 C.O. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Ein zweites Objekt

64 64 C.O. Rechte Maustaste: Kontextmenü für den Methodenaufruf Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Methodenaufruf

65 65 C.O. Anzeige des Rückgabewertes (vgl. Quelltext) Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Methodenaufruf

66 66 C.O. Konsolenähnliches Fenster: Falls void Ausgabe_Kfz() angeklickt wurde, werden alle Attribute angezeigt (s. Quelltext). Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Methodenaufruf

67 67 C.O. Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Keine Beziehungsprobleme! Diese Abbildung zeigt, wie es nun weitergehen könnte: Modellierung von Beziehungen zwischen Klassen mit BlueJ. (nach Barnes, D. u. Kölling, M.: Java lernen mit BlueJ)

68 68 Quellen C.O. Balzert, Heide: Objektorientierung in 7 Tagen.- Spektrum Verlag Balzert, Helmut: Lehrbuch Grundlagen der Informatik.- Spektrum Verlag Barnes, D. u. Kölling, M.: Java lernen mit BlueJ.- Pearson-Verlag Johlen, D.: Anwendungsentwicklung.- Holland + Josenhans- Verlag Schwichtenberg, H. (u. a.): Windows Scripting.- Addison Wesley-Verlag Alle Fotos u. Abbildungen: C. Oberweis Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen Modelle und Modellierung Klassendiagra mme VBSript Objekte erzeugen Component Object Model Anwendungs- falldiagramme Sequenz- diagramme Übungen Java Quellen


Herunterladen ppt "Einführung in Klassen, Objekte und in UML Klassen und Objekte mit VBS Modellierung mit UML Anwendungsfälle mit COM Objekten Java und BlueJ Christoph Oberweis."

Ähnliche Präsentationen


Google-Anzeigen