Blatt 2 Flashcards

1
Q

Entwicklung

A

Die Entwicklung ist die Phase, in der das Projekt in Softwaremodule aufteilen wird und die Voraussetzungen für die Software in Code umwandeln werden, um das fertige Produkt herstellen zu können

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wartung / Betrieb

A

Die Wartung und “Reparatur” der Software während ihres Betriebszyklus zielt darauf ab, sicherzustellen, dass die Software weiterhin den Anforderungen der Kunden entspricht.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Systemumgebung

A

Die Systemumgebung ist die Gesamtheit aller externen Faktoren, die ein Softwaresystem oder softwareintensives System umgeben und das Verhalten beeinflussen können.
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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Normen / Standards

A

Normen und Standards beschreiben gewisse einheitliche Vorgaben, auf die zurückgegriffen werden kann/sollte, um Konflikte zu vermeiden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Prinzipien

A

“Prinzipien” beschreiben innerhalb der Softwaretechnik gewisse Komponenten, die für den gesamten Entwicklungsverlauf der Software notwendig sind.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Komplexe Systeme

A

Komplexe Systeme sind hochgradig organisierte Einheiten mit vielfältigen Funktionen, deren Strukturen und Verbindungen komplex und veränderlich sind.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Prozessmodelle

A

Ein Prozessmodell oder Vorgehensmodell stellt in abstrahierter Form die zeitlich-sachlogische Reihenfolge von Aktivitäten dar, die notwendig sind, um ein System bzw. Produkt zu entwickeln. Eine Anpassung ist notwendig, um Prozessmodelle
an Randbedingungen von Entwicklungsteams bzw. Unternehmen zu adaptieren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wasserfallmodell

A

Das Wasserfallmodell beschreibt ein Vorgehensmodell, bei dem Software in sukzessiven Stufen entwickelt wird und die jeweiligen Arbeitsergebnisse nach einer Phase in die nächste fallen (Top-Down-Prinzip)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Horizontaler Prototyp

A

Beim sogenannten “horizontalen Prototyp” werden nur spezifische Ebenen des Systems und die betreffende Ebene möglichst vollständig realisiert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Warum professionelle Softwareentwicklung nicht nur die
Programme einschließt, die für Kunden entwickelt werden

A

Professionelle Softwareentwicklung umfasst noch die Implementierung bewährter Softwareentwicklungspraktiken, um qualitativ hochwertigen und wartbaren Code zu gewährleisten. Die Integration von Sicherheitsmaßnahmen ist auch wichtig, zudem erfordert die professionelle Softwareentwicklung effizientes Projektmanagement, um Zeitpläne einzuhalten und Ressourcen optimal zu nutzen.
Außerdem spielt die Wartung und Aktualisierung von Software eine wichtige Rolle, um Funktionalität, Sicherheit und Kompatibilität mit neuen Technologien zu gewährleisten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Nennen Sie mögliche Konsequenzen einer fehlerhafte Anwenderdokumentation

A

Eine unzureichende Anwenderdokumentation beeinträchtigt die Benutzerfreundlichkeit und den effektiven Einsatz von Software wie WordPress, da Benutzer Schwierigkeiten beim Einrichten von Webseiten haben, grundlegende Funktionen nicht verstehen und Sicherheitsaspekte vernachlässigen könnten. Dies könnte zu unsicheren Websites, unzureichender Nutzung von Funktionen und erhöhtem Support-Aufwand führen, was das Vertrauen der Benutzer in die Software beeinträchtigt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Inwiefern unterstützt ein strukturiertes Vorgehen die professionelle Softwareentwicklung, d.h. welche Gründe gibt es für die Nutzung von Vorgehensmodellen aus Ihrer Sicht?

A

Ein strukturiertes Vorgehen in der Softwareentwicklung, das durch die Nutzung von Vorgehensmodellen erfolgt, bietet
mehrere Vorteile für die professionelle Softwareentwicklung, darunter:
* Planung und Kontrolle
* Qualitätssicherung
* Risikomanagement
* Dokumentation
* Skalierbarkeit und Wiederverwendbarkeit
Insgesamt bieten Vorgehensmodelle einen Rahmen, der dazu beiträgt, die Komplexität der Softwareentwicklung zu bewältigen und die Wahrscheinlichkeit von Erfolg sowie die Qualität der erstellten Software zu erhöhen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Relevanz von Systems Engineering für das Software Engineering

A

Fehler im Systems Engineering: Falsche Anforderungen, unvollständige Anforderungen, unzureichende Interessenvertretung
Kosten- und Anstrengungsschätzung von Software: Notwendigkeit der Anpassung an Praktiken der Systemtechnik, Entwicklung von Schätzmodellen für Systemtechnik
Integration von Systemen: Entwicklung von Modellen zur Kostenschätzung, Integration von Systemen von Systemen, Integration von kommerziellen Off-the-Shelf-Produkten Lücke in der IT-Profis-Ebene: Unterschiedliche Kompetenzen zwischen Fachleuten in Business-Workflows und IT-Bereich, Notwendigkeit einer ausgewogenen Fähigkeitsentwicklung in beiden Bereichen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Erläutern Sie 2 mögliche Gemeinsamkeiten (z.B. gemeinsame/ähnliche Aktivitäten bzw. Phasen), die alle klassischen Vorgehensmodelle prägen. Erläutern Sie zusätzlich kurz (2-3 Sätze) drei wesentliche Unterschiede zwischen den Prozessmodellen.

A

Gemeinsamkeiten aller klassischen Vorgehensmodelle:

  1. Anforderungsanalyse: Erfassung und Spezifikation von Kunden- und Systemanforderungen, um ein klares Verständnis für die zu entwickelnde Software sicherzustellen.
  2. Integration einer Testphase: Durchführung von Tests, um sicherzustellen, dass die entwickelte Software den Anforderungen entspricht und frei von Fehlern ist.

Wesentliche Unterschiede zwischen den Prozessmodellen:

Wasserfallmodell:

Sequenzieller Ansatz
Festgelegter Plan
Schwierige Änderungen
Agile Methoden (z. B. Scrum, Kanban):

Iterative und inkrementelle Ansätze
Flexibel auf Änderungen reagieren
Betonen Zusammenarbeit und Kommunikation im Team
V-Modell:

Betont parallele Natur von Entwicklung und Testaktivitäten
Strukturierte Phasen mit definierten Schnittstellen
Konzentriert sich auf die Verifikation und Validierung entlang des gesamten Entwicklungsprozesses

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Schlagen Sie das am besten geeignete Vorgehensmodell (von den klassischen und agilen Prozessmodellen der Vorlesung) vor, das als Grundlage für die Entwicklung der folgenden Systeme dienen kann. Begründen Sie Ihre Entscheidungen:
(1) eine App für Smartphones, um einfache ToDo Listen anzulegen

A

App für Smartphones (z. B. ToDo-Liste):
* Empfohlenes Vorgehensmodell: Agiles Modell (z. B. Kanban)
* Begründung: Agile Modelle sind gut geeignet für Projekte mit sich schnell ändernden Anforderungen. In der App-Entwicklung können Kundenrückmeldungen während des Entwicklungsprozesses integriert werden. Kanban ermöglicht eine iterative
Entwicklung, ohne den organisatorischen Overhead von Scrum, was besonders für Anwendungen wie ToDo-Listen wichtig ist, bei denen die Benutzerfreundlichkeit im Fokus steht und sich rasch ändern kann.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Schlagen Sie das am besten geeignete Vorgehensmodell (von den klassischen und agilen Prozessmodellen der Vorlesung) vor, das als Grundlage für die Entwicklung der folgenden Systeme dienen kann. Begründen Sie Ihre Entscheidungen:
(2) eine Software zur Steuerung eines Aufzugs zur Beförderung von Personen

A

Software zur Aufzugssteuerung:
* Empfohlenes Vorgehensmodell: V-Modell oder Wasserfallmodell
* Begründung: Projekte im sicherheitskritischen Umfeld, wie die Steuerung eines Aufzugs, erfordern oft eine gründliche Planung und Testung. Das V-Modell oder das Wasserfallmodell ermöglichen eine systematische und sequenzielle Entwicklung, wodurch die Sicherheits- und Qualitätsanforderungen besser erfüllt werden können.

17
Q

Schlagen Sie das am besten geeignete Vorgehensmodell (von den klassischen und agilen Prozessmodellen der Vorlesung) vor, das als Grundlage für die Entwicklung der folgenden Systeme dienen kann. Begründen Sie Ihre Entscheidungen:
(3) ein vernetztes Flughafenmanagementsystem für das Check-In von Fluggästen

A

Vernetztes Flughafenmanagementsystem:
* Empfohlenes Vorgehensmodell: Spiralmodell
* Begründung: Aufgrund der Komplexität und der ständigen Änderungen in Flughafenmanagementsystemen ist das Spiralmodell geeignet. Es ermöglicht eine iterative Entwicklung mit regelmäßiger Risikoanalyse und Anpassung an
sich ändernde Anforderungen, was für ein hochkomplexes und sich schnell entwickelndes Umfeld wichtig ist.

18
Q

Schlagen Sie das am besten geeignete Vorgehensmodell (von den klassischen und agilen Prozessmodellen der Vorlesung) vor, das als Grundlage für die Entwicklung der folgenden Systeme dienen kann. Begründen Sie Ihre Entscheidungen:
(4) eine Benutzeroberfläche für einen Automaten zur Vermietung von Autos

A

Benutzeroberfläche für einen Automaten zur Autovermietung:
* Empfohlenes Vorgehensmodell: Agile Modell (z. B. Kanban)
* Begründung: In Projekten, die stark von Benutzerinteraktion abhängig sind, ist eine flexible Anpassung an sich ändernde Anforderungen wichtig. Kanban, als agile Methode, ermöglicht eine kontinuierliche Verbesserung und Anpassung der Benutzeroberfläche basierend auf Benutzerfeedback und sich ändernden Marktanforderungen

19
Q

Schlagen Sie das am besten geeignete Vorgehensmodell (von den klassischen und agilen Prozessmodellen der Vorlesung) vor, das als Grundlage für die Entwicklung der folgenden Systeme dienen kann. Begründen Sie Ihre Entscheidungen in 4-5 Sätzen:
(5) ein Softwaresystem zum Online-Erwerb von Videospielen inkl. Altersverifikation

A

Softwaresystem zum Online-Erwerb von Videospielen inkl. Altersverifikation:
* Empfohlenes Vorgehensmodell: Agiles Modell (z. B. Feature-Driven Development)
* Begründung: In einem Online-Verkaufssystem, das auch Altersverifikation erfordert, ist eine schnelle Anpassung an sich ändernde gesetzliche Anforderungen und Benutzerwünsche wichtig. Agile Modelle wie Feature-Driven Development ermöglichen eine iterative Entwicklung, bei der Funktionalitäten schrittweise hinzugefügt und getestet werden können.

20
Q

Prototypen im Software Engineering

A

Demonstrationsprototyp
 Ein Demonstrationsprototyp ist eine frühe Version einer Softwareanwendung, die für die Auftragsakquisition erstellt wird. Ziel ist es, dem Auftraggeber einen Eindruck davon zu vermitteln, wie das endgültige Produkt für den Anwendungskontext aussehen könnte. TRL 5-6 Technology Demonstration

○ Prototyp im eigentlichen Sinne
 Ein Prototyp im eigentlichen Sinne ist eine vorläufige Version eines Softwaresystems, die parallel zur Erhebung des Anwendungskontexts entsteht. Ziel ist es, die Verfeinerung von Anforderungen zu unterstützen und den tatsächlichen Anwendungskontextzu analysieren.Auf der TRL-Skala der Softwareentwicklung entspricht ein Prototyp im eigentlichen Sinne der Stufe 5.
Hier erfolgt die Validierung von Komponenten und Prozessen mithilfe eines Alpha-Prototyps in einer Laborumgebung, um das Konzept zu demonstrieren.

○ Labormuster
 Ein Labormuster ist ein Prototyp, der speziell entwickelt wird, um lösungsbezogene Fragen und Alternativen zu beantworten. Dabei werden verschiedene technische Lösungsvarianten analysiert, um die optimale Implementierung für das spätere Produkt zu identifizieren.
Ein Labormuster im Software-Engineering erreicht auf der TRL-Skala die Stufe 3. Hier wird Prüfung (experimenteller Beleg) des Konzeptes gestartet.

○ Pilotsystem
 Ein Pilotsystem ist Kern eines Softwareprodukts, um den Übergang zum endgültigen Produkt zu erleichtern. Ziel ist es, die frühzeitige Validierung des Softwareprodukts, um Sicherstellung, dass Softwareprodukte den Anforderungen des Geschäftsumfeld entspricht.
Ein Pilotsystem im Software-Engineering entspricht auf der TRL-Skala der Stufe 7, was bedeutet, dass der Prototyp in einer relevanten Umgebung getestet wurde und ein repräsentatives Modell darstellt.
Ein solches System befindet sich nahe dem geplanten Betriebssystem und erfordert Tests in realen Betriebsumgebungen wie Flugzeugen, Fahrzeugen oder im Weltraum.

  • Bezug zu Softwarearchitektur
    ○ Horizontaler Prototyp
     Nur spezifische Ebenen des Systems werden realisiert, die betreffende Ebene wird jedoch möglichst
    vollständig realisiert
    ○ Vertikaler Prototyp
     Implementiert einen Durchstich durch alle Ebenen und ist geeignet bei noch offenen
    Implementierungsoptionen
21
Q

Minimal Viable Product

A

Das Minimum Viable Product (MVP) ist die erste minimale funktionsfähige Version eines Produkts, um schnell Nutzerfeedback zu erhalten und eine Marktlücke mit geringem Entwicklungsaufwand zu testen, während es gleichzeitig als Grundlage für weitere Produktentwicklungen dient. Es ähnelt einem Prototypen, indem es Designkonzepte testet, Funktionalitäten demonstriert und frühes Nutzerfeedback ermöglicht.

22
Q

Verifikation

A

Prüfung der Übereinstimmung zwischen Produkt und seiner Spezifikation
→ Leitfrage: „Bauen wir das Produkt richtig?

23
Q

Validierung

A

Prüfung ob Produkt tatsächlichen Kundenbedürfnissen/Zweck entspricht
→ Leitfrage: „Bauen wir das richtige Produkt?

24
Q

Arten von Prozess-/Vorgehensmodellen

A

▪ Deskriptive Prozessmodelle beschreiben existierende IST-Prozesse
▪ Normative Prozessmodelle stellen dar, wie ein SOLL-Prozess gestaltet sein soll

25
Q

vier Vorteile des Wasserfallmodells

A

Einfachheit und Struktur: Das Wasserfallmodell ist einfach zu verstehen und zu implementieren, da es eine klare und sequenzielle Struktur hat. Jede Phase baut auf der vorherigen auf, was zu einer gut definierten Entwicklungsabfolge führt.

Klare Meilensteine: Das Modell definiert klare Meilensteine für jede Phase, was es leicht macht, den Fortschritt des Projekts zu verfolgen und den Erfolg zu messen.

Frühe Fehlererkennung: Da jede Phase vollständig abgeschlossen sein muss, bevor die nächste beginnt, ermöglicht das Wasserfallmodell eine frühzeitige Identifizierung von Fehlern oder Problemen, was ihre spätere Korrektur erleichtert.

Dokumentation: Jede Phase erfordert eine umfassende Dokumentation, was die Nachvollziehbarkeit und Überprüfbarkeit des gesamten Entwicklungsprozesses erleichtert und die Wartbarkeit der Software verbessert.

Diese Vorteile machen das Wasserfallmodell besonders geeignet für Projekte mit klaren und stabilen Anforderungen, in denen Änderungen während des Entwicklungsprozesses unwahrscheinlich sind.

26
Q

V-Modell

A

Größere Erweiterung des Wasserfallmodells

Integriert Qualitätssicherung in Wasserfallmodell

Verifikation der Teilprodukte und Validierung Gesamtprodukt
Das V-Modell ist für die Entwicklung verschiedener Arten von Produkten geeignet, insbesondere jedoch für softwareintensive Systeme.

27
Q

Vorteile V-Modell

A

Strukturiertes Vorgehen: Das V-Modell bietet eine gut strukturierte Herangehensweise an die Entwicklung von Produkten, indem es klare Phasen definiert und eine Verbindung zwischen Entwicklungs- und Testaktivitäten herstellt.

Qualitätskontrolle: Durch den starken Fokus auf Tests und Qualitätskontrolle ermöglicht das V-Modell die frühzeitige Identifizierung von Fehlern und Problemen, was zu einer höheren Produktqualität führt.

Anpassbarkeit: Es gibt eine Vielzahl von V-Modell-Varianten, die auf verschiedene Branchen und Produkttypen zugeschnitten sind. Unternehmen können auch ihre eigenen spezifischen V-Modelle entwickeln, die auf ihre individuellen Bedürfnisse zugeschnitten sind.

Rückkopplungsschleifen: Das V-Modell erlaubt Iterationen und Schleifen zwischen den Phasen, was bedeutet, dass bei Bedarf Anpassungen vorgenommen werden können und dass Rückkopplungsschleifen zur Verbesserung des Entwicklungsprozesses genutzt werden können.

28
Q

Nachteile V-Modell

A

Zeit- und ressourcenintensiv: Das V-Modell erfordert oft einen erheblichen Zeitaufwand und Ressourceneinsatz für die Planung, Dokumentation und Testaktivitäten, was zu längeren Entwicklungszeiten führen kann.

Unflexibel bei Änderungen: Aufgrund seiner strukturierten Natur kann das V-Modell unflexibel sein, wenn es um Änderungen der Anforderungen oder des Designs während des Entwicklungsprozesses geht.

Komplexität: Das V-Modell kann aufgrund seiner Struktur und seiner umfangreichen Dokumentationsanforderungen komplex sein und eine steile Lernkurve für Teammitglieder und Stakeholder haben.

Mögliche Überbetonung von Dokumentation: In einigen Fällen kann die Betonung auf Dokumentation dazu führen, dass die Entwicklung behindert wird oder dass die Dokumente als wichtiger wahrgenommen werden als die tatsächliche Implementierung des Produkts.

29
Q

Prototypenmodell Vor- und Nachteile

A

Vorteile
▪ starke Rückkopplung mit dem Kunden / Auftraggeber sowie Endanwender:innen
▪ Reduzierung des Entwicklungsrisikos und frühzeitige Zielklarheit
▪ verbesserte Planbarkeit und Steuerung von komplexen IT-Projekten
▪ Prototypen fördern Kreativität für Lösungsalternativen
▪ Prototypen können auch in andere Prozessmodelle integriert werden

Nachteile
▪ höherer Entwicklungsaufwand, da Prototypen zusätzlich erstellt werden
▪ Gefahr, dass Wegwerf-Prototyp Teil des Endprodukts wird
▪ Verträge für Softwareentwicklung berücksichtigen meist keine Prototypen
▪ Prototypen oft als Ersatz für fehlende Dokumentation angesehen
▪ bei Prototypen Grenzen und Beschränkungen oft unbekannt

30
Q

Technology Readiness Level

A

▪ ursprünglich von NASA für Luft- und Raumfahrt
▪ mittlerweile in anderen Bereichen eingesetzt
▪ Ableitung weiterer Modelle für Technologiereifegrade (z.B. „Software Technology Readiness“)

TRL-Stufen
TRL 1: Beobachtung und Beschreibung des Funktionsprinzips
TRL 2: Beschreibung der Anwendung einer Technologie
TRL 3: Nachweis der Funktionstüchtigkeit einer Technologie
TRL 4: Versuchsaufbau im Labor
TRL 5: Versuchsaufbau in Einsatzumgebung
TRL 6: Prototyp in Einsatzumgebung
TRL 7: Prototyp im Einsatz (1–5 Jahre)
TRL 8: Qualifiziertes System mit Nachweis der Funktionstüchtigkeit im Einsatzbereich
TRL 9: Qualifiziertes System mit Nachweis des erfolgreichen Einsatzes

31
Q

Spiralmodell

A

Grundidee:

Priorisierung von Kernanforderungen
Entwurf/Implementierung des Produktkerns zu Beginn
Lieferung des Produktkerns an den Kunden
Anforderungen für zukünftige Versionen basierend auf Kundenfeedback
Charakteristika:

Inkrementelle Entwicklung
Bugfixing als neue Version
Fokus auf ausführbare Teilergebnisse zum Auslieferungszeitpunkt
Versionen enthalten definierte Funktionalität/Features
Zusätzliche Informationen:

Von Barry W. Boehm im Jahr 1986 beschrieben
Erweiterung des Prototypenmodells um inkrementelle/agile Ansätze
Durchläuft Zyklen/Quadranten in Iterationen Schritte umfassen Ziel- und Alternativenbestimmung, Risikobewertung, Entwicklung/Testen von Lösungen, Planung der nächsten Iteration

32
Q

Die inkrementelle Entwicklung

A

Die inkrementelle Entwicklung ist eine Vorgehensweise, bei der Projekte in schrittweise entwickelte Teile aufgeteilt werden, anstatt alles auf einmal zu entwickeln. Diese Idee basiert auf dem Technology Readiness Level (TRL), der sicherstellt, dass nur Technologien mit einem höheren Reifegrad und bekannten Risiken in die Entwicklung integriert werden. Die Integration von TRL in Prozessmodelle ermöglicht eine bessere Kontrolle über den Entwicklungsprozess und verbessert die Qualität und Stabilität des Endprodukts.