Successfully reported this slideshow.
Your SlideShare is downloading. ×

Design and Implementation of a Mechanism that automates the generation of Software Systems capable of Deductive Reasoning

Design and Implementation of a Mechanism that automates the generation of Software Systems capable of Deductive Reasoning

Download to read offline

Today, the development of technology and its utilization in all areas of human life, creates the need for software that is easily customizable, presentable, solves many types of problems, is economical and reliable. Model-Driven Engineering (MDE), ie software development based on models, the automatic production of code based on these models, the ability to graphically display the software, in combination with the techniques of Automated Reasoning meet the above needs. In the current diploma thesis, in order to meet the aforementioned needs, all the above techniques were utilized for the construction of a complete software tool, on the Eclipse platform. More specifically, in the framework of Model-Driven Engineering (MDE), a meta model was constructed which constitutes the core of the system and incorporates terms from the field of Logic. Expanding on this, a graphical interface was created, in the Sirius environment, which allows the interested party to construct, in a graphic way, the model he wants. The construction of the model is done in the form of equations, correctly formulated in the standards of First Order Logic (FOL). From this model, Java code is automatically generated, which utilizing functions and objects of the TweetyProject library, is properly configured to be a valid input for the built-in prover of the same library, that can perform logical tests in the standards of Automated Logic. Some more functions written in Java, complete the software tool of this diploma thesis. All of the above, constitute the software tool developed in this diploma, capable of being used by various mechanisms that automatically produce systems, in order to check the validity of the systems under design, without the need to implement additional software that draws logical conclusions.

Today, the development of technology and its utilization in all areas of human life, creates the need for software that is easily customizable, presentable, solves many types of problems, is economical and reliable. Model-Driven Engineering (MDE), ie software development based on models, the automatic production of code based on these models, the ability to graphically display the software, in combination with the techniques of Automated Reasoning meet the above needs. In the current diploma thesis, in order to meet the aforementioned needs, all the above techniques were utilized for the construction of a complete software tool, on the Eclipse platform. More specifically, in the framework of Model-Driven Engineering (MDE), a meta model was constructed which constitutes the core of the system and incorporates terms from the field of Logic. Expanding on this, a graphical interface was created, in the Sirius environment, which allows the interested party to construct, in a graphic way, the model he wants. The construction of the model is done in the form of equations, correctly formulated in the standards of First Order Logic (FOL). From this model, Java code is automatically generated, which utilizing functions and objects of the TweetyProject library, is properly configured to be a valid input for the built-in prover of the same library, that can perform logical tests in the standards of Automated Logic. Some more functions written in Java, complete the software tool of this diploma thesis. All of the above, constitute the software tool developed in this diploma, capable of being used by various mechanisms that automatically produce systems, in order to check the validity of the systems under design, without the need to implement additional software that draws logical conclusions.

More Related Content

Slideshows for you

More from ISSEL

Related Books

Free with a 30 day trial from Scribd

See all

Design and Implementation of a Mechanism that automates the generation of Software Systems capable of Deductive Reasoning

  1. 1. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορία και Υπολογισμών Σχεδίαση και Ανάπτυξη Μηχανισμού Αυτοματοποίησης Παραγωγής Λογισμικού Ελέγχου Λογικών Συμπερασμών Εκπόνηση: Βερβέρης Χρήστος Α.Ε.Μ.: 8079 Επίβλεψη: Αναπληρωτής Καθηγητής: Ανδρέας Συμεωνίδης Διδάκτωρ: Χριστόφορος Ζολώτας
  2. 2. Κίνητρο Διπλωματικής Εργασίας • Αυξανόμενη ζήτηση λογισμικού που είναι ορθό και οικονομικό. • Ανάγκη εξέλιξης και προσαρμογής του λογισμικού στον γρήγορα αναπτυσσόμενο χώρο της Τεχνολογίας. • Ανάγκη ύπαρξης κάποιου είδους validation κατά την ανάπτυξη λογισμικού. • Ανάγκη να συμμετέχουν στην διαδικασία ανάπτυξης λογισμικού και άτομα που δεν είναι μηχανικοί, αλλά γνωρίζουν Λογική. 2
  3. 3. Περιγραφή του προβλήματος Παραδοσιακός τρόπος ανάπτυξης λογισμικού • Ο κώδικας πολλές φορές δεν είναι ευέλικτος • Δεν μπορούν να συμμετέχουν ενδιαφερόμενοι χωρίς τεχνικές γνώσεις • Το τελικό προϊόν πολλές φορές έχει αστοχίες και λάθη Πιθανή λύση • Μοντελοστραφής Μηχανική (MDE), • Αυτοματοποιημένος Έλεγχος Συμπερασμών (Automated Reasoning) • Αυτόματη παραγωγή κώδικα (Automated Code Generation) Πρόβλημα Η αξιοποίηση των παραπάνω τεχνικών συνδυαστικά είναι πολύ περιορισμένη, με αποτέλεσμα κάποιος που δεν έχει τεχνικές γνώσεις αλλά γνωρίζει Λογική, να μην μπορεί να κατασκευάσει λογισμικό. 3
  4. 4. Στόχος Διπλωματικής Εργασίας Αξιοποίηση της Μοντελοστραφούς Μηχανικής (MDE) και της Κατηγορηματικής Λογικής Πρώτης Τάξης (FOL) με στόχο την αυτόματη παραγωγή κώδικα που δεν έχει λάθη. Αξιοπιστία και ευελιξία κώδικα Σχεδίαση γραφικού περιβάλλοντος στην πλατφόρμα του Sirius με στόχο την χρήση του και από άτομα που δεν είναι προγραμματιστές. Κατανοητό γραφικό περιβάλλον Κατασκευή API σε Java, για εύκολη αξιοποίηση του παραγόμενου συστήματος από υπάρχοντες Μηχανισμούς, για διεξαγωγή ελέγχου συμπερασμών. API για διεξαγωγή ελέγχων και τεστ 4
  5. 5. Αρχιτεκτονική του Συστήματος 1. Κατασκευή μέτα-μοντέλου στον Eclipse. 2. Συγγραφή των εξισώσεων του επιθυμητού συστήματος μετά από συνεννόηση. 3. Εισαγωγή των εξισώσεων στο λογισμικό, μέσα από το περιβάλλον του Sirius. 4. Αυτόματη παραγωγή κώδικα (M2T) με Acceleo. 5. Χρήση του API του παραγόμενου συστήματος για διεξαγωγή ελέγχων και τέστ. Μεθοδολογία 5
  6. 6. Μεθοδολογία Κατηγορηματική Λογική Πρώτου Επιπέδου (FOL) Τεχνικές Αυτοματοποιημένου Ελέγχου Συμπερασμών Μελετά τις διάφορες πτυχές απόδειξης ενός συμπερασμού. Δύο βασικά στοιχεία: • Παραδοχές του προβλήματος • Συμπέρασμα του προβλήματος Κατηγορηματική Λογική Πρώτου Επιπέδου Επιτρέπει την συγγραφή πολύπλοκων προτάσεων και αποτελείται από: • Κατηγορίες (Sorts) • Οντότητες (Constants) • Μεταβλητές (Variables) • Κατηγορήματα (Predicates) • Quantifiers • Λογικά Σύμβολα (Logic Symbols) • Κανόνες (Formulas) Παράδειγμα: ∀x(Man(x) => Mortal(x)) 6
  7. 7. Μεθοδολογία Μέτα-Μοντέλο 7
  8. 8. Μεθοδολογία Γραφικό Περιβάλλον Sirius Τα Nodes και τα Containers αποτελούν instances των κλάσεων του μέτα-μοντέλου και υπακούν στους περιορισμούς του. Containers: • Sort • Predicate • Formula • Sub_Formula • F_Predicate Nodes: • S_Constant • P_Sort • FP_Constant • Logic_Symbol 8
  9. 9. Μεθοδολογία Validation Rules Αποτελούν αναπόσπαστο κομμάτι της διαδικασίας και είναι γραμμένοι σε AQL ή σε Java. Η διαδικασία αυτή κάνει: • Συντακτικούς ελέγχους στα ονόματα των instances. • Συντακτικούς ελέγχους στην διατύπωση των λογικών συμπερασμών. • Ελέγχους εγκυρότητας Ενημέρωση του χρήστη με σχετικό μήνυμα στην κονσόλα και οπτική ενημέρωση στο σημείο που υπάρχει σφάλμα. *Δεν πραγματοποιούνται έλεγχοι στο κατά πόσο το λογικό σύστημα που κατασκευάστηκε είναι επιλύσιμο. 9
  10. 10. Μεθοδολογία Acceleo (M2T) Μετατροπή του ολοκληρωμένου μοντέλου σε κώδικα Java. Στόχος η δημιουργία ενός αρχείου Java, το οποίο θα καταγράφει με σωστό τρόπο το σύστημα που δημιουργήθηκε και θα δίνει πρόσβαση στον χρήστη σε εξισώσεις για διεξαγωγή ελέγχου συμπερασμών. 10
  11. 11. Μεθοδολογία Αρχεία Java και βιβλιοθήκη TweetyProject Παράγεται από την διαδικασία Acceleo. Είναι υπεύθυνο για την ορθή καταγραφή του συστήματος αντλώντας με σωστή σειρά εξισώσεις από το αρχείο Database.java Παρέχει στον χρήστη διεπαφές για διεξαγωγή ελέγχου συμπερασμών. Περιέχει την λειτουργικότητα των εξισώσεων που καλεί το Database_Logic. Καλεί εξισώσεις και χρησιμοποιεί αντικείμενα από την βιβλιοθήκη TweetyProject. Αποτελεί μια συλλογή από βιβλιοθήκες που περιέχει ειδικές συναρτήσεις και αντικείμενα για τους περισσότερους τομείς της λογικής. 11
  12. 12. Διεπαφές για ελέγχους (API) Μεθοδολογία CheckNewArgument • Έλεγχος κάποιου νέου συμπερασμού με βάση το knowledge base CheckTautology • Έλεγχος κάποιου νέου συμπερασμού για Ταυτολογία με βάση το knowledge base CheckContradiction • Έλεγχος κάποιου νέου συμπερασμού για Αντίφαση με βάση το knowledge base 12
  13. 13. Δημιουργία ενός συστήματος εξισώσεων. Το σύστημα θα αποτελείται από: • Sorts • Constants • Predicates • Logic Symbols • Formulas Παράδειγμα 13
  14. 14. Τελική μορφή του συστήματος στο Sirius. Έλεγχος για ύπαρξη λαθών κάνοντας κλικ στο Validate Diagram. Παραγωγή κώδικα με Acceleo. Παράδειγμα
  15. 15. Διεξαγωγή ελέγχων και εξαγωγή συμπερασμάτων χρησιμοποιώντας τις συναρτήσεις: • CheckNewArgument • CheckTautology • CheckContradiction Παράδειγμα 15
  16. 16. Αποτελέσματα • Γραφικό περιβάλλον που επιτρέπει σε ενδιαφερόμενους χωρίς τεχνικές γνώσεις αλλά με γνώσεις Λογικής, να σχεδιάσουν ένα σύστημα λογικής. • Αυτόματη παραγωγή κώδικα που είναι λιγότερο επιρρεπής σε λάθη. • Κώδικας εύκολα προσαρμόσιμος μέσω της τροποποίησης και εκ νέου παραγωγής του μοντέλου. • Συνδυασμός των τεχνικών της Μοντελοστραφούς Μηχανικής (MDE) και του Αυτοματοποιημένου Ελέγχου Συμπερασμών (Automated Reasoning). 16
  17. 17. Μελλοντικές Εργασίες • Βελτίωση των γραφικών στο Sirius. • Περαιτέρω απλοποίηση της διαδικασίας δημιουργίας του μοντέλου. • Διεξαγωγή τεστ με περισσότερους provers και εξαγωγή συμπερασμάτων. 17
  18. 18. Ευχαριστώ για την προσοχή σας

×