Einführung in die Objektorientierte Programmierung

Größe: px
Ab Seite anzeigen:

Download "Einführung in die Objektorientierte Programmierung"

Transkript

1 Einführung in die Objektorientierte Programmierung MVC mit Zustandsbasierter Modellierung Helmut Paulus Max-Planck-Gymnasium Trier

2 Einstieg Diskussion: Nachteile der bisher im Unterricht entwickelten Verschlüsselungsverfahren leichte Entschlüsselung möglich Ziel: bessere Verfahren nutzen evtl. Quellecode von anderen in eigene Programme einbinden, möglichst ohne Aufwand Wünschenswert wäre Bereits implementierte Verfahren nutzen (soweit sie zur Verfügung stehen) Einbau ins eigene Programm möglichst einfach, z. B. als Klasse wie die Delphi-Komponenten Grundsätzliche Schwäche der bisher entwickelten Programme Der Quellcode ist in eine GUI integriert Wiederverwendbarkeit ist nicht nicht ohne Aufwand gegeben Lösung: Objektorientierte Programmierung 2

3 Verwendung einer vorgegeben Klasse (2) Lesen und Analysieren einer Klassendokumentation Klärung der zur Verfügung gestellten Dienste Die Klasse TCaesar als Bauplan für Verschlüsselungsobjekte Objekte vom Typ TCaesar stellen Dienste zur Verfügung: Aufträge Anfragen Die nächsten Schritte Entwicklung (oder Vorgabe) eines Rahmenprogramms Experimente mit dem Programm z. B.: Der Versuch, einen Dienst der Klasse zu nutzen scheitert, typische Fehlermeldung, Ursache: noch kein Objekt vorhanden, das den Dienst ausführen könnte 3

4 Arbeiten mit Klassen Erarbeitung eines Grundschemas zum Arbeiten mit vorgegebenen Klassen Vorbereitung: Klasse integrieren, Objektbezeichner deklarieren Verwendung: Objekt erzeugen, Dienste des Objekts nutzen, Objekt vernichten Implementierung in Delphi Vorbereitung: uses Windows,, mtcaesar; type TGUI = class(tform) BEntschluesseln: TButton; BEntschluesseln: TButton; procedure BVerschluesselnClick(); procedure BEntschluesselnClick(); procedure FormCreate(); procedure FormDestroy(); private { Private-Deklarationen } Caesar : TCaesar; public { Public-Deklarationen } Einbinden der Unit Objektbezeichner (-Variable) deklarieren 4

5 Objekte verwenden Mit dem Objekt arbeiten: procedure TGUI.FormCreate(); begin Caesar := TCaesar.Create; procedure TGUI.FormDestroy(); begin Caesar.Free; Objekt erzeugen (z. B. ereignisgesteuert) Objekt vernichten (z. B. ereignisgesteuert) procedure TGUI.BVerschluesselnClick(); var Quelltext, Geheimtext : string; begin // Eingabe Quelltext := MText.Text; // Verarbeitung Geheimtext := Caesar.getVerschluesselt(QuellText); // Ausgabe MText.Text := Geheimtext; Verschlüsselungsdienst des Objekts nutzen 5

6 Vertiefung des Objektverständnisses Objekt als Einheit aus Attributen und Methoden, zuständig für die Erledigung bestimmter Aufgaben aktive und autonome Programmeinheit (Modul), die Aufgaben erledigt Klasse: Bauplan für Objekte, der für die Erzeugung von Objekten benötigt wird Diskussion: Vorteile des Objekt-Konzepts: Geheimnisprinzip, Modularisierung Verdeutlichung durch einen Austausch der Klasse (z. B. TVigener) Übungen zur Verwendung von Klassen (2) Beispiel: Verwenden einer Klasse zur Ermittlung von Buchstabenhäufigkeiten in Texten TTextAnalysator 6

7 Aufbau und Implementierung einer Klasse (2) Analyse einer vorher benutzten Klasse (z. B.: TCaesar) Eine Klassen-Deklaration besteht aus Deklarationen von Attributen für die verschiedenen Eigenschaftender Objekte, Konstruktoren zur Erzeugung und Initialisierung der Objekte, Methoden, d.h. Operationen (Algorithmen) auf Objekten. Beschreibung der Klassenstruktur mit einem UML-Klassendiagramm Implementierung in Delphi TCaesar = class private //Attribute Schluessel : integer; public //Methoden constructor create; procedure SetSchluessel ( ); function getschluessel : integer; function getvorbereitet ( ) : string; function getentschluesselt( ) : string; function getverschluesselt (..) : string; Hinweise zur Implementierung: Jede Klasse sollte in einer separaten Datei des entsprechenden Namens stehen. Klassendeklaration im Interface-Teil, Quellcode im Implementation-Teil der Klassenunit Die Schlüsselworte private bzw. public klassifizieren, für wen die entsprechenden Elemente zugänglich sind. Innerhalb einer Objekt-Methode/eines Konstruktors kann auf die Attribute des Objekts direkt zugegriffen werden. 7

8 Darstellung objektorientierter Modelle Das UML-Klassendiagramm des Chiffiersystems zeigt den Aufbau der Anwendung und die Beziehungen zwischen den Objekten. Das Diagramm ist statisch, es werden keine Programmabläufe sichtbar. Das Formular vom Typ TGUI verwaltet die Objekte Caesar und Analysator, d. h. es ist zuständig für deren Erzeugung und Vernichtung. (hat-beziehung) Die Diagramme sind unabhängig von der Programmiersprachen! 8

9 Vererbung: Vererbung Jedes Formular besitzt "von Anfang an" gewisse Eigenschaften, die dieses spezielle Formular (Klasse TForm1) von einer Oberklasse (Klasse TForm) geerbt hat. Mit Hilfe des Vererbungsmechanismus kann man existierende Klassen erweitern, d. h. neue Eigenschaften und Operationen hinzufügen. Beispiel: Die Klassen TCaesar und TVigenere haben gemeinsame Schnittstellen, könnten also aus einer gemeinsamen Oberklasse abgeleitet werden. Klassenhierarchie Bei Delphi sind alle Objekte Nachfahren eines Urobjekts - Klasse TObject. In der Klasse TObject wird das grundlegende Verhalten, das allen Objekten in Delphi gemeinsam realisiert. (Z. B. Standardkonstruktor, Destructor ) Jede objektorientierte Programmierumgebung stellt eine Klassenbibliothek zur Verfügung, deren Klassen hierarchisch angeordnet sind. 9

10 Delphi s Klassenhierarchie 10

11 Entwicklung einer eigenen Klasse (3) Entwicklung eines objektorientierten Modells Beispiel: Eine einfache Uhr mit Digitaler Anzeige soll mit Hilfe von geeigneten Objekten realisiert werden. 12 : 14 : 04 Überlegungen zur Objektstruktur Welche Merkmale sind charakteristisch für eine Uhr, also allen Uhrentypen gemeinsam? Welche Funktionalitäten gehören zu den Basiseigenschaften einer Uhr? Bzw. Welche Dienste muss eine Uhr zur Verfügung stellen, um ihre Aufgabe zu erfüllen? Lässt sich das Objekt Uhr noch zerlegen? Entwicklungsschritte OO-Analyse Identifikation von Objekten: Zähler für Sekunden (modulo 60), Zähler für Stunden (modulo 24) OO-Entwurf (-Design) Idee: Eine Klasse soll Zählerobjekte modulo einer vorgebbaren Grenze nutzen können Modellierung der Attribute und Methoden Beschreibung des Modells mit UML /Dokumentation Implementierung der Klasse Testen der Klasse 11

12 Modellierung des Zählers Der Objekttyp Zähler Welche Eigenschaften des Objekts Zähler sind für die Beschreibung in einem Programm von Interesse? Ergebnisse der Analyse: Der Zählerstand: Er soll nur positive Werte (bzw. 0) annehmen können. Der Zähler arbeitet nach dem Prinzip: Weiterzählen, bis ein maximaler Wert erreicht ist, dann wieder bei Null beginnen. Der Zähler kann wieder in den Startzustand (Zählerstand 0) zurückversetzt werden. Der Zähler kann auf einen bestimmten (Anfangs-)Zählerstand gesetzt werden. Der Zählerstand kann ausgelesen werden. Dokumentation: Schnittstellen- und Verhaltensbeschreibung aller öffentlichen Methoden Beschreibung des Modells mit UML Entwicklungsschritte bisher weitgehend unabhängig von der Programmiersprache! Implementation und Testprogramm 12

13 Testprogramm Test des Modulozähler-Objekts mit Hilfe eines Testprogramms GUI- Klasse (Anwendungsfenster) Fachklasse (Datenmodell) Das Formular enthält Objekte zur Manipulation und Anzeige des Zählers. Veröffentlichung der Klasse Entwicklung der Uhr mit Hilfe der ModuloZähler-Klasse 13

14 Zusammensetzen der Uhr Aufgabe: Entwickle mit Hilfe der Zählerobjekte eine Uhr. Die Uhr soll dabei vorerst noch nicht selbst laufen und in die GUI eingebaut werden. Prototyp Klassendiagramm Die GUI verwaltet die Zählerobjekte (Hat-Beziehung) 14

15 Implementierung Datenmodell type TGUI = class(tform) private { Private-Deklarationen } stundenzaehler: TModuloZaehler; minutenzaehler: TModuloZaehler; public procedure zeitanzeigen; { Public-Deklarationen } Erzeugung procedure TGUI.FormCreate(Sender: TObject); begin stundenzaehler := TModuloZaehler.create(23); minutenzaehler := TModuloZaehler.create(59); zeitanzeigen; Nachteil: Steuerung Zähler in der GUI Anzeigen der Zeit / Abfragen der Zählerstände procedure TGUI.zeitAnzeigen; var hs, ms, ss : string; h,m,s : integer; begin h := stundenzaehler.getstand; if h < 10 then hs := '0' + IntToStr(h) else hs := IntToStr(h); m := minutenzaehler.getstand; if m < 10 then ms := '0' + IntToStr(m) else ms := IntToStr(m); Lanzeige.caption := hs+' : ' + ms; Die Uhr tickt procedure TGUI.BTickClick(Sender: TObject); begin minutenzaehler.weiterzaehlen; if minutenzaehler.getstand = 0 then stundenzaehler.weiterzaehlen; zeitanzeigen; 15

16 Trennung von GUI und Datenmodell - MVC (2) Analyse des entwickelten Programms zeigt: Uhr bildet noch keine Einheit (3 lose Bausteine). Steuerung der Zähler (Uhrwerk) erledig die GUI, was eigentlich Aufgabe der Uhr ist! Uhr abhängig vom Formular. Verbesserung: Vollständige Entkopplung von GUI und Datenmodell (MVC) Alternative Vorgehensweisen zur Erarbeitung des MVC-Entwurfsmusters: Demonstration eines Programms mit vollständiger Trennung Experimente mit dem Programm Analyse dieses Programms Objekte mit Beziehungen zu anderen Objekten siehe auch: Objektorientierte Software-Entwicklung - Teil 2 Entwicklung einer MVC- Uhr durch Erweiterung des entwickelten Programms 16

17 MVC-Modell einer Uhr GUI Model schreibt liest Darstellung View Steuerung Control Realisierung der Entkopplung: Das Model hat keinen Zugriff (keine Referenzen) auf GUI-Objekte! Model in eigener Unit Model völlig unabhängig von der GUI. Die GUI hat Zugriff auf das Model (hat-beziehung). Diskussion: Vorteile/Nachteile 17

18 Aufgabe: Entwickle mit Hilfe der Zählerobjekte eine Uhr. Modellierung der MVC-Uhr Anforderungen: 1. Die Uhr soll dabei vorerst noch nicht selbst laufen. 2. Die Uhr soll als eigenständiger Baustein, der unabhängig von GUI-Objekten ist, entwickelt werden. Analyse Die Uhr besitzt drei Zählerobjekte als Stunden-, Minuten- und Sekundenzähler. Stunden, Minuten und Sekunden können gesetzt werden. Stunden, Minuten und Sekunden können ausgelesen werden. Die Uhrzeit kann schrittweise erhöht werden. Klassendiagramm Kurzbeschreibung: Das Uhrobjekt verwaltet die Zählerobjekte, d. h. es erzeugt und vernichtet sie. Gemäß dem Geheimnisprinzip werden die Zählerobjekte als private bzw. protected deklariert, sind also dem Benutzer verborgen. Der Zugriff erfolgt indirekt mit Hilfe der Set- und Get- Methoden. 18

19 Entwurf einer MVC-Uhr Prototyp Klassendiagramm Dokumentation 19

20 Weitere Uhrenbeispiele Uhr-Beispiel wie im Buch "Barnes, Kölling: Java lernen mit BlueJ. Pearson Studium." Implementierungen mit Delphi : Objektorientierte Software-Entwicklung - Teil 1 Katja Weishaupt: K. Merkert (HSG-Kaiserlautern) Weiterentwicklungen Beispiele: Selbstlaufende Uhr, Wecker, Schachuhr, Zeitzonenuhr, 20

21 Entwicklung weiterer Klassen(6) Entwicklung objektorientierter Modelle (u. U. mit mehreren Klassen) Beispiele: Lottogenerator mit Tippscheinauswertung Klasse "Bruch", die Kürzen und Erweitern als Dienste zur Verfügung stellt Das Spiel "chuck a luck" mit Objekten für Würfel, Konto und Spielbrett siehe auch: Objektorientierte Software-Entwicklung - Teil 1 Es empfiehlt sich, bei der Modellierung von Klassen darauf zu achten, dass diese auch in anderen Zusammenhängen wiederverwendet werden können. Abstraktion, Wiederverwendung Dokumentation 21

22 Zusammenfassung OOP OOP-Idee: Vorstrukturierung komplexer Systeme anhand natürlicher Objekte Jedes Objekt hat Fähigkeiten und Eigenschaften Verteilung von Aufgaben (Zuständigkeiten) Prinzipien: Objekt und Klasse Geheimnisprinzip Beziehung/Assoziation Vererbung Eine Klassen-Deklaration besteht aus Deklarationen von: Attributen für die verschiedenen Eigenschaftender Objekte Konstruktoren zur Erzeugung und Initialisierung der Objekte Methoden, d.h. Operationen (Algorithmen) auf Objekten UML-Klassendiagramm Zeigt die Klassen einer Anwendung und die Beziehungen zwischen diesen Klassen. Es liefert Informationen über den Aufbau der Anwendung. Entwurfsprinzip: Trennung von GUI und Modell (MVC) 22

23 Programmierprojekt (6) Vertiefung der bisher entwickelten Prinzipien MVC-Entwurfsmuster Phasen der OOP OOA OOD OOP - Zyklus Beispiel: Entwicklung interaktiver Spiele oder Simulationen Entwicklung eines interaktiven Roulette-Spiels (in Analogie zum Spiel "chuck a luck"); Anwendung des bisher Gelernten in einem etwas größeren Zusammenhang Ampelsteuerung Spielautomat (Slotmaschine) Memory Vorgehensweise Gemeinsam Spezifikation der Anforderungen objektorientierte Analyse / und Design arbeitsteilig Implementierung der Klassen und Testen des Systems; begleitende Dokumentation des Systems siehe Dokumentationsgerüst (K. Merkert): 23

24 Unterrichtmaterialien Links K. Merkert: R. Mechling: K. Heidler: Hessischer Bildungsserver: S. Spolwig: Martin Jakobs: Werkzeuge UMLed Violet BlueJ JavaEditor 24

25 Zustandsbasierte Modellierung MVC 25

26 Zustandsbasierte Ablaufmodellierung Beispiel: Spiels 17 und 4 Problem: Um Fehlbedienungen zu vermeiden müssen je nach Spielphase bestimmte Schaltflächen deaktiviert sein. Modellierung des Spielverlaufs: Spielsumme auf 0 Zahl anfordern Spiel beenden Spielzustände: Z0 Z1 Bereit - für ein neues Spiel Spiel in Gang - Spieler würfelt 26

27 Modellierung des Zustandsautomaten Steuerung durch Ereignisse: Alter Zustand Auslösende Aktion Ausgelöste Aktion Neuer Zustand Z0 BtNeuClick Spielsumme auf 0 btneu deaktivieren, btzahl /Btaufhoeren aktivieren Z1 Z1 btneuezahlclick Spielsumme bestimmen [Spielsumme < 21] sonst Spiel beenden BtNeuClick aktivieren btzahl /BtSpielbeenden aktivieren Z1 Z0 Implementierung: Datentyp für Zustandsvariable: TZustand = (z0, z1); TGUI = class(tform) BtNeu: TButton; BtZahl: TButton; private { Private-Deklarationen} Punkte : integer; Ergebnis : string; SpZustand : TZustand; procedure neuerzustand; public { Public-Deklarationen} 27

28 Implementierung Überführungsfunktion: procedure TGUI.neuerZustand; begin case SpZustand of z0 : begin SpZustand := z1; BtNeu.Enabled := false; BtZahl.Enabled := true; BtSpielbeenden.Enabled := true; z1 : begin SpZustand := z0; BtNeu.Enabled := true; BtZahl.Enabled := false; BtSpielbeenden.Enabled := false; Zustandswechsel auslösen procedure TGUI.BtZahlClick(); var Zufall : integer; begin //Eingabe Zufall := random(6)+1; //Verarbeitung Punkte := Punkte + Zufall; if Punkte >= 21 then begin if Punkte > 21 then Ergebnis := 'Du hast leider verloren' else Ergebnis := 'Du hast gewonnen!!!'; neuerzustand; //Ausgabe 28

29 Arbeitsschritte: Simulation einer einzelnen Ampel(4) Ziel: Simulation einer einzelnen Ampel mit klarer Trennung der Modellierung und Darstellung ( MVC-Konzept) Modellierung der einzelnen Phasen einer (deutschen) Ampel Zustandsdiagramm Datenmodell: Zustandsvariable, die 4 verschiedene Werte annehmen kann Die Zustände werden zyklisch durchlaufen auf Tastendruck 29

30 MVC-Architektur Controller Steuerung schreibt View Ansicht liest informiert Model (Daten,Verarbeitung) Fachkonzept GUI (graphical user interface) Die interne Datenverarbeitung ist von der Benutzeroberfläche (GUI) gänzlich abgekoppelt. Die Modellklassen werden dazu in separaten Units gespeichert, die keine Beziehung zum Formular haben! Das Modell kennt weder View noch Controller. Das bedeutet: In den Datenklassen werden keine View oder Controllermethoden aufgerufen! View und Controller kennen das Modell und lesen und schreiben die Daten. View und Controller bilden bei Delphi das Formular. 30

31 Modellierung der Ampelsteuerung Modellierung der Zustände TZustand = (aus, rot, rotgelb, gruen, gelb); Klassendiagramm Implementierung procedure TAmpelsteuerung.schalte; begin //Überführungsfunktion case Zustand of aus : Zustand := rot; rot : Zustand := rotgelb; rotgelb : Zustand := gruen; gruen : Zustand := gelb; gelb : Zustand := rot; Die Methode schalte ändert den Zustand zyklisch (Überführungsfunktion) Die Methode wird von außen (Control) aufgerufen. Die einzelnen Phasen sind noch gleich lang. Durch Änderung der Überführungsfunktion kann ein anderer Schaltzyklus erreicht werden, ohne dass an der GUI etwas geändert werden muss! 31

32 Modellierung von View und Control View mit Hilfe von Shapes Control Schaltfläche Da die Steuerung keine Verbindung zur GUI hat, kann sie die Aktualisierung der Ansicht nicht auslösen, wenn sich der Ampelzustand ändert. Dies muss daher von GUI selbst initiiert werden! 32

33 Implementierung Weiterschalten der Ampel procedure TGUI.BSchalterClick(); begin Ampel.schalte; aktualisiereansicht; Aktualisierung der Ansicht procedure TGUI.aktualisiereAnsicht; begin case Ampel.GetZustand of rot : Panzeige.Caption := Rot ; rotgelb: Panzeige.Caption := RotGelb ; gruen: Panzeige.Caption := Grün ; gelb: Panzeige.Caption := Gelb ; Die Ansicht fragt den Zustand der Ampel ab und aktualisiert sich, wenn sie dazu aufgefordert wird. Dies kann auf unterschiedliche Weise geschehen: von der GUI bei jeder Aktivierung des Models permanent, timergesteuert (Polling) durch Ereignis, das vom Model ausgelöst wird Vorteile des MVC-Entwurfs: Die Darstellung kann sehr schnell geändert werden. Ebenso die Steuerung, z. B. durch einen Timer 33

34 Links Weitere Übungen und Vertiefungen z.b. Simulation zweier Ampeln an einer Baustelle wie in Spolwig Atze's Ampelsteuerungs-Nexus, Uni Hannover Bundeswettbewerb Informatik 2003,Aufgaben 2.Runde K. Merkert:

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

PHP Aufbaukurs. Tag 3. PHP5 & Klassen PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: olkhovskiy@rrzn.uni-hannover.de PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1

Mehr

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun Java Projekt Schiffe Versenken mit GUI 1. Über den Autor: Name: Marija Matejic Matrikelnummer: 9352571 E-mail: marijamatejic@yahoo.com

Mehr

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur UML-Klassendiagramme als Werkzeug im Unterricht Blitzlicht? In welcher Programmiersprache(n) unterrichten Sie?? In welchem Umfang unterrichten Sie Objektorientierung??

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2 EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2 Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Ein wichtiges Konzept der Software-Architektur

Ein wichtiges Konzept der Software-Architektur Ein wichtiges Konzept der Software-Architektur Dr. Peer Kröger, Arthur Zimek Ludwig-Maximilians-Universität München, Institut für Informatik, LFE Datenbanksysteme Programmierpraktikum Wintersemester 2007/08

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse

Mehr

SWE5 Übungen zu Software-Engineering

SWE5 Übungen zu Software-Engineering 1 Übungen zu Software-Engineering 1) Klassen und Objekte 2) Telefonanlage 3) Objekt- und Klassendiagramme 4) Assoziationen 5) Telefonanlage (Erweiterung) 6) Fahrzeuge 7) Familien 2 Aufgabe 1: Klassen und

Mehr

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung? Kapitelübersicht Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge Was bedeutet Objektorien+erung? ObjektorienCerte Analyse und Design die Objektmodellierung

Mehr

Informatik für Schüler, Foliensatz 21 Objektorientierte Programmierung

Informatik für Schüler, Foliensatz 21 Objektorientierte Programmierung rof. G. Kemnitz Institut für Informatik, Technische Universität Clausthal 23. April 2009 1/14 Informatik für Schüler, Foliensatz 21 Objektorientierte Programmierung Prof. G. Kemnitz Institut für Informatik,

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

Mehr

Java lernen mit BlueJ

Java lernen mit BlueJ Java lernen mit BlueJ Eine Einführung in die objektorientierte Programmierung David J. Barnes Michael Kölling 4.0 Lernen in Eigenregiegi Vorlesungen Seminare Übungen Bücher Webseiten Diskussionslisten

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Delphi eine Einführung

Delphi eine Einführung Delphi eine Einführung 1. Die Entwicklungsumgebung Delphi ist ein sogenanntes RAD Werkzeug. RAD = Rapid Application Development = schnelle Anwendungsentwicklung Merkmale: - es gibt vorgefertigte Komponenten

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Techniken der Projektentwicklungen

Techniken der Projektentwicklungen Von der Analyse zum Entwurf 5. Termin Vom Use Case zum Domänenmodell Bis zum nächsten Mal Vom Use Case zum Domänenmodell Vom Use Case zum Domänenmodell Was ist ein Domänenmodell? Graphische Beschreibung

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster

Mehr

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg. Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert

Mehr

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4. Agenda für heute, 4. Mai, 2006 Programmierparadigmen Imperative Programmiersprachen In Prozeduren zusammengefasste, sequentiell ausgeführte Anweisungen Die Prozeduren werden ausgeführt, wenn sie als Teil

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

SharePoint Demonstration

SharePoint Demonstration SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit

Mehr

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Design Pattern - Strukturmuster CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi Agenda Einleitung Strukturmuster Fassade Model View Controller Vergleich 2 Einleitung Strukturmuster

Mehr

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Stellvertretenden Genehmiger verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1. Grundlegende Informationen 3 2.1 Aktivieren eines Stellvertretenden Genehmigers 4 2.2 Deaktivieren eines Stellvertretenden Genehmigers 11 2 1. Grundlegende Informationen

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

Java Einführung Packages

Java Einführung Packages Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)

Mehr

Übungsklausur vom 7. Dez. 2007

Übungsklausur vom 7. Dez. 2007 Übungsklausur vom 7. Dez. 2007 Ein Lösungsmuster Teilbereiche der Softwaretechnik Software Anforderungen Software Entwurf Software Konstruktion Software Test Software Wartung Software Konfigurationsmanagement

Mehr

Software-Engineering SS03. Zustandsautomat

Software-Engineering SS03. Zustandsautomat Zustandsautomat Definition: Ein endlicher Automat oder Zustandsautomat besteht aus einer endlichen Zahl von internen Konfigurationen - Zustände genannt. Der Zustand eines Systems beinhaltet implizit die

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

Einführung in PHP. (mit Aufgaben)

Einführung in PHP. (mit Aufgaben) Einführung in PHP (mit Aufgaben) Dynamische Inhalte mit PHP? 2 Aus der Wikipedia (verkürzt): PHP wird auf etwa 244 Millionen Websites eingesetzt (Stand: Januar 2013) und wird auf etwa 80 % aller Websites

Mehr

Rahmenbedingungen und Integrationsvoraussetzungen

Rahmenbedingungen und Integrationsvoraussetzungen Objektorientierte Modellierung unter Einsatz eines CASE-Tools im Informatikunterricht der Jahrgangsstufe 11 Stefan Moll GI-Workshop Bommerholz, 11.10.02 Rahmenbedingungen und Integrationsvoraussetzungen

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt AMPEL-Steuerung(en) Die Beschreibung und Programmierung der Ampel (vor allem Ampel_5) können sehr kompliziert

Mehr

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert. Usability Heuristiken Karima Tefifha Proseminar: "Software Engineering Kernkonzepte: Usability" 28.06.2012 Prof. Dr. Kurt Schneider Leibniz Universität Hannover Die ProSeminar-Ausarbeitung beschäftigt

Mehr

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen Dialognetze Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen Dialogabläufe auf Fensterebene "grobe Dialogabläufe" d.h. Wechsel zwischen

Mehr

Factory Method (Virtual Constructor)

Factory Method (Virtual Constructor) Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Übung 4. Musterlösungen

Übung 4. Musterlösungen Informatik für Ökonomen II HS 2010 Übung 4 Ausgabe: 18.11.2010 Abgabe: 25.11.2010 Musterlösungen Schreiben Sie Ihre Namen und Ihre Matrikelnummern in die vorgesehenen Felder auf dem Deckblatt. Formen Sie

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Eine Anwendung mit InstantRails 1.7

Eine Anwendung mit InstantRails 1.7 Eine Anwung mit InstantRails 1.7 Beschrieben wird das Anlegen einer einfachen Rails-Anwung, die ohne Datenbank auskommt. Schwerpunktmäßig wird auf den Zusammenhang von Controllern, Views und der zugehörigen

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Inhalt dieser Einheit JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand: 01.2013

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand: 01.2013 Einbindung des MC-Hx Modul als MODBus TCP Slave MB DataTec GmbH Stand: 01.2013 Kontakt: MB DataTec GmbH Friedrich Ebert Str. 217a 58666 Kierspe Tel.: 02359 2973-22, Fax 23 Web : www.mb-datatec.de e-mail:

Mehr

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords 4.0 Proinformatik III Objektorientierte Programmierung Michael Kölling University of Kent Canterbury, UK Selbstbestimmtes Lernen Vorlesung Tutorium Übungen Buch Web-Seite Üben, üben, üben! Format Vorlesung:

Mehr

Erster Bug: eine Motte

Erster Bug: eine Motte SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

5 Projekt Bankverwaltung

5 Projekt Bankverwaltung Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen

Mehr

Abschnitt 16: Objektorientiertes Design

Abschnitt 16: Objektorientiertes Design Abschnitt 16: Objektorientiertes Design 16. Objektorientiertes Design 16 Objektorientiertes Design Informatik 2 (SS 07) 610 Software-Entwicklung Zur Software-Entwicklung existiert eine Vielfalt von Vorgehensweisen

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

6.8.4.9 Übung - Freigabe eines Ordners und Zuordnung eines Netzwerlaufwerks in Windows XP

6.8.4.9 Übung - Freigabe eines Ordners und Zuordnung eines Netzwerlaufwerks in Windows XP 5.0 6.8.4.9 Übung - Freigabe eines Ordners und Zuordnung eines Netzwerlaufwerks in Windows XP Einführung Drucken Sie diese Übung aus und führen Sie sie durch. In dieser Übung erstellen Sie einen Ordner

Mehr

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de Agiles Design Dr.-Ing. Uwe Doetzkies Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail: gi@uwe.doetzkies.de startupcamp berlin 15.3.2013 Regionalgruppe Berlin/Brandenburg Arbeitskreis Freiberufler

Mehr

Windows XP Jugendschutz einrichten. Monika Pross Molberger PC-Kurse

Windows XP Jugendschutz einrichten. Monika Pross Molberger PC-Kurse Windows XP Jugendschutz einrichten Monika Pross Molberger PC-Kurse Um ein Benutzerkonto mit Jugendschutzeinstellungen zu verwenden, braucht man ein Eltern- Konto (Administrator) und eine Kinderkonto (Standard).

Mehr

Some Software Engineering Principles

Some Software Engineering Principles David L. Parnas: Some Software Engineering Principles Marco Oppel 30.06.2004 Seminar Software-Architektur Institut für Informatik Humboldt Universität zu Berlin 1 Problemstellung Software Engineering Multi-Personen

Mehr

Klassendiagramm. (class diagram)

Klassendiagramm. (class diagram) : Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Lösungsvorschlag für Übungsblatt 6 Software Engineering 1 (WS 2012/13)

Lösungsvorschlag für Übungsblatt 6 Software Engineering 1 (WS 2012/13) Prof. Ina Schaefer Institut für Softwaretechnik und Fahrzeuginformatik TU Braunschweig Lösungsvorschlag für Übungsblatt 6 Software Engineering 1 (WS 2012/13) Ausgabe: 12. Januar 2013 Abgabe: 25. Januar

Mehr

Dokumentation zum Spielserver der Software Challenge

Dokumentation zum Spielserver der Software Challenge Dokumentation zum Spielserver der Software Challenge 10.08.2011 Inhaltsverzeichnis: Programmoberfläche... 2 Ein neues Spiel erstellen... 2 Spielfeldoberfläche... 4 Spielwiederholung laden... 5 Testdurchläufe...

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009 Testen von Software Systemen Übung 02 SS 2009 Version: 1.0 09.06.2009 Komponententest Kunde: Dr. Reinhold Plösch Dr. Johannes Sametinger Kundenreferenz: 259.019 Team 19 Mitarbeiter: Christian Märzinger

Mehr

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von

Mehr