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

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

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