Softwaretechnik WS 2018/2019

Blatt 10

Aufgabe 6

Musterlösung: Blatt10_Aufgabe6.zip


Blatt 7

Aufgabe 2

Ein Hinweis zum Sequenzdiagramm: die Instanz "th:Thread" muss NICHT als Objekt auftauchen!
Die "main"-Methode ist static und damit in Sequenzdiagrammen nicht brauchbar darstellbar. Man kann sich damit behelfen, indem man alle Aufrufe, die von "main" ausgeben, als "lost/found"-Nachrichten modelliert.


C++-Variante:
Erstellt unter Verwendung von "Eclipse for C++" und MingGW-64. Ursprünglich hatte ich unten die Installation von MinGW beschrieben. Damit waren aber Threads nicht verfügbar. Deshalb als Workaround auf MinGW-64 umstellt, siehe unten.

Hier nur das Codefragment der Thread-Erstellung (basierend auf https://stackoverflow.com/questions/25043098/c11-threads-no-matching-function-call - die an anderer beschriebene Thread-Syntax compilierte nicht: http://www.cplusplus.com/reference/thread/thread/thread/):

int A::f(int x)
{
	C* c = new C(x);

	std::thread th (&C::g, c, 11, this);

	th.detach();

	this->waitUntilNotified();

	return z;
}
Das gesamte Beispiel findet sich hier: Blatt7_Aufgabe52.zip


Aufgabe 5: Java-Rumpfprojekt:

Download: Nikohaus.zip
Importanleitung:
Schritt 1: Inhalt der Zipdatei entpacken in den Workspace, so dass dort ein Verzeichnis "Nikokaus" entsteht, in dem u.a. ".project", ".classpath" und drei Unterverzeichnisse liegen.

Schritt 2: Menü "File" => "Import..." aufrufen. Dort unter "General" den Punkt "Existing Projects into Workspace" wählen:


Schritt 3: im nächsten Schritt bei "Select root directory" das Workspace-Verzeichnis wählen. Dann wird das Projekt "Nikokaus" angezeigt:


Schritt 4: einmal compilieren, falls "Automatic Build" nicht aktiviert ist (ist es in der Standardeinstellung allerdings): Menü "Build" => "Build All" aufrufen.

Schritt 5: ausführen: Rechtsklick auf die Klasse "NikohausFrame" und im Contextmenü "Run as" => "Java Application" wählen:

Blatt 5

Zustandsdiagramm: Unterscheidung Kreuzung/Entscheidung: SWT_Aufg05.odt


Einführung

Lösung für Java

Quellcode: EinfuehrungJava.zip

Lösung für C++

Quellcode: EinfuehrungCPP.zip - ich bitte um Feedback falls ich etwas nicht korrekt gemacht habe ;-).

Ich habe die "Eclipse IDE for C/+C++ Developers" verwendet (http://www.eclipse.org/downloads/packages/).

Unter Windows kam beim Anlegen eines C++-Projekts diese Fehlermeldung:
Eclipse C++ : “Program ”g++“ not found in PATH”

Ursache: es ist kein Compiler installiert.
Lösung: https://stackoverflow.com/questions/11703432/eclipse-c-program-g-not-found-in-path: Es wird "MinGW-w64" installiert: https://sourceforge.net/projects/mingw-w64/
Dies ist ein Fork von "MinGW", der 64-Bit-Unterstützung mitbringt und mit dem ich ohne Probleme Posix-Threads zum Compilieren bekommen habe, während ich mit MinGW daran scheiterte...

In der Installation ist nur eine Sache zu beachten: im ersten Schritt habe ich die Architecture auf "x86_64" geändert:
MinGW-w64 installieren
Im nächsten Schritt merkt man sich den Installationspfad (Default: "C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0")...

Jetzt findet man im Installationsverzeichnis im Unterverzeichnis "bin" z.B. die Datei "g++.exe".

Jetzt muss man die Umgebungsvariable "PATH" erweitern um den Installationspfad "C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0"
Eclipse neu starten.

Wenn man ein neues "C++ Project" anlegt (wichtig: nicht "C/C++ Project" wählen!), dann wählt man rechts unten bei "Toolchain" den Wert "MinGW" aus:
MinGW-Toolchain




Stand 23.01.2019
Historie:
23.01.2019: Musterlösung zu Blatt 10, Aufgabe 6
06.12.2018: C++-Variante von Blatt 7, Aufgabe 2, MinGW-64 statt MinGW
05.12.2018: Rumpfprojekt zu Blatt 7, Aufgabe 5
28.11.2018: Hinweise zu Blatt 5
24.10.2018: Erstellt