Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό Πρόγραμμα «Εκπαίδευση και Διά Βίου Μάθηση» (ΕΠΕΔΒΜ) του ΕΣΠΑ (2007-2013), Άξονας Προτεραιότητας 7: «Ενίσχυση της Διά Βίου Εκπαίδευσης Ενηλίκων στις 8 Περιφέρειες Σύγκλισης» με κωδικό MIS 296121 και η οποία συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο - ΕΚΤ) και από εθνικούς πόρους, μέσω του Προγράμματος Δημοσίων Επενδύσεων (ΠΔΕ) του Υ.ΠΑΙ.Θ. Σχεδίαση Λογισμικού Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστημονική αρτιότητα και πληρότητα των συγγραμμάτων την αποκλειστική ευθύνη φέρουν οι συγγραφείς, κριτικοί αναγνώστες και ακαδη μα ϊ κοί υπεύθυνοι που ανέλαβαν το έργο αυτό.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστημών και Τεχνολογίας Πρόγραμμα Σπουδών ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΞΕΙΔΙΚΕΥΣΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Θεματική Ενότητα ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΛΟΓΙΣΜΙΚΟΥ Τόμος A Σχεδίαση Λογισμικού Συγγραφή ΕΥΘΥΜΙΟΣ ΤΑΜΠΟΥΡΗΣ Αναπληρωτής Καθηγητής Πανεπιστημίου Μακεδονίας ΑΛΕΞΑΝΔΡΟΣ ΧΑΤΖΗΓΕΩΡΓΙΟΥ Αναπληρωτής Καθηγητής Πανεπιστημίου Μακεδονίας Κριτική Ανάγνωση ΒΑΣΙΛΕΙΟΣ ΒΕΡΥΚΙΟΣ Αναπληρωτής Καθηγητής Ελληνικού Ανοικτού Πανεπιστημίου ΔΗΜΗΤΡΙΟΣ ΚΑΛΛΕΣ Επίκουρος Καθηγητής Ελληνικού Ανοικτού Πανεπιστημίου Ακαδημαϊκός Υπεύθυνος για την ανάπτυξη του έντυπου διδακτικού υλικού του Π.Σ. ΒΑΣΙΛΕΙΟΣ ΒΕΡΥΚΙΟΣ Αναπληρωτής Καθηγητής Ελληνικού Ανοικτού Πανεπιστημίου Συντονιστής για την ανάπτυξη του έντυπου διδακτικού υλικού της Θ.Ε. ΒΑΣΙΛΕΙΟΣ ΒΕΡΥΚΙΟΣ Αναπληρωτής Καθηγητής Ελληνικού Ανοικτού Πανεπιστημίου Ειδικός στη Μεθοδολογία της Ανοικτής και εξ Αποστάσεως Εκπαίδευσης ΑΔΑΜΑΝΤΙΑ ΣΠΑΝΑΚΑ Γλωσσική Επιμέλεια ΣΟΦΙΑ ΑΛΕΞΑΚΗ Τεχνική Επιμέλεια Καλλιτεχνική Επιμέλεια Σελιδοποίηση opusmagnum ISBN: 978-960-538-980-2 Κωδικός Έκδοσης: ΠΛΣ 61/A Copyright 2015 για την Ελλάδα και όλο τον κόσμο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πάροδος Αριστοτέλους 18, 26335 Περιβόλα Πατρών Τηλ.: 2610 367300, Φαξ: 2610 367650 To παρόν έργο πνευματικής ιδιοκτησίας προστατεύεται κατά τις διατάξεις του Ελληνικού Νόμου (Ν. 2121/1993 όπως έχει τροποποιηθεί και ισχύει σήμερα) και τις διεθνείς συμβάσεις περί πνευματικής ιδιοκτησίας. Απαγορεύεται απολύτως η άνευ γραπτής αδείας του εκδότη, κατά οποιονδήποτε τρόπο ή μέσο, αντιγραφή, φωτοανατύπωση και εν γένει αναπαραγωγή, εκμίσθωση ή δανεισμός, μετάφραση, διασκευή, αναμετάδοση στο κοινό σε οποιαδήποτε μορφή (ηλεκτρονική, μηχανική κ.λπ.) και η εν γένει εκμετάλλευση του συνόλου ή μέρους του έργου.
Βιογραφικά Ο Ευθύμιος Ταμπούρης είναι Αναπληρωτής Καθηγητής στο Τμήμα Εφαρμοσμένης Πληροφορικής του Πανεπιστημίου Μακεδονίας με ειδίκευση στα Πληροφοριακά Συστήματα και στην Ηλεκτρονική Διακυβέρνηση. Στο παρελθόν είχε εργαστεί στον ιδιωτικό τομέα και στα ερευνητικά κέντρα ΕΚΕΦΕ Δημόκριτος και ΕΚΕΤΑ. Είναι κάτοχος διπλώματος Ηλεκτρολόγου Μηχανικού από το ΕΜΠ, καθώς και μεταπτυχιακού και διδακτορικού διπλώματος από το Πανεπιστήμιο Brunel. Έχει συντονίσει και/ή συμμετάσχει σε πλήθος ανταγωνιστικών, ευρωπαϊκών ερευνητικών έργων. Η έρευνά του εστιάζεται στην ηλεκτρονική διακυβέρνηση, την ηλεκτρονική συμμετοχή και την ηλεκτρονική μάθηση, με έμφαση στη χρήση νέων τεχνολογιών και πληροφοριακών συστημάτων. Είναι συγγραφέας περισσότερων από 150 δημοσιεύσεων σε επιστημονικά περιοδικά και συνέδρια. Ο Αλέξανδρος Χατζηγεωργίου είναι Αναπληρωτής Καθηγητής στο Τμήμα Εφαρμοσμένης Πληροφορικής του Πανεπιστημίου Μακεδονίας, όπου εργάζεται από το 2002, με ειδίκευση στην Τεχνολογία Λογισμικού. Είναι κάτοχος πτυχίου (1996) του Τμήματος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών και διδακτορικού διπλώματος (2000) του Τμήματος Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. Τα ερευνητικά του ενδιαφέροντα εστιάζονται στη συντήρηση λογισμικού, στην αντικειμενοστρεφή σχεδίαση και στην ανάλυση της εξέλιξης έργων λογισμικού. Είναι συγγραφέας τριών διδακτικών συγγραμμάτων και 95 δημοσιεύσεων σε διεθνή επιστημονικά περιοδικά και συνέδρια στα παραπάνω ερευνητικά πεδία, ενώ το έργο του έχει λάβει 1500 αναφορές. Το 2010 συμπεριελήφθη σε λίστα του περιοδικού Journal of Systems and Software με τους 15 κορυφαίους ερευνητές στο χώρο των συστημάτων και τεχνολογίας λογισμικού.
Στις οικογένειές μας
Περιεχόμενα Πρόλογος... 17 ΚΕΦΑΛΑΙΟ 1 Η Ενοποιημένη Γλώσσα Μοντελοποίησης (Unified Modeling Language UML) Ευθ. Ταμπούρης Αλ. Χατζηγεωργίου Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...21 1.1 Εισαγωγή στη UML...24 1.2 Διαγράμματα περιπτώσεων χρήσης...27 1.3 Διαγράμματα δραστηριοτήτων...31 1.3.1 Βασικά σύμβολα...31 1.3.2 Αρχή, λήξη, ενέργεια, ροή ελέγχου και διάδρομοι...32 1.3.3 Απόφαση και διακλάδωση...35 1.3.4 Κόμβοι και ροές αντικειμένων...40 1.4 Διαγράμματα κλάσεων...44 1.5 Διαγράμματα αντικειμένων...46 1.6 Διαγράμματα πακέτων...50 1.7 Διαγράμματα ακολουθίας...54 1.7.1 Εισαγωγή...54 1.7.2 Βασικά σύμβολα...54 1.7.3 Απεικόνιση αλληλεπίδρασης αντικειμένων...56 1.7.4 Αποστολή μηνυμάτων υπό συνθήκη...59 1.7.5 Επαναληπτική αποστολή μηνυμάτων...61 1.8 Διαγράμματα μηχανών καταστάσεων...64 1.9 Διαγράμματα παράταξης...67
10 ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ 1.10 Λογισμικό δημιουργίας διαγραμμάτων UML...69 Σύνοψη...72 Λίστα Ελέγχου Γνώσεων...73 Ευρετήριο Όρων...74 Γλωσσάρι...75 Βιβλιογραφία...77 Οδηγός για Περαιτέρω Μελέτη...78 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...80 Απαντήσεις Δραστηριοτήτων...83 Κατάλογος σχημάτων...90 Κατάλογος πινάκων...91 ΚΕΦΑΛΑΙΟ 2 Οργανισμοί και πληροφοριακά συστήματα Ευθ. Ταμπούρης Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...93 2.1 Οργανισμοί και επιχειρήσεις...95 2.2 Τι είναι τα πληροφοριακά συστήματα...96 2.3 Είδη πληροφοριακών συστημάτων...99 2.4 Στρατηγική και πληροφοριακά συστήματα...102 2.5 Επιχειρησιακές αρχιτεκτονικές...106 2.6 Εντοπισμός ευκαιριών για πληροφοριακά συστήματα...109 2.7 Επιχειρηματικές διαδικασίες...112 2.8 Ανάλυση επιχειρήσεων μέσω επιχειρηματικών διαδικασιών...114 2.9 Ανάλυση επιχειρηματικών διαδικασιών μέσω μοντελοποίησης...117 2.9.1 Διαγράμματα επιχειρηματικών περιπτώσεων χρήσης...117 2.9.2 ΒΡΜΝ...120
ΠΕΡΙΕΧΟΜΕΝΑ 11 2.10 Αυτοματισμός, βελτίωση και ριζικός ανασχεδιασμός διαδικασιών...124 Σύνοψη...126 Λίστα Ελέγχου Γνώσεων...127 Ευρετήριο Όρων...128 Γλωσσάρι...129 Βιβλιογραφία...130 Οδηγός για Περαιτέρω Μελέτη...131 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...133 Απαντήσεις Δραστηριοτήτων...136 Κατάλογος σχημάτων...139 Κατάλογος πινάκων...139 ΚΕΦΑΛΑΙΟ 3 Μέθοδος ανάπτυξης λογισμικού Ευθ. Ταμπούρης Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...141 3.1 Μοντέλα ανάπτυξης λογισμικού...144 3.2 Ένα γενικό μοντέλο ανάπτυξης λογισμικού...147 3.3 Παρουσίαση και χρήση του μοντέλου...151 3.4 Εφαρμογή μοντέλου...152 3.4.1 Σενάριο...152 3.4.2 Φάση προετοιμασίας...155 3.4.3 Ανάλυση απαιτήσεων...157 3.4.4 Σχεδίαση λογισμικού...170 3.4.5 Υλοποίηση...179 Σύνοψη...180
12 ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Λίστα Ελέγχου Γνώσεων...181 Βιβλιογραφία...182 Οδηγός για Περαιτέρω Μελέτη...183 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...185 Απαντήσεις Δραστηριοτήτων...187 Κατάλογος σχημάτων...188 ΚΕΦΑΛΑΙΟ 4 Προετοιμασία και ανάλυση απαιτήσεων Ευθ. Ταμπούρης Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...189 4.1 Φάση προετοιμασίας...192 4.2 Πρόταση εισαγωγής νέου πληροφοριακού συστήματος...193 4.3 Μελέτη σκοπιμότητας...198 4.4 Εκκίνηση και διαχείριση έργων...201 4.5 Φάση ανάλυσης απαιτήσεων...202 4.6 Μοντελοποίηση επιχειρηματικών διαδικασιών...203 4.7 Λειτουργικές και μη λειτουργικές απαιτήσεις...209 4.8 Λειτουργικότητα συστήματος Διαγράμματα περιπτώσεων χρήσης...217 4.9 Λεκτικές περιγραφές περιπτώσεων χρήσης...221 4.10 Πρακτικές συμβουλές για τη δημιουργία διαγραμμάτων περιπτώσεων χρήσης...225 4.11 Χρήση οθονών...231 4.12 Αποτύπωση δομής λογισμικού...236 4.13 Άλλες τεχνικές μοντελοποίησης...247 Σύνοψη...248
ΠΕΡΙΕΧΟΜΕΝΑ 13 Λίστα Ελέγχου Γνώσεων...249 Ευρετήριο Όρων...250 Γλωσσάρι...251 Βιβλιογραφία...252 Οδηγός για Περαιτέρω Μελέτη...254 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...256 Απαντήσεις Δραστηριοτήτων...261 Κατάλογος σχημάτων...276 ΚΕΦΑΛΑΙΟ 5 Σχεδίαση λογισμικού Αλ. Χατζηγεωργίου Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...277 5.1 Η διαδικασία της σχεδίασης...281 5.2 Ανάλυση ευρωστίας...287 5.3 Κατανομή λειτουργικότητας...296 5.4 Εφικτότητα σχεδίασης...308 Σύνοψη...315 Λίστα Ελέγχου Γνώσεων...316 Ευρετήριο Όρων...317 Γλωσσάρι...318 Βιβλιογραφία...319 Οδηγός για Περαιτέρω Μελέτη...321 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...322 Απαντήσεις Δραστηριοτήτων...327 Κατάλογος σχημάτων...330 Κατάλογος πινάκων...330
14 ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ ΚΕΦΑΛΑΙΟ 6 Αρχές σχεδίασης Αλ. Χατζηγεωργίου Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...331 6.1 Ποιότητα σχεδίασης λογισμικού...335 6.2 Ιχνηλάτηση απαιτήσεων...338 6.3 Αρχές σχεδίασης κλάσεων...342 6.4 Αρχές σχεδίασης αρχιτεκτονικής...348 6.5 Αρχές σχεδίασης ιεραρχιών κληρονομικότητας...352 6.5.1 Αρχή της Υποκατάστασης...355 6.5.2 Πολυμορφισμός...357 6.5.3 Αρχή της Ανοικτής-Κλειστής Σχεδίασης...361 6.5.4 Αρχή της Αντιστροφής των Εξαρτήσεων...377 Σύνοψη...385 Λίστα Ελέγχου Γνώσεων...386 Ευρετήριο Όρων...387 Γλωσσάρι...388 Βιβλιογραφία...390 Οδηγός για Περαιτέρω Μελέτη...392 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...393 Απαντήσεις Δραστηριοτήτων...396 Κατάλογος σχημάτων...405 Κατάλογος πινάκων...406
ΠΕΡΙΕΧΟΜΕΝΑ 15 ΚΕΦΑΛΑΙΟ 7 Υλοποίηση λογισμικού Αλ. Χατζηγεωργίου Σκοπός, Προσδοκώμενα Αποτελέσματα, Έννοιες-Κλειδιά, Εισαγωγικές Παρατηρήσεις...407 7.1 Τεκμηρίωση και μορφοποίηση κώδικα...411 7.2 Μετατροπή σχεδίασης σε πηγαίο κώδικα...417 7.3 Συνεργατική ανάπτυξη λογισμικού...422 7.4 Έλεγχος λογισμικού...430 7.4.1 Έλεγχος μονάδων...432 7.4.2 Επισκοπήσεις...442 Σύνοψη...446 Λίστα Ελέγχου Γνώσεων...447 Ευρετήριο Όρων...448 Γλωσσάρι...449 Βιβλιογραφία...451 Οδηγός για Περαιτέρω Μελέτη...452 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...453 Απαντήσεις Δραστηριοτήτων...455 Κατάλογος σχημάτων...462