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

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

  • Upload
    kaz

  • View
    75

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

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

Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού

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

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

Στόχοι

Εισαγωγή διαδικασίας για τον σχεδιασμό λογισμικού

Περιγραφή διαφορετικών σταδίων στην διαδικασία σχεδιασμού

Παρουσίαση της συμπληρωματικότητας αντικειμενοστραφούς και λειτουργικού σχεδιασμού

Περιγραφή χαρακτηριστικών ποιότητας σχεδιασμού

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

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

Θέματα

Η διαδικασία σχεδιασμού και οι μέθοδοι σχεδιασμού

Στρατηγικές σχεδιασμού που περιλαμβάνουν αντικειμενοστραφή και λειτουργική σχεδιαστική ανάλυση

Χαρακτηριστικά ποιότητας σχεδιασμού

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

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

Στάδια Σχεδιασμού Κατανόηση Προβλήματος

• Παρακολούθηση προβλήματος από διαφορετικές γωνίες για την κατανόηση των απαιτήσεων σχεδιασμού

Αναγνώριση Μίας ή Περισσότερων Λύσεων• Αξιολόγηση πιθανών λύσεων και επιλογή των πλέον κατάλληλων (που

εξαρτάται από την πείρα του σχεδιαστή και την διαθεσιμότητα πόρων)

Αφαιρετική Περιγραφή Λύσεων• Χρήση γραφικών, τυπικών ή άλλων περιγραφικών μεθόδων για την

περιγραφή των στοιχείων του σχεδιασμού

Επανάληψη της διαδικασίας για κάθε αφαιρετική περιγραφή για την περιγραφή της διαδικασίας σε πρωτογενείς όρους

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

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

Η Διαδικασία Σχεδιασμού

Μπορεί να μοντελοποιηθεί ως κατευθυνόμενος γράφος που κατασκευάζεται από οντότητες των οποίων τα χαρακτηριστικά συμμετέχουν στις σχέσεις

Το σύστημα περιγράφεται σε διαφορετικά επίπεδα αφαίρεσης

Ο σχεδιασμός γίνεται σε επικαλυπτόμενα στάδια. Είναι αυτονόητο ότι απαιτείται διαχωρισμός αλλά δεν υπάρχουν διακριτές φάσεις.

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

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

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

Informaldesignoutline

Informaldesign

Moreformaldesign

Finisheddesign

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

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

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

Architecturaldesign

Abstractspecificatio

n

Interfacedesign

Componentdesign

Datastructuredesign

Algorithmdesign

Systemarchitecture

Softwarespecification

Interfacespecification

Componentspecification

Datastructure

specification

Algorithmspecification

Requirementsspecification

Design activities

Design products

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

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

Φάσεις Σχεδιασμού Αρχιτεκτονικός σχεδιασμός Εντοπισμός Υποσυστημάτων Εξειδίκευση Εννοιών Αφαίρεσης Εξειδίκευση

Υποσυστημάτων Σχεδιασμός Διεπαφής Περιγραφή διεπαφών υποσυστημάτων Σχεδιασμός Στοιχείων Ανάλυση Υπο-συστημάτων σε

στοιχεία Σχεδιασμός Δομών Δεδομένων Σχεδιασμός δομών

δεδομένων για τα δεδομένα του συστήματος Αλγοριθμικός Σχεδιασμός Σχεδιασμός αλγορίθμων για τις

λειτουργίες του συστήματος

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

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

Ιεραρχική Δομή ΔεδομένωνSystem level

Sub-systemlevel

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

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

Σχεδιασμός Top-down

Περιλαμβάνει έναρξη από τα υψηλότερα στοιχεία στην ιεραρχία και εργασία προς τα κάτω στην ιεραρχία επίπεδο με επίπεδο.

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

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

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

Μέθοδοι Σχεδιασμού Οι δομημένες μέθοδοι είναι σύνολα συμβολισμών για να

εκφράσουμε σχεδιασμό λογισμικού και οδηγίες για την δημιουργία σχεδιασμού

Πολύ γνωστές μέθοδοι είναι ο δομημένος σχεδιασμός (Yourdon), και η JSD (Jackson Method)

Μπορούν να εφαρμοσθούν επιτυχώς αφού περιλαμβάνουν πρότυπους συμβολισμούς και έτσι ο σχεδιασμός ακολουθεί πρότυπη μορφή

Οι δομημένες μέθοδοι υποστηρίζονται από εργαλεία CASE

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

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

Στοιχεία Μεθόδων

Υποστηρίζουν συγκρίσιμες περιγραφές του συστήματος

Μία περιγραφή ροής δεδομένων δείχνει την μεταβολή των δεδομένων

Μία περιγραφή οντοτήτων - σχέσεων που περιγράφει τις λογικές δομές δεδομένων

Μία δομημένη περιγραφή που εμφανίζει τα στοιχεία του συστήματος και τις αλληλεπιδράσεις

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

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

Μειονεκτήματα Μεθόδων

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

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

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

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

Περιγραφή Σχεδιασμού

Γραφικοί συμβολισμοί. Χρησιμοποιούνται για την καταγραφή των σχέσεων των στοιχείων

Περιγραφικές γλώσσες προγραμματισμού. Βασίζονται σε γλώσσες προγραμματισμού αλλά έχουν την ευελιξία παρουσίασης θεμάτων αφαίρεσης

Άτυπο κείμενο. Περιγραφή σε φυσική γλώσσα Όλοι οι συμβολισμοί χρησιμοποιούνται στον

σχεδιασμό μεγάλων συστημάτων

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

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

Στρατηγικές Σχεδιασμού

Λειτουργικός Σχεδιασμός• Το σύστημα σχεδιάζεται από την πλευρά της λειτουργικότητας.

Η κατάσταση του συστήματος κεντρικοποιείται και μοιράζεται μεταξύ των λειτουργιών σε αυτή την κατάσταση

Αντικειμενοστραφής Σχεδιασμός• Το σύστημα εμφανίζεται ως συλλογή αλληλεπιδρώντων

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

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

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

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

AnalyseBuild

symboltable

Scansource

Generatecode

Symboltable

Outputerrors

Sourceprogram

Tokens Tokens Syntaxtree

Objectcode

ErrorindicatorSymbols Symbols

Errormessages

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

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

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

Sourceprogram

Tokenstream

Symboltable

Syntaxtree

GrammarError

messages

Abstractcode

Objectcode

Scan Add

CheckGet

Build Print

Generate

Generate

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

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

Σχεδιασμός Μικτής Στρατηγικής

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

Οι καλοί μηχανικοί λογισμικού μπορούν να επιλέξουν την καλύτερη μέθοδο για το υποσύστημα

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

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

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

Instrumentdisplay

Navigationsystem

Enginecontrol

Radarsystem

Commssystem

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

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

Αντικείμενα Υψηλού Επιπέδου

Το σύστημα πλοήγησης Το σύστημα radar Το σύστημα επικοινωνιών Το σύστημα οργάνων Το σύστημα ελέγχου μηχανής ...

18

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

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

Λειτουργίες Συστήματος (σε επίπεδο υπο - συστημάτων)

Εμφάνιση πορείας (radar) Ρύθμιση σε σχέση με την ταχύτητα αέρα

(σύστημα πλοήγησης) Ελάττωση ισχύος (υπο - σύστημα μηχανής) Ένδειξη κινδύνου (σύστημα οργάνων) Χρήση συχνότητας (σύστημα επικοινωνίας) ...

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

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

Αντικείμενα Χαμηλού Επιπέδου

Κατάσταση μηχανής Θέση αεροπλάνου Υψόμετρο Ραδιοφάρος ...

20

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

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

Ποιότητα Σχεδιασμού Η ποιότητα σχεδιασμού είναι ένα δύσκολο θέμα.

Εξαρτάται από τις προτεραιότητες του οργανισμού Ένας καλός σχεδιασμός μπορεί να είναι ο πιο

αποτελεσματικός, ο φθηνότερος, ο πιο αξιόπιστος, κ.α.. Τα χαρακτηριστικά που παρουσιάζονται εδώ έχουν

σχέση με την δυνατότητα συντήρησης του σχεδιασμού Τα χαρακτηριστικά ποιότητας εφαρμόζονται και στις

δύο μεθόδους

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

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

Συνοχή

Μέτρο του πόσο καλά τα στοιχεία συνδυάζονται μεταξύ τους

Ένα στοιχείο υλοποιεί απλή λογική οντότητα ή συνάρτηση

Η συνοχή είναι σημαντικό χαρακτηριστικό σχεδιασμού στοιχείου όταν γίνεται κάποια αλλαγή

Υπάρχουν διάφορα επίπεδα συνοχής

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

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

Επίπεδα Συνοχής

Συμπτωματική συνοχή (ασθενής)• Μέρη στοιχείου απλά τοποθετούνται μαζί

Λογική Σχέση (ασθενής)• Στοιχεία τα οποία κάνουν ίδιες λειτουργίες ομαδοποιούνται

Χρονική Συνοχή (ασθενής)• Στοιχεία τα οποία ενεργοποιούνται την ίδια χρονική στιγμή

ομαδοποιούνται

Διαδικαστική Συνοχή (ασθενής)• Τα στοιχεία δημιουργούν απλή ακολουθία ελέγχου

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

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

Επίπεδα Συνοχής Επικοινωνιακή Συνοχή (μέτρια)

• Όλα τα στοιχεία λειτουργούν με την ίδια είσοδο και παράγουν την ίδια έξοδο

Ακολουθιακή Συνοχή (μέτρια)• Η έξοδος ενός στοιχείου είναι η είσοδος σε κάποιο άλλο

Λειτουργική Συνοχή (δυνατή)• Κάθε στοιχείο είναι απαραίτητο για την εκτέλεση απλής

λειτουργίας

Συνοχή Αντικειμένων (δυνατή)• Κάθε λειτουργία παρέχει την δυνατότητα που επιτρέπει την

τροποποίηση ή έλεγχο των χαρακτηριστικών

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

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

Η Συνοχή ως Χαρακτηριστικό Σχεδιασμού

Είναι δύσκολο να ορισθεί. Συχνά δύσκολη η κατηγοριοποίηση της συνοχής

Τα κληρονομικά χαρακτηριστικά από υπερ - κλάσεις εξασθενούν την συνοχή

Για την κατανόηση ενός στοιχείου θα πρέπει να εξετασθούν οι υπερ - κλάσεις και η κλάση του στοιχείου

Βοηθούν τα συστήματα προήγησης στις κλάσεις

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

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

Μέτρο ισχύος διασύνδεσης μεταξύ στοιχείων συστήματος Στην χαλαρή σύνδεση οι αλλαγές στοιχείων δεν

επηρεάζουν άλλα στοιχεία Διαμεριζόμενες μεταβλητές ή ανταλλαγή πληροφορίας

ελέγχου οδηγεί σε ισχυρή σύνδεση Η χαλαρή σύνδεση μπορεί να γίνει με

αποκεντρικοποίηση της κατάστασης (αντικείμενα) και επικοινωνία στοιχείων με παραμέτρους και ανταλλαγή μηνυμάτων

28

Σύνδεση

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

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

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

Module A Module B

Module C Module D

Shared dataarea

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

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

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

Module A

A’s data

Module B

B’s data

Module D

D’s data

Module C

C’s data

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

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

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

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

Σύνδεση και Κληρονομικότητα

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

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

Σχετίζεται με πολλά χαρακτηριστικά των στοιχείων• Συνοχή. Μπορεί το στοιχείο να γίνει κατανοητό από μόνο του;

• Ονομασία. Χρησιμοποιούνται ονόματα με σημασία;

• Τεκμηρίωση. Τεκμηριώνεται ο σχεδιασμός καλά;

• Πολυπλοκότητα. Χρησιμοποιούνται πολύπλοκοι αλγόριθμοι;

Υψηλή πολυπλοκότητα σημαίνει ότι υπάρχουν πολλές σχέσεις μεταξύ των στοιχείων και είναι δύσκολο να γίνουν κατανοητές

Οι περισσότερες μετρικές ποιότητας προσανατολίζονται στην πολυπλοκότητα. Έχουν περιορισμένη χρήση

32

Κατανοησιμότητα

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

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

Ο σχεδιασμός είναι προσαρμόσιμος εάν:• Όλα τα στοιχεία έχουν χαλαρή σύνδεση

• Έχουν καλή και έγκαιρη τεκμηρίωση

• Υπάρχει διακρισιμότητα μεταξύ επιπέδων σχεδιασμού

• Κάθε στοιχείο είναι αυτόνομη οντότητα

Για την προσαρμογή σχεδιασμού είναι απαραίτητη η παρακολουθηση συνδέσεων μεταξύ των στοιχείων σχεδιασμού ώστε επιπτώσεις αλλαγών να μπορούν να αναλυθούν

33

Προσαρμοστικότητας

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

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

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

P O R

D

A

B

F

C

D Object interactionlevel

Object decompositionlevel

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

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

Η κληρονομικότητα βελτιώνει δραματικά την προσαρμοστικότητα. Τα στοιχεία προσαρμόζονται χωρίς αλλαγή με τροποποίηση μίας κλάσης

Όσο όμως το μέγεθος της ιεραρχίας κληρονομικότητας αυξάνει γίνεται και πιο πολύπλοκο. Πρέπει περιοδικά να ελέγχεται και να αναδομείται

35

Προσαρμοστικότητα και Κληρονομικότητα

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

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

Ο σχεδιασμός είναι μία δημιουργική διαδικασία Ο σχεδιασμός περιλαμβάνει αρχιτεκτονικό

σχεδιασμό, εξειδίκευση συστήματος, σχεδιασμός στοιχείων, σχεδιασμό δομών δεδομένων και αλγοριθμικό σχεδιασμό

Η λειτουργική ανάλυση θεωρεί το σύστημα ως σύνολο λειτουργικών ενοτήτων

Η αντικειμενοστραφής ανάλυση το θεωρεί ως σύνολο αντικειμένων

36

Σημαντικά Σημεία