SWE 1 Flashcards

1
Q

Was ist Software laut Brockhaus Enzyklopädie?

A
  • Sammelbezeichnung für Programme, die für den Betrieb von Rechensystemen zur Verfügung stehen, einschließlich der zugehörigen Dokumentation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welche Arten von SW gibt es

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

Was ist Systemsoftware

A
  • Speziell für HW entwickelte SW
  • Ermöglicht Betrieb und Wartung von HW
  • Bsp. OS oder Datenbanken
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist Anwendungssoftware

A
  • SW, die Aufgaben mit Hilfe vom Computersystem löst
  • Bsp. Textverarbeitungsprogramm
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Unterschied Generische und angepasste Produkte

A
  • Generische: Unabhängig am freien Markt
  • Angepasste: Speziell für bestimmten Kunden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definition SWE

A
  • Technische Disziplin, die sich mit allen Aspekten der Softwareherstellung beschäftigt, von der Systemspezifikation bis zur Wartung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind die fundamentalen Software Engineering Aktivitäten

A

SW-Spezifikation
- Kunden und Ingenieure definieren die Software sowie ihre Randbedingungen und Beschränkungen

SW-Entwicklung
- Entwerfen und Entwickeln der Software

SW-Validierung
- Überprüfung ob SW nach Spezifikationen arbeitet

SW-Evolution
- Wartung und Weiterentwicklung der SW

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

Was sind Case Tools

A
  • Computer-Aided Software Engineering Tools
  • Decken alle Aktivitäten im Entwicklungslebenszyklus ab und sind oft in IDE integriert
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welche Dimensionen der SW-Komplexität gibt es

A

Komplexität der:
- Daten
- Algorithmen
- Zeitabhängigen Verhaltens
- Systemumgebung
- Benutzerschnittstelle

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

Erkläre den Unterschied zwischen SWE und Informatik

A
  • Die Informatik beschäftigt sich mit der Theorie und den Grundlagen
  • beim Software Engineering geht es um die Entwicklung in der Praxis und die Herstellung nützlicher Software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wo ist der Unterschied zwischen dem Software Engineering und System Engineering

A
  • Das System Engineering beschäftigt sich mit allen Aspekten computerbasierter
    Systementwicklung, darunter Hardware-, Software und Verfahrensentwicklung
  • Das Software
    Engineering ist ein Teil dieses Prozesses.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist ein Softwareprozess

A
  • Ein Satz von Tätigkeiten, deren Ziel die Entwicklung oder Weiterentwickung von Software ist
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist ein Vorgehensmodell

A
  • Eine vereinfachte Darstellung eines Softwareprozesses, aus einer bestimmten Perspektive gesehen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was sind Methoden für SWE

A
  • Strukturierte Ansätze für die Software Entwicklung, darunter Systemmodelle, Notationen, Regeln, Hinweise zum Entwurf und Anleitung zum Vorgehen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Welche Merkmale zeichnen gute Software aus

A

Die Software soll dem Benutzer die verlangten Funktionen zur Verfügung stellen sowie einfach zu warten, zuverlässig und gut bedienbar sein

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

Was sind die besten Software Engineering Methoden

A
  • Alle Software Projekte müssen professionell geleitet und entwickelt werden, jedoch sind unterschiedliche Ansätze und Techniken für verschiedene Systeme angebracht
  • zB sollten Spiele mittels einer Serie von Prototypen entwickelt werden
  • zB sollten sicherheitskritische Kontrollsysteme auf der Basis einer vollständigen und
    analysierbaren Spezifikation entworfen werden
  • Daher gibt es „die beste Methode“ nicht – sondern immer nur für die Situation passende
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welchen Einfluss hat das Internet auf das Software Engineering

A
  • Durch das Internet stehen Software Services zur Verfügung, die die Entwicklung verteilter Service-basierter Software Systeme ermöglichen
  • Die Entwicklung dieser verteilten Systeme hat zu wichtigen Neuerungen in Programmiersprachen und bezüglich Wiederverwendbarkeit von Software geführt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist das Wasserfallmodell

A
  • Ein sequentielles Softwareentwicklungsmodell, bei dem jede Phase abgeschlossen sein muss, bevor die nächste beginn
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Was ist das iterative Entwicklungsmodell

A
  • Ein Modell, das die Softwareentwicklung in iterativen Zyklen durchführt, um schrittweise Verbesserungen und Anpassungen vorzunehmen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was sind die Nachteile des Wasserfallmodells?

A
  • Unflexibel gegenüber Änderungen, später Return on Investment, Fehler werden erst spät erkannt​
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Was ist Prototyping in der Softwareentwicklung

A
  • Die Erstellung einer initialen Version eines Systems, um Konzepte zu demonstrieren und Entwurfsoptionen auszuprobieren​
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Welche Vorteile bietet Prototyping

A
  • Erhöhte Benutzerfreundlichkeit
  • näher am wirklichen Bedarf der Nutzer
  • bessere Entwurfsqualität
  • bessere Wartbarkeit,
  • weniger Entwicklungsaufwand
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Was ist das Spiralmodell

A
  • Ein iteratives Modell, das Entwicklung und Wartung integriert und auf Risikoanalyse basiert​
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Welche Phasen umfasst das Spiralmodell

A
  • Festlegung der Ziele
  • Einschätzung und Verringerung der Risiken
  • Entwicklung und Validierung,
  • Planung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Was ist der Rational Unified Process (RUP)

A
  • Ein iteratives und inkrementelles Softwareentwicklungsmodell, das vier Phasen umfasst: Inception, Elaboration, Construction, Transition​
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Was versteht man unter Softwarevalidierung

A

Sicherstellen, dass das System die Spezifikationen und die Bedürfnisse der Benutzer erfüllt​

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

Was sind die Hauptprobleme des traditionellen Wasserfallmodells

A

Abgrenzungsproblem, Abfolgeproblem, Unflexibilität gegenüber Änderungen, später Return on Investment, Big Bang Einführung​

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

Was versteht man unter Requirements Engineering

A
  • Umfasst die Erhebung, Analyse, Dokumentation und Überprüfung von Anforderungen an ein System,
  • Sicherstellung, dass es Bedürfnissen und Erwartungen der Stakeholder entspricht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Was sind die vier generischen Aktivitäten des Requirements Engineering

A
  • Erhebung der Anforderungen
  • Analyse der Anforderungen,
  • Validierung der Anforderungen
  • Anforderungsmanagement
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Was ist eine Durchführbarkeitsstudie im Kontext des Requirements Engineering

A
  • Bewertet, ob ein System zur Verwirklichung der Gesamtziele des Unternehmens beiträgt,
  • Kompatibilität mit aktuellen Systemen und Ressourcen sicherstellenn
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Welche Arten von Anforderungen gibt es

A

Benutzeranforderungen und Systemanforderungen, die weiter in funktionale und nicht-funktionale Anforderungen unterteilt werden können​

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

Was sind funktionale Anforderungen

A
  • Funktionale Anforderungen beschreiben die spezifischen Dienste und Funktionen, die ein System bieten soll
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Was sind nicht-funktionale Anforderungen

A
  • Nicht-funktionale Anforderungen beziehen sich auf die Betriebsbedingungen eines Systems, wie Leistung, Sicherheit und Benutzerfreundlichkeit​
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Was sind typische Aktivitäten bei der Erhebung und Analyse von Anforderungen

A
  • Entdecken und Sammeln von Anforderungen
  • Klassifizierung und Organisation der Anforderungen
  • Priorisierung und Verhandlung der Anforderungen
  • Spezifikation der Anforderungen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Was ist das Ziel der Anforderungsvalidierung

A
  • Sicherzustellen, dass die Anforderungen vollständig, konsistent, machbar und korrekt dokumentiert sind
34
Q

Welche Herausforderungen können bei der Anforderungserhebung auftreten

A
  • Stakeholder wissen oft nicht genau, was sie wollen
  • verschiedene Stakeholder können widersprüchliche Anforderungen haben
  • unrealistische Anforderungen möglich
  • politische Faktoren können die Systemanforderungen beeinflusse
35
Q

Was ist der Unterschied zwischen Lastenheft und Pflichtenheft

A

Lastenheft:
- Das Lastenheft beschreibt die Anforderungen aus Sicht des Auftraggebers und bietet Interpretationsspielräume,
- Von Auftraggeber geschrieben (Was soll umgesetzt werden)

Pflichtenheft
- Pflichtenheft sehr detailliert ist und als Grundlage für einen Vertrag dient
- Von Auftragnehmer geschrieben (Wie wird Projekt umgesetzt)

36
Q

Warum ist Anforderungsmanagement wichtig

A

-um Änderungen an den Anforderungen zu kontrollieren
- Nachverfolgbarkeit sicherzustellen
- Kommunikation zwischen Stakeholdern zu erleichtern
- Vermeidung von Missverständissen
- Klare Definitionen und Anforderungen

37
Q

Was sind die Hauptziele der Anforderungsanalyse

A
  • Verständnis und die Dokumentation der Anforderungen,
  • die Priorisierung und Verhandlung von Anforderungen
  • die Spezifikation der Anforderungen​
38
Q

Was bedeutet “klassifizieren und organisieren der Anforderungen”

A
  • Anforderungen werden in kohärente Gruppen organisiert,
  • Übersichtlichkeit erhöhen, Struktur der Anforderungen besser darzustellen​
39
Q

Warum sind Gespräche mit Stakeholdern wichtig bei der Anforderungserhebung

A
  • Um Bedürfnisse und Erwartungen zu verstehen,
  • Missverständnisse zu vermeiden
  • sicherzustellen, dass alle relevanten Anforderungen berücksichtigt werden​
40
Q

Was ist ein Systemmodell

A

Eine abstrakte Darstellung eines Systems, die seine Struktur, Verhalten und mehr beschreibt

41
Q

Welche Arten von Modellen werden in der Systemmodellierung verwendet

A

Strukturmodelle, Verhaltensmodelle, Funktionsmodelle, Objektmodelle

42
Q

Was ist ein Anwendungsfalldiagramm (Use Case Diagram)

A

Ein Diagramm, das die Interaktionen zwischen einem System und seinen Benutzern (Akteuren) darstellt

43
Q

Was ist UML (Unified Modeling Language)

A

Eine standardisierte Modellierungssprache, die in der Softwareentwicklung zur Spezifikation, Visualisierung, Konstruktion und Dokumentation von Softwaresystemen verwendet wird

44
Q

Was ist ein Klassendiagramm?

A

Ein Diagramm, das die Klassenstruktur und Beziehungen in einem objektorientierten System darstellt

45
Q

Was ist ein Zustandsdiagramm

A

Ein Diagramm, das die Zustände eines Systems und die Übergänge zwischen diesen Zuständen beschreibt

46
Q

Was ist ein Aktivitätsdiagramm

A

Ein Diagramm, das den Ablauf von Aktivitäten und die Kontrollflüsse in einem System darstellt

47
Q

Was ist ein Modell gemäß Charwat

A

Eine Abstraktion oder Vereinfachung der Realität, die ohne die Übernahme der Komplexität der Realität auf reale Situationen anwendbar ist

48
Q

Was bedeutet Modellgetriebenes Software Engineering

A

Ein Ansatz, bei dem Modelle im Zentrum des Softwareentwicklungsprozesses stehen und als primäre Artefakte dienen

49
Q

Was ist der Zweck von Systemmodellen in der Softwareentwicklung

A

helfen, komplexe Systeme zu verstehen, zu entwerfen und zu kommunizieren, indem sie eine abstrahierte Darstellung bieten

50
Q

Welche Rolle spielt UML in der Softwaremodellierung

A
  • Bietet einheitliche Methode zur Modellierung von Softwaresystemen
  • unterstützt Kommunikation und Dokumentation der Systemstruktur und -verhalten
51
Q

Was sind die Hauptkomponenten eines Klassendiagramms

A

Klassen, Attribute, Methoden und die Beziehungen zwischen den Klassen

52
Q

Was ist Softwarearchitektur

A
  • Der planvolle Entwurf und die Gestaltung der Gesamtstruktur eines Systems
  • einschließlich Darstellung der Beziehungen zwischen den Hauptstrukturkomponenten
53
Q

Warum ist die Systemarchitektur wichtig

A
  • Da sie die Struktur und das Verhalten des Systems definiert und somit die Grundlage für Design und Entwicklung bildet​
54
Q

Was ist ein Architekturmodell

A

Beschreibt, wie das System durch kommunizierende Komponenten organisiert ist​

55
Q

Was ist ein Architekturmuster

A

bewährte Möglichkeit, die Systemarchitektur zu organisieren und im Systementwurf wiederzuverwenden

56
Q

Was ist das Model-View-Controller (MVC) Muster

A

MVC trennt die Präsentation und Interaktion von den Systemdaten in die Komponenten Model, View und Controller

Vorteile
- Unabhängige Präsentation von Daten
- Gleiche Daten können verschieden Dargestellt werden

Nachteile
- Kann zusätzlichen Code und Komplexität bei einfachen Interaktionen mit sich bringen

57
Q

Was ist eine Schichtenarchitektur

A

Eine Schichtenarchitektur teilt das System in Schichten, wobei jede Schicht Dienste für die darüberliegende Schicht bereitstellt​

Vorteile
- Austausch ganze Schichten bei gleichbleibender Schnittstelle
- Redundante Funktionen in jeder Schicht möglich für Verlässlichkeit

Nachteile
- Schwierigkeiten bei Trennung von Schichten
- Direkte Interaktionen von nicht benachbarten Schichten evtl. nötig
- Performance Probleme

58
Q

Was ist eine Repository-Architektur

A

In einer Repository-Architektur werden alle Daten in einem gemeinsamen Speicher verwaltet, auf den alle Komponenten zugreifen​

Vorteile
- Unabhängige Komponenten die nur voneinander wissen müssen
- Änderung von Daten betreffen alle Komponenten
- Konsistente Speicherung von Daten und Backups möglich

Nachteile
- Wenn Repo ausfällt, liegt das System lahm
- Komm. über Repo evtl. ineffizient
- Verteilung von Daten auf mehrere Rechner ist schwierig

59
Q

Wann sollte die Repository-Architektur verwendet werden

A

Diese Architektur sollte bei Systemen verwendet werden, die große Datenmengen erzeugen und speichern müssen

60
Q

Warum ist es wichtig, frühzeitig eine Systemarchitektur zu etablieren

A

Da inkrementelle Entwicklung der Architektur oft nicht erfolgreich ist und Überarbeitungen teuer sind​

61
Q

Was sind die zwei Abstraktionsebenen in der Softwarearchitektur

A
  • Mikroarchitektur (Architektur einzelner Programme)
  • Makroarchitektur (komplexe Unternehmensarchitekturen)​
62
Q

Was ist die zentrale Aufgabe des Architekturentwurfs

A

Entscheidung über die Gesamtstruktur des Systems und die Darstellung der Beziehungen zwischen den Hauptkomponenten​

63
Q

Was sind Sequenzmodelle im objektorientierten Entwurf

A
  • zeigen die zeitliche Abfolge von Nachrichten zwischen Objekten
  • Stellen Interaktionen und Zusammenspiel im System dar
64
Q

Was ist ein UML-Klassendiagramm

A

Ein UML-Klassendiagramm beschreibt die Objekte in einem System und die verschiedenen Beziehungen zwischen diesen Objekten

65
Q

Was ist die Rolle von Verhaltensmodellen

A
  • Modellieren komplexes Verhalten der Software
  • erhöhen damit Flexibilität der Software hinsichtlich ihres Verhaltens
66
Q

Was ist der Unterschied zwischen statischen und dynamischen Modellen?

A

Statische Modelle
- konzentrieren sich auf Struktur eines Systems
dynamische Modelle
- Beschreiben das Verhalten und die Interaktion des Systemkomponenten

67
Q

Was ist das Ziel von Tests

A

Zu zeigen, dass Programm das tut, was es soll und um eventuelle Fehler aufzuzeifen

68
Q

Welche Hauptziele verfolgen Validierungstests und Fehlertests

A

Validierungstests: Sollen Korrektheit des Systems zeigen
Fehlertests: Sollen Defekte und Systemfehler aufdecken

69
Q

Unterschied Validierung und Verifikation

A

Verifikation: Prüft ob Produkt richtig gemäß Spezifikation erstellt wurde
Validierung: Prüft ob das richtige Produkt erstellt wurde, das Benutzeranforderungen entspricht

70
Q

Welche Phasen gehören zu Testphasen in Softwareentwicklung

A

Entwicklertest, Freigabetest, Benutzertest

71
Q

Welche Testarten fallen unter Entwicklertests

A

Modultests, Komponententest, Systemtest

72
Q

Ziel von Modulltests

A

Einzelne Programmiereinheiten oder Klasse testen und Funktion prüfen

73
Q

Vorteile von Inspektionen ggü tests

A
  • Identifikation von Fehler in frühen Phasen,
  • Inspektion von unvollständigen Artefakten
  • Betrachtung qualitativer Programmeigenschaften
74
Q

Regressionstest

A

Erneutes Ausführen von vorhergehender Tests, zur Prüfung, dass Änderung im Programm keine neuen Fehler verursacht

75
Q

Warum sind Inspektionen nicht ausreichen?

A

Inspektionen schwer nicht-funktionale Eigenschaften der SW prüfen können

76
Q

Was beinhaltet ein automatisierter Testprozess nach AAA

A

Assemble
-Vorbereiten des Testfalls durch initialisierung von Komponenten und Daten
- Konfiguration der Testumgebung
- Erstellen von Objekten
- Festlegen von Eingabewerten

Active
- Ausführen der zu testenden Funktion mit vorbereiteten Werten auf das zu testende Objekt

Assert
- Überprüfen der Ergebnisse der Funktion, um Korrektheit sicherzustellen
- Vergleich der tatsächlichen Werte mit erwarteten Ergebnissen

77
Q

Diskutieren Sie verschiedene ethische Aspekte unter denen es geboten ist, sich als Software Entwickler regelmäßig fortzubilden

A

Sicherheit & Qualität
- Aktuelle Kenntnisse über Technologien sind notwendig um sichere und qualitative SW zu entwickeln

Datenschutz
- Entwickler sollten neuste Datenschutzgesetze einhalten und überblick über diese haben

Berufliche Verantwortung
- Ständiges Lernen hilft, Schäden durch veraltete Praktiken zu vermeiden

Neue Technologien
- Um zu lernen neue Technologien korrekt einzusetzen

78
Q

Wann welche Systemarchitektur

A

MVC
- Bei benötigter Aufteilung von Daten, UI und Interaktion (Webanwendung)

Schichtenarchitektur
- Wird eingesetzt, wenn auf ein vorhandenes System neue
Funktionen aufgesetzt werden oder Entwicklung in Teams

Repository
- Bei Zugriff auf verschiedene Datenquellen und großen Datenmengen die lang gespeichert werden (IDE)

Client-Server
- Bei Zugriffen auf einer gemeinsamen DB von verschiedenen Orten

Pipes and Filter
- Wenn Eingabedaten transformiert & verarbeitet werden sollen (Bildverarbeitung)

Call-Return
- Bei sequentieller Ausführung
- Hauptprogramm ruft Unterprogramme auf

Manager
- Manager startet und stoppt Systemprozesse, parallele Ausführung möglich

Broadcast
- Ereignis wird an alle Komponenten gesendet

Interrupt gesteuert
- Nur in Real-Time-Systemen
- Interrupts werden von Handler empfangen und weitergeleitet

79
Q

Was sind Anwendungsarchitekturen

A
  • strukturierte Muster für den Entwurf von Softwareanwendungen
  • legen typische Anforderungen und Entwurfsprinzipien fest
  • Erleichtert Entwicklung und sichert Qualität
80
Q

Transaktionsverarbeitende Anwendungen

A
  • Sind Interaktive Systeme
  • Nutzer tätigt Dienstanfragen
  • Kann mit pipes and filter realisiert werden (Bsp. Bankautomat)

Komponenten
- IO-Verarbeitung, Anwendungslogik, Transaktionsmanager, Datenbank

81
Q

Informationssysteme

A
  • Systeme mit gemeinsam genutzter Datenbank

Schichten
1. Benutzungsschnittstelle
2. Bereitstellen von Funktionen der Schnittstelle
3. Funktionalität von System
4. DBMS

82
Q

Sprachverarbeitende Systeme

A
  • Übersetzen Sprache in andere Darstellung
  • Beispiel Compiler
83
Q

Client-Server-Architektur

A
  • Systemfunktionen sind in Dienste aufgeteilt, die von Server angeboten werden
  • Client greift auf Server zu um Dienste zu nutzen

Vorteile:
- Server können über Netzwerk verteilt sein
- Allg. Funktionen stehen allen Clients zur Verfügung
- Unabhängigkeit und Trennung der Dienste

Nachteile
- Jeder Dienst hat Single Point of Failure
- Unvorhersehbare Performance
- Verwaltungsprobleme