Einheit 5 Flashcards

1
Q

Software Engineering

A

technische Disziplin

beschäftigt sich sich mit allen
Aspekten der systematischen Softwareherstellung, angefangen von der Systemspezifikation bis hin zur Wartung des Systems, nachdem es integriert und in Betrieb genommen wurde

Technische Disziplin: Verwendung von Werkzeugen um, in Anlehnung an das Ingenieurwesen, Ergebnisse in geforderter
Qualität innerhalb des Zeitplans und des Budgets zu erreichen.

Alle Aspekte der Softwareherstellung: Es geht nicht nur um technische Prozesse, sondern auch um Management Tätigkeiten.

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

Gestaltung von Informationssystemen

A

Herangehensweise wie ein System gebaut wird hängt stark vom Systemtyp ab.

Webbasierte (transaktionsbasierte)
Anwendungen
z.B.: ERP-System, Web-Shop, Online Zeitung

Für die Entwicklung von Informationssystemen
kann ein iterativer Ansatz mehr Sinn machen um schnell lauffähige Ergebnisse zu erzielen.

Auszug an möglichen Anforderungen:
-Zugang zu einer Datenbank um Daten und Informationen systematisch zu verwalten und zur Verfügung zu stellen (Datenintegrität, Datenverbreitung, Datenschutz …)
-Zugang zu einem Netzwerk (Internet, Intranet) (Informationsaustausch, Infromationssicherheit…)
-Benutzer müssen das System effizient verwenden können (Usability, Funktionalität …)
-Unterschiedliche Personengruppen haben verschiedene Sichten (Benutzerverwaltung, Rollenbasierte Zugangsverwaltung …)
und dadurch auch unterschiedliche Bedürfnisse

Die Gestaltung von Systemen ist ein komplexer Prozess und benötigt vor allem
effektive Kommunikation, effizientes Projektmanagement und Kollaboration.

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

Grundsätze des Software engineerings

A

Prozess
-Gestaltung mithilfe eines
verständlichen und gelenkten
Entwicklungsprozesses
-Planung, Spezifikation und
Kontrolle stehe

Anforderungen
-Vereinbarung und Verwaltung
von dem „was die Software
tun soll“ (Anforderungen &
deren Spezifikation)
-Erwartungen an ein
brauchbares System

Verlässlichkeit
-Software sollte sich wie
erwartet verhalten, keine
Fehler machen und verfügbar
sein.
-Sicherheit und Effizienz als
wichtige Faktoren

Wiederverwendung
-Effizienter Einsatz von
Betriebsmitteln
-„das Rad nicht neu
erfinden“, sondern auf
bereits bestehenden
Softwarekomponenten
aufbauen

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

Management und Entwicklungstätigkeiten

A

IS-Managementtätigkeiten:
-Beschaffung
-Projektmanagement
-Konfigurationsmanagement

IS-Entwicklungstätigkeiten:
-Geschäftsprozessentwicklung
-Spezifikation
-Entwurf
-Implementierung
-Test
-Change-Mangement

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

Tätigkeiten der Systementwicklung

A

vier grundlegende Tätigkeiten der Systementwicklung

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

Spezifikation
Verständnis und Definition von Anforderungen eines Systems (Requirements Engineering)

Entwurf
Skizzierung und Modellierung des zu implementierenden
Systems (Software Design)

Implementierung
Umsetzung und Programmierung des Entwurfs eines Systems (Software Development)

Test
Überprüfung dass Spezifikationen und
Erwartungen erfüllt wurden (Software Testing)

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

Spezifikation

A

Analyse und Erhebung
-Durchführbarkeitsanalyse
-Erhebung und Analyse der Anforderungen
-Kommunikation mit relevanten
Stakeholdern

->
Dokumentation
-(Strukturierte) Verschriftlichung von Benutzer- & Systemanforderungen
-Modellierung (zb Szenarien, Anwendungsfälle (User cases)

-> Validierung & Verwaltung:
-Abgleich und Überprüfung
-Planung & Strukturierung
-Nachvollziehbarkeit (Traceablitity)

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

Entwurf

A

Ziel ist es eine Systemarchitektur zu entwerfen. Diese beinhaltet:

Beschreibung der Struktur der Software, des Datenmodells, der Schnittstellen zwischen den Systemen, der Algorithmen, der Benutzeroberfläche usw.

Entwurf mithilfe von Modellierungswerkzeugen (z.B. UML)
-Modell für den Systemkontext, die Architektur, die Interaktionen oder
Zustände in einem System

Entwurf mithilfe von Software Prototyping
-Prototyping: papier, proof-of-concept, funktional, visuell
-Modellierung der grafischen Oberfläche

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

Implementierung

A

Ziel ist es die Anforderungen aus dem Entwurf in einen konkreten Lösungsansatz zu überführen.

Erstellung von Programmen mithilfe von
Programmiersprachen

Verwaltung und Koordination zwischen
Programmiererinnen und Programmierern sowie Kommunikation mit relevanten Stakeholdern

Entwicklungsstadien: Prototyp, Alphaversion, Betaversion, Freigabekandidat und
Freigabeversion

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

Test

A

Entwicklertests (z.B.: Modultest, Systemtest)

Freigabetests (z.B.: Anforderungsbasierte Tests, Szenariobasierte Tests)

Modultests-> Systemtests -> Abnahmetests
–>

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

Vorgehensmodelle

A

Vorgehensmodelle sind vereinfachte Darstellungen der Prozessschritte
in der Systementwicklung. Sie dienen als Rahmen der erweitert und
angepasst werden kann und soll.

Wasserfallmodell
§ Modell nach Royce (1970)
§ Plangesteuerter Prozess
§ Dokumentation und
Abnahme jedes Schrittes

Inkrementelle Entwicklung
§ Am häufigsten eingesetzt
§ Fundament für agile
Methoden

Agile Methoden
§ Inkrementelle Entwicklung
§ Schnelle Releasezyklen
§ Extreme Programming &
Scrum als
Projektmanagement

Spiralmodell
§ Risikogesteuertes Modell
nach Boehm (1988)
§ Hauptunterschied zu anderen
Modellen ist die integrierte
Risikoanalyse
§ Jede Windung hat 4
Segmente (Planung, Ziele,
Risiken, Entwicklung)

Unified Process
§ Hybrides Modell
§ Verbindet klassische Modelle
mit inkrementellen
§ Iteration in Phasen

V-Modell
§ Kombination jeder Phase mit
Verifizierung und Validierung
§ Systemtests als zentrales
Element in jeder Phase

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

Vor- und Nachteile Inkrementelle Entwicklung

A

+Kosten für Anpassung an sich ändernde
Kundenanforderungen werden reduziert.
+Konstruktive Rückmeldungen von Kunden
können einfacher aufgrund von
Zwischenversionen eingeholt werden.
+Schnellere Auslieferung und Verwendung
von lauffähiger Software. Auch wenn noch
nicht alle Funktionen enthalten sind.
-> optimal für kleine Projekte

-Prozess ist nicht sichtbar/greifbar.
-Integration von weiteren Änderungen kann
zunehmend schwerer und teurer werden.

grobe Beschreibung ->

gleichzeitig stattfindende Akitivitäten (Spezifikation, Entwicklung, Test) + Benuterzkommentare und Hinweise

Spezifikation -> Anfangsversion

Entwicklung -> Zwischenversionen

Test-> Endversion

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

Agile Methoden Vor- und Nachteiel

A

“Agile Manifesto” -> Grundprinzipien agiler Methoden

Extreme Programming -> Anforderungen werden in Szenarien (User Stories) spezifiziert dann sofort implementiert, getestet und freigegeben

Agiles Projektmanagement -> Scrum als
Management Ansatz mit Fokus auf
iterativer Entwicklung vs. plangesteuerter
Umsetzung (z.B. Wasserfallmodell)

->Optimal für kleine bis mittelgroße Projekte
-> Klares Einverständnis zur Einbeziehung des Kunden
-> Wenig oder keine externe Regeln bzw. Vorschriften

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

Warum Modell im Kontext der Systementiwkcklung

A

Komplexität: Die Gestaltung von Informationssystemen, Anwendungssystemen bzw.
Datenbanksystemen kann sehr kompliziert werden.

Konzeption:
§ Wie können wir über das System sprechen?
§ Wie können Anforderungen an ein System erfasst werden und deren
Zusammenspiel vereinfacht dargestellt werden?

Entwicklung:
§ Systemmodellierung als Hilfestellung zur
Entwicklung eines Systems
§ Möglichkeit der Transformation eines
Systemmodells in ausführbaren Programmiercode

Dokumentation:
§Systemmodellierung als
Werkzeug zur Analyse eines bestehenden Systems
§ Systemmodelle können helfen Komplexität in vereinfachter Form darzustellen

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

Systemmodellierung im Kontext der Systementwicklung

A

Systemmodellierung wird eingesetzt vor allem im Rahmen der Spezifikation (Requirements Engineering) und dem Entwurf (Software Design).

Allgemein versteht man unter Systemmodellierung die vereinfachte Darstellung eines Systems mithilfe
von grafischer Notation.

Heutzutage baut man meistens auf den Notationen der Unified Modeling Language (UML) auf.

Es gibt auch text-basierte, tabellarische oder formale, also mathematische, Modelle.

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

Unified Modeling Language

A

UML

Werkzeug zur Modellierung,
Dokumentation, Spezifizierung und
Visualisierung von Systemen, unabhängig
von Fach- und Realisierungsgebiet

Veröffentlicht als Standard durch die
Object Management Group (OMG)

Es gibt insgesamt 14 Diagrammtypen.
Die fünf meistgenutzten Diagrammtypen sind:
(1) Aktivitätsdiagramm,
(2) Use-Case-Diagramm,
(3) Sequenzdiagramm,
(4) Klassendiagramm und
(5) Zustandsdiagramm

UML-Modelle und deren Elemente lassen sich in unterschiedlichen Repräsentationsformen darstellen: grafisch, als XML-konforme Struktur, als
Codedatei oder in Form von natürlicher Sprache

17
Q

Use-Case-Diagramm

A

§ Als Kontextdiagramm Teil der
Verhaltensmodellierung
§ Zentrale Frage: „Was soll mein geplantes
System eigentlich leisten?“
§ Externe Nutzersicht zur Systemabgrenzung: Visualisierung des nach außen hin sichtbaren Verhaltens eines Systems/Elements.
§ Sollte am Beginn jeder Systementwicklung stehen

18
Q

Aktivitätsdiagramm

A

Als Kontextdiagramm Teil der
Verhaltensmodellierung

Zentrale Frage: „Wie realisiert mein System
ein bestimmtes Verhalten?“

Visualisierung von Abläufen zu unterschiedlichen Zeitpunkten mit variierendem Detailgrad

Wichtigste Anwendungsgebiete:
§ Geschäftsprozessmodellierung
§ Beschreibung von Use-Cases
§ Dokumentation einer Operation
(Algorithmus)

19
Q

Sequenzdiagramm

A

Als Interaktionsdiagramm Teil der
Verhaltensmodellierung

Zentrale Frage: „Wie läuft die Kommunikation
in meinem System ab?“

Modelliert Abfolge von Interaktionen, die
während eines bestimmten Use Cases anfallen

Interaktionen zwischen Akteuren & Objekten

20
Q

Klassendiagramm

A

Strukturdiagramm

Zentrale Frage: „Wie sind die Daten und das
Verhalten meines Systems im Detail
strukturiert?“

Bildet die Organisation eines Systems ab durch Darstellung von Komponenten (Klassen) und deren Beziehungen zueinander

Wichtig bei Systementwurf für Architektur

21
Q

Notationselemente des UML für Use-Case-Diagramme

A

Akteur: interagiert mit dem System, steht aber immer außerhalb
davon. Ein Akteur stellt eine Rolle dar, die mit dem System interagiert.
Es ist auch erlaubt anstatt des Strichmännchens eigene definierte
Symbole zu verwenden (z.B. icon für Sensor, Zeitereignis oder Gerät).

Use-Case: Ellipse: beschreibt eine Menge von Aktionen, die, schrittweise
ausgeführt, ein spezielles Verhalten des Systems darstellen und einem
Aktuer zur Verfügung gestellt warden kann.

System (Betrachtungsgegenstand): Rechteck: ist die Einheit, die das
Verhalten, welches durch Use-Cases beschrieben wird, realisiert und
anbietet.

Kommentar: verdeutlicht die Einzelschritte und stellt zusätzliche
Informationen (möglicherweise auch Bedingungen) zur Verfügung.

Include Beziehung: Pfeil von A nach B: Use-Case A schließt immer Use-Case B ein. B kann jedoch auch in verschiedenen Use-Cases genutzt werden.

Extend Beziehung: Pfeil von B nach A: Use-Case A kann, muss aber nicht durch
Use-Case B erweitert werden. A besitzt auslagerbare Sonderfälle.