This commit is contained in:
David Schirrmeister 2024-04-30 22:45:51 +02:00
parent 94e4fb8d4c
commit 5a1e4ab63d
5 changed files with 80 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -11,6 +11,10 @@
<toc-element topic="05_prozesszustaende.md"/>
<toc-element topic="06_prozessstruktur.md"/>
</toc-element>
<toc-element toc-title="OOAD">
<toc-element topic="IntroductionOOAD.md"/>
<toc-element topic="SoftwareProcesses.md"/>
</toc-element>
<toc-element toc-title="Rechnerarchitektur">
<toc-element topic="Historie.md"/>
<toc-element topic="Prozessorkonzepte.md">

View File

@ -0,0 +1,71 @@
# Introduction
## What is Software Engineering
> **Definition according to Ian Sommerville**<br/>
> 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

View File

@ -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