ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

Σχετικά έγγραφα
E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ

Θεωρία Πληροφορίας και Kωδικοποίησης

ιαχείριση και Ποιότητα Λογισµικού

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ

E π A π π ª π. È ÎÚÈÙ M ıëì ÙÈÎ. Î È M ıëì ÙÈÎ ÔÁÈÎ. TfiÌÔ A' È ÎÚÈÙ M ıëì ÙÈÎ ÂÒÚÁÈÔ BÔ ÚÔ

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ

E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË EÊ ÚÌÔÁ. TfiÌÔ B' NÂ ÚˆÓÈÎ ÎÙ Î È ÓÔ AÚÁ Ú ÎË EÊ ÚÌÔÁ

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ

E π A π π ª π. Â È ÛÌfi ÔÁÈÛÌÈÎÔ. TfiÌÔ ' ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II. KÏÂ ÓıË Ú ÌappleÔ Ï Ë. (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi )

Eγκυροποίηση Λογισµικού

Aισθητήρες και Mικροαισθητήρες

E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË - EÊ ÚÌÔÁ. TfiÌÔ ' ÂÓÂÙÈÎÔ AÏÁfiÚÈıÌÔÈ Î È EÊ ÚÌÔÁ. ÎÔı Ó ÛË

Ψηφιακή επεξεργασία εικόνων και σηµάτων

E π A π π ª π. Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi. MÔÓÙÂÏÔappleÔ ËÛË. TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË Î È ÚÔÛÔÌÔ ˆÛË

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË

TËÏÂÌ ÙÈÎ, È ÎÙ Î È KÔÈÓˆÓ

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ. Θεµατική Eνότητα BΑΣΙΚΑ ΖΗΤΗΜΑΤΑ ΙΚΤΥΩΝ Η/Υ

K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) :13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË

B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ

EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ

Σχεδιασμός και Eκτίμηση Έργων

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ

K Ì ÚÈÓfi (232ÛÂÏ.) 23/3/ :03 ÂÏ 1. Mικροηλεκτρονική

Θεµέλια Γραµµικού Προγραµµατισµού

È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ

Mηχανολογική Σχεδίαση

Tεχνολογία Λογισµικού II

Aρχές Διοίκησης Επιχειρήσεων

Eισαγωγή στην Πυρηνική Φυσική

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ

Eιδικά Θέµατα υναµικής των Kατασκευών και Σεισµικής Mηχανικής

E π A π π ª π º ÛÈÎÔ ËÌÂ. TfiÌÔ ' Ù ÙÈÛÙÈÎ ÂÚÌÔ Ó ÌÈÎ BÏ ÛË M Ú ÓÙ

È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ

È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ B' ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ. Θεµατική Eνότητα

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH. Θεµατική Ενότητα ΣYΓXPONA IKTYA KAI YΠHPEΣIEΣ

ÔÌ Î È ÂÈÙÔ ÚÁ ÙÔ K ÙÙ ÚÔ

ÚÔËÁÌ Ó EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ

E π A π Δ π Δ ª π. NÔÌÔıÂÛ Î È AÛÊ ÏÂÈ T ÓÈÎÒÓ ŒÚÁˆÓ. TfiÌÔ B' K ÏÏÈfiappleË ÓË Iˆ ÓÓË Ô ÊÏ AÛÊ ÏÂÈ EÎÙ ÏÂÛË ŒÚÁˆÓ

E π A π π ª π. ÚÔÁÚ ÌÌ ÙÈÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. TfiÌÔ A' Â È ÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. AÁÁÂÏfiappleÔ ÏÔ

KO MA E I O OIH H 30/5/ :32 ÂÏ 1. Eπιστήµη Πολυµερών

TÂ ÓËÙ NÔËÌÔÛ ÓË - EÊ ÚÌÔÁ

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ

È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ

Στοχαστική υναµική των Kατασκευών

Σύµµικτες Kατασκευές

NÔÌÔıÂÛ Î È AÛÊ ÏÂÈ T ÓÈÎÒÓ ŒÚÁˆÓ

È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ

Aξιοπιστία και Συντήρηση

Eπικοινωνία Aνθρώπου Yπολογιστή

E π A π π ª π KÏ ÛÈÎ º ÛÈÎ I. TfiÌÔ ' HÏÂÎÙÚÔÌ ÁÓËÙÈÛÌfi. NÈÎfiÏ Ô. K Ï ÊË

Eπιστήµη Yλικών: Mαγνητικά Yλικά

E π A π π ª π OÚÁ ÓÈÎ XËÌÂ. TfiÌÔ ' º ÛÌ ÙÔÛÎÔapple OÚÁ ÓÈÎÒÓ EÓÒÛˆÓ. I.. ÂÚÔı Ó ÛË

E π A π π ª π º ÛÈÎÔ ËÌÂ. TfiÌÔ E' º ÛÌ ÙÔÛÎÔapple ºÒÙË NÙ

E π A π π ª π OÚÁ ÓÈÎ XËÌÂ. TfiÌÔ ' BÈÔÌfiÚÈ : ÔÌ & ÂÈÙÔ ÚÁÈÎfiÙËÙ N ÎÔ K. K Ú Ì ÓÔ

Oικολογία Aπό τη Bιόσφαιρα στους Πληθυσµούς

H EÍ ÏÈÍË ÙˆÓ I ÂÒÓ ÛÙÈ º ÛÈÎ EappleÈÛÙ ÌÂ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH. Θεµατική Ενότητα ΣYΓXPONA IKTYA KAI YΠHPEΣIEΣ

E π A π π ª π ÂÓÂÙÈÎ. TfiÌÔ B' º ÛÈÔÏÔÁ. AÓÙÈÁfiÓË Ô

μ ÛÈÎ Ú ÈÎ Ô Î È ÈÔ ÎËÛË

Aλγόριθµοι Γραµµικού Προγραµµατισµού και Θεωρία Παιγνίων

Aποτίµηση Σεισµικών Bλαβών, Eπισκευές και Eνισχύσεις Kτιρίων Oπλισµένου Σκυροδέµατος

Διαχείριση Δεδομένων

Τεχνολογία Λογισμικού

E π A π Δ π Δ ª π. NÔÌÔıÂÛ Î È AÛÊ ÏÂÈ T ÓÈÎÒÓ ŒÚÁˆÓ. TfiÌÔ A' KˆÓÛÙ ÓÙ ÓÔ ÂÔ ˆÚ ÎfiappleÔ ÏÔ ÈÔÓ ÛÈÔ K ÙÚÈÌappleÔ. NÔÌÔıÂÛ EÎÙ ÏÂÛË T ÓÈÎÒÓ ŒÚÁˆÓ

Ζητήματα Σχεδιασμού και Προγραμματισμού Συστημάτων ΔιάχυτουΥπολογισμού

μ ÛÈÎ Ú ÈÎ Ô Î È ÈÔ ÎËÛË

E π A π π ª π ÂÓÂÙÈÎ. TfiÌÔ A' ÂÒÚÁÈÔ È ÓÓfiappleÔ ÏÔ ÂÓÂÙÈÎ

Αλγόριθμοι και Πολυπλοκότητα

ÈÔÈÎËÙÈÎ appleè ÂÈÚ ÛÂˆÓ Î È ÚÁ ÓÈÛÌÒÓ

Eπιστήµη Yλικών: Kεραµικά Yλικά

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΣΠOY EΣ ΣTIΣ ΦYΣIKEΣ EΠIΣTHMEΣ.

Από την Κλασική στην Κβαντική Φυσική

Αρχιτεκτονικές Συστημάτων Διάχυτου και Σφαιρικού Υπολογισμού

Σχεδίαση Λογισμικού. Σημείωση

E π A π π ª π ÂÓÂÙÈÎ. TfiÌÔ ' EÍ ÏÈÍË ÂÒÚÁÈÔ PÔ ÎË

ÚıÔ ÔÍ ÛÙÔÓ 20fi ÈÒÓ. È ÏÔÁÔ ÙË ÚıÔ ÔÍ ÌÂ ÛË Î È Ó ÙÔÏ Δ ª. Ú Ú Ù μ Û ÏÂÈÔ Ú μ ÏÏÈ Ó ÙÔ ÕÁÁÂÏÔ. apple Î. ıëáëù

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΡΟΧΩΡΗΜΕΝΕΣ ΣΠΟΥ ΕΣ ΣΤΗ ΦΥΣΙΚΗ.

Aνάλυση Eικόνας και Aναγνώριση Προτύπων

Προχωρημένα Ζητήματα Σχεδιασμού Κατανεμημένων Συστημάτων Εγχειρίδιο Μελέτης

Προηγμένα Θέματα Δικτύων Υπολογιστών

Γλώσσες Προγραμματισμού

Τεχνολογία Φωτισμού και Σύνδεση με την Παραγωγή

Σχεδίαση Middleware Εγχειρίδιο Μελέτης

Οργάνωση και Αλληλεπιδράσεις σε Μοριακό Επίπεδο

Συστήματα Διάχυτου και Σφαιρικού Υπολογισμού

H EÍ ÏÈÍË ÙˆÓ I ÂÒÓ ÛÙÈ º ÛÈÎ EappleÈÛÙ ÌÂ

E π A π π ª π OÚÁ ÓÈÎ XËÌÂ. TfiÌÔ B' OÌfiÏÔÁ ÂÈÚ, ÙÂÚÂÔ ËÌÂ Î È MË ÓÈÛÌÔ OÚÁ ÓÈÎÒÓ AÓÙÈ Ú ÛÂˆÓ ÈÔÓ ÛÈÔ

Οργάνωση και Αλληλεπιδράσεις σε Μοριακό Επίπεδο

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Σχολή Θετικών Επιστηµών και Τεχνολογίας. Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH. Θεµατική Ενότητα AΡΧΕΣ TΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ

Τεχνολογία Φωτισμού και Σύνδεση με την Παραγωγή

Ρύπανση-Ενέργεια και Τεχνολογίες Αντιρύπανσης

Σχεδιασμός και Διαχείριση Λογισμικού

Βασικές Εξειδικεύσεις σε Αρχιτεκτονική και Δίκτυα Υπολογιστών

Ηχομόνωση Ηχοπροστασία

Transcript:

Tυπικές Προδιαγραφές Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική αρτιότητα και πληρότητα των συγγραµ- µάτων την αποκλειστική ευθύνη φέρουν οι συγγραφείς, κριτικοί αναγνώστες και ακαδηµαϊκοί υπεύθυνοι που ανέλαβαν το έργο αυτό.

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα EI IKA ΘEMATA TEXNOΛOΓIAΣ ΛOΓIΣMIKOY Τόµος A' Tυπικές Προδιαγραφές ΑΧΙΛΛΕΑΣ ΚΑΜΕΑΣ ρ Mηχανικός H/Y & Πληροφορικής ΠATPA 2004

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα EI IKA ΘEMATA TEXNOΛOΓIAΣ ΛOΓIΣMIKOY Τόµος A' TYΠIKEΣ ΠPO IAΓPAΦEΣ Συγγραφή AXIΛΛEAΣ KAMEAΣ ρ Mηχανικός H/Y & Πληροφορικής Κριτική Ανάγνωση ΠΑΝΑΓΙΩΤΗΣ ΠΙΝΤΕΛΑΣ Kαθηγητής Tµήµατος Mαθηµατικών Πανεπιστηµίου Πατρών Ακαδηµαϊκός Υπεύθυνος για την επιστηµονική επιµέλεια του τόµου ΠΑΝΑΓΙΩΤΗΣ ΠΙΝΤΕΛΑΣ Kαθηγητής Tµήµατος Mαθηµατικών Πανεπιστηµίου Πατρών Επιµέλεια στη µέθοδο της εκπαίδευσης από απόσταση IΩANNHΣ KOYTΣONIKOΣ Γλωσσική Επιµέλεια KΩNΣTANTINOΣ KΛAMΠANIΣTHΣ Τεχνική Επιµέλεια EΣΠI EK OTIKH E.Π.E. Συντονισµός ανάπτυξης εκπαιδευτικού υλικού και γενική επιµέλεια των εκδόσεων ΟΜΑ Α ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ / 1997 2004 ISBN: 960 538 220 2 Kωδικός Έκδοσης: ΠΛH 42/1 Copyright 2004 για την Ελλάδα και όλο τον κόσµο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Οδός Παπαφλέσσα & Υψηλάντη, 26222 Πάτρα Τηλ: 2610 314094, 314206 Φαξ: 2610 317244 Σύµφωνα µε το Ν. 2121/1993, απαγορεύεται η συνολική ή αποσπασµατική αναδηµοσίευση του βιβλίου αυτού ή η αναπαραγωγή του µε οποιοδήποτε µέσο χωρίς την άδεια του εκδότη.

ÂÚÈ fiìâó Πρόλογος... 11 K º π 1 EÈÛ ÁˆÁ Eισαγωγικές παρατηρήσεις... 15 1.1 Oι δραστηριότητες παραγωγής προδιαγραφών... 17 1.2 Tαξινόµηση µεθόδων παραγωγής προδιαγραφών µε βάση το «βαθµό τυπικότητας»... 19 1.3 Mη τυπικές προδιαγραφές... 20 Σύνοψη... 22 Bιβλιογραφία... 22 K º π 2 HÌÈ Ù appleèî Ù ÓÈÎ apple Ú ÁˆÁ appleúô È ÁÚ ÊÒÓ Eισαγωγικές παρατηρήσεις... 23 2.1 ιαγράµµατα ροής δεδοµένων... 25 2.1.1 Kατασκευή ενός P... 26 2.1.2 Tο λεξικό δεδοµένων... 29 2.2 οµηµένη γλώσσα... 32 2.3 ιαγράµµατα ροής συστήµατος... 34 2.3.1 Kατασκευή των PΣ... 35 2.4 ιαγράµµατα οντοτήτων συσχετίσεων... 37 2.4.1 Kατασκευή των OΣ... 38 2.5 ιαγράµµατα Warnier Orr... 41 2.6 ιαγράµµατα Jackson... 43 2.7 Eπιλογή της κατάλληλης τεχνικής... 45 Σύνοψη... 46 Bιβλιογραφία... 46

6 TY IKE PO IA PAºE K º π 3 T appleèî ÁÏÒÛÛÂ : B ÛÈÎ ÓÓÔÈÂ Eισαγωγικές παρατηρήσεις... 47 3.1 Eίδη τυπικών µεθόδων... 50 3.2 Προτασιακός λογισµός... 51 3.3 Λογικές συναρτήσεις... 56 3.4 Kατηγορηµατικός λογισµός... 57 3.5 Θεωρία συνόλων... 58 Σύνοψη... 61 K º π 4 T appleèî Ì ıô ÔÈ appleô appleâúèáú ÊÔ Ó È ÈfiÙËÙÂ ÙÔ ÏÔÁÈÛÌÈÎÔ Eισαγωγικές παρατηρήσεις... 63 4.1 Aξιωµατική προδιαγραφή... 64 4.2 Aλγεβρικές προδιαγραφές αφαιρετικών τύπων δεδοµένων... 67 4.3 Άλλοι συµβολισµοί αλγεβρικών προδιαγραφών... 72 4.3.1 Προδιαγραφές µε εξισώσεις και σχέσεις... 73 4.3.2 Aναδροµικές σχέσεις... 73 4.3.3 Kανονικές εκφράσεις... 73 Σύνοψη... 75 Bιβλιογραφία... 75 K º π 5 H Ù appleèî ÁÏÒÛÛ Larch Eισαγωγικές παρατηρήσεις... 77 5.1 Προδιαγραφές δύο επιπέδων... 79 5.2 Bασικές δοµές... 80 5.3 Θεωρίες... 83 5.4 Σύνθεση γνωρισµάτων... 83

EPIEXOMENA 7 5.5 Περισσότερα για το συµβολισµό... 85 5.6 Προδιαγραφές επιπέδου LIL... 88 Σύνοψη... 95 Bιβλιογραφία... 95 K º π 6 H Ù appleèî ÁÏÒÛÛ VDM Eισαγωγικές παρατηρήσεις... 97 6.1 Συναρτήσεις... 99 6.2 Έτοιµες εκφράσεις... 101 6.3 Mερικές συναρτήσεις... 101 6.4 Λειτουργίες... 103 6.5 Aπλοί και σύνθετοι τύποι δεδοµένων... 105 6.5.1 Bασικοί τύποι... 105 6.5.2 Oρισµός τύπων από σύνολα... 106 6.5.3 Προαιρετικά στοιχεία... 108 6.6 Σύνθετοι τύποι εγγραφών... 108 6.6.1 Aναλλοίωτο τύπου... 110 6.7 Aπεικονίσεις... 112 6.7.1 Tελεστές... 113 6.7.2 Oρισµός τύπων... 116 6.7.3 Πολυ σύνολα... 117 6.8 Aκολουθίες... 120 6.8.1 Tελεστές... 121 Σύνοψη... 125 Bιβλιογραφία... 125 K º π 7 O Û Ì ÔÏÈÛÌfi Z

8 π π π Oπ ª ƒπ M π Eισαγωγικές παρατηρήσεις... 127 7.1 Bασικός συµβολισµός... 129 7.2 Aναπαράσταση κατάστασης... 131 7.2.1 Mετάβαση κατάστασης... 133 7.3 Προδιαγραφή λειτουργίας... 136 7.4 Xειρισµός λαθών... 137 7.5 Σχεσιακή εικόνα... 139 7.6 Σχεσιακή αναστροφή... 140 7.7 Περιορισµός και αντι περιορισµός... 142 7.8 Άλλοι τελεστές... 144 7.8.1 Σύνθεση σχέσεων... 144 7.8.2 Προσαρµογή... 144 7.8.3 Mετονοµασία... 146 7.8.4 Aπόκρυψη... 146 7.8.5 Eπαναχρησιµοποίηση... 146 7.9 Προδιαγραφή του διαλόγου... 150 7.10 Συναρτήσεις... 151 7.11 Aκολουθίες... 153 7.12 Πολυ σύνολα... 154 Σύνοψη... 160 Bιβλιογραφία... 160 K º π 8 ÎÙ PETRI Eισαγωγικές παρατηρήσεις... 161 8.1 Eνεργητικές οντότητες, παθητικές οντότητες, τεκµήρια... 164 8.2 Tυπικός ορισµός των PN... 166 8.3 PN χαµηλού επιπέδου... 169 8.3.1 Mηχανές καταστάσεων... 170 8.3.2 Σηµειωµένοι γράφοι... 170

EPIEXOMENA 9 8.3.3 ίκτυα ελεύθερης επιλογής... 170 8.3.4 Σύγκριση µοντέλων LLPN... 170 8.4 ίκτυα συνθήκης γεγονότος... 173 8.4.1 Σύγκρουση... 177 8.4.2 Eπαφή... 179 8.5 ίκτυα θέσης µετάβασης... 181 8.6 ίκτυα διακριτών τεκµηρίων... 184 8.6.1 Eπεκτάσεις... 188 8.6.2 Mεταβλητές ως ετικέτες βελών... 189 8.7 Άλλα δίκτυα υψηλού επιπέδου... 190 Σύνοψη... 193 Bιβλιογραφία... 194 K º π 9 ÕÏÏ ÌÔÓÙ Ï Ù appleèîòó appleúô È ÁÚ ÊÒÓ Eισαγωγικές παρατηρήσεις... 195 9.1 Eπικοινωνούσες ακολουθιακές διεργασίες... 196 9.1.1 ιεργασίες... 196 9.1.2 Ίχνη... 198 9.1.3 Tαυτόχρονες διεργασίες... 199 9.1.4 Eπικοινωνία... 201 9.1.5 Aκολουθιακές διεργασίες... 202 9.1.6 Aναπαράσταση στοιχείων προγραµµάτων... 202 9.2 Tυπική περιγραφή διαλογικών συστηµάτων... 203 9.2.1 Aναπαράσταση του διαλόγου χρήστη συστήµατος... 204 9.2.2 Iδιότητες διαλογικών συστηµάτων... 205 9.2.3 Iδιότητες παραθυρικών εφαρµογών... 208 9.3 Anna... 209 9.3.1 Eπεξηγήσεις... 209 9.3.2 Προδιαγραφή πακέτων... 214

10 TY IKE PO IA PAºE Σύνοψη... 220 Bιβλιογραφία... 220 K º π 10 N Â Ó È Î ÓÂ Ù appleèîfi Ó ÌËÓ Â Ó È; Eισαγωγικές παρατηρήσεις... 221 10.1 Πλεονεκτήµατα και µειονεκτήµατα από τη χρήση τυπικών προδιαγραφών... 222 10.2 ιαλύοντας τους µύθους γύρω από τις τυπικές προδιαγραφές... 224 10.3 Oι δέκα εντολές εφαρµογής των τυπικών τεχνικών... 228 Σύνοψη... 232 Bιβλιογραφία... 232 Eπίλογος... 233 Aπαντήσεις Aσκήσεων Aυτοαξιολόγησης... 235 Bιβλιογραφία γενική... 252 Προτεινόµενη βιβλιογραφία... 254 Γλωσσάρι... 258

Στους γονείς µου ÚfiÏÔÁÔ Στο παρελθόν, ήταν σχεδόν αδύνατη η πρακτική εφαρµογή τυπικών τεχνικών. Καθε- µία από αυτές βασιζόταν σε διαφορετικό µαθηµατικό εργαλείο, οι συµβολισµοί ήταν σχεδόν ακατανόητοι, η υποστήριξη µε εργαλεία λογισµικού ήταν ανύπαρκτη και οι τεχνικές δεν ήταν εφαρµόσιµες σε συστήµατα µεγάλου µεγέθους. Οι µηχανικοί λογισµικού µε δυσκολία µπορούσαν να πειστούν για την αξία των τυπικών τεχνικών και σχεδόν κανείς τους δεν ήταν διατεθειµένος να επενδύσει στην εκµάθησή τους. Τα τελευταία χρόνια, όµως, η κατάσταση άρχισε να αλλάζει. Εµφανίστηκαν «κατανοητές» τεχνικές (Ζ, VDM, Larch κ.ά.), οι οποίες εφαρµόστηκαν µε επιτυχία στην πράξη. Οι τελικοί αποδέκτες των συστηµάτων λογισµικού απαιτούν όλο και περισσότερη ακρίβεια στη σχεδίαση και την περιγραφή του λογισµικού, πριν συµφωνήσουν στην τελική του µορφή. Η αύξηση της ισχύος των υπολογιστών και η εµφάνιση νέων εργαλείων προγραµµατισµού έκαναν δυνατή την ανάπτυξη ολοκληρωµένων εργαλείων ανάπτυξης λογισµικού, τα οποία βασίζονται σε τυπικές τεχνικές. Τότε, έγινε εµφανές το κενό που υπήρχε στην εκπαίδευση των µηχανικών πληροφορικής σχετικά µε την εκµάθηση και την εφαρµογή τυπικών τεχνικών. Αρκετά τριτοβάθµια εκπαιδευτικά ιδρύµατα έχουν ήδη συµπεριλάβει τη διδασκαλία τυπικών τεχνικών στα µεταπτυχιακά τους προγράµµατα, ενώ προσανατολίζονται και στην εισαγωγή αντίστοιχων µαθηµάτων στα προπτυχιακά προγράµµατα σπουδών. Το Ε.Α.Π., αναγνωρίζοντας την αξία των τυπικών τεχνικών και ακολουθώντας τις διεθνείς εξελίξεις, συµπεριέλαβε την παρούσα Θεµατική Υπο ενότητα στο Πρόγραµ- µα Σπουδών Πληροφορικής και διαθέτει για πρώτη φορά έναν τόµο στον οποίο συνοψίζονται οι περισσότερο διαδεδοµένες τυπικές τεχνικές. Τα πρώτα τρία κεφάλαια του τόµου είναι εισαγωγικά και σας προτείνω να τα µελετήσετε πριν προχωρήσετε στα επόµενα. Στο Kεφάλαιο 1, περιγράφονται οι δραστηριότητες παραγωγής τυπικών προδιαγραφών και τοποθετούνται στον κύκλο ανάπτυξης λογισµικού. Ταυτόχρονα, κατηγοριοποιούνται οι τεχνικές παραγωγής προδιαγραφών σε µη τυπικές, ηµι τυπικές και τυπικές.

12 M ø π Οι περισσότερο διαδεδοµένες ηµι τυπικές τεχνικές προδιαγραφών παρουσιάζονται στο Kεφάλαιο 2. Σε αυτές περιλαµβάνονται τα ιαγράµµατα Ροής εδοµένων, τα ιαγράµµατα Ροής Συστήµατος, τα ιαγράµµατα Jackson κ.ά. Οι τεχνικές αυτές είναι εύκολο να εφαρµοστούν και για το λόγο αυτό είναι αρκετά διαδεδοµένες. Όµως, δεν κατέχουν το βασικό χαρακτηριστικό των τυπικών τεχνικών, δηλαδή την ικανότητα να αποδείξει κανείς την ορθότητα των προδιαγραφών του λογισµικού µε µαθη- µατικά εργαλεία. Η µελέτη των υπόλοιπων κεφαλαίων του τόµου απαιτεί από την πλευρά σας µια σχετική εξοικείωση µε απλά µαθηµατικά εργαλεία και τεχνικές. Τα απολύτως απαραίτητα παρουσιάζονται συνοπτικά στο Kεφάλαιο 3, ώστε να µπορείτε να προχωρήσετε στη µελέτη του τόµου. Θα σας βοηθήσει όµως να µελετήσετε σε βάθος τα ζητή- µατα αυτά, ανατρέχοντας σε κάποια από τις Θ.Ε. του Ε.Α.Π. ή σε σχετικά µε τα αντικείµενα βιβλία Μαθηµατικών. Στα Kεφάλαια 4 έως 9 περιγράφεται ένα σύνολο τυπικών τεχνικών για την προδιαγραφή λογισµικού. Στην πραγµατικότητα, µπορείτε να µελετήσετε τα κεφάλαια αυτά µε όποια σειρά θεωρείτε καλύτερη ή να παραλείψετε τη µελέτη τεχνικών που δε σας ενδιαφέρουν. Πάντως, η µελέτη κάθε κεφαλαίου απαιτεί αυξηµένη συγκέντρωση και προσοχή, αλλά και αποθέµατα επιµονής και υποµονής, καθώς το αντικείµενο είναι από τη φύση του δύσκολο να περιγραφεί µε λέξεις (οι τυπικές προδιαγραφές χρησι- µοποιούνται επειδή ακριβώς η περιγραφή του λογισµικού µε λέξεις θεωρείται ότι προσθέτει ασάφειες σχετικά µε τη λειτουργικότητά του). Στο Kεφάλαιο 4 περιγράφονται οι αλγεβρικές και οι αξιωµατικές προδιαγραφές. Πρόκειται για τις δύο πιο απλές και βασικές τεχνικές. Οι αλγεβρικές προδιαγραφές περιγράφουν τις λειτουργίες που είναι δυνατό να εκτελέσουν τα τµήµατα του λογισµικού, ενώ οι αξιωµατικές προδιαγραφές περιγράφουν την είσοδο και την έξοδο των τµηµάτων που υλοποιούν τις λειτουργίες αυτές. Στο Kεφάλαιο 5 περιγράφεται η γλώσσα Larch, η περισσότερο διαδεδοµένη γλώσσα αλγεβρικών προδιαγραφών. Η περιγραφή του λογισµικού σε γλώσσα Larch περιλαµβάνει υψηλού επιπέδου προδιαγραφές, αλλά και προδιαγραφές που εξαρτώνται από την υλοποίηση. Το βασικό αντικείµενο των προδιαγραφών καλείται «γνώρισµα» και συνήθως περιγράφει έναν αφαιρετικό τύπο δεδοµένων. Στο Kεφάλαιο 6 παρουσιάζεται η γλώσσα VDM, η οποία αποτελεί τµήµα της µεθοδολογίας Vienna Development Method. Η VDM βασίζεται στον κατηγορηµατικό λογισµό και περιγράφει το λογισµικό ως ένα σύνολο συναρτήσεων ή λειτουργιών (συναρτήσεων µε εσωτερική κατάσταση). Πρόκειται για µια αρκετά διαδεδοµένη

PO O O 13 τεχνική, η οποία έχει αποδείξει την αξία της σε πολυάριθµες πρακτικές εφαρµογές. Στο Kεφάλαιο 7 συναντάµε µια άλλη διαδεδοµένη τεχνική, τη γλώσσα Ζ, η οποία βασίζεται στη θεωρία τυποποιηµένων συνόλων. Το βασικό αντικείµενο των προδιαγραφών είναι το «σχήµα», το οποίο περιγράφει είτε τµήµα προγράµµατος, είτε αφαιρετικό τύπο δεδοµένων. Σε ένα σχήµα συµπεριλαµβάνεται η προδιαγραφή τόσο της κατάστασης ενός αντικειµένου, όσο και των λειτουργιών που επιδρούν σε αυτή. Επειδή ακριβώς η γλώσσα βασίζεται σε σχετικά «απλά» µαθηµατικά εργαλεία, οι προδιαγραφές που είναι γραµµένες σε Ζ είναι εύκολα κατανοητές και από µη ειδικούς. Έτσι εξηγείται και η µεγάλη διάδοση της γλώσσας. Στο Kεφάλαιο 8 περιγράφεται η πιο γνωστή γραφική τεχνική, τα ίκτυα Petri. Με την τεχνική αυτή είναι δυνατό να προδιαγραφεί οποιοδήποτε δυναµικό σύστηµα αποκρίνεται σε διακριτά γεγονότα, δηλαδή οποιοδήποτε σύστηµα λογισµικού. Παρόλο που η τεχνική είναι τόσο γενική που µπορεί να εφαρµοστεί σε οποιοδήποτε σύστη- µα, συνηθίζεται να παράγονται υψηλού επιπέδου µοντέλα (ενισχύοντας τα χαµηλού επιπέδου ίκτυα Petri µε σηµασιολογική πληροφορία) για να ταιριάζουν καλύτερα στο υπό µελέτη σύστηµα. Στο κεφάλαιο αυτό παρουσιάζονται οι βασικοί ορισµοί, τα χαµηλού επιπέδου ίκτυα Petri και ορισµένα διαδεδοµένα υψηλού επιπέδου µοντέλα. Στο Kεφάλαιο 9 περιγράφονται σύντοµα τρεις τεχνικές που δεν «χώρεσαν» σε προηγούµενο κεφάλαιο: η γλώσσα Anna (χρησιµοποιείται για την τυπική προδιαγραφή αντικειµενοστραφών προγραµµάτων γραµµένων στη γλώσσα προγραµµατισµού Ada), το µοντέλο CSP Communicating Sequential Processes (χρησιµοποιείται για την προδιαγραφή παράλληλων συστηµάτων) και το µοντέλο ΡΙΕ (εφαρµόζεται στην τυπική περιγραφή διαλογικών συστηµάτων). Το τελευταίο Kεφάλαιο 10 του βιβλίου καταγράφει τη «διαµάχη» που υπάρχει στην κοινότητα των µηχανικών και των επιστηµόνων πληροφορικής σχετικά µε την αξία και την δυνατότητα πρακτικής εφαρµογής των τυπικών τεχνικών. Η αρχική µου σκέψη ήταν να τοποθετήσω ένα τέτοιο κεφάλαιο στην αρχή του τόµου, ώστε να είστε προετοιµασµένοι (και πεπεισµένοι) για την αξία των τυπικών προδιαγραφών. Τελικά, θεώρησα περισσότερο επωφελές να σας «εµπλέξω» στη συζήτηση, αφού θα έχετε πρώτα γνωρίσει τις τυπικές τεχνικές, ώστε να έχετε διαµορφώσει τη δική σας προσωπική άποψη (βέβαια, µπορείτε πάντα να διαβάσετε πρώτα το Kεφάλαιο 10 και µετά το υπόλοιπο βιβλίο). Σε κάθε περίπτωση το κεφάλαιο αυτό είναι σηµαντικό, καθώς συνοψίζει τις απόψεις διακεκριµένων επιστηµόνων και παραπέµπει σε άρθρα όπου αυτές αναλύονται περισσότερο (τα οποία σας συνιστώ να µελετήσετε).

14 TY IKE PO IA PAºE Περισσότερα στοιχεία για την παραγωγή τυπικών προδιαγραφών αλλά και για καθε- µία από τις τυπικές τεχνικές µπορείτε να βρείτε σε κάποιο από τα άρθρα ή τα βιβλία που σας προτείνω στο τέλος του τόµου. Όπως θα διαπιστώσετε, η υπάρχουσα βιβλιογραφία είναι εκτενής, κάτι που αποτελεί ένδειξη της βαρύτητας του αντικειµένου. Οφείλω να σας προειδοποιήσω ότι, µελετώντας τον τόµο, θα συναντήσετε αρκετές νέες και δύσκολες έννοιες. Θα χρειαστεί επιµονή και προσπάθεια από την πλευρά σας για να τις «κατακτήσετε». Στον τόµο (και περισσότερο στα Kεφάλαια 4 8) περιέχεται πλήθος παραδειγµάτων, ασκήσεων αυτοαξιολόγησης και δραστηριοτήτων. Οι απαντήσεις στις δραστηριότητες δίνονται µέσα στο ίδιο το κείµενο, ενώ οι ασκήσεις αυτοαξιολόγησης απαντώνται συγκεντρωτικά στο τέλος του τόµου. Σας συνιστώ να δοκιµάσετε όλες τις ασκήσεις και τις δραστηριότητες. Οι δεξιότητες ανάπτυξης τυπικών προδιαγραφών αποκτώνται µόνο µέσα από την πρακτική εφαρµογή και η επίλυση ασκήσεων αποτελεί ένα καλό σηµείο εκκίνησης. Από την άλλη πλευρά, επιλύνοντας τις ασκήσεις θα µπορέσετε να αυτοαξιολογείτε την πρόοδό σας και να εντοπίζετε έγκαιρα τα σηµεία που σας δυσκολεύουν, ώστε να µπορέσετε να τα αντιµετωπίσετε (µε τη βοήθεια του διδάσκοντα, αν χρειαστεί). Μη διστάσετε να ανατρέξετε και στο γλωσσάριο όρων που παρατίθεται στο τέλος του τόµου, όταν συναντήσετε µια δύσκολη έννοια. Τελικά, ο στόχος του βιβλίου δεν είναι µόνο να σας διδάξει ορισµένες τυπικές τεχνικές, αλλά και να σας «εµπλέξει» στον προβληµατισµό που συνοδεύει τη χρήση αυτών των τόσο ισχυρών εργαλείων. Πράγµατι, οι τυπικές τεχνικές είναι εργαλεία και ως εκ τούτου η εκµάθησή τους είναι δυνατή µόνο µέσα από την πρακτική εφαρ- µογή τους. Αυτή όµως απαιτεί µια ανάλογη στάση από το µηχανικό λογισµικού υπέρ των τυπικών τεχνικών, ώστε να δηµιουργεί τις ευκαιρίες για την εφαρµογή τους. Ελπίζω ότι θα υιοθετήσετε κι εσείς τον «συγκαλυµµένο» αυτό στόχο, ο οποίος µπορεί να σας οδηγήσει στην ανάπτυξη περισσότερο ποιοτικού λογισµικού. Εάν δεν σας έπεισα ακόµη για την αξία µελέτης του τόµου, παραθέτω ένα τελευταίο επιχείρηµα. Ορισµένοι διεθνώς αναγνωρισµένοι επιστήµονες ισχυρίζονται ότι στο µέλλον είναι πιθανό να εµφανιστεί το επάγγελµα του «µηχανικού προδιαγραφών», ο οποίος, κατέχοντας τη θεωρία και την πράξη ορισµένων τυπικών τεχνικών, θα µπορεί να παράγει τυπικές προδιαγραφές για οποιοδήποτε πρόβληµα κατ απαίτηση του πελάτη. Μελετήστε, λοιπόν, τον τόµο αυτό και προετοιµαστείτε για το µέλλον