Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό Πρόγραμμα «Εκπαίδευση και Διά Βίου Μάθηση» (ΕΠΕΔΒΜ) του ΕΣΠΑ (2007-2013), Άξονας Προτεραιότητας 7: «Ενίσχυση της Διά Βίου Εκπαίδευσης Ενηλίκων στις 8 Περιφέρειες Σύγκλισης» με κωδικό MIS 296121 και η οποία συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο - ΕΚΤ) και από εθνικούς πόρους, μέσω του Προγράμματος Δημοσίων Επενδύσεων (ΠΔΕ) του Υ.ΠΑΙ.Θ. Τεχνολογία Λογισμικού Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστημονική αρτιότητα και πληρότητα των συγγραμμάτων την αποκλειστική ευθύνη φέρουν οι συγγραφείς, κριτικοί αναγνώστες και ακαδη μα ϊ κοί υπεύθυνοι που ανέλαβαν το έργο αυτό.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστημών και Τεχνολογίας Πρόγραμμα Σπουδών ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΞΕΙΔΙΚΕΥΣΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Θεματική Ενότητα ΒΑΣΙΚΕΣ ΕΞΕΙΔΙΚΕΥΣΕΙΣ ΣΕ ΘΕΩΡΙΑ ΚΑΙ ΛΟΓΙΣΜΙΚΟ Τόμος Γ Τεχνολογία Λογισμικού Συγγραφή ΓΕΩΡΓΙΟΣ ΜΑΥΡΟΜΜΑΤΗΣ Διδάκτωρ Πανεπιστημίου Πειραιώς ΦΩΤΙΟΣ ΛΑΖΑΡΙΝΗΣ Διδάκτωρ Πανεπιστημίων Sunderland και Teesside Κριτική Ανάγνωση ΒΑΣΙΛΕΙΟΣ ΒΕΡΥΚΙΟΣ Αναπληρωτής Καθηγητής Ελληνικού Ανοικτού Πανεπιστημίου Ακαδημαϊκός Υπεύθυνος για την ανάπτυξη του έντυπου διδακτικού υλικού του ΠΣ ΒΑΣΙΛΕΙΟΣ ΒΕΡΥΚΙΟΣ Αναπληρωτής Καθηγητής Ελληνικού Ανοικτού Πανεπιστημίου Συντονιστής για την ανάπτυξη του έντυπου διδακτικού υλικού της ΘΕ ΜΙΧΑΗΛ ΒΑΣΙΛΑΚΟΠΟΥΛΟΣ Αναπληρωτής Καθηγητής Πανεπιστημίου Θεσσαλίας Ειδικός στη Μεθοδολογία της Ανοικτής και εξ Αποστάσεως Εκπαίδευσης ΑΔΑΜΑΝΤΙΑ ΣΠΑΝΑΚΑ Γλωσσική Επιμέλεια ΕΥΑΓΓΕΛΙΑ-ΕΛΙΣΑΒΕΤ ΒΟΥΤΣΙΝΟΥ Τεχνική Επιμέλεια Καλλιτεχνική Επιμέλεια Σελιδοποίηση opusmagnum ISBN: 978-960-538-977-2 Κωδικός Έκδοσης: ΠΛΣ 50/Γ Copyright 2015 για την Ελλάδα και όλο τον κόσμο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πάροδος Αριστοτέλους 18, 26335 Περιβόλα Πατρών Τηλ.: 2610 367300, Φαξ: 2610 367650 To παρόν έργο πνευματικής ιδιοκτησίας προστατεύεται κατά τις διατάξεις του Ελληνικού Νόμου (Ν. 2121/1993 όπως έχει τροποποιηθεί και ισχύει σήμερα) και τις διεθνείς συμβάσεις περί πνευματικής ιδιοκτησίας. Απαγορεύεται απολύτως η άνευ γραπτής αδείας του εκδότη, κατά οποιονδήποτε τρόπο ή μέσο, αντιγραφή, φωτοανατύπωση και εν γένει αναπαραγωγή, εκμίσθωση ή δανεισμός, μετάφραση, διασκευή, αναμετάδοση στο κοινό σε οποιαδήποτε μορφή (ηλεκτρονική, μηχανική κ.λπ.) και η εν γένει εκμετάλλευση του συνόλου ή μέρους του έργου.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστημών και Τεχνολογίας Πρόγραμμα Σπουδών ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΞΕΙΔΙΚΕΥΣΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Θεματική Ενότητα ΒΑΣΙΚΕΣ ΕΞΕΙΔΙΚΕΥΣΕΙΣ ΣΕ ΘΕΩΡΙΑ ΚΑΙ ΛΟΓΙΣΜΙΚΟ Τόμος Γ Τεχνολογία Λογισμικού ΓΕΩΡΓΙΟΣ ΜΑΥΡΟΜΜΑΤΗΣ Διδάκτωρ Πανεπιστημίου Πειραιώς ΦΩΤΙΟΣ ΛΑΖΑΡΙΝΗΣ Διδάκτωρ Πανεπιστημίων Sunderland και Teesside ΠΑΤΡΑ 2015
Βιογραφικά Ο Γεώργιος Μαυρομμάτης είναι μέλος του επιστημονικού προσωπικού στο Εθνικό Κέντρο Δημόσιας Διοίκησης και Αυτοδιοίκησης. Είναι κάτοχος πτυχίου Μαθηματικών (1984) του Πανεπιστημίου Αθηνών και Διδακτορικού Διπλώματος (2002) του Τμήματος Πληροφορικής του Πανεπιστημίου Πειραιώς. Στα επιστημονικά του ενδιαφέροντα περιλαμβάνονται αλγόριθμοι και γλώσσες προγραμματισμού, τεχνολογία λογισμικού, εκπαιδευτική τεχνολογία, ανάκτηση πληροφορίας, ηλεκτρονική διακυβέρνηση, επιχειρησιακή έρευνα. Ο Φώτιος Λαζαρίνης είναι επιστημονικός συνεργάτης της ομάδας Ευφυών Πληροφοριακών Συστημάτων του Ελληνικού Ανοικτού Πανεπιστημίου. Είναι κάτοχος πτυχίου Πληροφορικής (1995) του Πανεπιστημίου Αθηνών και κάτοχος MSc (1997) από το τμήμα Πληροφορικής του Πανεπιστήμιου Γλασκόβης. Επίσης, είναι κάτοχος Διδακτορικού Διπλώματος Πληροφορικής του Πανεπιστημίου Sunderland (2007) και Διδακτορικού Διπλώματος με έμφαση στα Εκπαιδευτικά Πληροφοριακά Συστήματα του Πανεπιστημίου Teesside (2010). Είναι συγγραφέας 22 βιβλίων Πληροφορικής και έχει περισσότερες από 60 δημοσιεύσεις και ανακοινώσεις σε διεθνή επιστημονικά περιοδικά και συνέδρια. Στα επιστημονικά του ενδιαφέροντα περιλαμβάνονται τα εκπαιδευτικά πληροφοριακά συστήματα, η ανάκτηση πληροφοριών και ο διαμοιρασμός πληροφοριών μέσω XML προτύπων.
Περιεχόμενα ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην Τεχνολογία Λογισμικού Γ. Μαυρομμάτης Εισαγωγικές Παρατηρήσεις...19 1.1 Η γέννηση της Τεχνολογίας Λογισμικού...21 1.2 Το λογισμικό σήμερα...25 1.3 Συντελεστές και δραστηριότητες στην ανάπτυξη λογισμικού...34 1.3.1 Συντελεστές στην ανάπτυξη λογισμικού...34 1.3.2 Δραστηριότητες ΤΛ...38 Σύνοψη...44 Λίστα Ελέγχου Γνώσεων...44 Ευρετήριο Όρων...45 Γλωσσάρι...46 Βιβλιογραφία...48 Οδηγός για Περαιτέρω Μελέτη...50 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...52 Απαντήσεις Δραστηριοτήτων...55 Κατάλογος εικόνων...65 ΚΕΦΑΛΑΙΟ 2 Μακροσκοπική προσέγγιση μοντέλων ΤΛ Γ. Μαυρομμάτης Εισαγωγικές Παρατηρήσεις...67 2.1 Ο κύκλος ζωής του λογισμικού...69 2.2 Ο Καταρράκτης...70
8 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ 2.2.1 Παράλληλη ανάπτυξη...73 2.2.2 V-model...74 2.3 Επαναληπτικά και επαυξητικά μοντέλα...76 2.3.1 Σπειροειδές μοντέλο ανάπτυξης...77 2.3.2 Πρωτότυπα...77 2.3.3 Ταχεία ανάπτυξη λογισμικού...78 2.4 Ευέλικτες μέθοδοι...80 2.4.1 Ακραίος προγραμματισμός...81 2.4.2 Scrum...85 Σύνοψη...91 Λίστα Ελέγχου Γνώσεων...93 Ευρετήριο Όρων...94 Γλωσσάρι...96 Βιβλιογραφία...98 Οδηγός για Περαιτέρω Μελέτη...100 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...101 Απαντήσεις Δραστηριοτήτων...103 Κατάλογος εικόνων...112 ΚΕΦΑΛΑΙΟ 3 Δομημένη ανάλυση Γ. Μαυρομμάτης Εισαγωγικές Παρατηρήσεις...113 3.1 Μηχανική απαιτήσεων...115 3.1.1 Εντοπισμός απαιτήσεων...119 3.1.2 Προδιαγραφή απαιτήσεων...122 3.2 Διάγραμμα ροής δεδομένων...131
ΠΕΡΙΕΧΟΜΕΝΑ 9 3.2.1 Μια γενική μεθοδολογία ανάπτυξης ΔΡΔ...134 3.2.2 Καλές πρακτικές σύνταξης ΔΡΔ...137 3.3 Διάγραμμα οντοτήτων-συσχετίσεων...143 3.4 Το λεξικό δεδομένων...148 3.5 Διάγραμμα μετάβασης καταστάσεων...152 3.6 Εκτίμηση μεγέθους λογισμικού...155 3.6.1 Εντοπισμός των συστατικών/λειτουργιών που θα μετρηθούν...156 3.6.2 Υπολογισμός πολυπλοκότητας των συστατικών/λειτουργιών...158 3.6.3 Υπολογισμός λειτουργικών σημείων...160 3.6.4 Λειτουργικά σημεία και το μοντέλο COCOMO...162 Σύνοψη...164 Λίστα Ελέγχου Γνώσεων...164 Ευρετήριο Όρων...165 Γλωσσάρι...166 Βιβλιογραφία...168 Οδηγός για Περαιτέρω Μελέτη...169 Απαντήσεις σε Ασκήσεις Αυτοαξιολόγησης...170 Απαντήσεις Δραστηριοτήτων...175 Κατάλογος εικόνων...177 Κατάλογος πινάκων...178 ΚΕΦΑΛΑΙΟ 4 Δομημένη σχεδίαση Γ. Μαυρομμάτης Εισαγωγικές Παρατηρήσεις...179
10 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ 4.1 Αρχιτεκτονική συστήματος...181 4.1.1 Συστατικά αρχιτεκτονικής συστήματος...183 4.1.2 Αρχιτεκτονικά πρότυπα...185 4.1.3 Επιλέγοντας πρότυπο...191 4.2 Σχεδίαση προγράμματος...195 4.2.1 Κριτήρια καλού σχεδιασμού μονάδων...197 4.2.2 Μια μέθοδος δημιουργίας διαγραμμάτων δομής προγράμματος...198 4.3 Σχεδίαση διεπαφών...205 Σύνοψη...209 Λίστα Ελέγχου Γνώσεων...209 Ευρετήριο Όρων...210 Γλωσσάρι...212 Βιβλιογραφία...213 Οδηγός για Περαιτέρω Μελέτη...214 Απαντήσεις σε Aσκήσεις Aυτοαξιολόγησης...215 Απαντήσεις Δραστηριοτήτων...217 Κατάλογος εικόνων...227 ΚΕΦΑΛΑΙΟ 5 Εισαγωγή στην αντικειμενοστρεφή ανάπτυξη λογισμικού και την ενοποιημένη γλώσσα μοντελοποίησης Φ. Λαζαρίνης Εισαγωγικές Παρατηρήσεις...229 5.1 Εισαγωγή...231 5.1.1 Κριτική θεώρηση των δομημένων μεθοδολογιών ανάλυσης και σχεδιασμού...231
ΠΕΡΙΕΧΟΜΕΝΑ 11 5.1.2 Αντικειμενοστρεφής προσέγγιση στην ανάπτυξη λογισμικού...232 5.2 Τι είναι η UML;...234 5.2.1 Εξέλιξη της UML...234 5.2.2 Αρχιτεκτονική λογισμικού και ο ρόλος της UML...236 5.2.3 Διαγράμματα της UML...236 5.3 Αντικειμενοστρεφής ανάλυση και σχεδίαση...258 5.3.1 Βασικά χαρακτηριστικά αντικειμενοστρεφών μεθοδολογιών...258 5.3.2 Ενοποιημένη προσέγγιση (Unified Process)...260 Σύνοψη...265 Λίστα Ελέγχου Γνώσεων...266 Ευρετήριο Όρων...267 Γλωσσάρι...269 Βιβλιογραφία...271 Οδηγός για Περαιτέρω Μελέτη...273 Απαντήσεις σε Aσκήσεις Aυτοαξιολόγησης...274 Απαντήσεις Δραστηριοτήτων...277 Κατάλογος εικόνων...282 ΚΕΦΑΛΑΙΟ 6 Μοντελοποίηση λειτουργικών απαιτήσεων με περιπτώσεις χρήσης Φ. Λαζαρίνης Εισαγωγικές Παρατηρήσεις...283 6.1 Σημασία της καταγραφής των απαιτήσεων...285 6.2 Τι είναι οι περιπτώσεις χρήσης;...288
12 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ 6.3 Διαγράμματα περιπτώσεων χρήσης...291 6.3.1 Χειριστές...291 6.3.2 Περίπτωση χρήσης...293 6.3.3 Συσχέτιση χειριστών και περιπτώσεων χρήσης...294 6.3.4 Εργαλείο CASE Visual Paradigm...295 6.3.5 Γενίκευση χειριστών...299 6.3.6 Γενίκευση περιπτώσεων χρήσης...301 6.3.7 Σχέση συμπερίληψης στις περιπτώσεις χρήσης...302 6.3.8 Σχέση επέκτασης στις περιπτώσεις χρήσης...304 6.4 Περιγραφή περιπτώσεων χρήσης...311 6.4.1 Τι περιλαμβάνει η περιγραφή μιας περίπτωσης χρήσης...311 6.4.2 Παρατηρήσεις και οδηγίες για τη δημιουργία των περιγραφών περιπτώσεων χρήσης...321 6.5 Περιπτώσεις χρήσης και απαιτήσεις: ιχνηλασιμότητα...324 6.6 Εύρεση χειριστών και περιπτώσεων χρήσης μέσα από την περιγραφή του προβλήματος...326 6.6.1 Ανακαλύπτοντας τους χειριστές...326 6.6.2 Ανακαλύπτοντας τις περιπτώσεις χρήσης...327 6.7 Μη λειτουργικές απαιτήσεις...334 Σύνοψη...336 Λίστα Ελέγχου Γνώσεων...337 Ευρετήριο Όρων...338 Γλωσσάρι...339 Βιβλιογραφία...340 Οδηγός για Περαιτέρω Μελέτη...341 Απαντήσεις σε Aσκήσεις Aυτοαξιολόγησης...342
ΠΕΡΙΕΧΟΜΕΝΑ 13 Απαντήσεις Δραστηριοτήτων...345 Κατάλογος εικόνων...356 Κατάλογος πινάκων...357 ΚΕΦΑΛΑΙΟ 7 Μοντελοποίηση στατικής δομής με διαγράμματα κλάσεων Φ. Λαζαρίνης Εισαγωγικές Παρατηρήσεις...359 7.1 Εισαγωγή...361 7.2 Δομικά στοιχεία των διαγραμμάτων κλάσεων...363 7.2.1 Κλάση...363 7.2.2 Παραμετρική κλάση...370 7.2.3 Συσχέτιση κλάσεων...372 7.2.4 Κλάση συσχέτισης...378 7.2.5 Αυτοσυσχέτιση...382 7.2.6 Σχέση εξάρτησης κλάσεων...384 7.2.7 Σχέση γενίκευσης κλάσεων...385 7.2.8 Διασυνδέσεις...389 7.2.9 Σχέση συνάθροισης κλάσεων...391 7.2.10 Σχέση σύνθεσης κλάσεων...393 7.2.11 Αντίστροφη μηχανική...394 7.3 Εύρεση κλάσεων για τη δημιουργία του διαγράμματος κλάσεων...397 7.3.1 Τι είναι οι κλάσεις ανάλυσης και κλάσεις σχεδίασης;...397 7.3.2 Πώς εντοπίζουμε τις κλάσεις ανάλυσης;...400 7.3.3 Κάρτες CRC...404
14 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ 7.3.4 Κλάσεις σχεδίασης...406 Σύνοψη...410 Λίστα Ελέγχου Γνώσεων...410 Ευρετήριο Όρων...411 Γλωσσάρι...413 Βιβλιογραφία...414 Οδηγός για Περαιτέρω Μελέτη...415 Απαντήσεις σε Aσκήσεις Aυτοαξιολόγησης...416 Απαντήσεις Δραστηριοτήτων...420 Κατάλογος εικόνων...426 ΚΕΦΑΛΑΙΟ 8 Επίλογος τόμου και εξελίξεις στην Τεχνολογία Λογισμικού Φ. Λαζαρίνης Εισαγωγικές Παρατηρήσεις...429 8.1 Ανακεφαλαίωση...431 8.2 Επιλογή μεθοδολογίας...435 8.3 Τάσεις και εξελίξεις στο χώρο της τεχνολογίας λογισμικού...438 8.3.1 Ανάπτυξη λογισμικού προσανατολισμένη στις όψεις...438 8.3.2 Μηχανική οδηγούμενη από μοντέλα...438 8.3.3 Τεχνολογία λογισμικού συστατικών στοιχείων...439 8.3.4 Υπηρεσιοστρεφής αρχιτεκτονική...440 8.3.5 Συστήματα πολλαπλών πρακτόρων...440 8.3.6 Μηχανική ιστού...440 8.3.7 Διάχυτη υπολογιστική...441 8.3.8 Υπολογιστικό νέφος...441
ΠΕΡΙΕΧΟΜΕΝΑ 15 Σύνοψη...443 Λίστα Ελέγχου Γνώσεων...443 Ευρετήριο Όρων...444 Γλωσσάρι...445 Βιβλιογραφία...446 Απαντήσεις σε Aσκήσεις Aυτοαξιολόγησης...448 Απαντήσεις Δραστηριοτήτων...450