Software Engineering Flashcards

1
Q

Software-Engineering

A

Technicken zur Entwicklung von Software

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

Softwareprodukte

A

Software, die für Bedürfnisse einer bestimmten Nutzergruppe erstellt wird

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

Genersiche Softwareprodukte

A

für Breite Nutzergruppe

allgemeinere Funktionen & Eigenschaften

z.B Microsoft

+ Günstiger als Individual
- ggf. Prozesse an Software anpassen

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

Individual Softwareprodukte

A

für einzelnen Kunden

spezielle Funktionen & Eigenschaften

+ genau auf Kunden zugeschnitten
- teurer als generische Softwareprodukte

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

Komponenten eines Softwareproduktes

A

Produktdesign

Funktionalität und Features

Inhalt

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

Komponenten eines Softwareproduktes - Produktdesign

A

visuelles Erscheinungsbild

interaktive Benutzeroberfläche

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

Komponenten eines Softwareproduktes - Funktionalität & Features

A

Benutzerinteraktion mit Software

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

Komponenten eines Softwareproduktes - Inhalt

A

Daten
Informationen

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

Projekt-bezogenes Software-Engineering

A

Individualsoftware

Kunde definiert Leistungsumfang der Software

Entwicklerteam intern oder extern

Software wird lange verwendet -> Änderungen teuer

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

Produkt-bezogenes Software-Engineering

A

Software für großen Personenkreis

Entwickler entscheidet über Eigenschafte, Versionen, Platformen etc

für einzelnen Kunden günstiger als Individualsoftware

Prozesse müssen ggf. an Produkt angepasst werden

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

Produktvision

A

Ausgangspunkt für Produktentwicklung

Was für ein Produkt?
Was unterscheidet Produkt von Konkurrenzprodukten?

Wer sind Zielpersonen/Kunden?

Warum sollten Kunden das Produkt kaufen?

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

Produktmanager

A

Gesamtverantwortung für Softwareprodukt

Planung
Entwiclung
Marketing

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

Produktmanager - Schnitstellen

A

Entwicklerteam

Kunde des Produktes

weitere Organisation

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

Produktmanager - Aufgaben

A

Kundenkontakt

Entwicklung der Produkt Roadmap

Entwickung von User-Storys & Szenarios

Verwaltung des Produkt-Backlogs

Kunden- & Abnahmetests

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

Produkt-Roadmap

A

zeitlicher Plan inkl:
- Vermarktung
- Releases
- Produktlebensende

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

Softwareentwurf

A

technischer Plan für Entwicklung einer Software

dients als Bauplan für Programmierer
hilft Anforderungen effizient & strukturert umzusetzten

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

Softwareentwurf - Aspekte

A

Anforderungsanalyse

Architektur

Komponenten & Module

Schnittstellen

Datenmodelle

Algorithmen & Logik

Entwicklungsumgebung

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

Softwareentwurf - Aspekte - Architektur

A

grundlegende Struktur der Software

Hauptkomponenten und Interaktion untereinander

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

Softwareentwurf - Aspekte - Komponenten & Module

A

detaillierte Beschreibung der einzelnen Softwareteile

Module, Klassen und Beziehungen untereinander

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

Softwareentwurf - Aspekte - Schnittstellen

A

Definition Schnittstellen zwischen Komponenten & Modulen

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

Softwareentwurf - Aspekte - Datenmodelle

A

Beschreibung Datenstrukturen & Datenbanken

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

Softwareentwurf - Aspekte - Algorithmen & Logik

A

Logik & Algorithmen, die die Funktionalität der Software bestimmen

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

Softwareentwurf - Aspekte - Entwicklungsumgebung

A

Tools & Umgebung, die für Entwicklung verwendet werden

Programmiersprachen und Bibliotheken

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

Klasse

A

definiert Eigenschaften (Attribute)
und das Verhalten (Methoden), die die Objekte haben sollen

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

Instanzen

A

konkretes Objekt das auf Klasse basiert

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

Vererbung

A

objektorientierte Programmierung

ermöglicht es, neue Klassen auf Basis bestehender Klassen zu erstellen

Code wird wiederverwendbar

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

Basisklassen

A

Subklasse

enthält allgemeine Eigenschaften & Methoden

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

abgeleitete Klasse

A

Subklasse

erbt Eigenschaften und Methoden und kann diese erweitern/spezifizieren

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

Wiederverwendbarkeit

A

Durch Vererbung möglich

gemeinsame Funktionen können in Basisklasse definiert werden und von mehreren abgeleiteten Klassen genutzt werden

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

Polymorphismus

A

durch Vererbung möglich

Methoden wird in Basisklasse definiert und kann in abgeleiteter Klasse überschrieben werden

erlaubt:
unterschiedliche Implementierung einer Methode, die je nach Kontext verwendet werden kann

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

Entwurfsmuster

A

Design Patterns

Lösungsschablonen für Wiederkehrende Probleme

Entwurfsqualität verbessern
effizientere Entwicklung

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

Wichtigste Entwurfsmuster

A

Erzeugungsmuster

Strukturmuster

Verhaltensmuster

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

Erzeugungsmuster / Creational Patterns

A

Erzeugung von Objekten
Entkoppelt Erstellungsprozess von Nutzung der Objekte

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

Strukturmuster / Strucutral Patterns

A

Zusammensetzung von Klassen und Objekten, um größere Strukturen zu bilden

Adapter
Decorator
Composite

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

Strukturmuster / Strucutral Patterns - Adapter

A

ermöglicht die Zusammenarbeit von KLassen mit inkompatiblen Schnittstellen

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

Strukturmuster / Strucutral Patterns - Decorator

A

fügt einem Objekt dynamsich zusätzliche Attribute/Methiden hinzu, ohne Klassen zu ändern

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

Strukturmuster / Strucutral Patterns - Composite

A

ermöglicht es, Objekte zu Baumstrukturen zu kombinieren, um Hierarchien darzustellen

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

Verhaltensmuster / Behavioral Patterns

A

Interaktion und Verantwortung zwischen Objekten

Observer

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

Verhaltensmuster / Behavioral Patterns - Observer

A

definiert Abhängigkeit zwischen Objekten, sodass bei Änderung eines Objekts alle abhängigen Objekte benachrichtigt & aktualisiert werden

40
Q

UML

A

Unified Modeling Language

standardisierte, grafische Modellierungssprache

41
Q

UML - Diagrammtypen

A

Strukturdiagramme

Verhaltensdiagramme

Interaktionsdiagramme

42
Q

Klassendiagramm

A

visualisiert Klassen/Objekte innerhalb eines System und Beziehungen zwischen diesen

43
Q

Schritte Erzeugung Klassendiagramm

A

Identifizieren von Klassen

Beziehungen unterscheiden

Erstellen der Struktur

44
Q

Zustandsdiagramm

A

visualisiert Folge von Zuständenm die Objekt in Lebenszyklus einnehmen kann

beschreibt verhalten eines Systems, Komponente oder Klasse

45
Q

Sequenzdiagramm

A

dynamische Zusammenarbeit zwischen mehreren Objekten

in zeitlicher Reihenfolge

Nachrichten werden zwischen Objekten gesendet

46
Q

BPMN

A

Business Process Model Notation

Darstellung vin Geschätfprozessen

komplexe Abläufe verständlich und übersichtlich darstellen

47
Q

Grundelemente BPMN

A

Ereigniss (Event)

Aktivitäten (Activities)

Gateway (Entscheidungspunkte)

Verbindungen (Flows)

48
Q

Prototyp

A

frühe Version des Produktes

Erster Schritt bei Entwicklung eines Softwareproduktes

49
Q

Projektmanagement Vorgehensmodelle

A

Wasserfallmodell

V-Modell

Spiralmodell

Iteratives & Inkrementelles Modell

RUP

Scrum

Kanban

XP

50
Q

Vorgehensmodelle - sequentieller Ansatz

A

Aktivitäten nacheinander ausführen

einfache Implementierung

einfach zu managen

51
Q

Vorgehensmodelle - evolutionärer Ansatz

A

flexibler Entwicklungsprozess

besonders wenn Änderungen im laufenden Entwicklungsprozess zu erwarten sind

52
Q

Vorgehensmodelle - formeller Ansatz

A

Kundenbeteiligung niedrig

53
Q

Vorgehensmodelle - informeller Ansatz

A

Kundenbindung intensiv in versch. Phasen des Entwicklungsprozesses

54
Q

klassisches Software Projekmanagement

A

kontrollierter, rigoroser Softwareentwicklungsprozess

plangetriebene Entwicklung

55
Q

Wasserfallmodell

A

Phasen: Analyse, Entwurf, Codierung, Test, Inastallation, Wartung

Stufen nacheinander ablaufen

  • für einfache kleine/mittelgrosse Projekte
  • Projekte mit strenger kontrolle, Ziel genau bekannt
56
Q

Wasserfallmodell - con

A

Keine Möglichkeit Anforderungsänderungen auszunehmen

Keine Möglichkeit Software vor Abschluss der letzten Phase zu sehen/testen -> Hohes Projektrisiko

Fehler erst am Ende sichtbar -> ggf. großer Behebungsaufwand & steigende Kosten

57
Q

V-Modell

A

Validierungs- & Verifizierungsmodell

Phasen nacheinander durchlaufen

für jeden Phase testaktivität

Anforderungen zu Beginn erfassen

  • Projekte bei denen Störung & Ausfallzeiten inakzeptable sind
58
Q

V-Modell pro/con

A

Software effizient kontrollieren -> Projektrisiken auf Minimum reduzieren

eines der kosten- & zeitaufwändigste Modelle

59
Q

inkrementelles Modell

A

Entwicklungsprozess mehrere Überschaubere Iterationen

in jeder Iteation neue Inkremente erstellen & ausliefern

Entwicklungsprozess sequentiell oder parallel

60
Q

iteratives Modell

A

Phasen werden mehrmals durchlaufen

in jeder Iteration Software ändern, weiterentwickeln & erweitern

Nur wichtigste Anforderungen am anfang aufnehmen

  • große Projekte
  • geschäftskritische Unternehmensanwendungen
61
Q

iteratives Modell - pro

A

Auf Anforderungsänderungen flexible reagieren

Kundenfeedback flexible miteinbeziehen

62
Q

Spiralmodell

A

Fokus: gründliche Risikobewertung auch mit extern

typische Iteration ca. 6 Monate

4 Aktivitäten:
Sorgfältige Inkrementplanung
Risikoanalyse
Entwicklung & Test
Planung der nächsten Iteration

-große/komplexe Projekte
- Projekte mit unklaren Geschäftsanforderungen / zu anspruchsvollen/innovationen Anforderungen
- bei Forschungs- & Entwickungstätigkeit

63
Q

Rational Unified Process (RUP)

A

Kombination aus linearen & iteratvien Frameworks

4 Phasen:
Konzeption
Entwurf
Konstruktion
Übergabe

Jede Phase außer Konzeption in mehreren Iterationen
Alle Grundlegenden Aktivitäten parallel über alle Phasen

-große/risikoreiche Projekte
- Use-Case-getriebene Entwicklung

64
Q

RUP - pro/con

A

hilfreich beim Aufbau stabiler und gleichzeitig flexibler Lösungen

nicht so schnell Anpassungsfähig wie rein agile Vorgehensmodelle

Grad der Kundenbindung kann variieren

65
Q

Inkrement

A

Teil eines Software-Produkts

Liefert Kunden Mehrwert

66
Q

extreme programming (XP)

A

extreme Umstezung der agilen Softwareentwicklung

5 Werte:
- Kommunikation
- Einfachheit
- Feedback
- Mut
- Respekt

67
Q

extreme programming (XP) - Kommunikation

A

ständige Kommunikation unter allen beteiligten

68
Q

extreme programming (XP) - Einfachheit

A

einfache Lösungen oft effektiver

69
Q

extreme programming (XP) - Feedback

A

ermöglicht kontinuierliche Verbesserung

70
Q

extreme programming (XP) - Mut

A

Fehler werden als normaler Teil der Arbeit akzeptiert

71
Q

extreme programming (XP) - Respekt

A

respektvolle Zusammenarbeit im Team

72
Q

extreme programming (XP) - wichtigste Praktiken

A

User Stories

Testgetriebene Entwicklung

Kunde vor Ort

kontinuierliche Integration

dauerhaft haltbare Arbeitsgeschwindigkeit

Kollektives Eigentum

Paarprogramming

inkrementelle Planung

Refactoring

73
Q

Scrum vs XP

A

Parallelen:
- inkrementelle Planung mit kurzem Horizont
- häufige Auslieferung funktionstüchtiger Software
- Kunde im Mittelpunkt
- keine überflüssige Dokumentation

Unterschied:
- Kommunikation mit Auftraggeber, bei Scrum: Product-Owner & Scrum-Master

74
Q

Scrum - Meetings

A

Sprint planning

Daily Scrum

Sprint review

Sprint-retrospektive

75
Q

Scrum - Artefakte

A

Product - Backlog

Sprint - Backlog

Produkt - inkrement

76
Q

Scrum - Rollen

A

Scrum - Master
Product - Owner
Entwickler / Scrum - Teilnehmer

77
Q

PBI

A

Product - Backlog - Items

Liste von Maßnahmen die ergriffen müssen, um Entwicklung des Produktes abzuschließen

78
Q

Status Einträge im Product-Backlog - ready for consideration

A

absrakte Ideen & Funktionsbeschreibungen, die berücksichtigt werden sollen

vorläufig, ändern sich ggf. oder werden nicht in Endprodukt aufgenommen

79
Q

Status Einträge im Product-Backlog - ready for refinment

A

wichtiger Eintrag der umgesetzt werden soll

klare Definition der Anforderung

daran Arebiten, Eintrag zu verstehen & zu verfeinern

80
Q

Status Einträge im Product-Backlog - ready for implementation

A

genügend Detail, um Aufwand zu schätzen & umzusetzten

Abhängigkeiten von anderen EInträgen identifiziert

81
Q

Scrum pro

A

Kundenfokus

Flexibilität

Verantwortungsübernahme

Transparenz

verbesserte Kommunikation

einfache Priorisierung

82
Q

Scrum pro - Kundenfokus

A

enge Zusammenarbeit mit Kunden

Anforderungen und Wünsche berücksichtigen

83
Q

Scrum pro - Felxibilität

A

schnell auf Änderungen reagieren

Projektplan entsprechen anpassen

84
Q

Scrum pro - Verantwortungsübernahme

A

Teammitglieder übernehemen Verantwortung für Aufgaben

Erhöht Motivation und Engagement

85
Q

Scrum pro - Transparenz

A

Projektfortschritt für alle jederzeit sichtbar

schnell auf Probleme zu reagieren

86
Q

Scrum pro - verbesserte Kommunikation

A

regelmäßiges Meeting fördern Austausch und Zusammenarbeit

87
Q

Scrum pro - einfache Priorisierung

A

wichtigste Aufgaben zuerst erledigen

88
Q

Scrum con

A

hoher Kommunikationsaufwand

komplexe Einführung

Abhängigkeit vom Scrum-Master

mangelnde Langzeitplanung

Überlastung durch Selbstorganisation

schwierigkeiten bei großen Projekten

89
Q

Scrum con - hoher Kommunikationsaufwand

A

regelmäßige meetings zeitaufwendig

90
Q

Scrum con - komplexe Einführung

A

für Teams ohne Erfahrung, Einführung schwierig und zeitintensiv

91
Q

Scrum con - Abhängigkeit von Scrum-Master

A

Erfolg hängt stark von Erfahrung des Scrum-Masters ab

92
Q

Scrum con - mangelnde Langzeitplanung

A

fokus auf kurze Sprints, kann zu fehlendem Gesamtüberblick führen

93
Q

Scrum con - Überlastung durch Selbstorganisation

A

ggf. Überforderung bei Teammitgliedern

94
Q

Scrum con - Schwierigkeiten bei großen Projekten

A

Koordination mehrere Teams kann bei großen Projekten herausfordernd sein

95
Q

externe Interaktion

A

Scrum Master: teambezogene ext. Interaktion

Product Owner: produktbezogene ext. Interaktion

96
Q

Verantwortlichkeiten Projektmanagement

A

Mitarbeiter

Verwaltung

Berichterstattung