Vorlesung Informatik 2 Teil 4: Rechnerarchitektur und Parallelverarbeitung Qualitätsbegriffe Stand 6.3.2008 Inhalt Einleitung Qualitätsbegriffe technischer Systeme Qualitätsbegriffe in Softwaresystemen Slide 1
Einleitung "Kritikalität" Das Versagen von Funktionen eines eingebetteten Systems kann zu schweren Unfällen mit Toten, Verletzten und hohen Sachschäden führen An die Qualität (insbesondere: Zuverlässigkeit und Sicherheit) solcher Systeme werden daher unabhängig von der technischen Realisierung hohe Anforderungen gestellt Die Anzahl eingebetteter Systeme nimmt rapide zu; bspw. im Automobilbereich, wo neuerdings eine ganze Anzahl an sogenannten Assistenzsystemen entwickelt werden, die eigenständig (unter Umgehung des Fahrers) die Aktionsdurchführung übernehmen: Situationsanalyse Anzeige von Tankfüllung, Geschwindigkeit, Motorund Außentemperatur, Situationsbewertung Glatteiswarnung, Abstandswarnung, Aktionsempfehlung Navigationssystem, Aktionsdurchführung Beschleunigungs- und Bremseingriff bei Adaptive-Cruise-Control-System, und sogar Lenkeingriff bei Active- Front-Steering-System Slide 2 Einleitung Zuverlässigkeit, Sicherheit, aber auch die Überwachung und Diagnose von eingebetteten Systemen in einer wachsenden Anzahl von Einsatzgebieten gewinnen also an Bedeutung Insbesondere bei der Auslegung immer stärker vernetzter Systeme (siehe Bild nächste Folie) muss die Vorhersagbarkeit des Echtzeitverhaltens gewährleistet und das Ausfall- und Störungsverhalten von Subsystemen genau untersucht werden Die rasche Erkennung von Fehlern, Ausfällen und Störungen ist eine wichtige Anforderung beim Entwurf vernetzter Systeme geworden Slide 3
Einleitung Beispiel für ein vernetztes System: das Steuergeräte- Netzwerk der BMW 7er Reihe Slide 4 Inhalt Einleitung Qualitätsbegriffe technischer Systeme Qualitätsbegriffe in Softwaresystemen Slide 5
Zuverlässigkeit (reliability) [DIN 40041] bezeichnet die Gesamtheit derjenigen Eigenschaften einer Betrachtungseinheit, welche sich auf die Eignung zur Erfüllung gegebener Erfordernisse unter vorgegebenen Bedingungen für ein gegebenes Zeitintervall beziehen. Slide 6 Verfügbarkeit (availability) [DIN 40042] ist die Wahrscheinlichkeit, ein System zu einem vorgegebenen Zeitpunkt in einem funktionsfähigen Zustand anzutreffen. Slide 7 Die Verfügbarkeit eines Systems aus N Betrachtungseinheiten wird statistisch beschrieben: Mean Time To Failure (MTTF) mittlere ausfallfreie Arbeitszeit MTTF = Mean Time To Repair (MTTR) mittlere Ausfallzeit MTTR = 1 lim N N lim N 1 N N i= 1 N i= 1 mittlere Verfügbarkeit: mittlere Betriebszeit V = = Gesamtzeit T T i Ai mit T i = ausfallfreie Arbeitszeit der Betrachtungseinheit i mit T Ai = Ausfallzeit der Betrachtungseinheit i MTTF MTTF + MTTR = Ziel: MTTR << MMTF! 1 1 MTTR + MTTF
Eine hohe Verfügbarkeit kann erreicht werden durch Perfektion (Einsatz hochgradig zuverlässiger Komponenten) ausfalltolerante Systemarchitektur (z.b. redundante Auslegung, Verhinderung der Fehlerausbreitung, ) kurze Ausfall/Reparaturzeit schnelle und zuverlässige Fehlerdiagnose z.b. durch Diagnoseunterstützung durch einfach zu analysierende Systemarchitektur schnelle und zuverlässige Fehlerbeseitigung durch einfach mögliche Reparatur Aktuelles Beispiel: Ausbau der Kühlerverblendung zum Wechsel der Lampe in einem KFZ Scheinwerfer Slide 8 Sicherheit (safety) [DIN 31000] ist eine Sachlage, bei der das Risiko nicht größer als das Grenzrisiko ist. Als Grenzrisiko ist dabei das größte, noch vertretbare Risiko zu verstehen. Sicherheit Gefahr geringes Risiko Grenzrisiko großes Risiko Die Funktionsfähigkeit ist dabei unwichtig, sofern damit kein nicht vertretbares Risiko besteht. Ein System gilt also nur dann als sicher, wenn sowohl bei fehlerfreier als auch bei fehlerhafter Verarbeitung mit einem vernachlässigbaren Risiko zu rechnen ist. Maßnahmen zur Erhöhung der Sicherheit müssen die gefährliche Auswirkung von Fehlern, Ausfällen und Störungen wirksam verhindern Slide 9
Anmerkung: das deutsche Wort Sicherheit hat im Englischen zwei Übersetzungen mit klar unterscheidbarer Bedeutung: safety die Ungefährlichkeit eines Systems für seine Umgebung security die Sicherheit des Systems gegenüber Einbruch, unbefugter Manipulation, (Daten-) Verfälschung, durch Elemente in seiner Umgebung dieser Begriff wird durch das Aufkommen eingebetteter Rechner und deren zunehmender Vernetzung immer wichtiger Merksatz: Sicherheit unter Beachtung von Murphy(*) ist safety des Satans ist security Slide 10 (*) Capt. Edward A. Murphy, Edwards Air Force Base, 1949 Murphys Law: "if anything can go wrong it will". Slide 11 Weitere Begriffe aus dem Kontext Sicherheit: Schaden die nachteiligen Folgen von Fehlern, Ausfällen und Störungen Ein zum Schaden führendes Ereignis wird Unfall genannt Risiko wird oft definiert als Produkt aus Wahrscheinlichkeit des Eintretens eines zum Schaden führenden Ereignisses und dem bei Ereigniseintritt zu erwartenden Schadensausmaß. Oft wird Risiko auch alternativ als mehrdimensionale Größe dargestellt (z.b. bei Risiko-Management-Prozessen) als Liste von (gewichteten) Risikofaktoren Als Grenzrisiko wird das größte noch vertretbare Risiko bezeichnet; es ist oft nicht quantitativ zu erfassen Gefahr (hazard) ist eine Situation in der eine tatsächliche oder potentielle Bedrohung besteht, die zu einem Unfall mit Schäden führen kann. Bei Gefahr ist das Risiko größer als das Grenzrisiko Schutz ist die Verringerung des Risikos durch Maßnahmen, die entweder die Eintrittswahrscheinlichkeit oder das Ausmaß eines Schadens oder beides einschränken
Fehler (fault, defect) ist eine unzulässige Abweichung mindestens eines Merkmals einer Betrachtungseinheit. Der Fehler ist ein Zustand. Die unzulässige Abweichung ist der über den Toleranzbereich hinausgehende Unterschied zwischen Istwert und Sollwert des Merkmals. Ausfall (failure) ist ein nach Beanspruchungsbeginn entstandenes Aussetzen der Ausführung einer Aufgabe einer Betrachtungseinheit aufgrund einer in ihr selbst liegenden Ursache und im Rahmen der zulässigen Beanspruchung. Der Ausfall ist also die Verletzung der Funktionstüchtigkeit einer zuvor intakten Einheit. Der Ausfall ist ein Ereignis. Der Ausfall entsteht durch einen oder mehrere Fehler. Störung (malfunction) ist ein nach Beanspruchungsbeginn entstandener vorübergehender Ausfall. Eine Funktionsstörung ist die vorübergehende Unterbrechung oder Beeinträchtigung der Funktion. Beanspruchungsbeginn kann z.b. der Betriebsbeginn oder die Abnahmeprüfung sein. Slide 12 Ausfallrate Frühausfälle zufällige Ausfälle Verschleißausfälle Nutzungszeit Anmerkungen: Man unterscheidet verschiedene Arten von Ausfällen: nach Anzahl der Ausfälle Einzel-, Mehrfach-, Folgeausfälle nach Vorhersehbarkeit nicht vorhersehbar, statistisch unabhängig von Betriebszeit oder anderen Ausfällen systematische Ausfälle abhängig von bestimmten Einflussgrößen gehäuft auftretende Ausfälle wie Früh-, Spät- oder Verschleißausfälle deterministische Ausfälle für gegebene Bedingungen vorhersehbare Ausfälle nach Größe und Umfang der Beeinträchtigung oder nach dem zeitlichen Ausfallverhalten Sprung- oder Driftausfälle "Fehler" versus "Ausfall": Eine Glühbirne brennt durch. Es liegt ein Fehler vor. Ein Ausfall der Beleuchtungsfunktion ist damit aber erst verbunden, wenn die Beleuchtungsfunktion eingeschaltet wird. Slide 13
Inhalt Qualitätsbegriffe technischer Systeme Qualitätsbegriffe in Softwaresystemen Slide 14 Definitionen aus dem Bereich Software Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Tätigkeit, die sich auf deren Eignung zur Erfüllung gegebener Erfordernisse bezieht [DIN 55350, Teil 11 (folgt dem produkt- und prozessbezogenen Ansatz)] Software-Qualität ist die Gesamtheit der Merkmale und Merkmalswerte eines Software-Produkts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen. [DIN ISO 9126] Ein Qualitätsmerkmal ist ein Merkmal, das zur Unterscheidung von Produkten, Bausteinen oder Herstellungsprozessen in qualitativer (subjektiver) oder quantitativer (messbarer) Hinsicht herangezogen werden kann. [Hesse et al, Informatik Spektrum 7/1984, 200-213] Slide 15
Software-Qualitätsmerkmale nach DIN ISO 9126 Funktionalität Zuverlässigkeit Einsatz des Produkts Effizienz Benutzbarkeit Übertragbarkeit Übertragbarkeit des Produkts Änderbarkeit Änderbarkeit des Produkts [www.iso.org] Slide 16 Slide 17 Eigenschaften von Produkten, betreffend den Einsatz des Produkts Funktionalität Anforderungen sind vollständig und widerspruchsfrei beschrieben und sind vollständig umgesetzt Korrektheit (correctness) Ein Software-System ist korrekt, wenn die zugehörigen Anforderungen erfüllt sind Vorraussetzung: überprüfbare (also möglichst eindeutige) Spezifikation liegt vor Zuverlässigkeit (reliability) ein Software-System ist zuverlässig, falls es über definiertes Zeitintervall die Erwartungen des Benutzers erfüllt Zuverlässigkeit ist nur testbar Robustheit (robustness) ein Programm ist robust, wenn bei Eintritt unvorhergesehener (d.h. nicht spezifizierter) Ereignisse das Weiterarbeiten möglich ist Beispiele: Plattenprobleme, falsche Benutzereingaben Effizienz (performance, efficiency) ein System ist effizient, wenn vorgegebene Rechenkapazitäten ökonomisch genutzt werden Benutzbarkeit (usability) ein Software-System benutzungsfreundlich, wenn es von vorgesehenen Benutzern in vertretbarer Zeit erlernbar ist dieses Qualitätsmerkmal besitzt offenbar hochgradig subjektive Komponenten
Eigenschaften von Produkten, betreffend die Übertragbarkeit des Produkts Portabilität (portability) ein Software-System ist portabel, wenn es auf unterschiedlichen Ablaufumgebungen installierbar ist dies umfasst verschiedene Betriebssysteme Übersetzer Zielhardware Ausbaustufen eines Systems Wiederverwendbarkeit (reusability) ein Software-Produkt ist (gut) wiederverwendbar, falls es leicht in anderen Kontext integrierbar ist Slide 18 Eigenschaften von Produkten, betreffend deren Änderbarkeit Wartbarkeit (maintainability) Wartung bezieht sich auf alle Änderungen, die nach Auslieferung am Produkt gemacht werden müssen; verursacht z.b. durch Änderung der Anforderungen Änderung der Ablaufumgebung Fehlerbehebung Wartung zielt auf Erhalt der Einsatzfähigkeit (corrective maintenance) Verbesserung des Produktes (perfective maintenance) ein Software-Produkt ist gut wartbar, falls Änderungen an der Software leicht durchzuführen sind Testbarkeit (testability) ein Software-System ist gut testbar, wenn (nach Möglichkeit) für alle Anforderungen Testfälle konstruierbar und durchführbar sind Slide 19
Mit Hilfe eines Qualitätsmodells wird der allgemeine Qualitätsbegriff durch Ableiten von Unterbegriffen operationalisiert Nutzer-orientiert Qualität Qualitsmerkmal 1 (factor 1) Qualitsmerkmal 2 (factor 2)... Qualitsmerkmal n (factor n) Qualits- Teilmerkmal 1 (criterion 1) Qualits- Teilmerkmal 2 (criterion 2) Qualits- Teilmerkmal 3 (criterion 3)... Qualits- Teilmerkmal n (criterion n) SW-orientiert Qualitätsindikatoren (metrics) Slide 20 Beispiel der Operationalisierung für das Ziel "Wartbarkeit" (im Kontext objekt-orientierter Programmierung) Quelle: eine Projekt-web-site des Fraunhofer IESE: www.software-kompetenz.de Slide 21
~ Ausfall (Folie 12) ~ Fehler (Folie 12) Failures Abweichung des beobachteten Verhaltens eines Software- Systems vom erwarteten Verhalten Faults Der in der Software liegende Grund für failures Beispiele: Schnittstellen-Fehler, Initialisierungsfehler, Daten Fehler, Fehler im Kontrollfluss Errors Fehler (mistakes), die eine Person macht Beispiele: Falsche Verwendung einer Technik, mangelndes Verständnis des Prozesses, unvorsichtiges Verhalten, Tippfehler,... Defects = Oberbegriff für failure, fault und error Slide 22 Verhindern (z.b.: Training, CASE Werkzeuge) Isolieren Identifizieren (z.b.: Lesetechniken) Ursache finden (z.b.: Lesetechniken) Ursache finden (z.b.: Testen) bewirken bewirken errors faults failures Prinzipien, Methoden, Techniken, Werkzeuge zur Fehlervermeidung/Behebung ( Software Engineering) Slide 23