Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεἈντιόπη Ελευθερίου Τροποποιήθηκε πριν 6 χρόνια
1
Σχεδίαση Λογισμικού Διδάσκων: Κων/νος Κώτης (BSc, PhD)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (Ε') - Κωδ. Μαθήματος: Σχεδίαση Λογισμικού Διδάσκων: Κων/νος Κώτης (BSc, PhD)
2
Σχεδίαση Λογισμικού Το «Πως» θα εκτελούνται οι εργασίες του λογισμικού
Ένας τρόπος περιγραφής της κατασκευής του λογισμικού ώστε να ικανοποιεί τις προδιαγραφές (δηλ. το «Τι») Η περιγραφή αυτή καλείται «ΣΧΕΔΙΟ» λογισμικού Δεν υπάρχει μόνο ένα σωστό Σχέδιο, άρα δεν υπάρχει μόνο μία σωστή υλοποίηση μιας προδιαγραφής
3
Σχεδίαση Λογισμικού Προβληματισμοί:
Ορισμός: ΣΧΕΔΙΟ είναι η περιγραφή των μονάδων που αποτελούν το λογισμικό, των συσχετίσεων μεταξύ τους, της διάταξής τους, καθώς και της εσωτερικής τους λεπτομέρειας Προβληματισμοί: Στρατηγική μετάβασης από τις Προδιαγραφές στη Σχεδίαση Επιλογή (και τεκμηρίωση) καλύτερου τρόπου υλοποίησης μιας προδιαγραφής Πόσο θα επηρεάζει τη σχεδίαση το περιβάλλον κατασκευής του λογισμικού (δηλ. γλώσσα προγρ., λειτουργικό σύστημα) Πόσο λεπτομερές πρέπει να είναι το Σχέδιο Πως θα εξασφαλιστεί η ποιότητα του λογισμικού μέσα από τη Σχεδίαση
4
Κριτήρια Ποιότητας Σχεδίου
Να ικανοποιεί όλες τις προδιαγραφές των απαιτήσεων από το λογισμικό Να περιγράφει πλήρως όλες τις πλευρές του λογισμικού: Δεδομένα, Λειτουργίες, Συμπεριφορά Να είναι εύκολα κατανοητό από τους προγραμματιστές Να μην περιέχει σφάλματα !!!!!
5
Τεχνοτροπίες Σχεδίασης
Προσανατολισμένες στις διαδικασίες (function-oriented) Διάκριση δεδομένων από τις διαδικασίες (Δομημένη Σχεδίαση) Στα αντικείμενα (object-oriented) Οντότητες με δεδομένα και διαδικασίες στο ίδιο κέλυφος (Αντικειμενοστραφής Σχεδίαση) Ο σχεδιαστής και στις 2 περιπτώσεις ασχολείται και με τα Δεδομένα και με τις Διαδικασίες.
6
Τεχνοτροπίες Σχεδίασης
Προσανατολισμένες Δομημένη Σχεδίαση top-down (αποσύνθεση) ιεραρχία διαδικασιών, συναρτήσεων, άλλων μονάδων λογισμικού, μέχρι τις εντολές της γλώσσας προγραμματισμού α) Βασισμένες στις διαδικασίες β) Βασισμένες στα δεδομένα (κοντά στην αντικειμενοστραφή) Αντικειμενοστραφής Σχεδίαση Συλλογή οντοτήτων που περικλείουν δεδομένα και διαδικασίες. Κάθε οντότητα έχει στο πεδίο ευθύνης της Αντικείμενα, που παρέχουν σύνολα υπηρεσιών. Η συνεργασία των Αντικειμένων παράγει το λογισμικό
7
Επίπεδα σχεδίασης Αρχιτεκτονική Σχεδίαση
Καθορισμός μονάδων (Units) του λογισμικού και διάταξής τους στο σύστημα Σχεδίαση Διαπροσωπειών (interfaces) Καθορισμός επικοινωνίας των μονάδων με Άλλα συστήματα λογισμικού συσκευές Χρήστες Λεπτομερής Σχεδίαση Μονάδων Καθορισμός εσωτερικής δομής κάθε μονάδας Σχεδίαση Δεδομένων Λεπτομερή περιγραφή/ σχεδίαση των δεδομένων
8
Επίπεδα λεπτομέρειας Σχεδίου
9
Προϊόντα Σχεδίασης Από την Προδιαγραφή Απαιτήσεων στην Σχεδίαση
10
Δεδομένα και μονάδες Λογισμικού
Ανεξαρτησία δεδομένων από τις μονάδες λογισμικού
11
Αρχιτεκτονική Σχεδίαση
ή αλλιώς…Σχεδίαση συστήματος Input: Διαγράμματα ροής δεδομένων (Προδιαγραφή Απαιτήσεων) Διαφορετικά επίπεδα σχεδίου
12
Σχεδίαση Διαπροσωπειών
Κατά την επικοινωνία των μονάδων λογισμικού πρέπει να καθοριστεί: Ο αριθμός και τύπος των παραμέτρων κατά την κλήση μονάδων λογισμικού (στην ίδια εφαρμογή) Καθορίζονται κατά την αρχιτεκτονική και την λεπτομερή σχεδίαση Περιγράφονται στα διαγράμματα δομής προγράμματος και στο λεπτομερές σχέδιο μονάδων Το είδος και οι λεπτομέρειες επικοινωνίας με άλλα συστήματα λογισμικού κατά περίπτωση τρόπο, ανάλογα με τα άλλα συστήματα Το είδος και οι λεπτομέρειες επικοινωνίας με εξωτερικές συσκευές κατά περίπτωση τρόπο, ανάλογα με τις συσκευές Η επικοινωνία με τον άνθρωπο ιδιαίτερο πρόβλημα που απαιτεί και άλλους ειδικούς
13
Λεπτομερής Σχεδίαση μονάδων
Το πιο λεπτομερές επίπεδο σχεδίασης… Καθορίζονται όλες οι κατασκευαστικές λεπτομέρειες που απαιτούνται για την δημιουργία του Κώδικα. Δίνεται επακριβώς η λεπτομερής εσωτερική δομή κάθε μονάδας. Απαιτείται (ως input): Αρχιτεκτονικό Σχέδιο Σχέδιο διαπροσωπειών Έγγραφο Προδιαγραφών Απαιτήσεων Διάγραμμα μετάβασης καταστάσεων
14
Σχεδίαση Δεδομένων Σύλληψη της Δομής και των Συσχετίσεων των δεδομένων
Input: α) Λεξικό δεδομένων, β) διάγραμμα οντοτήτων-συσχετίσεων Output: Βελτιωμένο και λεπτομερές μοντέλο οντοτήτων – συσχετίσεων Να οδηγεί εύκολα σε υλοποίηση Βάσης Δεδομένων, να βελτιστοποιεί τις επιδόσεις, να υπάρχει πληρότητα πληροφορίας, και εξάλειψη πλεονάζουσας.
15
Έγγραφο Σχεδίου Λογισμικού
Περιγράφει με δομημένο τρόπο το σχεδιασμό του λογισμικού Κείμενο και διαγράμματα Ενσωματώνει όλα τα επιμέρους προϊόντα της σχεδίασης λογισμικού Πρότυπο ΙΕΕΕ
16
Έγγραφο Σχεδίου Λογισμικού
17
Διατάξεις Λογισμικού Διάταξη Λογισμικού: Software Deployment
Είναι η κατάτμηση μιας εφαρμογής σε ανεξάρτητα λειτουργικά τμήματα και η ανάθεση αυτών σε διατιθέμενους υπολογιστικούς πόρους (συστήματα, επεξεργαστές). Διάταξη = Γενική Αρχιτεκτονική (εξωτερική σκοπιά) Διάταξη ≠ Εσωτερική Αρχιτεκτονική Κατηγοριοποίηση εργασιών που μπορεί να εκτελέσει μια εφαρμογή λογισμικού
18
Διατάξεις Λογισμικού Εργασίες Παρουσίασης
Εργασίες Διαχείρισης Δεδομένων Εργασίες Επιχειρησιακής Λογικής
19
Διατάξεις Λογισμικού Εργασίες Παρουσίασης
Επικοινωνία συστήματος – χρήστη/συσκευές/συστήματα Εργασίες Διαχείρισης Δεδομένων Αποθήκευση και ανάκτηση δεδομένων Εργασίες Επιχειρησιακής Λογικής Όλες οι υπόλοιπες εργασίες… εκείνες που υλοποιούν τις ιδιαίτερες λειτουργικές απαιτήσεις της εφαρμογής του λογισμικού Παράδειγμα: Μια μονάδα λογισμικού που εκτελεί ένα υπολογισμό (εργασία επιχειρησιακής λογικής) δεν θα πρέπει να τυπώνει η ίδια το αποτέλεσμά του στην οθόνη (εργασία παρουσίασης)
20
Διατάξεις Λογισμικού Η μονολιθική διάταξη
Η διάταξη Πελάτη – Εξυπηρετητή (client – server model) Η τριμερής διάταξη (3-trier model) Η πολυμερής διάταξη (multi-tier model)
21
Διατάξεις Λογισμικού Η μονολιθική διάταξη Η απλούστερη
Ένα υπολογιστικό σύστημα για όλη την εφαρμογή Κατάλληλη για μικρές εφαρμογές, χωρίς ειδικές απαιτήσεις Περιγράφει την ανάθεση τμημάτων του λογισμικού σε υπολογιστικούς πόρους Deployment diagram Διάγραμμα διάταξης λογισμικού
22
Διατάξεις Λογισμικού Η διάταξη Πελάτη – Εξυπηρετητή Λύση
Προβλήματα της προηγούμενης διάταξης: Ανάγκη για ικανοποίηση περισσότερων απαιτήσεων Μεγαλύτερη πολυπλοκότητα Περισσότερα δεδομένα Ανάπτυξη σχεσιακών Βάσεων Δεδομένων Ανάπτυξη δικτύων Λύση
23
Διατάξεις Λογισμικού Η τριμερής διάταξη Ανάγκη ελάφρυνσης του Πελάτη
Προβλήματα της προηγούμενης διάταξης: Ανάγκη ελάφρυνσης του Πελάτη Πρόβλημα στη συντήρηση πολλών Πελατών Ανεπαρκής Ισχύς Πελατών λόγω πολυπλοκότητας Λύση
24
Διατάξεις Λογισμικού Η πολυμερής διάταξη (ή Web-based)
Προβλήματα της προηγούμενης διάταξης: Απαιτήσεις συντήρησης Πελατών σε επίπεδο Παρουσίασης Λύση
25
Αρχιτεκτονική Σχεδίαση
…με βάση το διάγραμμα Ροής Δεδομένων (Δ.Ρ.Δ) …παράγεται το «Διάγραμμα Δομής Προγράμματος (Δ.Δ.Π)» για κάθε ένα Δ.Ρ.Δ Μονάδες λογισμικού Πέρασμα παραμέτρου Ζ Κλήση μονάδας 2 από την 1
26
Αρχιτεκτονική Σχεδίαση
Στα Δ.Ρ.Δ εντοπίζονται 2 τύποι χαρακτηριστικών περιοχών Κεντρικοί Μετασχηματισμοί Κέντρα δοσοληψιών Για κάθε τέτοια περιοχή, δημιουργείται ένα επίπεδο του Δ.Δ.Π, ΕΠΑΝΑΛΗΠΤΙΚΑ μέχρι να εξαντληθεί το Δ.Ρ.Δ
27
Κεντρικοί Μετασχηματισμοί
Είναι η περιοχή ενός Δ.Ρ.Δ που περιέχει μετασχηματισμούς που οι εργασίες τους μετατρέπουν δεδομένα εισόδου σε δεδομένα εξόδου.
28
Κεντρικοί Μετασχηματισμοί
Δεν υπάρχει αυτόματος τρόπος Αυτοσχεδιασμός και εμπειρία του Μηχανικού Δεν υπάρχει μία λύση 1 2
29
Κεντρικοί Μετασχηματισμοί
Απεικόνιση σε Δ.Δ.Π Παράδειγμα: Δ.Ρ.Δ Δ.Δ.Π
30
Κέντρο Δοσοληψιών Transaction centre: ένας μετασχηματισμός του Δ.Ρ.Δ ο οποίος δέχεται δεδομένα εισόδου και παράγει ένα σύνολο από δεδομένα εξόδου, ανάλογα με την τιμή των δεδομένων εισόδου. Περιλαμβάνει μόνο ένα μετασχηματισμό (για παράδειγμα, έλεγχος ροής προγράμματος με menu)
31
Κέντρο Δοσοληψιών Απεικόνιση σε Δ.Δ.Π Παράδειγμα:
32
Βήματα Κατασκευής Δ.Δ.Π Επαναληπτικά, μέχρι να έχουν προσδιοριστεί μονάδες για όλους τους μετασχηματισμούς που περιέχονται στα Δ.Ρ.Δ μιας εφαρμοής: Εντοπισμός κεντρικού μετασχηματισμού Απεικόνιση του Κ.Μ σε Δ.Δ.Π Παραγοντοποίηση (factoring) Συνένωση
33
Βήματα Κατασκευής Δ.Δ.Π (Παράδειγμα)
Βήμα 1 Εντοπισμός κεντρικού μετασχηματισμού
34
Βήματα Κατασκευής Δ.Δ.Π (Παράδειγμα)
Βήμα 2 Κατασκευή Δ.Δ.Π για το κεντρικό μετασχηματισμό
35
Βήματα Κατασκευής Δ.Δ.Π (Παράδειγμα)
Βήμα 1+2
36
Βήματα Κατασκευής Δ.Δ.Π (Παράδειγμα)
Factoring: κατασκευή λοιπών μετασχηματισμών Βήμα 3
37
Βήματα Κατασκευής Δ.Δ.Π (Παράδειγμα)
Βήμα 1+3
38
Βήματα Κατασκευής Δ.Δ.Π (Παράδειγμα)
Συνένωση Βήμα 4
39
Βήματα Κατασκευής Δ.Δ.Π (Παράδειγμα)
Συνένωση Βήμα 4 (ανάλυση)
40
Βήματα Κατασκευής Δ.Δ.Π – Μελέτη Περίπτωσης «Επίκουρος»
41
Βήματα Κατασκευής Δ.Δ.Π – Μελέτη Περίπτωσης «Επίκουρος»
42
Βήματα Κατασκευής Δ.Δ.Π – Μελέτη Περίπτωσης «Επίκουρος»
43
Λεπτομερής Σχεδίαση Μονάδων
Προσδιορισμός εσωτερικής δομής κάθε μονάδας Δηλ. Περιγραφή του πηγαίου κώδικα Ψευδοκώδικας ή γλώσσα Σχεδίασης Προγράμματος (program description lang.) Χωρίς αυστηρότητα στη σύνταξη και στη γραμματική Ανάλυση μέχρι τις Διαδικασίες και Συναρτήσεις (functional decomposition)
44
Λεπτομερής Σχεδίαση Μονάδων
45
Λεπτομερής Σχεδίαση Μονάδων
46
Σχεδίαση Δεδομένων Τροποποίηση του μοντέλου Οντοτήτων – Συσχετίσεων (Κανονικοποίηση) Καθορισμός των πεδίων που θα περιέχει κάθε πίνακας στο επίπεδο της φυσικής αποθήκευσης δεδομένων Καθορισμός εναλλακτικών μορφών εμφάνισης (views) της οργάνωσης των δεδομένων πάνω από το φυσικό επίπεδο Βελτιστοποίηση επιδόσεων
47
Σχεδίαση Δεδομένων Εντοπισμός όλων των δομών δεδομένων πάνω στις οποίες επιδρούν οι μονάδες λογισμικού Τήρηση και ενημέρωση του Λεξικού Δεδομένων Καθορισμός μονάδων που επιτρέπεται να επιδρούν κατευθείαν στα δεδομένα Διερεύνηση δυνατότητας χρήσης έτοιμων δομών δεδομένων από βιβλιοθήκες Αποτέλεσμα της Σχεδίασης Δεδομένων θα πρέπει να είναι: α) Τελικό διάγραμμα Οντοτήτων, β) Ενημερωμένο Λεξικό Δεδομένων, γ) οι σχετικές παράγραφοι (2.3, 3.3, 6) στο έγγραφο περιγραφής του Σχεδίου.
48
Ερωτήσεις – Απορίες - Συζήτηση
49
Ασκήσεις – Πιθανά Θέματα Εξέτασης
50
Ασκήσεις – Πιθανά Θέματα Εξέτασης
51
Ασκήσεις – Πιθανά Θέματα Εξέτασης
52
Ασκήσεις – Πιθανά Θέματα Εξέτασης
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.