Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Universität Stuttgart Institut für Kernenergetik und Energiesysteme Attribute guter Software Software sollte dem Benutzer die geforderte Funktionalität.

Ähnliche Präsentationen


Präsentation zum Thema: "Universität Stuttgart Institut für Kernenergetik und Energiesysteme Attribute guter Software Software sollte dem Benutzer die geforderte Funktionalität."—  Präsentation transkript:

1 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Attribute guter Software Software sollte dem Benutzer die geforderte Funktionalität (Korrektheit) effizient liefern, sowie wartbar, zuverlässig und benutzbar sein. Wartbarkeit Software muss gewartet werden können, um den Änderungsbedarf zu erfüllen. Zuverlässigkeit Software muss vertrauenswürdig sein, d.h. auch im Fehlerfall sinnvoll reagieren. Effizienz Software sollte keine Systemressourcen verschwenden. Benutzbarkeit Software sollte für den Benutzer, für den sie entworfen wurde, leicht einsetzbar sein. Das erfordert eine anwendungsspezifische Oberfläche, die ein Benutzer erlernen, bedienen und verstehen kann.

2 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Korrektheit von Software Ein Softwaresystem ist (funktional) korrekt, wenn es sich genauso verhält, wie es in der Anforderungsdefinition festgelegt wurde. Problem Anforderungsdefiniton erfüllt Softwaresystem korrekt Großes Problem: Anforderungsdefinitionen sind häufig informal und eigentlich nie ganz widerspruchsfrei und vollständig.Dann kann häufig nur ein iteratives Vorgehen auf Basis agiler Programmierung zum Erfolg führen. Die Korrektheit einer Software wird dem Auftraggeber im Abnahmetest nachgewiesen

3 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Wartbarkeit von Software Softwarewartung = Änderungen an der Software aufgrund von Fehlern oder geänderten Anforderungen. Gut wartbare Software ist leicht korrigierbar, modifizierbar und erweiterbar. Wartbarkeit wird unterstützt durch: gute Systemstruktur (Modularisierung der Software) gute Dokumentation kontrollierte Änderungsprozeduren Achtung: Jede Wartung reduziert die Wartbarkeit, solange bis die Software nicht mehr änderbar ist (Gesetz der zunehmenden Entropie).

4 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Zuverlässigkeit von Software Zuverlässige Software funktioniert meistens. Zuverlässigkeit ist also ein Maß für die Wahrscheinlichkeit, dass ein Softwaresystem sich in einem bestimmten Zeitraum so verhält, wie es von ihm erwartet wird. Korrekte Software = 100 % zuverlässige Software: Vertrauenswürdige Software = nahezu zuverlässige Software robuste Software funktioniert auch bei unvorhergesehener Eingabe Eingabe Programm Eingaben, die einen Fehler bewirken Ausgaben, die einen Fehler bewirken

5 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Metriken für Bewertung der Zuverlässigkeit 1.rate of failure occurrence (ROFOC): Häufigkeit von nicht erwartetem Verhalten, z.B. 2 Fehler pro 100 operationellen Zeiteinheiten 2. mean time to failure (MTTF): mittlerer Zeitabstand zwischen zwei Fehlern 3. availability: mittlere Verfügbarkeit der Software, z.B. 998 von 1000 Zeiteinheiten war das System benutzbar. Beispiele für (un-)zuverlässige Software: Zuverlässige Software: Ein Textverarbeitungssystem, das manchmal Schmierzeichen auf den Bildschirm schreibt (beim Erstellen der vorigen Folie passiert). Unzuverlässige Software: Textverarbeitung oder Email-System, das dateisystemzerstörenden Viren Tür und Tor öffnet.

6 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Vertrauenswürdige Software Vertrauenswürdige Software verursacht (auch) im Fehlerfall keine Katastrophen: inkorrekte Software kann vertrauenswürdig sein (z.B. wenn die Software per se keinen wirklichen Schaden anrichten kann) korrekte Software muss nicht vertrauenswürdig sein (Fehler in Anforderungsdefinition) Beispiele (nicht) vertrauenswürdiger Software: Joystick-Steuerung in Spielconsole: Von Natur aus vertrauenswürdig Joystick-Steuerung im Los Alamos National Laboratory: Am 26. Februar 1998 führte die Fehlfunktion einer Joystick-Steuerung dazu, dass sich zwei Uranstücke nicht langsam, sondern mit maximaler Geschwindigkeit aufeinander zubewegten. Der Operator drückte rechtzeitig einen Notausknopf (angeblich war die Summe der Massen unterkritisch). [ACM SIGSOFT Software Engineering Notes, vol. 23, no. 4 (1998), S. 21]

7 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Robuste Software Ein Softwaresystem ist robust, wenn es auch unter unvorhergesehenen Umständen funktioniert bzw. vernünftig reagiert. Nicht erwartete Daten Erwartete Eingabedaten Programm So wenige wie möglich Anmerkung: Auch der Softwareentwicklungsprozess sollte robust sein, z.B. gegen Ausfall von Mitarbeitern unvermeidlicher Hardware-/Betriebssystemwechsel

8 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Beispiele für unvorhergesehene Umstände Falsche Benutzereingaben das Dateisystem ist voll die Platte gibt ihren Geist auf Stromausfall Maßnahmen zur Software-Härtung: Sicherheitsabfragen und Plausibilitätsprüfungen vernünftiges Exception-Handling-Konzept (für range checks etc.) Ansteuern sicherer Systemzustände bei entdeckten Fehlerfällen Backups von Daten, Undo-Möglichkeiten für Anwender Softwareredundanzen (verschiedene Realisierungen eines Teilsystems)

9 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Effiziente Software Effiziente Software nutzt Hardware-Ressourcen (hinreichend) ökonomisch. Benötigte Ressourcen: Rechenzeit Speicherbedarf trade-off Wie ermittelt man Effizienz: theoretische Komplexitätsanalyse (0-von-Rechnungen) Simulationsmodelle Messungen am realen System (profiling,...)

10 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Effizienz des Software-Erstellungsprozesses Effiziente Softwareherstellung = produktive Softwareherstellung, also mit möglichst wenig Mitarbeitern in möglichst kurzer Zeit möglichst gute Software herstellen. Problem: Produktionszeit Softwarequalität trade-off(Softwareeffizienz) Lösung: Wiederverwendung von Softwarekomponenten, Vorgehensweise,... Einsatz von sehr hohen Programmiersprachen, Generatoren,... Wie misst man Produktivität: in keinem Fall durch LOC = Lines of Code

11 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Benutzerfreundlichkeit von Software Benutzerfreundliche Software kann von Menschen leicht erlernt und leicht benutzt werden. Benutzerkategorien: Anfänger: Menüs, Tutorial, Online-Hilfe,... Gelegenheitsbenutzer: Online-Hilfe, Control-Keys für häufige Kommandos,... Experte: Control-Keys für alle Kommandos, Konfigurationsmöglichkeiten,... Wichtige Aspekte: Standardisierung von Benutzeroberflächen (look-and-feel) Forschungsgebiet Softwareergonomie (Menü mit nicht mehr als 7 Einträgen) Software muss robust und effizient sein

12 Universität Stuttgart Institut für Kernenergetik und Energiesysteme Wiederverwendbarkeit Wiederverwendbare Software kann leicht für neue Anwendungen verwendet werden: Man träumt vom Zusammenstecken von Software aus vorgefertigten Komponenten. Klassische Beispiele: Softwarebibliotheken (für numerische Routinen, Fenstersysteme,...) Standardsoftware (für Finanzbuchhaltung, Datenbanksysteme,...) Software-Architekturrahmenwerke (für grafische Editoren,...) Programmiersprachenkonzepte für Wiederverwendung: Funktionale Abstraktion, Modularisierung,... Generik (Instantiierung von Paketen für verschiedene Zwecke) Vererbung (Wiederverwendung geerbten Codes) Polymorphie (Operation ist auf Daten unterschiedlicher Typen anwendbar)


Herunterladen ppt "Universität Stuttgart Institut für Kernenergetik und Energiesysteme Attribute guter Software Software sollte dem Benutzer die geforderte Funktionalität."

Ähnliche Präsentationen


Google-Anzeigen