Αρχιτεκτονικός σχεδιασμός
Στόχοι 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
Κύρια σημεία Η αρχιτεκτονική του λογισμικού αποτελεί το βασικό πλαίσιο εργασίας για τη δόμηση ενός συστήματος. Στις αποφάσεις του αρχιτεκτονικού σχεδιασμού περιλαμβάνονται αποφάσεις σχετικά με τον τύπο της εφαρμογής, την κατανομή του συστήματος και τα αρχιτεκτονικά στυλ που θα χρησιμοποιηθούν. Μπορούν να αναπτυχθούν διάφορα αρχιτεκτονικά μοντέλα όπως το δομικό μοντέλο, το μοντέλο ελέγχου και το μοντέλο αποδόμησης. Στα μοντέλα οργάνωσης συστημάτων περιλαμβάνονται μοντέλα αποθετηρίου, μοντέλα πελάτη-διακομιστή και μοντέλα αφηρημένης μηχανής.
Κύρια σημεία Στα μοντέλα αποδόμησης σε υπομονάδες περιλαμβάνονται μοντέλα αντικειμένων και μοντέλα διοχέτευσης. Στα μοντέλα ελέγχου συγκαταλέγονται μοντέλα συγκεντρωτικού ελέγχου και μοντέλα οδηγούμενα από συμβάντα. Οι αρχιτεκτονικές αναφοράς χρησιμοποιούνται ως μέσο για την περιγραφή αρχιτεκτονικών που αναφέρονται σε συγκεκριμένα πεδία εφαρμογής, καθώς και για την αξιολόγηση και σύγκριση αρχιτεκτονικών σχεδιασμών.
Αρχιτεκτονικά μοντέλα Κατά τη διαδικασία σχεδιασμού μπορούν να παραχθούν διάφορα αρχιτεκτονικά μοντέλα Κάθε μοντέλο παρουσιάζει μια διαφορετική προοπτική της αρχιτεκτονικής
Γνωρίσματα της αρχιτεκτονικής Απόδοση Τοπικός περιορισμός λειτουργιών με σκοπό την ελαχιστοποίηση των επικοινωνιών μεταξύ υποσυστημάτων Προστασία από εξωτερικούς κινδύνους Χρήση πολυεπίπεδης αρχιτεκτονικής, με τους κρίσιμους πόρους στα εσωτερικά επίπεδα Ασφάλεια Απομόνωση συστατικών στοιχείων κρίσιμων από άποψη ασφάλειας Διαθεσιμότητα Συμπερίληψη πλεοναζόντων συστατικών στοιχείων στην αρχιτεκτονική Συντηρησιμότητα Χρήση λεπτομερών, αυτοτελών συστατικών στοιχείων