VL1 + 1 Übung Flashcards
Produktentstehungsprozess (PEP)
Der Produktentstehungsprozess ist eine systematische Abfolge von Schritten und Aktivitäten, die zur Produktidee, Planung, Konzeption, Entwicklung, Herstellung und Wartung sowie dem Betriebsende eines neuen oder verbesserten Produkts führen. Dieser Prozess umfasst alle Lebensphasen eines Produkts und variiert je nach Branche.
Software Engineering
Software Engineering ist die Teildisziplin der Informatik, welche sich
mit der Erarbeitung und Anwendung von Prinzipien, Methoden und
Werkzeugen zur Entwicklung, zur Herstellung, zum Betrieb und zur
Wartung von komplexen Softwaresystemen befasst.
alle Lebensphasen eines Produkts
(картинка с 7 фазами проекта)
Produktidee, Produktplanung, Produktkonzept, Entwicklung, Herstellung, Betrieb/Wartung, Betriebs-/Lebenssende
Softwaresystem
Softwaresystem ist ein System von miteinander kommunizierenden Komponenten auf Basis von Software und Teil eines Computersystems. Ein Softwaresystem besteht aus einer Reihe separater Programme, Konfigurationsdateien, System- und Benutzerdokumentation.
Merkmale von Softwaresystemen:
-kann vereinfacht in Systemsoftware, Betriebssysteme, Anwendungssoftware sowie weiterer Software kategorisiert werden (Могут быть упрощены и категоризированы как системное программное обеспечение)
-beschreibt Sicht eines Entwicklers auf Dekomposition einer Software mit Prinzipien des Software Engineering
Bedeutung von Software Engineering für softwareintensive Systeme
Fehler in reinen Softwareprodukten häufig nicht sicherheitskritisch, z.B.
▪ Fahrplanapps/-auskünfte
▪ fehlerhafte Webseiten/-apps
Betrachtung softwareintensiver Systeme ggf. sicherheitskritisch, z.B.
▪ Flugzeuglandung LH 2904
▪ Selbstzerstörung Ariane 5
Softwareanteil in softwareintensiven Systemen (z.B. für Strahlentherapie, Fahrassistenz) birgt Gefährdungspotential ohne Software Engineering
softwareintensives System
Ein softwareintensives System ist ein System aus Soft- und Hardware, in der Software die bedeutende und essentielle Rolle für Betrieb, Funktionalität sowie Leistung spielt.
Case Trends
-Connected (Vernetzung des Fahrzeugs mit weiteren Fahrzeugen und Infrastruktur) –> Softwareanteil durch neue Dienstleistungen
-Autonomes (Autonomes Fahren und hochautomatisierte Fahrfunktionen) –> Softwareanteil steigt durch Fahrassistenz
-Shared (Mobilität als Dienstleistung, statt besitzt von Fahrzeugen/Hardware) —> Stellenwert der Hardware (z.B Design) sinkt
-Electric (Elektrische Fahrzeugantriebe und Reduktion der Antriebsstrangkomplexität) → mechanische Komplexität steigt kaum noch
Annual Percentage Value Added in Automotive Industry
2020 - 26%, 2025 - 51 %, 2030 - 69%
Lines of Code als Softwaremetrik
▪ häufige Methode zur Messung der Komplexität
▪ reine Anzahl der Codezeilen keine genaue
Darstellung der tatsächlichen Komplexität
Weitere Faktoren für Komplexität
▪ Code-Struktur, Algorithmen, Abhängigkeiten, Anzahl der Funktionen und Variablen
▪ Verschachtelung von Kontrollstrukturen, Wartbarkeit, Dokumentation, Designprinzipien
▪ statische Codeanalyse ermöglicht tiefgehende Untersuchung der Softwarestruktur
Dimensionen der Komplexität (измерения сложности)
Durch Implementierung bedingt: Die Komplexität der Funktionen, die Komplexität der Datenstrukturen und die Komplexität der Algorithmen hängen davon ab, wie sie in das System eingebunden sind.
Durch Anwendungskontext bedingt: Die Komplexität des zeitabhängigen Verhaltens, die Komplexität der Systemumgebung und die Komplexität der Benutzerinteraktion hängen vom konkreten Einsatzgebiet und den Anforderungen ab.
Komplexität
Komplexität bezeichnet die Herausforderung, Software oder Softwaresysteme zu verstehen oder zu steuern, aufgrund der vielen verschiedenen Elemente im System, ihrer unterschiedlichen Wechselwirkungen und des oft unvorhersehbaren Verhaltens.
Systemumgebung
Die Systemumgebung ist die Gesamtheit aller externen Faktoren, die ein Softwaresystem oder softwareintensives System umgeben und das
Verhalten beeinflussen können. Die Berücksichtigung der
Systemumgebung ist für nutzergerechte Entwicklung, Herstellung, Wartung sowie den effizienten Betrieb von Software notwendig.
Beispiele externe Faktoren
▪ Hardware (z.B. Computerhardware) und Software (z.B. Betriebssystem)
▪ Menschen (Human Factors später vertieft) und organisatorische Aspekte
▪ Daten und Netzwerke, insbesondere bei hochvernetzen Systemen
Herausforderungen bei hochvernetzten Systemen
Hohe Vernetzung mit externen Systemen
▪ Dynamisches Umfeld während Laufzeit
▪ Co-Entwicklung Software und externe Systeme mit verschiedenen Reifegraden
▪ Anforderungen im nicht-funktionalen Bereich („Qualitätsanforderungen“)
▪ Hohe Notwendigkeit für frühes Testen
▪ Hohe Anforderungen an funktionale
Sicherheit bei Vielzahl Abhängigkeiten
System
Ein System ist eine Anordnung von Elementen, die gemeinsam ein Verhalten besitzen, die die Bestandteile nicht aufweisen (Emergenz). Es ist durch seine Systemgrenze von der Systemumgebung abgegrenzt, erfüllt einen definierten Zweck und besitzt eine vorgegebene Funktion.
Funktionales Konzept
Der Zweck des Systems wird von außen bestimmt.
Zweck des Systems: Wird von außen bestimmt, basierend darauf, wie es funktioniert und welche Zustände es hat.
Funktion des Systems: Entsteht durch Interaktionen mit der Umgebung (z. B. andere Systeme, Benutzer, Hardware).
Grenzen des Systems: Der Zweck und die Funktion werden an den Grenzen des Systems festgelegt, durch die Schnittstellen und Daten (Ein- und Ausgaben).