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
Instanzen
konkretes Objekt das auf Klasse basiert
26
Vererbung
objektorientierte Programmierung ermöglicht es, neue Klassen auf Basis bestehender Klassen zu erstellen Code wird wiederverwendbar
27
Basisklassen
Subklasse enthält allgemeine Eigenschaften & Methoden
28
abgeleitete Klasse
Subklasse erbt Eigenschaften und Methoden und kann diese erweitern/spezifizieren
29
Wiederverwendbarkeit
Durch Vererbung möglich gemeinsame Funktionen können in Basisklasse definiert werden und von mehreren abgeleiteten Klassen genutzt werden
30
Polymorphismus
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
31
Entwurfsmuster
Design Patterns Lösungsschablonen für Wiederkehrende Probleme Entwurfsqualität verbessern effizientere Entwicklung
32
Wichtigste Entwurfsmuster
Erzeugungsmuster Strukturmuster Verhaltensmuster
33
Erzeugungsmuster / Creational Patterns
Erzeugung von Objekten Entkoppelt Erstellungsprozess von Nutzung der Objekte
34
Strukturmuster / Strucutral Patterns
Zusammensetzung von Klassen und Objekten, um größere Strukturen zu bilden Adapter Decorator Composite
35
Strukturmuster / Strucutral Patterns - Adapter
ermöglicht die Zusammenarbeit von KLassen mit inkompatiblen Schnittstellen
36
Strukturmuster / Strucutral Patterns - Decorator
fügt einem Objekt dynamsich zusätzliche Attribute/Methiden hinzu, ohne Klassen zu ändern
37
Strukturmuster / Strucutral Patterns - Composite
ermöglicht es, Objekte zu Baumstrukturen zu kombinieren, um Hierarchien darzustellen
38
Verhaltensmuster / Behavioral Patterns
Interaktion und Verantwortung zwischen Objekten Observer
39
Verhaltensmuster / Behavioral Patterns - Observer
definiert Abhängigkeit zwischen Objekten, sodass bei Änderung eines Objekts alle abhängigen Objekte benachrichtigt & aktualisiert werden
40
UML
Unified Modeling Language standardisierte, grafische Modellierungssprache
41
UML - Diagrammtypen
Strukturdiagramme Verhaltensdiagramme Interaktionsdiagramme
42
Klassendiagramm
visualisiert Klassen/Objekte innerhalb eines System und Beziehungen zwischen diesen
43
Schritte Erzeugung Klassendiagramm
Identifizieren von Klassen Beziehungen unterscheiden Erstellen der Struktur
44
Zustandsdiagramm
visualisiert Folge von Zuständenm die Objekt in Lebenszyklus einnehmen kann beschreibt verhalten eines Systems, Komponente oder Klasse
45
Sequenzdiagramm
dynamische Zusammenarbeit zwischen mehreren Objekten in zeitlicher Reihenfolge Nachrichten werden zwischen Objekten gesendet
46
BPMN
Business Process Model Notation Darstellung vin Geschätfprozessen komplexe Abläufe verständlich und übersichtlich darstellen
47
Grundelemente BPMN
Ereigniss (Event) Aktivitäten (Activities) Gateway (Entscheidungspunkte) Verbindungen (Flows)
48
Prototyp
frühe Version des Produktes Erster Schritt bei Entwicklung eines Softwareproduktes
49
Projektmanagement Vorgehensmodelle
Wasserfallmodell V-Modell Spiralmodell Iteratives & Inkrementelles Modell RUP Scrum Kanban XP
50
Vorgehensmodelle - sequentieller Ansatz
Aktivitäten nacheinander ausführen einfache Implementierung einfach zu managen
51
Vorgehensmodelle - evolutionärer Ansatz
flexibler Entwicklungsprozess besonders wenn Änderungen im laufenden Entwicklungsprozess zu erwarten sind
52
Vorgehensmodelle - formeller Ansatz
Kundenbeteiligung niedrig
53
Vorgehensmodelle - informeller Ansatz
Kundenbindung intensiv in versch. Phasen des Entwicklungsprozesses
54
klassisches Software Projekmanagement
kontrollierter, rigoroser Softwareentwicklungsprozess plangetriebene Entwicklung
55
Wasserfallmodell
Phasen: Analyse, Entwurf, Codierung, Test, Inastallation, Wartung Stufen nacheinander ablaufen - für einfache kleine/mittelgrosse Projekte - Projekte mit strenger kontrolle, Ziel genau bekannt
56
Wasserfallmodell - con
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
V-Modell
Validierungs- & Verifizierungsmodell Phasen nacheinander durchlaufen für jeden Phase testaktivität Anforderungen zu Beginn erfassen - Projekte bei denen Störung & Ausfallzeiten inakzeptable sind
58
V-Modell pro/con
Software effizient kontrollieren -> Projektrisiken auf Minimum reduzieren eines der kosten- & zeitaufwändigste Modelle
59
inkrementelles Modell
Entwicklungsprozess mehrere Überschaubere Iterationen in jeder Iteation neue Inkremente erstellen & ausliefern Entwicklungsprozess sequentiell oder parallel
60
iteratives Modell
Phasen werden mehrmals durchlaufen in jeder Iteration Software ändern, weiterentwickeln & erweitern Nur wichtigste Anforderungen am anfang aufnehmen - große Projekte - geschäftskritische Unternehmensanwendungen
61
iteratives Modell - pro
Auf Anforderungsänderungen flexible reagieren Kundenfeedback flexible miteinbeziehen
62
Spiralmodell
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
Rational Unified Process (RUP)
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
RUP - pro/con
hilfreich beim Aufbau stabiler und gleichzeitig flexibler Lösungen nicht so schnell Anpassungsfähig wie rein agile Vorgehensmodelle Grad der Kundenbindung kann variieren
65
Inkrement
Teil eines Software-Produkts Liefert Kunden Mehrwert
66
extreme programming (XP)
extreme Umstezung der agilen Softwareentwicklung 5 Werte: - Kommunikation - Einfachheit - Feedback - Mut - Respekt
67
extreme programming (XP) - Kommunikation
ständige Kommunikation unter allen beteiligten
68
extreme programming (XP) - Einfachheit
einfache Lösungen oft effektiver
69
extreme programming (XP) - Feedback
ermöglicht kontinuierliche Verbesserung
70
extreme programming (XP) - Mut
Fehler werden als normaler Teil der Arbeit akzeptiert
71
extreme programming (XP) - Respekt
respektvolle Zusammenarbeit im Team
72
extreme programming (XP) - wichtigste Praktiken
User Stories Testgetriebene Entwicklung Kunde vor Ort kontinuierliche Integration dauerhaft haltbare Arbeitsgeschwindigkeit Kollektives Eigentum Paarprogramming inkrementelle Planung Refactoring
73
Scrum vs XP
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
Scrum - Meetings
Sprint planning Daily Scrum Sprint review Sprint-retrospektive
75
Scrum - Artefakte
Product - Backlog Sprint - Backlog Produkt - inkrement
76
Scrum - Rollen
Scrum - Master Product - Owner Entwickler / Scrum - Teilnehmer
77
PBI
Product - Backlog - Items Liste von Maßnahmen die ergriffen müssen, um Entwicklung des Produktes abzuschließen
78
Status Einträge im Product-Backlog - ready for consideration
absrakte Ideen & Funktionsbeschreibungen, die berücksichtigt werden sollen vorläufig, ändern sich ggf. oder werden nicht in Endprodukt aufgenommen
79
Status Einträge im Product-Backlog - ready for refinment
wichtiger Eintrag der umgesetzt werden soll klare Definition der Anforderung daran Arebiten, Eintrag zu verstehen & zu verfeinern
80
Status Einträge im Product-Backlog - ready for implementation
genügend Detail, um Aufwand zu schätzen & umzusetzten Abhängigkeiten von anderen EInträgen identifiziert
81
Scrum pro
Kundenfokus Flexibilität Verantwortungsübernahme Transparenz verbesserte Kommunikation einfache Priorisierung
82
Scrum pro - Kundenfokus
enge Zusammenarbeit mit Kunden Anforderungen und Wünsche berücksichtigen
83
Scrum pro - Felxibilität
schnell auf Änderungen reagieren Projektplan entsprechen anpassen
84
Scrum pro - Verantwortungsübernahme
Teammitglieder übernehemen Verantwortung für Aufgaben Erhöht Motivation und Engagement
85
Scrum pro - Transparenz
Projektfortschritt für alle jederzeit sichtbar schnell auf Probleme zu reagieren
86
Scrum pro - verbesserte Kommunikation
regelmäßiges Meeting fördern Austausch und Zusammenarbeit
87
Scrum pro - einfache Priorisierung
wichtigste Aufgaben zuerst erledigen
88
Scrum con
hoher Kommunikationsaufwand komplexe Einführung Abhängigkeit vom Scrum-Master mangelnde Langzeitplanung Überlastung durch Selbstorganisation schwierigkeiten bei großen Projekten
89
Scrum con - hoher Kommunikationsaufwand
regelmäßige meetings zeitaufwendig
90
Scrum con - komplexe Einführung
für Teams ohne Erfahrung, Einführung schwierig und zeitintensiv
91
Scrum con - Abhängigkeit von Scrum-Master
Erfolg hängt stark von Erfahrung des Scrum-Masters ab
92
Scrum con - mangelnde Langzeitplanung
fokus auf kurze Sprints, kann zu fehlendem Gesamtüberblick führen
93
Scrum con - Überlastung durch Selbstorganisation
ggf. Überforderung bei Teammitgliedern
94
Scrum con - Schwierigkeiten bei großen Projekten
Koordination mehrere Teams kann bei großen Projekten herausfordernd sein
95
externe Interaktion
Scrum Master: teambezogene ext. Interaktion Product Owner: produktbezogene ext. Interaktion
96
Verantwortlichkeiten Projektmanagement
Mitarbeiter Verwaltung Berichterstattung