Upload
kaz
View
75
Download
0
Embed Size (px)
DESCRIPTION
Σχεδιασμός Λογισμικού. Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού. Στόχοι. Εισαγωγή διαδικασίας για τον σχεδιασμό λογισμικού Περιγραφή διαφορετικών σταδίων στην διαδικασία σχεδιασμού Παρουσίαση της συμπληρωματικότητας αντικειμενοστραφούς και λειτουργικού σχεδιασμού - PowerPoint PPT Presentation
Citation preview
Τεχνολογία Λογισμικού Slide 1
Σχεδιασμός Λογισμικού
Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού
Τεχνολογία Λογισμικού Slide 2
Στόχοι
Εισαγωγή διαδικασίας για τον σχεδιασμό λογισμικού
Περιγραφή διαφορετικών σταδίων στην διαδικασία σχεδιασμού
Παρουσίαση της συμπληρωματικότητας αντικειμενοστραφούς και λειτουργικού σχεδιασμού
Περιγραφή χαρακτηριστικών ποιότητας σχεδιασμού
Τεχνολογία Λογισμικού Slide 3
Θέματα
Η διαδικασία σχεδιασμού και οι μέθοδοι σχεδιασμού
Στρατηγικές σχεδιασμού που περιλαμβάνουν αντικειμενοστραφή και λειτουργική σχεδιαστική ανάλυση
Χαρακτηριστικά ποιότητας σχεδιασμού
Τεχνολογία Λογισμικού Slide 4
Στάδια Σχεδιασμού Κατανόηση Προβλήματος
• Παρακολούθηση προβλήματος από διαφορετικές γωνίες για την κατανόηση των απαιτήσεων σχεδιασμού
Αναγνώριση Μίας ή Περισσότερων Λύσεων• Αξιολόγηση πιθανών λύσεων και επιλογή των πλέον κατάλληλων (που
εξαρτάται από την πείρα του σχεδιαστή και την διαθεσιμότητα πόρων)
Αφαιρετική Περιγραφή Λύσεων• Χρήση γραφικών, τυπικών ή άλλων περιγραφικών μεθόδων για την
περιγραφή των στοιχείων του σχεδιασμού
Επανάληψη της διαδικασίας για κάθε αφαιρετική περιγραφή για την περιγραφή της διαδικασίας σε πρωτογενείς όρους
Τεχνολογία Λογισμικού Slide 5
Η Διαδικασία Σχεδιασμού
Μπορεί να μοντελοποιηθεί ως κατευθυνόμενος γράφος που κατασκευάζεται από οντότητες των οποίων τα χαρακτηριστικά συμμετέχουν στις σχέσεις
Το σύστημα περιγράφεται σε διαφορετικά επίπεδα αφαίρεσης
Ο σχεδιασμός γίνεται σε επικαλυπτόμενα στάδια. Είναι αυτονόητο ότι απαιτείται διαχωρισμός αλλά δεν υπάρχουν διακριτές φάσεις.
Τεχνολογία Λογισμικού Slide 6
Από τον Άτυπο στον Τυπικό Σχεδιασμό
Informaldesignoutline
Informaldesign
Moreformaldesign
Finisheddesign
Τεχνολογία Λογισμικού Slide 7
Φάσεις Στην Διαδικασία Σχεδιασμού
Architecturaldesign
Abstractspecificatio
n
Interfacedesign
Componentdesign
Datastructuredesign
Algorithmdesign
Systemarchitecture
Softwarespecification
Interfacespecification
Componentspecification
Datastructure
specification
Algorithmspecification
Requirementsspecification
Design activities
Design products
Τεχνολογία Λογισμικού Slide 8
Φάσεις Σχεδιασμού Αρχιτεκτονικός σχεδιασμός Εντοπισμός Υποσυστημάτων Εξειδίκευση Εννοιών Αφαίρεσης Εξειδίκευση
Υποσυστημάτων Σχεδιασμός Διεπαφής Περιγραφή διεπαφών υποσυστημάτων Σχεδιασμός Στοιχείων Ανάλυση Υπο-συστημάτων σε
στοιχεία Σχεδιασμός Δομών Δεδομένων Σχεδιασμός δομών
δεδομένων για τα δεδομένα του συστήματος Αλγοριθμικός Σχεδιασμός Σχεδιασμός αλγορίθμων για τις
λειτουργίες του συστήματος
Τεχνολογία Λογισμικού Slide 9
Ιεραρχική Δομή ΔεδομένωνSystem level
Sub-systemlevel
Τεχνολογία Λογισμικού Slide 10
Σχεδιασμός Top-down
Περιλαμβάνει έναρξη από τα υψηλότερα στοιχεία στην ιεραρχία και εργασία προς τα κάτω στην ιεραρχία επίπεδο με επίπεδο.
Στην πράξη στα μεγάλα συστήματα δεν υπάρχει τέτοια δυνατότητα. Μερικά μέρη σχεδιάζονται πριν από κάποια άλλα. Οι σχεδιαστές επαναχρησιμοποιούν εμπειρία και στοιχεία στην διαδικασία σχεδιασμού
Τεχνολογία Λογισμικού Slide 11
Μέθοδοι Σχεδιασμού Οι δομημένες μέθοδοι είναι σύνολα συμβολισμών για να
εκφράσουμε σχεδιασμό λογισμικού και οδηγίες για την δημιουργία σχεδιασμού
Πολύ γνωστές μέθοδοι είναι ο δομημένος σχεδιασμός (Yourdon), και η JSD (Jackson Method)
Μπορούν να εφαρμοσθούν επιτυχώς αφού περιλαμβάνουν πρότυπους συμβολισμούς και έτσι ο σχεδιασμός ακολουθεί πρότυπη μορφή
Οι δομημένες μέθοδοι υποστηρίζονται από εργαλεία CASE
Τεχνολογία Λογισμικού Slide 12
Στοιχεία Μεθόδων
Υποστηρίζουν συγκρίσιμες περιγραφές του συστήματος
Μία περιγραφή ροής δεδομένων δείχνει την μεταβολή των δεδομένων
Μία περιγραφή οντοτήτων - σχέσεων που περιγράφει τις λογικές δομές δεδομένων
Μία δομημένη περιγραφή που εμφανίζει τα στοιχεία του συστήματος και τις αλληλεπιδράσεις
Τεχνολογία Λογισμικού Slide 13
Μειονεκτήματα Μεθόδων
Είναι οδηγίες παρά μέθοδοι με την μαθηματική έννοια του όρου. Διαφορετικοί σχεδιαστές δημιουργούν διαφορετικούς σχεδιασμούς συστημάτων
Δεν βοηθούν στην πρώιμη, δημιουργική φάση του σχεδιασμού. Βοηθούν όμως τον σχεδιαστή να δομήσεις τις ιδέες του
Τεχνολογία Λογισμικού Slide 14
Περιγραφή Σχεδιασμού
Γραφικοί συμβολισμοί. Χρησιμοποιούνται για την καταγραφή των σχέσεων των στοιχείων
Περιγραφικές γλώσσες προγραμματισμού. Βασίζονται σε γλώσσες προγραμματισμού αλλά έχουν την ευελιξία παρουσίασης θεμάτων αφαίρεσης
Άτυπο κείμενο. Περιγραφή σε φυσική γλώσσα Όλοι οι συμβολισμοί χρησιμοποιούνται στον
σχεδιασμό μεγάλων συστημάτων
Τεχνολογία Λογισμικού Slide 15
Στρατηγικές Σχεδιασμού
Λειτουργικός Σχεδιασμός• Το σύστημα σχεδιάζεται από την πλευρά της λειτουργικότητας.
Η κατάσταση του συστήματος κεντρικοποιείται και μοιράζεται μεταξύ των λειτουργιών σε αυτή την κατάσταση
Αντικειμενοστραφής Σχεδιασμός• Το σύστημα εμφανίζεται ως συλλογή αλληλεπιδρώντων
αντικειμένων. Το σύστημα μπορεί να αποκεντρικοποιηθεί και κάθε αντιμείμενο διαχειρίζεται την κατάστασή του. Τα αντικείμενα μπορεί να είναι μέλη μίας κλάσης αντικειμένων και επικοινωνούν με μεθόδους ανταλλαγής
Τεχνολογία Λογισμικού Slide 16
Λειτουργική Αντίληψη ενός Μεταγλωττιστή
AnalyseBuild
symboltable
Scansource
Generatecode
Symboltable
Outputerrors
Sourceprogram
Tokens Tokens Syntaxtree
Objectcode
ErrorindicatorSymbols Symbols
Errormessages
Τεχνολογία Λογισμικού Slide 17
Αντικειμενοστραφής Όψη ενός Μεταγλωττιστή
Sourceprogram
Tokenstream
Symboltable
Syntaxtree
GrammarError
messages
Abstractcode
Objectcode
Scan Add
CheckGet
Build Print
Generate
Generate
Τεχνολογία Λογισμικού Slide 18
Σχεδιασμός Μικτής Στρατηγικής
Αν και υπάρχουν απόψεις που λένε ότι η μία ή η άλλη στρατηγική είναι καλύτερη και οι δύο μέθοδοι είναι συμπληρωματικές
Οι καλοί μηχανικοί λογισμικού μπορούν να επιλέξουν την καλύτερη μέθοδο για το υποσύστημα
Τεχνολογία Λογισμικού Slide 19
Υποσυστήματα Αεροπλάνου
Instrumentdisplay
Navigationsystem
Enginecontrol
Radarsystem
Commssystem
Τεχνολογία Λογισμικού Slide 20
Αντικείμενα Υψηλού Επιπέδου
Το σύστημα πλοήγησης Το σύστημα radar Το σύστημα επικοινωνιών Το σύστημα οργάνων Το σύστημα ελέγχου μηχανής ...
18
Τεχνολογία Λογισμικού Slide 21
Λειτουργίες Συστήματος (σε επίπεδο υπο - συστημάτων)
Εμφάνιση πορείας (radar) Ρύθμιση σε σχέση με την ταχύτητα αέρα
(σύστημα πλοήγησης) Ελάττωση ισχύος (υπο - σύστημα μηχανής) Ένδειξη κινδύνου (σύστημα οργάνων) Χρήση συχνότητας (σύστημα επικοινωνίας) ...
Τεχνολογία Λογισμικού Slide 22
Αντικείμενα Χαμηλού Επιπέδου
Κατάσταση μηχανής Θέση αεροπλάνου Υψόμετρο Ραδιοφάρος ...
20
Τεχνολογία Λογισμικού Slide 23
Ποιότητα Σχεδιασμού Η ποιότητα σχεδιασμού είναι ένα δύσκολο θέμα.
Εξαρτάται από τις προτεραιότητες του οργανισμού Ένας καλός σχεδιασμός μπορεί να είναι ο πιο
αποτελεσματικός, ο φθηνότερος, ο πιο αξιόπιστος, κ.α.. Τα χαρακτηριστικά που παρουσιάζονται εδώ έχουν
σχέση με την δυνατότητα συντήρησης του σχεδιασμού Τα χαρακτηριστικά ποιότητας εφαρμόζονται και στις
δύο μεθόδους
Τεχνολογία Λογισμικού Slide 24
Συνοχή
Μέτρο του πόσο καλά τα στοιχεία συνδυάζονται μεταξύ τους
Ένα στοιχείο υλοποιεί απλή λογική οντότητα ή συνάρτηση
Η συνοχή είναι σημαντικό χαρακτηριστικό σχεδιασμού στοιχείου όταν γίνεται κάποια αλλαγή
Υπάρχουν διάφορα επίπεδα συνοχής
Τεχνολογία Λογισμικού Slide 25
Επίπεδα Συνοχής
Συμπτωματική συνοχή (ασθενής)• Μέρη στοιχείου απλά τοποθετούνται μαζί
Λογική Σχέση (ασθενής)• Στοιχεία τα οποία κάνουν ίδιες λειτουργίες ομαδοποιούνται
Χρονική Συνοχή (ασθενής)• Στοιχεία τα οποία ενεργοποιούνται την ίδια χρονική στιγμή
ομαδοποιούνται
Διαδικαστική Συνοχή (ασθενής)• Τα στοιχεία δημιουργούν απλή ακολουθία ελέγχου
Τεχνολογία Λογισμικού Slide 26
Επίπεδα Συνοχής Επικοινωνιακή Συνοχή (μέτρια)
• Όλα τα στοιχεία λειτουργούν με την ίδια είσοδο και παράγουν την ίδια έξοδο
Ακολουθιακή Συνοχή (μέτρια)• Η έξοδος ενός στοιχείου είναι η είσοδος σε κάποιο άλλο
Λειτουργική Συνοχή (δυνατή)• Κάθε στοιχείο είναι απαραίτητο για την εκτέλεση απλής
λειτουργίας
Συνοχή Αντικειμένων (δυνατή)• Κάθε λειτουργία παρέχει την δυνατότητα που επιτρέπει την
τροποποίηση ή έλεγχο των χαρακτηριστικών
Τεχνολογία Λογισμικού Slide 27
Η Συνοχή ως Χαρακτηριστικό Σχεδιασμού
Είναι δύσκολο να ορισθεί. Συχνά δύσκολη η κατηγοριοποίηση της συνοχής
Τα κληρονομικά χαρακτηριστικά από υπερ - κλάσεις εξασθενούν την συνοχή
Για την κατανόηση ενός στοιχείου θα πρέπει να εξετασθούν οι υπερ - κλάσεις και η κλάση του στοιχείου
Βοηθούν τα συστήματα προήγησης στις κλάσεις
Τεχνολογία Λογισμικού Slide 28
Μέτρο ισχύος διασύνδεσης μεταξύ στοιχείων συστήματος Στην χαλαρή σύνδεση οι αλλαγές στοιχείων δεν
επηρεάζουν άλλα στοιχεία Διαμεριζόμενες μεταβλητές ή ανταλλαγή πληροφορίας
ελέγχου οδηγεί σε ισχυρή σύνδεση Η χαλαρή σύνδεση μπορεί να γίνει με
αποκεντρικοποίηση της κατάστασης (αντικείμενα) και επικοινωνία στοιχείων με παραμέτρους και ανταλλαγή μηνυμάτων
28
Σύνδεση
Τεχνολογία Λογισμικού Slide 29
Ισχυρή Σύνδεση
Module A Module B
Module C Module D
Shared dataarea
Τεχνολογία Λογισμικού Slide 30
Χαλαρή Σύνδεση
Module A
A’s data
Module B
B’s data
Module D
D’s data
Module C
C’s data
Τεχνολογία Λογισμικού Slide 31
Τα αντικειμενοστραφή συστήματα έχουν χαλαρή σύνδεση γιατί δεν υπάρχει διαμεριζόμενη κατάσταση και τα αντικείμενα επικοινωνούν με ανταλλαγή μηνυμάτων
Όμως μία κλάση αντικειμένων σχετίζεται με μία υπερ - κλάση. Αλλαγές που γίνονται στα χαρακτηριστικά ή λειτουργίες υπερ - κλάσεων διαδίδονται σε όλες τις υπο - κλάσεις. Οι αλλαγές αυτές πρέπει να ελέγχονται προσεκτικά
Σύνδεση και Κληρονομικότητα
Τεχνολογία Λογισμικού Slide 32
Σχετίζεται με πολλά χαρακτηριστικά των στοιχείων• Συνοχή. Μπορεί το στοιχείο να γίνει κατανοητό από μόνο του;
• Ονομασία. Χρησιμοποιούνται ονόματα με σημασία;
• Τεκμηρίωση. Τεκμηριώνεται ο σχεδιασμός καλά;
• Πολυπλοκότητα. Χρησιμοποιούνται πολύπλοκοι αλγόριθμοι;
Υψηλή πολυπλοκότητα σημαίνει ότι υπάρχουν πολλές σχέσεις μεταξύ των στοιχείων και είναι δύσκολο να γίνουν κατανοητές
Οι περισσότερες μετρικές ποιότητας προσανατολίζονται στην πολυπλοκότητα. Έχουν περιορισμένη χρήση
32
Κατανοησιμότητα
Τεχνολογία Λογισμικού Slide 33
Ο σχεδιασμός είναι προσαρμόσιμος εάν:• Όλα τα στοιχεία έχουν χαλαρή σύνδεση
• Έχουν καλή και έγκαιρη τεκμηρίωση
• Υπάρχει διακρισιμότητα μεταξύ επιπέδων σχεδιασμού
• Κάθε στοιχείο είναι αυτόνομη οντότητα
Για την προσαρμογή σχεδιασμού είναι απαραίτητη η παρακολουθηση συνδέσεων μεταξύ των στοιχείων σχεδιασμού ώστε επιπτώσεις αλλαγών να μπορούν να αναλυθούν
33
Προσαρμοστικότητας
Τεχνολογία Λογισμικού Slide 34
Δυνατότητα Παρακολούθησης Σχεδιασμού
P O R
D
A
B
F
C
D Object interactionlevel
Object decompositionlevel
Τεχνολογία Λογισμικού Slide 35
Η κληρονομικότητα βελτιώνει δραματικά την προσαρμοστικότητα. Τα στοιχεία προσαρμόζονται χωρίς αλλαγή με τροποποίηση μίας κλάσης
Όσο όμως το μέγεθος της ιεραρχίας κληρονομικότητας αυξάνει γίνεται και πιο πολύπλοκο. Πρέπει περιοδικά να ελέγχεται και να αναδομείται
35
Προσαρμοστικότητα και Κληρονομικότητα
Τεχνολογία Λογισμικού Slide 36
Ο σχεδιασμός είναι μία δημιουργική διαδικασία Ο σχεδιασμός περιλαμβάνει αρχιτεκτονικό
σχεδιασμό, εξειδίκευση συστήματος, σχεδιασμός στοιχείων, σχεδιασμό δομών δεδομένων και αλγοριθμικό σχεδιασμό
Η λειτουργική ανάλυση θεωρεί το σύστημα ως σύνολο λειτουργικών ενοτήτων
Η αντικειμενοστραφής ανάλυση το θεωρεί ως σύνολο αντικειμένων
36
Σημαντικά Σημεία