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
Was ist der Rational Unified Process (RUP)
- Ein iteratives und inkrementelles Softwareentwicklungsmodell, das vier Phasen umfasst: Inception, Elaboration, Construction, Transition​
24
Was versteht man unter Softwarevalidierung
Sicherstellen, dass das System die Spezifikationen und die Bedürfnisse der Benutzer erfüllt​
25
Was sind die Hauptprobleme des traditionellen Wasserfallmodells
Abgrenzungsproblem, Abfolgeproblem, Unflexibilität gegenüber Änderungen, später Return on Investment, Big Bang Einführung​
26
Was versteht man unter Requirements Engineering
- Umfasst die Erhebung, Analyse, Dokumentation und Überprüfung von Anforderungen an ein System, - Sicherstellung, dass es Bedürfnissen und Erwartungen der Stakeholder entspricht
27
Was sind die vier generischen Aktivitäten des Requirements Engineering
- Erhebung der Anforderungen - Analyse der Anforderungen, - Validierung der Anforderungen - Anforderungsmanagement
28
Was ist eine Durchführbarkeitsstudie im Kontext des Requirements Engineering
- Bewertet, ob ein System zur Verwirklichung der Gesamtziele des Unternehmens beiträgt, - Kompatibilität mit aktuellen Systemen und Ressourcen sicherstellenn
29
Welche Arten von Anforderungen gibt es
Benutzeranforderungen und Systemanforderungen, die weiter in funktionale und nicht-funktionale Anforderungen unterteilt werden können​
30
Was sind funktionale Anforderungen
- Funktionale Anforderungen beschreiben die spezifischen Dienste und Funktionen, die ein System bieten soll
31
Was sind nicht-funktionale Anforderungen
- Nicht-funktionale Anforderungen beziehen sich auf die Betriebsbedingungen eines Systems, wie Leistung, Sicherheit und Benutzerfreundlichkeit​
32
Was sind typische Aktivitäten bei der Erhebung und Analyse von Anforderungen
- Entdecken und Sammeln von Anforderungen - Klassifizierung und Organisation der Anforderungen - Priorisierung und Verhandlung der Anforderungen - Spezifikation der Anforderungen
33
Was ist das Ziel der Anforderungsvalidierung
- Sicherzustellen, dass die Anforderungen vollständig, konsistent, machbar und korrekt dokumentiert sind
34
Welche Herausforderungen können bei der Anforderungserhebung auftreten
- 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
Was ist der Unterschied zwischen Lastenheft und Pflichtenheft
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
Warum ist Anforderungsmanagement wichtig
-um Änderungen an den Anforderungen zu kontrollieren - Nachverfolgbarkeit sicherzustellen - Kommunikation zwischen Stakeholdern zu erleichtern - Vermeidung von Missverständissen - Klare Definitionen und Anforderungen
37
Was sind die Hauptziele der Anforderungsanalyse
- Verständnis und die Dokumentation der Anforderungen, - die Priorisierung und Verhandlung von Anforderungen - die Spezifikation der Anforderungen​
38
Was bedeutet "klassifizieren und organisieren der Anforderungen"
- Anforderungen werden in kohärente Gruppen organisiert, - Übersichtlichkeit erhöhen, Struktur der Anforderungen besser darzustellen​
39
Warum sind Gespräche mit Stakeholdern wichtig bei der Anforderungserhebung
- Um Bedürfnisse und Erwartungen zu verstehen, - Missverständnisse zu vermeiden - sicherzustellen, dass alle relevanten Anforderungen berücksichtigt werden​
40
Was ist ein Systemmodell
Eine abstrakte Darstellung eines Systems, die seine Struktur, Verhalten und mehr beschreibt
41
Welche Arten von Modellen werden in der Systemmodellierung verwendet
Strukturmodelle, Verhaltensmodelle, Funktionsmodelle, Objektmodelle
42
Was ist ein Anwendungsfalldiagramm (Use Case Diagram)
Ein Diagramm, das die Interaktionen zwischen einem System und seinen Benutzern (Akteuren) darstellt
43
Was ist UML (Unified Modeling Language)
Eine standardisierte Modellierungssprache, die in der Softwareentwicklung zur Spezifikation, Visualisierung, Konstruktion und Dokumentation von Softwaresystemen verwendet wird
44
Was ist ein Klassendiagramm?
Ein Diagramm, das die Klassenstruktur und Beziehungen in einem objektorientierten System darstellt
45
Was ist ein Zustandsdiagramm
Ein Diagramm, das die Zustände eines Systems und die Übergänge zwischen diesen Zuständen beschreibt
46
Was ist ein Aktivitätsdiagramm
Ein Diagramm, das den Ablauf von Aktivitäten und die Kontrollflüsse in einem System darstellt
47
Was ist ein Modell gemäß Charwat
Eine Abstraktion oder Vereinfachung der Realität, die ohne die Übernahme der Komplexität der Realität auf reale Situationen anwendbar ist
48
Was bedeutet Modellgetriebenes Software Engineering
Ein Ansatz, bei dem Modelle im Zentrum des Softwareentwicklungsprozesses stehen und als primäre Artefakte dienen
49
Was ist der Zweck von Systemmodellen in der Softwareentwicklung
helfen, komplexe Systeme zu verstehen, zu entwerfen und zu kommunizieren, indem sie eine abstrahierte Darstellung bieten
50
Welche Rolle spielt UML in der Softwaremodellierung
- Bietet einheitliche Methode zur Modellierung von Softwaresystemen - unterstützt Kommunikation und Dokumentation der Systemstruktur und -verhalten
51
Was sind die Hauptkomponenten eines Klassendiagramms
Klassen, Attribute, Methoden und die Beziehungen zwischen den Klassen
52
Was ist Softwarearchitektur
- Der planvolle Entwurf und die Gestaltung der Gesamtstruktur eines Systems - einschließlich Darstellung der Beziehungen zwischen den Hauptstrukturkomponenten
53
Warum ist die Systemarchitektur wichtig
- Da sie die Struktur und das Verhalten des Systems definiert und somit die Grundlage für Design und Entwicklung bildet​
54
Was ist ein Architekturmodell
Beschreibt, wie das System durch kommunizierende Komponenten organisiert ist​
55
Was ist ein Architekturmuster
bewährte Möglichkeit, die Systemarchitektur zu organisieren und im Systementwurf wiederzuverwenden
56
Was ist das Model-View-Controller (MVC) Muster
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
Was ist eine Schichtenarchitektur
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
Was ist eine Repository-Architektur
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
Wann sollte die Repository-Architektur verwendet werden
Diese Architektur sollte bei Systemen verwendet werden, die große Datenmengen erzeugen und speichern müssen
60
Warum ist es wichtig, frühzeitig eine Systemarchitektur zu etablieren
Da inkrementelle Entwicklung der Architektur oft nicht erfolgreich ist und Überarbeitungen teuer sind​
61
Was sind die zwei Abstraktionsebenen in der Softwarearchitektur
- Mikroarchitektur (Architektur einzelner Programme) - Makroarchitektur (komplexe Unternehmensarchitekturen)​
62
Was ist die zentrale Aufgabe des Architekturentwurfs
Entscheidung über die Gesamtstruktur des Systems und die Darstellung der Beziehungen zwischen den Hauptkomponenten​
63
Was sind Sequenzmodelle im objektorientierten Entwurf
- zeigen die zeitliche Abfolge von Nachrichten zwischen Objekten - Stellen Interaktionen und Zusammenspiel im System dar
64
Was ist ein UML-Klassendiagramm
Ein UML-Klassendiagramm beschreibt die Objekte in einem System und die verschiedenen Beziehungen zwischen diesen Objekten
65
Was ist die Rolle von Verhaltensmodellen
- Modellieren komplexes Verhalten der Software - erhöhen damit Flexibilität der Software hinsichtlich ihres Verhaltens
66
Was ist der Unterschied zwischen statischen und dynamischen Modellen?
Statische Modelle - konzentrieren sich auf Struktur eines Systems dynamische Modelle - Beschreiben das Verhalten und die Interaktion des Systemkomponenten
67
Was ist das Ziel von Tests
Zu zeigen, dass Programm das tut, was es soll und um eventuelle Fehler aufzuzeifen
68
Welche Hauptziele verfolgen Validierungstests und Fehlertests
Validierungstests: Sollen Korrektheit des Systems zeigen Fehlertests: Sollen Defekte und Systemfehler aufdecken
69
Unterschied Validierung und Verifikation
Verifikation: Prüft ob Produkt richtig gemäß Spezifikation erstellt wurde Validierung: Prüft ob das richtige Produkt erstellt wurde, das Benutzeranforderungen entspricht
70
Welche Phasen gehören zu Testphasen in Softwareentwicklung
Entwicklertest, Freigabetest, Benutzertest
71
Welche Testarten fallen unter Entwicklertests
Modultests, Komponententest, Systemtest
72
Ziel von Modulltests
Einzelne Programmiereinheiten oder Klasse testen und Funktion prüfen
73
Vorteile von Inspektionen ggü tests
- Identifikation von Fehler in frühen Phasen, - Inspektion von unvollständigen Artefakten - Betrachtung qualitativer Programmeigenschaften
74
Regressionstest
Erneutes Ausführen von vorhergehender Tests, zur Prüfung, dass Änderung im Programm keine neuen Fehler verursacht
75
Warum sind Inspektionen nicht ausreichen?
Inspektionen schwer nicht-funktionale Eigenschaften der SW prüfen können
76
Was beinhaltet ein automatisierter Testprozess nach AAA
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
Diskutieren Sie verschiedene ethische Aspekte unter denen es geboten ist, sich als Software Entwickler regelmäßig fortzubilden
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
Wann welche Systemarchitektur
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
Was sind Anwendungsarchitekturen
- strukturierte Muster für den Entwurf von Softwareanwendungen - legen typische Anforderungen und Entwurfsprinzipien fest - Erleichtert Entwicklung und sichert Qualität
80
Transaktionsverarbeitende Anwendungen
- Sind Interaktive Systeme - Nutzer tätigt Dienstanfragen - Kann mit pipes and filter realisiert werden (Bsp. Bankautomat) Komponenten - IO-Verarbeitung, Anwendungslogik, Transaktionsmanager, Datenbank
81
Informationssysteme
- Systeme mit gemeinsam genutzter Datenbank Schichten 1. Benutzungsschnittstelle 2. Bereitstellen von Funktionen der Schnittstelle 3. Funktionalität von System 4. DBMS
82
Sprachverarbeitende Systeme
- Übersetzen Sprache in andere Darstellung - Beispiel Compiler
83
Client-Server-Architektur
- 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