4.5 KiB
4.5 KiB
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:
- 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)
- PM kann zwischen Einschränkungen handeln
- Änderungen in einer Einschränkung erfordern Änderungen in anderen zur Kompensation, oder die Qualität wird leiden
- Qualität der Ergebnisse eines Projekts ist durch folgende Faktoren eingeschränkt:
- Die Realität ist komplexer
- Geld in ein vollständig ausgelastetes Projekt zu stecken, kann es verlangsamen
Software Development Lifecycle (SDLC)
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
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
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