Software-Engineering Prozess Flashcards

1
Q

Was ist Software?

A
Sammelbegriff für:
- die Gesamtheit der Programme
- die zugehörigen Daten
- die notwendige Dokumentation
, die es erlauben mit Hilfe eines Computers Aufgaben zu erledigen

Kann für bestimmten Kunden oder freien Markt entwickelt werden.

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

In welchen Formen widerspiegelt sich die Komplexität von Software?

A

Komplexität:

a) der Funktionen
b) der Daten
c) der Algorithmen
d) des zeitabhängiges Verhaltens
e) der Systemumgebung
f) der Benutzungsoberfläche

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

Wie unterscheidet sich Software von einem technischen Produkt?

A
  • Software ist ein immaterielles Produkt
  • Software hat keine (oder sehr geringe) Vervielfältigungskosten
  • Software unterliegt keinem Verschleiß von Einzelteilen (kann aber dennoch altern –> durch ändernde Umgebungsbedingungen)
  • für Software gibt es keine Ersatzteile
  • der Wert von Software lässt sich schwer bemessen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definiere Software-Engineering

A

Systematische Entwicklung und Gestaltung von Software unter Verwendung geeigneter Prinzipien, Methoden und Werkzeuge.

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

Warum gibt es Software-Engineering?

A

Software-Entwicklung findet in einem Spannungsfeld statt:
- Erhöhung der Qualität/ des Umfangs –> höhere Kosten/ größerer Zeitbedarf

  • > Preisdruck, Qualitätsanforderungen, Funktionsumfang, Zeitdruck
  • > Effizienzsteigerung gewünscht (durch Standardisierung, Einsatz kollaborativer Werkzeuge, etc.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was sind die Eigenschaften von guter Software

A
  • liefert geforderte Funktionalität und Performance
  • Wartbarkeit
  • Verlässlichkeit
  • Effizienz (verschwendet keine Systemressourcen)
  • Akzeptanz
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Welches sind die grundlegenden Aktivitäten des Software-Engineering?
(Bzw. grundlegende Schritte jedes Vorgehensmodells im SE)

A
  • Spezifikation
  • Entwicklung
  • Validierung
  • Weiterentwicklung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Worin liegt der Unterschied zwischen Software-Engineering und Informatik?

A

Informatik: Fokus auf Theorie und Grundlagen

Software-Engineering: Entwicklung in der Praxis + Herstellung nützlicher Software

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

Worin liegt der Unterschied zwischen Software-Engineering und Systems-Engineering?

A

Systems-Engineering: beschäftigt sich mit allen Aspekten computerbasierter Systementwicklung:

  • Hardware
  • Software
  • Verfahren

–> Software-Engineering ist ein Teil dieses Prozesses

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

Worin liegen die größten Herausforderungen für das Software Engineering?

A

erfolgreicher Umgang mit:

  • zunehmender Vielfalt
  • Forderungen nach verkürzten Lieferzeiten
  • Entwicklung vertrauenswürdiger Software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was kostet das Software-Engineering

A

60% Entwicklungskosten - 40% Testkosten

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

Skizziere den Rahmen des Software-Engineering-Prozesses

A

Analyse –> Design –> Codierung –> Test –> Wartung

  • dabei fortlaufend Projektmanagement und Qualitätssicherung
  • ggf. spezifische Vertiefungsgebiete (Usability, Security, Echtzeit, …)
  • übergeordnete Mechanismen: Risikomanagement, IT-Strategie, …
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Nenne 4 Vorgehensmodelle im Software-Engineering

A
  • Wasserfallmodell
  • Inkrementelle Entwicklung
  • Komponentenbasierte Entwicklung
  • Agiles Vorgehen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Nenne Vor- und Nachteile des Wasserfallmodells

A

Vorteile:

  • aufgrund Dokumentation stets durchschaubar
  • Management-kompatibel, da starrer, transparenter Prozess
  • kann beweisbar korrekte Software erzeugen

Nachteile:
- Big-Bang-Effekt: bei letztlicher Integration/Wartung werden Spezifikations-/Entwurfsfehler festgestellt

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

Nenne Vor- und Nachteile der Inkrementellen Entwicklung

A

Vorteile:

  • Kosten für sich ändernde Anforderung reduziert
  • Rückmeldung zu fertiggestellten Teilen einfach abzufragen
  • schnelle erste Auslieferung (bspw. MVP)

Nachteile:

  • Prozess/Status nicht deutlich
  • Inkremente können System schwächen, wenn kein Refactoring, sondern Fixing –> Inkremente werden mit jedem Inkrement aufwändiger
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Nenne Vor- und Nachteile der komponentenbasierten Entwicklung

A

Vorteil:
- Rückgriff auf fertige Softwarebestandteile, damit reduzierte Kosten, Zeit und Risiken

Nachteil:

  • Abhängigkeit von Komponentenanbieter
  • Anforderungen müssen an Komponente angeglichen werden
17
Q

Nenne 5 Kernprinzipien der agilen Softwareentwicklung

A
  • Einbeziehung des Auftraggebers
  • Inkrementelle Auslieferung
  • Menschen sind wichtiger als Prozesse (keine engen Verfahrensvorschriften)
  • Offenheit für Änderungen
  • Einfachheit (KISS)
18
Q

Unterscheide Inkrement und Iteration?

A
  • Inkremente werden üblicherweise nicht mehr überarbeitet und sind vollständig entwickelt und getestet
  • Iteration bearbeitet üblicherweise mehr als eine Komponente