Kurs:Wirtschaftsinformatik SS09/SE1/Lernskript/Eigenschaften

Aus Wikiversity

Unterschied zwischen internen und externen Eigenschaften von Software[Bearbeiten]

  • Extern: Fokus des Systemnutzers (für Systemnutzer ausgelegt)
  • Intern: Dienen zum Erreichen externer Eigenschaften (für Entwickler bedeutend)
  • Prozesseigenschaften

bestimmen die Qualität der Produkteigenschaften

  • Produkteigenschaften

häufig Beseitigung schlechter Qualität durch Nachbesserung, besser wäre Ursache für schlechte Qualität herauszufinden und entsprechende Prozessverbesserungen durchzufüh- ren

  • Qualitätseigenschaften = Qualität des Produktes
  • Prozesseigenschaften = bestimmen Produkteigenschaften

Qualitätseigenschaften[Bearbeiten]

  • Korrektheit:
Übereinstimmung des Programms mit funktionaler Spezifikation.
wenn diese nicht vorhanden ist, dann Rückgriff auf andere Methoden wie Testen oder Reviews
  • Zuverlässigkeit:
dauerhafte Einsetzbarkeit (statistische Aussage über Verhalten), relatives Kriterium
da Einsatzzweck und Schadenspotential des Fehlers Einfluss auf Zuverlässigkeit haben; mangelnde Zuverlässigkeit wird oft noch toleriert
  • Robustheit:
Toleranz gegenüber nicht spezifischer Bedienung/ Rahmenbedingungen, auch nicht robuste Software kann korrekt sein
Nicht – Robustheit liegt oft an mangelnden Anforderungsdefinitionen
nicht robuste Software kann leicht nutzlos werden, des-

halb sollten wesentliche Rahmenbedingungen und Fehlerbehandlungen spezifiziert werden)

  • Performanz:
Erfüllung der Anforderungen an Antwortzeitverhalten / ökonomischen Umgang mit Ressourcen am besten vorher mit Prototyp überprüfen, sonst meist Redesign notwendig
frühzeitiges Testen an Prototypen verhindert später komplettes Redesign
  • Benutzungsfreundlichkeit(extern):
intuitiver Aufbau und Ablauf, fehlerrobuste Bedienung, einfache Konfigurierbarkeit (Anfänger/Experte)
Gestaltung der Dialoge, einfache Konfigurierbarkeit des Interfaces, intuitiver Aufbau und Ablauf, einheitliches Look&Feel
  • Wartbarkeit(intern):
Möglichkeit nach Auslieferung, Anpassungen, Änderungen, Weiterentwicklungen durchzuführen hängt stark von Strukturierung / Architektur ab
nimmt meist mit der Lebensdauer der Software ab
  • Korrektive Wartung: Beseitigung von Fehlern
  • Adaptive Wartung: nachträgliche Anpassung an geänderte Rahmenbedingungen (gesetzliche Änderungen, neue Organisation)
  • Perfektive Wartung: Verbesserung von nicht-funktionalen Anforderungen (Performanz,

Ergonomie)

  • Enhansive Wartung: Hinzufügen von Funktionalität
  • Wiederverwendbarkeit:
Einsatzfähigkeit der Software in einem anderen Kontext (oft komponentenbezogen), muss

geplant werden (parametrisierbare Datenstrukturen, Klassenbibliotheken, Plattformen, Pro- duktlinien)

  • Software-Produktlinien: Im Entwicklungsprozess werden die Kernfunktionalität und die

Variabilität festgelegt, im Produktionsprozess werden die Kernfunktionalitäten dann wie- derverwendet

  • Portierbarkeit:

= Aufwand der nötig ist um Software auf anderer Plattform lauffähig zu machen (SW & HW) Aufwand (im Verhältnis zum Entwicklungsaufwand), der nötig ist, um eine Software auf einer anderen Plattform lauffähig zu machen; hoher Grad an Portierbarkeit durch Kapselung von Plattformabhängigkeiten sowie durch Berücksichtigung von Standards (z.B. Design Patterns)

  • Interoperabilität:

Maß für die Fähigkeit eines Systems, mit anderen Systemen zu kooperieren (PC- Werkzeuge sind meist interoperabel, hochintegrierte Software-Systeme sind es meist weni- ger)

  • Plattform Integration: transparente Verteilung der Software auf verschiedene Systeme
  • Presentation Integration: einheitliches Look&Feel
  • Data Integration: XML als Datenaustauschformat
  • Control Integration: Benachrichtigung eines Werkzeugs über externe Ereignisse
  • Process Integration: Werkzeuge verhalten sich dem Prozess entsprechend (instanziieren

ihn)

Interoperabilität wird immer mehr zu einem MUSS
z.B.: Interoperabilität mit Microsoftprodukten (insbes. Office)

Wartungsarten[Bearbeiten]

  • adaptiv: Änderungen von Rahmenbedingungen (Gesetz/ Hardware/ …)
  • perfektiv: Verbesserung nicht – funktionaler Eigenschaften (oft Performanz)
  • korrektiv: Beseitigung von Fehlern
  • enhansiv: Hinzufügen neuer Funktionalitäten

Möglichkeiten um Qualität zu erreichen[Bearbeiten]

  • Nachbesserung: Qualitätsmängel werden im Nachhinein beseitigt
  • Prozessverbesserung: Ein Prozess wird neu strukturiert um Qualitätsmängel von Grund auf zu beheben

Nenne konkurrierende, harmonierende & orthogonale Software-Eigenschaften[Bearbeiten]

Zwei Eigenschaften die a) Konkurrieren, b) harmonieren, c) voneinander unabhängig sind

  • a) Performanz ↔ Portierbarkeit: um möglichst gute Antwortzeiten zu erreichen muss

die Software systemspezifisch programmiert werden, Möglichkeit der Portierbarkeit entfällt

  • b) Robustheit ↔ Zuverlässigkeit: Zuverlässigkeit ist durch Robustheit gewährleistet
  • c) Performanz ↔ Benutzungsfreundlichkeit: Ein System kann über hohe Performanz

verfügen und gleichzeitig Benutzungsfreundlich sein, es kann aber auch nicht benutzungsfreundlich sein