Einführung und Organisation Flashcards
Standardaufgaben des Software Engineerings
- Ermittlung von Zielen und Anforderungen
- Entwurf der Architektur
- Umsetzung des Anforderungen und Architektur (Code)
- Integration von Code
- Qualitätssicherung
- Evolution (Wartung, Weiterentwicklung)
Dijkstras “Software-Krise”
Der Grund für die “Software-Krise” sind die immer leistungsfähigeren Computer.
Ursachen von Softwarefehlern
- Missverständnis zwischen Auftraggeber und Auftragnehmer (Domänenspzifische Sicht & Technische Sicht)
- Schlechter Entwurf
- Unzureichende Qualitätssicherung
- …
Antworten zum verhindern von Softwarefehlern
- Standards bei der Softwareentwicklung
- Programmiersprachen mit (strenger) Typprüfung
- Moderne Modellierungs- und Programmierparadigmen
Definition: Software
- Gesamtheit aller Programme und Daten
- für eine bestimmte Informationsverarbeitungsaufgabe
- in ablauffähiger Form
- zugeschnitten auf Hardware
- Dokumentation => Zukunft
Definition: Programm
Ein Programm ist eine in einer Programmiersprache abgefasste
Verarbeitungsvorschrift (Algorithmus), die auf einer Rechenanlage (Computer) unter Nutzung und Festlegung von Datenformaten ausgeführt werden kann.
Definition: Modul
Abgeschlossene softwaretechnische Einheit (Programmstück, auch
Softwareeinheit oder Programmkomponente) mit wohldefinierter Schnittstelle, die eine Funktions- und/oder Datenabstraktion realisiert. Module sind in der Regel nicht für sich allein stehend ablauffähig.
Definition: System
- Von seiner Umgebung abgegrenztes Gebilde von Komponenten
- Schnittstellenverhalten und innerer Aufbau (Architektur)
- Besteht aus Elementen die durch Schnittstellen miteinander verbunden sind
- System ist durch Systemgrenze von seiner Umwelt abgegrenzt
Definition: Softwaresystem
- Besteht aus mehreren Softwareteilsystemen (Komponenten)
- Besitzt Schnittstelle zur Systemumgebung
- Besitzt in der Regel eine Nutzungsschnittstelle
Definition: Komponente
- Teilsystem mit eigenschaften eines Systems
- Eigenständiger Baustein (unabhängige Entwicklung & Verwendung)
- Dienen zur Strukturierung des Systems
- Funktionalität wird durch Schnittstelle bereitgestellt
Definition: Softwarekomponente
- Kompositionseinheit mit vertraglich festgelegten Schnittstellen
- Kann unabhängig bereitgestellt werden
Definition: Systemarchitektur
- Gliedert System in Teilsysteme (Komponenten)
- Komponenten können hier auch Hardwaretechnische und mechanische Teilsysteme umfassen
Definition: Softwarearchitektur
- Gliederung eines Softwaresystems in Softwarekomponenten
- Zerlegung in Module und deren Zusammenspiel sowie Regeln und Prinzipien
- für die Wirkungsweise und das Erreichen von Qualitätszielen.
- Sie ist eine Systemarchitektur, in der alle Teilsysteme Softwarekomponenten sind.
Kernaufgaben der Softwareentwicklung
- Anforderungsfestlegung (Ziele, Anforderungen, Spezifikationen)
- Grob- und Feinentwurf (Architektur, Programmstruktur)
- Implementierung, Integration und Test
- Erprobung und Inbetriebnahme
- Wartung und Weiterentwicklung
- (Außerbetriebnahme)
Projektlebenszyklusmodell
- Projektentstehung (Anforderung und Ziele)
- Projektdefinition (Projektplan)
- Projektdurchführung (Entwicklungsprozess)
- Projektabschluss (Fertiges Softwaresystem)