ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΗΔομημένηπροσέγγιση Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος Δομημένη ανάλυση Διάγραμμα ροής δεδομένων Διάγραμμα οντοτήτων συσχετίσεων Διάγραμμα μετάβασης καταστάσεων Αδυναμίες δομημένης προσέγγισης 2
Χαρακτηριστικά δομημένης τεχνοτροπίας Υπο-Συστήματα Ατομικές μονάδες λογισμικού (διαδικασίες, συναρτήσεις) Σύστημα Δεδομένα Κάθε εφαρμογή θεωρείται ως μια ενιαία και σχετικά αυτοτελής, μεγάλη και σύνθετη λειτουργική μονάδα εξ ολοκλήρου υπεύθυνη για την επικοινωνία με το περιβάλλον της και την πραγματοποίηση των υπολογιστικών καθηκόντων της Βασικό χαρακτηριστικό Ανεξαρτησία δεδομένων από τις μονάδες λογισμικού 3 Πορεία δομημένης σχεδίασης και ανάπτυξης ΠΡΟΔΙΑΓΡΑΦΗ ΑΠΑΙΤΗΣΕΩΝ ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΔΙΑΓΡΑΜΜΑ ΔΟΜΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΨΕΥΔΟΚΩΔΙΚΑΣ 4
Μοντέλα δομημένης ανάλυσης ΔΙΑΓΡΑΜΜΑ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΛΕΞΙΚΟ ΔΕΔΟΜΕΝΩΝ ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΔΙΑΓΡΑΜΜΑ ΜΕΤΑΒΑΣΗΣ ΚΑΤΑΣΤΑΣΕΩΝ Διάγραμμα Ροής Δεδομένων παρουσιάζουν το πέρασμα των δεδομένων μέσα από το σύστημα επικεντρώνονται στις διεργασίες που μετασχηματίζουν τις ροές των εισερχόμενων δεδομένων (είσοδος, input) σε ροές εξερχόμενων δεδομένων (έξοδος, output) οι διεργασίες που εκτελούν τους μετασχηματισμούς αυτούς συνήθως δημιουργούν και χρησιμοποιούν δεδομένα αποθήκευση κάποιες εξωτερικές οντότητες στέλνουν και λαμβάνουν τα δεδομένα από το σύστημα
Συμβολισμοί διαγραμμάτων ροής δεδομένων Διαδικασία / μετασχηματισμός δεδομένων Εξωτερική πηγή ή αποδέκτης δεδομένων Ροή δεδομένων Αποθήκη δεδομένων Επιτρεπτές συνδέσεις μεταξύ των συστατικών των ΔΡΔ Πηγή ή Αποδέκτης Διαδικασίες Αποθήκη Δεδομένων Πηγή ή Αποδέκτης Όχι Ναι Όχι Διαδικασίες Ναι Ναι Ναι Αποθήκη Δεδομένων Όχι Ναι Όχι
Διαδοχικά επίπεδα λεπτομέρειας ΠΔ1 ΠΔ2 ΠΔ3 Α Β Γ 1 Δ Ε ΑΔ1 ΑΔ2 ΠΔ1 ΠΔ2 ΠΔ3 Α Β Γ Ζ 1.2 1.1 Θ Η 1.3 Δ Ε ΑΔ1 ΑΔ2 Παράδειγμα: Γραμματεία Πελάτης: υπεύθυνος λειτουργίας της γραμματείας Σκοπιμότητα: Το μεγάλο πλήθος φοιτητών, καθηγητών και μαθημάτων καθώς και η πολυπλοκότητα των εργασιών υποστήριξης επιβάλουν τη χρήση αυτοματοποιημένης εφαρμογής Περιγραφή: Η εφαρμογή θα πρέπει να τηρεί αρχεία φοιτητών, καθηγητών, μαθημάτων, εγγραφής σε μαθήματα, καθώς και αποτελέσματα βαθμολογίας. Η εφαρμογήθαπρέπεινατυπώνει καταστάσεις φοιτητών, καθηγητών, μαθημάτων και βαθμολογίας, με κριτήρια που θα δίνει ο χρήστης. Η εφαρμογήδεθαπρέπεινα επιτρέπει τη διαγραφή ενός ή καθηγητή από το αρχείο αν αυτός έχει εγγραφεί σε ή του έχει ανατεθεί μάθημα, αντίστοιχα. Το περιβάλλον λειτουργίας θα είναι ένας αυτόνομος ηλεκτρονικός υπολογιστής με Windows 98 (ή επόμενη έκδοση). 10
Διάγραμμα Ροής Δεδομένων Επίπεδο 1 ΧΡΗΣΤΗΣ 1 ΓΡΑΜΜΑΤΕΙΑ ΧΡΗΣΤΗΣ 11 Επίπεδο 2 Στοιχεία φοιτητών κλπ Εγγραφή ΧΡΗΣΤΗΣ Βαθμοί 1.1 Διαχείριση Αρχείων 1.2 Εγγραφές σε μαθήματα Ενημερωμένα Αρχεία φοιτητών κλπ Αρχείο εγγραφών ΧΡΗΣΤΗΣ Αρχείο βαθμολογίας Επιλογές 1.3 Εκτύπωση βαθμολογίας 1.3 Βαθμολόγηση Βαθμολογία 12
Επίπεδο 3 ΧΡΗΣΤΗΣ Στοιχεία Στοιχεία καθηγητή 1.1.2 Διαχείριση Αρχείου Καθηγητών 1.1.1 Διαχείριση Αρχείου Φοιτητών Αρχείο φοιτητών Εγγραφή καθηγητή Εγγραφή Ενημερωμένο αρχείο ΧΡΗΣΤΗΣ Στοιχεία μαθήματος 1.1.3 Διαχείριση Αρχείου Μαθημάτων Αρχείο καθηγητών Εγγραφή μαθήματος Ενημερωμένο αρχείο Αρχείο μαθημάτων 13 Επίπεδο 4 Όνομα, επώνυμο, ΑΤ, διεύθυνση 1.1.1.1 Προσθήκη Στοιχεία εγγραφής ΧΡΗΣΤΗΣ Α.Μ. Εγγραφή ΧΡΗΣΤΗΣ Α.Μ. Αρχείο φοιτητών 1.1.1.2 Έλεγχος δεδομένων Όνομα, επώνυμο, ΑΤ, διεύθυνση 1.1.1.3 Μεταβολή στοιχείων Τροποποιημένα Στοιχεία εγγραφής Εγγραφή Α.Μ. Αρχείο φοιτητών Εγγραφές Αρχείο εγγραφών σε μαθήματα Αρχείο φοιτητών 14
Διάγραμμα Οντοτήτων Συσχετίσεων ΚΑΘΗΓΗΤΗΣ (1,Ν) ΔΙΔΑΣΚΕΙ (1,1) ΦΟΙΤΗΤΗΣ (1,Ν) ΕΓΓΡΑΦΕΤΑΙ ΣΕ (1,Ν) ΜΑΘΗΜΑ (1,Ν) ΒΑΘΜΟΛΟΓΕΙΤΑΙ ΣΕ (1,Ν) Διάγραμμα μετάβασης καταστάσεων Περιγράφουν τη δυναμική συμπεριφορά του λογισμικού, δηλ. τη χρονική σειρά εκτέλεσης των εργασιών ανάλογα με εξωτερικά γεγονότα Γεγονός (event): μια στιγμιαία μεταβολή στο περιβάλλον λειτουργίας του λογισμικού, ηοποία προκαλείται από εξωτερικούς παράγοντες (χρήστες, λειτουργικό σύστημα, άλλες εφαρμογές λογισμικού) Απόκριση (response): μιαλειτουργίαπουεκτελείτο λογισμικό όταν προκαλείται ένα γεγονός Κατάσταση (state): όταν το λογισμικό αναμένει γεγονότα, τότε λέμε ότι βρίσκεται σε μια κατάσταση
Συμβολισμοί διαγραμμάτων μετάβασης καταστάσεων Κατάσταση Κατάσταση έναρξης Κατάσταση τέλους Μετάβαση ΓΕΓΟΝΟΣ/ΑΠΟΚΡΙΣΗ Παράδειγμα: διαχείριση εγγραφών ΕΠΙΛΟΓΗ ΜΑΘΗΜΑΤΟΣ ΕΠΙΛΟΓΗ ΜΑΘΗΜΑΤΟΣ ΕΠΙΛΕΓΜΕΝΟ ΑΙΤΗΣΗ ΕΓΓΡΑΦΗΣ ΤΕΛΟΣ ΕΠΙΛΟΓΩΝ ΕΠΙΛΟΓΗ ΜΑΘΗΜΑΤΟΣ ΑΠΟΡΡΙΦΘΕΝ ΑΙΤΟΥΜΕΝΟ ΕΠΙΛΟΓΗ ΜΑΘΗΜΑΤΟΣ ΕΓΚΡΙΣΗ ΕΓΚΕΚΡΙΜΕΝΟ ΤΕΛΟΣ ΕΠΙΛΟΓΩΝ ΤΕΛΟΣ ΕΠΙΛΟΓΩΝ
Λεξικό δεδομένων Ονομασία: το κύριο αναγνωριστικό της οντότητας, διαδικασίες ή ροής δεδομένων Βοηθητικές ονομασίες: Δευτερεύουσες ονομασίες που χρησιμοποιούνται χάριν συντομίας ή ισοδύναμα Που χρησιμοποιείται: αναφορά στους μετασχηματισμούς, οντότητες κτλ. που χρησιμοποιούν το εν λόγω στοιχείο Πως χρησιμοποιείται: αναφορά στον τρόπο με τον οποίο χρησιμοποιείται (ως στοιχείο εισόδου, ως αποτέλεσμα, κα) Τι περιέχει: περιγραφή του είδους και της μορφής της πληροφορίας που αποθηκεύεται σε αυτό Όρια τιμών: καθορισμός των επιτρεπτών τιμών που μπορεί να πάρει αν απαιτείται Αρχική τιμή: καθορισμός της αρχικής τιμής του στοιχείου (αν απαιτείται) Λοιπά στοιχεία: υπόλοιπες χρήσιμες πληροφορίες Διάγραμμα δομής προγράμματος ΣΦ Διάβασμα στοιχείων από το πληκτρολόγιο 1.1.1 Προσθήκη Φοιτητή ΣΦ Ετοιμασία εγγραφής Αποθήκευση εγγραφής στοαρχείοφοιτητών ΣΦ = Στοιχεία Φοιτητή = Εγγραφή Φοιτητή PROCEDURE Get_SM(stoixeia_m: IN/OUT) --------------------------------------------------------------------- Εμφάνισε φόρμα στην οθόνη Διάβασε τα πεδία από το πληκτρολόγιο IF ο χρήστης πατήσει ESC THEN Μηδένισε τις τιμές όλων των πεδίων της stoixeia_m END_IF END_PROCEDURE Δομικά συστατικά (procedures, functions) 20
Διάγραμμα Δομής Προγράμματος 1.1.1.2 Έλεγχος δεδομένων ΣΦ Διάβασμα νέων στ. από το πληκτρολόγιο 1.1.1.3 Μεταβολή Στοιχείων Φοιτητή ΣΦ Ετοιμασία εγγραφής ΣΦ = Στοιχεία Φοιτητή = Εγγραφή Φοιτητή ΕΜ = Εγγραφές Μαθημάτων Αποθήκευση εγγραφής στοαρχείοφοιτητών ΑΜ ΑΜ, ΕΜ Διάβασμα Α.Μ. από το πληκτρολόγιο FLAG FLAG Επαλήθευση Α.Μ και έλεγχος εγγραφής του σε μαθήματα Ετοιμασία εγγραφής 21 Εξάσκηση: Εκδοτήριο Εισιτηρίων Πελάτης: Υπεραστικά ΚΤΕΛ Μυτιλήνης Σκοπιμότητα: Η καλύτερη και ταχύτερη εξυπηρέτηση των πελατών της επιχείρησης με την αποφυγή ουρών που σχηματίζονται στα ταμεία κατά τις ώρες αιχμής, επιβάλουν τη εγκατάσταση αυτόματου εκδοτηρίου εισιτηρίων στο κεντρικό σταθμό της πόλης. Περιγραφή: Η εφαρμογή θα επιτρέπει τις ακόλουθες εργασίες: αναζήτηση πληροφοριών σχετικά με τα διαθέσιμα δρομολόγια (προορισμοί, ώρες αναχώρησης και άφιξης, τιμή εισιτηρίου, διαθέσιμες θέσεις), κράτηση θέσης και έκδοση εισιτηρίου. 22
Αδυναμίες δομημένης ανάλυσης και σχεδίασης Εγγενής αδυναμία στην απεικόνιση των οντοτήτων του πραγματικού κόσμου σε συστατικά λογισμικού Η τακτική«διαίρει και βασίλευε» έχει νόημα μόνο όταν η λύση του προβλήματος είναι υπόθεση αριθμητικών υπολογισμών Το δίδυμο «συστατικά λογισμικού» και «ανεξάρτητα δεδομένα» δεν μοντελοποιούν εύκολα και φυσικά την επιχειρησιακή λογική (αποτελούν ανεπαρκές μεθοδολογικό εργαλείο) Δυσκολία διαχείρισης των μοντέλων παράστασης λογισμικού λόγω Πλήθους και πολυπλοκότητας συστατικών Συσχετίσεων των συστατικών με αποτέλεσμα τις παρενέργειες κατά την πραγματοποίηση μεταβολών (κόστος συντήρησης > 50 %) Η πολυπλοκότητα και η φύση των συσχετίσεων ενός συστατικού λογισμικού δεν επιτρέπει την επαναχρησιμοποίηση του σε νέες εφαρμογές, ακόμα κι αν αναγνωριστούν ομοιότητες Ιδιαίτερα αληθινό για επιχειρηματικές εφαρμογές 23