Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση."— Μεταγράφημα παρουσίασης:

1 Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση Ποιο το πρόβλημα ? Ποια η λύση ? Πώς θα υλοποιηθεί η λύση ? Κώδικας ??? Επιλύθηκε το πρόβλημα? Αξιοποιεί ο πελάτης τη λύση ? Παρουσιάζονται προβλήματα ?

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

3 • Η κατασκευή οποιουδήποτε έργου δεν γίνεται στα τυφλά • Προηγείται πάντοτε η ανάπτυξη ενός σχεδίου, διότι: • Η πρώτη ύλη είναι ακριβή • Η οπισθοδρόμηση εισάγει κόστος και είναι δύσκολη Παραδείγματα: • αρχιτεκτονικό σχέδιο • ηλεκτρολογικό σχέδιο • μηχανολογικό σχέδιο Για ποιο λόγο ;

4 • Οι απαιτήσεις λογισμικού ορίζουν ένα Πρόβλημα • Μία λύση στο πρόβλημα είναι αποδεκτή εάν ικανοποιεί όλες τις απαιτήσεις • Οι λύσεις είναι δυνατόν να είναι περισσότερες από μία • Η φύση της λύσης είναι δυνατόν να τροποποιείται κατά την υλοποίηση • Για τον πελάτη: Γενικό Σχέδιο Συστήματος (Εννοιολογικό Σχέδιο) • Για την ανάπτυξη: Τεχνικό Σχέδιο Αρχιτεκτονική Σχεδίαση

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

6 • Απευθύνεται προς την ομάδα ανάπτυξης Περιλαμβάνει: • Αρχιτεκτονική του συστήματος: Περιγραφή των διαφόρων τμημάτων • Δομή του λογισμικού: Ιεραρχία συνθετικών τμημάτων του λογισμικού • Δεδομένα: Περιγραφή της δομής των δεδομένων και της ροής τους Τεχνικό Σχέδιο

7 Σχεδίαση Συστήματος De Marco (1982): Σχεδίαση Συστήματος είναι ο προσδιορισμός ενός συνόλου συστατικών και των μεταξύ τους διασυνδέσεων, ώστε να ικανοποιούν ένα συγκεκριμένο σύνολο απαιτήσεων ***: Τα διάφορα συστατικά πιθανότατα θα αναπτυχθούν από διαφορετικά μέλη της ομάδας ανάπτυξης

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

9 • Cobol – subprogram • Fortran – subroutine • Pascal – procedure or function • Modula-2 – module • C – function • Ada – procedure • C++ - class • Java –class Τι είναι μία μονάδα

10 • Μεταξύ μονάδων λογισμικού είναι δυνατόν να καθοριστούν διάφορες σχέσεις: π.χ. μία μονάδα πρέπει να υλοποιηθεί νωρίτερα από μία άλλη • Ενδιαφερόμαστε για σχέσεις που καθορίζουν την αρχιτεκτονική • Ζητούμενα: • Ποια η δομή ενός συστήματος με βάση τις συστατικές μονάδες ? • Πώς ορίζεται με ακρίβεια η δομή ? • Ποια τα επιθυμητά χαρακτηριστικά μιας δομής ? Σχέσεις μεταξύ μονάδων Ghezzi

11 • Για δύο διακεκριμένες μονάδες λογισμικού M i, M j λέμε ότι M i USES M j αν η M i απαιτεί την ύπαρξη της M j • η M i καλείται πελάτης (client) της M j • η M j καλείται εξυπηρετητής (server) της M i • Π.χ. M i USES M j αν η M i περιλαμβάνει κλήση διαδικασίας που περιλαμβάνεται στη M j, ή χρησιμοποιεί έναν τύπο που ορίζεται στην M j Σχέση USES

12 • Μία καλή συμβουλή για την σχέση USES είναι να είναι πάντοτε ιεραρχία. • Τα ιεραρχικά συστήματα είναι πιο εύκολα κατανοητά από τα μη ιεραρχικά. • Σύμφωνα με τον Parnas: "Αν μία δομή δεν είναι ιεραρχική μπορεί να καταλήξουμε σε ένα σύστημα όπου τίποτα δεν θα λειτουργεί μέχρις ότου λειτουργήσουν τα πάντα" • Η παρουσία κύκλου στη σχέση USES υποδηλώνει ότι οι μονάδες στον κύκλο δεν μπορούν να ελεγχθούν μεμονωμένα Σχέση USES

13

14 • Επίπεδο μιας μονάδας σε μία ιεραρχία r: 1. Το επίπεδο μιας μονάδας M i είναι 0 αν δεν υπάρχει μονάδα Μ j τέτοια ώστε Μ i r M j 2. Για κάθε μονάδα M i έστω k το μέγιστο επίπεδο όλων των μονάδων M j για τις οποίες ισχύει Μ i r M j. Τότε το επίπεδο της M i είναι k+1 • Για μία ιεραρχία, μία μονάδα στο επίπεδο i χρησιμοποιεί (USES) μόνο μονάδες σε επίπεδα j (i>j) • Οι μονάδες σε ένα συγκεκριμένο επίπεδο (έστω i) παρέχουν ένα σύνολο υπηρεσιών που αντιστοιχούν σε μία αφηρημένη μηχανή (abstract (virtual) machine) Σχέση USES

15 • H σχέση USES ορίζεται στατικά: Η αναγνώριση όλων των ζευγών (M i, M j ) είναι ανεξάρτητη από την εκτέλεση του προγράμματος code of M { if (cond) M1.method(); else M2.method(); } • Μ USES Μ1 και M USES M2 Σχέση USES

16 • Αν ο γράφος μιας σχέσης r είναι τέτοιος ώστε κάθε μονάδα να είναι συσχετισμένη με κάθε άλλη μονάδα (πληθικός αριθμός της r = n (n-1) όπου n ο πληθικός αριθμός του S), η δομή δεν επιτρέπει τη διαχείριση του συστήματος • Αν η r είναι κενή, πρόκειται για σύστημα όπου όλες οι μονάδες είναι ασυσχέτιστες • Παρόλο που η κενή σχέση r είναι πρακτικώς αδύνατη, στην πράξη θα πρέπει να επιδιώκεται card(r) << n 2 Σχέση USES

17 • Έστω S ένα σύνολο μονάδων. Για οποιαδήποτε M i, Μ j στο S, M i IS_COMPONENT_OF Μ j σημαίνει ότι η Μ j υλοποιείται από τη σύνθεση πολλών μονάδων μία εκ των οποίων είναι η M i • COMPISES είναι η αντίστροφη σχέση της IS_COMPONENT_OF • Έστω Μ S, i ένα υποσύνολο του S για το οποίο: Μ S, i = { M k | M k  S Λ M k IS_COMPONENT_OF Μ i } M i IS_COMPOSED_OF Μ S, i τότε M i IS_COMPOSED_OF Μ S, i ή Μ S, i IMPLEMENTS Μ i Σχέση IS_COMPONENT_OF

18 • Κατά τη σχεδίαση, αν μία μονάδα M i αποσυντίθεται στο σύνολο Μ S,i τότε αντικαθίσταται από τις μονάδες του συνόλου. Ο μόνος λόγος για τη διατήρηση της Μ i είναι η δυνατότητα αναφοράς σε αυτήν • Η σχέση IS_COMPONENT_OF μπορεί επίσης να περιγραφεί ως κατευθυνόμενος γράφος Σχέση IS_COMPONENT_OF

19

20 • Οι ανωτέρω δύο τύποι σχέσεων χρησιμοποιούνται συχνότερα στην πράξη: Αρχικά καθορίζονται οι σχέσεις USES και στη συνέχεια καθορίζονται συνήθως οι σχέσεις IS_COMPOSED_OF • Παρόλο που οι σχέσεις αυτές παρουσιάστηκαν στα πλαίσια της αρχιτεκτονικής σχεδίασης εφαρμόζονται και σε άλλες φάσεις • Π.χ. στην περιγραφή των απαιτήσεων: Μία μονάδα περιγραφής απαιτήσεων (π.χ. ένα κείμενο) χρησιμοποιεί μία άλλη αν αναφέρεται σε όρους που ορίζονται σε αυτήν • Μία μονάδα περιγραφής απαιτήσεων μπορεί να είναι τμήμα μιας άλλης αν περιγράφει τμήμα του συνολικού συστήματος Σχέσεις

21 Προσεγγίσεις Σχεδίαση Συστήματος ΙΙ ΑποσυνθετικήΣυνθετική

22 • Τα επιθυμητά χαρακτηριστικά ενός καλού σχεδίου συστήματος είναι: Τμηματικότητα • Ένα σύστημα είναι τμηματοποιημένο όταν κάθε δραστηριότητα του συστήματος (απλή ή σύνθετη) εκτελείται από μία μονάδα και οι είσοδοι – έξοδοι κάθε μονάδας είναι καλά ορισμένες Χαρακτηριστικά Σχεδίου

23 Τμηματικότητα Αριθμός Μονάδων (Μείωση μεγέθους) Κόστος Ανάπτυξης Συνολικό κόστος Κόστος επικοινωνίας μεταξύ μονάδων Κόστος ανάπτυξης μονάδων Βέλτιστος αριθμός μονάδων

24 Χαρακτηριστικά Σχεδίου Αφαιρετικότητα • Η κάθοδος σε ‘’χαμηλότερο’’ επίπεδο παρέχει μεγαλύτερη λεπτομέρεια •Τα υψηλότερα επίπεδα είναι περισσότερο αφαιρετικά, αποκρύπτουν πληροφορία για την ευκολότερη αντιμετώπιση του προβλήματος (αντίστοιχη information hiding τεχνική συναντάμε στον OOP) • Μπορεί να αλλάξει το σχέδιο μιας μονάδας χωρίς να επηρεαστεί ο σχεδιασμός των υπολοίπων

25 Αφαίρεση

26

27

28 Είναι προφανές ότι, για λόγους διαχείρισης της πληροφορίας, ορισμένη ποσότητα πληροφορίας αποκρύπτεται σκοπίμως. Αφαίρεση ονομάζεται η σκόπιμη σύμπτυξη ή απόκρυψη πληροφορίας που αφορά μία διαδικασία ή ένα κατασκεύασμα, με σκοπό την καλύτερη κατανόηση άλλων απόψεων, λεπτομερειών ή δομής. Η ιδέα της αφαίρεσης μπορεί να υποδιαιρεθεί σε διάφορες υποκατηγορίες: • Η πλέον συνήθης τεχνική αφαίρεσης είναι ο διαμερισμός ενός συνόλου στα τμήματα που το αποτελούν και στη συνέχεια ο διαμερισμός καθενός από τα τμήματα κ.ο.κ. "διαίρει και βασίλευε" (divide and conquer). •Εξειδίκευση του γενικού, προσέγγιση που υλοποιείται στις αντικειμενοστραφείς γλώσσες με τις αρχές της κληρονομικότητας. •Ύπαρξη πολλαπλών απόψεων ενός συστήματος, κάθε μία από τις οποίες επικεντρώνεται σε συγκεκριμένα χαρακτηριστικά.

29 Αφαίρεση Οι τεχνικές του διαμερισμού σε τμήματα και του διαχωρισμού σε ειδικότερες κατηγορίες αντιστοιχούν στις δύο πιο σημαντικές μορφές αφαίρεσης στον αντικειμενοστραφή προγραμματισμό όπου είναι συνήθως γνωστές ως: έχει • αφαίρεση τύπου "έχει" (has-a abstraction) και ως είναι • αφαίρεση τύπου "είναι" (is-a abstraction) αντίστοιχα. Κατά το διαμερισμό σε τμήματα για παράδειγμα, ένα αυτοκίνητο "έχει" μία μηχανή και "έχει" ένα σύστημα μετάδοσης. Στον διαχωρισμό σε ειδικότερες κατηγορίες, ένα ποδήλατο "είναι" ένα όχημα, ή "είναι" ένα δίκυκλο για παράδειγμα. Οι δύο αυτές μορφές αφαίρεσης συνδέονται στενά με συγκεκριμένες προγραμματιστικές έννοιες σε διάφορες αντικειμενοστραφείς γλώσσες προγραμματισμού.

30 Ενσωμάτωση Θεμελιώδης έννοια στον Αντικειμενοστραφή Προγραμματισμό: Object Ενσωμάτωση: Ενσωμάτωση: Το αντικείμενο περιλαμβάνει τόσο δεδομένα όσο και τις μεθόδους που χειρίζονται τα δεδομένα. Πρόσβαση στα δεδομένα επιτρέπεται μόνο μέσω των μεθόδων που διατίθενται για αυτό το σκοπό :Λογαριασμός • Όνομα κατόχου • Αριθμός • Υποκατάστημα Τραπέζης Δεδομένα, Ιδιότητες (Attributes) • Υπολογισμός τόκων • Εκτύπωση υπολοίπου • Μεταφορά σε άλλο λογαριασμό Συμπεριφορά, Λειτουργίες (Methods)

31 Χαρακτηριστικά Καλού Σχεδίου • Ο βαθμός ανεξαρτησίας μεταξύ των μονάδων είναι ένα μέτρο του πόσο καλό είναι το σχέδιο συστήματος • Η ποιότητα μετράται με: σύζευξη, συνεκτικότητα

32 Σύζευξη (coupling) Η σύζευξη αποτελεί ένα μέτρο του κατά πόσο οι μονάδες εξαρτώνται μεταξύ τους Η σύζευξη εξαρτάται από : • Κλήσεις από μία μονάδα σε άλλη • Ποσότητα δεδομένων που διακινείται από μία μονάδα σε άλλη • Το μέγεθος του ελέγχου που έχει μία μονάδα πάνω σε μία άλλη

33 Τύποι σύζευξης Υψηλή Σύζευξη Μή Σύζευξη Χαλαρή Σύζευξη Περιεχόμενη Σύζευξη Σύζευξη ελέγχου Σύζευξη Δεδομένων Σύζευξη από κοινού Σύζευξη αντιγράφου

34 Ελαχιστοποίηση σύζευξης Η ελαχιστοποίηση της σύζευξης είναι επιθυμητή, για τους εξής λόγους: • Ευκολότερη τροποποίηση των απαιτήσεων • Ευκολότερη σχεδίαση (δυνατότητα καταμερισμού εργασιών) • Ευκολότερος εντοπισμός σφαλμάτων συστήματος - Ευκολότερο debugging - Ευκολότερος έλεγχος - επικύρωση • Ευκολότερη συντήρηση • Σαφέστερη Τεκμηρίωση

35 Τύποι σύζευξης Περιεχόμενη Σύζευξη: Μία μονάδα επεμβαίνει και τροποποιεί μία άλλη Μονάδα ΗΜονάδα G GOTO G1G1 : Η μονάδα G είναι δυνατόν να τροποποιήσει τον κώδικα της μονάδας H (μόνο σε assembly, Basic, Cobol)

36 Τύποι σύζευξης Μπορούμε να μειώσουμε τη σύζευξη τοποθετώντας δεδομένα σε κοινή περιοχή (π.χ. καθολικές μεταβλητές) Η εξάρτηση συνεχίζει να υπάρχει (από κοινού σύζευξη), αφού αλλαγές στις καθολικές μεταβλητές επηρεάζουν όλες τις μονάδες που έχουν πρόσβαση σε αυτές Μονάδα ΗΜονάδα G global variables

37 Τύποι σύζευξης Σύζευξη ελέγχου έχουμε όταν μία μονάδα περνά flags για να ελέγξει τη δραστηριότητα μιας άλλης μονάδας (Π.χ. μία μονάδα ξεκινά τη λειτουργία της όταν μία άλλη ολοκληρωθεί και η τιμή ενός flag τεθεί σε κατάλληλη τιμή) Συνήθως πρόκειται για μεταβλητές που εμπλέκονται σε παραστάσεις δομών ελέγχου (conditional statements) Σύζευξη αντιγράφου: Πέρασμα δομών δεδομένων Εάν μεταξύ των μονάδων ανταλλάσσονται δεδομένα έχουμε σύζευξη δεδομένων. Στην περίπτωση αυτή, μία μονάδα μπορεί να τροποποιήσει τα ίδια τα δεδομένα μιας άλλης μονάδος (κλήση κατ’ αναφορά) ή να δράσει επάνω σε αντίγραφα των δεδομένων μιας άλλης μονάδος (κλήση κατ’ αξία)

38 Συνεκτικότητα (cohesion) • Αναφέρεται στην εσωτερική συνοχή της ΜΟΝΑΔΟΣ Μία μονάδα είναι συνεκτική εάν όλα τα τμήματά της προορίζονται και είναι απαραίτητα για την εκτέλεση της ίδιας λειτουργίας • Μία μονάδα είναι συνεκτική εάν όλα τα τμήματά της προορίζονται και είναι απαραίτητα για την εκτέλεση της ίδιας λειτουργίας • Στόχος είναι η μεγαλύτερη δυνατή συνεκτικότητα κάθε μονάδος • Συμπτωματική Συνεκτικότητα έχουμε όταν τα τμήματα μιας μονάδας είναι εντελώς ασυσχέτιστα • Λογική Συνεκτικότητα έχουμε όταν λογικά συσχετιζόμενες λειτουργίες συνυπάρχουν στην ίδια μονάδα

39 Συνεκτικότητα ΙΙ • Χρονική Συνεκτικότητα έχουμε όταν στην ίδια μονάδα υπάρχουν τμήματα που υλοποιούν λειτουργίες οι οποίες εκτελούνται γειτονικά στο χρόνο (π.χ. διαδοχικά) • Εάν η έξοδος από το ένα τμήμα μιας μονάδος αποτελεί είσοδο σε επόμενο τμήμα της μονάδος έχουμε ακολουθιακή συνεκτικότητα • Επικοινωνιακή συνεκτικότητα: τα τμήματα της μονάδας επεξεργάζονται ή παράγουν τα ίδια δεδομένα

40 Συνεκτικότητα ΙΙΙ • Ιδανική περίπτωση: Λειτουργική συνεκτικότητα, όταν όλα τα στοιχεία της μονάδος είναι απαραίτητα για την εκτέλεση μιας λειτουργίας. Η μονάδα εκτελεί μόνο αυτή την λειτουργία και καμία άλλη • H πρόταση που περιγράφει την μονάδα έχει ένα ρήμα και ένα αντικείμενο (π.χ. υπολόγισε τον μέσο, άνοιξε τη βαλβίδα κτλ)

41 Τύποι Συνεκτικότητας ΜΟΝΑΔΑ Α Λειτουργία Α Λειτουργία Β Λειτουργία C Λειτουργία D Συμπτωματική συνεκτικότητα (Μέρη ασυσχέτιστα)

42 Τύπο Συνεκτικότητας ΜΟΝΑΔΑ Α Λειτουργία Α’’ Λειτουργία Α’ Λειτουργία Α Λογική συνεκτικότητα (Παρόμοιες λειτουργίες)

43 Τύποι Συνεκτικότητας ΜΟΝΑΔΑ Α Χρόνος Τ 0 +2Δ Χρόνος Τ 0 +Δ Χρόνος Τ 0 Χρονική συνεκτικότητα (Συσχέτιση μέσω χρόνου)

44 Τύποι Συνεκτικότητας ΜΟΝΑΔΑ Α Λειτουργία C Λειτουργία Β Λειτουργία Α Επικοινωνιακή συνεκτικότητα (Προσπέλαση στα ίδια δεδομένα)

45 Τύποι Συνεκτικότητας ΜΟΝΑΔΑ Α Λειτουργία C Λειτουργία Β Λειτουργία Α Ακολουθιακή συνεκτικότητα (Έξοδος ενός είσοδος σε άλλο) OUT IN

46 Τύποι Συνεκτικότητας ΜΟΝΑΔΑ Α = ΛΕΙΤΟΥΡΓΙΑ Α Λειτουργία Α, τμήμα 3 Λειτουργία Α, τμήμα 2 Λειτουργία Α, τμήμα 1 Λειτουργική συνεκτικότητα (Πλήρη και συσχετισμένα τμήματα που εκτελούν τμήματα της ίδια λειτουργίας)

47 Fan-in, Fan-out A BCDE FGHI Fan-out: 4 Fan-in: 1 Fan-out: 3 Fan-in: 2 Fan-out: 0

48 Fan-in, Fan-out Στόχος 1: Ελαχιστοποίηση αριθμού μονάδων με υψηλό fan-out Μία μονάδα που ελέγχει πολλές άλλες, συνήθως εκτελεί πολλές εργασίες (κακή συνεκτικότητα). Δυσκολία στον εντοπισμό σφαλμάτων, στην τροποποίηση, στην επαναχρησιμοποίηση Στόχος 2: Μεγιστοποίηση αριθμού μονάδων με υψηλό fan-in Μία μονάδα που ελέγχεται από πολλές άλλες, είναι μονάδα γενικής χρησιμότητας και είναι σαφώς προτιμότερο μία λειτουργία που εκτελείται συχνά να βρίσκεται σε μία μονάδα, παρά κατανεμημένη ή υλοποιημένη σε πολλές μονάδες


Κατέβασμα ppt "Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google