88 lines
4.5 KiB
Markdown
88 lines
4.5 KiB
Markdown
# Introduction to SE
|
|
|
|
> Software Engineering is an engineering discipline that is concerned with all aspect of software production
|
|
> from the early stages of system specification through to maintaining the system after it has gone into use.
|
|
|
|
|
|
## Iron Triangle: Organizational and Financial Constraints
|
|

|
|
- 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
|
|
```
|
|
|
|
## Development Methodologies
|
|
- Prozess, in dem Software Development in kleinere, parallele oder sequenzielle Sub-Prozesse aufgeteilt wird
|
|
um das Design oder das Produktmanagement zu verbessern
|
|
- kann die Vor-Definierung von spezifischen Artefakten beinhalten
|
|
- kann in zwei Kategorien aufgeteilt werden
|
|
- Traditionelle Methodiken
|
|
- Agile Methodiken
|
|
|
|
## Software Quality {id="software-quality_1"}
|
|
### Requirements in Software Engineering {id="requirements-in-software-engineering_1"}
|
|
| **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 {id="eight-quality-characteristics_1"}
|
|

|
|
|
|
### Maintainability {id="maintainability_1"}
|
|
- Modularität
|
|
- Wiederverwendbarkeit
|
|
- Analysierbarkeit
|
|
- Modifizierbarkeit
|
|
- Testbarkeit
|
|
|
|
>_Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live_
|
|
>
|
|
> ~_John F. Woods_
|
|
|
|
## 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
|
|

|
|
|
|
### Maintainability
|
|
- Modularität
|
|
- Wiederverwendbarkeit
|
|
- Analysierbarkeit
|
|
- Modifizierbarkeit
|
|
- Testbarkeit
|
|
|
|
>_Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live_
|
|
>
|
|
> ~_John F. Woods_
|