Αρχιτεκτονικός Σχεδιασμός Ανάπτυξη συνολικής δομής ενός συστήματος λογισμικού
Στόχοι Εισαγωγή αρχιτεκτονικού σχεδιασμού και ρόλου του στην διαδικασία λογισμικού Περιγραφή διαφορετικών τύπων αρχιτεκτονικού μοντέλου Περιγραφή του τρόπου με τον οποίο η αρχιτεκτονική ενός συστήματος μπορεί να μοντελοποιηθεί Συζήτηση για το πώς ειδικά μοντέλα για διαφορετικά πεδία μπορούν να χρησιμοποιηθούν στην σύγκριση αρχιτεκτονικών λογισμικού
Θέματα Δόμηση συστήματος Μοντέλα ελέγχου Αρθρωτή ανάλυση Αρχιτεκτονικές ειδικές για το πεδίο
Αρχιτεκτονικοί Παραλληλισμοί Οι αρχιτέκτονες είναι η διεπαφή μεταξύ των πελατών και των εργολάβων Κακός αρχιτεκτονικός σχεδιασμός δεν αναιρείται με καλή κατασκευή. Το ίδιο συμβαίνει και για τα συστήματα λογισμικού Υπάρχουν εξειδικευμένοι τύποι αρχιτεκτόνων κτιρίων και λογισμικού Υπάρχουν σχολεία ή στυλ κατασκευής κτιρίων και λογισμικού
Διαδικασία Αρχιτεκτονικού Σχεδιασμού Δόμηση συστήματος Το σύστημα αναλύεται σε διαφορετικά υποσυστήματα και η επικοινωνία μεταξύ υποσυστημάτων διευκρινίζεται Μοντελοποίηση ελέγχου Δημιουργείται μοντέλο για τον έλεγχο των σχέσεων των διαφορετικών μερών ενός συστήματος Αρθρωτή ανάλυση Τα υποσυστήματα αναλύονται σε δομικές μονάδες
Υποσυστήματα και Δομικές Μονάδες Ένα υποσύστημα είναι ένα σύστημα του οποίου η λειτουργία είναι ανεξάρτητη από τις υπηρεσίες που προσφέρονται από άλλα υποσυστήματα Μία δομική μονάδα είναι ένα στοιχείο συστήματος που παρέχει υπηρεσίες σε άλλα στοιχεία αλλά δεν θεωρείται ανεξάρτητο σύστημα
Αρχιτεκτονικά Μοντέλα Η δόμηση, έλεγχος και αρθρωτή ανάλυση βασίζεται σε κάποιο μοντέλο ή αρχιτεκτονικό στυλ Όμως, τα περισσότερα συστήματα είναι ετερογενή διότι διαφορετικά μέρη του συστήματος βασίζονται σε διαφορετικά μοντέλα Το αρχιτεκτονικό μοντέλο επηρεάζει την αποτελεσματικότητα, ευρωστία, δυνατότητα διανομής και συντήρησης του συστήματος
Δόμηση Συστήματος Έχει σχέση με την ανάλυση του συστήματος σε αλληλεπιδρώντα υπο-συστήματα Ο αρχιτεκτονικός σχεδιασμός είναι ένα διάγραμμα μπλοκ που παρουσιάζει αφαιρετικά την δομή του συστήματος Ποιο ειδικά μοντέλα που εμφανίζουν πως υποσυστήματα διαμοιράζονται δεδομένα, είναι κατανεμημένα και έχουν διεπαφή με άλλα μπορούν να αναπτυχθούν
Σύστημα Ελέγχου Ρομπότ Συσκευασίας
Το Μοντέλο Αποθήκευσης Τα υπο - συστήματα ανταλάσσουν δεδομένα. Αυτό γίνεται με δύο τρόπους: Τα δεδομένα είναι σε μία κεντρική βάση δεδομένων και είναι προσβάσιμα από όλα τα υποσυστήματα Κάθε σύστημα έχει την δική του βάση δεδομένων και περναέι δεδομένα στα άλλα υποσυστήματα Εάν μεγάλη ποσότητα δεδομένων είναι να κατανεμηθεί, το μοντέλο αποθήκευσης - κατανομής είναι αυτό που χρησιμοποιείται περισσότερο
Αρχιτεκτονική Εργαλείων CASE
Χαρακτηριστικά Μοντέλου Αποθήκευσης Πλεονεκτήματα Αποτελεσματικός τρόπος για κατανομή μεγάλου αριθμού δεδομένων Τα υποσυστήματα δεν ασχολούνται με το πώς παράγονται τα δεδομένα, δηλ. αποθήκευση, ασφάλεια, κ.α. Το μοντέλου καταμερισμού είναι το σχήμα αποθήκευσης Μειονεκτήματα Τα υποσυστήματα πρέπει να συμφωνούν σε ένα μοντέλο αποθήκευσης δεδομένων Η ανάπτυξη των δεδομένων είναι δύσκολη και ακριβή Δεν απαιτείται πολιτική διαχείρισης Είναι δύσκολη η αποτελεσματική κατανομή
Αρχιτεκτονική Πελάτη - Εξυπηρέτη Μοντέλο κατανεμημένου συστήματος που δείχνει πως τα δεδομένα και η επεξεργασία κατανέμονται σε μία περιοχή στοιχείων Σύνολο εξυπηρετών που παρέχουν ειδικές υπηρεσίες, όπως εκτυπώσεις, διαχείριση δεδομένων, κ.α. Σύνολο πελατών που χρησιμοποιούν τις υπηρεσίες αυτές Δίκτυο που επιτρέπει στους πελάτες την πρόσβαση σε εξυπηρέτες
Βιβλιοθήκη Φίλμ και Εικόνας
Χαρακτηριστικά Συστήματος Πελάτη - Εξυπηρέτη Πλεονεκτήματα Είναι εύκολη η κατανομή δεδομένων Γίνεται αποτελεσματική χρήση των διαθέσιμων συστημάτων δικτύου. Απαιτείται φθηνότερο υλικό Είναι εύκολη η προσθήκη εξυπηρετητών και η αναβάθμιση υπαρχόντων Μειονεκτήματα Δεν απαιτείται μοντέλο κατανομής δεδομένων και τα υποσυστήματα απαιτούν διαφορετική οργάνωση δεδομένων. Η ανταλλαγή δεδομένων μπορεί να μην είναι αποτελεσματική Πλεονάζουσα διαχείριση σε κάθε εξυπηρέτη Δεν υπάρχει κεντρική εγγραφή ονομάτων και υπηρεσιών - είναι δύσκολο να εντοπισθεί ποιοι εξυπηρέτες και ποιες υπηρεσίες είναι διαθέσιμες
Αφαιρετικό Μοντέλο Μηχανής Χρησιμοποιείται για την μοντελοποίηση διεπαφής υποσυστημάτων Το σύστημα οργανώνεται σε ένα σύνολο στρωμάτων (ή αφαιρετικές μηχανές) που το καθένα παρέχει ένα σύνολο υπηρεσιών Υποστηρίζει την σταδιακή ανάπτυξη των υποσυστημάτων σε διαφορετικά επίπεδα. Όταν μία διεπαφή επιπέδου αλλάζει μόνο το γειτονικό επίπεδο αλλάζει Όμως είναι δύσκολο να δομηθεί το σύστημα με αυτόν τον τρόπο
Σύστημα Διαχείρισης Version
Μοντέλα Ελέγχου Έχουν σχέση με τον έλεγχο ροής μεταξύ υποσυστημάτων. Διαφέρουν από τα μοντέλα ανάλυσης του συστήματος Κεντρικοποιημένος έλεγχος Ένα υποσύστημα έχει την συνολική ευθύνη για έλεγχο και έχει την συνολική ευθύνη για έλεγχο αρχής και τέλους των υποσυστημάτων Έλεγχος Βασισμένος σε Γεγονότα Κάθε υποσύστημα μπορεί να αποκριθεί σε εξωτερικά γεγονότα από άλλα υποσυστήματα ή το περιβάλλον του συστήματος
Κεντρικοποιημένος Έλεγχος Ένα υποσύστημα ελέγχου είναι υπεύθυνο για την διαχείριση λειτουργίας άλλων υποσυστημάτων Μοντέλο επιστροφής κλίσης Υπορουτίνα μοντέλου Top-down όπου ο έλεγχος αρχίζει στην κορυφή της ιεραρχίας και μετακινείται προς τα κάτω. Είναι εφαρμόσιμο σε συστήματα με διαδοχή Μοντέλο διαχείρισης Είναι εφαρμόσιμο σε σύγχρονα συστήματα. Ένα στοιχείο συστήματος ελέγχει την έναρξη, τερματισμό και συντονισμό άλλων διαδικασιών του συστήματος. Μπορεί να υλοποιηθεί σε συστήματα διαδοχής ως μορφή case
Μοντέλο Επιστροφής Κλήσης
Σύστημα Ελέγχου Πραγματικού Χρόνου
Συστήματα που Βασίζονται σε Γεγονότα Οδηγείται από εξωτερικά παραγόμενα γεγονότα όπου ο χρονισμός του γεγονότος καθοδηγεί τον έλεγχο των υποσυστημάτων που παράγουν το γεγονός Δύο κύρια μοντέλα που βασίζονται σε γεγονότα Μοντέλα εκπομπής. Ένα γεγονός εκπέμπεται σε άλλα υποσυστήματα. Κάθε υποσύστημα μπορεί να χειρισθεί το γεγονός Μοντέλα που οδηγούνται από διακοπές. Χρησιμοποιούνται σε συστήματα πραγματικού χρόνου όπου υπάρχει ένας χειριστής διακοπών και περνάει για επεξεργασία σε άλλα στοιχεία Τέτοια μοντέλα περιλαμβάνουν λογιστικά φύλλα και συστήματα παραγωγής systems
Μοντέλο Εκπομπής Αποτελεσματικό για την ολοκλήρωση υποσυστημάτων σε διαφορετικούς Η/Υ σε ένα δίκτυο Τα υποσυστήματα καταχωρούν ενδιαφέρον για συγκεκριμένο γεγονός που τους ενδιαφέρουν. Τότε ο έλεγχος μεταφέρεται στο υποσύστημα που μπορεί να χειριστεί το γεγονός Η στρατηγική ελέγχου δεν ενσωματώνεται στο γεγονός και στον διαχειριστή μηνυμάτων. Τα υποσυστήματα αποφασίζουν Όμως τα υποσυστήματα δεν γνωρίζουν εάν και πότε ένα γεγονός θα χρησιμοποιηθεί
Επιλεκτική Εκπομπή
Συστήματα που Βασίζονται σε Διακοπές Χρησιμοποιείται σε συστήματα πραγματικού χρόνου όπου η γρήγορη απόκριση είναι σημαντική Υπάρχουν γνωστοί τύποι διακοπών και διαχειρίζονται από χειριστή που ορίζεται για αυτή την περίπτωση Κάθε τύπος σχετίζεται με θέση μνήμης και ένας διακόπτης υλικού προκαλεί μεταφορά στον χειριστή Επιτρέπει γρήγορη απόκριση αλλά είναι δύσκολο στον προγραμματισμό και δύσκολο στην αξιολόγηση
Έλεγχος που Βασίζεται σε Διακοπές
Αρθρωτή Ανάλυση Ένα άλλο επίπεδο δόμησης όπου τα υποσυστήματα αναλύονται σε δομικές μονάδες Δύο αρθρωτά μοντέλα ανάλυσης Αντικειμενοστραφές μοντέλο όπου το σύστημα αναλύεται σε αλληλεπιδρώντα αντικείμενα Μοντέλο ροής δεδομένων με ανάλυση του συστήματος σε λειτουργικές δομικές μονάδες που μετατρέπουν την είσοδο σε έξοδο. Γνωστό ως μοντέλο pipeline Οι αποφάσεις για συγχρονισμό καθυστερούν έως την δημιουργία δομικών μονάδων
Αντικειμενοστραφή Μοντέλα Δόμηση του συστήματος σε χαλαρά συνδεδεμένα μοντέλα με καλά καθορισμένες διεπαφές Η αντικειμενοστραφής ανάλυση σχετίζεται με την αναγνώριση κλάσεων αντικειμένων, χαρακτηριστικών και λειτουργιών Στην υλοποίηση, τα αντικείμενα δημιουργούνται από αυτές τις κλάσεις και κάποιο μοντέλο ροής χρησιμοποιείται για τον συντονισμό των λειτουργιών αντικειμένων
Σύστημα Επεξεργασίας Αποδείξεων
Μοντέλα Ροής Δεδομένων Λειτουργικές διαδικασίες μετασχηματισμού που από εισόδους παράγουν εξόδους Αναφέρονται ως μοντέλα pipe και φίλτρου (όπως στο κέλυφος του UNIX) Υπάρχουν διάφορες μορφές της προσέγγισης. Όταν οι μετασχηματισμοί είναι διαδοχικοί είναι ένα σύστημα batch το οποίο χρησιμοποιείται στην επεξεργασία δεδομένων Δεν είναι κατάλληλο για διαλογικά συστήματα
Σύστημα Επεξεργασίας Αποδείξεων
Ειδικές Αρχιτεκτονικές Αρχιτεκτονικά μοντέλα τα οποία εφαρμόζονται σε συγκεκριμένα πεδία εφαρμογής Δύο τύποι Βασικά μοντέλα που είναι αφαιρετικές περιγραφές από ένα αριθμό πραγματικών χαρακτηριστικών αυτών των συστημάτων Μοντέλα αναφοράς που είναι περισσότερο αφαιρετικά. Παρέχουν μέσο πληροφόρησης για το σύστημα και την σύγκριση διαφορετικών αρχιτεκτονικών Τα βασικά μοντέλα είναι μοντέλα bottom-up; Τα μοντέλα αναφοράς είναι top-down
Γενικά Μοντέλα Το μοντέλο μεταγλωττιστή είναι καλό παράδειγμα αν και υπάρχουν μοντέλα και για άλλα πεδία εφαρμογής Lexical analyser Symbol table Syntax analyser Syntax tree Semantic analyser Code generator Το γενικό μοντέλο μεταγλωττιστή οργανώνεται σύμφωνα με διαφορετικά αρχιτεκτονικά μοντέλα
Μοντέλο Μεταγλωττιστή
Συστήματα Επεξεργασίας Γλώσσας
Αρχιτεκτονικές Αναφοράς Προκύπτουν από την μελέτη του πεδίου εφαρμογής και από υπάρχοντα συστήματα Χρησιμοποιούνται ως βάση για την υλοποίηση του συστήματος ή για σύγκριση διαφορετικών συστημάτων. Λειτουργεί ως πρότυπο με βα΄ση το οποίο τα συστήματα αξιολογούνται Το μοντέλο OSI είναι ένα στρωματοποιημένο μοντέλο για τα συστήματα επικοινωνίας
Μοντέλο Αναφοράς OSI
Σημαντικά Σημεία Ο αρχιτέκτονας λογισμικού είναι υπεύθυνος για την δημιουργία ενός δομικού μοντέλου, ενός μοντέλου ελέγχου και ενός μοντέλου ανάλυσης σε υποσυστήματα Τα μεγάλα συστήματα σπάνια ταιριάζουν σε ένα απλό αρχιτεκτονικό μοντέλο Τα μοντέλα ανάλυσης σε υποσυστήματα περιλαμβάνουν μοντέλα αποθήκευσης, μοντέλα πελάτη - εξυπηρέτη και μοντέλα αφαιρετικών μηχανών Τα μοντέλα ελέγχου περιλαμβάνουν κεντρικοποιημένο έλεγχο και μοντέλα καθοδηγούμενα από γεγονότα
Σημαντικά Σημεία Τα μοντέλα αρθρωτής ανάλυσης περιλαμβάνουν μοντέλα ροής δεδομένων και αντικειμενοστραφή μοντέλα Τα εξειδικευμένα μοντέλα είναι αφαιρέσεις για κάποιο πεδίο εφαρμογής. Μπορεί να δημιουργούνται από αφαίρεση υπαρχόντων συστημάτων ή είναι ιδανικά μοντέλα αναφοράς.