Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.

Ähnliche Präsentationen


Präsentation zum Thema: "Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer."—  Präsentation transkript:

1 Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut für offene Kommunikationssysteme FOKUS

2 Folie 2 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme andere Verifikationsverfahren was passiert hier?

3 Folie 3 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Statische Analyse aus Programmiersprachen bekannt  z.B. Java: Initialisierung von Variablen wird geprüft  int k; if (terminates(TMi,i)) k=0;... ???  Terminierung nicht garantiert; Abstraktion! was finden statische Analysatoren?  Range and Bounds Checker  Pointer and Storage Allocation  Race Conditions

4 Folie 4 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Statische Analyse: Compiler Typkorrektheit Initialisierung von Variablen Programmflussgraph  Unerreichbarer Code  Unveränderliche Felder  Konstante Terme und Bedingungen Feldgrenzenverletzung ? Nullzeiger-Dereferenzierung ? Synchronisationsfehler ?

5 Folie 5 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme statische Analysewerkzeuge Spezialwerkzeuge zur tiefergehenden Analyse  Lint (Splint, PCLint,…)  PolySpace Verifier  … Unterschiedliche Analysetiefe, unterschiedliche Ergebnisrate Problem: false positives

6 Folie 6 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Lint Grundidee  Programmierer annotiert das Programm  Lint prüft ob Annotationen erfüllt sind Einfache (schnelle!) Datenflussanalyse! Beispiel:

7 Folie 7 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Buffer Overflow Verantwortlich für viele Sicherheitslücken Annotation der Puffergröße in Splint

8 Folie 8 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Abstrakte Interpretation Wie beweist man solche Constraints?  Ausführung des Programms mit symbolischen Werten (bzw. „Mengen von Werten“)  Berechnung der möglichen Werte jeder Variablen an jeder Programmstelle („collecting semantics“) Was kann man daraus ableiten?  Initialisierungen, Überlauf, Division durch Null, Indexüberschreitung, …  Keine Aussage über Terminierung oder korrekte Funktionalität

9 Folie 9 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Beispiel {x  {2,4,6}} x=3*x+1 {x  {7,13,19}}

10 Folie 10 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme allgemeine Vorgehensweise ergibt ein (rekursives) Gleichungssystem Lösung als kleinster Fixpunkt

11 Folie 11 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Probleme Terminierung des Verfahrens ist nicht garantiert! (Limesbildung über transfinite Ordinalzahlen) Rechnen mit symbolischen Zustandsmengen  z.B. Menge der Quadratzahlen, symbolische Ausdrücke wie x 2 +3x+5 usw.  Gleichheit von beliebigen Mengenausdrücken unentscheidbar!

12 Folie 12 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Abstraktion Beispiel  x*y=z  (x mod n * y mod n ) mod n = z mod n „mod n“ ist eine Abstraktion, die einen unendlichen Wertebereich auf {0,1,...,n-1} abbildet um zu prüfen, ob eine Multiplikation korrekt ausgeführt wurde, kann man die Abstraktion prüfen  8*7=56  2 * 1 = (8 mod 3 * 7 mod 3 ) mod 3 = 56 mod 3  (8 mod 3 * 7 mod 3 ) mod 3  57 mod 3  8*7  57  aber: 8*7  65, obwohl (8 mod 3 * 7 mod 3 ) mod 3 = 65 mod 3 „false positives“: Der abstrakte Check findet keinen Fehler, obwohl noch einer enthalten ist (vgl. Test)

13 Folie 13 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme Abstraktion Datenabstraktion  x  x mod 3  x*y  ((x mod 3) * (y mod 3) mod 3) eigentlich Rechnen mit Mengen von Werten  konkreter Datenraum wird partitioniert in Mengen von Restklassen 0, 1, 2  konkrete Operationen werden abgebildet auf abstrakte; Rechnen mit Repräsentanten Eigenschaftserhaltung  C erfüllt P  A erfüllt P  A verletzt P  C verletzt P

14 Folie 14 H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme statische Analyse von Modellen Polyspace Verifier: Analyse des Codes, symbolische Berechnung möglicher Fehler  Rechenzeiten im Stunden- und Tagebereich  False Negatives müssen manuell betrachtet werden  Möglichkeit von False Positives Trotzdem massive Erhöhung der Sicherheit  Initialisierung, Zeigerkonsistenz, Nulldivision, Wertebereichs- und Indexüberläufe, Speicherlecks  unerreichbarer Code, Endlosschleifen und –rekursionen Teil von Simulink Verification & Validation


Herunterladen ppt "Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer."

Ähnliche Präsentationen


Google-Anzeigen