diff --git a/src/main/asciidoc/developer_documentation.adoc b/src/main/asciidoc/developer_documentation.adoc index 594fa10..37cb3b9 100644 --- a/src/main/asciidoc/developer_documentation.adoc +++ b/src/main/asciidoc/developer_documentation.adoc @@ -128,11 +128,34 @@ so common patterns that are easily learned should be used. * Kontextdiagramm == Lösungsstrategie -=== Erfüllung der Qualitätsziele +=== Quality Demand Fulfillment [options="header"] -|=== -|Qualitätsziel |Lösungsansatz -|... |... +|=== +|Quality Demand |Solution approach +|Functional Suitability a| +* *Exchange* Ensure that the exchange of system data between the system component works flowlessly. +* *Requirements* Ensure that all functional requirements as descripted in the contrect are fulfilled. +|Performance efficient a| +*Not important* +|Compatability a| +*Not important* +|Usability a| +* *Language* Ensure that every word on the web interface corresponds to its definition in the industry. +* *Learnability* Ensure that the system can be easily used and understood by its users. This can be realized by e.g. unambiguously describing the content of inputs with labels or tooltips. +* *User error protection / Error handling* Protect user against making errors. Invalid inputs must not lead to invalid system states. +* *User interface aesthetics* Provide a pleasing and satisfying interaction for the user. +* *Accessibility* Ensure that people with a wide range of characteristics can fully use the system. This can be realized by e.g. using suitable font sizes and color contrasts. +|Reliability a| +* *Tests* Add tests to ensure functional integrity. +|Security a| +* *Confidentiality* Ensure that only data can be only accessed by people who are authorized to access them. This can be realized with _Spring Security_ and _Thymeleaf_ (`sec:authorize` - tag). +* *Integrity* Prevent unauthorized modification of data. This can be realized with _Spring Security_ (`@PreAuthorize` - annotation). +* *Accountability* Traceability of actions or event to a unambiguously entity or person. For this application, every `Order` should be linked to a `Customer`. +|Maintainability a| +* *Modularity* Compose the application out of discrete components such that changes of a component have less impact on other components. +* *Reusability* Ensure that components of the system can be reused by other components or systems. +|Portability a| +*Not important* |=== === Softwarearchitektur