Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών
Τεχνολογία ΛογισμικούSlide 2 Στόχοι u Εξήγηση του όρου των τυπικών εξειδικεύσεων σε ορισμούς διεπαφών των υποσυστημάτων u Εισαγωγή της αλγεβρικής προσέγγισης σε τυπική εξειδίκευση u Περιγραφή της συστηματικής κατασκευής των αλγεβρικών εξειδικεύσεων u Παρουσίαση αριθμού αυξητικών τρόπων για την συγγραφή αλγεβρικών εξειδικεύσεων
Τεχνολογία ΛογισμικούSlide 3 Θέματα u Συστηματική αλγεβρική εξειδίκευση u Δομημένη εξειδίκευση u Εξειδίκευση λαθών
Τεχνολογία ΛογισμικούSlide 4 Εξειδίκευση Διεπαφής u Η τυπική εξειδίκευση είναι ειδικά κατάλληλη για την εξειδίκευση διεπαφής υποσυστημάτων. Παρέχει σαφή περιγραφή διεπαφής και επιτρέπει παράλληλη ανάπτυξη υποσυστημάτων u Οι διεπαφές ορίζονται ως σύνολο αφαιρετικών τύπων δεδομένων ή κλάσεις αντικειμένων u Η αλγεβρική εξειδίκευση είναι ειδικά κατάλληλη για ADT εξειδίκευση αφού εστιάζει σε λειτουργίες και τις σχέσεις τους
Τεχνολογία ΛογισμικούSlide 5 Διεπαφές Υπο - Συστημάτων
Τεχνολογία ΛογισμικούSlide 6 Δομή Εξειδίκευσης u Εισαγωγή Εισάγει τον τύπο ονόματος και τις εξειδικεύσεις u Άτυπη περιγραφή Περιγράφει τις λειτουργίες του τύπου ή της κλάσης αντικειμένων u Υπογραφή Ορίζει το συντακτικό του τύπου ή κλάσης λειτουργιών u Αξιώματα Ορίζει αξιώματα που χαρακτηρίζουν την συμπεριφορά του τύπου
Τεχνολογία ΛογισμικούSlide 7 Μορφή Εξειδίκευσης
Τεχνολογία ΛογισμικούSlide 8 Εξειδίκευση Διανύσματος u Replace with portrait slide
Τεχνολογία ΛογισμικούSlide 9 Συστηματική Αλγεβρική Εξειδίκευση u Η αλγεβρική εξειδίκευση ενός συστήματος μπορεί να αναπτυχθεί με συστηματικό τρόπο Δόμηση εξειδίκευσης Ονομασία εξειδίκευσης Επιλογή λειτουργίας Άτυπη εξειδίκευση λειτουργίας Ορισμός συντακτικού Ορισμός αξιώματος
Τεχνολογία ΛογισμικούSlide 10 Λειτουργίες Εξειδίκευσης u Λειτουργίες δημιουργίας. Λειτουργίες που δημιουργούν οντότητες του επιθυμητού τύπου u Λειτουργίες ελέγχου. Λειτουργίες που αποτιμούν οντότητες του τύπου που έχει ορισθεί u Εξειδίκευση συμπεριφοράς, ορισμός των λειτουργιών ελέγχου για κάθε λειτουργία δημιουργού
Τεχνολογία ΛογισμικούSlide 11 Λειτουργίες σε μία λίστα ADT u Λειτουργίες δημιουργίας Create, Cons and Tail u Λειτουργίες ελέγχου που έχουν είσοδο ταξινομημένη λίστα και επιστρέφουν άλλη ταξινόμηση Head and Length. u Η ουρά μπορεί να ορισθεί με χρήση των δημιουργών Create και Cons. Δεν υπάρχει ανάγκη ορισμού Head και Length με Tail.
Τεχνολογία ΛογισμικούSlide 12 Εξειδίκευση Λίστας u Replace with portrait slide
Τεχνολογία ΛογισμικούSlide 13 Επανάληψη στην Εξειδίκευση u Συνήθως οι λειτουργίες ορίζονται επαναληπτικά u Tail (Cons (L, v)) = if L = Create then Create else Cons (Tail (L), v) Cons ([5, 7], 9) = [5, 7, 9] Tail ([5, 7, 9]) = Tail (Cons ( [5, 7], 9)) = Cons (Tail ([5, 7]), 9) = Cons (Tail (Cons ([5], 7)), 9) = Cons (Cons (Tail ([5]), 7), 9) = Cons (Cons (Tail (Cons ([], 5)), 7), 9) = Cons (Cons ([Create], 7), 9) = Cons ([7], 9) = [7, 9]
Τεχνολογία ΛογισμικούSlide 14 Αρχικοί Δημιουργοί u Είναι απαραίτητη η εισαγωγή επιπλέον δημιουργών για απλοποίηση της εξειδίκευσης u Οι άλλοι δημιουργοί μπορούν να ορισθούν με βάση τους αρχικούς δημιουργούς u Στην εξειδίκευση δυαδικού δένδρου ο δημιουργός Build προστίθεται
Τεχνολογία ΛογισμικούSlide 15 Λειτουργίες Δυαδικού Δένδρου
Τεχνολογία ΛογισμικούSlide 16 Εξειδίκευση Δυαδικού Δένδρου u Replace with portrait slide
Τεχνολογία ΛογισμικούSlide 17 Δομημένη Εξειδίκευση u Οι εξειδικεύσεις δημιουργούνται με δομημένο τρόπο. Άλλες εξειδικεύσεις μπορούν να χρησιμοποιηθούν όπου είναι δυνατόν u Εγκατάσταση εξειδίκευση. Μία εξειδίκευση εισάγεται με συγκεκριμένη ταξινόμηση u Αυξητική εξειδίκευση. Χρήση απλών εξειδικεύσεων σε πλέον σύνθετες εξειδικεύσεις u Επαύξηση εξειδίκευσης. Η εξειδίκευση δημιουργείται κληρονομικά από άλλες εξειδικεύσεις
Τεχνολογία ΛογισμικούSlide 18 Εγκατάσταση Εξειδίκευσης
Τεχνολογία ΛογισμικούSlide 19 Αυξητική Εξειδίκευση u Ανάπτυξη απλής εξειδίκευσης που μπορεί να χρησιμοποιηθεί σε πλέον πολύπλοκες εξειδικεύσεις u Δημιουργία βιβλιοθήκης εξειδίκευσης που μπορεί να χρησιμοποιηθεί σε τμήματα u Σε μία γραφική διεπαφή χρήστη η εξειδίκευση των καρτεσιανών συντεταγμένων μπορεί να επαναχρησιμοποιηθεί στην εξειδίκευση του κάρσορα u Λειτουργίες απεικόνισης είναι δύσκολο να εξειδικευτούν αλγεβρικά. Μπορούν όμως να ορισθούν άτυπα.
Τεχνολογία ΛογισμικούSlide 20 Εξειδίκευση Συντεταγμένων
Τεχνολογία ΛογισμικούSlide 21 Εξειδίκευση Κέρσορα u Replace with portrait slide
Τεχνολογία ΛογισμικούSlide 22 Βελτίωση Εξειδίκευσης u Αν αρχίσουμε με μία επαναχρησιμοποιήσιμη εξειδίκευση, μπορούμε να προσθέσουμε νέες λειτουργίες και να δημιουργήσουμε ένα πλέον πολύπλοκο τύπο u Μπορεί να συνεχιστεί σε οποιαδήποτε αριθμό επιπέδων. Είναι συγκρίσιμη με την κληρονομικότητα u Δεν είναι το ίδιο όπως η εισαγωγή εξειδίκευσης Η εισαγωγή κάνει μία εξειδίκευση διαθέσιμη προς χρήση Η βελτίωση δημιουργεί εξειδίκευση για νέα ταξινόμηση u Τα ονόματα των παραμέτρων της βασικής ταξινόμησης κληρονομούνται όταν μία ταξινόμηση βελτιώνεται
Τεχνολογία ΛογισμικούSlide 23 Λειτουργίες σε New_list
Τεχνολογία ΛογισμικούSlide 24 Εξειδίκευση New_list
Τεχνολογία ΛογισμικούSlide 25 Λειτουργίες Πολλαπλών Τιμών u Μερικές λειτουργίες επηρεάζουν περισσότερες από μία οντότητες. Λογικά μία λειτουργία επιστρέφει περισσότερες από μία τιμές u Η λειτουργία Stack pop επιστρέφει την τιμή από την στίβα και την τροποποιημένη στίβα u Μπορεί να μοντελοποιηθεί αλγεβρικά με χρήση πολλαπλών λειτουργιών (TOP και RETRACT για μία στίβα), αλλά μία πιο προαισθητική προσέγγιση είναι να ορίσουμε λειτουργίες που επιστρέφουν πολλές τιμές αντί για μία απλή τιμή
Τεχνολογία ΛογισμικούSlide 26 Λειτουργίες Ουράς
Τεχνολογία ΛογισμικούSlide 27 Εξειδίκευση Ουράς
Τεχνολογία ΛογισμικούSlide 28 Εξειδίκευση Λάθους u Κάτω από κανονικές συνθήκες μία λειτουργία μπορεί να είναι τύπου Χ, αλλά κάτω από ειδικές συνθήκες εμφανίζεται λάθος και ο επιστρέφων τύπος είναι διαφορετικός u Το πρόβλημα αντιμετωπίζεται με τρεις τρόπους Χρήση ειδικής διακεκριμένης σταθερής λειτουργίας (Undefined) η οποία αντιστοιχεί στον τύπο της επιστρεφόμενης τιμής. Δες εξειδίκευση διανύσματος Ορισμός λειτουργίας αξιολόγησης όπου επιστρέφεται τιμή επιτυχίας ή αποτυχίας. Δες εξειδίκευση ουράς Περιλαμβάνεται ειδική περιοχή αποτυχίας στην εξειδίκευση
Τεχνολογία ΛογισμικούSlide 29 Λίστα με Τμήμα Εξαίρεσης
Τεχνολογία ΛογισμικούSlide 30 Σημαντικά Σημεία u Η αλγεβρική εξειδίκευση είναι κατάλληλη για εξειδίκευση διεπαφών υποσυστημάτων u Η αλγεβρική εξειδίκευση σημαίνει ειδίκευση λειτουργιών σε τύπους αφαιρετικών δεδομένων ή αντικειμένων σε όρους των σχέσεων μεταξύ τους u Μία αλγεβρική εξειδίκευση έχει το τμήμα υπογραφής που ορίζει το συντακτικό και τμήμα αξιωμάτων που ορίζει σημασιολογία u Οι τυπικές εξειδικεύσεις πρέπει να έχουν μία άτυπη περιγραφή για να είναι περισσότερο κατανοητές
Τεχνολογία ΛογισμικούSlide 31 Σημαντικά Σημεία u Οι αλγεβρικές εξειδικεύσεις μπορεί να ορισθούν με ορισμό της σημασιολογίας κάθε λειτουργίας ελέγχου για κάθε λειτουργία δημιουργό u Η εξειδίκευση μπορεί να δημιουργηθεί αυξητικά από απλούστερες εξειδικεύσεις u Τα λάθη εξειδικεύονται από τον ορισμό διακριτών τιμών για τα λάθη, με ορισμό μέρους που δείχνει επιτυχία ή αποτυχία ή με τον καθορισμό τμήματος λαθών σε μία εξειδίκευση