Eingebette Softwareentwicklung und Design Flashcards

1
Q

Welche Phasen umfasst das V-Modell auf der linken Seite?

A
  • Anforderungsanalyse
  • Spezifikation
  • Architekturdesign
  • Modul- und Algorithmendesign
  • Implementierung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist das V-Modell?

A

Das V-Modell ist ein sequentielles Enticklungsmodell, das den Entwicklungsprozess von der Anforderungsanalyse bis hin zu den Testphasen strukturiert. Es besteht aus zwei parallelen Phasen: Die linke Seite beschriebt die Spezifikation und das Design, während die rechte Seite die Verifikation und Validierung (Testphasen) umfasst.

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

Was sind die Testphasen auf der rechten Seite des V-Modells?

A
  • Modultest
  • Systemintegration
  • Integrationstest
  • Abnahmetest
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was sind die Hauptbestandteile des Anforderungsmanagements?

A
  • Anforderungserhebung
  • Anforderungsanalyse
  • Anforderungsdokumentation
  • Anforderungsprüfung und -validierung
  • Änderungsmanagement der Anforderungen
  • Rückverfolgbarkeit der Anforderungen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Warum ist Anforderungsmanagement wichtig?

A

Anforderungsmanagement minimiert Missverständnisse, kontrolliert Änderungen, stellt sicher, dass die Kundenanforderungen erfüllt werden, und unterstützt die Qualitätssicherung.

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

Was ist das ein Quality Tree?

A

Ein Quality Tree ist ein Werkzeug, um Qualitätsanforderungen zu strukturieren und hierarchisch darzustellen. Er hilft, die Qualitätsziele eines Systems zu visualisieren und ihre Relevanz festzulegen.

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

Welche Qualitätsattribute können in einem Quality Tree enthalten sein?

A
  • Zuverlässigkeit
  • Verfügbarkeit
  • Sicherheit
  • Modifizierbarkeit
  • Anpassungsfähigkeit
  • Testbarkeit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was sind Merkamle guter Anforderungen?

A
  • Verifizierbar
  • Vollständig
  • Eindeutig
  • Konsistent
  • Realisierbar
  • Nachvollziehbar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was besagt die SMART-Regel für Anforderungen?

A

Anforderungen sollten spezifisch, messbar, erreichbar, relevant und zeitgebunden sein (SMART).

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

Was ist der Unterschied zwischen funktionalen und nicht-funktionalen (Qualitäts-) Anforderungen?

A
  • Funktionale Anforderungen beschreiben, was das System leisten soll.
  • Qualitätsanforderungen (nicht-funktionale Anforderungen) beschreiben, wie gut das System seine Funktion erfüllt.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Gib ein Beispiel für eine funktionale und eine Qualitätsanforderung.

A

Funktionale Anforderung: Das System muss den Abstand zu einem vorausfahrenden Fahrzeug konstant halten.

Qualitätsanforderung: Der Fahrer muss in der Lage sein, den Abstand zu ändern, ohne die Hände vom Lenkrad zu nehmen.

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

Nenne häufige Probleme bei der Anforderungserhebung.

A
  • Unvollständige Anforderungen
  • Widersprüchliche Anforderungen
  • Unklare oder vage Anforderungen
  • Schwierigkeit der Priorisierung
  • Änderungen der Anforderungen während des Projekts
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist der Unterschied zwischen Anforderungen und Lösungen?

A

Eine Anforderung beschreibt, was das System leisten soll. Eine Lösung gibt an, wie etwas umgesetzt werden soll, was oft nicht Teil der Anforderungen sein sollte.

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

Warum müssen Anforderungen verifizierbar sein?

A

Verifizierbare Anforderungen sind notwendig, um sicherzustellen, dass das Endprodukt getestet und überprüft werden kann, um festzustellen, ob es den Anforderungen entspricht.

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

Gib ein Beispiel für eine schlecht und eine gut formulierte Anforderung.

A

Schlecht: “Das System muss ordnungsgemäß auf langsame Fahrzeuge reagieren.”

Gut: “Wenn ein vorausfahrendes Fahrzeug langsamer als 30 km/h wird, muss das System die Kontrolle an den Fahrer zurückgeben und dies durch ein akustisches Signal anzeigen.”

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

Welche drei Hauptbestandteile umfasst das Requirements Engineering?

A
  • Anforderungserhebung: Sammeln der Anforderungen von Kunden, Marketing und Ingenieuren.
  • Anforderungsanalyse: Überprüfen, ob die Anforderungen tatsächlich den Wünschen der Stakeholder entsprechen.
  • Anforderungsmanagement: Verwalten von Änderungen, Dokumentation, Abschätzung der Kosten und technische Machbarkeit.
17
Q

Welche Techniken können zur Anforderungserhebung verwendet werden?

A
  • Geführte Interviews
  • Brainstorming
  • Rollenspiele
18
Q

Was sind typische Probleme bei der Anforderungserhebung?

A
  • Kunden liefern oft Lösungen statt Anforderungen.
  • Anforderungen werden unklar oder unvollständig formuliert.
  • Es gibt häufig Konflikte zwischen Anforderungen verschiedener Stakeholder.
19
Q

Was ist der Unterschied zwischen Anforderungen und Lösungen?

A

Eine Anforderung beschreibt was das System leisten soll. Eine Lösung beschreibt wie das System diese Anforderungen umsetzen soll.

20
Q

Gib ein Beispiel für eine Lösung, die durch eine Anforderung ersetzt werden könnte.

A

Lösung: “Die erkannten Objekte sollen in einer verketteten Liste gespeichert werden.”
Anforderung: “Die erkannten Objekte müssen so gespeichert werden, dass sie effizient verarbeitet werden können.”

21
Q

Was sind Beispiele für funktionale und Qualitätsanforderungen?

A

Funktionale Anforderung: Das System muss den Abstand zu einem vorausfahrenden Fahrzeug konstant halten.

Qualitätsanforderung: Der Fahrer muss in der Lage sein, den Abstand ohne Abnahme der Hände vom Lenkrad zu ändern (Usability).

22
Q

Nenne wichtige Qualitätsattribute, die in eingebetteten Systemen relevant sind.

A
  • Zuverlässigkeit
  • Sicherheit
  • Verfügbarkeit
  • Anpassungsfähigkeit
  • Skalierbarkeit
23
Q

Was ist ein Use Case?

A

Ein Use Case beschreibt ein kohärentes Stück Funktionalität eines Systems, das von außen sichtbar ist und durch Interaktionen mit einem Akteur ausgelöst wird.

24
Q

Gib ein Beispiel für einen Use Case beim Adaptive Cruise Control (ACC).

A
  • Aktivierung des ACC
  • Deaktivierung des ACC
  • Konstantgeschwindigkeit beibehalten
  • Abstand zum vorausfahrenden Fahrzeug beibehalten
25
Q

Warum ist das V-Modell in der Industrie für eingebettete Systeme so beliebt?

A

Das V-Modell ist beliebt, weil es eine klare Struktur zwischen den Entwicklungs- und Testphasen bietet, sodass jede Phase einer entsprechenden Testphase zugeordnet ist. Es gewährleistet eine gründliche Verifikation und Validierung des Systems.

26
Q

Anforderungsanalyse: Modelle

A
  • Use Cases
  • Sequenzdiagramme
  • Data flow diagrams etc.
27
Q

Welche drei Hauptprobleme gibt es bei Anforderungen?

A

Probleme mit Anforderungen:
- Keine Lösung vorschlagen, sondern die Anforderungen beschreiben.
- Anforderungen müssen verständlich für einen durchschnittlichen Entwickler sein.
- Anforderungen müssen überprüfbar sein.

28
Q

Was ist der Unterschied zwischen funktionalen und Qualitätsanforderungen?

A
  • Funktionale Anforderungen beschreiben was das System tun soll.
  • Qualitätsanforderungen beschreiben wie gut das System seine Funktion erfüllen soll. Beispiele sind Usability und Zuverlässigkeit.
29
Q

Welche Qualitätsattribute können im Quality Tree analysiert werden, und was sind ihre Bedeutungen?

A

Zuverlässigkeit (Reliability)
- Fähigkeit, Funktionen unter definierten Bedingungen auszuführen.
- Beispiel: Das ACC hält die Geschwindigkeit mit maximal 1 km/h Abweichung.

Verfügbarkeit (Availability)
- Verhältnis der Zeit, in der das System funktionsfähig ist.
- Beispiel: Das ACC funktioniert mindestens 99,9 % der Zeit.

Sicherheit (Safety)
- Fähigkeit, den Benutzer und die Umwelt vor Fehlfunktionen zu schützen.
- Beispiel: Das ACC deaktiviert sich bei Fehlfunktionen und warnt den Fahrer.

Sicherheit vor Angriffen (Security)
- Fähigkeit, sich vor externer Manipulation zu schützen.
- Beispiel: Das ACC ist gegen drahtlose Angriffe geschützt.

Robustheit (Robustness)
- Fähigkeit, sich vor Umwelteinflüssen zu schützen.
- Beispiel: Das ACC funktioniert bei Temperaturen zwischen -20 °C und 45 °C.

Wartbarkeit (Maintainability)
- Fähigkeit, Änderungen und Korrekturen während des Betriebs zu unterstützen.
- Beispiel: Die Software des ACC kann in einer Werkstatt innerhalb von 10 Minuten aktualisiert werden.

Anpassungsfähigkeit (Adaptability)
- Fähigkeit, die Betriebsbedingungen basierend auf der Umgebung anzupassen.
- Beispiel: Das ACC kann die Geschwindigkeit an das vorausfahrende Fahrzeug anpassen.

Skalierbarkeit (Scalability)
- Fähigkeit, auf geänderte Eingabelasten oder Ausgabebedarf zu reagieren.
- Beispiel: Das ACC kann auf Overdrive gesetzt werden, um die Frequenz der Geschwindigkeitsberechnung zu verdoppeln.

Konfigurierbarkeit (Configurability)
- Fähigkeit, die Betriebsbedingungen vom Benutzer nach der Bereitstellung zu ändern.
- Beispiel: Die eingestellte Geschwindigkeit des ACC kann vom Fahrer geändert werden.

Erweiterbarkeit (Extendability)
- Fähigkeit, neue oder geänderte Funktionalitäten zu integrieren.
- Beispiel: Eine neue Version des ACC kann auch Geschwindigkeitsbegrenzungen erkennen.

30
Q

Beschreibe die Phase “Architekturdesign” (V-Modell).

A
  • Das Architekturdesign beginnt, nachdem die funktionalen Anforderungen und Spezifikationen definiert wurden.
  • Es ist die erste Phase, in der das System nicht mehr als “Black Box” betrachtet wird. Der Designer beginnt, das System in Komponenten und Schnittstellen zu unterteilen.
  • Architekturdefinition: Die Architektur definiert die Struktur des Systems und die Beziehungen zwischen den Komponenten.
  • Wichtige Aspekte der Architektur sind die Identifikation der Systemkomponenten, deren Schnittstellen und die Art und Weise, wie diese Komponenten miteinander interagieren.