Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 18/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Μοντέλα Παράστασης Λογισμικού
Μοντέλα δομημένης ανάλυσης ΛΕΞΙΚΟ ΔΕΔΟΜΕΝΩΝ ΔΙΑΓΡΑΜΜΑ ΜΕΤΑΒΑΣΗΣ ΚΑΤΑΣΤΑΣΕΩΝ
Διάγραμμα Οντοτήτων-Συσχετίσεων Είναι περιγραφή της συσχέτισης μεταξύ των δεδομένων που χειρίζεται η εφαρμογή λογισμικού Σύμφωνα με το σχεσιακό μοντέλο δεδομένων Ιδιαίτερη γνωστική περιοχή των Βάσεων Δεδομένων
Οντότητες Οντότητα σύνολο από αντικείμενα, πρόσωπα ή γεγονότα του πραγματικού κόσμου που βρίσκονται εντός του πεδίου ενδιαφέροντος της εφαρμογής λογισμικού που κατασκευάζεται Κάθε οντότητα χαρακτηρίζεται από ένα σύνολο στοιχείων, τα κατηγορήματα-πεδία Το σύνολο των πεδίων που αφορούν μία συγκεκριμένη οντότητα ονομάζεται εγγραφή Το σύνολο των εγγραφών αποθηκεύεται με τη βοήθεια ενός πίνακα Π.χ. οντότητα «Καθηγητής» με πεδία: «Αρ. Ταυτότητας», «Όνομα», «Επώνυμο», «Διεύθυνση», «Τηλέφωνο»
Συσχετίσεις Συσχέτιση αντιστοίχιση μεταξύ διαφορετικών οντοτήτων Π.χ. «Διδάσκει»: συσχέτιση μεταξύ των οντοτήτων «Καθηγητής» και «Μάθημα» Επιπλέον της ύπαρξης της συσχέτισης ενδιαφέρει ο ποσοτικός της χαρακτήρας το πλήθος των μελών (εγγραφών) της μιας οντότητας που μπορούν να συσχετίζονται με τα μέλη (εγγραφές) μιας άλλης
Συσχετίσεις Η συσχέτιση «ένα προς ένα (1:1)» - ένα μέλος του πληθυσμού μιας οντότητας Α συσχετίζεται με / αντιστοιχεί σε ακριβώς ένα μέλος του πληθυσμού μιας οντότητας Β. Η συσχέτιση «ένα προς πολλά (1:Ν)» - ένα μέλος του πληθυσμού μιας οντότητας Α συσχετίζεται με / αντιστοιχεί σε τουλάχιστον ένα μέλος του πληθυσμού μιας οντότητας Β. Η συσχέτιση «πολλά προς πολλά (Μ:Ν)» - ένα ή περισσσότερα μέλη του πληθυσμού μιας οντότητας Α συσχετίζονται με / αντιστοιχούν σε ένα ή περισσότερα μέλη του πληθυσμού μιας οντότητας Β.
Συμβολισμοί ΔΟΣ Οντότητα δεδομένων Όνομα οντότητας Συσχέτιση μεταξύ οντοτήτων Ρήμα συσχέτισης Ορισμός πολλαπλότητας συσχέτισης 1 Ν 1 Ν
Παράδειγμα 1 Ν ΚΑΘΗΓΗΤΗΣ ΔΙΔΑΣΚΕΙ ΜΑΘΗΜΑ Κάθε καθηγητής διδάσκει πολλά μαθήματα Κάθε μάθημα διδάσκεται από ένα μόνο καθηγητή
Μέχρι τώρα... Με τα μοντέλα παράστασης λογισμικού που έχουμε δει μέχρι τώρα, δεν παριστάνεται η δυναμική συμπεριφορά του λογισμικού η χρονική σειρά εκτέλεσης εργασιών ανάλογα με τα εξωτερικά γεγονότα τα οποία προκαλεί ο χρήστης ή άλλες εξωτερικές πηγές Απαραίτητη αυτή η περιγραφή για απόκτηση καλής εικόνας του λογισμικού το οποίο προδιαγράφεται
Μοντέλα δομημένης ανάλυσης ΛΕΞΙΚΟ ΔΕΔΟΜΕΝΩΝ ΔΙΑΓΡΑΜΜΑ ΜΕΤΑΒΑΣΗΣ ΚΑΤΑΣΤΑΣΕΩΝ
Διάγραμμα μετάβασης καταστάσεων Περιγράφει τη δυναμική συμπεριφορά του λογισμικού, δηλ. τη χρονική σειρά εκτέλεσης των εργασιών ανάλογα με εξωτερικά γεγονότα Γεγονός (event): μια στιγμιαία μεταβολή στο περιβάλλον λειτουργίας του λογισμικού, η οποία προκαλείται από εξωτερικούς παράγοντες (χρήστες, λειτουργικό σύστημα, άλλες εφαρμογές λογισμικού) Απόκριση (response): μια λειτουργία που εκτελεί το λογισμικό όταν προκαλείται ένα γεγονός Κατάσταση (state): όταν το λογισμικό αναμένει γεγονότα, τότε λέμε ότι βρίσκεται σε μια κατάσταση Με τη λήξη ενός γεγονότος, το λογισμικό μπορεί να εκτελεί μια λειτουργία και να μεταβαίνει σε άλλη κατάσταση
Διάγραμμα μετάβασης καταστάσεων Σε κάθε κατάσταση είναι καθορισμένα τα γεγονότα τα οποία μπορούν να προκαλέσουν μετάβαση Πρέπει να είναι σαφές ποιο γεγονός προκαλεί μετάβαση σε ποια νέα κατάσταση, καθώς και το ποια λειτουργία εκτελείται Υπάρχουν οι καταστάσεις έναρξης και τέλους
Συμβολισμοί διαγραμμάτων μετάβασης καταστάσεων Κατάσταση Κατάσταση έναρξης Κατάσταση τέλους Μετάβαση σε άλλη κατάσταση/λειτουργία που εκτελείται ΓΕΓΟΝΟΣ/ΑΠΟΚΡΙΣΗ
Διάγραμμα μετάβασης καταστάσεων Το διάγραμμα μετάβασης καταστάσεων δεν είναι πάντα χρήσιμο, δεν πρέπει να το φτιάξουμε για όλες τις εργασίες της εφαρμογής Κάποιος αποφασίζει να κατασκευάσει ΔΜΚ: Όταν η περιγραφή της συμπεριφοράς μιας μονάδας λογισμικού με ένα τέτοιο διάγραμμα βοηθά στην καλύτερη κατανόησή της και στη σχεδίαση του αντίστοιχου πηγαίου κώδικα και Όταν πρόκειται να περιγράψουμε τη συμπεριφορά μιας μονάδας, η οποία σχετίζεται με τη διαχείριση δεδομένων που αφορούν γεγονότα του πραγματικού κόσμου
Παράδειγμα: διαχείριση εγγραφών ΕΠΙΛΟΓΗ ΜΑΘΗΜΑΤΟΣ ΕΠΙΛΟΓΗ ΜΑΘΗΜΑΤΟΣ ΕΠΙΛΕΓΜΕΝΟ ΑΙΤΗΣΗ ΕΓΓΡΑΦΗΣ ΤΕΛΟΣ ΕΠΙΛΟΓΩΝ ΕΠΙΛΟΓΗ ΜΑΘΗΜΑΤΟΣ ΑΠΟΡΡΙΦΘΕΝ ΑΙΤΟΥΜΕΝΟ ΕΠΙΛΟΓΗ ΜΑΘΗΜΑΤΟΣ ΕΓΚΡΙΣΗ ΕΓΚΕΚΡΙΜΕΝΟ ΤΕΛΟΣ ΕΠΙΛΟΓΩΝ ΤΕΛΟΣ ΕΠΙΛΟΓΩΝ
Μέχρι τώρα... Λειτουργίες, δεδομένα, έλεγχος περιγράφονται στα: Διαγράμματα Ροής Δεδομένων Διαγράμματα Οντοτήτων Συσχετίσεων Διαγράμματα Μετάβασης Καταστάσεων Τα περιεχόμενα πρέπει να είναι συνεπή μεταξύ τους ΑΡΑ Λεξικό Δεδομένων!!!
Μοντέλα δομημένης ανάλυσης ΛΕΞΙΚΟ ΔΕΔΟΜΕΝΩΝ ΔΙΑΓΡΑΜΜΑ ΜΕΤΑΒΑΣΗΣ ΚΑΤΑΣΤΑΣΕΩΝ
Λεξικό Δεδομένων Λεξικό δεδομένων είναι μία οργανωμένη ταξινόμηση όλων των σχετιζόμενων με δεδομένα στοιχείων των μοντέλων παράστασης λογισμικού (κάθε βέλος στο ΔΡΔ, κάθε αποθήκη δεδομένων είναι μια συλλογή από μεμονωμένα είδη δεδομένων) Με όσο το δυνατό μεγαλύτερη σαφήνεια και πληρότητα Ώστε να γίνονται κατανοητά τόσο από τον αναλυτή του συστήματος όσο και από το χρήστη αυτού Είναι βασικό στοιχείο της δομημένης ανάλυσης Κατασκευάζεται με πολλή δουλειά Και χρειάζεται περισσότερη για να διατηρηθεί ενημερωμένο
Λεξικό δεδομένων Συνήθως πίνακας που περιλαμβάνει τα παρακάτω πεδία Ονομασία: το κύριο αναγνωριστικό της οντότητας, διαδικασίες ή ροής δεδομένων Βοηθητικές ονομασίες: Δευτερεύουσες ονομασίες που χρησιμοποιούνται χάριν συντομίας ή ισοδύναμα Πού χρησιμοποιείται: αναφορά στους μετασχηματισμούς, οντότητες κτλ. που χρησιμοποιούν το εν λόγω στοιχείο Πώς χρησιμοποιείται: αναφορά στον τρόπο με τον οποίο χρησιμοποιείται (ως στοιχείο εισόδου, ως αποτέλεσμα, κα) Τι περιέχει: περιγραφή του είδους και της μορφής της πληροφορίας που αποθηκεύεται σε αυτό Όρια τιμών: καθορισμός των επιτρεπτών τιμών που μπορεί να πάρει αν απαιτείται Αρχική τιμή: καθορισμός της αρχικής τιμής του στοιχείου (αν απαιτείται) Λοιπά στοιχεία / συμπληρωματική πληροφορία: υπόλοιπες χρήσιμες πληροφορίες
Λεξικό δεδομένων Η κατασκευή του λεξικού δεδομένων γίνεται παράλληλα με την κατασκευή των μοντέλων παράστασης λογισμικού Με την πρώτη εμφάνιση ενός στοιχείου δεδομένων, αυτό εισάγεται στο λεξικό και χαρακτηρίζεται όσο πληρέστερα γίνεται. Ο χαρακτηρισμός του ολοκληρώνεται καθώς προχωρά η ανάπτυξη. Συνήθως χρησιμοποιούνται εργαλεία υποστήριξης ανάπτυξης λογισμικού (CASE) για τη δημιουργία του λεξικού δεδομένων
Τμήμα λεξικού δεδομένων παραδείγματος ΟΝΟΜΑΣΙΑ ΑΛΛΕΣ ΠΟΥ ΠΩΣ ΠΕΡΙΕΧΟΜΕΝΑ ΟΝΟΜΑΣΙΕΣ ΚΑΘΗΓΗΤΗΣ ΚΑΘ. Βάση Δεδομένων Πίνακας της ΒΔ Εγγραφές καθηγητών ΜΑΘΗΜΑ ΜΑΘ. Βάση Δεδομένων Πίνακας της ΒΔ Εγγραφές μαθημάτων ΒΑΘΜΟΛΟΓΙΑ ΒΑΘΜ. Βάση Δεδομένων Πίνακας της ΒΔ Εγγραφές βαθμολογ. ΦΟΙΤΗΤΗΣ ΦΟΙΤ. Βάση Δεδομένων Πίνακας της ΒΔ Εγγραφές φοιτητών Αρ.Ταυτότητας Α.Τ. Πίνακας «Καθηγητής» Πεδίο Πεδίο 7 χαρακτήρων Όνομα ΟΝ. Πίνακας «Καθηγητής» Πεδίο Πεδίο 25 χαρακτήρων Αρ.Ταυτότητας Α.Τ.Φ. Πίνακας «Φοιτητής» Πεδίο Πεδίο 7 χαρακτήρων Όνομα ΟΝ. Φ. Πίνακας «Φοιτητής» Πεδίο Πεδίο 25 χαρακτήρων Κωδικός Κ.Μ. Πίνακας «Μάθημα» Πεδίο Πεδίο 10 ψηφίων Ημερ/νία ΗΜ.ΕΞ. Πίνακας «Βαθμολογία» Πεδίο Πεδίο ημερομηνίας εξέτασης (ΗΗ/ΜΜ/ΕΕΕΕ) Βαθμός ΒΑΘΜ. Πίνακας «Βαθμολογία» Πεδίο Αριθμητικό πεδίο
Συνοψίζοντας... Προσέγγιση «δοµηµένης ανάλυσης» και µέσα καταγραφής απαιτήσεων από το λογισµικό «Έγγραφο προδιαγραφών των απαιτήσεων» και Διαγράµµατα «ροής δεδοµένων», «οντοτήτωνσυσχετίσεων», «µετάβασης καταστάσεων» και «λεξικό δεδοµένων» - Συμπληρωματικά! Χρήσιµα µέσα, σε συνδυασµό µε τα κατάλληλα εργαλεία ανάπτυξης λογισµικού, µπορούν να βοηθήσουν τον κατασκευαστή να περιγράψει ικανοποιητικά το λογισµικό που κατασκευάζει ΑΚΟΜΗ όμως πολλά προβλήµατα - προβλήµατα επικοινωνίας, προτύπων, γλώσσας, αλλά και οικονοµικά.
Πηγές, Acknowledgement Β. Βεσκούκης «Τεχνολογία Λογισμικού Ι», ΕΑΠ, ΠΑΤΡΑ, 2000 ΙΕΕΕ Guide to Software Requirements Specification, ANSI/IEEE, Std 830-1993, 1984 S. L. Pfleeger, «Τεχνολογία Λογισμικού Θεωρία και πράξη», 2η έκδοση (μετάφραση, εκδ. Κλειδάριθμος)