Περιεχόμενα Πρόλογος 5 Μέρος 1 Επισκόπηση 27 Κεφάλαιο 1 Εισαγωγή 29 1.1 Συχνές ερωτήσεις για την τεχνολογία λογισμικού 31 1.2 Επαγγελματική και ηθική ευθύνη 41 Κύρια σημεία 46 Πρόσθετες πηγές 46 Ασκήσεις 47 Κεφάλαιο 2 Κοινωνικοτεχνικά συστήματα 49 2.1 Ανακύπτουσες ιδιότητες συστήματος 52 2.2 Τεχνολογία συστημάτων 54 2.3 Οργανισμοί, άνθρωποι, και συστήματα υπολογιστών 65 2.4 Κληρονομημένα συστήματα 70 Κύρια σημεία 73 Πρόσθετες πηγές 73 Ασκήσεις 74
16 Περιεχόμενα Κεφάλαιο 3 Κρίσιμα συστήματα 77 3.1 Ένα απλό σύστημα κρίσιμο από άποψη ασφάλειας 80 3.2 Φερεγγυότητα συστήματος 82 3.3 Διαθεσιμότητα και αξιοπιστία 85 3.4 Ασφάλεια 91 3.5 Προστασία από εξωτερικούς κινδύνους 94 Κύρια σημεία 97 Πρόσθετες πηγές 98 Ασκήσεις 98 Κεφάλαιο 4 Διαδικασίες παραγωγής λογισμικού 101 4.1 Μοντέλα διαδικασιών παραγωγής λογισμικού 103 4.2 Επαναληπτικές διαδικασίες 110 4.3 Δραστηριότητες διαδικασιών 114 4.4 Η Ορθολογική Ενοποιημένη Διαδικασία 123 4.5 Τεχνολογία λογισμικού με τη βοήθεια υπολογιστή 126 Κύρια σημεία 131 Πρόσθετες πηγές 132 Ασκήσεις 132 Κεφάλαιο 5 Διαχείριση έργων 135 5.1 Δραστηριότητες διαχείρισης 137 5.2 Σχεδιασμός έργου 139 5.3 Χρονοπρογραμματισμός έργου 142 5.4 Διαχείριση κινδύνων 149 Κύρια σημεία 156 Πρόσθετες πηγές 157 Ασκήσεις 157
Περιεχόμενα 17 Μέρος 2 Απαιτήσεις 159 Κεφάλαιο 6 Απαιτήσεις λογισμικού 161 6.1 Λειτουργικές και μη λειτουργικές απαιτήσεις 164 6.2 Απαιτήσεις χρήστη 171 6.3 Απαιτήσεις συστήματος 174 6.4 Προδιαγραφές διασύνδεσης 180 6.5 Το έγγραφο των απαιτήσεων λογισμικού 181 Κύρια σημεία 186 Πρόσθετες πηγές 186 Ασκήσεις 187 Κεφάλαιο 7 Διαδικασίες της τεχνολογίας απαιτήσεων 189 7.1 Μελέτες σκοπιμότητας 192 7.2 Εξαγωγή και ανάλυση απαιτήσεων 193 7.3 Επικύρωση απαιτήσεων 207 7.4 Διαχείριση απαιτήσεων 209 Κύρια σημεία 215 Πρόσθετες πηγές 216 Ασκήσεις 216 Κεφάλαιο 8 Μοντέλα συστήματος 219 8.1 Μοντέλα θεματικού πλαισίου 221 8.2 Μοντέλα συμπεριφοράς 224 8.3 Μοντέλα δεδομένων 228 8.4 Μοντέλα αντικειμένων 232 8.5 Δομημένες μέθοδοι 239 Κύρια σημεία 242 Πρόσθετες πηγές 243 Ασκήσεις 243
18 Περιεχόμενα Κεφάλαιο 9 Προδιαγραφή κρίσιμων συστημάτων 245 9.1 Προδιαγραφή καθοδηγούμενη από κινδύνους 247 9.2 Προδιαγραφή ασφάλειας 256 9.3 Προδιαγραφή προστασίας από εξωτερικούς κινδύνους 258 9.4 Προδιαγραφή αξιοπιστίας λογισμικού 261 Κύρια σημεία 268 Πρόσθετες πηγές 269 Ασκήσεις 269 Κεφάλαιο 10 Τυπική προδιαγραφή 271 10.1 Τυπική προδιαγραφή στη διαδικασία παραγωγής λογισμικού 274 10.2 Προδιαγραφή διασύνδεσης υποσυστημάτων 277 10.3 Προδιαγραφή συμπεριφοράς 285 Κύρια σημεία 292 Πρόσθετες πηγές 292 Ασκήσεις 292 Μέρος 3 Σχεδιασμός 295 Κεφάλαιο 11 Αρχιτεκτονικός σχεδιασμός 297 11.1 Αποφάσεις αρχιτεκτονικού σχεδιασμού 301 11.2 Οργάνωση συστήματος 303 11.3 Στυλ αποδόμησης σε υπομονάδες 309 11.4 Στυλ ελέγχου 313 11.5 Αρχιτεκτονικές αναφοράς 318 Κύρια σημεία 321 Πρόσθετες πηγές 322 Ασκήσεις 322
Περιεχόμενα 19 Κεφάλαιο 12 Αρχιτεκτονικές κατανεμημένων συστημάτων 325 12.1 Αρχιτεκτονικές πολυεπεξεργασίας 328 12.2 Αρχιτεκτονικές πελάτη-διακομιστή 329 12.3 Αρχιτεκτονικές κατανεμημένων αντικειμένων 335 12.4 Διεπιχειρησιακή κατανεμημένη επεξεργασία 343 Κύρια σημεία 351 Πρόσθετες πηγές 351 Ασκήσεις 352 Κεφάλαιο 13 Αρχιτεκτονικές εφαρμογών 353 13.1 Συστήματα επεξεργασίας δεδομένων 356 13.2 Συστήματα επεξεργασίας συναλλαγών 359 13.3 Συστήματα επεξεργασίας συμβάντων 367 13.4 Συστήματα επεξεργασίας γλώσσας 370 Κύρια σημεία 373 Πρόσθετες πηγές 373 Ασκήσεις 374 Κεφάλαιο 14 Αντικειμενοστρεφής σχεδιασμός 377 14.1 Αντικείμενα και κλάσεις αντικειμένων 380 14.2 Μια διαδικασία αντικειμενοστρεφούς σχεδιασμού 385 14.3 Εξέλιξη του σχεδιασμού 400 Κύρια σημεία 402 Πρόσθετες πηγές 403 Ασκήσεις 403 Κεφάλαιο 15 Σχεδιασμός λογισμικού πραγματικού χρόνου 405 15.1 Σχεδιασμός συστήματος 409 15.2 Λειτουργικά συστήματα πραγματικού χρόνου 413 15.3 Συστήματα παρακολούθησης και ελέγχου 416 15.4 Συστήματα απόκτησης δεδομένων 422 Κύρια σημεία 426 Πρόσθετες πηγές 426 Ασκήσεις 427
20 Περιεχόμενα Κεφάλαιο 16 Σχεδιασμός διασύνδεσης χρήστη 429 16.1 Ζητήματα σχεδιασμού 434 16.2 Η διαδικασία σχεδιασμού της διασύνδεσης χρήστη 445 16.3 Ανάλυση χρηστών 446 16.4 Κατασκευή πρωτοτύπων διασύνδεσης χρήστη 450 16.5 Αξιολόγηση διασύνδεσης 452 Κύρια σημεία 455 Πρόσθετες πηγές 455 Ασκήσεις 456 Μέρος 4 Ανάπτυξη 457 Κεφάλαιο 17 Γρήγορη ανάπτυξη λογισμικού 459 17.1 Ευέλικτες μέθοδοι 464 17.2 Ακραίος προγραμματισμός 467 17.3 Γρήγορη ανάπτυξη εφαρμογών 474 17.4 Κατασκευή πρωτοτύπων λογισμικού 479 Κύρια σημεία 483 Πρόσθετες πηγές 484 Ασκήσεις 484 Κεφάλαιο 18 Επαναχρησιμοποίηση λογισμικού 487 18.1 Το τοπίο της επαναχρησιμοποίησης 491 18.2 Σχεδιαστικά υποδείγματα 494 18.3 Επαναχρησιμοποίηση βάσει γεννητριών 497 18.4 Πλαίσια εργασίας εφαρμογών 500 18.5 Επαναχρησιμοποίηση συστημάτων εφαρμογών 502 Κύρια σημεία 513 Πρόσθετες πηγές 514 Ασκήσεις 514
Περιεχόμενα 21 Κεφάλαιο 19 Τεχνολογία λογισμικού βάσει συστατικών στοιχείων 515 19.1 Συστατικά στοιχεία και μοντέλα συστατικών στοιχείων 518 19.2 Η διαδικασία CBSE 528 19.3 Σύνθεση συστατικών στοιχείων 531 Κύρια σημεία 539 Πρόσθετες πηγές 540 Ασκήσεις 540 Κεφάλαιο 20 Ανάπτυξη κρίσιμων συστημάτων 541 20.1 Φερέγγυες διαδικασίες 546 20.2 Φερέγγυος προγραμματισμός 547 20.3 Ανοχή σε σφάλματα 554 20.4 Ανεκτικές σε σφάλματα αρχιτεκτονικές 563 Κύρια σημεία 567 Πρόσθετες πηγές 568 Ασκήσεις 568 Κεφάλαιο 21 Εξέλιξη λογισμικού 569 21.1 Δυναμική της εξέλιξης των προγραμμάτων 571 21.2 Συντήρηση λογισμικού 574 21.3 Διαδικασίες εξέλιξης 580 21.4 Εξέλιξη κληρονομημένων συστημάτων 586 Κύρια σημεία 592 Πρόσθετες πηγές 593 Ασκήσεις 593 Μέρος 5 Επαλήθευση και επικύρωση 595 Κεφάλαιο 22 Επαλήθευση και επικύρωση 597 22.1 Σχεδιασμός επαλήθευσης και επικύρωσης 602 22.2 Επιθεωρήσεις λογισμικού 604
22 Περιεχόμενα 22.3 Αυτοματοποιημένη στατική ανάλυση 610 22.4 Επαλήθευση και τυπικές μέθοδοι 614 Κύρια σημεία 619 Πρόσθετες πηγές 619 Ασκήσεις 620 Κεφάλαιο 23 Δοκιμές λογισμικού 621 23.1 Δοκιμές συστήματος 625 23.2 Δοκιμές συστατικών στοιχείων 633 23.3 Σχεδιασμός περιπτώσεων δοκιμής 637 23.4 Αυτοματοποίηση δοκιμών 648 Κύρια σημεία 650 Πρόσθετες πηγές 651 Ασκήσεις 651 Κεφάλαιο 24 Επικύρωση κρίσιμων συστημάτων 653 24.1 Επικύρωση αξιοπιστίας 655 24.2 Εγγύηση ασφάλειας 661 24.3 Αξιολόγηση προστασίας από εξωτερικούς κινδύνους 669 24.4 Πειστήρια ασφάλειας και φερεγγυότητας 671 Κύρια σημεία 675 Πρόσθετες πηγές 675 Ασκήσεις 676 Μέρος 6 Διαχείριση 679 Κεφάλαιο 25 Διαχείριση ανθρώπινου δυναμικού 681 25.1 Επιλογή του προσωπικού 683 25.2 Παρακίνηση ανθρώπων 686 25.3 Διαχείριση ομάδων 690 25.4 Το μοντέλο Ωριμότητας Ανθρώπινων Ικανοτήτων 699
Περιεχόμενα 23 Κύρια σημεία 702 Πρόσθετες πηγές 702 Ασκήσεις 703 Κεφάλαιο 26 Εκτίμηση κόστους λογισμικού 705 26.1 Παραγωγικότητα λογισμικού 708 26.2 Τεχνικές εκτιμήσεων 713 26.3 Αλγοριθμική μοντελοποίηση κόστους 716 26.4 Διάρκεια και στελέχωση έργων 732 Κύρια σημεία 734 Πρόσθετες πηγές 734 Ασκήσεις 735 Κεφάλαιο 27 Διαχείριση ποιότητας 737 27.1 Ποιότητα διαδικασιών και προϊόντων 740 27.2 Διασφάλιση ποιότητας και πρότυπα 741 27.3 Σχεδιασμός ποιότητας 748 27.4 Έλεγχος ποιότητας 749 27.5 Μετρήσεις και μετρικές λογισμικού 751 Κύρια σημεία 760 Πρόσθετες πηγές 761 Ασκήσεις 761 Κεφάλαιο 28 Βελτίωση διαδικασιών 763 28.1 Ποιότητα διαδικασιών και προϊόντων 765 28.2 Κατηγοριοποίηση διαδικασιών 768 28.3 Μετρήσεις διαδικασιών 770 28.4 Ανάλυση και μοντελοποίηση διαδικασιών 772 28.5 Μεταβολή διαδικασιών 777 28.6 Το πλαίσιο βελτίωσης διαδικασιών του μοντέλου CMMI 779 Κύρια σημεία 786 Πρόσθετες πηγές 786 Ασκήσεις 787
24 Περιεχόμενα Κεφάλαιο 29 Διαχείριση διευθετήσεων 789 29.1 Σχεδιασμός διαχείρισης διευθετήσεων 792 29.2 Διαχείριση αλλαγών 796 29.3 Διαχείριση πρώιμων και τελικών εκδόσεων 799 29.4 Δόμηση συστήματος 807 29.5 Εργαλεία CASE για τη διαχείριση διευθετήσεων 808 Κύρια σημεία 813 Πρόσθετες πηγές 814 Ασκήσεις 814 Μέρος 7 Αναδυόμενες τεχνολογίες 817 Κεφάλαιο 30 Τεχνολογία προστασίας από εξωτερικούς κινδύνους 819 30.1 Έννοιες προστασίας από εξωτερικούς κινδύνους 822 30.2 Διαχείριση κινδύνων σε σχέση με την προστασία 824 30.3 Σχεδιασμός με στόχο την προστασία 831 30.4 Επιβιωσιμότητα συστημάτων 842 Κύρια σημεία 846 Πρόσθετες πηγές 847 Ασκήσεις 847 Κεφάλαιο 31 Υπηρεσιοκεντρική τεχνολογία λογισμικού 849 31.1 Οι υπηρεσίες ως επαναχρησιμοποιήσιμα συστατικά στοιχεία 853 31.2 Τεχνολογία υπηρεσιών 858 31.3 Υπηρεσιοκεντρική ανάπτυξη λογισμικού 868 Κύρια σημεία 877 Πρόσθετες πηγές 878 Ασκήσεις 878
Περιεχόμενα 25 Κεφάλαιο 32 Θεματοκεντρική ανάπτυξη λογισμικού 879 32.1 Διαχωρισμός των ζητουμένων 881 32.2 Θέματα, σημεία σύνδεσης, και σημειοτομές 886 32.3 Τεχνολογία λογισμικού με θέματα 890 Κύρια σημεία 903 Πρόσθετες πηγές 904 Ασκήσεις 904 Γλωσσάρι 905 Βιβλιογραφία 919 Ευρετήριο 939 Ευρετήριο συγγραφέων 953