====== LU02.A04 - Klassendiagramm zeichnen ======
Zeichnen Sie ein UML Klassendiagramm anhand eines vorgegebenen Sourcecodes
===== Auftrag =====
- Wählen Sie 2 Codesequenzen aus (siehe unten, z.B. ''stack.py''). Übersetzen Sie diese dann in das entsprechende Klassendiagramm.
- Halten Sie sich an die UML-Notation. Verwenden Sie für das Erstellen der Diagramme ein Tool wie z.B. [[https://plantuml.com/de/class-diagram|PlantUML]] oder MS-Visio.\\
- Ergänzen Sie das Diagramm um Initialisierung und/oder Zusicherung. Angaben dazu finden Sie im [[modul:m320:merkblaetter:merkblatt_1|Merkblatt Klasse]].
==== Dauer ====
20 Minuten
==== Abgabe ====
Exportieren Sie Ihre Diagramme in ein PDF-Dokument und geben Sie dieses dann im Moodle-Kurs ab.
===== Codesequenzen =====
==== stack.py ====
class Stack:
def __int__(self):
self._items = []
def is_empty(self) -> bool:
pass
def push(self, item: object) -> None:
pass
def pop(self) -> object:
pass
==== sudoku.py ====
import math
class Board:
def __init__(self, data: list):
self._data = data
self._rows = len(data)
self._cols = len(data[0])
self._size = self.rows
self._block_size = int(math.sqrt(self.size))
@property
def rows(self) -> list:
return self._rows
@property
def cols(self) -> list:
return self._cols
@property
def size(self) -> int:
return self._size
@property
def block_size(self) -> int:
return self._block_size
def get_col(self, x: int) -> list:
pass
def get_row(self, y: int) -> list:
pass
def get_box(self, b: int) -> list:
pass
def rows_have_correct_size(self) -> bool:
pass
==== bicycle.py ====
class Bicycle:
"""
Die Klasse stellt eine vereinfachte Beschreibung eines Fahrrads dar.
Es werden nur die Attribute color, seats, gear,
"""
def __init__(self, color, seats = 1):
"""
Initialisiert das Fahrrad mit seiner Farbe und der Anzahl der sitze.
Per default ist der Wert auf 1 festgelegt.
:param color:
:return:
"""
self.seats = seats
self._color = color
def accelerate(self):
"""
diese Methode beschleunigt das Fahrrad
"""
pass
def slow_down(self):
"""
Diese Methode bremst das Fahrrad
"""
pass
def drive(self):
"""
Diese Methode bewegt das Fahrrad mit der aktuellen Geschwindigkeit
"""
pass
@property
def color(self):
"""
liefert die Farbe des Fahrrades
:return:
"""
return self._color
@property
def seats(self):
"""
liefert die Anzahl der Sitze des Fahrrades
:return:
"""
return self._seats
@seats.setter
def seats(self, value):
"""
Setzt die Anzahl der Sitze des Fahrrades. Der Wert kann nur 1 oder 2 (Tandem) sein.
:return:
"""
if value >= 1 and value <= 2:
self._seats = value
==== grade.py ====
class Grade:
"""
Eine Zeugnisnote beschreibt eine Leistung mit Werten von 1 (schlecht) bis 6 (sehr gut).
Die Werte werden i.d.R. als Ganz- und Halbnoten festgehalten, also z.B. 4.0 bzw. 4.5
Der Notenwert wird im Konstruktor gesetzt, kann aber mittels der setMethode angepasst
werden. Dabei muss der Notenbereich (1..6) zugesichert werden.
Über getNote kann der Notenwert ausgelesen werden.
"""
def __init__(self, new_score):
"""
Die Note wird mit einem Wert initialisiert
:param score: ein Wert im Bereich 1.0 .... 6.0
"""
self.score(new_score)
@property
def score(self, score):
"""
Legt einen neuen Notenwert fest.
Der Wert muss im Bereich 1.0 .... 6.0 liegen. Ist dies nicht der Fall,
liefert die Methoden den Wert False (Zuweisung nicht erfolgreich).
:param score: ein Wert im Bereich 1.0 .... 6.0
:return: True bei erfolgreicher Zuweisung, sonst False
"""
if (score >= 1.0) and (score <= 6.0):
self._score = score
return True
else:
return False
@score.setter
def score(self):
"""
Liefert den Notenwert
:return: Notenwert
"""
return self._score
def print(self):
print("Grade : " + str(self._score))
----
{{tag>m320-LU02}}
[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) René Probst