Σχεδίαση του συστήµατος (συνέχεια) Επίπεδα αποσύνθεσης και συστατικά. Αποσύνθεση και Τµηµατικότητα. Σχεδίαση Λογισµικού

Σχετικά έγγραφα
Μέθοδοι αποσύνθεσης. Σχεδίαση του συστήµατος (συνέχεια) Επίπεδα αποσύνθεσης και συστατικά. Αποσύνθεση και Τµηµατικότητα. Σχεδίαση Λογισµικού

Σχεδίαση συστήµατος. Εννοιολογικό και Τεχνικό σχέδιο. Εισαγωγή στη Σχεδίαση Λογισµικού

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Τεχνολογία Λογισμικού

Αρχιτεκτονική Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

ΛΟΓΙΣΜΙΚΟ (software)

Αποµακρυσµένη κλήση διαδικασιών

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

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

Αρχιτεκτονικές Συστημάτων

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Σχεδιασµός βασισµένος σε συνιστώσες

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Διαχείριση Πολιτισμικών Δεδομένων

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Αρχές Προγραμματισμού Υπολογιστών

Κατανεµηµένασυστήµατα αρχείων

Προγραμματισμός Υπολογιστών

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Α. Ερωτήσεις Ανάπτυξης

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Τεχνολογία Λογισμικού

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

Εισαγωγή Κεφάλαιο 1: Εγκατάσταση της Access Κεφάλαιο 2: Βάσεις δεδομένων και δομικά στοιχεία της Access

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

6. Εισαγωγή στον προγραµµατισµό

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

Εισαγωγή στον προγραμματισμό

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Λειτουργικά Συστήματα (Λ/Σ)

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο ύο - Tι Eίναι και Tι δεν Eίναι Συστατικό

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4

Διαφορές single-processor αρχιτεκτονικών και SoCs

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Τεχνολογία Λογισμικού

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ

Περιεχόμενο του μαθήματος

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Εισαγωγή. Εποπτικός Έλεγχος Βιοµηχανικών ιεργασιών. Στόχος συστήµατος διαχείρισης ελέγχου

Λειτουργικά Συστήματα Η/Υ

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

ΔΙΑΚΗΡΥΞΗ ΔΗΜΟΠΡΑΣΙΑΣ ΜΕ ΑΡΙΘΜΟ ΔΔ-...

Μοτίβα Σχεδίασης (Design Patterns)

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

Ενότητα 3 (κεφάλαιο 16) Επαναχρησιμοποίηση Λογισμικού

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο εκαέξη - Συναρµολόγηση Συστατικών

Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΣΧΕ ΙΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ ΜΕ ΑΡΜΟ ΙΟΤΗΤΕΣ. Ορισµός σχεδιαστικών προτύπων Εφαρµογή των 9 GRASP προτύπων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Αλγόριθμος. Αλγόριθμο ονομάζουμε τη σαφή και ακριβή περιγραφή μιας σειράς ξεχωριστών οδηγιών βημάτων με σκοπό την επίλυση ενός προβλήματος.

Επισκόπηση Μαθήµατος

Περιεχόµενα. Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional. Ευχαριστίες Εισαγωγή... 19

Ποιότητα και Πρότυπα στη Διοίκηση Επιχειρήσεων Συστήµατα Διασφάλισης Ποιότητας ISO Διάλεξη 2

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο Έξη - Συνδετικά Kριτήρια Aντικειµένων και Συστατικών

Επεξεργασία πραγµατικού χρόνου Κατάτµηση της µνήµης

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών &

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Μεθοδολογίες Παραγωγής Λογισµικού

Οργάνωση επεξεργαστών και διεργασιών

ΕΝΟΤΗΤΕΣ ΣΤΟΧΟΙ ΔΡΑΣΤΗΡΙΟΤΗΤΕΣ. Κωδικός (ΑΑ) ΠΕΡΙΟΧΗ. 1 3 Το περιβάλλον εργασίας του Dreamweaver

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ÂÚÈÂ fiìâó ΠΡΟΛΟΓΟΣ...15

Κεφάλαιο 3 ΛΟΓΙΣΤΙΚΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

«Περιεχόµενα. 03 Εισαγωγή Ένα ολοκληρωµένο πληροφοριακό σύστηµα. 04 Περιγραφή Εργαλείο εφαρµογής διαδικασιών

Υποδείγματα Ανάπτυξης

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

2.4 Κλασσικά Προβλήματα IPC

Ενότητα 13. Εισαγωγή στην Πληροφορική. Κεφάλαιο 13Α. Αρχεία. Χειµερινό Εξάµηνο ρ. Παναγιώτης Χατζηδούκας (Π..407/80) προγραµµατισµός

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Transcript:

Σχεδίαση του συστήµατος (συνέχεια) Σχεδίαση Λογισµικού Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Ζητήµατα σχετικά µε τηδηµιουργία του σχεδίου Χαρακτηριστικά του καλού σχεδίου Τεχνικές για βελτίωση του σχεδίου Επαλήθευση (Evaluation) και επικύρωση (Validation) του σχεδίου Τεκµηρίωση του σχεδίου Αποσύνθεση και Τµηµατικότητα Αποσύνθεση (decomposition) Ξεκινάµε µε µια περιγραφή υψηλού επιπέδου των κεντρικών στοιχείων του συστήµατος Στα χαµηλότερα επίπεδα περιγράφουµε τον τρόπο που συσχετίζονται τα χαρακτηριστικά και οι λειτουργίες του συστήµατος Τµηµατικότητα (modularity) Τα αποτελέσµατα της αποσύνθεσης σχηµατίζουν συνθετικά µέρη που καλούνται τµήµατα ή συστατικά (modules) ή δοµικές µονάδες (components). Αρθρωτό σύστηµα (Modular system): κάθε λειτουργία του συστήµατος εκτελείται από ακριβώς µία δοµική µονάδα Επίπεδα αποσύνθεσης και συστατικά Υψηλότερο επίπεδο Πρώτο επίπεδο αποσύνθεσης εύτερο επίπεδο αποσύνθεσης 1

Μέθοδοι αποσύνθεσης Αποσύνθεση σε µονάδες [modular decomposition]: απόδοση λειτουργιών σε δοµικές µονάδες Αποσύνθεση προσανατολισµένη στα δεδοµένα [Dataoriented decomposition]: βασίζεται σε εξωτερικές δοµές δεδοµένων Αποσύνθεση προσανατολισµένη στα γεγονότα [Eventoriented decomposition] (χρησιµοποιεί πληροφορίες για τα γεγονότα και τον τρόπο που αλλάζουν την κατάσταση του συστήµατος) Σχεδίαση από έξω προς τα µέσα (Outside-in design): είσοδος χρηστών, επεξεργασία, έξοδος Αντικειµενοστραφής σχεδίαση (Object-oriented design (αναγνωρίζει κλάσεις αντικειµένων και τις σχέσεις µεταξύ τους) Σχεδίαση µε βάση συστατικά (modules) Ευκολότερο λογισµικό όσον αφορά τη δηµιουργία τις αλλαγές και τη συντήρηση Χρήση συστατικών Μέγεθος δοµικών µονάδων Ποιος είναι ο βέλτιστος αριθµός δοµικών µονάδων τη σχεδίαση µιας συγκεκριµένης εφαρµογής; Κόστος ανάπτυξης συστατικών κόστος λογισµικού Κόστος σύνδεσης συστατικών Μπορεί να εξεταστεί από δυο πλευρές: τι έχει µέσα; πόσο µεγάλη είναι; Βέλτιστος αριθµός συστατικών Αριθµός συστατικών ΟΜΙΚΗ ΜΟΝΑ Α 2

Απόκρυψη πληροφοριών πελάτες συστατικό ελεγχόµενη διασύνδεση "secret" αλγόριθµοι Συγκεκριµένη απόφαση σχεδίασης δοµές δεδοµένων λεπτοµέρειες εξωτερικής διασύνδεσης πολιτική απόδοσης πόρων Σε τι εξυπηρετεί η απόκρυψη πληροφοριών Ελαττώνει την πιθανότητα παρενεργειών Περιορίζει τη συνολική επίδραση των τοπικών αποφάσεων σχεδίασης Τονίζει την ελεγχόµενη επικοινωνία µεταξύ διασυνδέσεων εν ευνοεί τη χρήση καθολικών δεδοµένων Οδηγεί σε ενθυλάκωση, ένα χαρακτηριστικό σχεδίασης καλής ποιότητας Έχει σαν αποτέλεσµα λογισµικό υψηλής ποιότητας Στυλ και στρατηγικές στην αρχιτεκτονική Τρία επίπεδα σχεδίασης (Shaw and Garlan 1996): Αρχιτεκτονική: συσχετίζει τις δυνατότητες του συστήµατος που έχουν αναγνωριστεί στην προδιαγραφή των απαιτήσεων µε τατµήµατα του συστήµατος που θα τις υλοποιήσουν απαιτήσεις -> τµήµατα συστήµατος Σχεδίαση κώδικα: τµήµατα -> αλγόριθµοι και δοµές δεδοµένων Σχεδίαση του εκτελέσιµου: αλγόριθµοι -> καταχώρηση µνήµης, χρόνος εκτέλεσης, βελτιστοποίηση κώδικα... Ορισµός και ιδιότητες αρχιτεκτονικής λογισµικού Η συνολική δοµή του λογισµικού και οι τρόποι µε τους οποίους αυτή παρέχει ιδεατή ολοκλήρωση (conceptual integrity) του συστήµατος [SHA95a] Ιδιότητες δοµής: ορίζουν τα συστατικά του συστήµατος και τον τρόπο που αυτά τα συστατικά οµαδοποιούνται και αλληλεπιδρούν µεταξύ τους. Για παράδειγµα, τα αντικείµενα ορίζονται έτσι ώστε να περιέχουν και δεδοµένα και την επεξεργασία των δεδοµένων και αλληλεπιδρούν µε κλήση των δηµόσιων µεθόδων τους Μη λειτουργικές ιδιότητες: Η περιγραφή του σχεδίου θα πρέπει να περιλαµβάνει τους τρόπους µε τους οποίους η συγκεκριµένη αρχιτεκτονική ικανοποιεί µη λειτουργικέςαπαιτήσειςόπωςαπόδοση, αξιοπιστία, ασφάλεια και προσαρµοστικότητα Οικογένειες από συγγενή συστήµατα: Ησχεδίασητης αρχιτεκτονικής πρέπει να µπορεί να βασίζεται σε πρότυπα σχεδίασης (design patterns) που απαντώνται συχνά στη σχεδίαση οικογενειών από συγγενή συστήµατα και να έχει τη δυνατότητα να επαναχρησιµοποιεί γνωστές αρχιτεκτονικές δοµές 3

Στυλ αρχιτεκτονικής (architectural styles) Κάθε στυλ αρχιτεκτονικής περιγράφει µια κατηγορία συστηµάτων που περιλαµβάνει: Ένα σύνολο συστατικών [π.χ. συστατικά υπολογισµών, µια βάση δεδοµένων, συστατικά διασύνδεσης µε το χρήστη ] Ένα σύνολο από συνδέσεις που επιτρέπουν επικοινωνία και ανταλλαγή πληροφοριών µεταξύ των συστατικών Περιορισµούς και κανόνες που ορίζουν πώς τα συστατικά µπορούν να ολοκληρωθούν για να σχηµατίσουν το σύστηµα Μοντέλα σηµαντικής (semantic models) που επιτρέπουν στο σχεδιαστή να αντιληφθεί τις συνολικές ιδιότητες του συστήµατος αναλύοντας τις ιδιότητες των µερών του. Στύλ αρχιτεκτονικής (συνέχεια) ιοχετεύσεις και φίλτρα Αντικειµενοστραφής σχεδίαση Υπονοούµενη επίκληση ιαστρωµάτωση, αποθήκες δεδοµένων ιερµηνευτές, έλεγχος διεργασιών Κατανεµηµένα συστήµατα, συστήµατα πελάτηεξυπηρετητή, Αρχιτεκτονικές που εξειδικεύονται σε ένα πεδίο Άλλα... (Kazman et. Al) ιοχετεύσεις και φίλτρα ιοχετεύσεις και φίλτρα: ιδιότητες ιοχέτευση Φίλτρο Εύκολο να κατανοηθούν µε βάσητα: είσοδος -> µετασχηµατισµός -> έξοδος Είναι ανεξάρτητα και εποµένως το σύστηµα µπορεί να µελετηθεί µε προσοµοίωση και να µελετηθεί π.χ. η διεκπεραιωτική ικανότητα του συστήµατος Επαναχρησιµοποιούνται εύκολα Εύκολο να προστεθούν και να αφαιρεθούν Επιτρέπεται η ταυτόχρονη εκτέλεση φίλτρων Π.χ. στη µεταγλώττιση προγραµµάτων 4

Αντικειµενοστραφής σχεδίαση Αναπαριστούµε τοπρόβληµα σανµια συλλογή από αλληλεπιδρώντα αντικείµενα Για να λάβει χώρα η αλληλεπίδραση πρέπει να είναι γνωστή στα αντικείµενα η ταυτότητα των υπόλοιπων αντικειµένων Η αναπαράσταση των δεδοµένων πρέπει να αποκρύπτεται από τα υπόλοιπα αντικείµενα Εξάρτηση µεταξύ των αντικειµένων Η αλλαγή της ταυτότητας ενός αντικειµένου απαιτεί αλλαγή όλων των άλλων αντικειµένων µε ταοποία αλληλεπιδρά Υπονοούµενη επίκληση Καθοδηγείται από γεγονότα και είναι βασισµένο στην έννοια της εκποµπής Αντί να καλείται άµεσα µια διαδικασία ανακοινώνεται κάποια ακολουθία γεγονότων Πρόβληµα: Κατά την ανακοίνωση του γεγονότος δεν είναι γνωστό ποιό συστατικό θα επεξεργαστεί το γεγονός Λύση: τα συστατικά ταξινοµούνται σε επίπεδα (levels) και τα συστατικά στο υψηλότερο επίπεδο της ιεραρχίας επεξεργάζονται το γεγονός αν είναι διαθέσιµα. Αν όχι τότε το γεγονός προχωρά για επεξεργασία στα χαµηλότερα επίπεδα Παράδειγµα: συντάκτες κειµένου για γεγονότα που µπορούν να προκύψουν κατά την εκσφαλµάτωση ιαστρωµάτωση ιαστρωµένη αρχιτεκτονική Κρυπτογραφία ιασύνδεση αρχείων ιαχείριση κλειδιών Πιστοποίηση ταυτότητας Χρήστες ιαστρωµένη αρχιτεκτονική ασφαλείας Κάθε στρώµα παρέχει υπηρεσίες σ αυτό που βρίσκεται αµέσως πιο έξω και λειτουργεί ως πελάτης στο στρώµα που βρίσκεται πιο µέσα Περίπτωση 1: ένα στρώµα έχειπρόσβασηµόνο σε γειτονικά στρώµατα Περίπτωση 2: ένα στρώµα έχει πρόσβαση σε κάποια άλλα στρώµατα αλλά όχι όλα Ηπερίπτωση1 χρησιµοποιείται στις περισσότερες διαστρωµένες αρχιτεκτονικές Τα στρώµατα αντιπροσωπεύουν επίπεδα αφαίρεσης Οι χρήστες µπορούν να προσπελάσουν το σύστηµα σε διαφορετικά στρώµατα του σχεδίου ανάλογα µε τις ανάγκες που εκφράζονται στις απαιτήσεις 5

Πηγή Γνώσεων 3 Αποθήκες δεδοµένων Πηγή Γνώσεων 4 Αποθήκη (κοινά δεδοµένα) Πηγή Γνώσεων 5 Αρχιτεκτονικές αποθηκών δεδοµένων Κεντρική αποθήκη δεδοµένων (µαυροπίνακας) Συλλογή συστατικών (πηγές γνώσης: οντότητες, αντικείµενα) Οι αλλαγές στα δεδοµένα (κατάσταση του συστήµατος) στην κεντρική αποθήκη δεδοµένων ενεργοποιούν την αντίδραση των συστατικών Σε συσχεσιακή βάση δεδοµένων οι συναλλαγές ρυθµίζουν την εκτέλεση των διεργασιών Πηγή Γνώσεων 2 Πηγή Γνώσεων 1 Πηγή Γνώσεων 6 ιερµηνευτές Ένας διερµηνευτής δέχεται µια αλυσίδα χαρακτήρων και τη µετατρέπει σε κώδικα ο οποίος κατόπιν εκτελείται Η µετατροπή λαµβάνει χώρα σε µια σειρά βηµάτων Σταθερό σηµείο Έλεγχος διεργασιών ΒΡΟΧOΣ ΑΝΑ ΡΑΣΗΣ: Μεταβλητές εισόδου ιεργασία Ελεγκτής Αλλαγές στις ρυθµιζόµενες µεταβλητές Ελεγχόµενη µεταβλητή Σταθερό σηµείο ΒΡΟΧΟΣ ΕΜΠΡΟΣΘΙΑΣ ΜΕΤΑ ΟΣΗΣ: Μεταβλητές εισόδου ιεργασία Ελεγκτής Αλλαγές στις ρυθµιζόµενες µεταβλητές Ελεγχόµενη µεταβλητή Συστήµατα οπισθοδροµικής και εµπρόσθιας µετάδοσης (Shaw and Garlan 1996) 6

Κατανεµηµένα Συστήµατα Πελάτης - Εξυπηρετητής Ο πελάτης ζητά µια υπηρεσία Ο εξυπηρετητής παρέχει την υπηρεσία Τοπολογία δαχτυλιδιού Τοπολογία αστέρα Βασικό πλεονέκτηµα: Η υπηρεσία παρέχεται όταν ζητείται Αρχιτεκτονικές εξειδικευµένες σε πεδία Χρησιµοποιούν στοιχεία του συγκεκριµένου πεδίου όπως αυτοκινητοβιοµηχανίες, µεταφορές υλικών (logistics) ήγραµµές παραγωγής Αντιστοιχούν τις αρχιτεκτονικές µε φυσικές αρχιτεκτονικές του πεδίου εφαρµογής (π.χ. ένας πράκτορας για κάθε εργαζόµενο) Ζητήµατα στη δηµιουργία σχεδίου Κατά την επιλογή του κατάλληλου στυλ αρχιτεκτονικής πρέπει να λαµβάνονται υπ όψη τα παρακάτω ζητήµατα: Τµηµατικότητα και επίπεδα αφαίρεσης Συνεργατική σχεδίαση Η σχεδίαση της διασύνδεσης χρήστη Ταυτοχρονισµός (Concurrency) Πρότυπα σχεδίων και επαναχρησιµοποίηση 7

Τµηµατικότητα και επίπεδα αφαίρεσης Απόκρυψη πληροφοριών: Σε µια τµηµατικήσχεδίασητα τµήµατα έχουν ευκρινώς καθορισµένες εισόδους και εξόδους και κάθε τµήµα έχει ένα σαφώς διατυπωµένο σκοπό Επίπεδα αφαίρεσης: Οι δοµικές µονάδες ενός επιπέδου εξειδικεύουν αυτές που βρίσκονται στο πιο πάνω επίπεδο Περισσότερες λεπτοµέρειες στα χαµηλότερα επίπεδα Συνεργατική σχεδίαση Στα περισσότερα έργα, το σχέδιο δεν δηµιουργείται από ένα µόνο πρόσωπο Μια οµάδα εργάζεται συνεργατικά για να παράγει ένα σχέδιο, συχνά αναθέτοντας διαφορετικά µέρη του σχεδίου σε διαφορετικούς ανθρώπους Συνεργατικές οµάδες µπορεί να είναι διάσπαρτες οπουδήποτε στον κόσµο Προβλήµατα επικοινωνίας καθώς και απουσία προσωπικής επαφής Σχεδίαση της διασύνδεσης χρήστη Η διασύνδεση χρήστη πρέπει να περιλαµβάνει τα παρακάτω στοιχεία (Marcus 1993): Μεταφορές (metaphors): θεµελιώδεις όροι, εικόνες, και έννοιες που ο χρήστης µπορεί να αναγνωρίσει και να µάθει Πνευµατικό µοντέλο (mental model): οργάνωση και αναπαράσταση δεδοµένων, λειτουργιών, δραστηριοτήτων και ρόλων Κανόνες πλοήγησης (navigation rules): Τρόπος µετακίνησης διαµέσου των παραπάνω Εµφάνιση (look): χαρακτηριστικά της εµφάνισης του συστήµατος που παρέχουν πληροφορίες στο χρήστη Αίσθηση (feel):οι τεχνικές αλληλεπίδρασης που παρέχουν µια ευχάριστη εµπειρία στο χρήστη Ζητήµατα σχετικά µε τη διασύνδεση χρήστη Ζητήµατα κουλτούρας Προτιµήσεις χρήστη Κατευθυντήριες γραµµές για τον προσδιορισµό των χαρακτηριστικών της διασύνδεσης χρήστη 8

Ζητήµατα κουλτούρας Προτιµήσεις του χρήστη Επιλογή χρώµατος, πορφυρό? Αγγλία: σηµαίνει βασιλική καταγωγή Ιαπωνία: αριστοκρατία και αξιοπρέπεια Ελλάδα: Θάνατο ατύχηµα Για να είναι τα συστήµατα ανεξάρτητα κουλτούρας: Πρέπει να εξαλειφθούν συγκεκριµένες αναφορές σε κουλτούρα (π.χ. χρησιµοποιώντας ουδέτερα χρώµατα) Προσαρµογή στις κουλτούρες αυτών που θα χρησιµοποιούν το λογισµικό Υπάρχουν διαφορές στις προτιµήσεις των χρηστών. εν υπάρχει διασύνδεση που να είναι κατάλληλη για τον καθένα Προτυποποίηση όσον αφορά την οµάδα χρηστών στις οποίες απευθύνεται η εφαρµογή Παροχή δυνατοτήτων ρύθµισης της διασύνδεσης χρήστης (π.χ. Microsoft Office) Ευκολία χρήσης Κατευθυντήριες γραµµές για προσδιορισµό των χαρακτηριστικών της διασύνδεσης χρήστη Υψηλή Μέση Χαµηλή Αναγνώριση φωνής Γραµµή εντολών Φόρµες Οθόνη επαφής OCR Εισαγωγή δεδοµένων Ταυτοχρονισµός Οι ενέργειες πρέπει να γίνονται ταυτόχρονα Πρόβληµα: Η ανάγκη για διασφάλιση της συνέπειας (consistency) των δεδοµένων τα οποία µοιράζονται µεταξύ δοµικών µονάδων που εκτελούνται την ίδια ώρα Λύση: Συγχρονισµός Αµοιβαίος αποκλεισµός (mutual exclusion) Αποµονωτές (Monitors) Φρουροί (Guardians) 9

Αµοιβαίος αποκλεισµός Εξασφαλίζει ότι όταν µια διεργασία προσπελαύνει κάποια δεδοµένα, καµία άλλη διεργασία δεν προσπελαύνει τα συγκεκριµένα δεδοµένα Έλεγχος και κλείδωµα: Αν µια λειτουργία ελέγχει την κατάσταση ενός αντικειµένου τότε το αντικείµενο πρέπει να κλειδωθεί ώστε η κατάστασή του να µην αλλάζει µεταξύ της στιγµής που γίνεται ο έλεγχος και της στιγµής που µια γίνεται µια ενέργεια βασισµένη στα αποτελέσµατα του ελέγχου Αποµονωτές Ένας αποµονωτής είναι ένα αφηρηµένο αντικείµενο που ελέγχει τον αµοιβαίο αποκλεισµό για µια συγκεκριµένη διεργασία (π.χ. έλεγχο ενός πόρου) Όποιος θέλει να προσπελάσει τον πόρο θα πρέπει να το κάνει δια µέσου του αποµονωτή Ο αποµονωτής επιτρέπει µια προσπέλαση στον πόρο κάθε φορά και σταµατάει άλλες απόπειρες προσπέλασης που γίνονται την ίδια στιγµή Φρουροί Ένας φρουρός είναι µια λειτουργία που εκτελείται συνεχώς Ο µοναδικός στόχος ενός φρουρού είναι να ελέγχει την πρόσβαση σε ενθυλακωµένους πόρους (δηλαδή δοµές δεδοµένων ή διεργασίες) A guardian is a task that is always running: its only purpose is to control access to an encapsulated resource. Others interact with the guardian, and does not interact directly with the encapsulated resource. 10