Kurs:Wirtschaftsinformatik SS09/SE1/Lernskript/Eigenschaften
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