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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Επιµέλεια Θοδωρής Πιερράτος

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

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

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

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

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

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

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

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

Κανόνες για ανάπτυξη διαγραµµάτων κλάσεων

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

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

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

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

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

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

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

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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

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

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

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

Εισαγωγή στην Τεχνολογία Λογισµικού

Η συμβολή στην επιτυχία ενός οργανισμού, παρουσιάζοντας σχετικά δεδομένα με τη χρήση τεχνικών 2Δ ή 3Δ τεχνολογίας. Αρμοδιότητα

Δομή και Στόχοι του Μαθήματος - Εισαγωγή

Σημειώσεις στο μάθημα «Στοιχεία Προγραμματισμού σε Γραφικό Περιβάλλον»

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

ΣΧΕΔΙΑΣΗ & ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ

Θωρακείστε την επιχείρηση σας

Πλαίσιο Εργασιών. Στρατηγικές Ευκαιρίες

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

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

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

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

Κωδικός: <Κωδ.Αρ.Εγγράφου/ΚωδικόΌνομαΈργου/Αρ. Έκδοσης> <Company Name> <Όνομα - Κωδικό Όνομα Έργου> Έγγραφο Περιγραφής Σχεδίου Λογισμικού

Α ΤΑΞΗ. 1 η ΕΝΟΤΗΤΑ: Γνωρίζω τον υπολογιστή. Θα παρουσιαστεί µε τρόπο απλό και κατανοητό,

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

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

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

ιαδίκτυα & Ενδοδίκτυα Η/Υ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Εισαγωγή στην Τεχνολογία Λογισµικού

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

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

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

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

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

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

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

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

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

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

Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα)

Β Εξάµηνο Τίτλος Μαθήµατος Θ Φ Α.Π Ε Φ.E. Π.Μ Προαπαιτούµενα

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

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΟΙΚΗΣΗΣ. Ανάπτυξη Πληροφοριακών Συστηµάτων Επισκόπηση Π.Σ. & τεχνικές για Ανάλυση και Ανάπτυξη. πληροφοριακών συστηµάτων

Transcript:

Σχεδίαση συστήµατος Εισαγωγή στη Σχεδίαση Λογισµικού Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Σχεδίαση ενός συστήµατος είναι ο προσδιορισµός ενός συνόλου δοµικών µονάδων και διασυνδέσεων µεταξύ των µονάδων που ικανοποιούν ένα συγκεκριµένο σύνολο προδιαγραφών Ορισµός της Σχεδίασης Αποσύνθεση και Τµηµατικότητα (Decomposition and Modularity) Στύλ και Στρατηγικές στην Αρχιτεκτονική (Architectural Styles and Strategies) Ορισµός της σχεδίασης Στην τεχνολογία λογισµικού διεργασία της σχεδίασης θεωρείται η δηµιουργική διεργασία που µετατρέπει ένα πρόβληµα στη λύση του. Το προϊόν της σχεδίασης είναι µια περιγραφή της λύσης Τι είναι όµως λύση; Θεωρούµε οτιέναλογισµικό αποτελεί λύση για ένα πρόβληµα αν ικανοποιεί όλες τις προδιαγραφές των απαιτήσεων Εννοιολογικό και Τεχνικό σχέδιο Το εννοιολογικό σχέδιο λέει στον πελάτη ακριβώς τι θα κάνει το σύστηµα (Το Τί της λύσης), π.χ. Από πού θα προέρχονται τα δεδοµένα Τι θα συµβεί στα δεδοµένα µέσα στο σύστηµα Τι επιλογές θα προσφέρονται στους χρήστες Πώς θα µοιάζουν οι αναφορές και οι οθόνες Το τεχνικό σχέδιο επιτρέπει στους κατασκευαστές συστηµάτων να αντιληφθούν τις πραγµατικές ανάγκες σε υλικό και λογισµικό ώστε να λυθεί το πρόβληµα τουπελάτη(το πώς της λύσης), π.χ. Περιγραφή των κυρίων συστατικών υλικού και των λειτουργιών τους Ιεραρχία και λειτουργία των συστατικών του λογισµικού οµές δεδοµένων και ροή δεδοµένων Γράφονται και τα δύο συνήθως σε ένα κείµενο όταν οι πελάτες µπορούν να τα παρακολουθήσουν 1

Σύγκριση εννοιολογικής και τεχνικής σχεδίασης Τί Εννοιολογική σχεδίαση λειτουργία Πελάτες Σχεδιαστές Συστήµατος Πώς Τεχνική Σχεδίαση Κατασκευαστές Συστήµατος φόρµα Καλή εννοιολογική σχεδίαση Γράφεται στη γλώσσα που καταλαβαίνει ο πελάτης Εξηγεί τα εξωτερικά χαρακτηριστικά του συστήµατος (δηλαδή αυτά που µπορούν να παρατηρηθούν από τους πελάτες) εν περιέχει τεχνική γλώσσα (αν είναι απαραίτητο αυτή πρέπει να οριστεί) Περιγράφει τις λειτουργίες του συστήµατος Είναι ανεξάρτητο από την υλοποίηση Συνδέεται µε τοκείµενο απαιτήσεων Καλή τεχνική σχεδίαση Κείµενα σχεδίασης Περιγράφει όλες τα κύριες δοµικές µονάδες υλικού και τις λειτουργίες τους είχνει την ιεραρχία (οργάνωση) των λειτουργιών των δοµικών µονάδων είχνει τις δοµές των δεδοµένων και τη ροή των δεδοµένων είχνει τις διασυνδέσεις µε το χρήστη Ο χρήστηςθα µπορεί να απευθύνει µηνύµατα σε οποιοδήποτε άλλο χρήστη σε οποιοδήποτε άλλο Η/Υ του δικτύου Τοπολογία δικτύου Πρωτόκολλα Ταχύτητα µεταφοράς δεδοµένων (bps)... Εννοιολογική σχεδίαση Τεχνική σχεδίαση 2

Σχεδίαση του συστήµατος (συνέχεια) Ζητήµατα σχετικά µε τηδηµιουργία του σχεδίου Χαρακτηριστικά του καλού σχεδίου Τεχνικές για βελτίωση του σχεδίου Επαλήθευση (Evaluation) και επικύρωση (Validation) του σχεδίου Τεκµηρίωση του σχεδίου Αποσύνθεση και Τµηµατικότητα Αποσύνθεση (decomposition) Ξεκινάµε µε µια περιγραφή υψηλού επιπέδου των κεντρικών στοιχείων του συστήµατος Στα χαµηλότερα επίπεδα περιγράφουµε τον τρόπο που συσχετίζονται τα χαρακτηριστικά και οι λειτουργίες του συστήµατος Τµηµατικότητα (modularity) Τα αποτελέσµατα της αποσύνθεσης σχηµατίζουν συνθετικά µέρη που καλούνται τµήµατα ή συστατικά (modules) ή δοµικές µονάδες (components). Αρθρωτό σύστηµα (Modular system): κάθε λειτουργία του συστήµατος εκτελείται από ακριβώς µία δοµική µονάδα Επίπεδα αποσύνθεσης και συστατικά Υψηλότερο επίπεδο Πρώτο επίπεδο αποσύνθεσης εύτερο επίπεδο αποσύνθεσης Μέθοδοι αποσύνθεσης Αποσύνθεση σε µονάδες [modular decomposition]: απόδοση λειτουργιών σε δοµικές µονάδες Αποσύνθεση προσανατολισµένη στα δεδοµένα [Dataoriented decomposition]: βασίζεται σε εξωτερικές δοµές δεδοµένων Αποσύνθεση προσανατολισµένη στα γεγονότα [Eventoriented decomposition] (χρησιµοποιεί πληροφορίες για τα γεγονότα και τον τρόπο που αλλάζουν την κατάσταση του συστήµατος) Σχεδίαση από έξω προς τα µέσα (Outside-in design): είσοδος χρηστών, επεξεργασία, έξοδος Αντικειµενοστραφής σχεδίαση (Object-oriented design (αναγνωρίζει κλάσεις αντικειµένων και τις σχέσεις µεταξύ τους) 3

Σχεδίαση µε βάση συστατικά (modules) Ευκολότερο λογισµικό όσον αφορά τη δηµιουργία τις αλλαγές και τη συντήρηση Χρήση συστατικών Ποιος είναι ο βέλτιστος αριθµός δοµικών µονάδων τη σχεδίαση µιας συγκεκριµένης εφαρµογής; Κόστος ανάπτυξης συστατικών κόστος λογισµικού Κόστος σύνδεσης συστατικών Βέλτιστος αριθµός συστατικών Αριθµός συστατικών Μέγεθος δοµικών µονάδων Απόκρυψη πληροφοριών Μπορεί να εξεταστεί από δυο πλευρές: τι έχει µέσα; πόσο µεγάλη είναι; συστατικό ελεγχόµενη διασύνδεση αλγόριθµοι δοµές δεδοµένων λεπτοµέρειες εξωτερικής διασύνδεσης πολιτική απόδοσης πόρων πελάτες "secret" ΟΜΙΚΗ ΜΟΝΑ Α Συγκεκριµένη απόφαση σχεδίασης 4

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

Στύλ αρχιτεκτονικής (συνέχεια) ιοχετεύσεις και φίλτρα ιοχετεύσεις και φίλτρα Αντικειµενοστραφής σχεδίαση Υπονοούµενη επίκληση ιαστρωµάτωση, αποθήκες δεδοµένων ιερµηνευτές, έλεγχος διεργασιών Κατανεµηµένα συστήµατα, συστήµατα πελάτηεξυπηρετητή, Αρχιτεκτονικές που εξειδικεύονται σε ένα πεδίο Άλλα... (Kazman et. Al) ιοχέτευση Φίλτρο Π.χ. στη µεταγλώττιση προγραµµάτων ιοχετεύσεις και φίλτρα: ιδιότητες Εύκολο να κατανοηθούν µε βάσητα: είσοδος -> µετασχηµατισµός -> έξοδος Είναι ανεξάρτητα και εποµένως το σύστηµα µπορεί να µελετηθεί µε προσοµοίωση και να µελετηθεί π.χ. η διεκπεραιωτική ικανότητα του συστήµατος Επαναχρησιµοποιούνται εύκολα Εύκολο να προστεθούν και να αφαιρεθούν Επιτρέπεται η ταυτόχρονη εκτέλεση φίλτρων Αντικειµενοστραφής σχεδίαση Αναπαριστούµε τοπρόβληµα σανµια συλλογή από αλληλεπιδρώντα αντικείµενα Για να λάβει χώρα η αλληλεπίδραση πρέπει να είναι γνωστή στα αντικείµενα η ταυτότητα των υπόλοιπων αντικειµένων Η αναπαράσταση των δεδοµένων πρέπει να αποκρύπτεται από τα υπόλοιπα αντικείµενα Εξάρτηση µεταξύ των αντικειµένων Η αλλαγή της ταυτότητας ενός αντικειµένου απαιτεί αλλαγή όλων των άλλων αντικειµένων µε ταοποία αλληλεπιδρά 6

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

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

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

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

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

Αποµονωτές Ένας αποµονωτής είναι ένα αφηρηµένο αντικείµενο που ελέγχει τον αµοιβαίο αποκλεισµό για µια συγκεκριµένη διεργασία (π.χ. έλεγχο ενός πόρου) Όποιος θέλει να προσπελάσει τον πόρο θα πρέπει να το κάνει δια µέσου του αποµονωτή Ο αποµονωτής επιτρέπει µια προσπέλαση στον πόρο κάθε φορά και σταµατάει άλλες απόπειρες προσπέλασης που γίνονται την ίδια στιγµή Φρουροί Ένας φρουρός είναι µια λειτουργία που εκτελείται συνεχώς Ο µοναδικός στόχος ενός φρουρού είναι να ελέγχει την πρόσβαση σε ενθυλακωµένους πόρους (δηλαδή δοµές δεδοµένων ή διεργασίες) 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. 12