1 / 36

Σχεδιασμός Λογισμικού

Σχεδιασμός Λογισμικού. Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού. Στόχοι. Εισαγωγή διαδικασίας για τον σχεδιασμό λογισμικού Περιγραφή διαφορετικών σταδίων στην διαδικασία σχεδιασμού Παρουσίαση της συμπληρωματικότητας αντικειμενοστραφούς και λειτουργικού σχεδιασμού

kaz
Download Presentation

Σχεδιασμός Λογισμικού

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Σχεδιασμός Λογισμικού • Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού

  2. Στόχοι • Εισαγωγή διαδικασίας για τον σχεδιασμό λογισμικού • Περιγραφή διαφορετικών σταδίων στην διαδικασία σχεδιασμού • Παρουσίαση της συμπληρωματικότητας αντικειμενοστραφούς και λειτουργικού σχεδιασμού • Περιγραφή χαρακτηριστικών ποιότητας σχεδιασμού

  3. Θέματα • Η διαδικασία σχεδιασμού και οι μέθοδοι σχεδιασμού • Στρατηγικές σχεδιασμού που περιλαμβάνουν αντικειμενοστραφή και λειτουργική σχεδιαστική ανάλυση • Χαρακτηριστικά ποιότητας σχεδιασμού

  4. Στάδια Σχεδιασμού • Κατανόηση Προβλήματος • Παρακολούθηση προβλήματος από διαφορετικές γωνίες για την κατανόηση των απαιτήσεων σχεδιασμού • Αναγνώριση Μίας ή Περισσότερων Λύσεων • Αξιολόγηση πιθανών λύσεων και επιλογή των πλέον κατάλληλων (που εξαρτάται από την πείρα του σχεδιαστή και την διαθεσιμότητα πόρων) • Αφαιρετική Περιγραφή Λύσεων • Χρήση γραφικών, τυπικών ή άλλων περιγραφικών μεθόδων για την περιγραφή των στοιχείων του σχεδιασμού • Επανάληψη της διαδικασίας για κάθε αφαιρετική περιγραφή για την περιγραφή της διαδικασίας σε πρωτογενείς όρους

  5. Η Διαδικασία Σχεδιασμού • Μπορεί να μοντελοποιηθεί ως κατευθυνόμενος γράφος που κατασκευάζεται από οντότητες των οποίων τα χαρακτηριστικά συμμετέχουν στις σχέσεις • Το σύστημα περιγράφεται σε διαφορετικά επίπεδα αφαίρεσης • Ο σχεδιασμός γίνεται σε επικαλυπτόμενα στάδια. Είναι αυτονόητο ότι απαιτείται διαχωρισμός αλλά δεν υπάρχουν διακριτές φάσεις.

  6. Από τον Άτυπο στον Τυπικό Σχεδιασμό

  7. Φάσεις Στην Διαδικασία Σχεδιασμού

  8. Φάσεις Σχεδιασμού • Αρχιτεκτονικός σχεδιασμός Εντοπισμός Υποσυστημάτων • Εξειδίκευση Εννοιών Αφαίρεσης Εξειδίκευση Υποσυστημάτων • Σχεδιασμός Διεπαφής Περιγραφή διεπαφών υποσυστημάτων • Σχεδιασμός Στοιχείων Ανάλυση Υπο-συστημάτων σε στοιχεία • Σχεδιασμός Δομών Δεδομένων Σχεδιασμός δομών δεδομένων για τα δεδομένα του συστήματος • Αλγοριθμικός Σχεδιασμός Σχεδιασμός αλγορίθμων για τις λειτουργίες του συστήματος

  9. Ιεραρχική Δομή Δεδομένων

  10. Σχεδιασμός Top-down • Περιλαμβάνει έναρξη από τα υψηλότερα στοιχεία στην ιεραρχία και εργασία προς τα κάτω στην ιεραρχία επίπεδο με επίπεδο. • Στην πράξη στα μεγάλα συστήματα δεν υπάρχει τέτοια δυνατότητα. Μερικά μέρη σχεδιάζονται πριν από κάποια άλλα. Οι σχεδιαστές επαναχρησιμοποιούν εμπειρία και στοιχεία στην διαδικασία σχεδιασμού

  11. Μέθοδοι Σχεδιασμού • Οι δομημένες μέθοδοι είναι σύνολα συμβολισμών για να εκφράσουμε σχεδιασμό λογισμικού και οδηγίες για την δημιουργία σχεδιασμού • Πολύ γνωστές μέθοδοι είναι ο δομημένος σχεδιασμός (Yourdon), και η JSD (Jackson Method) • Μπορούν να εφαρμοσθούν επιτυχώς αφού περιλαμβάνουν πρότυπους συμβολισμούς και έτσι ο σχεδιασμός ακολουθεί πρότυπη μορφή • Οι δομημένες μέθοδοι υποστηρίζονται από εργαλεία CASE

  12. Στοιχεία Μεθόδων • Υποστηρίζουν συγκρίσιμες περιγραφές του συστήματος • Μία περιγραφή ροής δεδομένων δείχνει την μεταβολή των δεδομένων • Μία περιγραφή οντοτήτων - σχέσεων που περιγράφει τις λογικές δομές δεδομένων • Μία δομημένη περιγραφή που εμφανίζει τα στοιχεία του συστήματος και τις αλληλεπιδράσεις

  13. Μειονεκτήματα Μεθόδων • Είναι οδηγίες παρά μέθοδοι με την μαθηματική έννοια του όρου. Διαφορετικοί σχεδιαστές δημιουργούν διαφορετικούς σχεδιασμούς συστημάτων • Δεν βοηθούν στην πρώιμη, δημιουργική φάση του σχεδιασμού. Βοηθούν όμως τον σχεδιαστή να δομήσεις τις ιδέες του

  14. Περιγραφή Σχεδιασμού • Γραφικοί συμβολισμοί. Χρησιμοποιούνται για την καταγραφή των σχέσεων των στοιχείων • Περιγραφικές γλώσσες προγραμματισμού. Βασίζονται σε γλώσσες προγραμματισμού αλλά έχουν την ευελιξία παρουσίασης θεμάτων αφαίρεσης • Άτυπο κείμενο. Περιγραφή σε φυσική γλώσσα • Όλοι οι συμβολισμοί χρησιμοποιούνται στον σχεδιασμό μεγάλων συστημάτων

  15. Στρατηγικές Σχεδιασμού • Λειτουργικός Σχεδιασμός • Το σύστημα σχεδιάζεται από την πλευρά της λειτουργικότητας. Η κατάσταση του συστήματος κεντρικοποιείται και μοιράζεται μεταξύ των λειτουργιών σε αυτή την κατάσταση • Αντικειμενοστραφής Σχεδιασμός • Το σύστημα εμφανίζεται ως συλλογή αλληλεπιδρώντων αντικειμένων. Το σύστημα μπορεί να αποκεντρικοποιηθεί και κάθε αντιμείμενο διαχειρίζεται την κατάστασή του. Τα αντικείμενα μπορεί να είναι μέλη μίας κλάσης αντικειμένων και επικοινωνούν με μεθόδους ανταλλαγής

  16. Λειτουργική Αντίληψη ενός Μεταγλωττιστή

  17. Αντικειμενοστραφής Όψη ενός Μεταγλωττιστή

  18. Σχεδιασμός Μικτής Στρατηγικής • Αν και υπάρχουν απόψεις που λένε ότι η μία ή η άλλη στρατηγική είναι καλύτερη και οι δύο μέθοδοι είναι συμπληρωματικές • Οι καλοί μηχανικοί λογισμικού μπορούν να επιλέξουν την καλύτερη μέθοδο για το υποσύστημα

  19. Υποσυστήματα Αεροπλάνου

  20. Αντικείμενα Υψηλού Επιπέδου • Το σύστημα πλοήγησης • Το σύστημα radar • Το σύστημα επικοινωνιών • Το σύστημα οργάνων • Το σύστημα ελέγχου μηχανής • ... 18

  21. Λειτουργίες Συστήματος (σε επίπεδο υπο - συστημάτων) • Εμφάνιση πορείας (radar) • Ρύθμιση σε σχέση με την ταχύτητα αέρα (σύστημα πλοήγησης) • Ελάττωση ισχύος (υπο - σύστημα μηχανής) • Ένδειξη κινδύνου (σύστημα οργάνων) • Χρήση συχνότητας (σύστημα επικοινωνίας) • ...

  22. Αντικείμενα Χαμηλού Επιπέδου • Κατάσταση μηχανής • Θέση αεροπλάνου • Υψόμετρο • Ραδιοφάρος • ... 20

  23. Ποιότητα Σχεδιασμού • Η ποιότητα σχεδιασμού είναι ένα δύσκολο θέμα. Εξαρτάται από τις προτεραιότητες του οργανισμού • Ένας καλός σχεδιασμός μπορεί να είναι ο πιο αποτελεσματικός, ο φθηνότερος, ο πιο αξιόπιστος, κ.α.. • Τα χαρακτηριστικά που παρουσιάζονται εδώ έχουν σχέση με την δυνατότητα συντήρησης του σχεδιασμού • Τα χαρακτηριστικά ποιότητας εφαρμόζονται και στις δύο μεθόδους

  24. Συνοχή • Μέτρο του πόσο καλά τα στοιχεία συνδυάζονται μεταξύ τους • Ένα στοιχείο υλοποιεί απλή λογική οντότητα ή συνάρτηση • Η συνοχή είναι σημαντικό χαρακτηριστικό σχεδιασμού στοιχείου όταν γίνεται κάποια αλλαγή • Υπάρχουν διάφορα επίπεδα συνοχής

  25. Επίπεδα Συνοχής • Συμπτωματική συνοχή (ασθενής) • Μέρη στοιχείου απλά τοποθετούνται μαζί • Λογική Σχέση (ασθενής) • Στοιχεία τα οποία κάνουν ίδιες λειτουργίες ομαδοποιούνται • Χρονική Συνοχή (ασθενής) • Στοιχεία τα οποία ενεργοποιούνται την ίδια χρονική στιγμή ομαδοποιούνται • Διαδικαστική Συνοχή (ασθενής) • Τα στοιχεία δημιουργούν απλή ακολουθία ελέγχου

  26. Επίπεδα Συνοχής • Επικοινωνιακή Συνοχή (μέτρια) • Όλα τα στοιχεία λειτουργούν με την ίδια είσοδο και παράγουν την ίδια έξοδο • Ακολουθιακή Συνοχή (μέτρια) • Η έξοδος ενός στοιχείου είναι η είσοδος σε κάποιο άλλο • Λειτουργική Συνοχή (δυνατή) • Κάθε στοιχείο είναι απαραίτητο για την εκτέλεση απλής λειτουργίας • Συνοχή Αντικειμένων (δυνατή) • Κάθε λειτουργία παρέχει την δυνατότητα που επιτρέπει την τροποποίηση ή έλεγχο των χαρακτηριστικών

  27. Η Συνοχή ως Χαρακτηριστικό Σχεδιασμού • Είναι δύσκολο να ορισθεί. Συχνά δύσκολη η κατηγοριοποίηση της συνοχής • Τα κληρονομικά χαρακτηριστικά από υπερ - κλάσεις εξασθενούν την συνοχή • Για την κατανόηση ενός στοιχείου θα πρέπει να εξετασθούν οι υπερ - κλάσεις και η κλάση του στοιχείου • Βοηθούν τα συστήματα προήγησης στις κλάσεις

  28. Σύνδεση • Μέτρο ισχύος διασύνδεσης μεταξύ στοιχείων συστήματος • Στην χαλαρή σύνδεση οι αλλαγές στοιχείων δεν επηρεάζουν άλλα στοιχεία • Διαμεριζόμενες μεταβλητές ή ανταλλαγή πληροφορίας ελέγχου οδηγεί σε ισχυρή σύνδεση • Η χαλαρή σύνδεση μπορεί να γίνει με αποκεντρικοποίηση της κατάστασης (αντικείμενα) και επικοινωνία στοιχείων με παραμέτρους και ανταλλαγή μηνυμάτων 28

  29. Ισχυρή Σύνδεση

  30. Χαλαρή Σύνδεση

  31. Σύνδεση και Κληρονομικότητα • Τα αντικειμενοστραφή συστήματα έχουν χαλαρή σύνδεση γιατί δεν υπάρχει διαμεριζόμενη κατάσταση και τα αντικείμενα επικοινωνούν με ανταλλαγή μηνυμάτων • Όμως μία κλάση αντικειμένων σχετίζεται με μία υπερ - κλάση. Αλλαγές που γίνονται στα χαρακτηριστικά ή λειτουργίες υπερ - κλάσεων διαδίδονται σε όλες τις υπο - κλάσεις. Οι αλλαγές αυτές πρέπει να ελέγχονται προσεκτικά

  32. Κατανοησιμότητα • Σχετίζεται με πολλά χαρακτηριστικά των στοιχείων • Συνοχή. Μπορεί το στοιχείο να γίνει κατανοητό από μόνο του; • Ονομασία. Χρησιμοποιούνται ονόματα με σημασία; • Τεκμηρίωση. Τεκμηριώνεται ο σχεδιασμός καλά; • Πολυπλοκότητα. Χρησιμοποιούνται πολύπλοκοι αλγόριθμοι; • Υψηλή πολυπλοκότητα σημαίνει ότι υπάρχουν πολλές σχέσεις μεταξύ των στοιχείων και είναι δύσκολο να γίνουν κατανοητές • Οι περισσότερες μετρικές ποιότητας προσανατολίζονται στην πολυπλοκότητα. Έχουν περιορισμένη χρήση 32

  33. Προσαρμοστικότητας • Ο σχεδιασμός είναι προσαρμόσιμος εάν: • Όλα τα στοιχεία έχουν χαλαρή σύνδεση • Έχουν καλή και έγκαιρη τεκμηρίωση • Υπάρχει διακρισιμότητα μεταξύ επιπέδων σχεδιασμού • Κάθε στοιχείο είναι αυτόνομη οντότητα • Για την προσαρμογή σχεδιασμού είναι απαραίτητη η παρακολουθηση συνδέσεων μεταξύ των στοιχείων σχεδιασμού ώστε επιπτώσεις αλλαγών να μπορούν να αναλυθούν 33

  34. Δυνατότητα Παρακολούθησης Σχεδιασμού

  35. Προσαρμοστικότητα και Κληρονομικότητα • Η κληρονομικότητα βελτιώνει δραματικά την προσαρμοστικότητα. Τα στοιχεία προσαρμόζονται χωρίς αλλαγή με τροποποίηση μίας κλάσης • Όσο όμως το μέγεθος της ιεραρχίας κληρονομικότητας αυξάνει γίνεται και πιο πολύπλοκο. Πρέπει περιοδικά να ελέγχεται και να αναδομείται 35

  36. Σημαντικά Σημεία • Ο σχεδιασμός είναι μία δημιουργική διαδικασία • Ο σχεδιασμός περιλαμβάνει αρχιτεκτονικό σχεδιασμό, εξειδίκευση συστήματος, σχεδιασμός στοιχείων, σχεδιασμό δομών δεδομένων και αλγοριθμικό σχεδιασμό • Η λειτουργική ανάλυση θεωρεί το σύστημα ως σύνολο λειτουργικών ενοτήτων • Η αντικειμενοστραφής ανάλυση το θεωρεί ως σύνολο αντικειμένων 36

More Related