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

Σχετικά έγγραφα
Τεχνολογία Λογισμικού

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

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

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

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

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

ΑΕΠΠ Ερωτήσεις θεωρίας

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

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

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

Σκοπός του μαθήματος

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Ευφυείς Τεχνολογίες ----Πράκτορες

Πληροφοριακού Συστήματος Ενημέρωσης Καιρικών Συνθηκών

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

Μαλούτα Θεανώ Σελίδα 1

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

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

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ

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

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

Πίνακας Περιεχομένων

Προγραμματισμός Ι (HY120)

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

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

Κωδικοποίηση και Έλεγχος Ορθότητας

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

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

Προγράμματα Η /Υ / Εφαρμογές σε συστ ήματα Π ό οι τητας Αριστομένης Μακρής

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Δείχτες Επιτυχίας και Δείχτες Επάρκειας

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

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

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

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

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

Αρχιτεκτονική υπολογιστών

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΕΙ ΙΚΑ ΚΕΦΑΛΑΙΑ ΧΑΡΤΟΓΡΑΦΙΑΣ ΧΑΡΤΟΓΡΑΦΙΑ ΧΑΡΤΗΣ ΧΡΗΣΗ ΗΜΙΟΥΡΓΙΑ. β. φιλιππακοπουλου 1

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

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

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

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

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

Ψηφιακά ολοκληρωμένα κυκλώματα

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

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

Περιεχόμενα. 2 Αριθμητικά συστήματα

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

Θεωρίες Μάθησης και Εκπαιδευτικό Λογισμικό

Έννοιες Διαχείρισης Βάσεων Δεδομένων και Αρχιτεκτονική

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

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

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

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

Η Διαδικασία Σχεδιασμού Συστημάτων

Εισαγωγή στην πληροφορική

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

Έλεγχος Προγραμμάτων και Συστήματος

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

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

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

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

Πληροφοριακά Συστήματα Διοίκησης. Διοικητική Επιστήμη και Λήψη Αποφάσεων

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Μαθησιακές δραστηριότητες με υπολογιστή

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

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

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

Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση

Πέργαµος: Το Σύστηµα Ψηφιακής Βιβλιοθήκης του Πανεπιστηµίου Αθηνών

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

Εισαγωγή στην Πληροφορική

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

Αρχιτεκτονική Υπολογιστών

υπολογιστικών συστημάτων. Παρουσίαση με τίτλο "Περιεχόμενο, διαδικασία μαθήματος και εισαγωγή"

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

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

12.1. Προσδοκώμενα αποτελέσματα

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

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

Transcript:

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

Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση: Ικανοποιεί όλες τις απαιτήσεις τις προδιαγραφής. Είναι δυνατόν να υπάρχουν πολλαπλές λύσεις. Πιθανόν να μην υπάρχει μοναδική «βέλτιστη». Αλλαγές (και πάλι ).

Εννοιολογικό & Τεχνικό Σχέδιο 3 Εννοιολογικό σχέδιο. Απευθύνεται στον πελάτη. Προσανατολισμένο και πάλι το Τι (λειτουργίες). Από πού προέρχονται τα δεδομένα; Τι θα τους συμβεί; User-interface; Χρονισμός γεγονότων; Τεχνικό σχέδιο. Λεπτομερέστερο, πιο τεχνικό. Απευθύνεται στους κατασκευαστές του συστήματος. Περιγράφει τη μορφή που θα πάρει το σύστημα. Διάταξη υλικού Ανάγκες σε λογισμικό και ιεραρχία τμημάτων λογισμικού Ανάγκες επικοινωνίας Ι/Ο format Δομές δεδομένων και ροή δεδομένων Παλινδρόμηση μεταξύ εννοιολογικού και τεχνικού σχεδίου. Είναι δυνατόν να συμπτυχθούν. Πότε;

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

Παράδειγμα Πολυεπίπεδης Αποσύνθεσης 5

Στρατηγικές Αποσύνθεσης (Wasserman 1995) 6 Αποσύνθεση σε μονάδες. Ανάθεση λειτουργιών στα συστατικά στοιχεία. Αποσύνθεση προσανατολισμένη σε δεδομένα. Βασίζεται σε εξωτερικές δομές δεδομένων. Αποσύνθεση με βάση τα γεγονότα. Βασίζεται στα γεγονότα που πρέπει να χειρίζεται το σύστημα. Αποσύνθεση από μέσα προς τα έξω. Βασίζεται στις εισόδους των χρηστών στο σύστημα. Αντικειμενοστρεφής σχεδίαση. Κλάσεις αντικειμένων και σχέσεις μεταξύ τους. Μας θυμίζει κάτι;

Επίπεδα Σχεδίασης 7 Αρχιτεκτονική Συσχέτιση προδιαγραφών με μονάδες λογισμικού που θα τις υλοποιήσουν. Συστήματα & υποσυστήματα. «Συνεκτική εικόνα» Σχεδίαση κώδικα Αλγόριθμοι Δομές δεδομένων Σχεδίαση εκτελέσιμου Επιμερισμός μνήμης Μορφή δεδομένων Ιδανικό: Σχεδίαση από πάνω προς τα κάτω. Στην πράξη: Παλινδρόμηση μεταξύ των επιπέδων κατά τη διάρκεια της σχεδίασης.

Στυλ Σχεδίασης: Διοχετεύσεις & Φίλτρα 8 Διοχετεύσεις (pipes): Ρεύματα δεδομένων. Φίλτρα: Ανεξάρτητες λειτουργίες που επιδρούν στα δεδομένα. Συχνά το αποτέλεσμα δεν εξαρτάται από τη σειρά εφαρμογής των φίλτρων.

Ιδιότητες Διοχετεύσεων και Φίλτρων 9 Ιδιότητες: Κατανόηση του συστήματος με βάση την είσοδο των φίλτρων. Επαναχρησιμοποίηση. Εύκολη εξέλιξη του συστήματος. Εύκολη προσομοίωση ανάλυση του συστήματος λόγω ανεξαρτησίας των φίλτρων. Παραλληλισμός (ταυτόχρονη εκτέλεση φίλτρων). Μειονεκτήματα: Δεν ταιριάζουν σε αλληλεπιδραστικές εφαρμογές. Τι γίνεται αν δύο ρεύματα δεδομένων σχετίζονται; Αντιστοιχίες; Ανεξαρτησία φίλτρων ενδεχομένως να οδηγεί σε πλεονασμό και αχρείαστη πολυπλοκότητα.

Στυλ Σχεδίασης: Αντικειμενοστρεφής Σχεδίαση 10 Ακεραιότητα αναπαράστασης δεδομένων ανά αντικείμενο. Απόκρυψη δεδομένων από τα υπόλοιιπα αντικείμενα (ενθυλάκωση). Πλεονεκτήματα: Διευκολύνει τυχόν αλλαγές. Διευκολύνει την αποσύνθεση του προβλήματος σε σύνολο συστατικών που αλληλεπιδρούν. Όμως: Μη ανεξαρτησία (κάθε αντικείμενο πρέπει να γνωρίζει την ταυτότητα και τις μεθόδους των υπολοίπων).

Στυλ Σχεδίασης: Υπονοούμενη Εκτέλεση 11 Καταχώριση: Αντιστοίχιση διαδικασιών σε γεγονότα από τις μονάδες. Ανακοινώνεται ότι έλαβαν χώρα ένα ή περισσότερα γεγονότα. Εκτέλεση των διαδικασιών που έχουν καταχωρηθεί. Π.χ. Debugger: Καταχωρούνται εργαλεία για διαφορετικά είδη λαθών. + Βολικό για επαναχρησιμοποίηση, εξέλιξη. - Δύσκολος έλεγχος του συστήματος και εξασφάλιση ορθότητας

Στυλ Σχεδίασης: Διαστρωμάτωση 12 Ιεραρχική δομή: Κάθε στρώμα πελάτης των κατώτερων στρωμάτων και εξυπηρετητής των ανώτερων. Ενδεχομένως να υπάρχει διαφάνεια σε πολλαπλά κατώτερα επίπεδα. Εκμετάλλευση της έννοιας της αφαίρεσης. Αποσύνθεση του προβλήματος. Περιορισμοί στις αλληλεπιδράσεις. Εύκολη επαναχρησιμοποίηση / τροποποιήσεις Όμως: Δεν είναι εφαρμόσιμο σε όλα τα συστήματα. Δεν είναι αρχικά προφανή τα στρώματα. Ενδεχόμενα προβλήματα επίδοσης.

Παράδειγμα Διαστρωμάτωσης 13

Στυλ Σχεδίασης: Αποθήκες Δεδομένων 14 Υπάρχουν: Κεντρικός αποθηκευτικός χώρος. Συλλογή συστατικών: Αποθηκεύουν / ανακτούν / ενημερώνουν πληροφορίες. Βάση δεδομένων: Οι συναλλαγές (ρεύμα εισόδου) ρυθμίζουν την εκτέλεση των διεργασιών. Εφαρμογές: Βάσεις δεδομένων, μηχανές αναζήτησης, Μαυροπίνακας: Ο κεντρικός αποθηκευτικός χώρος ελέγχει την ενεργοποίηση των διεργασιών. Αλλαγές στον «μαυροπίνακα» ενεργοποιούν διεργασίες. Εφαρμογές σε επεξεργασία σήματος & αναγνώριση προτύπων. Ανοιχτή φιλοσοφία: Η αναπαράσταση δεδομένων διαθέσιμη σε πολλούς κατασκευαστές διεργασιών. Όμως: Απαιτείται συμφωνία ως προς την αναπαράσταση των δεδομένων.

Στυλ Σχεδίασης: Διερμηνευτές 15 Είσοδος: Ψευδοκώδικας (σύνολο χαρακτήρων). Έξοδος: Πραγματικός, εκτελέσιμος κώδικας. Τμήματα: Ψευδοκώδικας (σε τμήμα μνήμης). Μηχανή ερμηνείας. Τρέχουσα κατάσταση μηχανής ερμηνείας. Τρέχουσα κατάσταση προγράμματος.

Στυλ Σχεδίασης: Έλεγχος Διεργασιών 16 Υπολογιστικά στοιχεία (υλοποιούν πολιτική ελέγχου) Διαχωρισμός μηχανισμού από πολιτική ελέγχου. Στοιχεία δεδομένων (μεταβλητές, σταθερό σημείο, αισθητήρες) Μηχανισμός βρόχου ελέγχου (εμπρόσθιας μετάδοσης, ανάδρασης)

Στυλ Σχεδίασης: Συστήματα Πελάτη - Εξυπηρετητή 17 Πελάτης ζητά υπηρεσία. Εξυπηρετητής αποκρίνεται. Πλεονεκτήματα: Πληροφορίες όταν οι χρήστες τις χρειαστούν. Δυνατή η διαφορετική παρουσίαση ανά πελάτη. Πλεονασμός για υψηλή διαθεσιμότητα. Μειονεκτήματα: Ασφάλεια. Διαχείριση συστήματος.

Ειδικές Αρχιτεκτονικές 18 Εξειδικευμένες στο πρόβλημα (domainspecific) Αποδοτικότητα Επαναχρησιμοποίηση Ετερογενείς / Υβριδικές Συνδυασμός στοιχείων από διάφορα στυλ Διαφορετικό ενδεχόμενα στυλ για κάθε συστατικό/υποσύστημα

Αποσύνθεση: Σε τι βαθμό; 19

Σχεδίαση Διασύνδεσης Χρήστη (1/2) 20 Κρίσιμα στοιχεία: Μεταφορές: Θεμελιώδεις όροι, εικόνες, έννοιες που πρέπει να μάθει ο χρήστης. Πνευματικό μοντέλο: Οργάνωση & αναπαράσταση δεδομένων, λειτουργιών, δραστηριοτήτων, ρόλων. Κανόνες πλοήγησης για το μοντέλο: Τρόπος μετακίνησης διαμέσου δεδομένων, λειτουργιών, ρόλων, δραστηριοτήτων. Εμφάνιση. Αίσθηση.

Σχεδίαση Διασύνδεσης Χρήστη (2/2) 21 Ζητήματα σχεδίασης: Ζητήματα κουλτούρας. Χρώματα, τρόποι ανάγνωσης, προβλήματα «διαστασιολόγησης» στη μετάφραση, ζητήματα λειτουργικότητας. Προτιμήσεις χρήστη. Ενδεχομένως αντικρουόμενες επιλογές: Επίδοση vs. λειτουργικότητα. Ευκολία χρήσης vs. Ασφάλεια.

Πρότυπα Σχεδίων και Επαναχρησιμοποίηση 22 Εκμετάλλευση ομοιότητας ανάμεσα σε συστήματα. Πρότυπο ή υπόδειγμα σχεδίου: Εξετάζει αφαιρετικά & αναγνωρίζει κρίσιμες πλευρές σχεδίου. Απόκρυψη πληροφορίας

Από την Ανάλυση Απαιτήσεων στη Σχεδίαση 23

Χαρακτηριστικά Καλού Σχεδίου: Ανεξαρτησία Συστατικών 24 Ανεξάρτητα μεταξύ τους συστατικά (δομικές μονάδες). Ευκολότερος έλεγχος, κατανόηση, τροποποίηση. Βαθμός ανεξαρτησίας: Σύζευξη: Συσχέτιση μεταξύ διαφορετικών δομικών μονάδων. Συνεκτικότητα: Εσωτερική συνοχή κάθε δομικής μονάδας. Στόχος: Χαμηλή σύζευξη & υψηλή συνεκτικότητα.

Σύζευξη 25

Τύποι Σύζευξης (Λιγότερο προς Περισσότερο Επιθυμητούς) 26 Περιεχομένου: Άμεση τροποποίηση στοιχείων του ενός συστατικού από το άλλο. Άμεση χρήση (π.χ. με διακλάδωση) στοιχείων του ενός συστατικού από το άλλο Κοινών δεδομένων: Στην περίπτωση που τα συστατικά προσπελαύνουν κοινά, κεντρικά διαθέσιμα δεδομένα. Ελέγχου Καθοδηγητής / Καθοδηγούμενος Αντιγράφου Δεδομένα (raw) από το ένα συστατικό στο άλλο. Πρέπει να ταιριάζουν οι τύποι, η τιμή, η οργάνωση Δεδομένων Δομές δεδομένων από το ένα συστατικό στο άλλο

Παράδειγμα: Σύζευξη Περιεχομένου 27

Παράδειγμα: Σύζευξη Κοινών Δεδομένων 28

Συνεκτικότητα (Χειρότερη προς Καλύτερη) 29 Συμπτωματική Καμία σχέση Λόγοι άνεσης του προγραμματιστή, εύκολης αναζήτησης κλπ. Λογική Λογικά σχετιζόμενες συναρτήσεις (αλλά όχι απαραίτητα και λειτουργικά σχετιζόμενες ) Χρονική Διαδικασιακή Σειρά λειτουργιών Επικοινωνιακή Λειτουργίες επί των ίδιων δεδομένων Ακολουθιακή Έξοδος του ενός τμήματος -> είσοδος του επομένου Λειτουργική 1-1 συσχέτιση τμημάτων - λειτουργιών