05 - Entwicklung von Software Flashcards

1
Q

Abkürzung: COTS

A

Commercial off the Shelf (Standardsoftware)

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

Ziele: Softwarewiederverwendung (4)

A

1) Herstellkosten verringern
2) Wartungskosten verringern
3) Projektdauer verkürzen
4) Qualität erhöhen

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

Entscheidungskriterien für die Softwarewiederverwendung (4)

A

1) Entwicklungszeit der Software
2) Nutzungsdauer der Software
3) Erfahrungen und Kenntnisse des Entwicklungsteams
4) Kompromissbereitschaft der Kunden

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

Wiederverwendungsansätze (11)

A

1) Entwurfsmuster
2) Komponentenbasiert
3) Anwendungsrahmen
4) Wrapper um Legacy-Systeme
5) Dienstorientierte Systeme
6) Anwendungsproduktlinien
7) COTS-Integration
8) Konfigurierbare vertikale Anwendungen
9) Programmbibliotheken
10) Programmgeneratoren
11) Aspektorientierte Softwareentwicklung

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

Definition: Anwendungsrahmen (Wiederverwendungsansätze)

A

Zusammenstellungen von abstrakten und konkreten Klassen, die angepasst und erweitert werden können, um Anwendungssysteme aufzubauen

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

Definition: Anwendungsproduktlinien (Wiederverwendungsansätze)

A

Ein Anwendungstyp wird mit Hilfe einer gemeinsamen Architektur verallgemeinert, so dass er an verschiedene Kunden angepasst werden kann.

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

Definition: Aspektorientierte Softwareentwicklung (Wiederverwendungsansätze)

A

Gemeinsam genutzte Komponenten werden bei der Kompilierung des Programms an verschiedenen Stellen “eingewoben”.

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

Beispiele: Code-Generatoren (2)

A

1) Bei CASE (Computer Aided Software Engineering) Anwendungen können oft anhand von Designs Codeblöcke generiert werden.
2) Generieren von Reports bei Benutzereingaben für ERP Systeme

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

Beispiel: COTS-Integration

A

Bereitgestellte APIs von der COTS Software, die dem Entwickler ermöglichen Umfangreiche Softwaresysteme durch das verbinden von mehreren COTS Schnittstellen.

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

Definition: Komponentenbasiertes SE

A

Hier werden Komponenten die einiges kleiner sind als Klassen wiederverwendet (FUBAs) die unabhängig voneinander konzipiert wurden und somit in ein Anwendungssystem integrierbar sind.

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

Eigenschaften: Komponenten (6)

A

1) Werden nicht im Rahmen einer Anwendung kompiliert, sondern sie liegen kompiliert vor und werden dann auf einer Komponentenplattform installiert.
2) Definieren keine Objekte
3) Sind eine Black-Box und somit ausschließlich über ihre Schnittstellen ansprechbar.
4) Auf manchen Komponentenplattformen sprachunabhängig
5) Standardisiert
6) Implementieren in der Regel eine größere Funktionalität als einzelne Klassen

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

Komponenten in der Praxis (2)

A

1) Es entwickelt sich kaum ein freier Markt für Komponenten

2) Werden nur Unternehmensintern verwendet z.B. Login

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

Fehleranfällige Konstrukte (Verlässliche Entwicklung) (5)

A

1) Fließkommazahlen
2) Pointer
3) Dynamische Speicherallokation (C++)
4) Nebenläufigkeit
5) Unbeschränkte Arrays

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

Definition: Defensive Programming

A

Es wird nach Sachen geprüft, die eigentlich gar nicht nach Ausführung des Quelltextes passieren sollten. Dennoch könnnen Spezifikationsfehler hiermit nicht erkannt werden.

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

Gründe für Weiterentwicklung (4)

A

1) Veränderungen in Geschäftsprozessen
2) Korrektur für festgestellte Fehler
3) Anpassung an eine andere Plattform
4) Verbesserung der Performanz

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

Kostenprinzip: Wartung von Software

A

Sollte durchaus während der Entwicklung hier investiert werden, dazu muss man aber feststellen dass je mehr Wartungskosten in das System einfließen, desto zunehmend weniger haben diese Investitionen eine spürbare Wirkung.

17
Q

Definition: Software Reengineering

A

Hier entscheidet man sich Legacy-Systeme neu zu implementieren. Es ändern sich zwar die Dokumentation, Architektur und Programmiersprache, aber die Funktionalitäten sollen gleich bleiben. Dieser Ansatz ist eigentlich unbeliebt, da die höheren Kosten von einer Neuentwicklung eher in Kauf genommen werden, damit neue Funktionen entwickelt werden können.

18
Q

Strategien zur Weiterentwicklung von Legacy-Systemen (4)

A

1) System abschalten - zu viel hat sich an den Geschäftsprozessen geändert.
2) Wartung fortsetzen - bei überschaubaren Kosten
3) Reengineering - Nach vielen Anpassungen und Änderungen wirkt das Legacy-System unwartbar und unstrukturiert
4) Neuentwicklung - System wird noch gebrauch aber es sind neue Funktionen gewollt