ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-1

Σχετικά έγγραφα
ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-1

ΕΠΛ664 ΑΝΑΛΥΣΗ ΚΑΙ ΕΠΑΛΗΘΕΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Γραμμική Χρονική Λογική (Linear Temporal Logic) (ΗR Κεφάλαιο 3.1 και 3.2)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας

Λογική στην Πληροφορική - Εισαγωγή

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής

Τυπικές Μέθοδοι Ανάλυσης Συστημάτων: Ο Ελεγκτής Μοντέλων SPIN

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Ενότητα 1: Εισαγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Αυτοματοποιημένη Επαλήθευση

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Κατανεμημένα Συστήματα Ι

Α Typing System for Privacy

Διάλεξη 17: Έλεγχος Λογισμικού

BIM The new technology that reduces the cost and improves the quality of building construction

Blum Complexity. Αλγόριθμοι και Πολυπλοκότητα ΙΙ. Παναγιώτης Γροντάς. Δεκέμβριος

Ατομική Διπλωματική Εργασία ΈΛΕΓΧΟΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΤΗ ΧΡΗΣΗ ΜΟΝΤΕΛΩΝ : ΘΕΩΡΗΤΙΚΗ ΠΡΟΣΑΡΜΟΓΗ ΑΚΟΛΟΥΘΙΑΚΩΝ ΔΙΑΓΡΑΜΜΑΤΩΝ.

Ανάλυση της Ορθότητας Προγραμμάτων

Κωδικοποίηση και Έλεγχος Ορθότητας

οκιμασία και πλάνο δοκιμασίας

Αυτόματος έλεγχος μοντέλων με το εργαλείο SPIN : Εφαρμογή σε μοντέλο συγχρονισμού αντικειμενοστρεφούς λογισμικού

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΟΡΓΑΝΙΣΜΟΣ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΔΙΟΚΤΗΣΙΑΣ

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

CTL - Λογική Δένδρου Υπολογισμού

Βασικές Δομές μοντέλων Petri Nets. C.A. Petri

Χρόνος και Άλγεβρες Διεργασιών

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Ανάλυση & Μοντελοποίηση Επιχειρηματικών Συστημάτων & ιαδικασιών

Advanced Subsidiary Unit 1: Understanding and Written Response

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Θέματα στη Μοντελοποίηση Συστημάτων

Γραμμική και διακλαδωμένη χρονική λογική

κεφάλαιο Βασικές Έννοιες Επιστήμη των Υπολογιστών

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

Τεχνολογίες Υλοποίησης Αλγορίθµων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2690

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 1. Εισαγωγή. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

Προσομοίωση Βιομηχανικής Παραγωγής & Επιχειρήσεων

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Σειρά Προβλημάτων 1 Λύσεις

ΒΙΟΜΗΧΑΝΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Κεφάλαιο 4: Λογισμικό Συστήματος

Εντολές επιλογής Επαναλήψεις (if, switch, while)

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 8/11/07

Maude 6. Maude [1] UIUC J. Meseguer. Maude. Maude SRI SRI. Maude. AC (Associative-Commutative) Maude. Maude Meseguer OBJ LTL SPIN

Εισαγωγή Συμβόλαιο Μαθήματος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 1 : Σύνολα & Σχέσεις (1/2) Αλέξανδρος Τζάλλας

Ακολουθιακές εντολές. (Peter Ashenden, The Students Guide to VHDL)

Συλλογιστική εξαγωγής συμπερασμάτων από συγκεκριμένες υποθέσεις δοθείσα μεθοδολογία διαδικασία της σκέψης, πρέπει να «συλλογιστεί» υπόθεση/παραγωγή

Εισαγωγή στην πληροφορική

Πληροφορική. Μάθημα Κατεύθυνσης

ΕΠΙΧΕΙΡΗΣΙΑΚΗ EΡΕΥΝΑ & ΔΙΟΙΚΗΤΙΚΗ ΕΠΙΣΤΗΜΗ OPERATIONS RESEARCH & MANAGEMENT SCIENCE

Ανάλυση της Ορθότητας Προγραμμάτων

H ΒΑΣΙΣΜΕΝΗ ΣΤΟΝ Η.Υ. ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΤΗΣ ΚΙΝΗΣΗΣ ΩΣ ΕΡΓΑΛΕΙΟ ΚΑΤΑΝΟΗΣΗΣ ΤΩΝ ΓΡΑΦΙΚΩΝ ΠΑΡΑΣΤΑΣΕΩΝ ΣΤΗΝ ΚΙΝΗΜΑΤΙΚΗ

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΥΜΠΙΕΣΗ ΚΑΙ ΜΕΤΑΔΟΣΗ ΠΟΛΥΜΕΣΩΝ. Εισαγωγή. Κλήμης Νταλιάνης Λέκτορας ΠΔ 407/80

Εισαγωγή. Όλες οι (άλλες) επιστήµες µηχανικών βασίζονται σε σταθερό θεωρητικό (µαθηµατικό) υπόβαθρο

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Τυπικές Μέθοδοι στην Ανάπτυξη Συστηµάτων Λογισµικού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΕΙΣΑΓΩΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ: ΣΤΑΤΙΣΤΙΚΗΣ & ΑΝΑΛΟΓΙΣΤΙΚΩΝ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΩΝ ΜΑΘΗΜΑΤΙΚΩΝ

Σειρά Προβλημάτων 1 Λύσεις

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Προγραμματισμός Ι (HY120)

ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-1

ΠΡΟΔΙΑΓΡΑΦΕΣ - ΟΔΗΓΙΕΣ ΔΙΑΜΟΡΦΩΣΗΣ ΘΕΜΑΤΩΝ ΓΙΑ ΤΟ ΜΑΘΗΜΑ

Σειρά Προβλημάτων 1 Λύσεις

Σχεδίαση & Ανάλυση Αλγορίθμων

Υπολογίσιμες Συναρτήσεις

ΓΛΩΣΣΙΚΗ ΤΕΧΝΟΛΟΓΙΑ. Μάθημα 2 ο : Βασικές έννοιες. Γεώργιος Πετάσης. Ακαδημαϊκό Έτος:

ΜΕΤΑΒΑΤΙΚΕΣ ΠΡΟΫΠΟΘΕΣΕΙΣ ΑΠΟΚΤΗΣΗΣ ΠΤΥΧΙΟΥ

Εφαρμογές Προσομοίωσης

Ανοχή απέναντι σε Σφάλµατα Fault Tolerance

Έλεγχος Συστήματος. Επαλήθευση (verification) Έλεγχος και Εγκατάσταση Συστήματος. Επαλήθευση (verification)

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Βασικά Στοιχεία της Java

ΠΠΜ 512: Ανάλυση Κινδύνου για Πολιτικούς Μηχανικούς και Μηχανικούς Περιβάλλοντος

Άλγεβρες ιεργασιών και Τροπικές Λογικές

The Simply Typed Lambda Calculus

EM 361: Παράλληλοι Υπολογισμοί

CTL - Λογική Δένδρου Υπολογισμού (ΗR Κεφάλαιο 3.4)

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

ΓΕΩΜΕΣΡΙΚΗ ΣΕΚΜΗΡΙΩΗ ΣΟΤ ΙΕΡΟΤ ΝΑΟΤ ΣΟΤ ΣΙΜΙΟΤ ΣΑΤΡΟΤ ΣΟ ΠΕΛΕΝΔΡΙ ΣΗ ΚΤΠΡΟΤ ΜΕ ΕΦΑΡΜΟΓΗ ΑΤΣΟΜΑΣΟΠΟΙΗΜΕΝΟΤ ΤΣΗΜΑΣΟ ΨΗΦΙΑΚΗ ΦΩΣΟΓΡΑΜΜΕΣΡΙΑ

Σειρά Προβλημάτων 1 Λύσεις

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Διάλεξη 17: Έλεγχος Λογισµικού

Τεχνολογίες Υλοποίησης Αλγορίθµων

ECTS ΕΥΡΩΠΑΪΚΟ ΣΥΣΤΗΜΑ ΜΕΤΑΦΟΡΑΣ ΑΚΑΔΗΜΑΪΚΩΝ ΜΟΝΑΔΩΝ ΣΤΗΝ ΕΥΡΩΠΑΪΚΗ ΕΝΩΣΗ. (Α) Λίστα με τα στοιχεία των μαθημάτων στα ελληνικά

Εισαγωγικά. 1 η Εβδομάδα. Κάθε Τρίτη (17:00-20:00) και Τετάρτη (13:00 15:00) στην αίθουσα Ι5. 4 ώρες Θεωρία (ΤΡ : 1η-2η ώρα, ΤΕ : 1η-2η ώρα)

Διάγραμμα Μαθήματος. Σελίδα1 5

CWB-NC: The Concurrency Workbench of the New Century

LTL to Buchi. Overview. Buchi Model Checking LTL Translating LTL into Buchi. Ralf Huuck. Buchi Automata. Example

Προδιαγραφές Απαιτήσεων Επικύρωση Απαιτήσεων

Transcript:

Εισαγωγή Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Ο ρόλος της ανάλυσης και επαλήθευσης συστημάτων Τεχνικές ανάλυσης συστημάτων Στόχοι του μαθήματος ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-1

Διδασκαλία Διαλέξεις: Τρίτη, 1500 1800 Φροντιστήριο: Τρίτη, 1400 1500 Εργαστήριο: Τετάρτη, 1500 1700 Ιστοσελίδα μαθήματος: http://www.cs.ucy.ac.cy/~annap/epl664/ ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-2

Tο μάθημα θα μελετήσει: Περιγραφή Πρότυπα μοντελοποίησης συστημάτων: Συστήματα μεταβάσεων Άλγεβρες Διεργασιών Αυτόματα Τεχνικές ανάλυσης συστημάτων: Μοντελοέλεγχος (model-checking) Ισοδυναμίες (simulations) Εφαρμογή πειραμάτων (testing) Εργαλεία που επιτρέπουν την αυτοματοποιημένη ανάλυση συστημάτων: SPIN UPPAAL Παράλληλα συστήματα, κατανεμημένα συστήματα, πρωτόκολλα επικοινωνίας, κλπ ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-3

Στόχοι του μαθήματος Εξοικείωση με διάφορες τεχνικές επαλήθευσης συστημάτων Αναγνώριση δυνατοτήτων και περιορισμών της κάθε μιας από αυτές Εξοικείωση με εργαλεία επαλήθευσης συστημάτων Διαδικασία: Επιλογή εργαλείου, μοντελοποίηση, ανάλυση, εύρεση λαθών Ειδικά θέματα: Χρόνος, πιθανότητα, ασφάλεια ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-4

Αξιολόγηση 5 σειρές ασκήσεων 3θεωρητικές 2 πρακτικές 3 5 = 15% 2 5 = 10% Ενδιάμεση Εξέταση 25% Τελική εξέταση 50% ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-5

Βιβλιογραφία D. Peled, Software Reliability Methods. Springer-Verlag, 2001. Christel Baier, Joost-Pieter Katoen, Principles of Model Checking. MIT Press, May 2008 M. Huth and A. Ryan. Logic in Computer Science: Modeling and Reasoning about Concurrent Systems. Cambridge University Press, 2 nd edition, 2004. A. W. Roscoe, The Theory and Practice of Concurrency. Prentice Hall, 1997. Επιλεγμένα άρθρα βιβλιογραφίας. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-6

Γιατί ανάλυση συστημάτων; Ανάγκη για ανάλυση και επαλήθευση συστημάτων. Η κοινωνία της πληροφορίας είναι γεγονός. Υπολογιστές και προγράμματα έχουν εξαπλωθεί σε πολλαπλούς τομείς της ζωής μας: ενθυλακωμένα συστήματα (embedded systems) e-banking και e-shopping μεταφορικά μέσα ιατρική Η αξιοπιστία υλικού και λογισμικού είναι κύριας σημασίας Λάθη μπορεί να αποβούν όχι μόνο δαπανηρά (FDIV στο Pentium-II 475 εκατομμύρια USD) αλλά και μοιραία (Therac-25) It is fair to state, that in this digital era correct systems for information processing are more valuable than gold. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-7

Αξιοπιστία λογισμικού και επιπτώσεις New Year Mobile Bug, 2011 Goce gravity satellite failure, 2010 Blackout, 2003 Ariane-5 crash, 1996 Atlanta airport, 2008 ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-8

Επαλήθευση Συστημάτων Διαδεδομένες τεχνικές επαλήθευσης λογισμικού Εξέταση κώδικα από τρίτο στατική τεχνική αναγνωρίζει από 31% μέχρι και το 90% των λαθών δύσκολα λάθη, π.χ. αλγοριθμικά λάθη ή λάθη που προκύπτουν από παραλληλισμό στο πρόγραμμα, δεν εντοπίζονται εύκολα Τesting Επαλήθευση συστημάτων αφορά στον έλεγχο κατά πόσο ένα σύστημα ικανοποιεί τις απαιτήσεις που υπάρχουν από αυτό. δυναμική τεχνική όπου ο κώδικας εκτελείται 30-50% του κόστους διεκπεραίωσης ενός λογισμικού προγράμματος αφιερώνεται στο testing. Ο χρόνος και η προσπάθεια που ξοδεύεται στον έλεγχο ενός συστήματος είναι συχνά μεγαλύτερος από αυτόν της κατασκευής του. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-9

Τυπικές Μέθοδοι Formal Methods Το ΕΠΛ664 θα μελετήσει την θεωρία και πρακτική της Επαλήθευση και Ανάλυσης Συστημάτων βασισμένη σε τυπικές μεθόδους (formal methods). Τι είναι οι τυπικές μέθοδοι; εφαρμοσμένα μαθηματικά για τη μοντελοποίηση και ανάλυση υπολογιστικών συστημάτων Παρά του ότι βασίζονται σε μαθηματικά μπορούν να τύχουν χρήσης από οποιοδήποτε! Προσφέρουν τη δυνατότητα της επαλήθευσης συστημάτων από τη φάση σχεδιασμού αποδοτικές και αυστηρές μεθόδους ελέγχου συστημάτων (πιο μεγάλη κάλυψη και ψηλότερη εγγύηση ορθότητας) μείωση του χρόνου/κόστους που απαιτείται για επαλήθευση ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-10

Τυπικές Μέθοδοι Formal Methods Συστήνονται για δημιουργία λογισμικού κριτικής ασφάλειας από οργανισμούς όπως τους ESA (European Space Agency FAA (Federal Aviation Authority) NASA Formal methods should be part of the education of every computer scientist and software engineer, just as the appropriate branch of applied maths is a necessary part of the education of all other engineers. NASA ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-11

Τυπικές μέθοδοι ανάλυσης συστημάτων Στόχος: η απόδειξη της ορθότητας ενός συστήματος με μαθηματική ακρίβεια Χρήση τυπικών τεχνικών σε συνδυασμό με εργαλεία Διαφορετικές προσεγγίσεις: παραγωγικές μέθοδοι (deductive methods) τυπικός έλεγχος πειραμάτων (formal testing) τεχνικές ελέγχου μοντέλου (model-checking) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-12

Βασική διαδικασία: Προσομοιώσεις και πειράματα Δημιούργησε ένα μοντέλο (προσομοιώσεις) ή μια υλοποίηση (πειράματα) και προσομοίωσε τη συμπεριφορά που παράγεται με κάποια δεδομένα εισόδου. Παρατήρησε κατά πόσο η αντίδραση του συστήματος είναι η επιθυμητή. Μειονεκτήματα ο αριθμός των πιθανών συμπεριφορών είναι συχνά τεράστιος ή/και μηπεπερασμένος κάποια από τις συμπεριφορές που δεν ελέγχθηκαν πιθανόν να περιέχει το μοιραίο λάθος Οι προσομοιώσεις και τα πειράματα μπορούν να δείξουν την ύπαρξη λαθών αλλά όχι την απουσία τους ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-13

Testing μοντέλο ή πρωτότυπο Σύστημα / μοντέλο συστήματος Παραγωγή πειραμάτων Εκτέλεση πειραμάτων σουίτα πειραμάτων pass fail ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-14

Είναι χρήσιμη τεχνική όταν Testing Είναι δύσκολο να κτιστεί μοντέλο του συστήματος Υπομέρη του συστήματος (π.χ. συσκευές) δεν μπορούν να μοντελοποιηθούν Ο κώδικας δεν είναι διαθέσιμος Συμπληρωματική μέθοδος προς τον μοντέλο-έλεγχο αφού ελέγχει το ίδιο το σύστημα και όχι κάποιο μοντέλο αυτού. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-15

Model-checking Επαναστατική μέθοδος για την αυτοματοποιημένη επαλήθευση συστημάτων Ελέγχει κατά πόσο ένα μοντέλο ικανοποιεί μια τροπική ιδιότητα π.χ. Το σύστημα δίνει πάντα το σωστό αποτέλεσμα; Το σύστημα περιέχει αδιέξοδα (deadlock); Για παράδειγμα όταν δύο παράλληλα προγράμματα περιμένουν το ένα το άλλο, σταματώντας με αυτό τον τρόπο ολόκληρο το σύστημα. Μπορεί να εμφανιστεί αδιέξοδο μέσα σε μια ώρα από την εκκίνηση της εκτέλεσης του συστήματος; Η απάντηση δίνεται πάντα μέσα σε 8 λεπτά; Βασίζεται σε συστηματικό έλεγχο του συνόλου καταστάσεων ενός συστήματος. Ο μοντέλο-έλεγχος απαιτεί μια ακριβή και ξεκάθαρη δήλωση των ιδιοτήτων που θα ελεγχθούν. Αυτό γίνεται συνήθως σε μια χρονική λογική (temporal logic). ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-16

Model-checking απαιτήσεις σύστημα Τυπική διατύπωση Μοντελοποίηση σύνολο από ιδιότητες μοντέλο συστήματος Model Checking TRUE ανεπάρκεια μνήμης FALSE και αντιπαράδειγμα Προσομοίωση εύρεση λάθους ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-17

Πλεονεκτήματα του μοντέλο-ελέγχου Εφαρμόζεται σε πολλά συστήματα (υλικό, λογισμικό, πρωτόκολλα, ) Ύπαρξη εργαλείων Σε περίπτωση μη ικανοποίησης μας δίνει αντιπαράδειγμα Μαθηματικά αποδεδειγμένη Κοιτάζει όλες τις δυνατές εκτελέσεις Το ενδιαφέρον της βιομηχανίας για αυτό συνεχώς αυξάνεται ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-18

Περιορισμοί του μοντέλο-ελέγχου Ασχολείται κυρίως με εφαρμογές με πολύπλοκη ροή και όχι επεξεργασία δεδομένων Τα αποτελέσματα βασίζονται στην ποιότητα του μοντέλου Η πολυπλοκότητα (state-space explosion problem) μπορεί να αποτελέσει εμπόδιο Η δημιουργία κατάλληλων μοντέλων απαιτεί πείρα. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-19

And the Turing award goes to Milner, 1991: for the developments of logical formalisms in computer science (LCF, the mechanization of Scott's Logic of Computable Functions, probably the first theoretically based yet practical tool for machine assisted proof construction). Pnueli, 1996: For seminal work introducing temporal logic into computing science and for outstanding contributions to program and systems verification. Clarke, Emerson, Sifakis, 2007: For [their roles] in developing model checking into a highly effective verification technology, widely adopted in the hardware and software industries. Robin Milner (1934-2010) Amir Pnueli (1941-2009) E. Allen Emerson (1954- ) Edmund M. Clarke (1945- ) Ιωσήφ Σιφάκης (1946 - ) ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 6-20

Παραδείγματα Εφαρμογών Ασφάλεια: To πρωτόκολλο Needham Schroeder Εύρεση λάθους 17 χρόνια μετά από τη δημιουργία και διαδεδομένη χρήση του Λογισμικό σε διαστημικούς πυραύλους Το Mars Pathfinder της NASA Συστήματα συγκοινωνιών Μοντέλο τραίνων με 10 476 καταστάσεις Εργαλεία μοντελο-ελέγχου για τις C, Java, C++ ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-21

Τυπικό πρόβλημα παρεμβολής process Inc = while true do if x < 200 then x = x + 1 od process Dec = while true do if x > 0 then x = x 1 od process Reset = while true do if x = 200 then x = 0 od Είναι πάντα το x ανάμεσα στο 0 και το 200; ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-22

Παράδειγμα μοντέλο-ελέγχου int x = 0; proctype Inc(){ do :: true -> if :: (x < 200) -> x = x + 1 fi od } proctype Dec(){ do :: true -> if :: (x > 0) -> x = x 1 fi od } proctype Reset(){ do :: true -> if :: (x = 200) -> x = 0 fi od } init{ atomic{ run Inc(); run Dec(); run Reset()} } ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-23

Παράδειγμα μοντέλο-ελέγχου Για να ελέγξουμε τις τιμές του x εισάγουμε μία διεργασία που ελέγχει ότι x 200. 0 proctype Check(){ assert (x >= 0 && x <= 200) } init{ atomic{ run Inc(); run Dec(); run Reset(); run Check()} } Με αυτό το δεδομένο το εργαλείο μας δίνει μήνυμα λάθους: pan: assertion violated (x >= 0 && x <= 200) (at depth 1802) Depth reached 3598, errors 1, 12609 states stored. ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-24

Το αντιπαράδειγμα... 606: proc 1 (Inc) line 9 (state 2) [(x<200)] 607: proc 1 (Inc) line 9 (state 3) [(x=x+1)] 608: proc 1 (Inc) line 9 (state 1) [(1)] 609: proc 3 (Reset) line 13 (state 2) [(x==200)] 610: proc 3 (Reset) line 13 (state 3) [(x = 0)] 611: proc 3 (Reset) line 13 (state 1) [(1)] 612: proc 2 (Dec) line 5 (state 3) [(x=x-1)] 613: proc 2 (Dec) line 5 (state 1) [(1)] spin: line 17 Error: assertion violated ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-25

Διόρθωση του λάθους int x = 0; proctype Inc(){ do :: true -> atomic{if :: (x < 200) -> x=x+1 fi} od } proctype Dec(){ do :: true -> atomic{ if :: (x > 0) -> x=x 1 fi} od } proctype Reset(){ do :: true -> atomic{if :: (x = 200) -> x = 0 fi} od } init{ atomic{ run Inc(); run Dec(); run Reset()} } ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 1-26