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

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

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

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

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

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

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

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

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

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

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

Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης

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

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

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

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

Περιεχόμενα. Κεφάλαιο 2 Κοινωνικοτεχνικά συστήματα 49

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

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

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

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

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

Διαχείριση Πληροφοριακών Συστημάτων

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Κεφάλαιο 4: Λογισμικό Συστήματος

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

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

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

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

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

Συστήματα Πληροφοριών Διοίκησης

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΟΙΚΗΣΗΣ MANAGEMENT INFORMATION SYSTEMS (M.I.S.)

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

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

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

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

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

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

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

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

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Σύστημα. Αντώνης Μαϊργιώτης

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

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

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

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

Τ.Ε.Ι. ΚΡΗΤΗΣ, Σ.Δ.Ο., Τμήμα Λογιστικής. ERP Systems

Έγγραφο Περιγραφής Απαιτήσεων Λογισμικού

ΓΕΩΠΛΗΡΟΦΟΡΙΚΗ. και ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ

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

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

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

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

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL

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

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

Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρο-μεσαίες Επιχειρήσεις»

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

Αρχίζοντας. Το Joomla τρέχει: Στο Joomla μπορούμε να προσθέσουμε επιπλέον λειτουργικότητα, να την επεκτείνουμε δηλαδή (extensions) PHP MySql

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Πληροφορική. Μάθημα Κατεύθυνσης

Συστήματα Πραγματικού Χρόνου. Real Time Systems, RTS

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

Μάθημα 1 ο ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Κεφάλαιο 4. Λογισμικό Συστήματος

1.8 Το μοντέλο OSI 1 / 33

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

09 Η γλώσσα UML II. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Ταχύτητα, Απλότητα & Αξιοπιστία

ΔΙΚΤΥΑ (15-17) Π. Φουληράς

Orchid: Integrating Schema Mapping and ETL ICDE 2008

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19

περιεχόμενα παρουσίασης

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System)

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

Information Technology for Business

Κέντρο Εξυπηρέτησης Κλήσεων ecall PSAP

Λάμπρος Καφίδας Εργασία Σχεδιασμός & Διοίκηση Έργου Ιανουάριος 2005 ΚΕΦΑΛΑΙΟ 1

Περιεχόμενα. Κεφάλαιο 2 Κοινωνικοτεχνικά συστήματα 49

Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας

Απαιτήσεις για την εγκατάσταση. Εφαρμογές Πληροφοριακών Συστημάτων Ιωάννης Καρύδης

11/5/2015. Οι επιχειρήσεις

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

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

Αναπαράσταση του κώδικα σε ένα ρομποτικό project

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

Προσομοίωση Συστημάτων

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Σχεδίαση Περιβάλλοντος εργασίας ενός Οργανισμού και Σχεδίαση Χάρτη διαδικασιών ενός Οργανισμού και

Transcript:

Αρχιτεκτονικός σχεδιασμός

Στόχοι O αρχιτεκτονικός σχεδιασμός και η σημασία του Οι αποφάσεις που πρέπει να λαμβάνονται κατά τη διαδικασία του αρχιτεκτονικού σχεδιασμού Παρουσίαση τριών συμπληρωματικών αρχιτεκτονικών στυλ που καλύπτουν Τη συνολική οργάνωση του συστήματος Την ανάλυση του σε υπομονάδες και Τον έλεγχό του Ο τρόπος χρήσης αρχιτεκτονικών αναφοράς για την έκφραση αρχιτεκτονικών εννοιών και τη σύγκριση αρχιτεκτονικών συστήματος

Περιεχόμενα Αποφάσεις αρχιτεκτονικού σχεδιασμού Οργάνωση συστήματος Στυλ αποδόμησης σε υπομονάδες Στυλ ελέγχου Αρχιτεκτονικές αναφοράς

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

Αρχιτεκτονικός σχεδιασμός Software architecture Πρώιμο στάδιο της διαδικασίας σχεδιασμού συστημάτων Προσδιορίζει τα κύρια συστατικά του συστήματος και την επικοινωνίας τους Συνδέει τις διαδικασίες Κατάρτισης προδιαγραφών και Σχεδιασμού Συχνά πραγματοποιείται παράλληλα με άλλες δραστηριότητες που αφορούν τις προδιαγραφές

Πλεονεκτήματα μιας ρητά σχεδιασμένης αρχιτεκτονικής Επικοινωνία με τους ενδιαφερόμενους Σημείο αναφοράς για τις συζητήσεις Ανάλυση συστήματος Συνεπάγεται ότι είναι εφικτή η ανάλυση για το αν το σύστημα θα μπορέσει να ικανοποιήσει τις μη λειτουργικές απαιτήσεις του Επαναχρησιμοποίηση σε μεγάλη κλίμακα Μπορεί να υπάρχει δυνατότητα επαναχρησιμοποίησης της αρχιτεκτονικής σε πολλά συστήματα

Αρχιτεκτονική και χαρακτηριστικά συστήματος Απόδοση - performance Localization κρίσιμων διαδικασιών (περιορισμός αστοχίας σε μικρά τμήματα) Ελαχιστοποίηση της επικοινωνίας Μεγάλα υποσυστήματα (αντί για μικρά) μεγαλύτερη απόδοση, δυσκολότερη συντήρηση Προστασία από εξωτερικούς κινδύνους - security Χρήση layered αρχιτεκτονικής Με τους κρίσιμους πόρους στα εσωτερικά επίπεδα (layers) Ασφάλεια - safety Localization of safety critical features σε μικρό αριθμό υποσυστημάτων Διαθεσιμότητα - availability Redundant components and other mechanisms for fault tolerance Συντηρησιμότητα - maintanability Fine grain, replaceable components

Αρχιτεκτονικές αντιφάσεις architectural conflicts Η χρήση μεγάλων συστατικών βελτιώνει την απόδοση, αλλά μειώνει τη συντηρησιμότητα Η εισαγωγή πλεοναζόντων δεδομένων βελτιώνει τη διαθεσιμότητα, αλλά δυσχεραίνει την προστασία από εξωτερικούς κινδύνους Localization of safety critical features συνήθως συνεπάγεται περισσότερη επικοινωνία, άρα μειωμένη απόδοση

High level architectural design Block diagrams

Δόμηση συστήματος system structuring Αποδόμηση του συστήματος σε υποσυστήματα που αλληλοεπιδρούν Ο αρχιτεκτονικός σχεδιασμός απεικονίζεται με ένα δομικό διάγραμμα block (and line) diagram Παρουσιάζει μια υψηλού επιπέδου εικόνα της δομής συστήματος Πιο συγκεκριμένα μοντέλα δείχνουν πώς τα υποσυστήματα μοιράζονται δεδομένα και επικοινωνούν

Διαγράμματα που αποτελούνται από γραμμές και πλαίσια box and line diagrams Πολύ αφαιρετικά Δεν δείχνουν τη φύση των σχέσεων των συστατικών Ούτε και τις εξωτερικά ορατές ιδιότητες των υποσυστημάτων Όμως είναι χρήσιμα για την επικοινωνία με τους ενδιαφερόμενους και για τον προγραμματισμό του έργου

Δομικό διάγραμμα συστήματος ελέγχου ρομποτικής συσκευασίας

Packing robot control system

Architectural decisions

Αποφάσεις αρχιτεκτονικού σχεδιασμού Ο αρχιτεκτονικός σχεδιασμός είναι μια δημιουργική διαδικασία Διαφέρει ανάλογα με τον τύπο του συστήματος που αναπτύσσεται Ωστόσο, όλες οι διαδικασίες του σχεδιασμού επηρεάζονται από μια σειρά από θεμελιώδεις αποφάσεις

Αποφάσεις αρχιτεκτονικού σχεδιασμού Υπάρχει κάποια γενική αρχιτεκτονική εφαρμογών που μπορεί να χρησιμοποιηθεί; Πώς θα κατανέμεται το σύστημα σε πολλούς επεξεργαστές; Ποια αρχιτεκτονικά στυλ είναι κατάλληλα; Ποια προσέγγιση θα χρησιμοποιηθεί για τη δόμηση του συστήματος; Πώς θα αποδομηθεί το σύστημα σε υπομονάδες; Ποια στρατηγική ελέγχου πρέπει να χρησιμοποιηθεί; Πώς θα γίνει η αξιολόγηση του αρχιτεκτονικού σχεδιασμού; Πώς πρέπει να τεκμηριωθεί η αρχιτεκτονική του συστήματος;

Επαναχρησιμοποίηση αρχιτεκτονικής architecture reuse Συστήματα τα οποία ανήκουν στο ίδιο πεδίο εφαρμογής συχνά διαθέτουν παρόμοιες αρχιτεκτονικές Που αντανακλούν τις βασικές έννοιες - concepts του πεδίου Οι διαδικασίες υλοποίησης προϊόντων λογισμικού δομούνται γύρω από μια κεντρική αρχιτεκτονική, με παραλλαγές Που ικανοποιούν ειδικότερες απαιτήσεις των πελατών Στο Κεφάλαιο 13 θα εξετάσουμε τις αρχιτεκτονικές εφαρμογών και στο Κεφάλαιο 18 τις γραμμές προϊόντων.

Αρχιτεκτονικά στυλ Architectural styles Το αρχιτεκτονικό μοντέλο ενός συστήματος μπορεί να ακολουθεί conform to - ένα γενικό αρχιτεκτονικό μοντέλο ή στυλ Η επίγνωση αυτών των στυλ μπορεί να απλουστεύσει το σχεδιασμό της αρχιτεκτονικής του συστήματος Ωστόσο, τα περισσότερα μεγάλα συστήματα είναι ετερογενή και δεν ακολουθούν ένα και μοναδικό στυλ

Αρχιτεκτονικά μοντέλα (τεκμηρίωση αρχιτεκτονικού σχεδιασμού) Architectural models Στατικά δομικά μοντέλα static structural models, παρουσιάζουν τα κύρια συστατικά στοιχεία του συστήματος - components Δυναμικά μοντέλα διαδικασιών dynamic process models, δείχνουν τη δομή διαδικασιών process structure Μοντέλα διασυνδέσεων interface models, ορίζουν τις διασυνδέσεις υποσυστημάτων Μοντέλα συσχετίσεων relationship models, που δείχνουν τις σχέσεις μεταξύ των υποσυστημάτων Π.χ. τα μοντέλα ροής δεδομένων ανάμεσα σε υποσυστήματα Μοντέλα κατανομής distribution models, που δείχνουν πώς κατανέμονται τα υποσυστήματα Σε πολλούς υπολογιστές

System organization

Οργάνωση συστήματος Αντικατοπτρίζει τη βασική στρατηγική δόμησης ενός συστήματος Τρία δημοφιλή στυλ οργάνωσης: Το κοινόχρηστο αποθετήριο δεδομένων shared data repository Οι κοινόχρηστες υπηρεσίες και διακομιστές shared services and server Layered σε επίπεδα (αφηρημένο στυλ)

Μοντέλο αποθετηρίου / βάσεων δεδομένων shared data models Τα υποσυστήματα πρέπει να ανταλλάσσουν δεδομένα. 2 βασικοί τρόποι: Τα κοινόχρηστα δεδομένα αποθηκεύονται σε μια κεντρική βάση δεδομένων και μπορούν να προσπελαστούν από όλα τα υποσυστήματα Κάθε υποσύστημα τηρεί δική του βάση δεδομένων και μοιράζει τα δεδομένα ρητά στα άλλα υποσυστήματα Όταν πρόκειται να χρησιμοποιηθούν από κοινού μεγάλοι όγκοι δεδομένων, συνήθως χρησιμοποιείται το μοντέλο του αποθετηρίου

Η αρχιτεκτονική μιας ολοκληρωμένης εργαλειοθήκης CASE

CASE toolset architecture

Χαρακτηριστικά του μοντέλου αποθετηρίου central repository model characteristics Πλεονεκτήματα Αποδοτικό για την κοινή χρήση μεγάλης ποσότητας δεδομένων Ο τρόπος παραγωγής δεδομένων δεν ενδιαφέρει τα υποσυστήματα Κεντρική διαχείριση π.χ. backup, προστασία, κ.λπ. Το μοντέλο το δεδομένων database schema - είναι δημόσιο Μειονεκτήματα Τα υποσυστήματα πρέπει να συμφωνούν ως προς το μοντέλο δεδομένων Αυτό αποτελεί συμβιβασμό Η εξέλιξη των δεδομένων σε νέο μοντέλο - είναι δύσκολη και κοστίζει πολύ λόγο του όγκου Δεν υπάρχει πρόβλεψη για εξειδικευμένες πολιτικές διαχείρισης κεντρική διαχείριση Η κατανομή δεδομένων σε πολλά συστήματα μπορεί να είναι δύσκολη Λόγω του κεντρικού σχεδιασμού

Μοντέλο πελάτη-διακομιστή Κατανεμημένο σύστημα Client - server Δείχνει πώς κατανέμονται τα δεδομένα και η επεξεργασία τους Ένα σύνολο αυτόνομων διακομιστών Που παρέχουν συγκεκριμένες υπηρεσίες, π.χ. διαχείριση δεδομένων, εκτύπωση, κλπ. Ένα σύνολο πελατών Που κάνουν χρήση των υπηρεσιών αυτών Ένα δίκτυο Που επιτρέπει στους πελάτες να προσπελάζουν τους διακομιστές

Μια βιβλιοθήκη ταινιών και φωτογραφιών

Film and picture library

Χαρακτηριστικά του μοντέλου πελάτη-διακομιστή Πλεονεκτήματα Εύκολη κατανομή δεδομένων Αποδοτική αξιοποίηση δικτύων υπολογιστών - φτηνότερο υλικό Εύκολη προσθήκη νέων server ή αναβάθμιση των υπαρχόντων Μειονεκτήματα Δεν υπάρχει κοινό μοντέλο δεδομένων, οπότε τα υποσυστήματα οργανώνουν τα δεδομένα τους με διαφορετικούς τρόπους Η ανταλλαγή δεδομένων μπορεί να μην είναι αποδοτική Redundant management in each server Δεν υπάρχει κεντρική λειτουργία καταγραφής ονομάτων και υπηρεσιών - ίσως είναι δύσκολη η εύρεση των διαθέσιμων server και υπηρεσιών

Μοντέλο αφηρημένης μηχανής (πολυ-επίπεδο - layered) Χρησιμοποιείται για τη μοντελοποίηση της διασύνδεσης υποσυστημάτων Οργανώνει το σύστημα σε επίπεδα (ή αφηρημένες μηχανές), Kαθένα από τα οποία παρέχει ένα σύνολο υπηρεσιών. Υποστηρίζει τη βαθμιαία ανάπτυξη των υποσυστημάτων σε διαφορετικά επίπεδα Όταν γίνει κάποια μεταβολή στη διασύνδεση ενός επιπέδου, επηρεάζεται μόνο το γειτονικό επίπεδο Tεχνητός και επιτηδευμένος σχεδιασμός;

Παράδειγμα: σύστημα διαχείρισης εκδοχών version management system

Version management system Configuration manageme nt s ystem la yer Obje ct manage ment system layer Database s ys tem layer Operating s ystem layer

Design 2

Στυλ αποδόμησης σε υπομονάδες Τα υποσυστήματα αναλύονται σε υπομονάδες Δεν υπάρχει κάποια αυστηρή διάκριση μεταξύ οργάνωσης συστήματος και αποδόμησης σε υπομονάδες

Υποσυστήματα και υπομονάδες Ένα υποσύστημα αποτελεί και το ίδιο σύστημα H λειτουργία του δεν εξαρτάται από τις υπηρεσίες που παρέχονται από άλλα υποσυστήματα Μια υπομονάδα module είναι ένα στοιχείο του συστήματος που παρέχει υπηρεσίες σε άλλα στοιχεία, αλλά κανονικά δεν θεωρείται ανεξάρτητο σύστημα.

Αποδόμηση σε υπομονάδες Τα υποσυστήματα αποδομούνται (αναλύονται) σε υπομονάδες Δύο μοντέλα αποδόμησης Ένα αντικειμενοστρεφές μοντέλο, Tο σύστημα αναλύεται σε ένα σύνολο αντικειμένων που αλληλεπιδρούν Pipeline - Ένα μοντέλο διοχέτευσης ή ροής δεδομένων, Tο σύστημα αναλύεται σε συναρτησιακές υπομονάδες οι οποίες μετασχηματίζουν δεδομένα εισόδου σε δεδομένα εξόδου. Αν γίνεται, οι όποιες αποφάσεις αφορούν τον ταυτοχρονισμό πρέπει να αναβάλλονται μέχρι το στάδιο της υλοποίησης

Μοντέλα αντικειμένων Δομούν το σύστημα ως ένα σύνολο αντικειμένων Χαλαρές συσχετίσεις Καλά καθορισμένες διασυνδέσεις Η αντικειμενοστρεφής αποδόμηση ασχολείται με τον προσδιορισμό των κλάσεων αντικειμένων, των ιδιοτήτων και των λειτουργιών τους. Κατά την υλοποίηση τα αντικείμενα είναι instances των κλάσεων Ένα σύστημα ελέγχου συντονίζει τη λειτουργία συστήματος

Σύστημα διαχείρισης τιμολογίων

Invoice processing system

Πλεονεκτήματα αντικειμενοστρεφούς μοντέλου Τα αντικείμενα παρουσιάζουν χαλαρή συσχέτιση Η υλοποίησή τους μπορεί να τροποποιηθεί χωρίς να επηρεαστούν τα άλλα αντικείμενα Τα αντικείμενα είναι αναπαραστάσεις του πραγματικού κόσμου Χρήση αντικειμενοστρεφών γλωσσών προγραμματισμού Ωστόσο, τροποποιήσεις της διασύνδεσης αντικειμένων είναι δύσκολες Η αναπαράσταση σύνθετων οντοτήτων είναι δύσκολη

Συναρτησιοστρεφής διοχέτευση Pipeline Συναρτησιακοί μετασχηματισμοί επεξεργάζονται τα δεδομένα εισόδου και παράγουν δεδομένα εξόδου Ονομάζεται ενίοτε και μοντέλο αγωγών και φίλτρων (pipe and filter) ορολογία UNIX Πολλές παραλλαγές Χρησιμοποιείται συχνά για συστήματα επεξεργασίας δεδομένων Δεν ταιριάζει σε διαδραστικά συστήματα interactive systems

Σύστημα διαχείρισης τιμολογίων

Invoice processing system

Χαρακτηριστικά μοντέλου διοχέτευσης - pipeline Υποστηρίζει επαναχρησιμοποίηση function μεθόδων Διαισθητικά κατανοητή οργάνωση Καλή για επικοινωνία με stakeholders Εύκολη η προσθήκη νέων μεθόδων Σχετικά απλή υλοποίηση συστήματος Είτε ως σειριακό είτε ως ταυτόχρονο Απαιτεί καλή οργάνωση της ροής δεδομένων Δεν υποστηρίζει αλληλεπίδραση βάσει συμβάντων - events

Control styles

Στυλ ελέγχου Control styles Αφορούν τη ροή ελέγχου μεταξύ υποσυστημάτων Συγκεντρωτικός έλεγχος centralized control Ένα υποσύστημα έχει τη συνολική ευθύνη για τον έλεγχο, ξεκινώντας και τερματίζοντας τα άλλα υποσυστήματα. Έλεγχος βάσει συμβάντων event-based control Κάθε υποσύστημα αποκρίνεται σε εξωτερικά συμβάντα Aπό άλλα υποσυστήματα ή από το περιβάλλον του συστήματος

Συγκεντρωτικός έλεγχος centralized contrl Ένα υποσύστημα ελέγχου αναλαμβάνει την ευθύνη για τη διαχείριση της εκτέλεσης Για όλα τα υποσυστήματα Μοντέλο κλήσης-επιστροφής call-return model Για σειριακά συστήματα Μοντέλο υπορουτινών top-down, ο έλεγχος ξεκινάει από την κορυφή και μεταφέρεται στα χαμηλότερα επίπεδα Η μία ρουτίνα καλεί την άλλη Μοντέλο διαχειριστή manager model Για ταυτόχρονα συστήματα Ένα component ελέγχει την εκκίνηση, τη διακοπή και το συντονισμό των διεργασιών του συστήματος Μπορεί να υλοποιηθεί σε σειριακά συστήματα με μια επιλογή case

Μοντέλο κλήσης-επιστροφής

Call-return model

Μοντέλο συγκεντρωτικού ελέγχου για ένα σύστημα πραγματικού χρόνου

Real-time system control

Συστήματα οδηγούμενα από συμβάντα event-driven systems Καθοδηγούνται από εξωτερικά events To event παράγεται εξωτερικά από το σύστημα Δύο βασικά μοντέλα ελέγχου οδηγούμενου από συμβάντα Μοντέλα εκπομπής - broadcast Ένα event εκπέμπεται προς όλα τα υποσυστήματα Κάθε υποσύστημα που έχει προγραμματιστεί να χειρίζεται ένα τέτοιο συμβάν μπορεί να αποκριθεί σε αυτό Μοντέλα οδηγούμενα από διακοπές interrupt-driven Για συστήματα πραγματικού χρόνου Τα interrupts ανιχνεύονται από ένα interrupt handler και κατόπιν μεταβιβάζονται σε κάποιο άλλο component για επεξεργασία Άλλα event-driven μοντέλα είναι τα λογιστικά φύλλα και τα συστήματα παραγωγής

Μοντέλο εκπομπής broadcast model Καλό για κατανεμημένα συστήματα Τα υποσυστήματα δηλώνουν ενδιαφέρον για συγκεκριμένα event Όταν συμβεί το event, ο έλεγχος μεταφέρεται στο υποσύστημα που το χειρίζεται Ο έλεγχος των event δεν είναι ενσωματωμένος στο event handler Τα υποσυστήματα αποφασίζουν ποια event τα αφορούν Ωστόσο δεν γνωρίζουν πότε και αν θα συμβεί το event

Επιλεκτική εκπομπή

Selective broadcasting

Συστήματα οδηγούμενα από διακοπές Interrupt-driven systems Για συστήματα πραγματικού χρόνου Όταν είναι σημαντική η γρήγορη απόκριση σε ένα συμβάν Υπάρχει ένας γνωστός αριθμός τύπων interrupt Για κάθε interrupt υπάρχει ένας χειριστής Κάθε interrupt αντιστοιχεί σε μια θέση μνήμης Ένα switch (hardware) μεταφέρει το interrupt στο handler Ο προγραμματισμός και η επικύρωση είναι σύνθετοι

Μοντέλο ελέγχου οδηγούμενο από διακοπές

Interrupt-driven control

Αρχιτεκτονικές αναφοράς / πεδίου reference architectures Δύο τύποι μοντέλων αρχιτεκτονικών πεδίου Τα γενικά μοντέλα, Είναι abstractions που αντιπροσωπεύουν πραγματικά συστήματα Και τα χαρακτηριστικά τους (Κεφάλαιο 13) Τα μοντέλα αναφοράς, Τα οποία είναι πιο αφηρημένα, ιδεατά μοντέλα. Αποτελούν σημείο αναφοράς για τη σύγκριση μοντέλων ενός πεδίου Συνήθως τα γενικά μοντέλα είναι bottom-up στην προσέγγισή τους, ενώ τα μοντέλα αναφοράς είναι top-down Είναι κατάλληλα μόνο για συγκεκριμένα πεδία

Αρχιτεκτονικές αναφοράς reference architectures Αφορούν το πεδίο εφαρμογής Και όχι επιμέρους συστημάτων Είναι η βάση για την υλοποίηση ενός συστήματος ή για τη σύγκριση διαφορετικών συστημάτων Αποτελούν πρότυπα, χρήσιμα για αξιολόγηση συστημάτων Σύγκριση των συστημάτων με το μοντέλο αναφοράς Το OSI είναι ένα layered μοντέλο συστημάτων επικοινωνίας

Μοντέλο αναφοράς OSI

OSI reference model 7 Applica tion Applica tion 6 Presenta tion Presenta tion 5 Session Session 4 Transpor t Transpor t 3 Network Networ k Networ k 2 Data link Data link Data link 1 Physical Physical Physical Comm unica tions medium

Μοντέλο αναφοράς CASE/ECMA Υπηρεσίες αποθετηρίου δεδομένων data repository Υπηρεσίες αποθήκευσης και διαχείρισης δεδομένων Υπηρεσίες ενοποίησης δεδομένων data integration Διαχείριση ομάδων οντοτήτων Υπηρεσίες διαχείρισης εργασιών - tools Ορισμός και θεσμοθέτηση μοντέλων διαδικασιών Υπηρεσίες μηνυμάτων - messaging Επικοινωνίες μεταξύ εργαλείων, και μεταξύ εργαλείων και περιβαλλόντων. Υπηρεσίες διασύνδεσης χρήστη - interface Ανάπτυξη διασύνδεσης χρήστη

Το μοντέλο αναφοράς ECMA

The ECMA reference model

Κύρια σημεία Η αρχιτεκτονική του λογισμικού αποτελεί το βασικό πλαίσιο εργασίας για τη δόμηση ενός συστήματος. Στις αποφάσεις του αρχιτεκτονικού σχεδιασμού περιλαμβάνονται αποφάσεις σχετικά με τον τύπο της εφαρμογής, την κατανομή του συστήματος και τα αρχιτεκτονικά στυλ που θα χρησιμοποιηθούν. Μπορούν να αναπτυχθούν διάφορα αρχιτεκτονικά μοντέλα όπως το δομικό μοντέλο, το μοντέλο ελέγχου και το μοντέλο αποδόμησης. Στα μοντέλα οργάνωσης συστημάτων περιλαμβάνονται μοντέλα αποθετηρίου, μοντέλα πελάτη-διακομιστή και μοντέλα αφηρημένης μηχανής.

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

Αρχιτεκτονικά μοντέλα Κατά τη διαδικασία σχεδιασμού μπορούν να παραχθούν διάφορα αρχιτεκτονικά μοντέλα Κάθε μοντέλο παρουσιάζει μια διαφορετική προοπτική της αρχιτεκτονικής

Γνωρίσματα της αρχιτεκτονικής Απόδοση Τοπικός περιορισμός λειτουργιών με σκοπό την ελαχιστοποίηση των επικοινωνιών μεταξύ υποσυστημάτων Προστασία από εξωτερικούς κινδύνους Χρήση πολυεπίπεδης αρχιτεκτονικής, με τους κρίσιμους πόρους στα εσωτερικά επίπεδα Ασφάλεια Απομόνωση συστατικών στοιχείων κρίσιμων από άποψη ασφάλειας Διαθεσιμότητα Συμπερίληψη πλεοναζόντων συστατικών στοιχείων στην αρχιτεκτονική Συντηρησιμότητα Χρήση λεπτομερών, αυτοτελών συστατικών στοιχείων