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

Slides:



Advertisements
Ähnliche Präsentationen
Benutzerorientierte Designprinzipien für die Microsoft-Guidelines
Advertisements

Lexikon der Qualität Begriffe in Verbindung mit Qualität und ISO9000 finden sie auch im Lexikon der Qualität erläutert (
Prüfung objektorientierter Programme -1
Qualität „Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Tätigkeit, die sich auf deren Eignung zur Erfüllung gegebener.
Integrations- und Funktionstests im Rahmen des V-Modelles
Submodell Softwareentwicklung (SE)
Das V - Modell - Überblick
V - Modell Anwendung auf große Projekte
Phasen und ihre Workflows
Prüfungspläne Bachelor-Thesis
Designing Software for Ease of Extension and Contraction
Das „Vorgehensmodell“
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Passwörter.
Dynamische Testverfahren
LE LM 8 - LO 3 Prozessnormen und Normen zu QM-Systemen
Prozessqualität und Produktqualität
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Prüfung von Simulationsprogrammen – Integrations- und Funktionstests Inhalt Vom Einzeltest.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Der Rational Unified Process - Einführung Inhalt Prozessmodelle Der Rational Unified.
Software „Unter Software versteht man die Gesamtheit oder auch einen Teil der Programme für Rechensysteme. Diese Programme ermöglichen zusammen mit den.
Fehler und ihre Kosten Inhalt Software und ihre Fehler
Prozessqualität und Produktqualität
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.2- LM 8 - LO 9 Definitionen zu LM 8.
Erfahrungen aus Tests komplexer Systeme
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Einzeltests im Rahmen des V-Modelles Aufgaben Überprüfung des Programmcodes mit Hilfe.
Risiken und Chancen Risiko Beurteilung: Dazu gehört die Identifikationen von Risiken, ihre Analyse und das Ordnen nach Prioritäten. Risiko Kontrolle: Dazu.
Funktionalität Vorhandensein vor Funktionen mit festgelegten Eigenschaften. Diese Funktionen erfüllen die definierten Anforderungen. Richtigkeit - Liefern.
Schulung der Mitarbeiter
Was ist Qualität ? Qualität von Produkten oder Dienstleistungen ist das Gesamtergebnis aller Aktivitäten in jeder Phase des gesamten Leistungsprozesses.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Beispiel 2: Iterative-Inkrementelle Vorgehensmodelle Annahmen: Anforderungen sind unvollständig.
Prozessmodelle als Teil des Management-Prozesses
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Links Links sind im Text angegeben. Weitere Links werden kontinuierlich eingefügt.
Testgetriebene Entwicklung
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE LM 9 - LO2 Prozessmodell und Management.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme System- und Abnahmetests Inhalt Testen des Systems unter Mitwirkung des Auftraggebers.
Es gibt viele Arten von Risiken
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
Prozessmodelle Inhalt Prozessmodell im Management Prozess
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Qualität von Software Qualität ist nicht messbar, sondern nur über die Erfüllung von Anforderungen zu definieren Die Erfüllung von Anforderungen ist oft.
Das V - Modell - Überblick
Universität Stuttgart Institut für Kernenergetik und Energiesysteme MuSofT LE 3.1-4V - Modell Überblick V-Modell Regelungen, die die Gesamtheit aller Aktivitäten,
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 5 V-Modell-AnwendungenFolie 1 V-Modell für große Projekte.
Vorlesung: 1 Betriebssysteme 2007 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebssysteme Hochverfügbarkeit (Einführung) 3. Quartal.
Vorlesung: 1 Betriebssysteme 2008 Prof. Dr. G. Hellberg Studiengang Mechatronik FHDW Vorlesung: Betriebssysteme Hochverfügbarkeit (Einführung) 2. Quartal.
Rational Unified Process (RUP) - Definitionen
Entwicklung von Benutzerschnittstellen
Software-Engineering
Portierung von Java nach C
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
IBM Workplace Forms - In Kürze © 2007 IBM Corporation XML basierte elektronische Formulare: Effizienzsteigerung und Kostenreduktion durch Automatisierung.
Simulation komplexer technischer Anlagen
Vorgehensmodelle: Schwergewichtige Modelle
Software Engineering WS 2009
Spezifikation von Anforderungen
Das Pflichtenheft Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth
Hardware / Software Codesign Hardware versus Software.
Definitionen der SWT (1)
Wasserfallmodell und Einzelbegriffe
EPROG Tutorium #4 Philipp Effenberger
WIR LÖSEN DAS PROBLEM FÜR SIE
Software Engineering Grundlagen
Technik schädlicher Software
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
The Interlisp programming environment Serife Sancar – December.2004.
 Präsentation transkript:

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.

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

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).

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

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 -System, das dateisystemzerstörenden Viren Tür und Tor öffnet.

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]

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

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)

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,...)

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

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

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)