können wir dem rechner vertrauen (kapitel 4) ? seminar softwaretechnik ss04 referent: patrick...
TRANSCRIPT
Können wir dem Rechner vertrauen (Kapitel 4) ?Seminar Softwaretechnik SS04Referent: Patrick MukherjeeMatr.Nr.: 181978Veranstalter: Jähnichen, Bittner, Koch, Kuzmanovski
A Gift of Fire
Überblick
Was kann schief gehen? Zuverlässigkeit und Sicherheit Systemfehler, Abhängigkeit, Risiko
und Fortschritt neu betrachtet Modelle und Simulationen
Was kann schief gehen?
„Softwarefehler verursacht Strahlungsüberdosis“
„Finanzamtcomputer verschickt Mahnungen über $68 Milliarden“
„Roboter tötet Arbeiter“ „Mann fünf mal wegen falscher Daten im FBI
Computer verhaftet“ „Hightech Gepäck System 'isst' Koffer“
Fakten über Computerfehler
Fehlerfreie Software ist fast unmöglich.
Oft führen mehr als ein Faktor zu Fehler.
Fehler vermeidbar durch Befolgung erprobter Verfahrensweisen und Techniken.
Was kann schief gehen?
Verursacher von Computerproblemen: Anwender (Zu hause oder auf der Arbeit)
Unkenntnis der Grenzen der Rechner. Kein angemessenes Training. Verantwortungsloser Umgang.
Fachleute Unkenntnis von Fehlerursachen & Konsequenzen
Einkauf, Entwicklung oder administrieren komplexer Systeme.
Führungspersonal Unverständnis der Risiken bei Entscheidungen
Persönlichen, politischen, sozialen & ethischen.
Was kann schief gehen?
Fehlerkategorien
Probleme von Individuen:Sind meistens Benutzer, Konsumenten.Einzelschicksale.
Systemausfälle:Betreffen eine große Gruppe von Personen.Kosten sehr viel Geld.
Sicherheitskritische Anwendungen:Fehler können Personen verletzen/töten.
Was kann schief gehen?
Fehlerkategorien: Persönliche Probleme Abrechnungsfehler. Unkorrekte, unvollständige Datenbankeinträge.
Privacy Journal schätzt 25% fehlerhafte Krediteinträge. ca.11% der Haftbefehle des FBI in 80ern ungültig.
Leicht Erkennbar: häufig auftretende Berechnungsfehler.
Schwer: Datenfehler (falsche Einträge).
Datenfehler treten auch ohne Rechner auf.
Was kann schief gehen?
Fehlerkategorien: Persönliche Probleme: Gründe Große Bevölkerung. Fehler in Dateneinträgen. Information nicht aktuell. Fehlende Verantwortlichkeit für Fehler. Zu hohes Vertrauen in Daten. Kein gesunder Menschenverstand bei
automatischen Prozessen (matching).
Was kann schief gehen?
Fehlerkategorien: Systemausfälle
Kommunikationssysteme:Rundfunk und persönliche Kommunikation.
Transportsysteme:Organisation von Buchungen und Gepäck.
Handel:Lagerverwaltungssoftware.
Wirtschaft:Banken, Aktienhandel, etc..
Was kann schief gehen?
Fehlerkategorien: Systemausfälle: Gründe Zu wenig Zeit für Testen und Fehlersuche. Erhebliche Änderungen in der Spezifikation
(nach Projektstart). Zu großes Vertrauen in das System. Schlechte Projektleitung.
Fehler auch in anderen Systemkomponenten Oft erst durch zusammenwirken
Was kann schief gehen?
Fehlerkategorien: Sicherheitskritische Anwendungen Sicherheitskritische Anwendungen:
Militär, Kraftwerken, Flugzeugen, Zügen, autom.Fabriken, medizinischen Apparaten, …
Fehler führen schnell zum Tod. meiste Todesfälle in Luftfahrt und Medizin.
Wie sehr darf man sich auf Rechner verlassen? Wie weit darf die Kontrolle gehen?
Was kann schief gehen?
Fehlerkategorien: Sich.krit. Anwendungen: Gründe
Zu hohes Vertrauen in das System. Fehlende Eingriffsmöglichkeiten. Unzureichende Testphase. Zu hohe Komplexität des Systems. Schlechtes Projektmanagement.
Was kann schief gehen?
Zuverlässigkeit und Sicherheit
Kleiner Tippfehler -> große Auswirkungen. Fehlerquellen in jeder Ebene:
von Design und Implementierung bis zu Systemmanagment und Benutzung).
Computer fallen aus weil:Die Aufgabe inhärent kompliziert ist.Sie schlecht erledigt wird.
Entwickler und Anwender zu sehr auf das System vertrauen.
Häufigste Fehlerquellen
Interaktion mit realen Geräten nicht wie erwartet Inkompatibilität zwischen Software und Hardware
oder Betriebssystem. Unaufmerksamkeit für potentielle Sicherheitsrisiken. Keine Berücksichtigung unerwarteter Eingaben. Nicht genügend Tests. Wiederverwendung von Software aus anderen
Systemen ohne angemessene Nachprüfung. Falsche Darstellung; verstecken von Problemen. ungenügendes reagieren auf gemeldete Fehler.
Zuverlässigkeit und Sicherheit
Probleme im Umgang mit dem System: Dateneingabefehler. Unzureichend geschulte Benutzer. Fehlinterpretierte Resultate/Ausgaben. Benutzer vertraut der Software zu sehr. Ungenügende Ausfallvorsorge; keine
Backupsysteme oder -prozeduren.
Zuverlässigkeit und Sicherheit
Wiederverwendete Software
Erhöht oder verringert Sicherheit?
Code lief in realen System fehlerfrei. Unerwartete Zustände in neuer Umgebung
ursprüngliche und neue Spezifikation untersuchen und neu testen.
Zuverlässigkeit und Sicherheit
Professionelle Techniken
Befolge bewährte Softwaretechniken in jeder Entwicklungsphase.
Konstruiere gut designte Benutzerschnittstelle.
Rechne mit dem ‘Menschlichen Faktor’. Baue Redundanz ein. Integriere Selbstests an geeigneten Stellen.
Zuverlässigkeit und Sicherheit
Gesetze und Vorschriften
Fördern Verantwortungsbewusstsein. Minimum an Qualität garantieren. Benutzer vor Schäden bewahren. Verursachte Schäden ausgleichen.
Verteuern das Produkt. Vorschriften sind schwer zu entwerfen. Gesetzeslage (besonders in den U.S.A) nicht
eindeutig.
Zuverlässigkeit und Sicherheit
Selbstregulierung
Kulanz durch wirtschaftlichen Druck (guter Ruf): Kunden nicht verärgern, bestmögliche Produkte.
Versicherungsgesellschaften: untersuchen Produkt wegen Versicherungsrisiko. schlechtes Produkt muss Schäden tragen.
Qualität eines Produktes vor Kauf erkennenbar? Massenp.: Erfahrungsberichte (Medien, Web). spezielle P.: s.o. oder Ruf der Firma verlassen,
evt. früheres Produkt begutachten.
Zuverlässigkeit und Sicherheit
Systemfehler, Abhängigkeit, Risiko und Fortschritt neu betrachtet Wie niedrig ist eine akzeptable Fehlerrate?
Wie hoch ist die Fehlerrate ohne Computer? Fehler besser korrigieren als Quelle suchen.
Wie viel Kontrolle?Rechnerunterstützung in Flugzeugen (‚ABS‘).Pilotenfehler ausgeschaltet, neue entstanden.70-80 sank Todesrate v. 0,8/100.000 auf 0,4.1990ern Abstürze um 85% gesunken
Abhängigkeit
Abhängig oder dran gewöhnt? Abhängiger als von Elektrizität? Computer sind flexibel, deshalb verbreitet. Werkzeuge vereinfachen Arbeit.
Systemfehler, Abhängigkeit, Risiko und Fortschritt
Risiko und Fortschritt
Je größer Werkzeuge werden, desto fehleranfälliger und gefährlicher.
Risiko ist bestandteil des Lebens.
Entwicklungen entstehen oft aus Zwischenfällen.
Computertech. entwickelt sich rasant. Computer können Entscheidungen treffen.
Systemfehler, Abhängigkeit, Risiko und Fortschritt
Beobachtungen
Ähnliche Sicherheitsthemen auch in anderen Technologiebereichen.
Perfektion ist keine Option. 'Lernkurve' bei neuen Technologien. Risiko mit nicht computerisierte
Alternativen vergleichen.
Systemfehler, Abhängigkeit, Risiko und Fortschritt
Modelle und Simulationen
Helfen mit wenig Kosten Entscheidungen zu treffen.
Models sind Vereinfachungen realer Systeme.
Modelle unterscheiden sich in der Qualität. Entwickler müssen ehrlich und genau
bezüglich der Resultate sein.
Weshalb Modelle ungenau sind
Verzerrung der Ergebnisse aus politischen oder wirtschaftlichen Gründen.
Nicht komplettes Wissen über das modellierte System.
Daten sind lückenhaft oder unvollständig. Rechenkraft ist für alle Berechnungen nicht
ausreichend. Einige Variablen sind schwer in Werte zu fassen
Modelle und Simulationen
Güte eines Modelles einschätzen
Wie gut erforscht sind: Wissenschaften oder Theorien? relevante Materialeigenschaften?
Wie genau und komplett sind die Daten? Wo wurden Vereinfachung und Annahmen
getroffen? Wie nah sind Ergebnisse an realen Tests?
Simulationen ersetzen keine realen Sicherheitstests!
Modelle und Simulationen
Fazit
Nur durch genaue Kenntnis des Systems können wir Risiken einschätzen.
Es gibt keine risikolosen Systeme. Man sollte nicht zu sehr in Software
vertrauen. Alternativen sind oft riskanter und
unproduktiver.