SWE 1. Vorlesung Flashcards

1
Q

Wer prägte den Begriff „Software“ und was beschreibt dieser Begriff?

A

Der Begriff „Software“ wurde 1958 von John Tukey geprägt. Er beschreibt eine Reihe von Programmen und ggf. zugehörige Dokumentationen und Daten, die notwendig sind, um einen Computer zu betreiben.

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

Welche historischen Persönlichkeiten haben maßgeblich zur Entwicklung der Software- und Computerprinzipien beigetragen?

A

Alan Turing beschrieb das prototypische Verhalten von Software (1936-1937), John von Neumann entwickelte die Grundprinzipien für Computer-Algorithmen (1945), und Noam Chomsky etablierte Syntaxregeln für Programmiersprachen (1957-1958).

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

Warum ist Software Engineering wichtig?

A

Software Engineering ist wichtig, um qualitativ hochwertige, fehlerfreie Software systematisch und effizient zu entwickeln. Computer sind nicht fehlertolerant, daher ist es entscheidend, strukturierte Methoden und Prozesse zu nutzen, um Software korrekt und zuverlässig zu gestalten.

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

Nenne drei typische Herausforderungen in komplexen Softwareprojekten

A
  1. Die Verarbeitung und das Design der Daten
  2. Die Systemarchitektur und Kopplung der Komponenten
  3. Die Wahl der Programmiersprache und der Software-Konzepte, um die Anforderungen der Anwendungsdomäne optimal zu erfüllen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welche Phasen umfasst der Software Development Life Cycle (SDLC)?

A

Der SDLC umfasst die Phasen Anforderungsanalyse, Design, Implementierung, Validierung und Verifikation sowie die Inbetriebnahme und den Support.

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

Nenne zwei traditionelle und zwei agile Vorgehensmodelle im Software Engineering und ihre Charakteristika.

A

Traditionelle Modelle:
Wasserfallmodell: Ein lineares, phasenbasiertes Modell, das strikt sequenziell vorgeht.
V-Modell: Ein Modell, das Projektmanagement integriert und auf eine klare Abfolge von Entwicklungs- und Testphasen setzt.
Agile Modelle:
Extreme Programming (XP): Ein agiles Modell, das sich auf kurze Entwicklungszyklen und kontinuierliches Feedback konzentriert.
Scrum: Ein agiles Framework, das auf iterative und inkrementelle Entwicklung fokussiert ist und in Sprints arbeitet.

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

Was ist Requirements Engineering und warum ist es wichtig?

A

Requirements Engineering ist der Prozess der Erfassung, Analyse und Dokumentation von Anforderungen für ein Softwareprojekt. Es ist wichtig, da klare Anforderungen die Grundlage für eine erfolgreiche Entwicklung und eine funktionierende Software bilden.

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

Welche Rolle spielt die Qualitätssicherung (QA) im Software Engineering?

A

Die Qualitätssicherung sorgt dafür, dass die Software die festgelegten Qualitätsstandards erfüllt. Sie umfasst Methoden wie Tests, Code-Reviews und kontinuierliche Integration, um Fehler frühzeitig zu identifizieren und die Zuverlässigkeit der Software zu gewährleisten.
5. Ethik im Software Engineering

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

Nenne vier ethische Prinzipien im Software Engineering gemäß der ACM/IEEE-Richtlinien.

A

PUBLIC – Software-Ingenieure sollen im öffentlichen Interesse handeln.
CLIENT AND EMPLOYER – Sie sollen im besten Interesse ihrer Kunden und Arbeitgeber handeln.
PRODUCT – Sie sollen sicherstellen, dass ihre Produkte höchste professionelle Standards erfüllen.
JUDGMENT – Sie sollen in ihrer beruflichen Urteilsfindung unabhängig und integer bleiben.

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

Was ist ein Modell im Kontext des Software Engineerings?

A

Ein Modell ist eine abstrahierte Darstellung der Realität, die bestimmte Aspekte vereinfacht, um sie besser verständlich zu machen. Im Software Engineering helfen Modelle, Daten, Architektur, Abläufe und Deployment strukturiert und übersichtlich zu planen.

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

Erkläre den Unterschied zwischen einem Datenmodell und einem Architekturmodell.

A

Ein Datenmodell beschreibt die Struktur und Beziehung der Daten im System, während ein Architekturmodell die Systemkomponenten und deren Interaktion beschreibt. Das Datenmodell konzentriert sich auf den Inhalt, das Architekturmodell auf die Struktur des Systems.

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

Was ist der Zweck von Design Patterns im Software Engineering?

A

Design Patterns bieten erprobte Lösungen für häufig auftretende Probleme in der Softwareentwicklung. Sie fördern die Wiederverwendbarkeit und Wartbarkeit des Codes und helfen Entwicklern, bewährte Lösungen effizient umzusetzen.

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

Was ist Refactoring, und warum wird es eingesetzt?

A

Refactoring ist der Prozess der Code-Verbesserung, ohne das äußere Verhalten der Software zu verändern. Es wird eingesetzt, um den Code lesbarer, effizienter und wartungsfreundlicher zu machen.

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

Welche Rolle spielt das Projektmanagement (PM) im Software Engineering?

A

Projektmanagement im Software Engineering sorgt für eine strukturierte Planung, Durchführung und Kontrolle des Softwareentwicklungsprozesses. Es hilft, Ressourcen zu verwalten, Zeitpläne einzuhalten und die Projektziele zu erreichen.

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

Nenne ein weit verbreitetes Projektmanagement-Framework und beschreibe dessen Verbindung zu Software Engineering.

A

PRINCE2 ist ein gängiges Framework, das oft in Kombination mit dem V-Modell XT im Software Engineering eingesetzt wird. Es bietet Richtlinien zur Planung und Überwachung von Projekten, jedoch ohne spezifische Vorgaben zur Entwicklungsmethodik.

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