OOSE Objektorientierte Softwareentwicklung
Vorlesung
Inhalt der Vorlesungsreihe: Objektorientierte Softwareentwicklung
- Spezifikation, Analyse und Design mit OO-Methoden
- UML – Unified Modelling Language
- Die C++-Programmiersprache
- Design Patterns
- Erarbeiten eines Projektbeispiels
Organisatorisches
- Zeit:
- Ort: Hörsaal Seminarraum K2002a
- Person: Peter Brückner peter@bj-ig.de Telefon:+49=361-2124012
- Modus: 14 Vorlesungen/Seminare, Projekterarbeitung eine Klausur
- Klausur: Termin: , 60 Minuten/40 Punkte – Schein ab 50% – Projekterarbeitung wird mit bis zu 10 Punkten berücksichtigt
Voraussetzungen
- Algorithmen und Datenstrukturen
- Datenbanken (Grundbegriffe)
- Programmierparadigmen
- Logisches und analytisches Denken
- Nützlich: C, Java oder C++ Kenntnisse, UML
Links
- UML (Spezifikation) http://www.omg.org/technology/documents/formal/uml.htm
- UML (Introduktion) http://www.togethersoft.com/services/practical_guides/umlonlinecourse/index.html
- Object Managment Group (OMG) http://www.omg.org
- Rational(bei IBM) http://www.rational.com
- Bjarne Stoustrup http://www.research.att.com/~bs/homepage.html
- Bertrand Meyer http://www.inf.ethz.ch/personal/meyer/
- STL (Standard Template Library) http://www.sgi.com/tech/stl
- XML (Extensible Markup Language) http://www.w3.org/XML/
Bücher
- Unified Modelling Language User Guide
Grady Booch, James Rumbaugh, Ivar Jacobson Addison Wesley Longman 1999 ISBN: 0201571684 - UML Distilled. A Brief Guide to the Standard Object Modeling Languange
Martin Fowler, Kendall Scott; Addison-Wesley Professional 1999 ISBN: 020165783X - The C++ Programming Language
Bjarne Stroustrup; Addison-Wesley Professional 2000 ISBN: 0201700735 - Design Patterns. Elements of Reusable Object- Oriented Software
Erich Gamma, Richard Helm, Ralph Johnson; Addison-Wesley Professional 1997 ISBN: 0201633612 - UML&Work
Martin Hinz und Gerti Kappel Dpunkt Verlag 2005 ISBN: 3898642615
Script
OOSE-2006-12-03.pdf
Script der Vorlesung (pdf)
OOSE-neu.odp
Script der Vorlesung (odp)
Projekt
Zur Unterstützung der Vorlesung wird ein Projektbeispiel erarbeitet.Es werden dabei 10 Hausaufgaben vergeben. Die jeweils mit einem Punkt, der für die Klausur einbezogen wird, bewertet werden.
Mails bitte an peter@bj-ig.de mit
Subject: [OOSE A1 XXXXX]
schicken.
Wie sie sicherlich schon erraten haben steht das XXXXX für ihre Matrikelnummer und das A1 für die erste Aufgabe. Auch bei Nachfragen das „Subject“ (Betreff) korrekt angeben und nur einmal nachfragen!
Bitte auch keine Anlagen in exotischen Formaten wie doc,xls, … Bitte nur: text (inline) bevorzugt, sonst pdf oder für Bilder png/jpg. Die Programme bitte im Quellcode.
Aufgabe 1 (A1)
- Erstellen Sie ein C++-Programm, das eine Zeitangabe in Sekunden in eine Datumsangabe umrechnet.
- Die Sekundenwerden ab dem 1970-01-01 in UTC gemessen
- Die Übergabe des Sekundenwerts erfolgt auf der Kommandozeile als Argument also z.B. „aufgabe1 4567171“
- Die Ausgabe des Datums erfolgt in iso-Notation also z.B. „2007-10-12T13:37:33 MET“ auf der Standard-Ausgabe des Programms.- Bitte vergessen Sie den Test nicht.
Aufgabe A2
Ein Bekannter möchte Sie mit der Erstellung einer Software betrauen. Er möchte eine Applikation zum Verwalten von Kontaktdaten. Dort sollen Kunden, Mitarbeiter, Firmen und ähnliches mit entsprechenden Zusatzinformationen wie Adressen und Telefonnummern verwaltet werden.
Führen Sie ein (virtuelles) Gespräch mit dem Auftraggeber. Stellen Sie danach ein Glossar (ca. 5 Einträge) und Use-Cases (ca. 5) zusammen! Benutzen Sie dazu die formellen Elemente aus der Wikipedia: de.wikipedia.org/wiki/Anwendungsfall!
Zeichnen Sie ein Use-Case Diagramm!
Aufgabe A3
Eine ‚Kontaktverwaltung‘ soll als Teil einer Groupware erstellt werden. Dabei sollen Kontakte (also Personen und Gesellschaften) verwaltet werden. Kontakten werden Adressen, Telefonnummern, Emailadressen zugewiesen. Kontakte können bestimmte Funktionen haben: Lieferant, Kunde, Mitarbeiter. Erstellen Sie ein Klassendiagramm mit den nötigen Klassen, Generalisierungen, Attributen und Assoziationen.
Aufgabe A4
Betrachten Sie das Klassendiagramm aus dem download-Bereich! Laden Sie sich den Anfangsstand des Programmes herunter und ergänzen Sie die fehlenden Klassen WebAddresse, Person und ContactCategorie. (2 Punkte) Wo sind die Fehler des aktuellen Programms? (Zusatzpunkte!)
Klassendiagram
Downloads Aufgabe A4
Addressbook.png
Klassendiagramm
A4.tar.gz
Programmfragment
regeln.html
Regeln zur Umsetzung von Klassendiagrammen
Aufgabe A5
Erstellen Sie einen Vorschlag für die Oberfläche des Adressbuch-Teils einer Groupware! Als Frontend soll ein Web-Browser eingesetzt werden. Benutzen Sie das Klassendiagramm!
Aufgabe A6
Wie könnten die Daten persistent werden? Machen Sie einen Vorschlag anhand eines geänderten Klassendiagramms und implementieren sie beispielhaft in einer Klasse. Verwenden Sie den Sourcecode von A4 und ergänzen sie die von Ihnen vorgeschlagenen Elemente.
Anleitung
Linux
Sie brauchen ein funktionierendes C++-Entwicklungssystem mit stl (standard template library): z.B. ein aktuelleres Linux-System mit g++.
Dort einfach auspacken, compilieren und starten:
tar xvfz A6.tar.gz; cd A6; make ; make test
Dann ihre Ergänzungen einbauen, einpacken (make clean nicht vergessen):
make clean; cd ..; tar cvfz A6-XXXXX.tar.gz A6
Dev-C++ (Windows)
Eine Variante, die auf Windows funktioniert, ist die Installation des Pakets Dev-C++ auf Ihrem System. Darin ist ein komplettes C++ Entwicklungssystem (mingw) und ein GUI enthalten.
Download: http://www.bloodshed.net/dev/devcpp.html
Nach der Installation können Sie ein DOS-Fenster öffnen (Eingabeaufforderung/Command Prompt) geben ein:
set PATH=%PATH%;C:\DEV-CPP\BIN
Danach könne Sie das normale Makefile verwenden:
make
make test
Ergebnisse
finden Sie hier