diff --git a/Writerside/images/image_38.png b/Writerside/images/image_38.png new file mode 100644 index 0000000..25b8113 Binary files /dev/null and b/Writerside/images/image_38.png differ diff --git a/Writerside/images/image_39.png b/Writerside/images/image_39.png new file mode 100644 index 0000000..c9e5ee9 Binary files /dev/null and b/Writerside/images/image_39.png differ diff --git a/Writerside/in.tree b/Writerside/in.tree index 08e549f..826d18a 100644 --- a/Writerside/in.tree +++ b/Writerside/in.tree @@ -11,6 +11,10 @@ + + + + diff --git a/Writerside/topics/OOAD/IntroductionOOAD.md b/Writerside/topics/OOAD/IntroductionOOAD.md new file mode 100644 index 0000000..d4c4bf6 --- /dev/null +++ b/Writerside/topics/OOAD/IntroductionOOAD.md @@ -0,0 +1,71 @@ +# Introduction + +## What is Software Engineering +> **Definition according to Ian Sommerville**
+> Software engineering is an _engineering discipline_ that is concerned with all aspects of +> _software production_ from the early stages of system specification through to maintaining +> the system after it has gone into use. + +| ...Ingenieurdisziplin... | ...alle Aspekte der Softwareproduktion... | +|------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| +| Ingenieure lassen Dinge funktionieren! | nicht nur die Softwareentwicklung | +| Sie wenden Theorien, Methoden und Werkzeuge dort an, wo diese angemessen sind | beinhaltet auch Aktivitäten wie _Projektmanagement_, Entwicklung von Werkzeugen, Methoden und Theorien zur Unterstützung | +| Lösungen **müssen** innerhalb organisatorischer und finanzieller Einschränkungen funktionieren | | + + +## Iron Triangle: Organizational and Financial Constraints +![image_38.png](image_38.png) +- visualisiert Einschränkungen im Projektmanagement +- verkündet: + 1. Qualität der Ergebnisse eines Projekts ist durch folgende Faktoren eingeschränkt: + - Kosten (_verfügbar: Budget, Ingenieure, ..._) + - Zeit (_verfügbar: Zeit, Fristen_) + - Umfang (_Funktionen, bereitgestellte Funktionalität_) + 2. PM kann zwischen Einschränkungen handeln + 3. Änderungen in einer Einschränkung erfordern Änderungen in anderen zur Kompensation, oder die Qualität wird leiden +- Die Realität ist komplexer + - Geld in ein vollständig ausgelastetes Projekt zu stecken, kann es verlangsamen + +## Software Development Lifecycle (SDLC) +```mermaid +stateDiagram + 1: Requirement Analysis + 2: Design + 3: Implementation + 4: Testing + 5: Maintaining/Operations + 1-->2 + 2-->3 + 3-->4 + 4-->5 + 5-->1 +``` +- **Requirement Analysis** + - Understand what your client wants and/or needs +- **Design** + - Design a solution that meets [functional/non-functional](IntroductionOOAD.md#requirements-in-software-engineering) requirements +- **Implementation** + - Actually build the system meeting required quality goals +- **Testing** + - Ensure that the whole system meets all requirements +- **Maintaining/Operations** + - The system serves its purpose (earns money) + +## Software Quality +### Requirements in Software Engineering +| **Functional Requirements (FR)** | **Non-Functional Requirements (NFR)** | +|------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------| +| Systemfunktionen, Anwendungsfälle, ... | Eigenschaften des Systems als Ganzes, nicht im Zusammenhang mit der Funktionalität (_bspw. Sicherheit, Performance, Wartbarkeit_) | +| Können unterschiedlich detailliert erfasst sein (je nach Komplexität des Projekts) | Beeinflussen die gesamte Architektur eines Systems, nicht nur einzelne Komponenten | +| FRs sind meist höchste Prio des Clients, aber auch am einfachsten zu verhandeln | Wenn ein NFR scheitert, kann das ganze System nicht funktionieren | + + +### Eight Quality Characteristics +![image_39.png](image_39.png) + +### Maintainability +- Modularität +- Wiederverwendbarkeit +- Analysierbarkeit +- Modifizierbarkeit +- Testbarkeit \ No newline at end of file diff --git a/Writerside/topics/OOAD/SoftwareProcesses.md b/Writerside/topics/OOAD/SoftwareProcesses.md new file mode 100644 index 0000000..b8cb833 --- /dev/null +++ b/Writerside/topics/OOAD/SoftwareProcesses.md @@ -0,0 +1,5 @@ +# Software Processes +## Waterfall Model +In den 1950ern wurde Software an Seite der Hardware entwickelt +- Ziel dieser Prozesse war das komplette Produkt in einem einzigen Projekt zu entwerfen +