1 / 10

Βιβλίο Γενεθλίων Λειτουργίες: Προσθήκη, Εύρεση, Υπενθύμιση, Αρχικοποίηση

Βιβλίο Γενεθλίων Λειτουργίες: Προσθήκη, Εύρεση, Υπενθύμιση, Αρχικοποίηση. Καθορισμός βοηθητικών τύπων και συναρτήσεων. Βασικοί τύποι : [ΝΑΜΕ] [ DATE] Η ακριβής μορφή ονομάτων και ημερομηνιών δεν ενδιαφέρει (06/03, 03/06, March 6th etc).

eden
Download Presentation

Βιβλίο Γενεθλίων Λειτουργίες: Προσθήκη, Εύρεση, Υπενθύμιση, Αρχικοποίηση

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Βιβλίο Γενεθλίων Λειτουργίες: Προσθήκη, Εύρεση, Υπενθύμιση, Αρχικοποίηση

  2. Καθορισμός βοηθητικών τύπων και συναρτήσεων Βασικοί τύποι: [ΝΑΜΕ] [DATE] Η ακριβής μορφή ονομάτων και ημερομηνιών δεν ενδιαφέρει (06/03, 03/06, March 6th etc)

  3. Καθορισμός κατάστασης του συστήματος με σχήμα Z Όνομα σχήματος Κατάσταση συστήματος (μεταβλητές δηλωμένων τύπων) Σχέσεις μεταξύ τιμών των μεταβλητών (παραμένουν αληθείς σε όλες τις Καταστάσεις και διατηρούνται από όλες τις λειτουργίες) knownείναι το δυναμοσύνολο των ονομάτων με αποθηκευμένες ημερομηνίες birthday είναι μία μερική συνάρτηση που αντιστοιχείζει ορισμένα ονόματα στις αντίστοιχες ημερομηνίες γέννησης Η σχέση μεταξύ knownκαι birthdayείναι η αναλλοίωτη συνθήκη του συστήματος: το σύνολο known αντιστοιχεί στο πεδίο ορισμού (dom) της συνάρτησης birthday

  4. Πιθανή κατάσταση του συστήματος known = {Susy, Mike, John} birthday = {John 25 March, Susy 20 Dec, Mike 20 Dec } • H αναλλοίωτη συνθήκη known = dom birthday ισχύει. • δεν υπάρχει όριο στον αριθμό των αποθηκευμένων ημερομηνιών • δεν περιγράφεται η σειρά των καταχωρήσεων • κάθε άτομο έχει μόνο μία ημερομηνία γενεθλίων (η birthday είναι συνάρτηση) • δύο άτομα μπορούν να έχουν την ίδια ημερομηνία γενεθλίων

  5. Καθορισμός των λειτουργιών του συστήματος • Ορισμένες λειτουργίες τροποποιούν την κατάσταση του συστήματος και άλλες την αφήνουν αναλλοίωτη • Ορισμένες λειτουργίες έχουν είσοδο και/ή έξοδο

  6. Προσθήκη της ημερομηνίας γενεθλίων ενός ατόμου το οποίο δεν βρίσκεται στο βιβλίο Όνομα λειτουργίας (σχήμα) εισαγωγή σχήματος είσοδος λειτουργίας είσοδος λειτουργίας προ-συνθήκη επέκταση της συνάρτησης (αν η προ-συνθήκη πληρείται) • Αυτό το σχήμα τροποποιεί την κατάσταση: • περιγράφει την κατάσταση πριν τη λειτουργία (μη τονισμένες μεταβλητές) • περιγράφει την κατάσταση μετά τη λειτουργία (τονισμένες μεταβλητές) • Σε αυτό το σχήμα δεν περιγράφεται τι θα γίνει αν δεν πληρείται η προ-συνθήκη

  7. Προσθήκη της ημερομηνίας γενεθλίων ενός ατόμου το οποίο δεν βρίσκεται στο βιβλίο • Η λειτουργία AddBirthdayαναμένεται να επεκτείνει το σύνολο των γνωστών ονομάτων με το νέο όνομα: • known’ = known  {name ?} • Η προδιαγραφή για την AddBirthdayμπορεί να χρησιμοποιηθεί για να αποδειχθεί η παραπάνω πρόταση: Η απόδειξη τέτοιων προτάσεων εξασφαλίζει ότι οι προδιαγραφές είναι ορθές Σε μεγάλο βαθμό η συμπεριφορά του συστήματος μπορεί να αναλυθεί χωρίς αυτό να υλοποιηθεί !

  8. Εύρεση της ημερομηνίας γενεθλίων ενός ατόμου γνωστού στο σύστημα Αυτό το σχήμα αφήνει την κατάσταση του συστήματος αναλλοίωτη και είναι ισοδύναμο με:

  9. cards! είναι ένα σύνολο ονομάτων (στους οποίους πρέπει να σταλεί κάρτα !!!) Εύρεση του ποιος έχει γενέθλια σε μία συγκεκριμένη ημέρα Αρχική κατάσταση του συστήματος: known =  υποδηλώνει ότι η birthdayείναι επίσης κενή

  10. Links for Z language: The Z Notation: A reference manual http://spivey.oriel.ox.ac.uk/~mike/zrm/ Example and Definitions http://cs.haifa.ac.il/courses/softe/zdocs/ZExamples.pdf One Line Editor example http://sern.ucalgary.ca/courses/SENG/611/F01/FormalSpecs.html The Z Notation (Oxford) http://archive.comlab.ox.ac.uk/z.html Community Z Tools Project (Sourceforge) http://czt.sourceforge.net/ Z Notation Examples http://staff.washington.edu/~jon/z/z-examples.html Introduction to Z http://www.cs.wm.edu/~coppit/csci435/references/spivey-intro-to-z.pdf

More Related