From f7a914f6464c740d65522a9d23c2bd43c3a3d99e Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 5 Dec 2019 18:33:00 +0100 Subject: [PATCH] Added historic assignments --- Abgabe/Abgabe 1/Req0001/Req_0001A.txt | 58 ++ Abgabe/Abgabe 1/Req0001/Req_0001B.txt | 35 + Abgabe/Abgabe 1/Req0001/Req_0001C.txt | 64 ++ Abgabe/Abgabe 1/Req0002/Req_0002.txt | 64 ++ ...rantwortlichkeiten_und_Kollaborationen.txt | 303 +++++++ Abgabe/Abgabe 3/UML.pdf | Bin 0 -> 6200 bytes Abgabe/Abgabe 3/UML.uxf | 757 ++++++++++++++++++ Abgabe/Abgabe 3/Use_case.pdf | Bin 0 -> 3278 bytes Abgabe/Abgabe 3/Use_case.uxf | 405 ++++++++++ 9 files changed, 1686 insertions(+) create mode 100644 Abgabe/Abgabe 1/Req0001/Req_0001A.txt create mode 100644 Abgabe/Abgabe 1/Req0001/Req_0001B.txt create mode 100644 Abgabe/Abgabe 1/Req0001/Req_0001C.txt create mode 100644 Abgabe/Abgabe 1/Req0002/Req_0002.txt create mode 100644 Abgabe/Abgabe 2/Klassen_Verantwortlichkeiten_und_Kollaborationen.txt create mode 100644 Abgabe/Abgabe 3/UML.pdf create mode 100644 Abgabe/Abgabe 3/UML.uxf create mode 100644 Abgabe/Abgabe 3/Use_case.pdf create mode 100644 Abgabe/Abgabe 3/Use_case.uxf diff --git a/Abgabe/Abgabe 1/Req0001/Req_0001A.txt b/Abgabe/Abgabe 1/Req0001/Req_0001A.txt new file mode 100644 index 0000000..ce4e8a4 --- /dev/null +++ b/Abgabe/Abgabe 1/Req0001/Req_0001A.txt @@ -0,0 +1,58 @@ +Req-ID: + 0001A +Req-Type: + Nicht-Funktional +Events/UCs: + -Speicherung eines Bildes + -Pixel wird mit einem Byte dargestellt + -Overhead für Metainformationen erlaubt + -Keine seperate abhandlung von "RasterImage" und "ShapedImage" +Description: + -Ein Bild wird mit maximal einem Byte pro Pixel kodiert + -Repräsentation im folgenden: + 0b0000'0000, wobei die 0 nach dem Prefix 0b als Bit 7 Indiziert ist, und jedes rechtere Bit + davon um eins Dekrementiert Indiziert wird + -Minimale RGB-A Darstellung des Bildes mittel einem Byte + -Codierungsmöglichkeit nach folgendem Schema: + -Bit 7,6 werden Benutz um den Alpha-Kanal zu codieren: + -0b00 -> Bit ist 100% Transparent (Transparent) + -0b01 -> Bit ist 66% Transparent + -0b10 -> Bit ist 33% Transparent + -0b11 -> Bit ist 0% Transparent + -Bit 5,4 werden Benutz um den Rot-Kanal zu codieren: + -0b00 -> Bit ist 0% Rot (Schwarz) + -0b01 -> Bit ist 33% Rot + -0b10 -> Bit ist 66% Rot + -0b11 -> Bit ist 100% Rot (Rot) + -Bit 3,2 werden Benutz um den Grün-Kanal zu codieren: + -0b00 -> Bit ist 0% Grün (Schwarz) + -0b01 -> Bit ist 33% Grün + -0b10 -> Bit ist 66% Grün + -0b11 -> Bit ist 100% Grün (Grün) + -Bit 1,0 werden Benutz um den Blau-Kanal zu codieren: + -0b00 -> Bit ist 0% Blau (Schwarz) + -0b01 -> Bit ist 33% Blau + -0b10 -> Bit ist 66% Blau + -0b11 -> Bit ist 100% Blau (Blau) + Definitionen der benutzen Farben nach RGB-A Modell: + Schwarz (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b1111'1111) + Rot (0b1111'1111, 0b0000'0000, 0b0000'0000, 0b1111'1111) + Grün (0b0000'0000, 0b1111'1111, 0b0000'0000, 0b1111'1111) + Blau (0b0000'0000, 0b0000'0000, 0b1111'1111, 0b1111'1111) + Transparent (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b0000'0000) + -verschiedene Transparenzstufen, bis auf 0b11, werden als einzelne Farbstufen gezählt: 2^(8)-1 verschiede Farbstufen +Originator: + Jonas Mucke +Fit Criterion: + -Darstellung von mindestens 250 paarweise verschiedenen Farbstufen + -Darstellung einen transparenten Bits (Alpha Kanal = 0b0000'0000) + -Verarbeitungsmöglichkeit für 2^10 Pixel in unter 0.1 Sekunde beim Einlesen und Speichern +Priority: + 100 +Support Material: + Ubungsblat_01.pdf +Conflicts: + Noch keine Einigung auf Farbkodierung (0001A-0001C)-> Rücksprache mit dem Kunden + (Ein Byte deckt einen sehr kleinen Farbbereich ab und ist nicht sehr elegant -> Rücksprache mit dem Kunden ob 4 Byte akzeptabel wären) +History: + -Erstellt am 30.10.2019 um 21:59, von Jonas Mucke diff --git a/Abgabe/Abgabe 1/Req0001/Req_0001B.txt b/Abgabe/Abgabe 1/Req0001/Req_0001B.txt new file mode 100644 index 0000000..906b810 --- /dev/null +++ b/Abgabe/Abgabe 1/Req0001/Req_0001B.txt @@ -0,0 +1,35 @@ +Req-ID: + 0001B +Req-Type: + Nicht-Funktional +Events/UCs: + -Speicherung eines Bildes + -Pixel wird mit einem Byte dargestellt + -Overhead für Metainformationen erlaubt + -Keine seperate abhandlung von "RasterImage" und "ShapedImage" +Description: + -Ein Bild wird mit maximal einem Byte pro Pixel kodiert + -Repräsentation im folgenden: + 0b0000'0000, wobei die 0 nach dem Prefix 0b als Bit 7 Indiziert ist, und jedes rechtere Bit + davon um eins Dekrementiert Indiziert wird + -Codierungsmöglichkeit nach folgendem Schema: + -0b0000'0000, wird als Transparents-Codierung definiert + -Alle weiteren Binären Codierung werden per Hand, in Abstimmung mit dem Kunden und dem Team, + einer Farbe zugeordnet -> 2^(8)-1 mögliche Farben + Transparenz + Definitionen der benutzen Farben nach RGB-A Modell: + Transparent (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b0000'0000) +Originator: + Jonas Mucke +Fit Criterion: + -Darstellung von mindestens 250 paarweise verschiedenen Farbstufen + -Darstellung einen transparenten Bits (Alpha Kanal = 1) + -Verarbeitungsmöglichkeit für 2^10 Pixel in unter 0.1 Sekunde beim Einlesen und Speichern +Priority: + 100 +Support Material: + Ubungsblat_01.pdf +Conflicts: + Noch keine Einigung auf Farbkodierung (0001A-0001C)-> Rücksprache mit dem Kunden + (Ein Byte deckt einen sehr kleinen Farbbereich ab und ist nicht sehr elegant -> Rücksprache mit dem Kunden ob 4 Byte akzeptabel wären) +History: + -Erstellt am 30.10.2019 um 21:58, von Jonas Mucke diff --git a/Abgabe/Abgabe 1/Req0001/Req_0001C.txt b/Abgabe/Abgabe 1/Req0001/Req_0001C.txt new file mode 100644 index 0000000..b847c41 --- /dev/null +++ b/Abgabe/Abgabe 1/Req0001/Req_0001C.txt @@ -0,0 +1,64 @@ +Req-ID: + 0001C +Req-Type: + Nicht-Funktional +Events/UCs: + -Speicherung eines Bildes + -Pixel wird mit einem Byte dargestellt + -Overhead für Metainformationen erlaubt + -Keine seperate abhandlung von "RasterImage" und "ShapedImage" +Description: + -Ein Bild wird mit maximal einem Byte pro Pixel kodiert + -Repräsentation im folgenden: + 0b0000'0000, wobei die 0 nach dem Prefix 0b als Bit 7 Indiziert ist, und jedes rechtere Bit + davon um eins Dekrementiert Indiziert wird + -Die Bits 7,6 werden benutzt um einen Farbchannel zu setzen. Bei einem Farbchannel handelt es sich um einen + Schalter, welcher zwischen den Channeln "Rot", "Grün", "Blau", "Grau/Alpha" Handelt. + Wenn ein Channel gesetzt ist, für ein Pixel, so wird dieses Pixel nur mittels einer Farbstufe dieses Channels + Dargestellt. + -Codierungsmöglichkeit nach folgendem Schema: + -0b00XX'XXXX entspricht dem "Grau/Alpha" Channel + 0b0000'0000 entspricht dem Transparenzwert 100% (Transparent) + 0b0000'0001 enstpricht den Farbwert Schwarz (Schwarz) + 0b0011'1111 enstpricht dem Farbwert Weiß (Weiß) + Dazwischen exestiert eine uniform partitionierte Farbkurve + -0b01XX'XXXX entspricht dem "Rot" Channel: + 0b0111'1111 entspricht dem intensivstem Rot(Rot) + 0b0100'0000 enstpricht dem blasesten Rot(Schwarz-Rot) + Dazwischen exestiert eine uniform partitionierte Farbkurve + -0b10XX'XXXX entspricht dem "Grün" Channel: + 0b1011'1111 entspricht dem intensivstem Grün (Grün) + 0b1000'0000 enstpricht dem blasesten Grün(Schwarz-Grün) + Dazwischen exestiert eine uniform partitionierte Farbkurve + -0b11XX'XXXX entspricht dem "Blau" Channel: + 0b1111'1111 entspricht dem intensivstem Blau (Blau) + 0b1100'0000 enstpricht dem blasesten Blau(Schwarz-Blau) + Dazwischen exestiert eine uniform partitionierte Farbkurve + Definitionen der benutzen Farben nach RGB-A Modell: + Weiß (0b1111'1111, 0b1111'1111, 0b1111'1111, 0b1111'1111) + Schwarz (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b1111'1111) + Rot (0b1111'1111, 0b0000'0000, 0b0000'0000, 0b1111'1111) + Grün (0b0000'0000, 0b1111'1111, 0b0000'0000, 0b1111'1111) + Blau (0b0000'0000, 0b0000'0000, 0b1111'1111, 0b1111'1111) + (Schwarz-Rot) (0b0000'0001, 0b0000'0000, 0b0000'0000, 0b1111'1111) + (Schwarz-Grün) (0b0000'0000, 0b0000'0001, 0b0000'0000, 0b1111'1111) + (Schwarz-Blau) (0b0000'0000, 0b0000'0000, 0b0000'0001, 0b1111'1111) + Transparent (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b0000'0000) + -Nach diesem Prinzip können nur die Grundfarben der Additiven Farbdarstellung projeziert werden, + dies hat ein sehr bunt beschränktes Farbshema zur folgendem + -Es können insgesamt [3*2^(6)]+[2^(6)-1] = 2^(8)-1 Farbstufen dargestellt werden + Transparenz +Originator: + Jonas Mucke +Fit Criterion: + -Darstellung von mindestens 250 paarweise verschiedenen Farbstufen + -Darstellung einen transparenten Bits (Alpha Kanal = 1) + -Verarbeitungsmöglichkeit für 2^10 Pixel in unter 0.1 Sekunde beim Einlesen und Speichern +Priority: + 100 +Support Material: + Ubungsblat_01.pdf +Conflicts: + Noch keine Einigung auf Farbkodierung (0001A-0001C)-> Rücksprache mit dem Kunden + (Ein Byte deckt einen sehr kleinen Farbbereich ab und ist nicht sehr elegant -> Rücksprache mit dem Kunden ob 4 Byte akzeptabel wären) +History: + -Erstellt am 30.10.2019 um 22:04, von Jonas Mucke diff --git a/Abgabe/Abgabe 1/Req0002/Req_0002.txt b/Abgabe/Abgabe 1/Req0002/Req_0002.txt new file mode 100644 index 0000000..dc98763 --- /dev/null +++ b/Abgabe/Abgabe 1/Req0002/Req_0002.txt @@ -0,0 +1,64 @@ +Req-ID: + 0002 +Req-Type: + Funktional +Events/UCs: + -Bearbeitung des Bildes mit einer Betriebssystem unterstützen Eingabemöglichkeit, zum Beispiel Maus oder Stift bzw. Ähnliche + -Bearbeitung mittels verschiedener Zeichen-Tools + -Freiwählbare Farbe aus dem möglichen Farbbereich +Description: + -Ein Farbwert, auch Transparent, welcher durch die genutzte Codierung (siehe Req_0001) darstellbar sein. Dies soll mittels Tools + gesetzt werden können, wobei diese spezifizieren was "gesetzt" bedeutet. + -Tools: + Pinsel: + -Der Pinsel ist ein Tool, welches um seinen Mittelpunkt alles in einem gewissen Pixelradius einfärbt. + Der Pixelradius geht dabei von 1-Pixel bis zu 10-Pixel. + Formen: + -Linie: + Das Tool Formen (Linie), soll es einem ermöglichen eine Linie in der gewählten Farbe zwischen 2 Punkten zu + ziehen. Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen, dabei verändert sich die Linie live. + Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwischen + Start und Endpunkt wird die Linie gezeichnet. + Es exestieren verschiedene Linien-Formen: + -durchgezogene Linie (eine Linie ohne Lücken) + -gestrichelte Linie (auf der Linie werden nur Striche in regelmäßigen Abständen gezeichnet) + -gepunktete Linie (auf der Linie wird punktweise zwischen Farbig und Transparent alterniert) + Die Linie kann mittels dem Breite-Attribut verändert werden (Breite zwischen 1 und 10 Pixel) + -Rechteck: + Das Tool Formen (Rechteck), soll es einem ermöglichen ein Rechteck in ein einer gewählten Farbe aufzuspannen. + Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen. Dabei verändert sich das Rechteck live. + Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwiscehn Start und Endpunkt + wird das Rechteck aufgespannt. + Das Rechteck besitzt 2 Farbattribute, den Rand und die Füllung. Der Rand ist um das Rechteck gesetzt und kann + im Bezug auf Breite und Farbe eingesetellt werden. Die Füllung ist innerhalb der Fläche, welcher vom Rand aufgespannt wird, + und kann im Bezug auf die Farbe eingestellt werden. + -Konvexe Form: + Das Tool Formen (Konvex), soll einem ermöglichen beliebige, konvexe Formen zu erstellen. + Dabei werden Punkte gesetzt, welche durch toggeln des Eingabegeräts, an der Stelle des Cursors gesetzt werden. + Sollte ein Punkt im Radius von 10 Pixel zum Startpunkt sein, so wird die Erstellung abgeschlossen. Danach werden Linien + zwischen den gesetzten Punkten (in korrekter Reihenfolge) gezeichnet und der Zwischenraum gefüllt. + Dabei besitzt die konvexe Form 2 Farbattribute, den Rand und die Füllung. Der Rand ist um die konvexe Form + gesetzt und kann im Bezug auf Breite und Farbe eingesetellt werden. Die Füllung ist innerhalb der Fläche, welche durch den Rand + aufgespannt wird, und kann im Bezug auf die Farbe eingestellt werden. + FloodFill: + -Das Floodfill Tool, bei diesem wird ein Pixel ausgewählt. Alle Pixel die mit diesem Pixel in einer Äquivalenzklasse + im Bezug auf Farbe und Nachbarschafts-Relation stehen, werden in die gewählte Farbe eingefärbt. + Einfarbig: + -Das Einfarbig Tool färbt das gesamte Bild in die gewählte Farbe ein. + Reverse: + -Der letzte State des Bildes wird wieder hergestellt. (Speicherung von mindestens 10 alten Zuständen). +Originator: + Jonas Mucke +Fit Criterion: + -Das Setzten eines Pixels, in einer beliebigen Farbe, funktioniert in 99,9% in unter 0.01 Sekunden. + -Der Vollständige Farbbreich ist frei wählbar. + -Es müssen mindestens 3 Tools benutzbar sein, das bedeutet eine 99,9% richtiges Verhalten in unter 0.1 Sekunden. + -Tools besitzen in 100% der Fälle das gewünschte Verhalten +Priority: + 80 +Support Material: + Ubungsblat_01.pdf +Conflicts: + -keine Bekannten Konflikte(stand: 30.10.2019 22:10) +History: + -Erstellt am 30.10.2019 um 22:10, von Jonas Mucke diff --git a/Abgabe/Abgabe 2/Klassen_Verantwortlichkeiten_und_Kollaborationen.txt b/Abgabe/Abgabe 2/Klassen_Verantwortlichkeiten_und_Kollaborationen.txt new file mode 100644 index 0000000..6c77ca5 --- /dev/null +++ b/Abgabe/Abgabe 2/Klassen_Verantwortlichkeiten_und_Kollaborationen.txt @@ -0,0 +1,303 @@ +Klasse: Bild (abstrakt) + Vererbung: + - + Verantwortlichkeiten: + - Speicherung der Daten in einem 2d-Array + - Speicherung der Farbdaten jedes einzelnen Pixels + Kollaborationen: + - Der Anwender will ein Bild öffnen und speichern können, ohne sich darüber Gedanken machen zu müssen + +Klasse: Bilddimensionen + Vererbung: + - Bild + Verantwortlichkeiten: + - Wissen über die Größe des Bildes + Kollaborationen: + - Nutzer kann die Anzahl der Pixel in x und y Richtung abfragen + +Klasse: RasterImage + Vererbung: + - Bild + Verantwortlichkeiten: + - Darstellung des gezeichneten Bildes + - Speicherung der Daten in einem 2d-Array + - Speicherung der Farbdaten jedes einzelnen Pixels (je ein Bit pro Pixel) + Kollaborationen: + - Der Anwender will ein Bild öffnen, bearbeiten und speichern können, ohne sich darüber Gedanken machen zu müssen + +Klasse: ShapedImage + Vererbung: + - RasterImage + Verantwortlichkeiten: + - Speicherung der Daten in einem 2d-Array + - Speicherung der Farbdaten jedes einzelnen Pixels -> Transparenz + - Speicherung der Polygondaten + - Darstellung der Transparenz außerhalb des Polygons und des Bildes innerhalb des Polygons + Kollaborationen: + - Der Anwender will ein Bild öffnen, bearbeiten und speichern können, ohne sich darüber Gedanken machen zu müssen + +Klasse: Tool (abstrakt) + Vererbung: + - + Verantwortlichkeiten: + - Name, Beschreibung, Tooltip und Icon des Tools speichern + - Veränderung der Pixeldaten des Bildes + Kollaborationen: + - Der Anwender will ein Bild bearbeiten können + +Klasse: Set-Color-Tool (abstrakt) + Vererbung: + - Tool + Verantwortlichkeiten: + - Verwalten der Farbcodierung und deren Darstellung + - Bearbeiten des Bildes durch Verändern von Farbcodes an bestimmten Pixeln + - Darstellung der Farbpallette + Kollaborationen: + - Der Anwender möchte das Bild farblich gezielt verändern + - Der Anwender möchte die Farbwerte der einzelnen Pixel abfragen + +Klasse: Un-/Redo-Tool + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - 20 Operationen speichern + - die letzten (bis zu 10) Änderungen rückgängig machen + - die letzten (bis zu 10) Undo-Aufforderungen rückgängig machen + - sobald gezeichnet wird, werden alle Redo-Einträge gelöscht + Kollaborationen: + - Der Anwender möchte eine Tool Änderung rückgängig machen + - Der Anwender möchte eine Undo Aktivität rückgängig machen + +Klasse: Dreh-Tool + Vererbung: + - Tool + Verantwortlichkeiten: + - Rotation des angezeigten Bildes + - Ändern der Farbwerte, so dass sie mit dem rotierten Bild übereinstimmen + Kollaborationen: + - Möglichkeit für den Nutzer das Bild zu drehen + - Der Anwender möchte das Bild gedreht speichern + +Klasse: Size-Tool + Vererbung: + - Tool + Verantwortlichkeiten: + - Vergrößerung des Bildes (Werte) + - Verkleinerung des Bildes (Werte) + - Skalieren + Kollaborationen: + - Der Anwender möchte die Auflösung des Bildes vergrößern + - Der Anwender möchte die Auflösung des Bildes verkleinern + + +Klasse: Merge-Tool + Vererbung: + - Tool + Verantwortlichkeiten: + - Das Zusammenfügen zweier Bilder in eine neue Datei (Abspeichern der neuen Farbwerte) + - Das Zusammenfügen übereinander oder nebeneinander (wenn Alpha-Kanal vorhanden) + Kollaborationen: + - Der Anwender möchte ein Bild neben einem anderen Bild speichern + - Der Anwender möchte ein Bild über einem anderen speichern + +Klass: View-Tool(abstrakt) + Vererbung: + -Tool + Verantwortlichkeiten: + -Verändern der Ansicht des Bilder + Kollaborationen: + -Der User möchte das Bild anders Anzeigen lassen + +Klasse: Zoom-Tool + Vererbung: + - View-Tool + Verantwortlichkeiten: + - Vergrößerung des Bildes (Ansicht) + - Verkleinerung des Bildes (Ansicht) + - Zoomen + Kollaborationen: + - Der Anwender möchte in ein Bild zoomen + - Der Anwender möchte aus dem Bild heraus zoomen + +Klasse: Merge-View-Tool + Vererbung: + - View-Tool + Verantwortlichkeiten: + - Das Anzeigen zweier Bilder in der Datei + Kollaborationen: + - Der Anwender möchte ein Bild neben einem anderen Bild anzeigen + - Der Anwender möchte ein Bild über einem anderen anzeigen lassen + +Klasse: Pen-Tool + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - Speicherung des eingestellten Radius + - Setzen von Pixelwerten um die Cursor-Stelle in einen auswählbaren Radius in einer auswählbaren Farbe + Kollaborationen: + - Der Anwender möchte Freihand in einer freiwählbaren Farbe in einem freiwählbaren Radius zeichnen, ohne Beschränkung innerhalb des Bildes + +Klasse: FloodFill-Tool + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - alle Pixel in einer Äquivalenzklasse zum aktuellen Pixel in eine freiwählbare Farbe einfärben + Kollaborationen: + - Der Anwender möchte eine Fläche einer Farbe komplett umfärben + +Klasse: Plain-Tool + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - alle Pixel des Bildes in eine Farbe ändern + Kollaborationen: + - Der Anwender möchte das Bild einfarbig einfärben + +Klasse: Formen-Tool (abstrakt) + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - Zeichnen eines geometrischen Primitives + - vereinheitlichte Darstellung der Formauswahl und Ränder + Kollaborationen: + - Der Anwender möchte ein/e Rechteck/Linie oder eine konvexe Form zeichnen + +Klasse: Linien-Tool + Vererbung: + - Formen-Tool + Verantwortlichkeiten: + - Zeichnen einer Linie in einer wählbaren Dicke und Farbe + - Die Linie kann durchgängig, gestrichelt oder gepunktet gezeichnet werden + Kollaborationen: + - Der Anwender möchte eine durchgezogene Linie zeichnen + - Der Anwender möchte eine gestrichelte Linie zeichnen + - Der Anwender möchte eine gepunktete Linie zeichnen + +Klasse: Rechteck-Tool + Vererbung: + - Formen-Tool + Verantwortlichkeiten: + - Aufspannen eines Rechtecks zwischen zwei Punkten, der Rand und die Fläche sind in der Farbe frei wählbar, + diese Wählbarkeit ist separat vom anderen Zustand möglich + - Der Rand kann in der Dicke eingestellt werden + Kollaborationen: + - Der Anwender möchte ein Rechteck zeichnen, die innere Fläche soll Transparenz speichern + - Der Anwender möchte ein Rechteck zeichnen, die innere Fläche soll eine Farbe haben, der Rand soll eine gewisse Breite und Farbe haben + +Klasse: Konvexe-Form-Tool + Vererbung: + - Formen-Tool + Verantwortlichkeiten: + - Aufspannen einer konvexen Form mittels Punkten (max 100) + - Die konvexe Form hat einen Rand und eine interne Fläche, deren Farbe separat gewählt werden kann + - Der Rand kann im Bezug auf seine Dicke eingestellt werden + Kollaborationen: + - Der Anwender möchte ein n-Eck zeichnen, dazu berührt er auf dem Bildschirm n-Punkte und am Schluss den Anfangspunkt (10pxl Radius?) + - In der berührten Reihenfolge werden Linien gezogen, die die Form aufspannen und je nach Einstellungen wird der Rand und die interne Fläche dargestellt + +Klasse: Polygon-Form-Tool + Vererbung: + - Formen-Tool + Verantwortlichkeiten: + - Aufspannen eines Polygons über das Bild + - Das Polygon hat einen Rand und eine interne Fläche, deren Farbe separat gewählt werden kann + - Der Rand kann im Bezug auf seine Dicke eingestellt werden + Kollaborationen: + - Der Anwender möchte ein Polygon zeichnen + +Klasse: Kreis-Tool + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - Erstellen einer Kreisform in dem man den Mittelpunkt bestimmt und zwei Radien festlegen kann (NS und WO Radius) + - Die Dicke des Randes des Kreises ist freiwählbar, sowie die Art des Randes (Gepunktet, etc.), genauso wie die Farbe des Kreises und des Randes + Kollaborationen: + - Der Anwender möchte einen beliebigen Kreis und eine beliebige Ellipse zeichnen können + +Klasse: Selection-Tool(abstrakt) + Vererbung: + -Tool + Verantwortlichkeiten: + -Auswählen von einem Bereich(beliebiger Bereich) + Kollaborationen: + - Der Anwender möchte ein Bereich Auswählen (quadratisch) + +Klasse: Cut-Tool + Vererbung: + -Selection-Tool + Verantwortlichkeiten: + -Auswählen von Bildern und das ausschneiden dieser + Kollaborationen + - Der Anwender möchte ein Bild auswählen und bewegen oder löschen + +Klasse: Korrektur-Tool(abstrakt) + Vererbung: + -Tool + Verantwortlichkeiten: + -Verändern von Bild Daten (Korrektur) + Kollaborationen: + -Der Anwender möchte ein Bild verändern und dies mit Korrektur + +Klasse: Helligkeits-Tool + Vererbung: + Korrektur-Tool + Verantwortlichkeiten + Verändert die Helligkeits Werte + Kollaboration: + Der Anwender möchte das Bild verdunkeln oder aufhellen + +Klasse: Farbton-Tool + Vererbung: + Korrektur-Tool + Verantwortlichkeiten: + Verändert die Sättigung von Farbdaten + Kollaborationen: + Der User möchte ein Bild sättigen oder verblassen + +Klasse: Gradations-Tool + Vererbung: + Korrektur-Tool: + Verantwortlichkeiten: + Setzen einer Gradationskurve + Kollaboration: + Der User möchte eine Gradationskurve eines Farbschemas Erstellen + +Klasse: 3D-Objekt + Vererbung: + - + Verantwortlichkeiten: + -Wissen über die Vertices und das Managen dieser + Kollaborationen: + -Der User möchte ein 3D Objekt laden + +Klassen: 3D-Inspector + Vererbung: + - + Verantwortlichkeiten: + -Darstellen eines 3D Objekts und der Projezierung (RayTracer) + Kollaborationen: + -Der User möchte ein 3D Objekt auf das Layer projezieren + +Klasse: Layer + Vererbung: + - + Verantwortlichkeiten: + -Darstellung eines Bildes und Sichtbarkeit auf sich selbst + Kollaborationen: + -Der User möchte ein Bild auf einem Layer darstellen + +Klasse: Layer-Manager + Vererbung: + - + Verantwortlichkeiten: + -Sichtbarkeit und Darstellung der Bilder auf verschiedenen Layern + -Projektion auf ein Bild + Kollaborationen: + -Der User möchte ein Layer über das andere schieben + -Der User möchte die Layer löschen + -neues Layer erstellen + + + + + \ No newline at end of file diff --git a/Abgabe/Abgabe 3/UML.pdf b/Abgabe/Abgabe 3/UML.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e379a3e6576c48505d1216eac03d2d6546dab117 GIT binary patch literal 6200 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 HuR;Ak=RUQN literal 0 HcmV?d00001 diff --git a/Abgabe/Abgabe 3/UML.uxf b/Abgabe/Abgabe 3/UML.uxf new file mode 100644 index 0000000..2ccb1a4 --- /dev/null +++ b/Abgabe/Abgabe 3/UML.uxf @@ -0,0 +1,757 @@ + + + 9 + + UMLClass + + 2106 + 171 + 171 + 81 + + /*Image*/ +-- ++pixel_data: byte[][] ++size: Vector2 +-- ++clear_image(Color) + + + + UMLClass + + 2115 + 450 + 162 + 36 + + *RasterImage* +-- +-- + + + + UMLClass + + 2106 + 702 + 189 + 99 + + *ShapedImage* +-- +-polygon_data: byte[][] +-- ++create_vertex(Vector2) ++remove_vertex(Vector2) ++clear_polygon() + + + + UMLClass + + 450 + 171 + 261 + 171 + + /*Tool*/ +-- ++effected_area_border_color: Color ++effected_area_border_radius: int ++effected_area_border_line_type: LineType ++name: String ++icon: Sprite ++tooltip: String ++description: String +... +-- +/+handleImageClick(Vector2): void/ + + + + Relation + + 2187 + 243 + 27 + 225 + + lt=<<- + 10.0;10.0;10.0;230.0 + + + Relation + + 2187 + 477 + 27 + 243 + + lt=<<- + 10.0;10.0;10.0;250.0 + + + UMLClass + + 468 + 450 + 225 + 153 + + /*SetColorTool*/ +-- ++colors: Color[255] ++selected_colors: Color[2] +-- ++renderColorPalette(): void ++setMainColor(Color): void ++setSecondaryColor(Color): void ++getMainColor(): Color ++getSecondaryColor(): Color + + + + UMLClass + + 0 + 450 + 225 + 117 + + *HistoryTool* +-- +-history: HistoryAction[20] +-current_location: int +-- ++undo(): bool ++redo(): bool ++clearRedo(): void ++addUndo(HistoryAction): void + + + + UMLClass + + 945 + 171 + 216 + 117 + + <<Enumeration>> +*LineType* +-- + Solid + Dotted + Dashed + LongDash + ... + + + + Relation + + 99 + 558 + 27 + 162 + + lt=<<<<- + 10.0;10.0;10.0;160.0 + + + UMLClass + + 0 + 702 + 225 + 45 + + *HistoryAction* +-- ++string action_data[] +-- + + + + UMLClass + + 0 + 864 + 225 + 99 + + <<Enumeration>> +*HistoryActionType* +-- + ColorChange + Deletion + PolygonVertex + .... + + + + Relation + + 99 + 738 + 99 + 144 + + lt=<- ++action_type + 10.0;140.0;10.0;10.0 + + + UMLClass + + 468 + 702 + 225 + 45 + + *FloodFillTool* +-- +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 234 + 702 + 225 + 45 + + *PlainTool* +-- +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 702 + 702 + 225 + 90 + + /*FormsTool*/ +-- ++edge_display_line_type: LineType ++edge_display_color: Color ++edge_display_thickness: int +-- + + + + UMLClass + + 936 + 702 + 225 + 63 + + *PenTool* +-- +-radius: int +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 702 + 864 + 225 + 90 + + *RectangleTool* +-- ++edge_thickness: int ++edge_line_type: LineType +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 1179 + 864 + 216 + 72 + + *LineTool* +-- ++thickness: int ++line_type: LineType +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 936 + 864 + 234 + 90 + + *ConvexFormsTool* +-- ++edge_thickness: int ++edge_line_type: LineType +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 468 + 864 + 225 + 90 + + *PolygonTool* +-- ++edge_thickness: int ++edge_line_type: LineType +-- ++handleImageClick(Vector2): void + + + + Relation + + 648 + 594 + 423 + 126 + + lt=<<- + 10.0;10.0;450.0;120.0 + + + Relation + + 612 + 594 + 225 + 126 + + lt=<<- + 10.0;10.0;230.0;120.0 + + + Relation + + 567 + 594 + 27 + 126 + + lt=<<- + 10.0;10.0;10.0;120.0 + + + Relation + + 333 + 594 + 225 + 126 + + lt=<<- + 230.0;10.0;10.0;120.0 + + + Relation + + 576 + 333 + 27 + 135 + + lt=<<- + 10.0;10.0;10.0;130.0 + + + Relation + + 837 + 783 + 225 + 99 + + lt=<<- + 10.0;10.0;230.0;90.0 + + + Relation + + 810 + 774 + 27 + 108 + + lt=<<- + 10.0;10.0;10.0;100.0 + + + Relation + + 882 + 783 + 423 + 99 + + lt=<<- + 10.0;10.0;450.0;90.0 + + + Relation + + 558 + 783 + 252 + 99 + + lt=<<- + 260.0;10.0;10.0;90.0 + + + Relation + + 99 + 333 + 414 + 135 + + lt=<<- + 440.0;10.0;10.0;130.0 + + + UMLClass + + 234 + 864 + 225 + 81 + + *CircleTool* +-- ++edge_thickness: int ++edge_line_type: LineType +-- ++handleImageClick(Vector2): void + + + + Relation + + 324 + 783 + 459 + 99 + + lt=<<- + 490.0;10.0;10.0;90.0 + + + UMLClass + + 234 + 450 + 225 + 63 + + *MergeTool* +-- ++import_file: DataStream<File> +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 702 + 450 + 225 + 45 + + *RotateTool* +-- +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 936 + 450 + 225 + 45 + + *ResizeTool* +-- +-- ++handleImageClick(Vector2): void + + + + Relation + + 621 + 333 + 216 + 135 + + lt=<<- + 10.0;10.0;220.0;130.0 + + + Relation + + 666 + 333 + 405 + 135 + + lt=<<- + 10.0;10.0;430.0;130.0 + + + Relation + + 333 + 333 + 225 + 135 + + lt=<<- + 230.0;10.0;10.0;130.0 + + + UMLClass + + 1170 + 450 + 225 + 54 + + *SelectionTool* +-- ++pos1: int ++pos2: int +-- + + + + + Relation + + 684 + 333 + 630 + 135 + + lt=<<- + 10.0;10.0;680.0;130.0 + + + UMLClass + + 1170 + 702 + 225 + 36 + + *CutTool* +-- +-- + + + + + Relation + + 1278 + 495 + 27 + 225 + + lt=<<- + 10.0;10.0;10.0;230.0 + + + UMLClass + + 1404 + 450 + 225 + 90 + + *KorrekturTool* +-- ++Value: int +-- ++increse(Value) ++decrese(Value) + + + + Relation + + 702 + 333 + 837 + 135 + + lt=<<- + 10.0;10.0;910.0;130.0 + + + UMLClass + + 1404 + 702 + 225 + 36 + + *HelligkeitsTool* +-- +-- + + + + Relation + + 1512 + 531 + 27 + 189 + + lt=<<- + 10.0;10.0;10.0;190.0 + + + UMLClass + + 1638 + 702 + 225 + 36 + + *FarbtonTool* +-- +-- + + + + + Relation + + 1539 + 531 + 234 + 189 + + lt=<<- + 10.0;10.0;240.0;190.0 + + + UMLClass + + 1872 + 702 + 225 + 54 + + *GradationsTool* +-- +-- ++generate_gradient(): void + + + + Relation + + 1575 + 531 + 432 + 189 + + lt=<<- + 10.0;10.0;460.0;190.0 + + + UMLClass + + 1170 + 171 + 225 + 72 + + *3D-object* +-- ++vertices +-- ++load_3D(Object): void + + + + + UMLClass + + 1404 + 171 + 225 + 54 + + *3D-inspector* +-- +-- ++generate_3D(): void + + + + + UMLClass + + 1872 + 171 + 225 + 81 + + *Layer-Manager* +-- +-- ++generate_layer(): void ++delete_layer(int): void ++overlab_layer(): void + + + + + UMLClass + + 1638 + 171 + 225 + 54 + + *Layer* +-- +-- ++display_layer(): void + + + + diff --git a/Abgabe/Abgabe 3/Use_case.pdf b/Abgabe/Abgabe 3/Use_case.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cffc0034ae40613e184e7f95da3e3a85edbb6e56 GIT binary patch literal 3278 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 + + 17 + + UMLActor + + 17 + 459 + 170 + 187 + + 3D-Künstler +bg=green + + + + UMLActor + + 68 + 714 + 136 + 187 + + Einsteiger +bg=red + + + + UMLUseCase + + 646 + 391 + 204 + 119 + + Zusammenfügen +von Bildern +bg=red + + + + UMLUseCase + + 646 + 527 + 204 + 119 + + Ändern der +Bilderauflösung +bg=red + + + + UMLUseCase + + 646 + 663 + 204 + 119 + + Drehen von +Bildern +bg=red + + + + UMLUseCase + + 646 + 969 + 204 + 119 + + Retuschieren +der Bilder +bg=magenta + + + + UMLActor + + 51 + 1037 + 170 + 187 + + Casual User +bg=red + + + + Relation + + 119 + 442 + 561 + 306 + + + 310.0;10.0;10.0;160.0 + + + Relation + + 119 + 561 + 561 + 187 + + + 310.0;10.0;10.0;90.0 + + + Relation + + 119 + 680 + 561 + 68 + + + 310.0;20.0;10.0;20.0 + + + Relation + + 119 + 442 + 561 + 629 + + + 310.0;10.0;10.0;350.0 + + + Relation + + 119 + 561 + 561 + 510 + + + 310.0;10.0;10.0;280.0 + + + Relation + + 119 + 697 + 561 + 374 + + + 310.0;10.0;10.0;200.0 + + + Relation + + 119 + 986 + 561 + 85 + + + 310.0;20.0;10.0;30.0 + + + Relation + + 136 + 1003 + 544 + 408 + + + 300.0;10.0;10.0;220.0 + + + UMLUseCase + + 646 + 1394 + 204 + 119 + + Korrektur- +werkzeuge +bg=blue + + + + UMLNote + + 629 + 1547 + 238 + 119 + + Helligkeit/Kontrast +Farbton/Sättigung +Gradationskurven +bg=blue + + + + Relation + + 136 + 1360 + 544 + 119 + + + 300.0;50.0;10.0;10.0 + + + Relation + + 731 + 1496 + 51 + 85 + + + 10.0;10.0;10.0;30.0 + + + UMLUseCase + + 646 + 1122 + 204 + 119 + + Pinsel +bg=blue + + + + UMLUseCase + + 646 + 1258 + 204 + 119 + + Auswahl- +werkzeuge +bg=blue + + + + Relation + + 136 + 1292 + 544 + 119 + + + 300.0;10.0;10.0;50.0 + + + Relation + + 136 + 1156 + 544 + 255 + + + 300.0;10.0;10.0;130.0 + + + UMLActor + + 0 + 1377 + 306 + 187 + + Freiberufliche Fotografen +bg=blue + + + + UMLUseCase + + 646 + 816 + 204 + 119 + + Layerstruktur +bg=dark_gray + + + + Relation + + 85 + 272 + 595 + 221 + + + 330.0;10.0;10.0;110.0 + + + UMLUseCase + + 646 + 238 + 204 + 119 + + Schnittstelle +für 3D-Modelle +bg=green + + + + Relation + + 85 + 136 + 595 + 357 + + + 330.0;10.0;10.0;190.0 + + + UMLUseCase + + 646 + 102 + 204 + 119 + + Erzeugen von +3D-Objekten +bg=green + + + + Relation + + 136 + 867 + 544 + 544 + + + 300.0;10.0;10.0;300.0 + + + Relation + + 119 + 867 + 561 + 204 + + + 310.0;10.0;10.0;100.0 + + + Relation + + 119 + 697 + 561 + 221 + + + 310.0;110.0;10.0;10.0 + + + Relation + + 85 + 442 + 595 + 476 + + + 330.0;260.0;10.0;10.0 + + + UMLClass + + 527 + 0 + 459 + 1836 + + lw=2 +IntelliPhoto Benchmark 1.0 +bg=gray + + +