Einführung: Software Engineerings Flashcards

1
Q

Produktentstehungsprozess (PEP)

A

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.

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

Softwaresystem

A

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

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

Bedeutung von Software Engineering für softwareintensive Systeme

A

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

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

Case Trends

A

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

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

Lines of Code als Softwaremetrik

A

▪ häufige Methode zur Messung der Komplexität
▪ reine Anzahl der Codezeilen keine genaue
Darstellung der tatsächlichen Komplexität

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

Weitere Faktoren für Komplexität

A

▪ Code-Struktur, Algorithmen, Abhängigkeiten,
Anzahl der Funktionen und Variablen
▪ Verschachtelung von Kontrollstrukturen,
Wartbarkeit, Dokumentation, Designprinzipien
▪ statische Codeanalyse ermöglicht tiefgehende
Untersuchung der Softwarestruktur

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

Dimensionen der Komplexität (измерения сложности)

A

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.

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

Systemumgebung

A

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

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

Funktionales Konzept

A

Zweck basiert auf von außen wahrnehmbarer Funktion,
Zustände sowie Verhalten durch die Systemgrenze
Funktion festgelegt durch Art der Interaktion mit Systemumgebung, Schnittstellen
sowie In-/Outputs

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

Strukturelles Konzept

A

Strukturelle Zusammensetzung des Systems
▪ Anordnung von Elementen
und deren Relationen
▪ Elemente betrachtet als
Blackbox sofern Zerlegung
ausreichend für Verständnis
des Systems / Zwecks

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

Hierarchisches Konzept

A

Tieferes Systemverständnis durch Bildung von Teilsysteme
▪ Elemente können als Teilsysteme verstanden werden
▪ Betrachtung der Teilsysteme als Whitebox und Zerlegung
▪ Rekursive Anwendung des hierarchischen Konzepts
möglich (Systemanalyse)

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

Holistisches Konzept

A

Entstehung von Emergenz
▪ Betrachtung des Systems als Ganzes und nicht nur als
Summe der Elemente
▪ Systemeigenschaften, über die die Elemente einzeln
betrachtet nicht verfügen
▪ Beispiel: Taschenlampe (Batterie und Lampe leuchten
einzeln betrachtet nicht)

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

Verifikation und Validierung

A

Verifikation und Validierung:

Verifikation bezieht sich auf den Prozess, durch den überprüft wird, ob das System spezifizierte Anforderungen erfüllt. Dies könnte beispielsweise bedeuten, dass die Softwarefunktionen gemäß den definierten Spezifikationen arbeiten.
Validierung hingegen bezieht sich darauf, ob das entwickelte System tatsächlich die Bedürfnisse und Anforderungen des Kunden erfüllt. Es bestätigt, dass das entwickelte System das Richtige tut.

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

Was wird unter einem Softwareprodukt verstanden und grenzen Sie dies zum allgemeinen Begriff Software ab?

A

Ein Produkt im Allgemeinen ist das Ergebnis eines Wertschöpfungsprozesses. Damit ist Dienstleistung ein Produkt. Aber
auch ein für einen einzelnen Kunden geschaffenes Stück Software ist als Produkt zu werten. Dies spiegelt sich auch in der
Tatsache wieder, dass das Produkthaftungsgesetzfür eine derartige Auftragssoftware in vollem Umfang gilt.
Die Softwarebranche verwendet den Begriff „Produkt“ eher für mehrfach verkaufte Softwaresysteme und nennt das
einmalige Vorhaben „Projekt“. Bei Produkten gibt es daher auch ein Produktblatt. Bei Projekten gibt es nur eine
Projektbeschreibung mit detaillierten Anforderungen des Auftraggebers.

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

Erklären Sie, warum professionelle Softwareentwicklung nicht nur die Programme einschließt, die für Kunden entwickelt werden.

A

Professionelle Softwareentwicklung umfasst nicht nur die Erstellung von kundenspezifischen Programmen, sondern auch eine Reihe weiterer entscheidender Aspekte. Dazu gehört die Implementierung bewährter Softwareentwicklungspraktiken, um qualitativ hochwertigen und wartbaren Code zu gewährleisten. Die Integration von Sicherheitsmaßnahmen ist unerlässlich, um Daten vor Bedrohungen zu schützen. Zudem erfordert die professionelle
Softwareentwicklung effizientes Projektmanagement, um Zeitpläne einzuhalten und Ressourcen optimal zu nutzen.
Außerdem spielt die kontinuierliche 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
16
Q

Nennen Sie mögliche Konsequenzen einer fehlerhafte Anwenderdokumentation (nehmen Sie zur exemplarischen Erläuterung ein bestimmtes Softwareprodukt Ihrer Wahl)?

A

Eine unzureichende Anwenderdokumentation kann schwerwiegende Konsequenzen für die Benutzerfreundlichkeit und den effektiven Einsatz einer Software haben. Nehmen wir als Beispiel ein Content-Management-System (CMS) wie WordPress: fehlende oder unklare Anleitungen könnten dazu führen, dass Benutzer Schwierigkeiten beim Einrichten von Webseiten haben, grundlegende Funktionen nicht verstehen oder Sicherheitsaspekte vernachlässigen. Dies könnte zu unsicheren Websites, unzureichender Nutzung von Funktionen und Frustration bei den Benutzern führen. Mangelnde Dokumentation kann auch den Support-Aufwand erhöhen, da Anwender vermehrt auf den Kundenservice zurückgreifen müssen, um einfache Probleme zu lösen. Insgesamt könnte eine fehlerhafte Anwenderdokumentation das Vertrauen der Benutzer in die Software beeinträchtigen und ihre effektive Nutzung behindern.

17
Q

Prototypenmodell

A

Ein Prototypenmodell im Software Engineering ist eine entwickelte Vorversion einer Software, die dazu dient, bestimmte Funktionen oder das Benutzererlebnis zu demonstrieren und frühzeitig Feedback zu sammeln. Es ermöglicht Entwicklern und Stakeholdern, das Design und die Funktionalität zu überprüfen, bevor die endgültige Softwareentwicklung beginnt.

18
Q

Iteration

A

In Software Engineering bezieht sich der Begriff “Iteration” auf einen wiederholten Zyklus im Entwicklungsprozess, bei dem ein Teil der Software erstellt, überprüft und verbessert wird. Diese iterative Vorgehensweise ermöglicht kontinuierliche Anpassungen und Optimierungen, wodurch Entwickler flexibel auf sich ändernde Anforderungen reagieren können.

19
Q

Warum ist es effizienter, Pair Programming zu nutzen, als zwei unabhängige Programmierer?

A

Pair Programming ist effizienter als zwei unabhängige Programmierer, da es die Fehlerrate reduziert und die Qualität des Codes verbessert. Durch die Zusammenarbeit können Probleme schneller erkannt und behoben werden, da beide Programmierer kontinuierlich Code überprüfen und Feedback geben können, was zu robusterem und wartungsfreundlicherem Code führt.

20
Q

Lastenheft Технические характеристики

A

Ein Lastenheft im Software Engineering ist ein formales Dokument, das die funktionellen und nichtfunktionalen Anforderungen an eine Software spezifiziert, oft in Zusammenarbeit mit den Kunden
oder Stakeholdern erstellt. Es dient als Basis für die Entwicklung und ermöglicht es, die Erwartungen
der Benutzer sowie die technischen Spezifikationen klar zu definieren

21
Q
A