Tεχνολογία Λογισµικού II
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα ΣΧΕ ΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ Τόµος B' Tεχνολογία Λογισµικού II BAΣIΛEIOΣ BEΣKOYKHΣ ρ Hλεκτρολόγος Mηχανικός και Mηχανικός Yπολογιστών ΠATPA 2001
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα ΣΧΕ ΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ Τόµος B' Ψηφιακή Σχεδίαση II Συγγραφή BAΣIΛEIOΣ BEΣKOYKHΣ ρ Mηχανικός H/Y και Πληροφορικής Κριτική Ανάγνωση AXIΛΛEAΣ KAMEAΣ ρ Mηχανικός H/Y και Πληροφορικής Ακαδηµαϊκός Υπεύθυνος για την επιστηµονική επιµέλεια του τόµου ΣΩKPATHΣ KATΣIKAΣ Καθηγητής Tµήµατος Mαθηµατικών Πανεπιστηµίου Aιγαίου Επιµέλεια στη µέθοδο της εκπαίδευσης από απόσταση ΓEPAΣIMOΣ MΩPAΊTHΣ Γλωσσική Επιµέλεια BAΣIΛIKH HMHTPOΠOYΛOY Τεχνική Επιµέλεια ΕΣΠΙ ΕΚ ΟΤΙΚΗ Ε.Π.Ε. Καλλιτεχνική Επιµέλεια Σελιδοποίηση TYPORAMA Συντονισµός ανάπτυξης εκπαιδευτικού υλικού και γενική επιµέλεια των εκδόσεων ΟΜΑ Α ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ / 2001 ISBN: 960 538 292 x Kωδικός Έκδοσης: ΠΛH 24/2 Copyright 2000 για την Ελλάδα και όλο τον κόσµο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Οδός Παπαφλέσσα & Υψηλάντη, 26222 Πάτρα Τηλ: (061) 314094, 314206 Φαξ: (061) 317244 Σύµφωνα µε το Ν. 2121/1993, απαγορεύεται η συνολική ή αποσπασµατική αναδηµοσίευση του βιβλίου αυτού ή η αναπαραγωγή του µε οποιοδήποτε µέσο χωρίς την άδεια του εκδότη.
ÂÚÈ fiìâó K º π 1 TÔ ÔÁÈÛÌÈÎfi Û ÌÂÚ Eισαγωγικές παρατηρήσεις... 9 1.1 H πορεία της δοµηµένης ανάλυσης και σχεδίασης... 11 Σύνοψη ενότητας... 13 1.2 Xαρακτηριστικά του σύγχρονου λογισµικού... 13 Σύνοψη ενότητας... 15 1.3 Eξελίξεις και τάσεις στην ανάπτυξη του λογισµικού... 16 1.4 Πηγές πληροφοριών και εργαλεία Case για τον αναγνώστη του βιβλίου... 18 1.4.1 Σελίδες στο Internet... 18 1.4.2 Ένα χρήσιµο εργαλείο... 19 Σύνοψη κεφαλαίου... 20 K º π 2 EÈÛ ÁˆÁ ÛÙËÓ AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ T ÓÔÏÔÁ Eισαγωγικές παρατηρήσεις... 21 2.1 Aδυναµίες της δοµηµένης ανάλυσης και σχεδίασης... 23 2.2 Bασικές έννοιες της αντικειµενοστρεφούς τεχνολογίας... 25 2.2.1 Oρισµοί... 26 2.2.2 Σχέσεις µεταξύ κλάσεων... 31 Σύνοψη ενότητας... 38 2.3 Ένας άλλος τρόπος παράστασης του κόσµου... 38 Σύνοψη ενότητας... 42 2.4 Συµβολισµοί και πρότυπα... 42 Σύνοψη κεφαλαίου... 46 K º π 3 EÈÛ ÁˆÁ ÛÙËÓ AÓÙÈÎÂÌÂÓÔÛÙÚÂÊ AÓ Ï ÛË Eισαγωγικές παρατηρήσεις... 47
6 TEXNO O IA O I MIKOY II 3.1 Ένα γενικό πλαίσιο για αντικειµενοστρεφή ανάπτυξη λογισµικού... 49 Σύνοψη ενότητας... 52 3.2 H έννοια της Περίπτωσης Xρήσης... 53 3.2.1 Eισαγωγή... 53 3.2.2 Tι είναι «Περίπτωση Xρήσης»;... 54 3.2.3 Πώς προδιαγράφεται µια περίπτωση χρήσης;... 60 3.2.4 Ένα σηµείο αναφοράς... 65 Σύνοψη ενότητας... 67 3.3 Προσδιορισµός των λειτουργικών απαιτήσεων ως περιπτώσεων χρήσης... 68 Σύνοψη ενότητας... 70 3.4 Aπό τις περιπτώσεις χρήσης στο µοντέλο ανάλυσης... 78 3.4.1 Tο µοντέλο ανάλυσης... 78 3.4.2 Kλάσεις στο µοντέλο ανάλυσης... 80 3.4.3 Πακέτα ανάλυσης... 82 Σύνοψη ενότητας... 83 3.5 Bήµατα στην ανάλυση... 83 3.5.1 Aρχιτεκτονική ανάλυση... 85 3.5.2 Aνάλυση περιπτώσεων χρήσης... 90 3.5.3 Aνάλυση κλάσεων... 98 3.5.4 Aνάλυση πακέτων... 100 Σύνοψη ενότητας... 102 Σύνοψη κεφαλαίου... 102 K º π 4 EÚÁ ÏÂ Case Eισαγωγικές παρατηρήσεις... 105 4.1 Xαρακτηριστικά και πλαίσιο λειτουργίας... 107 Σύνοψη ενότητας... 111 4.2 Tαξινόµηση των εργαλείων Case... 112 4.2.1 Tαξινόµηση σύµφωνα µε τη λειτουργία... 112 4.2.2 Tαξινόµηση σύµφωνα µε την εµβέλεια... 118 4.3 Kριτήρια αξιολόγησης και επιλογής εργαλείων Case... 120 Σύνοψη κεφαλαίου... 123
EPIEXOMENA 7 K º π 5 ÈÔ ÎËÛË ËÌ ÙÈÛÌÒÓ ÔÁÈÛÌÈÎÔ Eισαγωγικές παρατηρήσεις... 125 5.1 Bασικές έννοιες... 127 5.1.1 H έννοια του σχηµατισµού λογισµικού... 127 5.1.2 H έννοια της βασικής γραµµής... 129 Σύνοψη ενότητας... 130 5.2 ιοίκηση σχηµατισµών Λογισµικού... 130 5.3 Eργασίες διοίκησης σχηµατισµών Λογισµικού... 133 5.3.1 Kαθορισµός σχηµατισµών... 133 5.3.2 Έλεγχος µεταβολών σχηµατισµών... 139 5.3.3 Έλεγχος Ποιότητας σχηµατισµών... 142 5.3.4 Έκθεση κατάστασης σχηµατισµών... 143 Σύνοψη ενοτήτων 5.2 και 5.3... 144 5.4 Eργαλεία διοίκησης σχηµατισµών Λογισµικού... 144 Σύνοψη κεφαλαίου... 146 K º π 6 È ÛÊ ÏÈÛË ÔÈfiÙËÙ ÔÁÈÛÌÈÎÔ Eισαγωγικές παρατηρήσεις... 147 6.1 Ποιότητα Λογισµικού... 149 Σύνοψη ενότητας... 153 6.2 Eπιθεωρήσεις ποιότητας Λογισµικού... 153 6.3 Πρότυπα Λογισµικού... 157 6.3.1 Πρότυπα και διασφάλιση ποιότητας Λογισµικού... 157 6.3.2 Πρότυπα τεκµηρίωσης Λογισµικού... 159 Σύνοψη κεφαλαίου... 163 Aπαντήσεις Aσκήσεων Aυτοαξιολόγησης... 164 Aπαντήσεις ραστηριοτήτων... 170 Γλωσσάρι... 188 Συµπληρωµατική Bιβλιογραφία... 194 Bιβλιογραφία προαιρετική... 195
ÌappleÏËÚˆÌ ÙÈÎ µè ÏÈÔÁÚ Ê Booch, G., Object Oriented Analysis and Design with Applications, Addison Wesley. Jacobson I., Booch G., Rumbaugh J., The Unified Software Development Process, Addison Wesley. Booch G., Rumbaugh J., Jacobson I., The Unified Modeling Language User Guide, Addison Wesley. Rumbaugh J., Jacobson I., Booch G., The Unified Modeling Language Reference Manual, Addison Wesley. Schneider G., Winters J., Applying Use Cases: A practical Guide, Addison Wesley. Quadrani T., Visual Modeling with Rational Rose and UML, Addison Wesley. Khoshafian S., Abnous R., Object Orientation: Concepts, Languages, Databases, User Interfaces, Wiley. Henderson Sellers B., A Book of Object Oriented Knowledge, Prentice Hall. Pressman, R. S., Software Engineering A Practitioners Approach, McGraw Hill 4th edition. Sommerville, I. Software Engineering, Addison Wesley.
BIB IO PAºIA 195 µè ÏÈÔÁÚ Ê appleúô ÈÚÂÙÈÎ Ó ÁÓˆÛË Jacobson I., Christerson M., Johnson P., Overgaad G., Object Oriented Software Engineering: A Use Case Driven Approach, Addison Wesley. Rumbaugh J., et al, Object Oriented Modeling and Design, Prentice Hall. Martin J., Odell J., Object Oriented Analysis and Design, Prentice Hall. Fowler M., Scott K., UML Distilled, Addison Wesley. IEEE Guide To Software Requirements Specification, ANSI/IEEE, Std 830 1993, 1984. IEEE Recommended Practice for Software Design Descriptions, ANSI/IEEE, Std 1016 1987. IEEE Recommended Practice for the Evaluation and Selection of CASE Tools, ANSI/IEEE std 1209 1992. IEEE Recommended Practice for the Adoption of Computer Aided Software Engineering (CASE) Tools, ANSI/IEEE 1348 1995. IEEE Standard for Software Quality Assurance Plans, ANSI/IEEE, Std 730 1989. IEEE Guide for Software Quality Assurance Plans, ANSI/IEEE, Std 730.1 1989. IEEE Standard Glossary of Software Engineering Terminology, ANSI/IEEE, Std 610.12 1990.