Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π."— Μεταγράφημα παρουσίασης:

1 HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π

2 Αρχιτεκτονική Συστήματος Λογισμικού Η Αρχιτεκτονική περιγράφει τη γενική στατική δομή του συστήματος, τα βασικά δομικά του στοιχεία, πως αυτά τα στοιχεία επικοινωνούν, και ποια είναι τα βασικά χαρακτηριστικά του κάθε στοιχείου. Τα στοιχεία είναι υποσυστήματα ή (για μικρότερα συστήματα) ψηφίδες. Η Αρχιτεκτονική παρέχει ένα τρόπο ανάλυσης και περιγραφής του συστήματος σε υψηλό αφαιρετικό επίπεδο Η Αρχιτεκτονική εστιάζει στις βασικές σχεδιαστικές αποφάσεις που λαμβάνουμε για ένα σύστημα

3 Ορισμός Αρχιτεκτονικής (Shaw and Garlan) Η αρχιτεκτονική λογισμικού περιγράφει τα στοιχεία από τα οποία αποτελείται ένα σύστημα, τις αλληλεπιδράσεις ανάμεσα σε αυτά τα στοιχεία, καθώς και πρότυπα και περιορισμούς που καθοδηγούν τη σύνθεση αυτών των στοιχείων. Σε γενικές γραμμές, ένα σύστημα περιγράφεται σε επίπεδο αρχιτεκτονικής σαν μια συλλογή υποσυστημάτων / ψηφίδων (components) και τις αλληλεπιδράσεις (connectors) ανάμεσα σε αυτά τα υποσυστήματα / ψηφίδες. Ένα σύστημα μπορεί να είναι υποσύστημα σε κάποια άλλη (μεγαλύτερη και πολυπλοκότερη) εφαρμογή Τα υποσυστήματα και οι ψηφίδες (και συνολικά η αρχιτεκτονική) μπορούν να περιγράφουν από διαφορετικές σκοπιές (λογική, δομική κλπ.) Άλλοι ορισμοί μπορούν να βρεθούν στον ιστότοπο http://www.sei.cmu.edu/architecture/definitions.html

4 Τι Προδιαγράφει η Αρχιτεκτονική Τη γενική διάσπαση και κατάτμηση μιας εφαρμογής στα συστατικά δομικά του στοιχεία –Η κατάκτηση γίνεται κατά ένα ιεραρχικό τρόπο (υποσυστήματα / ψηφίδες / κλάσεις) –Η αρχιτεκτονική μιας εφαρμογής μπορεί να ακολουθεί και να είναι συμβατή με συγκεκριμένες τεχνοτροπίες και πρότυπα Τις σημαντικές ιδιότητες του συστήματος π.χ. Απόδοση, ασφάλεια, ευρωστία, ευκολία αναβάθμισης Τις βασικές σχεδιαστικές αποφάσεις που συσχετίζουν απαιτήσεις και υλοποίηση Τον «σκελετό» της εφαρμογής

5 Kruchten’s “4+1 View Model” of the Architecture P. Kruchten. The 4+1 View Model of Architecture. In IEEE Software, vol. 12, no. 6, November 1995, pp. 42-50,  IEEE 1995

6 Αρχιτεκτονική Τεχνοτροπία (Architectural Style) Όπως αναφέραμε παραπάνω η αρχιτεκτονική του συστήματος αποτελείται από –Από μονάδες (υποσυστήματα / ψηφίδες - Components): ορίζουν και υλοποιούν τις λειτουργίες του συστήματος –Από συνδέσεις ανάμεσα στις μονάδες (Connectors): ορίζουν και υλοποιούν τις σχέσεις αλληλεπίδρασης ανάμεσα στα υποσυστήματα / ψηφίδες Μια αρχιτεκτονική τεχνοτροπία (architectural style) ορίζει μια οικογένεια από αρχιτεκτονικές που έχουν –Κοινή τοπολογία –Σημασιολογικούς περιορισμούς –Κοινό λεξιλόγιο για τα components και τα connectors

7 Ταξινόμηση Αρχιτεκτονικών Τεχνοτροπιών Βασικές Αρχιτεκτονικές Τεχνοτροπίες –Ροής Δεδομένων (Data Flow) –Κλήσης-Επιστροφής (Call-and-return) –Αλληλεπιδρώντων Λειτουργιών (Interacting processes) –Δεδομενο-κεντρικής αποθήκης (Data-oriented repository) –Κοινών Δεδομένων (Data-sharing) –Ιεραρχικές (Hierarchical) –Ετερογενείς Αρχιτεκτονικές (heterogeneous architectures)

8 Θεωρητική Μορφή Τεχνοτροπιών Όταν ορίζουμε και περιγράφουμε μια αρχιτεκτονική τεχνοτροπία συνήθως εννοούμε την απλή και θεωρητική της μορφή –Στη πρακτική σπάνια μια τεχνοτροπία χρησιμοποιείται στην απλή, θεωρητική της μορφή. Συνήθως, για να σχεδιάσουμε μια νέα εφαρμογή, συνθέτουμε ιδέες από διαφορετικές τεχνοτροπίες –Σαν αρχιτέκτονες λογισμικού πρέπει να έχουμε μια καλή εικόνα των τεχνοτροπιών στην απλή και θεωρητική τους μορφή, τα θετικά και αρνητικά σημεία της κάθε τεχνοτροπίας, και τα αποτελέσματα που επιφέρουν αλλαγές και παρακλήσεις από την απλή, θεωρητική μορφή της τεχνοτροπίας

9 Οι Τεχνοτροπίες  Ροής Δεδομένων (Data Flow) Ακολουθιακής Στοιβάδας (Sequential Batch) Αυλού/Φίλτρου (Pipe and Filter) –Κλήσης-Επιστροφής (Call-and-return) –Αλληλεπιδρώντων Λειτουργιών (Interacting processes) –Δεδομενο-κεντρικής αποθήκης (Data-oriented repository) –Κοινών Δεδομένων (Data-sharing) –Ιεραρχικές (Hierarchical) –Ετερογενείς Αρχιτεκτονικές (heterogeneous architectures)

10 Αρχιτεκτονική Τεχνοτροπία Ροής Δεδομένων Θεωρούμε ότι η αρχιτεκτονική ενός συστήματος είναι συμβατή με την αρχιτεκτονική τεχνοτροπία ροής δεδομένων εάν: –Η διαθεσιμότητα των δεδομένων είναι αυτή που ορίζει και ελέγχει τη ροή των λειτουργιών –Η δομή του συστήματος ορίζεται από τη μεθοδική ροή των δεδομένων από τη μια μονάδα στην άλλη –Η ροή των δεδομένων έχει τυποποιημένη και πλήρως ορισμένη φορά –Η ανταλλαγή των δεδομένων είναι η μόνη μορφή επικοινωνίας ανάμεσα στις μονάδες Υπάρχουν κάποιες βασικές διαφοροποιήσεις σε αυτή τη τεχνοτροπία σύμφωνα με: –Το πως ασκείται η ροή των δεδομένων από μια μονάδα (υποσύστημα / ψηφίδα) σε κάποια άλλη (π.χ., push versus pull) –Το βαθμό συνεργασίας (παράλληλης επεξεργασίας) ανάμεσα στις μονάδες –Τη τοπολογία των μονάδων (components) και των συνδετικών σχέσεων (connectors)

11 Αρχιτεκτονική Τεχνοτροπία Ροής Δεδομένων Μονάδες (Components): Υποσυστήματα / Ψηφίδες που έχουν –Διαπροσωπείες (Interfaces) με τη μορφή πυλών εισόδου / εξόδου δεδομένων (input ports and output ports) –Ένα υπολογιστικό μοντέλο που βασίζεται στην εισαγωγή δεδομένων από τις πύλες εισόδου, στην λειτουργία της μονάδας που πιθανόν μεταβάλλει τα δεδομένα εισόδου και παράγει νέα δεδομένα, και την έξοδο των παραγόμενων δεδομένων από πύλες εξόδου Συνδέσεις(Connectors): Ροές Δεδομένων –Μιας κατεύθυνσης Συνήθως συμβατές με ασύγχρονη επικοινωνία μεταξύ μονάδων, με εσωτερική μνήμη –Τα ακραία σημεία της σχέσης έχουν ρόλους εισόδου / εξόδου δεδομένων –Το υπολογιστικό τους μοντέλο βασίζεται στη μεταφορά δεδομένων από μια μονάδα (με ρόλο εξόδου δεδομένων) σε κάποια άλλη μονάδα με ρόλο εισόδου δεδομένων Τοπολογία –Γράφοι (κόμβοι είναι μονάδες) ακμές είναι συνδετικές σχέσεις

12 Παραδείγματα Τοπολογιών Τεχνοτροπίας Ροής Δεδομένων Τυχαία σύνδεση Ακολουθιακή σύνδεση Αναδρομική σύνδεση

13 Κατηγορίες Αρχιτεκτονικών Συμβατών με τη Τεχνοτροπία Ροής Δεδομένων Ακολουθιακής Στοιβάδας (Batch sequential) Αυλού/Φίλτρου (pipes&filters) Κλειστού βρόγχου (Closed loop control)

14 Χαρακτηριστικά Συστημάτων με Αρχιτεκτονική Ακολουθιακής Στοιβάδας Mονάδες (Components): είναι ανεξάρτητες εφαρμογές Συνδέσεις (Connectors): είναι κάποια υλισμική μορφή μεταφοράς δεδομένων (π.χ. magnetic tape) Κάθε βήμα πρέπει να τελειώσει πριν αρχίσει το επόμενο βήμα

15 Χαρακτηριστικά Συστημάτων με Αρχιτεκτονική Αυλού/Φίλτρου Δεν χρησιμοποιείται υλισμική μορφή μεταφοράς δεδομένων Τα δεδομένα μεταφέρονται από τη μία μονάδα στην άλλη μόλις είναι διαθέσιμα και όχι όταν όλη η λειτουργία της μονάδας ολοκληρωθεί Οι κάθε μονάδα (φίλτρο) δεν γνωρίζει τη ύπαρξη ή τη κατάσταση των άλλων φίλτρων (no shared state)

16 Data Pulling και Data Pushing Η ροή των δεδομένων από μια μονάδα (φίλτρο) σε άλλη βασίζεται στη δομή λειτουργίας της κάθε μονάδας και την πολιτική διάθεσης δεδομένων στις άλλες μονάδες Έχουμε τέσσερις επιλογές: –Μονάδες ώθησης (Push): η μονάδα «ωθεί» δεδομένα στην επόμενη μονάδα –Μονάδες έλξης (Pull): η μονάδα «έλκει» δεδομένα από την προηγούμενη μονάδα –Μονάδες ώθησης/έλξης (Push/pull): μια μονάδα έλκει δεδομένα από μια άλλη, παράγει αποτελέσματα, και ωθεί τα αποτελέσματα στην επόμενη μονάδα –Παθητικές Μονάδες (Passive): ούτε ωθούν ούτε έλκουν δεδομένα. Απλά παράγουν δεδομένα από μόνες τους (sources) ή είναι τελικοί αποδέκτες δεδομένων (sinks)

17 A Push Pipeline With an Active Source dataSource push filter1 push dataSink write(data) filter2 push f1(data) f2(data) write(data)

18 A Pull Pipeline With an Active Sink dataSink pull filter1 pull dataSource data:=read() filter2 pull f1(data) f2(data) data:=read()

19 A Mixed Push-pull Pipeline With Pasive Source and Sink dataSink filter1 pull/push dataSourcefilter2 pull f1(data) f2(data) data:=read() write(data)

20 A Pipeline With Active Filters and Synchronizing Buffering Pipes dataSource filter1 pull/push dataSink write() f2(data) buffering Pipe filter2 pull/push data:=read() f1(data) data:=read() write() data:=read() write()

21 Αρχιτεκτονική Αυλού/Φίλτρου – Θετικά Σημεία Η γενική συμπεριφορά του συστήματος ορίζεται από την σύνθεση των φίλτρων Επαναχρησιμοποίηση – Τα φίλτρα μπορούν να χρησιμοποιηθούν και σε άλλες εφαρμογές Ευκολία συντήρησης – Παλαιά φίλτρα μπορούν να αντικατασταθούν με νεώτερα Ευκολία δημιουργίας πρωτοτύπων από απλές μονάδες (φίλτρα) Ευκολία ανάλυσης της συμπεριφοράς του συστήματος (formal analysis - throughput and deadlock detection). Πιθανότητα υλοποίησης παράλληλων διαδικασιών (filters implemented as separate tasks, consuming and producing data incrementally)

22 Αρχιτεκτονική Αυλού/Φίλτρου – Αρνητικά Σημεία Εάν κάθε φίλτρο περιμένει να τελειώσει τη λειτουργία του πριν στείλει δεδομένα σε άλλες μονάδες τότε η όλη αρχιτεκτονική γίνεται συμβατή με αρχιτεκτονική ακολουθιακής στοιβάδας Δεν είναι εύκολο να χρησιμοποιούνται κοινά δεδομένα Δεν ενδείκνυνται για εφαρμογές με υψηλό βαθμό αλληλεπίδρασης με τον χρήστη άλλες εφαρμογές Συγχρονισμός των ροών μπορεί να επιφέρει περιορισμούς στη όλη αρχιτεκτονική Η διαχείριση συντριβής ενός φίλτρου είναι δύσκολη Πιθανή ανάγκη για κοινό παρονομαστή στην μορφολογία και τύπο των δεδομένων

23 Σύγκριση Αρχιτεκτονικής Ακολουθιακής Στοιβάδας και Αυλού/Φίλτρου Και οι δύο αρχιτεκτονικές βασίζονται σε μονάδες που λαμβάνουν δεδομένα, μεταλλάσσουν ή παράγουν νέα δεδομένα, και εξάγουν τα νέα δεδομένα σε άλλες μονάδες Ακολουθιακής ΣτοιβάδαςΑυλού / Φίλτρου «Μεγάλες» «Ακατέργαστες» μονάδες Μεγάλο διάστημα ερεθισμού- αντίδρασης Δεδομένα εισάγονται από εξωτερικές πηγές Μη δυνατότητα παράλληλων διαδικασιών Μη δυνατότητα δυναμικής αλληλεπίδρασης με άλλες διαδικασίες / χρήστες «Λεπτότεχνες» μονάδες Η διαθεσιμότητα δεδομένων αρκεί για να αρχίσει μια νέα μονάδα τη λειτουργία της Δεδομένα συνήθως εισάγονται από άλλες μονάδες Παράλληλες διαδικασίες είναι πιθανές Απλή μορφή αλληλεπίδρασης με άλλες διαδικασίες είναι εφικτή


Κατέβασμα ppt "HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google