From a52e785549272aaae8312a460aaae991eae58871 Mon Sep 17 00:00:00 2001 From: Tobias Wylega Date: Sat, 13 Apr 2024 23:05:34 +0200 Subject: [PATCH] Typos / minor changes --- Chapters/2-Planung.typ | 82 ++++++++++++++++++++++++------------------ Chapters/3-Entwurf.typ | 14 ++++---- Diagrams/ER.typ | 2 -- 3 files changed, 54 insertions(+), 44 deletions(-) diff --git a/Chapters/2-Planung.typ b/Chapters/2-Planung.typ index 35e858f..a924f24 100644 --- a/Chapters/2-Planung.typ +++ b/Chapters/2-Planung.typ @@ -105,7 +105,7 @@ Die Ergebnisse aus den vorherigen Abschnitten werden mithilfe der Use–Case–M ][ Studieninteressierte Person ][ - Fakultät ausgewählt + Keine ][ 1. User gibt "MDI" in das Suchfeld ein 2. System zeigt den Studiengang Mediendesigninformatik an @@ -209,16 +209,18 @@ Zur besseren Übersichtlichkeit werden die Anforderungen in Funktional und Nicht Jede Anforderung in den folgenden Auflistungen enthält entweder das Wort "muss", "sollte", oder "könnte". @rupp_requirements-engineering_2014[Kapitel 1.5.2] Damit wird zwischen Anforderungen unterschieden, die zwingend erforderlich sind (muss), Anforderungen, die sehr sinnvoll sind (sollte) und Anforderungen, die nicht zwingend erforderlich sind, aber die Nutzer begeistern würden (könnte). Eine weitere Priorisierung wird an dieser Stelle nicht benötigt, sondern kann bei Bedarf erfolgen. +#import "@preview/gentle-clues:0.7.1": * +#block(breakable: false)[ === Funtionale Anforderungen -#import "@preview/gentle-clues:0.7.1": * #task(title:[Aus #link()[Use-Case 1] ergeben sich folgende Anforderungen:])[ #narrowTrack("Studiengänge ansehen", type: "F", label: )[Nicht angemeldete Person (NP) muss Studiengänge ansehen können.] #narrowTrack("Curriculum anzeigen", type: "F", label: )[NP könnte sich das Curriculum eines Studienganges anzeigen lassen.] - #narrowTrack("Suchfunktion", type: "F", label: )[NP sollte Suche nutzen können, um den gesuchten Studiengang zu finden.] - #narrowTrack("PDF anzeigen", type: "F", label: )[NP sollte ein PDF mit allen Modulbeschreibungen runterladen können.] + #narrowTrack("Suchfunktion", type: "F", label: )[NP sollte Suche nutzen können, um einen Studiengang zu finden.] + #narrowTrack("Pdf anzeigen", type: "F", label: )[NP sollte ein PDF mit allen Modulbeschreibungen ansehen können.] +] ] #task(title: [Aus #link()[Use-Case 2] ergeben sich folgende Anforderungen:])[ @@ -228,25 +230,25 @@ Jede Anforderung in den folgenden Auflistungen enthält entweder das Wort "muss" #task(title: [Aus #link()[Use-Case 3] ergeben sich folgende Anforderungen:])[ - #narrowTrack("Login", type: "F", label: )[Ein User muss sich einloggen können.] + #narrowTrack("Login", type: "F", label: )[Ein User muss sich anmelden können.] #narrowTrack("Module bearbeiten", type: "F", label: )[Modulverantwortliche Person muss Module bearbeiten können, für die Sie als Ansprechpartner hinterlegt ist.] #narrowTrack("Plausibilitätschecks bei Modulen", type: "F", label: )[System sollte Änderungen an Modulen auf Plausibilität prüfen.] ] #task(title: [Aus #link()[Use-Case 4] ergeben sich folgende Anforderungen:])[ - #narrowTrack("User anlegen", type: "F", label: )[Studiengangsverantwortliche Person (SVP) muss neue User anlegen können] + #narrowTrack("User anlegen", type: "F", label: )[Studiengangsverantwortliche Person (SVP) muss neue User anlegen können.] #narrowTrack("Plausibilitätschecks bei Usern", type: "F", label: )[System sollte Änderungen an Usern auf Plausibilität prüfen.] ] #task(title: [Aus #link()[Use-Case 5] ergeben sich folgende Anforderungen:])[ - #narrowTrack("Module verwalten", type: "F", label: )[SVP muss Module verwalten können.] + #narrowTrack("Module verwalten", type: "F", label: )[SVP muss Module verwalten (anlegen, bearbeiten, löschen) können.] #narrowTrack("Module duplizieren", type: "F", label: )[SVP sollte Module duplizieren können.] - #narrowTrack("Studiengänge verwalten", type: "F", label: )[SVP muss Studiengänge verwalten (anlegen, verändern, löschen) können.] + #narrowTrack("Studiengänge verwalten", type: "F", label: )[SVP muss Studiengänge verwalten können.] ] #task(title: [Aus #link()[Use-Case 6] ergibt sich folgende Anforderung:])[ - #narrowTrack("Änderungen anzeigen", type: "F", label: )[SVP sollte sich einzelne Änderungen anzeigen lassen können.] - #narrowTrack("Änderungen widerrufen", type: "F", label: )[SVP könnte einzelne Änderungen rückgängig machen.] + #narrowTrack("Änderungen anzeigen", type: "F", label: )[SVP sollte sich einzelne Änderungen an einem Modul anzeigen lassen können.] + #narrowTrack("Änderungen widerrufen", type: "F", label: )[SVP könnte einzelne Änderungen an einem Modul rückgängig machen.] ] #task(title: [Aus #link()[Use-Case 7] ergibt sich folgende Anforderung:])[ @@ -259,60 +261,70 @@ Jede Anforderung in den folgenden Auflistungen enthält entweder das Wort "muss" #narrowTrack("Eigenes Passwort zurücksetzen", type: "F", label: )[SVP sollte das eigene Passwort zurücksetzen können.] ] - +#block(breakable: false)[ === Nicht-Funtionale Anforderungen -Die Nicht-Funktionalen Anforderungen ergeben sich aus einem Brainstorming unter der Berücksichtigung der Iso-Norm ISO/IEC 25000 @rupp_requirements-engineering_2014[Kapitel 12] und ergeben sich aus den Bedingungen aus @architecture. +Die Nicht-Funktionalen Anforderungen ergeben sich aus einem Brainstorming unter der Berücksichtigung der ISO-Norm ISO/IEC 25000 @rupp_requirements-engineering_2014[Kapitel 12] und ergeben sich aus den Bedingungen aus @architecture. + +#linebreak() #task(title: [Änderbarkeit])[ #narrowTrack("Modularität", type:"N", label: )[ - Einzelne Komponenten des Quellcodes sollten wiederverwendbar sein + Der Quellcode des Systems sollte aus Komponenten bestehen. +] + + #narrowTrack("Wiederverwendbarkeit", type:"N", label: )[ + Einzelne Komponenten sollten wiederverwendbar sein. +] + + #narrowTrack("Eine Verantwortlichkeit", type:"N", label: )[ + Die Komponenten sollten genau eine Verantwortlichkeit haben. ] #narrowTrack("Testbarkeit", type:"N", label: )[ - System sollte aus kleinen gut testbaren Einheiten bestehen + Die Komponenten sollten gut testbar sein. ] #narrowTrack("Unittests", type:"N", label:)[ - Geschäftslogik könnte mithilfe von Unittests automatisiert getestet werden + Geschäftslogik könnte mithilfe von Unittests automatisiert getestet werden. ] #narrowTrack("e2e-Tests", type:"N", label:)[ - System könnte mithilfe von e2e-Tests automatisiert getestet werden + System könnte mithilfe von e2e-Tests automatisiert getestet werden. +] ] ] - #task(title: [Benutzbarkeit])[ #narrowTrack("Aktueller Pfad", type:"N", label: )[ - System könnte anzeigen, welcher Pfad aufgerufen wurde (Fakultät->Studiengang->Modul) + System könnte anzeigen, welcher Pfad aufgerufen wurde (Fakultät->Studiengang->Modul). ] #narrowTrack("Rückfragen", type:"N", label:)[ - Vor dem Löschen eines Elements muss eine Rückfrage erscheinen + Vor dem Löschen eines Elements muss eine Rückfrage erscheinen. ] #narrowTrack("Wiederherstellbarkeit", type:"N", label:)[ - Gelöschte Elemente könnten wiederherstellbar sein + Gelöschte Elemente könnten wiederherstellbar sein. ] #narrowTrack("Ladebalken", type:"N", label:)[ - Ladezeiten >1s sollten einen Ladebalken zeigen + Ladezeiten >1s sollten einen Ladebalken zeigen. ] #narrowTrack("Verständlichkeit", type:"N", label:)[ - Fehlermeldungen sollten verständlich sein + Fehlermeldungen sollten verständlich sein. ] #narrowTrack("Lösung anbieten", type:"N", label:)[ - Fehlermeldungen könnten eine Lösung anbieten + Fehlermeldungen könnten eine Lösung anbieten. ] #narrowTrack("Responsive", type:"N", label:)[ - Das System könnte auf verschiedenen Displaygrößen nutzbar sein + Das System könnte auf verschiedenen Displaygrößen nutzbar sein. ] #narrowTrack("Eingabemethoden", type:"N", label:)[ - Das System könnte verschiedene Eingabemethoden unterstützen + Das System könnte verschiedene Eingabemethoden unterstützen. ] #narrowTrack("Selbsterklärend", type:"N", label:)[ @@ -331,7 +343,7 @@ Die Nicht-Funktionalen Anforderungen ergeben sich aus einem Brainstorming unter ] #narrowTrack("Deployment", type:"N", label:)[ - Das Deployment könnte automatisiert sein + Das Deployment könnte automatisiert sein. ] #narrowTrack("Effizienz der Aufgabenerledigung", type:"N", label:)[ @@ -341,11 +353,11 @@ Die Nicht-Funktionalen Anforderungen ergeben sich aus einem Brainstorming unter #task(title: [Funktionalität])[ #narrowTrack("Zwei Sprachen", type:"N", label:)[ - Das System muss in Englisch und Deutsch verfügbar sein + Das System muss in Englisch und Deutsch verfügbar sein. ] #narrowTrack("Mehrsprachenfähigkeit", type:"N", label:)[ - Das System sollte für beliebig viele Sprachen erweiterbar sein + Das System sollte für beliebig viele Sprachen erweiterbar sein. ] ] @@ -357,35 +369,35 @@ Die Nicht-Funktionalen Anforderungen ergeben sich aus einem Brainstorming unter #task(title: [Fehlertoleranz])[ #narrowTrack("Stabilität", type:"N", label: )[ - Das System muss bei auftretenden Fehlern weiterhin funktionieren / sich selbst wiederherstellen + Das System muss bei auftretenden Fehlern weiterhin funktionieren / sich selbst wiederherstellen. ] ] #task(title: [Technische Anforderungen (ergeben sich aus @architecture)])[ #narrowTrack("Neue Anwendung", type:"N", label: )[ - Das Frontend muss eine neue Anwendung sein + Das Frontend muss eine neue Anwendung sein. ] #narrowTrack("Technologien im Frontend", type:"N", label: )[ - Das Frontend muss Angular nutzen + Das Frontend muss Angular nutzen. ] #narrowTrack("Bestehende Anwendung", type:"N", label: )[ - Das bestehende Backend muss erweitert werden + Das bestehende Backend muss erweitert werden. ] #narrowTrack("Technologien im Backend", type:"N", label: )[ - Das Backend muss Primsa und NestJS nutzen + Das Backend muss Primsa und NestJS nutzen. ] #narrowTrack("Bestehende Datenbank", type:"N", label: )[ - Die bestehende Datenbank muss erweitert werden + Die bestehende Datenbank muss erweitert werden. ] ] #task(title: [Weitere Anforderungen])[ #narrowTrack("Dokumentation im Backend", type:"N", label: )[ - Neue API-Endpoints sollten dokumentiert sein + Neue API-Endpoints sollten dokumentiert sein. ] ] diff --git a/Chapters/3-Entwurf.typ b/Chapters/3-Entwurf.typ index 1a9397a..ee0a03e 100644 --- a/Chapters/3-Entwurf.typ +++ b/Chapters/3-Entwurf.typ @@ -29,7 +29,7 @@ Das Modul enthält zunächst grundlegende Informationen: ] #track("Teilmodule")[ - Auflistung aller Teilmodule + Auflistung aller Teilmodule. ] #track("Verantwortliche(r)", example: "Wohlfeil, Stefan, Prof. Dr.")[ @@ -41,7 +41,7 @@ Das Modul enthält zunächst grundlegende Informationen: ] #track("Präsenzstunden / Selbststudium", example: "68 h / 112 h")[ - Aufwand des Studiums, aufgeteilt nach der Zeit die in der Hochschule verbracht wird und der Zeit, die im Selbststudium verbracht wird (Arbeit an Übungen, Prüfungsvorbereitung...) + Aufwand des Studiums, aufgeteilt nach der Zeit die in der Hochschule verbracht wird und der Zeit, die im Selbststudium verbracht wird (Arbeit an Übungen, Prüfungsvorbereitung...). ] #track("Studiensemester")[ @@ -65,7 +65,7 @@ Das Modul enthält zunächst grundlegende Informationen: ] #track("Angestrebte Lernergebnisse", example: "Die Studierenden sind in der Lage, dreidimensionale Objekte zu gestalten, zu bewegen und zueinander in Beziehung zu setzen.", label:)[ - Eine Stichpunktartige, Kommagetrennte Auflistung der Kompetenzen + Eine Stichpunktartige, Kommagetrennte Auflistung der Kompetenzen. ] #text(" ") @@ -88,7 +88,7 @@ Die Teilmodule enthalten zusätzlich weitere Informationen: ] #track("Veranstaltungsart, SWS", example: "Vorlesung mit Übung, 4 SWS")[ - Eine Kurzbeschreibung zum Ablauf der Veranstaltung, sowie deren Dauer in Semesterwochenstunden + Eine Kurzbeschreibung zum Ablauf der Veranstaltung, sowie deren Dauer in Semesterwochenstunden. ] #track("Empfehlungen zum Selbststudium", example: "Aufbereitung der Lehrveranstaltung anhand von eigenen Projekten")[ @@ -122,14 +122,14 @@ Reges, S., Stepp, M.: Building Java Programs, Prentice Hall")[ Um die Datenstruktur zu planen wurde zunächst ein ER-Diagramm erstellt (@ER). Hierfür wurden im ersten Schritt Tabellen für Module und Teilmodule geplant. Damit das System auch für alle Fakultäten und alle Studiengänge nutzbar ist wurden zusätzlich die Tabellen Faculty und Course geplant. -Um die Anforderungen @SHOWCHANGES und @REVERT vorzubereiten wird die Tabelle Changelog genutzt. -Die bestehende User-Tabelle wird an verschiedenen Stellen referenziert, um beispielsweise die Verantwortlichen Personen anzugeben. +Um die Anforderungen @SHOWCHANGES und @REVERT vorzubereiten wurde die Tabelle Changelog genutzt. +Die bestehende User-Tabelle wurden an verschiedenen Stellen referenziert, um beispielsweise die Verantwortlichen Personen anzugeben. Eigenschaften die aus @requirements oder aus @properties hervorgehen sind dementsprechend markiert. #diagramFigure("ER-Diagramm - Gesamtbild", , "ER") -Um die Anforderung @TRANSLATEMULTIPLE vorzubereiten, wird die Tabelle TranslatedText für alle Eigenschaften mit dem Datentyp "TEXT" genutzt. Zur besseren Lesbarkeit wurde dies nur exemplarisch für die Eigenschaften E1-E3 dargestellt: +Um die Anforderung @TRANSLATEMULTIPLE vorzubereiten, wurde die Tabelle TranslatedText für alle Eigenschaften mit dem Datentyp "TEXT" genutzt. Zur besseren Lesbarkeit wurde dies nur exemplarisch für die Eigenschaften E1-E3 dargestellt: #diagramFigure("ER-Diagramm - TranslatedText", , "ER_Translation") diff --git a/Diagrams/ER.typ b/Diagrams/ER.typ index 00e3381..d975a0f 100644 --- a/Diagrams/ER.typ +++ b/Diagrams/ER.typ @@ -18,8 +18,6 @@ erDiagram TEXT Subtitle(E2) TEXT Niveau(E3) TEXT Type(E4) - TEXT Submodules(E5) - TEXT Responsible(E6) INTEGER Credits(E7) INTEGER HoursAtLocation(E8) INTEGER HoursAtHome(E8)