Skip to content
Snippets Groups Projects
Commit f34a6455 authored by Nicolas Mateischek's avatar Nicolas Mateischek :speech_balloon:
Browse files

Final Format for readme.md

parent 735e7797
No related branches found
No related tags found
1 merge request!2Resolve "Readme Formatting Broken"
# Softwaretechnik
## Praktikumsblatt 03
### 30.05.
Dies ist ein Praktikumsblatt! Lösen Sie die folgenden Aufgaben in Ihrer Praktikumsgruppe (3-5 Studierende) und geben Sie einen Nachweis über die Bearbeitung einmal pro Gruppe via Moodle ab. Sie müssen Ihre Abgabe bis spätestens Dienstag, 06.06.2023, um 23:59 Uhr hochgeladen haben.
Pro Praktikumsblatt können Sie bis zu vier zusätzliche Punkte für Ihre Studienleistung erreichen. Insgesamt lassen sich mit fünf Praktikumsblättern also 20 Punkte zusätzlich erzielen, das entspricht einem Blatt der Studienleistung.
Informationen dazu, wie der Nachweis über die Bearbeitung für dieses Blatt auszusehen hat, finden Sie am Ende dieses Blattes. Verfassen Sie Ihre Lösungen im Rahmen Ihrer Praktikumsgruppe eigenständig und in eigenen Worten! Die wörtliche Übernahme von Text oder Diagrammen aus dem Internet, den Folien oder von anderen Gruppen stellt ein Plagiat dar und wird entsprechend geahndet.
### Abgabe bis: ***Dienstag, 06.06.2023, um 23:59 Uhr***
## 3.1 Entwurfsmuster und Entwicklungsumgebungen
......@@ -15,31 +9,24 @@ In dieser Aufgabe sollen Sie eine Java Entwicklungsumgebung - englisch Integrate
a) Installieren Sie die IntelliJ Community Edition IDE auf Ihrem Computer: [JetBrains Intellij Download here](https://www.jetbrains.com/idea/download/)
b) Öffnen Sie IntelliJ, legen Sie ein neues Java-Projekt an und implementieren Sie eine einfache Klasse HelloWorld. Diese soll eine `main`-Methode definieren, die den Text "Hello SWT!" auf der Konsole ausgibt.
1) Stellen Sie sicher, dass Ihr Projekt korrekt kompiliert wird. Klicken Sie dafür in der Menüleiste auf `Build` -> `Rebuild Project`.
2) Stellen Sie sicher, dass Ihr Projekt korrekt ausgeführt wird. Suchen Sie dafür die korrekte Option im Menüpunkt `Run`, oder klicken Sie auf den Play-Button. Es sollte sich ein Konsolen-Fenster öffnen, welches die erwartete Ausgabe "Hello SWT!" enthält.
c) Für diese Teilaufgabe sollen Sie ein Strategy-Pattern als Java-Projekt in IntelliJ umsetzen. Das Pattern ist in Abbildung 1 dargestellt und modelliert die folgende Situation:
In einem Online-Shop können verschiedene Items eingekauft werden. Der Gesamtpreis einer Bestellung wird durch eine CheckoutStrategy berechnet. Basierend auf einer Liste von Einzelpreisen berechnet die Methode `calculateTotal` den Gesamtpreis.
Konkret nutzt der Shop zwei verschiedene Strategien: Die `RegularStrategy` berechnet ganz normal die Summe aller Einzelpreise, während die `CheapestFreeStrategy` das günstigste Element vom Gesamtpreis abzieht, sofern mindestens eine Anzahl von `minItems` Items in der Bestellung vorhanden ist.
Bearbeiten Sie dazu die folgenden Teilaufgaben:
1) Legen Sie ein neues Java-Projekt an und implementieren Sie das Interface `CheckoutStrategy` sowie die beiden Klassen `RegularStrategy` und `CheapestFreeStrategy`.
2) Implementieren Sie eine Klasse `Checkout`, die eine `main`-Methode definiert. Innerhalb dieser Methode soll die folgende Liste von Einzelpreisen erst mit der `RegularStrategy` und dann mit der `CheapestFreeStrategy` zusammengerechnet und auf der Konsole ausgegeben werden: [3, 42, 100, 53].
3) Kompilieren Sie das Projekt und führen Sie es aus. Überprüfen Sie, dass die korrekten Ergebnisse auf der Konsole ausgegeben werden.
4) Legen Sie eine beliebige dritte Strategie für das Berechnen der Gesamtkosten an und bauen Sie diese in die `main`-Methode der Klasse `Checkout` ein.
Checkout
+ main(args: String[]): Void
CheapestFreeStrategy
- minItems: Integer
1) Legen Sie ei
n neues Java-Projekt an und implementieren Sie das Interface `CheckoutStrategy` sowie die beiden Klassen `RegularStrategy` und `CheapestFreeStrategy`.
2) Implementieren Sie eine Klasse `Checkout`, die eine `main`-Methode definiert. Innerhalb dieser Methode soll die folgende Liste von Einzelpreisen erst mit der `RegularStrategy` und dann mit der `CheapestFreeStrategy` zusammengerechnet und auf der Konsole ausgegeben werden:`[3, 42, 100, 53]`
RegularStrategy
[interface]
CheckoutStrategy
+ calculateTotal(items: List<Integer>): Integer
3) Kompilieren Sie das Projekt und führen Sie es aus. Überprüfen Sie, dass die korrekten Ergebnisse auf der Konsole ausgegeben werden.
4) Legen Sie eine beliebige dritte Strategie für das Berechnen der Gesamtkosten an und bauen Sie diese in die `main`-Methode der Klasse `Checkout` ein.
Abbildung 1: Klassendiagramm eines Strategy-Patterns
## 3.2 PlantUML Diagramme
......@@ -65,14 +52,12 @@ Bearbeitungsnachweis: Zum Nachweis von Aufgabe 3.2b) fertigen Sie zwei Screensho
## 3.3 Generierung von UML-Diagrammen aus Java Code (optional)
IntelliJ bietet in der Ultimate-Version^1 auch die Möglichkeit, aus Java-Code das dazugehörige UML-Klassendiagramm generieren zu lassen^2.
IntelliJ bietet in der Ultimate-Version [Hierfür gibt es spezielle Lizenzen für Studenten](https://www.jetbrains.com/community/education) auch die Möglichkeit, aus [Java-Code das dazugehörige UML-Klassendiagramm generieren zu lassen.](https://www.jetbrains.com/help/idea/class-diagram.html)
Generieren Sie in dieser Aufgabe für Ihre Implementierung aus 3.1c ein solches Klassendiagramm mit diesem Tool. Dies erlaubt Ihnen, Ihre Erstellung des Klassendiagramms aus Aufgabe 3.2a zu validieren. Vergleichen Sie die beiden Darstellungen und versuchen Sie potentielle Unterschiede zu erörtern.
Bearbeitungsnachweis: Zum Nachweis von Aufgabe 3.3 fertigen Sie einen Screenshot an: dieser soll sowohl Ihren Code auf der einen Hälfte als auch das automatisch erstellte Klassendiagramm auf der anderen Hälfte zeigen. Beschreiben Sie Ihren Vergleich und mögliche Unterschiede in einer Textdatei.
(^1) Hierfür gibt es spezielle Lizenzen für Studenten: [https://www.jetbrains.com/community/education](https://www.jetbrains.com/community/education)
(^2) [https://www.jetbrains.com/help/idea/class-diagram.html](https://www.jetbrains.com/help/idea/class-diagram.html)
## Abgabe
......@@ -94,3 +79,4 @@ Als Nachweis für die Bearbeitung dieses Praktikumsblatts geben Sie die Nachweis
- generated-class-diagram.png
- comparison.txt
# Tolle Readme o((>ω< ))o
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment