|
I-PROGR3 WS03 - PROGRAMMIEREN3 - Vorlesung mit Übung
|
Ausgangspunkt ist die Vorlesungsankündigung.
Zentral geht es also um eine Verknüpfung von objektorientierten Konzepten mit der konkreten Sprache C++ im Kontext eines grösseren Projektes.
Für den konkreten Plan der Vorlesung wird ein Rahmen angenommen, der sich an Konzepten des Softwareengineerings orientiert, ohne allerdings schon auf alle theoretischen oder technischen Details einzugehen. Diese sind der späteren Vorlesung Softwareengineering vorbehalten.
Das Rahmenkonzept für das Softwareengineering ist im folgenden vereinfachenden Schaubild wiedergegeben:
Eine konkrete Programmieraufgabe ist nomalerweise Teil eines grösseren Prozesses, der von der Problemerfassung (Aufgabenkatalog, use case) über Erstellung eines abstrakten Modells (Analyse-Modell) und Implementierung und Testen zum endgültigen Einsatz führt. Nicht selten führt der Einsatz zu weiteren Verbesserungen oder Erweiterungen, die dann im Prinzip wieder alle Stufen des Prozesses durchlaufen (zyklisch, evolutionär).
In der Vorlesung Programmieren3 soll nun versucht werden, das Erstellen von Software in genau diesen Etappen nachzuvollziehen. Es wird (siehe auch Tabelle unten) zunächst ein möglichst einfaches Problem (Version 1) gestellt werden, dessen Anforderungen in einem kommentierten Anwendungsfall (use case) zu präzisieren sind. Dann wird dazu ein abstraktes Analyse-Modell in Form von UML-Diagrammen erstellt. Dazu kommt das Werkzeug 'umbrello' zum Einsatz. Anschliessend wird mit Hilfe von umbrello erster C++-Code automatisch generiert. Diese Code-Fragmente werden dann zu lauffähigem Quelltext ausgearbeitet. Diese Programme werden minimalen Tests unterzogen. In allen Phasen wird auch die Frage der Dokumentierung eine wichtige Rolle spielen.
Nach einem ersten Durchlauf dieses Zyklus wird das Problem erweiter bzw. präzisiert (Version 2, Version 3, ...). Die Anforderungen des Anwendungsfalles werden entsprechend präzisiert; das Analyse-Modell wird erweitert, ebenso der Quelltext und die Tests. Besonderes Augenmerk wird darauf liegen, welche Anforderungen für das Programmieren aus den geforderten Änderungen erwachsen.
PROBLEM |
ANFORDERUNGEN/ USE-CASE |
ANALYSE-MODELL |
IMPLEMENTIERUNG |
TEST/ EINSATZ |
---|---|---|---|---|
Version 1 |
(umbrello) |
(umbrello) |
(umbrello, make, g++, flex, bison,...) |
|
.... |
|
|
|
|
Version n |
|
|
|
|
Inhalte der Vorlesung als PreView im Netz; Diskussion in Vorlesung; Formulierung der Aufgabenstellungen für die Übungen.
Erarbeiten der Übungaufgaben
Präsentation der Übungsaufgaben in den Übungsstunden: Formate, Ablauf, Bewertungen, Übernahme auf die WebSeite (freiwillig).
Siehe die Vorlesungsankündigung. Kurze Kommentierung.
Hier eine Liste wichtiger Eigenschaften der Programmiersprache2 aus Vorlesung Programmieren2. Für Details sei auf die durch die Links gegebenen Textpassagen verwiesen.
Von UML nach C++
Verteilung des Codes auf verschiedene Dateien
Default Constructor, Deconstructor, CopyConstructor und CopyAssignment Operator
Das Thema Entwurfsmuster (Pattern), das zum Ende der Programmieren2-Vorlesung kurz besprochen wurde, wird in Programmieren3 zunächst nicht weiter behandelt werden. Eine ausführlichere Darstellung soll der Vorlesung Softwareengineering vorbehalten bleiben.
Vertraut machen mit den in der Vorlesung genannten Werkzeugen.
In der nächsten Übung wird explizit das Werkzeug umbrello vorgestellt. Dieses wird dann während des gesamten Semesters benutzt werden