Τεχνολογία ΛογισμικούSlide 1 Σχεδιασμός Λογισμικού u Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού
Τεχνολογία ΛογισμικούSlide 2 Στόχοι u Εισαγωγή διαδικασίας για τον σχεδιασμό λογισμικού u Περιγραφή διαφορετικών σταδίων στην διαδικασία σχεδιασμού u Παρουσίαση της συμπληρωματικότητας αντικειμενοστραφούς και λειτουργικού σχεδιασμού u Περιγραφή χαρακτηριστικών ποιότητας σχεδιασμού
Τεχνολογία ΛογισμικούSlide 3 Θέματα u Η διαδικασία σχεδιασμού και οι μέθοδοι σχεδιασμού u Στρατηγικές σχεδιασμού που περιλαμβάνουν αντικειμενοστραφή και λειτουργική σχεδιαστική ανάλυση u Χαρακτηριστικά ποιότητας σχεδιασμού
Τεχνολογία ΛογισμικούSlide 4 Στάδια Σχεδιασμού u Κατανόηση Προβλήματος Παρακολούθηση προβλήματος από διαφορετικές γωνίες για την κατανόηση των απαιτήσεων σχεδιασμού u Αναγνώριση Μίας ή Περισσότερων Λύσεων Αξιολόγηση πιθανών λύσεων και επιλογή των πλέον κατάλληλων (που εξαρτάται από την πείρα του σχεδιαστή και την διαθεσιμότητα πόρων) u Αφαιρετική Περιγραφή Λύσεων Χρήση γραφικών, τυπικών ή άλλων περιγραφικών μεθόδων για την περιγραφή των στοιχείων του σχεδιασμού u Επανάληψη της διαδικασίας για κάθε αφαιρετική περιγραφή για την περιγραφή της διαδικασίας σε πρωτογενείς όρους
Τεχνολογία ΛογισμικούSlide 5 Η Διαδικασία Σχεδιασμού u Μπορεί να μοντελοποιηθεί ως κατευθυνόμενος γράφος που κατασκευάζεται από οντότητες των οποίων τα χαρακτηριστικά συμμετέχουν στις σχέσεις u Το σύστημα περιγράφεται σε διαφορετικά επίπεδα αφαίρεσης u Ο σχεδιασμός γίνεται σε επικαλυπτόμενα στάδια. Είναι αυτονόητο ότι απαιτείται διαχωρισμός αλλά δεν υπάρχουν διακριτές φάσεις.
Τεχνολογία ΛογισμικούSlide 6 Από τον Άτυπο στον Τυπικό Σχεδιασμό
Τεχνολογία ΛογισμικούSlide 7 Φάσεις Στην Διαδικασία Σχεδιασμού
Τεχνολογία ΛογισμικούSlide 8 Φάσεις Σχεδιασμού u Αρχιτεκτονικός σχεδιασμός Εντοπισμός Υποσυστημάτων u Εξειδίκευση Εννοιών Αφαίρεσης Εξειδίκευση Υποσυστημάτων u Σχεδιασμός Διεπαφής Περιγραφή διεπαφών υποσυστημάτων u Σχεδιασμός Στοιχείων Ανάλυση Υπο-συστημάτων σε στοιχεία u Σχεδιασμός Δομών Δεδομένων Σχεδιασμός δομών δεδομένων για τα δεδομένα του συστήματος u Αλγοριθμικός Σχεδιασμός Σχεδιασμός αλγορίθμων για τις λειτουργίες του συστήματος
Τεχνολογία ΛογισμικούSlide 9 Ιεραρχική Δομή Δεδομένων
Τεχνολογία ΛογισμικούSlide 10 Σχεδιασμός Top-down u Περιλαμβάνει έναρξη από τα υψηλότερα στοιχεία στην ιεραρχία και εργασία προς τα κάτω στην ιεραρχία επίπεδο με επίπεδο. u Στην πράξη στα μεγάλα συστήματα δεν υπάρχει τέτοια δυνατότητα. Μερικά μέρη σχεδιάζονται πριν από κάποια άλλα. Οι σχεδιαστές επαναχρησιμοποιούν εμπειρία και στοιχεία στην διαδικασία σχεδιασμού
Τεχνολογία ΛογισμικούSlide 11 Μέθοδοι Σχεδιασμού u Οι δομημένες μέθοδοι είναι σύνολα συμβολισμών για να εκφράσουμε σχεδιασμό λογισμικού και οδηγίες για την δημιουργία σχεδιασμού u Πολύ γνωστές μέθοδοι είναι ο δομημένος σχεδιασμός (Yourdon), και η JSD (Jackson Method) u Μπορούν να εφαρμοσθούν επιτυχώς αφού περιλαμβάνουν πρότυπους συμβολισμούς και έτσι ο σχεδιασμός ακολουθεί πρότυπη μορφή u Οι δομημένες μέθοδοι υποστηρίζονται από εργαλεία CASE
Τεχνολογία ΛογισμικούSlide 12 Στοιχεία Μεθόδων u Υποστηρίζουν συγκρίσιμες περιγραφές του συστήματος u Μία περιγραφή ροής δεδομένων δείχνει την μεταβολή των δεδομένων u Μία περιγραφή οντοτήτων - σχέσεων που περιγράφει τις λογικές δομές δεδομένων u Μία δομημένη περιγραφή που εμφανίζει τα στοιχεία του συστήματος και τις αλληλεπιδράσεις
Τεχνολογία ΛογισμικούSlide 13 Μειονεκτήματα Μεθόδων u Είναι οδηγίες παρά μέθοδοι με την μαθηματική έννοια του όρου. Διαφορετικοί σχεδιαστές δημιουργούν διαφορετικούς σχεδιασμούς συστημάτων u Δεν βοηθούν στην πρώιμη, δημιουργική φάση του σχεδιασμού. Βοηθούν όμως τον σχεδιαστή να δομήσεις τις ιδέες του
Τεχνολογία ΛογισμικούSlide 14 Περιγραφή Σχεδιασμού u Γραφικοί συμβολισμοί. Χρησιμοποιούνται για την καταγραφή των σχέσεων των στοιχείων u Περιγραφικές γλώσσες προγραμματισμού. Βασίζονται σε γλώσσες προγραμματισμού αλλά έχουν την ευελιξία παρουσίασης θεμάτων αφαίρεσης u Άτυπο κείμενο. Περιγραφή σε φυσική γλώσσα u Όλοι οι συμβολισμοί χρησιμοποιούνται στον σχεδιασμό μεγάλων συστημάτων
Τεχνολογία ΛογισμικούSlide 15 Στρατηγικές Σχεδιασμού u Λειτουργικός Σχεδιασμός Το σύστημα σχεδιάζεται από την πλευρά της λειτουργικότητας. Η κατάσταση του συστήματος κεντρικοποιείται και μοιράζεται μεταξύ των λειτουργιών σε αυτή την κατάσταση u Αντικειμενοστραφής Σχεδιασμός Το σύστημα εμφανίζεται ως συλλογή αλληλεπιδρώντων αντικειμένων. Το σύστημα μπορεί να αποκεντρικοποιηθεί και κάθε αντιμείμενο διαχειρίζεται την κατάστασή του. Τα αντικείμενα μπορεί να είναι μέλη μίας κλάσης αντικειμένων και επικοινωνούν με μεθόδους ανταλλαγής
Τεχνολογία ΛογισμικούSlide 16 Λειτουργική Αντίληψη ενός Μεταγλωττιστή
Τεχνολογία ΛογισμικούSlide 17 Αντικειμενοστραφής Όψη ενός Μεταγλωττιστή
Τεχνολογία ΛογισμικούSlide 18 Σχεδιασμός Μικτής Στρατηγικής u Αν και υπάρχουν απόψεις που λένε ότι η μία ή η άλλη στρατηγική είναι καλύτερη και οι δύο μέθοδοι είναι συμπληρωματικές u Οι καλοί μηχανικοί λογισμικού μπορούν να επιλέξουν την καλύτερη μέθοδο για το υποσύστημα
Τεχνολογία ΛογισμικούSlide 19 Υποσυστήματα Αεροπλάνου
Τεχνολογία ΛογισμικούSlide 20 Αντικείμενα Υψηλού Επιπέδου u Το σύστημα πλοήγησης u Το σύστημα radar u Το σύστημα επικοινωνιών u Το σύστημα οργάνων u Το σύστημα ελέγχου μηχανής u... 18
Τεχνολογία ΛογισμικούSlide 21 Λειτουργίες Συστήματος (σε επίπεδο υπο - συστημάτων) u Εμφάνιση πορείας (radar) u Ρύθμιση σε σχέση με την ταχύτητα αέρα (σύστημα πλοήγησης) u Ελάττωση ισχύος (υπο - σύστημα μηχανής) u Ένδειξη κινδύνου (σύστημα οργάνων) u Χρήση συχνότητας (σύστημα επικοινωνίας) u...
Τεχνολογία ΛογισμικούSlide 22 Αντικείμενα Χαμηλού Επιπέδου u Κατάσταση μηχανής u Θέση αεροπλάνου u Υψόμετρο u Ραδιοφάρος u... 20
Τεχνολογία ΛογισμικούSlide 23 Ποιότητα Σχεδιασμού u Η ποιότητα σχεδιασμού είναι ένα δύσκολο θέμα. Εξαρτάται από τις προτεραιότητες του οργανισμού u Ένας καλός σχεδιασμός μπορεί να είναι ο πιο αποτελεσματικός, ο φθηνότερος, ο πιο αξιόπιστος, κ.α.. u Τα χαρακτηριστικά που παρουσιάζονται εδώ έχουν σχέση με την δυνατότητα συντήρησης του σχεδιασμού u Τα χαρακτηριστικά ποιότητας εφαρμόζονται και στις δύο μεθόδους
Τεχνολογία ΛογισμικούSlide 24 Συνοχή u Μέτρο του πόσο καλά τα στοιχεία συνδυάζονται μεταξύ τους u Ένα στοιχείο υλοποιεί απλή λογική οντότητα ή συνάρτηση u Η συνοχή είναι σημαντικό χαρακτηριστικό σχεδιασμού στοιχείου όταν γίνεται κάποια αλλαγή u Υπάρχουν διάφορα επίπεδα συνοχής
Τεχνολογία ΛογισμικούSlide 25 Επίπεδα Συνοχής u Συμπτωματική συνοχή (ασθενής) Μέρη στοιχείου απλά τοποθετούνται μαζί u Λογική Σχέση (ασθενής) Στοιχεία τα οποία κάνουν ίδιες λειτουργίες ομαδοποιούνται u Χρονική Συνοχή (ασθενής) Στοιχεία τα οποία ενεργοποιούνται την ίδια χρονική στιγμή ομαδοποιούνται u Διαδικαστική Συνοχή (ασθενής) Τα στοιχεία δημιουργούν απλή ακολουθία ελέγχου
Τεχνολογία ΛογισμικούSlide 26 Επίπεδα Συνοχής u Επικοινωνιακή Συνοχή (μέτρια) Όλα τα στοιχεία λειτουργούν με την ίδια είσοδο και παράγουν την ίδια έξοδο u Ακολουθιακή Συνοχή (μέτρια) Η έξοδος ενός στοιχείου είναι η είσοδος σε κάποιο άλλο u Λειτουργική Συνοχή (δυνατή) Κάθε στοιχείο είναι απαραίτητο για την εκτέλεση απλής λειτουργίας u Συνοχή Αντικειμένων (δυνατή) Κάθε λειτουργία παρέχει την δυνατότητα που επιτρέπει την τροποποίηση ή έλεγχο των χαρακτηριστικών
Τεχνολογία ΛογισμικούSlide 27 Η Συνοχή ως Χαρακτηριστικό Σχεδιασμού u Είναι δύσκολο να ορισθεί. Συχνά δύσκολη η κατηγοριοποίηση της συνοχής u Τα κληρονομικά χαρακτηριστικά από υπερ - κλάσεις εξασθενούν την συνοχή u Για την κατανόηση ενός στοιχείου θα πρέπει να εξετασθούν οι υπερ - κλάσεις και η κλάση του στοιχείου u Βοηθούν τα συστήματα προήγησης στις κλάσεις
Τεχνολογία ΛογισμικούSlide 28 u Μέτρο ισχύος διασύνδεσης μεταξύ στοιχείων συστήματος u Στην χαλαρή σύνδεση οι αλλαγές στοιχείων δεν επηρεάζουν άλλα στοιχεία u Διαμεριζόμενες μεταβλητές ή ανταλλαγή πληροφορίας ελέγχου οδηγεί σε ισχυρή σύνδεση u Η χαλαρή σύνδεση μπορεί να γίνει με αποκεντρικοποίηση της κατάστασης (αντικείμενα) και επικοινωνία στοιχείων με παραμέτρους και ανταλλαγή μηνυμάτων 28 Σύνδεση
Τεχνολογία ΛογισμικούSlide 29 Ισχυρή Σύνδεση
Τεχνολογία ΛογισμικούSlide 30 Χαλαρή Σύνδεση
Τεχνολογία ΛογισμικούSlide 31 u Τα αντικειμενοστραφή συστήματα έχουν χαλαρή σύνδεση γιατί δεν υπάρχει διαμεριζόμενη κατάσταση και τα αντικείμενα επικοινωνούν με ανταλλαγή μηνυμάτων u Όμως μία κλάση αντικειμένων σχετίζεται με μία υπερ - κλάση. Αλλαγές που γίνονται στα χαρακτηριστικά ή λειτουργίες υπερ - κλάσεων διαδίδονται σε όλες τις υπο - κλάσεις. Οι αλλαγές αυτές πρέπει να ελέγχονται προσεκτικά Σύνδεση και Κληρονομικότητα
Τεχνολογία ΛογισμικούSlide 32 u Σχετίζεται με πολλά χαρακτηριστικά των στοιχείων Συνοχή. Μπορεί το στοιχείο να γίνει κατανοητό από μόνο του; Ονομασία. Χρησιμοποιούνται ονόματα με σημασία; Τεκμηρίωση. Τεκμηριώνεται ο σχεδιασμός καλά; Πολυπλοκότητα. Χρησιμοποιούνται πολύπλοκοι αλγόριθμοι; u Υψηλή πολυπλοκότητα σημαίνει ότι υπάρχουν πολλές σχέσεις μεταξύ των στοιχείων και είναι δύσκολο να γίνουν κατανοητές u Οι περισσότερες μετρικές ποιότητας προσανατολίζονται στην πολυπλοκότητα. Έχουν περιορισμένη χρήση 32 Κατανοησιμότητα
Τεχνολογία ΛογισμικούSlide 33 u Ο σχεδιασμός είναι προσαρμόσιμος εάν: Όλα τα στοιχεία έχουν χαλαρή σύνδεση Έχουν καλή και έγκαιρη τεκμηρίωση Υπάρχει διακρισιμότητα μεταξύ επιπέδων σχεδιασμού Κάθε στοιχείο είναι αυτόνομη οντότητα u Για την προσαρμογή σχεδιασμού είναι απαραίτητη η παρακολουθηση συνδέσεων μεταξύ των στοιχείων σχεδιασμού ώστε επιπτώσεις αλλαγών να μπορούν να αναλυθούν 33 Προσαρμοστικότητας
Τεχνολογία ΛογισμικούSlide 34 Δυνατότητα Παρακολούθησης Σχεδιασμού
Τεχνολογία ΛογισμικούSlide 35 u Η κληρονομικότητα βελτιώνει δραματικά την προσαρμοστικότητα. Τα στοιχεία προσαρμόζονται χωρίς αλλαγή με τροποποίηση μίας κλάσης u Όσο όμως το μέγεθος της ιεραρχίας κληρονομικότητας αυξάνει γίνεται και πιο πολύπλοκο. Πρέπει περιοδικά να ελέγχεται και να αναδομείται 35 Προσαρμοστικότητα και Κληρονομικότητα
Τεχνολογία ΛογισμικούSlide 36 u Ο σχεδιασμός είναι μία δημιουργική διαδικασία u Ο σχεδιασμός περιλαμβάνει αρχιτεκτονικό σχεδιασμό, εξειδίκευση συστήματος, σχεδιασμός στοιχείων, σχεδιασμό δομών δεδομένων και αλγοριθμικό σχεδιασμό u Η λειτουργική ανάλυση θεωρεί το σύστημα ως σύνολο λειτουργικών ενοτήτων u Η αντικειμενοστραφής ανάλυση το θεωρεί ως σύνολο αντικειμένων 36 Σημαντικά Σημεία