3. SE - Entwicklung von Software Flashcards

1
Q

Was ist das Ziel der Softwarewiederverwendung?

A

Herstellkosten verringern
Wartungskosten verringern
Projektdauer verkürzen
Qualität erhöhen

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

Was kann bei einer Software wiederverwendet werden?

A

ganze Anwendungssysteme
Komponenten
einzelne Klassen

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

Was sind die Kriterien über Entscheidung über Wiederverwendung bestehender Software

A

Entwicklungszeit der Software: Bestehende Systeme integrieren geht meist schneller als neue zu schreiben

Nutzungsdauer der Software: Langfristig die Wartung zu garantieren ist schwierig, wenn Sourcecode der verwendeten Komponenten nicht hat

Erfahrungen und Kenntnisse des Entwicklungsteams

Kompromissbereitschaft der Kunden: funktionale Abweichungen von Anforderungen im Kauf genommen, um Wiederverwendung zu ermöglichen?

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

Was passiert in CASE-Tools? (Code-Generator)

A

Programmfragmente anhand von Designs generiert

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

In welchen Anwendungssystemen werden Reports anhand von Benutzereingaben generiert (Code-Generator)

A

In betriebswirtschaftlichen

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

Bedeutung API

A

Viele Standardsoftwaresysteme haben definierte Schnittstellen

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

Wie baut man umfangreiche Standardsoftwares auf?

A

indem man mehrere Standardsysteme miteinander verbindet

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

Woran scheitert die Verwendung von Standardsoftware oft?

A

Konfiguration nicht flexibel genug auf die Anforderungen anpassbar

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

Setzt sich die Wiederverwendung von einzelnen Klassen durch?

A

Überhaupt nicht. Klassen wären dann zwar flexibler aber im Einsatz sehr komplex

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

Wie kann ein Kompromiss bei der Wiederverwendung von Klassen aussehen?

A

Wiederverwendung von Komponenten mittlerer Größe. Diese werden unabhängig voneinander konzipiert und sollen zu einem Anwendungssystem integriert werden

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

Was zeigt das UML-Komponentendiagramm

A

Die von einer Komponenten benötigte (verwendete) und die von einer Komponente angebotene (bereitstellen) Schnittstellen

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

Komponenten VS. Klassen

Nenne die wichtigsten Daten von Komponenten

A
  • nicht im Rahmen einer Anwendung kompiliert, sondern liegen kompiliert vor und werden dann auf Komponentenplattform installiert
  • definieren keine Objekte
  • Black Box. Ausschließlich über Schnittstellen ansprechbar
  • auf manchen Komponentenplattformen sprachunabhängig
  • standartisiert, müssen gemäss einem Komponentenmodell entwickelt werden
  • implementieren i.d.R. größere Funktionalität als einzelne Klassen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Worin unterscheiden sich Parameter mit Komponenten?

A
  • selbe Bezeichnung

- unterscheiden sich in Anzahl, Reihenfolge, Datentyp

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

Worin unterscheiden sich Operationen mit Klassen

A

Ihre Bezeichnung

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

Entwickelt sich ein freier Markt von Komponenten?

A

Kaum

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

Wo gibt es meistens Wiederverwendung für Komponenten

A

unternehmensintern

Bsp. Login, Suchfunktion

17
Q

Gute Grundsätze objektorientierter Entwicklung

A

getter/setter Methoden, keine ungefangenen Exceptions

18
Q

Was sollte man bei der Entwicklung von objektorientierter Entwicklung vermeiden?

A
Fließkommazahlen
Pointer
Dynamische Speicherallokationen
Nebenläufigkeit
Unbeschränkte Arrays
19
Q

Was versteht man unter Defensive programming

A

In Code werden Überprüfungen aufgenommen, eig für Funktionieren des Algorithmus nicht nötig wären
- Fehler in Spezifikation werden nicht entdeckt

20
Q

Neue Anforderungen nach dem GO LIVE eines Systems, die Wartung erforderlich machen

A
  • aufgrund veränderter Geschäftsprozesse, neuer oder geänderter funktionaler Anforderungen
  • zu Korrektur festgestellter Fehler
  • zur Anpassung an eine andere Plattform
  • zur Verbesserung der Performanz
21
Q

Warum lohnt es sich während der Entwicklung in die Wartbarkeit zu investieren

A
  • Mit Wartung betrauter Personen müssen speziellen Aspekte des Systems einarbeiten
  • mit zunehmender Nutzungsdauer gibt es immer weniger Experten für System zugrundeliegenden Programmiersprachen, Plattformen, Schnittstellen, bei Dokumentation verwendeten Modellierungstechniken etc.
  • mit zunehmender Nutzungsdauer verkompliziert die Wartungsarbeiten die Architektur und Struktur des Systems immer weiter. Zusätzlich Arbeiten werden dadurch noch aufwendiger
22
Q

Vorteile Software Reengineering

A

Kosten geringer als bei vollständiger Neuentwicklung. Risiko geringer.

23
Q

Warum werden hohe Kosten einer Neuentwicklung in Kauf genommen?

A

Um neue Funktionen zu berücksichtigen

24
Q

Wann ist es sinnvoll Legacy-Systeme neu zu implementieren?

Bsp

A

Um Wartbarkeit bestehender Systeme zu verbessern

Bsp. Neue Dokumentationen, neue Architektur, andere Programmiersprache

25
Q

Ändert sich die Funktionalität bei Software Reengineering

A

Nein

26
Q

Strategie zur Weiterentwicklung von Legacy-Systemen (Unter welchen umständen soll was mit einem System passieren?)

A
  1. Geschäftsprozess seit Einführung zu sehr geändert dass kaum noch vom System abhängen = System komplett abschalten
  2. Weitere Wartungen mit vertretbaren Kosten = im betrieb bleiben und regelmäßig gewartet
  3. System nach viel Anpassung und Änderung unstrukturiert und schlecht wartbar, aber für wichtige Geschäftsprozesse gebraucht = Software Reengineering in Betracht ziehen
  4. Funktionalität eines Systems noch gebraucht, Funktionen im großen Umfang geändert oder erweitert werden oder mit vielen neuen Schnittstellen an neue Infrastruktur angepasst werden muss = ganz oder teilweise durch neues System ersetzt