<Company Name> <Όνομα - Κωδικό Όνομα Έργου>
Ιστορικό Ημερομηνία Έκδοση Περιγραφή Συγγραφέας <dd/mm/yy> <x.x> <προσθήκες/τροποποιήσεις/διαγραφές> <κωδ. όνομα> Σελ. 2
Πίνακας Περιεχομένων 1. Εισαγωγή xx 1.1 Σκοπός xx 1.2 Ορισμοί, Ακρωνύμια και Συντομογραφίες xx 1.3 Αναφορές xx 1.4 Επισκόπηση xx 2. Σχέδιο Δεδομένων xx 2.1 Βάσεις Δεδομένων xx 2.2 Αρχεία xx 2.3 Δομές Δεδομένων xx 3. Σχέδιο Μονάδων xx 4. Περιγραφή Διασυνδέσεων xx 5. Παραρτήματα xx 5. 1 Διαγράμματα Κλάσεων xx 5. 2 Πίνακας Ιχνηλάτισης xx 5. 3 Διαγράμματα Αναφορών και Οθονών xx 5. 4 Διαγράμματα Οντοτήτων - Συσχετίσεων xx Σελ. 3
1. Εισαγωγή 1.1 Σκοπός α) Ανάπτυξη σκοπού του συγκεκριμένου εγγράφου (Π.χ. Σκοπός του ΕΠΣΛ είναι ο καθορισμός της αρχιτεκτονικής σχεδίασης του λογισμικού <Περιγραφή του υπό ανάπτυξη έργου>, δηλαδή των μονάδων από τις οποίες αποτελείται και των μεταξύ τους σχέσεων ) β) Προσδιορισμός του κοινού στο οποίο απευθύνεται το έγγραφο (Π.χ. Το συγκεκριμένο ΕΠΣΛ απευθύνεται στην ομάδα ανάπτυξης της εταιρείας χχχ που θα πραγματοποιήσει την υλοποίηση, τον έλεγχο και τη συντήρηση του λογισμικού). 1.2 Ορισμοί, Ακρωνύμια και Συντομογραφίες Αναφορά όλων των όρων που θα χρησιμοποιηθούν στο έγγραφο (όσο το δυνατόν πιο περιορισμένα). 1.3 Αναφορές Λίστα εγγράφων/άρθρων/βιβλίων/πηγών από το διαδίκτυο που τυχόν αναφέρονται στο ΕΠΣΛ (παράθεση όπως σε καταγραφή βιβλιογραφίας). Σε κάθε περίπτωση περιλαμβάνεται το ΕΠΑΛ. 1.4 Επισκόπηση Περιγραφή των υπολοίπων κεφαλαίων του ΕΠΣΛ και σύντομη αναφορά στο περιεχόμενό τους. 2. Σχέδιο εδομένων 2.1 Βάσεις εδομένων Περιγραφή των βάσεων δεδομένων που πρόκειται να χρησιμοποιηθούν ή να δημιουργηθούν από το λογισμικό. Κατ' ελάχιστο θα πρέπει να γίνει αναφορά στους πίνακες της βάσης (ονόματα πεδίων, τύπος, μέγεθος κλπ). Διαγράμματα οντοτήτων-συσχετίσεων (ER) μπορούν να τοποθετηθούν ως παράρτημα σε αυτό το έγγραφο. 2.2 Αρχεία Περιγραφή των αρχείων που πρόκειται να χρησιμοποιηθούν ή να δημιουργηθούν από το λογισμικό. Περιγραφή της δομής των εγγραφών που πρόκειται να πραγματοποιούνται. 2.3 ομές εδομένων Περιγραφή των σημαντικότερων δομών δεδομένων του συστήματος. 3. Σχέδιο Μονάδων [Το τμήμα αυτό μαζί με το διάγραμμα κλάσεων είναι συνήθως το μεγαλύτερο και σημαντικότερο τμήμα του ΕΠΣΛ. Περιλαμβάνει όλες τις κλάσεις του συστήματος που έχουν εντοπιστεί στη φάση της σχεδίασης του λογισμικού και μία περιγραφή τους με όσο το δυνατόν μεγαλύτερη λεπτομέρεια. ΔΕΝ περιγράφονται κλάσεις βιβλιοθηκών που χρησιμοποιούνται]. 3.1 <Όνομα Κλάσης> Ταυτότητα Κλάσης: <Αναγνωριστικός αριθμός> Σελ. 4
Γενική περιγραφή της λειτουργικότητας της κλάσης, δηλαδή των υπηρεσιών που παρέχει προς τις υπόλοιπες κλάσεις του συστήματος καθώς και των κυριοτέρων δεδομένων που ενδεχομένως διατηρεί. Τυχόν ειδικά στοιχεία, π.χ. ύπαρξη αφαίρεσης, κληρονομικότητας, επιλογή κάποιων ιδιοτήτων ή μεθόδων ως στατικών, επιλογή προσδιοριστικού ορατότητας κάποιας μεθόδου ως ιδιωτικής, ύπαρξη εσωτερικών κλάσεων κλπ αναφέρονται και επεξηγούνται στο σημείο αυτό. Περιγραφή της λειτουργικότητας της μεθόδου, κάνοντας αναφορά στις παραμέτρους που λαμβάνει και ενδεχομένως στην επιστρεφόμενη τιμή. Με βάση αυτή την περιγραφή θα πρέπει κάποιος να είναι σε θέση να πραγματοποιήσει έλεγχο μονάδας (unit testing) και να ελέγξει την ορθότητα υλοποίησης της αντίστοιχης μεθόδου.... [Περιγράφονται ΜΟΝΟ οι κύριες μέθοδοι της κλάσης. Όχι για παράδειγμα μέθοδοι get/set] 4. Περιγραφή ιασυνδέσεων [Στο τμήμα αυτό περιγράφονται οι συνοριακές κλάσεις του συστήματος που έχουν ως στόχο την αλληλεπίδραση με το χρήστη (π.χ. φόρμες) ή την επικοινωνία με άλλα συστήματα. Σε περίπτωση που απαιτείται μπορούν να χρησιμοποιηθούν για την επεξήγηση διαγράμματα στο Παράρτημα]. 4.1 <Όνομα Κλάσης> Ταυτότητα Κλάσης: <Αναγνωριστικός αριθμός> Γενική περιγραφή της λειτουργικότητας της κλάσης. Στην περίπτωση κλάσεων αλληλεπίδρασης με το χρήστη αναφέρονται τα στοιχεία της αλληλεπίδρασης (π.χ. είσοδοι, μηνύματα κλπ) Τυχόν ειδικά στοιχεία, π.χ. επιλογή κάποιων ιδιοτήτων ή μεθόδων ως στατικών, επιλογή προσδιοριστικού ορατότητας κάποιας μεθόδου ως ιδιωτικής, ύπαρξη εσωτερικών κλάσεων κλπ αναφέρονται και επεξηγούνται στο σημείο αυτό. Περιγραφή της λειτουργικότητας της μεθόδου, κάνοντας αναφορά στις παραμέτρους που λαμβάνει και ενδεχομένως στην επιστρεφόμενη τιμή. Με βάση αυτή την περιγραφή θα πρέπει κάποιος να είναι σε θέση να πραγματοποιήσει έλεγχο μονάδας (unit testing) και να ελέγξει την ορθότητα υλοποίησης της αντίστοιχης μεθόδου.... [Περιγράφονται ΜΟΝΟ οι κύριες μέθοδοι της κλάσης. Όχι για παράδειγμα μέθοδοι get/set ή απλές μέθοδοι που αναλαμβάνουν να μεταφέρουν δεδομένα από κάποιο γραφικό συστατικό σε κάποια ιδιότητα ως απόκριση σε κάποιο συμβάν] 5. Παραρτήματα 5. 1 ιαγράμματα Κλάσεων Το διάγραμμα κλάσεων του συστήματος (ή πολλαπλά διαγράμματα σε περίπτωση πολλών πακέτων) σύμφωνα με την Ενοποιημένη Γλώσσα Μοντελοποίησης. Θα πρέπει να αντιστοιχεί όσο το δυνατόν περισσότερο στον κώδικα που πρόκειται να παραχθεί, χωρίς αυτό να σημαίνει ότι θα υπάρχει απόλυτη Σελ. 5
ταύτιση καθώς είναι δυνατό ορισμένες κλάσεις να απαλειφθούν, τροποποιηθούν ή προστεθούν. 5. 2 Πίνακας Ιχνηλάτισης Διδιάστατος πίνακας αντιστοίχισης μονάδων λογισμικού (κλάσεων του συστήματος) και λειτουργικών απαιτήσεων, όπως αυτές έχουν καταγραφεί υπό μορφή περιπτώσεων χρήσης στο ΕΠΑΛ. 5. 3 ιαγράμματα Αναφορών και Οθονών [Προαιρετικό]. Διαγράμματα (όχι screenshots από κώδικα) που ενδεχομένως συμβάλλουν στην κατανόηση της λειτουργικότητας κλάσεων και μεθόδων, ειδικά σε ότι αφορά τη γραφική διασύνδεση χρήστη. 5. 4 ιαγράμματα Οντοτήτων Συσχετίσεων [Προαιρετικό]. Διαγράμματα ER που ενδεχομένως συμβάλλουν στην κατανόηση της δομής των σχεσιακών βάσεων δεδομένων που χρησιμοποιούνται από το σύστημα. Σελ. 6