You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/Softwareanforderungsspezifikation (SRS).md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -224,7 +224,7 @@ niedrig
224
224
___
225
225
### 3. Nicht-funktionale Anforderungen
226
226
Das Projekt muss zum Ende des 4. Semesters abgegeben werden, genaueres wird noch bekannt gegeben. <br>
227
-
Sollte die Zeit nicht ausreichen, um alle geplanten Features zu implementieren, sollen die Kernfunktionen (Zutaten hinzufügen/entfernen, Rezeptsuche und Rezeptvorschläge) Priorität haben. Das Projekt soll dem schichtenbasierten Architekturstil und dem Liskov Substitution Designprinzip entsprechen.
227
+
Sollte die Zeit nicht ausreichen, um alle geplanten Features zu implementieren, sollen die Kernfunktionen (Zutaten hinzufügen/entfernen, Rezeptsuche und Rezeptvorschläge) Priorität haben. Das Projekt soll dem schichtenbasierten Architekturstil und dem Single Responsibility Designprinzip entsprechen.
228
228
#### 3.1 Technische Einschränkungen
229
229
-**TE-1 (Architektur):** Das System muss als Web-Applikation realisiert werden. Eine native Installation auf dem Endgerät des Nutzers ist nicht vorgesehen.
230
230
-**TE-2 (Laufzeitumgebung/Browser):** Die Anwendung muss auf den aktuellsten stabilen Versionen der Browser Google Chrome, Mozilla Firefox und Safari lauffähig sein. Eine Optimierung für veraltete Browser (z.B. Internet Explorer) oder Browser-Versionen erfolgt nicht.
| SQLite-Skalierbarkeit | SQLite unterstützt keine parallelen Schreibzugriffe; bei hoher Nutzerzahl kann es zu Engpässen kommen | Gering | Mittelfristig Migration auf PostgreSQL oder MySQL möglich dank LSP (ADR05) |
488
+
| SQLite-Skalierbarkeit | SQLite unterstützt keine parallelen Schreibzugriffe; bei hoher Nutzerzahl kann es zu Engpässen kommen | Gering | Mittelfristig Migration auf PostgreSQL oder MySQL möglich dank SRP (ADR05) |
489
489
| Fehlende maximale Rezeptbegrenzung | Bei vielen Rezepten in der Datenbank gibt es keine Begrenzung der Ergebnisanzahl, was zu langen Ladezeiten führen kann (ADR03) | Mittel | Pagination implementieren |
490
490
| Rechtliche Probleme durch Urheberrecht bei Rezepten | Rezepte sind urheberrechtlich geschützt. Rezepte einfach ohen Erlaubnis bereitszustellen könnte zu Rechtlichen Problemen führen | Mittel | Vorhandene AGBs und Meldebutton, Verlinkung auf Original Rezept in Rezeptansichts zu sehen |
491
491
| TODO-Kommentare im Code | Mehrere offene TODOs: Datenbank-Speicherort, E-Mail-Validierung, Passwortstärke, Error Messages generalisieren | Mittel | Systematisch abarbeiten |
@@ -504,7 +504,7 @@ Alle ADRs sind [hier](https://github.com/GalacticCodeGambit/LazyCook/tree/4710a6
Copy file name to clipboardExpand all lines: docs/adr/ADR05.md
+3-5Lines changed: 3 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,15 +15,13 @@ Welcher Designprinzipien soll für das Projekt verwendet werden? Um eine einheit
15
15
16
16
## Entscheidung
17
17
18
-
Gewählte Variante: "Liskov Substitution Principle (LSP)", denn damit stellen wir sicher, dass sich alle unsere Speicher-Implementierung gegenüber der Geschäftslogik gleich verhalten. Diese Variante, erlaubt uns es die Datenquelle später auszutauschen, ohne den Code im Service ändern zu müssen
18
+
Gewählte Variante: "Single Responsibility Principle (SRP)", da wir als Architekturentscheideung das Schichtenmodell gewählt haben, passt SRP perfekt dazu. Wir möchten einen klare Trennung der Verantwortlichkeiten und Funktionalitäten, sodass Codeänderungen nicht an mehreren Stellen passieren müssen und Fehler weitreichend das ganze Projekt beeinflussen. Zudem möchten wir ELemente in der Datenpersistenz und dem Frontend einfach bei Bedarf austauschen können.
19
19
20
20
## Status
21
21
22
22
Angenommen
23
23
24
24
## Konsequenzen
25
25
26
-
* Gut, weil die Wartbarkeit erhöht wird.
27
-
* Gut, weil die Testbarkeit verbessert wird.
28
-
* Schlecht, weil der initiale Entwicklungsaufwand leicht steigt, da wir erst Interfaces definieren müssen, bevor wir die Logik implementieren können.
29
-
* Schlecht, weil wir beim Design der Schnittstellen sehr sorgfältig sein müssen, um sicherzustellen, dass zukünftige Implementierungen (z. B. eine API, die Netzwerkfehler werfen kann) das Prinzip nicht verletzen.
26
+
- Wechsel von LSP auf SRP. Da wir keinen Vererbung haben und auch keine Datenlogik mit Vererbung geplant ist ist LSP als Designprinzip sinnfrei
27
+
- Einbindung von Service-Dateien für klare Trenneung der Aufgabenbereiche
0 commit comments