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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

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

2

3 ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα ΣΧΕ ΙΑΣΜΟΣ ΛΟΓΙΣΜΙΚΟΥ Τόµος B' Tεχνολογία Λογισµικού II BAΣIΛEIOΣ BEΣKOYKHΣ ρ Hλεκτρολόγος Mηχανικός και Mηχανικός Yπολογιστών ΠATPA 2001

4 ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛ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: x Kωδικός Έκδοσης: ΠΛH 24/2 Copyright 2000 για την Ελλάδα και όλο τον κόσµο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Οδός Παπαφλέσσα & Υψηλάντη, Πάτρα Τηλ: (061) , Φαξ: (061) Σύµφωνα µε το Ν. 2121/1993, απαγορεύεται η συνολική ή αποσπασµατική αναδηµοσίευση του βιβλίου αυτού ή η αναπαραγωγή του µε οποιοδήποτε µέσο χωρίς την άδεια του εκδότη.

5 ÂÚÈ fiìâó K º π 1 TÔ ÔÁÈÛÌÈÎfi Û ÌÂÚ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις H πορεία της δοµηµένης ανάλυσης και σχεδίασης Σύνοψη ενότητας Xαρακτηριστικά του σύγχρονου λογισµικού Σύνοψη ενότητας Eξελίξεις και τάσεις στην ανάπτυξη του λογισµικού Πηγές πληροφοριών και εργαλεία Case για τον αναγνώστη του βιβλίου Σελίδες στο Internet Ένα χρήσιµο εργαλείο Σύνοψη κεφαλαίου K º π 2 EÈÛ ÁˆÁ ÛÙËÓ AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ T ÓÔÏÔÁ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Aδυναµίες της δοµηµένης ανάλυσης και σχεδίασης Bασικές έννοιες της αντικειµενοστρεφούς τεχνολογίας Oρισµοί Σχέσεις µεταξύ κλάσεων Σύνοψη ενότητας Ένας άλλος τρόπος παράστασης του κόσµου Σύνοψη ενότητας Συµβολισµοί και πρότυπα Σύνοψη κεφαλαίου K º π 3 EÈÛ ÁˆÁ ÛÙËÓ AÓÙÈÎÂÌÂÓÔÛÙÚÂÊ AÓ Ï ÛË Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις... 47

6 6 TEXNO O IA O I MIKOY II 3.1 Ένα γενικό πλαίσιο για αντικειµενοστρεφή ανάπτυξη λογισµικού Σύνοψη ενότητας H έννοια της Περίπτωσης Xρήσης Eισαγωγή Tι είναι «Περίπτωση Xρήσης»; Πώς προδιαγράφεται µια περίπτωση χρήσης; Ένα σηµείο αναφοράς Σύνοψη ενότητας Προσδιορισµός των λειτουργικών απαιτήσεων ως περιπτώσεων χρήσης Σύνοψη ενότητας Aπό τις περιπτώσεις χρήσης στο µοντέλο ανάλυσης Tο µοντέλο ανάλυσης Kλάσεις στο µοντέλο ανάλυσης Πακέτα ανάλυσης Σύνοψη ενότητας Bήµατα στην ανάλυση Aρχιτεκτονική ανάλυση Aνάλυση περιπτώσεων χρήσης Aνάλυση κλάσεων Aνάλυση πακέτων Σύνοψη ενότητας Σύνοψη κεφαλαίου K º π 4 EÚÁ ÏÂ Case Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Xαρακτηριστικά και πλαίσιο λειτουργίας Σύνοψη ενότητας Tαξινόµηση των εργαλείων Case Tαξινόµηση σύµφωνα µε τη λειτουργία Tαξινόµηση σύµφωνα µε την εµβέλεια Kριτήρια αξιολόγησης και επιλογής εργαλείων Case Σύνοψη κεφαλαίου

7 EPIEXOMENA 7 K º π 5 ÈÔ ÎËÛË ËÌ ÙÈÛÌÒÓ ÔÁÈÛÌÈÎÔ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Bασικές έννοιες H έννοια του σχηµατισµού λογισµικού H έννοια της βασικής γραµµής Σύνοψη ενότητας ιοίκηση σχηµατισµών Λογισµικού Eργασίες διοίκησης σχηµατισµών Λογισµικού Kαθορισµός σχηµατισµών Έλεγχος µεταβολών σχηµατισµών Έλεγχος Ποιότητας σχηµατισµών Έκθεση κατάστασης σχηµατισµών Σύνοψη ενοτήτων 5.2 και Eργαλεία διοίκησης σχηµατισµών Λογισµικού Σύνοψη κεφαλαίου K º π 6 È ÛÊ ÏÈÛË ÔÈfiÙËÙ ÔÁÈÛÌÈÎÔ Σκοπός, Προσδοκώµενα αποτελέσµατα, Έννοιες κλειδιά Eισαγωγικές παρατηρήσεις Ποιότητα Λογισµικού Σύνοψη ενότητας Eπιθεωρήσεις ποιότητας Λογισµικού Πρότυπα Λογισµικού Πρότυπα και διασφάλιση ποιότητας Λογισµικού Πρότυπα τεκµηρίωσης Λογισµικού Σύνοψη κεφαλαίου Aπαντήσεις Aσκήσεων Aυτοαξιολόγησης Aπαντήσεις ραστηριοτήτων Γλωσσάρι Συµπληρωµατική Bιβλιογραφία Bιβλιογραφία προαιρετική

8

9 TÔ ÔÁÈÛÌÈÎfi Û ÌÂÚ ÎÔapplefi Σκοπός του κεφαλαίου είναι η σύνδεση µε το πρώτο µέρος του βιβλίου, το οποίο αποτέλεσε το εκπαιδευτικό υλικό της Θεµατικής Υπο Ενότητας «Τεχνολογία Λογισµικού I» και η οριοθέτηση του θεµατικού αντικειµένου του παρόντος βιβλίου µε αναφορά στα σύγχρονα χαρακτηριστικά και τις τρέχουσες τάσεις στην ανάπτυξη του λογισµικού. 1 º π ÚÔÛ ÔÎÒÌÂÓ appleôùâï ÛÌ Ù Μετά τη µελέτη του κεφαλαίου αυτού ο αναγνώστης θα είναι σε θέση να: Αναφέρει έξι σύγχρονα χαρακτηριστικά του λογισµικού και του τρόπου ανάπτυξής του, Αναφέρει τέσσερις τρέχουσες τάσεις στην ανάπτυξη του λογισµικού, καθώς και τέσσερις εξελίξεις που έπαιξαν σηµαντικό ρόλο στη διαµόρφωση αυτών των τάσεων, Εγκαθιστά στον υπολογιστή του τη δοκιµαστική έκδοση του εργαλείου CASE «Rational Rose» από το Internet ή από άλλη πηγή. ŒÓÓÔÈ ÎÏÂÈ È Λογισµικό Πολυπλοκότητα Εξελίξεις Rational Rose ÈÛ ÁˆÁÈÎ apple Ú ÙËÚ ÛÂÈ Τα πρώτα βήµατα της Τεχνολογίας Λογισµικού έγιναν µέσα σ' ένα περιβάλλον, όπου ο ρυθµός των αλλαγών που συντελούνται στην τεχνολογία των υπολογιστών, αλλά και σ' όλους τους τοµείς των ανθρώπινων δραστηριοτήτων όπου αυτοί χρησιµοποιούνται, δεν ήταν συνειδητός, σίγουρα όχι στο βαθµό που είναι σήµερα. Οι πρωτοπόροι στην έρευνα και στην πρακτική της ανάπτυξης λογισµικού αναζητούσαν τον καλύτερο τρόπο να κατασκευάζεται και να συντηρείται λογισµικό, χωρίς να γνωρίζουν ότι η έννοια «καλύτερο» ήταν µόνο σχετική, χωρίς να µπορούν να φανταστούν πόσο γρήγορα θα µεταβαλλόταν η άποψη, οι απαιτήσεις και τελικά η συνείδηση των χρηστών των υπο-

10 10 KEºA AIO 1: T π ªπ ª ƒ λογιστικών συστηµάτων, αλλά και χωρίς να µπορούν να συλλάβουν ποια µορφή θα έχουν οι υπολογιστές στο µέλλον. Σήµερα, γνωρίζουµε ότι οι υπολογιστές και κατά συνέπεια το λογισµικό βρίσκονται πρακτικά παντού και µας υποστηρίζουν σε πολλές από τις δραστηριότητές µας. Η αίσθηση και η µορφή του λογισµικού έχει εξελιχθεί. Η αλληλεπίδραση µε λογισµικό, την οποία βιώνουµε σήµερα, δε γίνεται µε λίγες και µεγάλες εφαρµογές, αλλά µε πολλές και µικρές, οι οποίες βρίσκονται κατανεµηµένες οπουδήποτε σε κάποιο δίκτυο, όπου πρόκειται να συγκλίνουν στο κοντινό µέλλον όλα τα πληροφοριακά και επικοινωνιακά συστήµατα. Ως εκ τούτου, ο τρόπος και η φιλοσοφία της ανάπτυξης λογισµικού ήταν αναγκαίο να εξελιχθούν, ώστε να ικανοποιούνται οι σύγχρονες απαιτήσεις. Ποιες είναι οι καθοριστικές εξελίξεις, τα νέα χαρακτηριστικά και οι τάσεις στην ανάπτυξη του λογισµικού; Με τα ερωτήµατα αυτά θα ασχοληθούµε στο παρόν κεφάλαιο.

11 1.1 ƒ π ª ª À π Ã π appleôúâ ÙË ÔÌËÌ ÓË Ó Ï ÛË Î È Û Â ÛË Στον πρώτο τόµο του βιβλίου αυτού ασχοληθήκαµε µε την οικογένεια προσεγγίσεων ανάπτυξης λογισµικού, η οποία χαρακτηρίζεται ως «δοµηµένη ανάλυση και σχεδίαση». Οι προσεγγίσεις αυτές εµφανίστηκαν µέσα στη δεκαετία του 1970 και ήταν κρατούσες µέχρι και το τέλος της δεκαετίας του 1980, όπου άρχισαν να κερδίζουν έδαφος διαφορετικές αντιλήψεις σχετικά µε την ανάπτυξη λογισµικού. Στη δοµηµένη ανάλυση και σχεδίαση, κάθε εφαρµογή λογισµικού θεωρείται ως µια ενιαία και σχετικά αυτοτελής, µεγάλη και σύνθετη λειτουργική µονάδα λογισµικού, η οποία είναι εξ ολοκλήρου υπεύθυνη για την επικοινωνία µε το περιβάλλον της και για την πραγµατοποίηση των υπολογιστικών «καθηκόντων» της. Αυτά τα υπολογιστικά «καθήκοντα» αναλύονται ως µια ιεραρχία απλούστερων µονάδων λογισµικού, οι οποίες επιδρούν σε δεδοµένα. Τα δεδοµένα είναι εντελώς ανεξάρτητα από τις µονάδες λογισµικού που επιδρούν σ' αυτά, στις οποίες εστιάζεται η προσοχή όλων των προσεγγίσεων ανάπτυξης λογισµικού της δοµηµένης ανάλυσης και σχεδίασης. Στη δοµηµένη ανάλυση, οι απαιτήσεις από το λογισµικό περιγράφονται µε τη βοήθεια δοµηµένου κειµένου, καθώς και µε ένα διάγραµµα (µοντέλο παράστασης λογισµικού), το οποίο ονοµάζεται διάγραµµα ροής δεδοµένων. Το διάγραµµα αυτό είναι κεντρικό στοιχείο όλων των προσεγγίσεων της οικογένειας της δοµηµένης ανάλυσης και σχεδίασης και χρησιµεύει ως βάση για την αποκάλυψη της ιεραρχίας µονάδων λογισµικού που αναφέραµε. Από το διάγραµµα ροής δεδοµένων, ακολουθώντας κάποια βήµατα, φτάνουµε στο διάγραµµα δοµής προγράµµατος. Το επίπεδο λεπτοµέρειας του διαγράµµατος δοµής προγράµµατος, είναι αντίστοιχο µε εκείνο του διαγράµµατος ροής δεδοµένων από το οποίο προήλθε. Στο διάγραµµα αυτό, περιγράφεται η ιεραρχία των µονάδων που αποτελούν την εφαρµογή λογισµικού, δηλαδή το ποιες είναι οι µονάδες αυτές, καθώς και η επικοινωνία µεταξύ τους, δηλαδή οι κλήσεις που κάνει κάθε µονάδα σε άλλες και οι παράµετροι που ανταλλάσσονται κατά τις κλήσεις αυτές. Προκειµένου να µπορεί να γραφεί ο πηγαίος κώδικας, πρέπει να γίνει µια κατά το δυνατόν λεπτοµερής περιγραφή κάθε µονάδας λογισµικού που περιέχεται στο διάγραµµα δοµής προγράµµατος. Η περιγραφή αυτή γίνεται µε τη βοήθεια κάποιας υποθετικής και άτυπης «γλώσσας προγραµµατισµού», η οποία δε διαθέτει αυστηρότητα στη σύνταξη και τη γραµµατική και αναφέρεται ως ψευδοκώδικας. Τα ενδιάµεσα αυτά προϊόντα έχουν ιδιαίτερη σηµασία στη δοµηµένη ανάλυση και σχεδίαση, αποτελώντας τη ραχοκοκαλιά της ΠPO IAΓPAΦH TΩN AΠAITHΣEΩN IAΓPAMMA POHΣ E OMENΩN IAΓPAMMA OMHΣ ΠPOΓPAMMATOΣ ΨEY OKΩ IKAΣ Ì 1.1 Προϊόντα της δοµηµένης ανάλυσης και σχεδίασης

12 12 KEºA AIO 1: T π ªπ ª ƒ σχεδίασης του λογισµικού, όπως φαίνεται στο Σχήµα 1.1. Όλες οι έννοιες που συγκροτούν το οικοδόµηµα που µόλις περιγράψαµε, σχετίζονται µε τα χαρακτηριστικά των γλωσσών προγραµµατισµού που χρησι- µοποιούνται στην υλοποίηση της εφαρµογής λογισµικού. Οι µονάδες λογισµικού σε τελική ανάλυση δεν είναι παρά οι διαδικασίες (procedures), οι συναρτήσεις (functions), είτε οι υπορρουτίνες (subroutines) γλωσσών προγραµµατισµού όπως η Pascal, η C, η FORTRAN, η BASIC και η COBOL. Με τη σειρά τους, και σε πολύ µεγαλύτερο βαθµό, οι γλώσσες προγραµµατισµού σχετίζονται µε τα χαρακτηριστικά του υλικού (hardware) των υπολογιστών της εποχής στην οποία αναφερόµαστε: ακολουθιακή εκτέλεση εντολών, απλές δυνατότητες επικοινωνίας µε το περιβάλλον µόνο µε τη µορφή κειµένου, καθώς και περιορισµένες (σε σχέση µε όσα ακολούθησαν) επιδόσεις και αποθηκευτικές ικανότητες. Χαρακτηριστικά όπως η πολυεπεξεργασία, η παράλληλη εκτέλεση εντολών, η επικοινωνία µε το χρήστη µε τη βοήθεια περιβάλλοντος γραφικών, η δυνατότητα σύνθεσης και αναπαραγωγής ήχου και εικόνας, κ.ά., έγιναν πραγµατικότητα µέσα στη δεκαετία του 1990 και κυρίως τα λίγα τελευταία χρόνια. Σταδιακά ενσωµατώθηκαν στις γλώσσες προγραµµατισµού και άσκησαν µε τον τρόπο τους πίεση για εξέλιξη του τρόπου κατασκευής του λογισµικού, ο οποίος δεν ήταν ούτως ή άλλως χωρίς προβλήµατα. Οι εξελίξεις αυτές έφεραν σε νέο έδαφος την Τεχνολογία Λογισµικού. Η δοµηµένη ανάλυση και σχεδίαση αποτέλεσε το βάθρο για την εξέλιξη της φιλοσοφίας ανάπτυξης λογισµικού. Σήµερα, η κρατούσα αντίληψη στην ανάπτυξη λογισµικού αναφέρεται ως αντικειµενοστρεφής τεχνολογία ή παράδειγµα (object oriented technology, paradigm). Η φιλοσοφία αυτή είναι αρκετά γενική, ώστε η δοµηµένη ανάλυση και σχεδίαση να µπορεί να θεωρηθεί υποσύνολό της. Επίσης, µπορεί να υιοθετηθεί από πολλές σύγχρονες µεθοδολογίες και εργαλεία, τα οποία υλοποιούν ευέλικτα και προσαρµόσιµα µοντέλα κύκλου ζωής λογισµικού. Όποιο δρόµο και αν ακολουθήσουµε, το τελικό ζητούµενο είναι να προσδιορίσουµε ποιες είναι εκείνες οι µονάδες λογισµικού που θα «κάνουν τη δουλειά», όπως και αν αυτές ονοµάζονται. Ο καθορισµός των προδιαγραφών των απαιτήσεων από το λογισµικό, αλλά και οι εργασίες του ελέγχου και της επαλήθευσης του λογισµικού, θα εξακολουθήσουν να έχουν την ίδια βαρύνουσα σηµασία.

13 1.2 à ƒ ƒπ π À À Ã À π ªπ À 13 fiïèô ÌÂÏ ÙË Ως σύνδεση µε τα προηγούµενα, προτρέπεστε να µελετήσετε τις ενότητες του βιβλίου «Τεχνολογία Λογισµικού I» στις οποίες ορίζονται: (α) το διάγραµµα ροής δεδοµένων, (β) το έγγραφο προδιαγραφών των απαιτήσεων από το λογισµικό, (γ) το διάγραµµα δοµής προγράµµατος, (δ) το έγγραφο περιγραφής του σχεδίου του λογισµικού, (ε) ο ψευδοκώδικας, (στ) τα βήµατα µετάβασης από το διάγραµµα ροής δεδοµένων στο διάγραµµα δοµής προγράµµατος. ÓÔ Ë ÂÓfiÙËÙ Η δοµηµένη ανάλυση και σχεδίαση χρησιµοποιεί για την περιγραφή του λογισµικού ένα σύνολο από ενδιάµεσα προϊόντα που χαρακτηρίζουν την φιλοσοφία της, δηλαδή την αποκάλυψης µιας ιεραρχίας ενεργών συστατικών λογισµικού, καθώς και ανεξάρτητων δεδοµένων. Η εξέλιξη των χαρακτηριστικών και των δυνατοτήτων του υλικού επιτρέπουν την αναθεώρηση της αντι- µετώπισης αυτής µε την εισαγωγή της αντικειµενοστρεφούς τεχνολογίας. 1.2 Ã Ú ÎÙËÚÈÛÙÈÎ ÙÔ Û Á ÚÔÓÔ ÏÔÁÈÛÌÈÎÔ Πώς είναι το λογισµικό σήµερα; Ποια είναι τα χαρακτηριστικά του; Σε τι θυµίζει τις εφαρµογές που έτρεχαν σε µια «ψυχρή» µονόχρωµη οθόνη ενός τερµατικού; Ποια είναι τα χαρακτηριστικά των χρηστών του; Αυτά είναι µερικά λογικά ερωτήµατα, τα οποία αιτιολογούν την παράθεση ορισµένων σύγχρονων χαρακτηριστικών του λογισµικού, προκειµένου να συνθέσουµε µια γενική εικόνα, η οποία θα µας είναι χρήσιµη στην αιτιολόγηση ή έστω την αντίληψη των σύγχρονων εξελίξεων της επιστήµης της Τεχνολογίας Λογισµικού (Σχήµα 1.2).

14 14 KEºA AIO 1: T π ªπ ª ƒ Bρίσκεται παντού Eίναι απλό στη χρήση Λειτουργεί σε δίκτυο Ì 1.2 Κοµµάτια που συνθέτουν το παζλ του λογισµικού σήµερα. Eίναι ανεξάρτητο από το υλικό Eίναι πολύπλοκο Γίνεται απαραίτητο Πρώτον, σήµερα το λογισµικό βρίσκεται παντού. Αποτελεί µέρος όλων των σύγχρονων ηλεκτρονικών ψηφιακών διατάξεων, ανεξάρτητα από το αν είναι ορατό στον χρήστη αυτών. Μπορεί κανείς να φέρει αναρίθµητα παραδείγµατα, από τα ολοένα και µικρότερα ψηφιακά εργαλεία, µέχρι το σύστηµα ελέγχου της λειτουργίας του κινητήρα του αυτοκινήτου, αλλά και του πλυντηρίου µας. εύτερον, το λογισµικό γίνεται ολοένα και περισσότερο απλό στη χρήση και προσιτό σε οποιονδήποτε. Με τη βοήθεια του λογισµικού οι χρήστες χειρίζονται τις ψηφιακές συσκευές µέσω παραστάσεων που πλησιάζουν αυτές του πραγµατικού κόσµου, έχοντας στη διάθεσή τους από παράθυρα, εικόνα και ήχο, µέχρι και «εξωτικές» µέχρι πρότινος ικανότητες, όπως αναγνώριση φωνής και εικονική πραγµατικότητα. Τρίτον, σήµερα το λογισµικό στεγάζεται σε δίκτυο, είτε στο αυτοτελές εταιρικό δίκτυο, είτε στο καθολικά πλέον διαδεδοµένο Internet. Σε ειδικές µόνο περιπτώσεις λογισµικό λειτουργεί αυτοτελώς σε κάποιον µη δικτυωµένο υπολογιστή. Λειτουργώντας σε δικτυακό περιβάλλον, κάθε εφαρµογή λογισµικού επιτελεί τις λειτουργίες για τις οποίες προορίζεται συνεργαζόµενη και µε άλλες εφαρµογές που βρίσκονται κάπου οπουδήποτε στο ίκτυο. Τέταρτον, το λογισµικό τείνει να γίνεται ολοένα και περισσότερο ανεξάρτητο από τη µηχανή στην οποία τρέχει και µάλιστα σε επίπεδο εκτελέσιµου κώδικα. Ο κατασκευαστής λογισµικού µπορεί να επικεντρώσει την προσοχή του στην λειτουργικότητα και την ορθότητα των εφαρµογών που κατα-

15 À æ 15 σκευάζει και όχι στις τεχνικές λεπτοµέρειες της µηχανής, όπου αυτές θα τρέχουν. Το χαρακτηριστικό αυτό (µεταφερσιµότητα) αποτέλεσε επιδίωξη και σε παλαιότερες εποχές της επιστήµης των υπολογιστών και µερικώς επετεύχθη, σε επίπεδο όµως πηγαίου και όχι εκτελέσιµου κώδικα. Πέµπτον και λογικά επαγόµενο από τα παραπάνω, το λογισµικό γίνεται ολοένα και περισσότερο πολύπλοκο στη δοµή και στη συγγραφή του. Είναι πλέον δεδοµένη η αύξηση των πεδίων χρήσης του λογισµικού και σε εφαρ- µογές εκτός εργαστηρίου και επιχειρήσεων. Το λογισµικό έρχεται περισσότερο κοντά στο µη καταρτισµένο χρήστη, γεγονός που δηµιουργεί την ανάγκη για ενσωµάτωση εννοιών, συµβόλων και αναπαραστάσεων που είναι περισσότερο κοντά στην πραγµατικότητα που αντιπροσωπεύει το περιβάλλον εφαρµογής του λογισµικού. υνατότητες όπως η αναπαράσταση εικονικής πραγµατικότητας, η λειτουργία σε ανοµοιογενές δικτυακό περιβάλλον, η συνεργασία µε άλλες εφαρµογές στο δίκτυο και η ανεξαρτησία από το υλικό, δεν είναι απλή υπόθεση να πραγµατοποιούνται. Τέλος, είναι φανερό ότι το λογισµικό γίνεται ολοένα και περισσότερο απαραίτητο και υπεισέρχεται σε κρίσιµους τοµείς της ζωής µας. Κρίσιµους, όχι µόνο στην επαγγελµατική σφαίρα, αλλά και στην επικοινωνία, την εκπαίδευση και τελικά την ίδια τη λειτουργία του κοινωνικού οικοδοµήµατος. Χωρίς λογισµικό δεν είναι δυνατό να λειτουργήσουν τα αεροδρόµια, οι σύγχρονες ιατρικές συσκευές, οι τράπεζες, οι τηλεπικοινωνίες, και πολλές άλλες απαραίτητες στο σύγχρονο άνθρωπο υπηρεσίες. Από την άλλη, οφείλουµε να σηµειώσουµε ότι, αν ο ιδιωτικός χαρακτήρας των δεδοµένων που αφορούν πολλές πλευρές της ζωής µας σήµερα απειλείται, αυτό γίνεται µε το λογισµικό ως απαραίτητο εργαλείο στα χέρια όσων την απειλούν. Είναι χρήσιµο, λοιπόν, οι ασχολούµενοι µε την ανάπτυξη λογισµικού να συνειδητοποιούµε και τις µη καθαρά τεχνικές πλευρές του αντικειµένου της επιστήµης µας. ÓÔ Ë ÂÓfiÙËÙ Το λογισµικό µεταβάλλεται µε ραγδαίους ρυθµούς. Τρέχει, πλέον, πάνω σε δίκτυο και γίνεται ολοένα και περισσότερο φιλικό αλλά και απαραίτητο σε πολλές πλευρές της ζωής µας, µε όλα τα καλά και τα κακά που αυτό συνεπάγεται. Όλα αυτά επιφέρουν, ασφαλώς, αύξηση της πολυπλοκότητας του λογισµικού, το οποίο πλέον λειτουργεί σε ανοµοιογενή και κατανεµηµένα περιβάλλοντα. Η τεχνολογία λογισµικού βρίσκεται προ µιας νέας πραγµατικότητας και καλείται να προσαρµόσει τις προσεγγίσεις της στις νέες αυτές συνθήκες.

16 16 KEºA AIO 1: T π ªπ ª ƒ 1.3 ÍÂÏ ÍÂÈ Î È Ù ÛÂÈ ÛÙËÓ Ó appleù ÍË ÙÔ ÏÔÁÈÛÌÈÎÔ Η κατασκευή λογισµικού µε τα χαρακτηριστικά που αναφέρονται στην ενότητα 1.2 και, ασφαλώς, µε τις απαιτήσεις να κάνει τη δουλειά για την οποία προορίζεται και να την κάνει σωστά, να κατασκευάζεται εντός χρονοδιαγράµµατος και προϋπολογισµού, να µην περιέχει σφάλµατα, να συντηρείται εύκολα, αλλά και να είναι επίκαιρο και ανταγωνιστικό ως προϊόν, είναι η πρόκληση µε την οποία βρίσκονται αντιµέτωποι οι κατασκευαστές λογισµικού σήµερα. Είναι αναµενόµενο, πολλά από τα χαρακτηριστικά της διαδικασίας ανάπτυξης λογισµικού να πρέπει να εξελίσσονται συνεχώς ώστε να επιτυγχάνεται το επιθυµητό αποτέλεσµα. Η Τεχνολογία Λογισµικού οφείλει να παρέχει την απαιτούµενη υποστήριξη και τεκµηρίωση, ώστε η κατασκευή του λογισµικού να είναι µια ιδιαίτερα ευέλικτη και προσαρµόσιµη διαδικασία. Ορισµένες από τις εξελίξεις που έπαιξαν σηµαντικό ρόλο στη θεµελίωση της ανάγκης νέων προσεγγίσεων στην ανάπτυξη του λογισµικού, είναι οι ακόλουθες: Η προσήλωση των κατασκευαστών σε αυστηρές διαδικασίες και πρότυπα που είτε ήταν αποτέλεσµα προσπάθειας σύγκλισης υπαρχουσών πρακτικών, είτε είχαν µικρή σχέση µε τους κατασκευαστές λογισµικού, αποδείχθηκε αναποτελεσµατική. Στην πράξη, οι παραδοσιακές προσεγγίσεις ξεπεράστηκαν ως απλά ανεπαρκείς, µιας και η ανάπτυξη του λογισµικού σπάνια γίνονταν «κατά γράµµα». Από την άλλη πλευρά, η ανεπάρκεια που µόλις αναφέρθηκε, συχνά γεννούσε το αντίθετο φαινόµενο, δηλαδή την πλήρη «αναρχία» στην ανάπτυξη λογισµικού. Και πάλι όµως, η άναρχη ανάπτυξη οδηγούσε (και οδηγεί) µε προδιαγεγραµµένη ακρίβεια σε αποτυχηµένα έργα ανάπτυξης λογισµικού. Ο ρυθµός µε τον οποίο αναπτύχθηκε η τεχνολογία του υλικού των υπολογιστών ξεπέρασε κάθε πρόβλεψη, δίνοντας στους χρήστες εργαλεία και δυνατότητες αξιοποίησης σε νέες περιοχές εφαρµογών. Η ανάδειξη του Internet, το οποίο αρχικά δηµιουργήθηκε για στρατιωτικούς σκοπούς στις ΗΠΑ, στο νέο µέσο επικοινωνίας του 21ου αιώνα, δηµιούργησε µια νέα πλατφόρµα πάνω στην οποία τρέχει το λογισµικό. Τα σηµαντικότερα χαρακτηριστικά αυτής είναι η ανοµοιογένεια, η µεγάλη γεωγραφική κατανοµή, η µη ασφαλής επικοινωνία, αλλά και η εκρηκτικά αυξανόµενη ζήτηση για υπηρεσίες και εφαρµογές λογισµικού που τρέχουν πάνω σ' αυτή τη νέα πλατφόρµα.

17 1.3 π π π π À À π ªπ À 17 Η σύγκλιση, µετά από αρκετό καιρό, των επικρατέστερων από τις νέες αντικειµενοστρεφείς προσεγγίσεις ανάπτυξης λογισµικού και η επαφή τους µε τη βιοµηχανική πρακτική, µε την οποία θα ασχοληθούµε εκτενέστερα στο κεφάλαιο 3. Μπορούµε, λοιπόν, να αναγνωρίσουµε ότι σ' αυτό το πλαίσιο εντάσσονται οι παρακάτω τάσεις στην ανάπτυξη του λογισµικού, οι οποίες έχουν πλέον διαφανεί µε αρκετή σαφήνεια: Τα µοντέλα κύκλου ζωής που ακολουθούνται έχουν γίνει ευέλικτα και παραµετρικά, δηλαδή προσαρµόζονται στα εκάστοτε χαρακτηριστικά του περιβάλλοντος ανάπτυξης λογισµικού, αλλά και του θεµατικού πεδίου της υπό ανάπτυξη εφαρµογής (application domain). Η τεκµηρίωση του λογισµικού, δηλαδή το σύνολο των προϊόντων που περιγράφουν το λογισµικό και παράγονται σ' όλες τις φάσεις του κύκλου ζωής αυτού, δεν ακολουθεί αυστηρά πρότυπα δοµής, όπως στο παρελθόν, αλλά προσαρµόζεται στις εκάστοτε συνθήκες ανάπτυξης, τα εργαλεία που χρησιµοποιούνται και την υπάρχουσα εµπειρία. Τα περιβάλλοντα ανάπτυξης (γλώσσες προγραµµατισµού, βιβλιοθήκες συστατικών λογισµικού, εργαλεία συγγραφής κώδικα, εργαλεία ελέγχου προγράµµατος, βιβλιοθήκες αναφοράς) έχουν γίνει ιδιαίτερα σύνθετα και ολοκληρωµένα, υποστηρίζοντας τον προγραµµατιστή σε περισσότερες εργασίες απ' ό,τι στο παρελθόν. Ο ρόλος των εργαλείων CASE έχει εξελιχθεί. Τα εργαλεία CASE πλέον δε φιλοδοξούν να αυτοµατοποιήσουν πλήρως την παραγωγή λογισµικού. Αρκετά από αυτά συνεργάζονται στενά µε τα περιβάλλοντα ανάπτυξης λογισµικού, µε σκοπό να εκτελέσουν σωστά επιρρεπείς σε σφάλµατα εργασίες, να υποστηρίξουν την τεκµηρίωση του λογισµικού από τα πρώτα στάδια ανάπτυξης (προδιαγραφή) και την διατήρησή της σε επίκαιρη κατάσταση, να αυτοµατοποιήσουν ένα µέρος της παραγωγής πηγαίου κώδικα και γενικότερα, να υποστηρίξουν τους κατασκευαστές λογισµικού. Μια αναλυτική αναφορά στο θέµα των εργαλείων CASE θα γίνει στο κεφάλαιο 4 του παρόντος βιβλίου. Όσα µόλις αναφέρθηκαν δεν αποτελούν, ασφαλώς, κοσµογονία, αλλά φυσική εξέλιξη ενός νέου κλάδου της µηχανικής, της Τεχνολογίας Λογισµικού, η οποία εντάσσεται στην οικογένεια τεχνικών επιστηµών µε τη µεγαλύτερη και πιο ραγδαία ανάπτυξη που γνώρισε µέχρι σήµερα η ιστορία, στις επι-

18 18 KEºA AIO 1: T π ªπ ª ƒ στήµες της Πληροφορικής. Το ζητούµενο από την Τεχνολογία Λογισµικού παραµένει το ίδιο, και, όπως χαρακτηριστικά αναφέραµε στον πρώτο τόµο, δεν είναι άλλο από την εύρεση και θεµελίωση µεθόδων για να περιγράφεται, να κατασκευάζεται και να συντηρείται Λογισµικό. Ú ÛÙËÚÈfiÙËÙ 1.1 Αναφέρετε περιληπτικά, σε λιγότερο από δύο γραµµές για καθεµία, τις τέσσερις εξελίξεις και τις τέσσερις σύγχρονες τάσεις στην ανάπτυξη του λογισµικού. Μπορείτε να αναγνωρίσετε συσχετίσεις µεταξύ τους; 1.4 ËÁ appleïëúôêôúèòó Î È ÂÚÁ ÏÂ CASE ÁÈ ÙÔÓ Ó ÁÓÒÛÙË ÙÔ È Ï Ô Η αναφορά σε σύγχρονες εξελίξεις στην τεχνολογία λογισµικού δεν είναι δυνατό να περιορίζεται στην έντυπη µορφή οποιουδήποτε συγγράµµατος. Η ρευστότητα των εξελίξεων είναι µεγάλη και είναι χρήσιµο αλλά και εφικτό, ο αναγνώστης να έχει πρόσβαση στην υπάρχουσα σχετική πληροφόρηση. Η εφικτότητα αυτή οφείλεται στο Internet, η πρόσβαση στο οποίο θεωρείται τουλάχιστον πολύ χρήσιµη σ' όποιον ασχολείται µε την Τεχνολογία Λογισµικού ÂÏ Â ÛÙÔ Internet Θα πρέπει να σηµειωθεί ότι οι πηγές πληροφοριών που υπάρχουν στο Internet σχετικά µε την τεχνολογία λογισµικού και ιδιαίτερα µε την αντικει- µενοστρεφή τεχνολογία είναι πάρα πολλές και δεν είναι δυνατόν να αναφερθούν όλες στο βιβλίο αυτό. Οι κόµβοι ή διευθύνσεις που δίνονται στη συνέχεια είναι αφ' ενός οι απαραίτητοι για την παρακολούθηση του βιβλίου (σηµειώνονται µε «*») και αφ' ετέρου γενικά γνωστές πηγές πληροφοριών. Ο αναγνώστης προτρέπεται να αναζητήσει και µόνος του πηγές πληροφόρησης στο Internet είτε ξεκινώντας από κάποιον από τους κόµβους που δίνονται στη συνέχεια, είτε από κάποια µηχανή αναζήτησης.

19 1.4 ƒ º ƒπø π ƒ π CASE π ø À µπµ π À 19 ΙΕΥΘΥΝΣΗ (*) (*) rbse.jsc.nasa.gov/virt lib /soft eng.html ΠΕΡΙΕΧΟΜΕΝΟ Η σελίδα της Computer Society του ΙΕΕΕ Η σελίδα της Association for Computing Machinery Σελίδα µε υλικό τεκµηρίωσης για την UML Η σελίδα του Object Management Group Το Iνστιτούτο Τεχνολογίας Λογισµικού του πανεπιστηµίου Carnegie Mellon Πηγές τεκµηρίωσης για την Τεχνολογία Λογισµικού από µεγάλους εκδοτικούς οίκους On line πηγές πληροφοριών για ανάπτυξη λογισµικού και information technology Μια εικονική βιβλιοθήκη Τεχνολογίας Λογισµικού Χρήσιµες µηχανές αναζήτησης Χρησιµοποιήστε λέξεις κλειδιά όπως «software engineering resources» ŒÓ Ú ÛÈÌÔ ÂÚÁ ÏÂ Ô Ένα ιδιαίτερα χρήσιµο εργαλείο CASE, το οποίο θα χρησιµοποιήσουµε σε επόµενα κεφάλαια του βιβλίου, είναι το εργαλείο Rational Rose. Πρόκειται για το περισσότερο γνωστό εργαλείο ανάλυσης και σχεδίασης µε την Ενοποιηµένη Προσέγγιση, την οποία θα παρουσιάσουµε στο κεφάλαιο 3 του βιβλίου αυτού. Μια δοκιµαστική, αλλά πλήρως λειτουργική έκδοση του εργαλείου διατίθεται στην διεύθυνση internet την οποία αναφέρουµε µε την επιφύλαξη να αλλάξει χωρίς προειδοποίηση, όπως όχι σπάνια συµβαίνει. Παροτρύνεστε, ξεκινώντας από τη διεύθυνση αυτή, να «κατεβάσετε» τη δοκιµαστική έκδοση του Rose στον υπολογιστή σας και να την εγκαταστήσετε ακολουθώντας τις αναλυτικές οδηγίες που δίνονται. Το εργαλείο Rose θα σας είναι απαραίτητο κατά την ενασχόλησή σας µε τις ασκήσεις και τις δραστηριότητες του κεφαλαίου 3.

20 20 KEºA AIO 1: T π ªπ ª ƒ Ú ÛÙËÚÈfiÙËÙ 1.2 Εγκαταστήστε το λογισµικό Rational Rose στον υπολογιστή που εργάζεστε, ακολουθώντας τις αναλυτικές οδηγίες που περιλαµβάνονται στο αρχείο που «κατεβάσατε» από το Internet και περιπλανηθείτε στις οθόνες του. Μήν ανησυχείτε, αν δεν καταλαβαίνετε τίποτε. Οι περισσότερες από τις έννοιες που απαιτούνται για τη χρήση του προγράµµατος θα παρουσιαστούν στα κεφάλαια 2 και 3 του παρόντος βιβλίου. ÓÔ Ë KÂÊ Ï Ô Η δοµηµένη ανάλυση και σχεδίαση κυριάρχησε για πολλά χρόνια στη θεωρία και την πρακτική της ανάπτυξης λογισµικού και, ακόµα και σήµερα µπορούµε να θεωρούµε ότι πολλές από τις εφαρµογές που λειτουργούν έχουν κατασκευαστεί σύµφωνα µε τη φιλοσοφία της. Τα συσσωρευµένα προβλήµατα και οι εξελίξεις στον τοµέα των υπολογιστών, αλλά και η εξάπλωση του Internet και των εφαρµογών του, δηµιούργησαν µια νέα πραγµατικότητα για την Τεχνολογία Λογισµικού. Η προσέγγιση που είναι κυρίαρχη σήµερα, αναφέρεται ως αντικειµενοστρεφής και αποτελεί υπερσύνολο της δοµηµένης ανάλυσης και σχεδίασης. Θα προσεγγίσουµε το αντικείµενο µε τη βοήθεια ενός εργαλείου CASE και µε συχνές αναφορές σε πηγές πληροφοριών στο Internet.

21 EÈÛ ÁˆÁ ÛÙËÓ AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ T ÓÔÏÔÁ ÎÔapplefi Σκοπός του κεφαλαίου είναι να εισάγει τον αναγνώστη στις βασικές έννοιες που χρησιµοποιούνται στην αντικειµενοστρεφή τεχνολογία και να εισάγει την ορολογία και τα βασικά στοιχεία των συµβολισµών που θα χρησιµοποιηθούν στη συνέχεια. 2 º π ÚÔÛ ÔÎÒÌÂÓ appleôùâï ÛÌ Ù Μετά τη µελέτη του κεφαλαίου αυτού ο αναγνώστης θα είναι σε θέση να: Αναφέρει έξι αδυναµίες της δοµηµένης φιλοσοφίας στην αντιµετώπιση των οποίων µπορεί να συµβάλλει η αντικειµενοστρεφής τεχνολογία, Ορίζει πέντε βασικές έννοιες της αντικειµενοστρεφούς τεχνολογίας, Ορίζει τρεις σχέσεις µεταξύ κλάσεων, οι οποίες χρησιµοποιούνται στην αντικειµενοστρεφή τεχνολογία, Αναγνωρίζει τους βασικούς συµβολισµούς της UML για την παράσταση κλάσεων και σχέσεων µεταξύ τους. ŒÓÓÔÈ ÎÏÂÈ È Αντικειµενοστρεφής τεχνολογία Κλάση Αντικείµενο Πεδίο Μέθοδος Ιεραρχία Αφαίρεση Συσχέτιση Κληρονοµικότητα Συναρµολόγηση Στιγµιότυπο UML ÈÛ ÁˆÁÈÎ apple Ú ÙËÚ ÛÂÈ Οι εξελίξεις που αναφέραµε στο πρώτο κεφάλαιο του παρόντος βιβλίου, θεµελίωσαν την ανάγκη διαφοροποίησης του τρόπου σκέψης µας κατά την ανάλυση και σχεδίαση συστηµάτων λογισµικού. Το κύριο χαρακτηριστικό της διαφοροποίησης δεν εντοπίζεται στο γεγονός ότι σήµερα µιλάµε για κλάσεις και συνεργασία, ενώ στη δοµηµένη προσέγγιση µιλάµε για συναρτήσεις και δεδο-

22 22 KEºA AIO 2: Eπ ø A π πª ƒ º T Ã π µένα. Βρίσκεται αρκετά πιο πίσω. Οι πρώτες γλώσσες προγραµµατισµού σκόπευαν στο να κάνουν περισσότερο προσιτό στον άνθρωπο τον προγραµµατισµό των υπολογιστών, απ' ό,τι επέτρεπε η γλώσσα µηχανής. Με τις δοµικές µονάδες που προσέφεραν αυτές οι γλώσσες, έπρεπε να χτιστούν οι οσοδήποτε σύνθετες εφαρµογές λογισµικού. Μιλώντας µεταφορικά, ήταν τα υλικά που σε µεγάλο βαθµό καθόριζαν τον τρόπο σκέψης του χτίστη και όχι η σύλληψη του για το οικοδόµηµα. Αυτό σταδιακά άλλαξε και έτσι οι γλώσσες προγραµµατισµού, αλλά και ο τρόπος σκέψης όσων ασχολούνταν µε κατασκευή λογισµικού, απέκτησαν στοιχεία δοµής τα οποία δεν είχε το µέσο άµεσου προγραµµατισµού των υπολογιστών, δηλαδή η γλώσσα µηχανής. Η έννοια αυτή της δοµής χαρακτήρισε τον τρόπο σκέψης µας στη σύλληψη και σχεδίαση του λογισµικού, η οποία χαρακτηρίστηκε δοµηµένη. Όµως και πάλι, ο τρόπος σκέψης είχε έντονα τα χαρακτηριστικά του εργαλείου (της όποιας γλώσσας προγραµµατισµού) και, τουλάχιστον στην αρχή, καθοριζόταν απ' αυτό περισσότερο απ' ό,τι το καθόριζε. Η πολυπλοκότητα και η ανάγκη επεξεργασίας µεγάλου όγκου δεδοµένων έφεραν στην επιφάνεια σηµαντικές αδυναµίες της δοµηµένης φιλοσοφίας στην ανάπτυξη λογισµικού. Το επόµενο βήµα, το οποίο µόνο πρόσφατα άρχισε να γίνεται συνειδητό, ήταν η ριζική µεταβολή του τρόπου σκέψης, έτσι ώστε, για να επανέλθουµε στη µεταφορά, να είναι τα εργαλεία του χτίστη που καθορίζονται από την άποψή του για το οικοδόµηµα και όχι το αντίστροφο. Αυτή η θεώρηση επικράτησε να ονοµάζεται αντικειµενοστρεφής φιλοσοφία ή παράδειγµα (object oriented philosophy, paradigm) και αντιµετωπίζει τη σύλληψη, την ανάλυση και τη σχεδίαση του λογισµικού µε έναν εντελώς διαφορετικό από τη δοµηµένη προσέγγιση τρόπο, Με τις βασικές έννοιες που ενσωµατώνει η αντικειµενοστρεφής φιλοσοφία θα ασχοληθούµε στο κεφάλαιο αυτό.

23 2.1 À ªπ ª ª À π Ã π Ó Ì Â ÙË ÔÌËÌ ÓË Ó Ï ÛË Î È Û Â ÛË Ποιο από τα χαρακτηριστικά των εφαρµογών λογισµικού καθιστά ανεπαρκή την προσέγγιση τους µε τη δοµηµένη ανάλυση και σχεδίαση; Η απάντηση στο ερώτηµα αυτό αποτελεί κλειδί για την αναζήτηση και την κατανόηση µιας νέας φιλοσοφίας προσέγγισης του λογισµικού. Μπορεί κανείς να ανατρέξει εκτενώς στη βιβλιογραφία προκειµένου να βρει διάφορες απαντήσεις στο ερώτηµα. Εµείς θα επιλέξουµε την µονολεκτική απάντηση «η πολυπλοκότητα». Η πολυπλοκότητα αφορά όχι µόνο την καθαρά υπολογιστική εργασία του λογισµικού, αλλά και την ανάγκη διαχείρισης µεγάλου όγκου δεδοµένων. Μια εκτενής συζήτηση σχετικά µε το θέµα περιέχεται στο βιβλίο του Booch, «Object Oriented Analysis and Design with applications», το οποίο περιέχεται στη βιβλιογραφία. Σηµεία στα οποία η πολυπλοκότητα του λογισµικού κάνει φανερές τις αδυναµίες της δοµηµένης ανάλυσης και σχεδίασης, µπορούν ν' αναζητηθούν σε δύο κατευθύνσεις: σ' αυτή που αφορά το θεωρητικό και σ' αυτή που αφορά το πρακτικό µέρος αυτής. Στο θεωρητικό επίπεδο, η δοµηµένη ανάλυση και σχεδίαση παρουσιάζει µια εγγενή αδυναµία στην απεικόνιση των οντοτήτων του πραγµατικού κόσµου σε συστατικά λογισµικού. Επιχειρεί να αποσυνθέσει ένα πρόβληµα σε µια ιεραρχία συστατικών λογισµικού, καθένα από τα οποία επιτελεί ένα µικρό µέρος της λύσης του. Αυτή η εφαρµογή της αρχαίας ρήσης «διαίρει και βασίλευε», έχει νόηµα όταν η λύση του προβλήµατος είναι µόνο υπόθεση αριθ- µητικών υπολογισµών. Στον πραγµατικό κόσµο, όµως, και ιδιαίτερα στο πεδίο εφαρµογών λογισµικού που σχετίζονται µε την επιχειρηµατική δραστηριότητα, αυτή η προσέγγιση υστερεί για δύο λόγους: Πρώτον, δε λαµβάνει υπόψη τα δεδοµένα, τα οποία έχουν τη δική τους πολύπλοκη δοµή και εξαρτήσεις. Τα δεδοµένα στη δοµηµένη ανάλυση και σχεδίαση είναι ανεξάρτητα από τις λειτουργικές µονάδες που επιδρούν σ' αυτά, πράγµα που δεν ισχύει στο επίπεδο του πραγµατικού κόσµου, όπου η διαχείριση δεδοµένων δεν είναι ανεξάρτητη από αυτά. εύτερον, το υπολογιστικό µοντέλο που αποτελείται από το δίδυµο «συστατικά λογισµικού» και «ανεξάρτητα δεδοµένα», δεν αντιστοιχεί σε οντότητες του πραγµατικού κόσµου, δηλαδή δεν παριστά οντότητες που είναι αντιληπτές στον πραγµατικό κόσµο. Με µια άλλη διατύπωση, δεν µοντελοποιεί εύκολα και φυσικά την επιχειρησιακή λογική (business

24 24 KEºA AIO 2: Eπ ø A π πª ƒ º T Ã π logic). Ως εκ τούτου, είναι ανεπαρκές ως µεθοδολογικό εργαλείο για τη δόµηση λογισµικού. Σε πρακτικό επίπεδο µπορούµε να εντοπίσουµε τα ακόλουθα προβλήµατα: Ο προσδιορισµός των απαιτήσεων είναι το δυσκολότερο από τα βήµατα της ανάπτυξης Λογισµικού. Η ακριβής περιγραφή των πολλών, πολύπλοκων και αλληλοσυσχετιζόµενων απαιτήσεων µε χρήση µετασχηµατισµών και ανεξάρτητων δεδοµένων, καθώς και η αντιµετώπιση των µεταβολών ακόµα και κατά τη διάρκεια της ανάπτυξης του λογισµικού, φέρουν τη δοµηµένη προσέγγιση στα όριά της. Η διαχείριση των µοντέλων παράστασης λογισµικού, είναι µια δύσκολη και επιρρεπής σε σφάλµατα εργασία. Το πλήθος, η πολυπλοκότητα και οι συσχετίσεις των συστατικών αυτών, η µεταβολή τους µε το χρόνο, αλλά και οι παρενέργειες κατά την πραγµατοποίηση µεταβολών καθιστούν την εργασία αυτή ακόµα δυσκολότερη. Η συντήρηση του Λογισµικού έχει εξελιχθεί σε µια πολύ δύσκολη διαδικασία, που δυσκολεύει περισσότερο, καθώς αυξάνεται το µέγεθος του Λογισµικού. Έχει αναφερθεί ότι η συνεισφορά της συντήρησης στο συνολικό κόστος κατά τον κύκλο ζωής λογισµικού, µπορεί να ξεπεράσει το 50%. Μολονότι κατά την ανάπτυξη µιας νέας εφαρµογής ενδέχεται να αναγνωριστούν οµοιότητες µε τα χαρακτηριστικά µιας υπάρχουσας, η επαναχρησιµοποίηση συστατικών λογισµικού που έχουν κατασκευαστεί µε τη δοµηµένη ανάλυση και σχεδίαση δεν ενθαρρύνεται. Αυτό ισχύει στη γενική περίπτωση, διότι η πολυπλοκότητα και η φύση των συσχετίσεων ενός συστατικού λογισµικού µέρους µιας εφαρµογής που κατασκευάστηκε µε τη δοµηµένη φιλοσοφία, δεν επιτρέπουν τη γενίκευση και εύκολη επαναχρησιµοποίησή του. Ο κανόνας αυτός ισχύει ιδιαίτερα για λογισµικό που χρησιµοποιείται σε επιχειρηµατικές εφαρµογές και γενικά σε εφαρµογές που σχετίζονται µε τη διαχείριση δεδοµένων, ενώ εξαίρεση αποτελούν οι βιβλιοθήκες µαθηµατικών συναρτήσεων που αφορούν καθαρά υπολογιστικές εργασίες. Όσα αναφέρθηκαν, µε κανένα τρόπο δε σηµαίνουν δύο πράγµατα: πρώτον, ότι η δοµηµένη ανάλυση και σχεδίαση είναι «άχρηστη», «εσφαλµένη» ή κάτι τέτοιο και δεύτερον, ότι η αντικειµενοστρεφής φιλοσοφία έχει τη λύση σε όλα τα προβλήµατα της ανάπτυξης του λογισµικού. Όπως εξάλλου αναφέρθηκε, η συζήτηση αυτή έχει το νόηµα της αντίληψης των εξελίξεων που εισήγαγαν µια

25 2.2 µ π π π πª ƒ º À Ã π 25 νέα φιλοσοφία προσέγγισης του λογισµικού. Πολλά από τα προβλήµατα που υπήρχαν στην ανάπτυξη του λογισµικού εξακολουθούν να υπάρχουν µε την µία ή άλλη έννοια, ενδεχοµένως σε µικρότερο βαθµό. Η αντικειµενοστρεφής τεχνολογία είναι µόνο ένα καλύτερο εργαλείο στα χέρια του ανθρώπου για τη λύση των προβληµάτων, δεν είναι η ίδια η λύση των προβληµάτων. fiïèô ÌÂÏ ÙË Χρήσιµες αναφορές στα µοντέλα παράστασης λογισµικού, καθώς και στην «επιχειρησιακή λογική» (business logic) που αναφέρονται στην ενότητα αυτή, παροτρύνεστε να αναζητήσετε στις ενότητες 3.4 και 4.4, αντίστοιχα, του βιβλίου «Τεχνολογία Λογισµικού I» της θεµατικής ενότητας «Αρχές Τεχνολογίας Λογισµικού». Περιγράψτε χρησιµοποιώντας λιγότερο από 100 λέξεις συνολικά, τα έξι σηµεία που καθιστούν σήµερα δύσκολη την ανάπτυξη λογισµικού µε τη δοµηµένη ανάλυση και σχεδίαση. Ú ÛÙËÚÈfiÙËÙ µ ÛÈÎ ÓÓÔÈÂ ÙË ÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊÔ ÙÂ ÓÔÏÔÁ Αξίζει να σηµειώσουµε από την αρχή ότι η ιδέα της αντικειµενοστρεφούς προσέγγισης υπήρχε από τη δεκαετία του '60 και η πρώτη γλώσσα που είχε τέτοια χαρακτηριστικά ήταν η Simula 67. Τότε, κανείς σχεδόν δεν έδινε µεγάλη σηµασία στις ιδέες που εισήγαγε η Simula: η κοινότητα του Λογισµικού είχε στραµµένη την προσοχή της στις ιδέες της δοµηµένης ανάλυσης/σχεδίασης. Άλλες γλώσσες προγραµµατισµού που είχαν τέτοια στοιχεία ήταν Alphard, η CLU, η ADA (η οποία γνώρισε µεγάλη διάδοση διότι υποστηρίχτηκε από το υπουργείο άµυνας των ΗΠΑ) και η Smalltalk. Η προσέγγιση της αντικειµενοστρεφούς τεχνολογίας µπορεί να γίνει από διάφορους εναλλακτικούς δρόµους. Την εποχή που παρατηρήθηκε έκρηξη ενδιαφέροντος για το θέµα, δηµοσιεύτηκαν πολλές θεωρητικές αναλύσεις µε παρεµφερή ορολογία και µε λιγότερο ή περισσότερο συγκεκριµένες αναφορές στις πρακτικές πλευρές της αντικειµενοστρεφούς προσέγγισης στον προγραµµατισµό. Ο αναγνώστης παραπέµπεται στη βιβλιογραφία για εκτενέστερες αναφορές στο θέµα.

26 26 KEºA AIO 2: Eπ ø A π πª ƒ º T Ã π ÚÈÛÌÔ Μέχρι το σηµείο αυτό χρησιµοποιήσαµε τον όρο αντικειµενοστρεφής ως µετάφραση του αγγλικού όρου object oriented. Καιρός είναι να δώσουµε έναν περισσότερο σαφή ορισµό και να εισάγουµε την ορολογία που σχετίζεται µε την αντικειµενοστρεφή τεχνολογία. Θα προσεγγίσουµε το θέµα ξεκινώντας από την κορυφή της πυραµίδας. Aντικειµενοστρεφής Αντικειµενοστρεφής (ο, η), αντικειµενοστρεφές (το), είναι χαρακτηρισµός που σηµαίνει «στραµµένος (προσανατολισµένος) σε αντικείµενα» και αποδίδεται σ' εκείνο τον τρόπο σκέψης κατά την ανάπτυξη λογισµικού, στον οποίο τα «αντικείµενα» είναι οι βασικές δοµικές µονάδες. Θα σηµειώσουµε ότι επιλέξαµε να χρησιµοποιήσουµε το επίθεµα «στρεφής» και όχι «στραφής», όπως αναφέρεται σ' άλλα σηµεία στη βιβλιογραφία, σύµφωνα µε τη λογική που αυτό χρησιµοποιείται στο δόκιµο «εσωστρεφής» (και όχι «εσωστραφής»), που σηµαίνει «στροφή προς τον εαυτό». Μια άλλη, κατά τη γνώµη µας άστοχη, απόδοση του όρου στην ελληνική γλώσσα είναι «αντικειµενικός», λέξη που υπήρχε ήδη στην ελληνική γλώσσα και σηµαίνει κάτι εντελώς διαφορετικό. Ο παραπάνω ορισµός χρησιµοποίησε τον όρο αντικείµενο, ο οποίος θα πρέπει επίσης να οριστεί στο πλαίσιο του λογισµικού. Αντικείµενο Ένα αντικείµενο είναι ένα δοµικό συστατικό λογισµικού. Κάθε αντικεί- µενο έχει κατάσταση, συµπεριφορά και ταυτότητα. Η κατάσταση περιγράφει όλες τις στατικές ιδιότητες του αντικειµένου, όπως τιµές σε µεταβλητές µνήµης. Οι ιδιότητες αυτές είναι το αποτέλεσµα της συµπεριφοράς του αντικειµένου, δηλαδή του τρόπου µε τον οποίο αυτό ανταποκρίνεται σε κλήσεις από το περιβάλλον του. Η ταυτότητα είναι η µοναδική διάκριση του αντικειµένου από τα οµοειδή του. Από τεχνικής πλευράς, το αντικείµενο µπορεί να θεωρηθεί ως η συγχώνευση δύο εννοιών που κατέχουν δεσπόζουσα θέση στη δοµηµένη ανάλυση, σχεδίαση και προγραµµατισµό: της εγγραφής (record στην Pascal) και της συνάρτησης ή διαδικασίας (function, procedure στην Pascal). Η εγγραφή είναι µια συλλογή µεταβλητών µνήµης, οι οποίες αποτελούν τη δοµή της και κάθε στιγµή έχουν κάποια συγκεκριµένη τιµή (Θεµατική Ενότητα «οµές εδο-

27 2.2 µ π π π πª ƒ º À Ã π 27 µένων»). Το σύνολο των τιµών των µεταβλητών µιας εγγραφής αποτελεί την κατάσταση αυτής. Αν στην εγγραφή, όπως την ορίσαµε µέχρι τώρα, προσθέσουµε ενεργά συστατικά λογισµικού, δηλαδή µονάδες προγράµµατος που εκτελούν υπολογισµούς, τότε µιλάµε για αντικείµενο και όχι για εγγραφή. ηλαδή, ένα αντικείµενο περικλείει ένα σύνολο δεδοµένων και ένα σύνολο συναρτήσεων που χειρίζονται τα δεδοµένα αυτά και επιτελούν τις λειτουργίες του πεδίου ευθύνης αυτού. Κλάση Το σύνολο των αντικειµένων που έχουν την ίδια δοµή και την ίδια συµπεριφορά, ονοµάζεται κλάση. Θα πρέπει να διακρίνουµε µεταξύ της έννοιας δοµή και της έννοιας κατάσταση. Η δοµή χαρακτηρίζεται από το ποιες και τι τύπου µεταβλητές περιγράφουν τις ιδιότητες του αντικειµένου, ενώ η κατάσταση είναι ένα σύνολο συγκεκριµένων τιµών στις µεταβλητές αυτές. Η διατύπωση ίδια συµπεριφορά σηµαίνει ίδια απόκριση στο ίδιο εξωτερικό ερέθισµα. Η κλάση είναι µια αφηρηµένη έννοια, όπως αφηρηµένη είναι η έννοια του τύπου (type) στις γλώσσες προγραµµατισµού. Ο τύπος δεν είναι κάτι που υπάρχει την ώρα της εκτέλεσης ενός προγράµµατος. Αυτό που υπάρχει είναι οι µεταβλητές µνή- µης, καθεµία εκ των οποίων λέµε ότι «είναι» κάποιου τύπου. Μπορούµε, λοιπόν, να αναγνωρίσουµε αντιστοιχία µεταξύ των εννοιών «τύπος µεταβλητή» και «κλάση αντικείµενο»: Όπως ισχύει ότι «κάθε µεταβλητή µνήµης είναι κάποιου τύπου», έτσι ισχύει ότι «κάθε αντικείµενο ανήκει σε µία κλάση», η οποία καθορίζει πλήρως τη δοµή και τη συµπεριφορά του. Με βάση τα παραπάνω, µια κλάση µπορεί να θεωρηθεί ως η περιγραφή της δοµής και της συµπεριφοράς των αντικειµένων που ανήκουν σε αυτή, τα οποία είναι τα συστατικά στοιχεία λογισµικού που έχουν τη δοµή και εκδηλώνουν τη συµπεριφορά. Στιγµιότυπο, εκδοχή Κάθε αντικείµενο αποτελεί ένα µοναδικό και συγκεκριµένο στιγµιότυπο ή εκδοχή (instance) της κλάσης στην οποία ανήκει. Η κατάσταση ενός αντικειµένου καθορίζεται από τις µεταβλητές κατάστασης, οι οποίες αντιστοιχούν στα ιδιώµατά του. Πεδίο Ένα πεδίο (field) είναι µια µεταβλητή η οποία παριστάνει ένα ιδίωµα του αντικειµένου. Το σύνολο των τιµών όλων των πεδίων ενός αντικει-

28 28 KEºA AIO 2: Eπ ø A π πª ƒ º T Ã π µένου αποτελεί την κατάσταση αυτού. Ισοδύναµα χρησιµοποιείται και ο όρος ιδίωµα (attribute). Η συµπεριφορά ενός αντικειµένου καθορίζεται από τον τρόπο µε τον οποίο αυτό αντιδρά σε εξωτερικά ερεθίσµατα, δηλαδή σε κλήσεις από τα αντικεί- µενα που αποτελούν το περιβάλλον του. Μέθοδος Μια µέθοδος είναι ένα ενεργό συστατικό λογισµικού (συνάρτηση, διαδικασία), η οποία υλοποιεί ένα στοιχείο συµπεριφοράς ενός αντικειµένου. Το σύνολο όλων των µεθόδων ενός αντικειµένου καθορίζει τη συµπεριφορά του. Μια χαρακτηριστική ιδιότητα των αντικειµένων, βασικό στοιχείο της αντικειµενοστρεφούς φιλοσοφίας, είναι η κελυφοποίηση (encapsulation) ή, όπως ισοδύναµα αναφέρεται στη βιβλιογραφία, η απόκρυψη πληροφοριών (information hiding). Στην ελληνική βιβλιογραφία η έννοια απαντάται και µε τον όρο «ενθυλάκωση». Κελυφοποίηση, απόκρυψη πληροφοριών Η απόκρυψη των λεπτοµερειών υλοποίησης ενός αντικειµένου από το περιβάλλον του, διαµέσω της ελεγχόµενης ορατότητας των πεδίων και των µεθόδων αυτού από άλλα αντικείµενα, ονοµάζεται κελυφοποίηση ή απόκρυψη πληροφοριών. Αρκετοί συγγραφείς, όπως ο Booch, συνδέουν την κελυφοποίηση µε τη πρόσβαση σε ορισµένα µόνο πεδία και µεθόδους ενός αντικειµένου, τα οποία ορίζουν την διαπροσωπεία (interface) αυτού µε τον έξω κόσµο. Αυτή είναι η πρακτική εφαρµογή της απόκρυψης πληροφοριών, η οποία αποτελεί µια βασική αρχή της αντικειµενοστρεφούς φιλοσοφίας που εφαρµόζεται µε διάφορους τρόπους στις γλώσσες προγραµµατισµού οι οποίες την υποστηρίζουν. Ας σηµειωθεί ότι επιλέξαµε να χρησιµοποιήσουµε τον όρο «αντικείµενο» και όχι «κλάση», διότι η κλάση είναι µια γενική έννοια, η οποία δεν έχει δικές της λεπτοµέρειες υλοποίησης, αλλά περιέχει την περιγραφή των λεπτοµερειών αυτών ώστε να δηµιουργούνται αντικείµενα, δηλαδή συγκεκριµένα στιγµιότυπα της κλάσης. Στις αναφορές που θα ακολουθήσουν, θα µιλάµε για κλάσεις, όταν η συζήτηση µπορεί να διεξάγεται στο γενικό επίπεδο της περιγραφής των αντικειµένων, ενώ όταν είναι αναγκαίο να αναφερθούµε σε συγκεκριµένες εκδοχές, θα χρησιµοποιούµε τον όρο αντικείµενο.

29 2.2 µ π π π πª ƒ º À Ã π 29 Ú ÂÈÁÌ 2.1 Θα επανέλθουµε στη µελέτη περίπτωσης του πρώτου τόµου του βιβλίου, όπου ασχοληθήκαµε µε την εφαρµογή λογισµικού «ΕΠΙΚΟΥΡΟΣ» µε αντικείµενο την υποστήριξη των εργασιών της γραµµατείας µιας εκπαιδευτικής µονάδας. Θα διακρίνουµε δύο κλάσεις από την εφαρµογή αυτή, προς το παρόν µε τρόπο αυθαίρετο, έχοντας σκοπό όχι να µάθουµε να αναγνωρίζουµε κλάσεις, αλλά να αποκτήσουµε µια πρώτη άποψη. Πρόκειται για τις κλάσεις «Καθηγητής» και «Μάθηµα». Γνωρίζουµε τα πεδία τα οποία περιέχονται στην εγγραφή κάθε τέτοιας οντότητας. Οι µέθοδοι τις οποίες αποδίδουµε σε καθεµία από τις κλάσεις αυτές δεν είναι παρά οι λειτουργίες που επιτελούνται επί των πεδίων τους που αναφέρονται στις λειτουργικές απαιτήσεις της εν λόγω «µελέτης περίπτωσης» του πρώτου τόµου. Οι κλάσεις που ορίσαµε φαίνονται στο Σχήµα 2.1. Ο συµβολισµός που χρησιµοποιείται είναι προφανής: στο πρώτο διαµέρισµα φιλοξενείται το όνοµα της κλάσης, στο δεύτερο τα ονόµατα των πεδίων και στο τρίτο τα ονόµατα των µεθόδων. Προσπερνάµε, προς το παρόν, τις λεπτοµέρειες του συµβολισµού, µε τον οποίο θα ασχοληθούµε στην ενότητα 2.4 του παρόντος κεφαλαίου. Kαθηγητής Aρ. Tαυτότητας: Όνοµα: Eπώνυµο: ιεύθυνση: Tηλέφωνο: Προσθήκη Kαθηγητή() ιαγραφή Kαθηγητή() Mεταβολή στοιχείων Kαθηγητή() Mάθηµα Kωδικός µαθήµατος: Θεµατική ενότητα: Tίτλος: ιδάσκων: Προσθήκη Mαθήµατος() ιαγραφή Mαθήµατος() Mεταβολή στοιχείων Mαθήµατος() Aνάθεση Mαθήµατος() Ì 2.1 ύο κλάσεις από την εφαρµογή λογισµικού «ΕΠΙΚΟΥΡΟΣ» Αντικείµενα που ανήκουν στην κλάση «Καθηγητής» αντιστοιχούν σε συγκεκριµένες εκδοχές (instances) αυτής, εν προκειµένω σε πραγµατικούς καθηγητές. Επίσης, αντικείµενα που ανήκουν στην κλάση «Μάθη- µα» αντιστοιχούν σε συγκεκριµένα µαθήµατα. Τέτοια αντικείµενα εικονίζονται στο Σχήµα 2.2. Η κατάσταση των αντικειµένων, δηλαδή το χαρα-

30 30 KEºA AIO 2: Eπ ø A π πª ƒ º T Ã π κτηριστικό εκείνο που τα προσδιορίζει και τα διαφοροποιεί µεταξύ τους, σηµειώνεται στο Σχήµα 2.2 µε έντονους χαρακτήρες. Η συµπεριφορά τους, όπως αναφέρθηκε, είναι κοινή και εξαρτάται µόνο από την κλάση στην οποία ανήκουν. Ì 2.2 Αντικείµενα στιγµιότυπα των κλάσεων που φαίνονται στο Σχήµα 2.1. Kαθηγητής Aρ. Tαυτότητας: Όνοµα: Eπώνυµο: ιεύθυνση: Tηλέφωνο: Προσθήκη Kαθηγητή() ιαγραφή Kαθηγητή() Mεταβολή στοιχείων Kαθηγητή() Mάθηµα Kωδικός µαθήµατος: Θεµατική ενότητα: Tίτλος: ιδάσκων: Προσθήκη Mαθήµατος() ιαγραφή Mαθήµατος() Mεταβολή στοιχείων Mαθήµατος() Aνάθεση Mαθήµατος() fiïèô ÌÂÏ ÙË Προκειµένου να παρακολουθήσετε ευκολότερα τα παραδείγµατα, τις ασκήσεις και τις δραστηριότητες του παρόντος και του επόµενου κεφαλαίου, θα σας φανεί ιδιαίτερα χρήσιµο να ανατρέξετε στη «µελέτη περίπτωσης» που περιέχεται στα κεφάλαια 3 και 4 του πρώτου τόµου. Ú ÛÙËÚÈfiÙËÙ 2.2 Σε αντιστοιχία µε το Παράδειγµα 1, προσπαθήστε να ορίσετε την κλάση «Σπουδαστής», χρησιµοποιώντας όσα αναφέρονται στις ενότητες 3.3, και του πρώτου τόµου. Επίσης, δώστε ένα παράδειγµα ενός αντικει- µένου της κλάσης αυτής. ÕÛÎËÛË ÙÔ ÍÈÔÏfiÁËÛË 2.1 Χαρακτηρίστε ως «Σωστό» ή «Λάθος» καθεµία από τις παρακάτω προτάσεις. Σωστό Λάθος 1. Μια κλάση περιέχει αντικείµενα. 2. Μια κλάση περιέχει µεθόδους και πεδία.

31 2.2 µ π π π πª ƒ º À à π Μια κλάση είναι το στιγµιότυπο των αντικειµένων της. 4. Κάθε µέθοδος ορίζεται στον ορισµό του αντικειµένου όπου ανήκει. 5. Οι µέθοδοι αντιστοιχούν στην κατάσταση µιας κλάσης. 6. Οι τιµές των πεδίων περιγράφουν την κατάσταση ενός αντικειµένου. 7. Η συµπεριφορά όλων των αντικειµένων µιας κλάσης είναι ίδια. 8. Η µέθοδος είναι µια συνάρτηση ή διαδικασία ενσωµατωµένη µέσα σε µια κλάση. 9. Αντικείµενο = (εγγραφή) + (συναρτήσεις/διαδικασίες). 10.Ένα αντικείµενο χαρακτηρίζεται από κατάσταση και συµπεριφορά. 11.Η έννοια της κλάσης είναι αντίστοιχη της έννοιας της µεταβλητής µνήµης. 12.Η απόκρυψη πληροφοριών σχετίζεται µε την τοποθέτηση µεθόδων και πεδίων µέσα στο κέλυφος µιας κλάσης ÛÂÈ ÌÂÙ Í ÎÏ ÛÂˆÓ Έχοντας αναγνωρίσει, από τη µέχρι τώρα ενασχόλησή µας µε την Τεχνολογία Λογισµικού και τον προγραµµατισµό, σχέσεις µεταξύ δεδοµένων και ενεργών συστατικών λογισµικού, είναι φυσικό να περιµένουµε ότι και µεταξύ των κλάσεων θα υπάρχουν σχέσεις. Όταν µεταξύ δύο κλάσεων αναγνωρίζουµε µια σχέση, τότε η σχέση αυτή υλοποιείται στο επίπεδο των αντικει- µένων των κλάσεων αυτών. Μπορούµε να προσπαθήσουµε να «µαντέψου- µε» το είδος των σχέσεων που υπάρχουν µεταξύ κλάσεων, κάνοντας τις ακόλουθες δύο παρατηρήσεις. Πρώτον, επειδή και οι κλάσεις, όπως οι εγγραφές (records) και οι πίνακες

32 32 KEºA AIO 2: Eπ ø A π πª ƒ º T Ã π (tables) (Θεµατικές Ενότητες «οµές εδοµένων» και «Βάσεις εδοµένων») περιέχουν δεδοµένα, θα πρέπει µε κάποιο τρόπο να παριστάνονται οι σχέσεις µεταξύ των δεδοµένων. εύτερον, εισάγαµε την έννοια της κλάσης αναφερόµενοι στην ανεπάρκεια της δοµηµένης φιλοσοφίας να µοντελοποιήσει τον πραγµατικό κόσµο. Φυσικό είναι, λοιπόν, να περιµένουµε οι κλάσεις να προσφέρουν δυνατότητες καλύτερης µοντελοποίησης του κόσµου µέσα από την εσωτερική δοµή, αλλά και από τις δυνατές συσχετίσεις µεταξύ τους. Πράγµατι, οι σχέσεις µεταξύ των κλάσεων επαληθεύουν τις δύο αυτές παρατηρήσεις. Τρεις είναι οι κύριοι τύποι σχέσεων µεταξύ κλάσεων: Η συσχέτιση (association), η κληρονοµικότητα (inheritance) και η συναρµολόγηση (aggregation). Θα παρουσιάσουµε τις σχέσεις αυτές, χωρίς να σκοπεύουµε να δείξουµε πώς τις αναγνωρίζουµε, θέµα στο οποίο θα αναφερθούµε στο κεφάλαιο 3. À Ã π Η συσχέτιση (association) είναι η πιο γενική από τις σχέσεις που µπορεί να συνδέουν δύο κλάσεις. Μπορούµε µε αρκετή ασφάλεια να αντιληφθούµε τη συσχέτιση ως µια περισσότερο γενική απ' ό,τι στο σχεσιακό µοντέλο, σχέση µεταξύ δεδοµένων. Λέµε «περισσότερο γενική», διότι η συσχέτιση δεν περιορίζεται σε τρεις δυνατούς τύπους, όπως στο σχεσιακό µοντέλο, αλλά έχει οποιαδήποτε χαρακτηριστικά απαιτεί η φύση του προβλήµατος. Μια συσχέτιση χαρακτηρίζεται από: Ένα όνοµα, ενδεχοµένως διαφορετικό ανάλογα µε τη φορά ανάγνωσης. Την πολλαπλότητα, δηλαδή τον επιτρεπόµενο αριθµό των µελών κάθε µέρους της συσχέτισης. Το όνοµα των ρόλων (role) που παίζει κάθε µέρος στη συσχέτιση. Οι πολλαπλότητες «ένα προς ένα», «ένα προς πολλά» και «πολλά προς πολλά», είναι και στην περίπτωση αυτή οι περισσότερο γενικές, ωστόσο, όπως θα δούµε και στο παράδειγµα που θα ακολουθήσει, µπορούµε να ορίσουµε οποιαδήποτε πολλαπλότητα απαιτείται στις εκάστοτε συνθήκες.

33 2.2 µ π π π πª ƒ º À Ã π 33 Ú ÂÈÁÌ 2.2 Στο Σχήµα 2.3 φαίνεται η συσχέτιση των κλάσεων «Καθηγητής» και «Μάθηµα». Ο ρόλος του «Καθηγητή» είναι διδάσκων, ενώ το «Μάθηµα» είναι το αντικείµενο της διδασκαλίας. Κάθε καθηγητής µπορεί να διδάσκει από ένα έως τρία το πολύ µαθήµατα. Η πολλαπλότητα αυτή της συσχέτισης φαίνεται επίσης στο σχήµα. Kαθηγητής Aρ. Tαυτότητας: Όνοµα: Eπώνυµο: ιεύθυνση: Tηλέφωνο: Προσθήκη Kαθηγητή() ιαγραφή Kαθηγητή() Mεταβολή στοιχείων Kαθηγητή() + ιδάσκων +Aντικείµενο 1 ιδάσκει 1 3 Mάθηµα Kωδικός µαθήµατος: Θεµατική ενότητα: Tίτλος: ιδάσκων: Προσθήκη Mαθήµατος() ιαγραφή Mαθήµατος() Mεταβολή στοιχείων Mαθήµατος() Aνάθεση Mαθήµατος() Ì 2.3 Μια συσχέτιση µεταξύ κλάσεων ƒ ªπ π À Η κληρονοµικότητα (inheritance) είναι, ίσως, η πιο πολυδιαφηµισµένη σχέση στην αντικειµενοστρεφή φιλοσοφία. ύο κλάσεις συνδέονται µε κληρονο- µικότητα, όταν η µία αποδίδει στην άλλη τα χαρακτηριστικά της, δηλαδή, κατά κάποιον τρόπο, της τα κληροδοτεί. Η πρώτη κλάση λέγεται κλάση γονέας, ενώ η δεύτερη, κλάση παιδί, και µπορεί να προσθέτει στα χαρακτηριστικά που κληρονοµεί (πεδία και µεθόδους) και δικά της. Μια κλάση γονέας µπορεί να αποδίδει τα χαρακτηριστικά της σε πολλές κλάσεις παιδιά. Στην περίπτωση που κάθε κλάση που συµµετέχει σε σχέση κληρονοµικότητας έχει µόνο έναν πατέρα, τότε µιλάµε για απλή κληρονοµικότητα (single inheritance). Όταν µια κλάση κληρονοµεί χαρακτηριστικά από περισσότερες της µίας κλάσεις πατέρα, τότε µιλάµε για πολλαπλή κληρονοµικότητα (multiple inheritance). Υπάρχουν πολλές πρακτικές πλευρές στην υλοποίη-

34 34 KEºA AIO 2: Eπ ø A π πª ƒ º T Ã π ση της κληρονοµικότητας µεταξύ κλάσεων, οι οποίες αφορούν την κάθε συγκεκριµένη γλώσσα προγραµµατισµού που υποστηρίζει κληρονοµικότητα και δε θα µας απασχολήσουν εδώ. Κοιτώντας από «πάνω προς τα κάτω», δηλαδή από την κλάση πατέρα στην κλάση παιδί, µιλάµε για κληρονοµικότητα, διότι η κλάση παιδί έχει τουλάχιστον ό,τι χαρακτηριστικό έχει η κλάση πατέρας. Όπως είπαµε όµως, έχει και κάποια επιπλέον χαρακτηριστικά τα οποία δεν έχει ο πατέρας (η περίπτωση που µια κλάση κληρονοµεί τα χαρακτηριστικά µιας άλλης χωρίς να προσθέτει τίποτε δικό της δεν εξετάζεται ως τετριµµένη). Τα επιπλέον χαρακτηριστικά εξειδικεύουν την κληρονοµούµενη κλάση, δηλαδή η κλάση παιδί είναι µια εξειδίκευση της κλάσης γονέα. Κοιτώντας, τώρα, τη σχέση κληρονοµικότητας από κάτω προς τα πάνω, παρατηρούµε ότι η κλάση πατέρας έχει λιγότερα χαρακτηριστικά από την κλάση παιδί, δηλαδή αποτελεί γενίκευσή της. Με την έννοια αυτή, µιλάµε ισοδύναµα για γενίκευση. Και στις δύο περιπτώσεις, έχουµε στη διάθεσή µας ένα µηχανισµό ταξινόµησης των οντοτήτων που πραγµατικού κόσµο που αντιστοιχούν σε κλάσεις, από το γενικό στο ειδικό (κληρονοµικότητα) ή, ισοδύναµα, από το ειδικό στο γενικό (γενίκευση). Στην αντικειµενοστρεφή τεχνολογία, κληρονοµικότητα και γενίκευση αποτελούν τις δύο όψεις ενός µηχανισµού ταξινόµησης (classification) των οντοτήτων του πραγµατικού κόσµου. Αυτός ο µηχανισµός ταξινόµησης αποτελεί κεντρικό στοιχείο της αντικει- µενοστρεφούς φιλοσοφίας, όπως θα δούµε και στο κεφάλαιο 3 του παρόντος βιβλίου. Το τελευταίο διάστηµα γίνεται περισσότερος λόγος για γενίκευση και λιγότερος για κληρονοµικότητα (αν και πρόκειται για το ίδιο πράγµα), διότι η γενίκευση µπορεί να γίνει ευκολότερα αντιληπτή ως εργαλείο µοντελοποίησης, όπως θα δούµε και στην ενότητα 2.3 του παρόντος κεφαλαίου. Ú ÂÈÁÌ 2.3 Στο παράδειγµα 1 και στη δραστηριότητα 2 που προηγήθηκαν, εισαγάγαµε τις οντότητες «Καθηγητής» και «Σπουδαστής». Αµφότερες περιγράφουν φυσικά πρόσωπα, τα οποία έχουν κοινά χαρακτηριστικά (λ.χ. όνοµα, επώνυµο). Μπορούµε, λοιπόν, να θεωρήσουµε ότι τα κοινά χαρακτηριστικά που έχουν όλα τα φυσικά πρόσωπα, περιγράφονται σε µια

35 2.2 µ π π π πª ƒ º À Ã π 35 κλάση πατέρα, η οποία τα κληρονοµεί στις κλάσεις «Καθηγητής» και «Σπουδαστής», όπως φαίνεται στο Σχήµα 2.4. Επαναλαµβάνουµε ότι µε το θέµα του συµβολισµού θα ασχοληθούµε στην ενότητα 2.4 του παρόντος κεφαλαίου. Φυσικό Πρόσωπο Aρ. Tαυτότητας: Όνοµα: Eπώνυµο: ιεύθυνση: Tηλέφωνο: Tµήµα: Σπουδαστής Προσθήκη Σπουδαστή() ιαγραφή Σπουδαστή() Mεταβολή στοιχείων Σπουδαστή() Eιδικότητα: Bαθµίδα: Kαθηγητής Προσθήκη Kαθηγητή() ιαγραφή Kαθηγητή() Mεταβολή στοιχείων Kαθηγητή() Ì 2.4 Ένα παράδειγµα σχέσης κληρονοµικότητας γενίκευσης Aς σηµειωθεί ότι στο Σχήµα 2.4 προσθέσαµε στην κλάση «Καθηγητής» τα πεδία «Ειδικότητα» και «Βαθµίδα». ιαβάζοντας το σχήµα από πάνω προς τα κάτω, διαπιστώνουµε ότι καθεµία από τις έννοιες «Καθηγητής» και «Σπουδαστής» είναι ειδικότερη από την έννοια «Φυσικό πρόσωπο» και κληρονοµεί όλα τα χαρακτηριστικά της. Γι' αυτό µιλάµε για κληρονοµικότητα. Αντίστροφα, θεωρώντας το σχήµα από κάτω προς τα πάνω, παρατηρούµε ότι η έννοια «Φυσικό πρόσωπο» είναι γενικότερη από την έννοια «Σπουδαστής» και από την έννοια «Καθηγητής», οπότε µιλάµε για γενίκευση.

36 36 KEºA AIO 2: Eπ ø A π πª ƒ º T à π À ƒª Η συναρµολόγηση (aggregation) είναι εκείνη η σχέση που εκφράζει ακριβώς αυτό που λέει το όνοµά της: τη σύνθεση συνόλων από απλούστερα µέρη. Η έννοια της συναρµολόγησης δε µπορεί να θεωρηθεί ως σχέση κληρονο- µικότητας, διότι δεν αναγνωρίζουµε χαρακτηριστικά που αποδίδονται από µία κλάση σε µία άλλη. Ενδεχοµένως η συναρµολόγηση να µπορεί να θεωρηθεί ως µια ειδική συσχέτιση την οποία, όµως, έχει νόηµα να εξετάσουµε αυτοτελώς, διότι είναι ένα χρήσιµο εργαλείο για τη µοντελοποίηση του πραγ- µατικού κόσµου, όπως θα δούµε και στην ενότητα 2.3. Ú ÂÈÁÌ 2.4 Θα αναγκαστούµε να παρακάµψουµε το γνωστό µας πρόβληµα της εφαρµογής λογισµικού «ΕΠΙΚΟΥΡΟΣ», διότι σ' αυτή δε διακρίνουµε καµία σχέση συναρµολόγησης που θέλουµε να περιγράψουµε εδώ. Όπως µπορούµε να αντιληφθούµε, δεν είναι υποχρεωτικό σε κάθε πρόβληµα να αναγνωρίζονται όλες οι δυνατές σχέσεις. Ας θεωρήσουµε, λοιπόν, µια εφαρµογή λογισµικού που διαχειρίζεται τη συντήρηση των αεροσκαφών που χρησιµοποιούνται στις αεροµεταφορές. Η συντήρηση απαιτεί την παράσταση της δοµής κάθε αεροσκάφους, η οποία µπορεί να γίνει σε πάρα πολλά επίπεδα, ξεκινώντας από την περισσότερο σύνθετη οντότητα (ολόκληρο το αεροσκάφος) και φτάνοντας µέχρι και το µικρότερο εξάρτη- µα. Στο Σχήµα 2.5 φαίνεται µια τέτοια σχέση συναρµολόγησης σ' ένα πρώτο, πολύ γενικό, επίπεδο. 1 Aεροσκάφος Άτρακτος Φτερό Kινητήρας Σύστηµα Σύστηµα τροχών πλοήγησης οµικό εξαµενή τµήµα φτερού καυσίµων Yδραυλικό σύστηµα Ì 2.5 Ένα πολύ µικρό τµήµα της συναρµολόγησης ενός αεροσκάφους από επιµέρους συστατικά.

37 2.2 µ π π π πª ƒ º À Ã π 37 Οι αριθµοί πάνω στις άκρες των ευθύγραµµων τµηµάτων που παριστάνουν τις σχέσεις, αντιστοιχούν στην πολλαπλότητα των αντίστοιχων συστατικών. Κάθε αεροσκάφος αποτελείται από ακριβώς µία άτρακτο, δύο φτερά, δύο κινητήρες, ένα σύστηµα τροχών και ένα σύστηµα πλοήγησης. Κάθε φτερό, αποτελείται από ένα δοµικό τµήµα, από µία δεξαµενή καυσίµων και από ένα υδραυλικό σύστηµα. Όπως καταλαβαίνει ο αναγνώστης, η ανάλυση µπορεί να συνεχίζεται για πάρα πολύ, φτάνοντας µέχρι και στις µικρότερες βίδες οι οποίες αποτελούν το αεροσκάφος. Ã π Μελετώντας την προτεινόµενη βιβλιογραφία µπορεί κανείς να βρει αναφορές και σ' άλλες σχέσεις µεταξύ κλάσεων. Χαρακτηριστικά µπορούµε να αναφέρουµε τις σχέσεις «χρησιµοποιεί» (using), «στιγµιότυπο» (instantiation) και «µετακλάση» (metaclass). Οι σχέσεις αυτές αφορούν περισσότερο την υλοποίηση ενός συστήµατος σε κάποια συγκεκριµένη γλώσσα προγραµµατισµού που τις υποστηρίζει και δεν είναι συστατικό του µηχανισµού ανάλυσης προβληµάτων µε την αντικειµενοστρεφή φιλοσοφία, ο οποίος θα µας απασχολήσει στο βιβλίο αυτό. Ταξινοµήστε τις παρακάτω οντότητες σε µια ιεραρχία, χρησιµοποιώντας το µηχανισµό της κληρονοµικότητας: ελφίνι, Φάλαινα, Ψάρι, Θηλαστικό, Αρκούδα, Ανθρωπος, Προγραµµατιστής, Εργαζόµενος, Καθηγητής, Ζωντανός οργανισµός, Συνταξιούχος, Καθηγητής πιάνου, Πέστροφα, Τσιπούρα. ÕÛÎËÛË ÙÔ ÍÈÔÏfiÁËÛË 2.2 Χαρακτηρίστε ως «Σωστό» ή «Λάθος» καθεµία από τις παρακάτω προτάσεις. Σωστό Λάθος ÕÛÎËÛË ÙÔ ÍÈÔÏfiÁËÛË Κληρονοµικότητα και γενίκευση είναι δύο όψεις ενός νοµίσµατος. 2. Η συσχέτιση (association) δεν είναι παρά µια άλλη ονοµασία για τις σχέσεις του σχεσιακού µοντέλου δεδοµένων.

38 38 KEºA AIO 2: Eπ ø A π πª ƒ º T à π 3. Κληρονοµικότητα µπορούµε να έχουµε και στη δοµηµένη ανάλυση και σχεδίαση. 4. Πολλαπλή κληρονοµικότητα, σηµαίνει ότι µία κλάση αποδίδει τα χαρακτηριστικά της σε περισσότερες από µία κλάσεις παιδιά. 5. Η συσχέτιση (association) είναι ένα υπερσύνολο των σχέσεων µεταξύ πινάκων στις Βάσεις εδοµένων. 6. Ο ρόλος µιας κλάσης σε µια συσχέτιση, εξαρτάται από τη φορά ανάγνωσης της συσχέτισης. Ú ÛÙËÚÈfiÙËÙ 2.3 Προσπαθήστε να περιγράψετε µε τη βοήθεια ενός διαγράµµατος αντίστοιχου µε εκείνο που φαίνεται στο Σχήµα 2.5, τη συναρµολόγηση ενός αυτοκινήτου. Να περιοριστείτε στα βασικά συστατικά και να µην φτάσετε σε πάνω από δύο επίπεδα λεπτοµέρειας. ÓÔ Ë ÂÓfiÙËÙ Στην αντικειµενοστρεφή τεχνολογία κεντρική είναι η έννοια της κλάσης. Κάθε κλάση περιέχει πεδία και µεθόδους, δηλαδή στοιχεία που αντιστοιχούν σε περιγραφή κατάστασης και συµπεριφοράς, αντίστοιχα. Τα αντικείµενα είναι συστατικά στοιχεία λογισµικού που αποτελούν συγκεκριµένες εκδοχές µίας κλάσης, µε δοµή και συµπεριφορά που περιγράφονται πλήρως από την κλάση. Ιδιαίτερο χαρακτηριστικό της αντικειµενοστρεφούς τεχνολογίας είναι κελυφοποίηση. Μεταξύ των κλάσεων αναγνωρίζονται οι βασικές σχέσεις της συσχέτισης, της κληρονοµικότητας ή γενίκευσης και της συναρµολόγησης. 2.3 ŒÓ ÏÏÔ ÙÚfiappleÔ apple Ú ÛÙ ÛË ÙÔ ÎfiÛÌÔ Έχοντας δει µια αρχική περιγραφή των χαρακτηριστικών της αντικειµενοστρεφούς προσέγγισης, µπορούµε τουλάχιστον να υποψιαστούµε ότι έχου- µε στη διάθεσή µας όχι µόνο κάποιους νέους όρους που αφορούν τα συστατικά λογισµικού και τις σχέσεις µεταξύ τους, αλλά κάποια εργαλεία που µας

39 2.3 ƒ ƒ À ª À 39 επιτρέπουν να µοντελοποιήσουµε ένα πρόβληµα µε διαφορετικό τρόπο απ' ό,τι η δοµηµένη ανάλυση και σχεδίαση. Πριν ξεκινήσουµε τη συζήτηση, είναι χρήσιµο να εισάγουµε την έννοια της αφαίρεσης (abstraction). Αφαίρεση Αφαίρεση (abstraction) είναι η νοητική εκείνη λειτουργία όπου από το σύνολο των λεπτοµερειών µιας οντότητας ή ενός γεγονότος, επιλέγουµε να επικεντρώσουµε την προσοχή µας µόνο σε κάποιες, αφαιρώντας τις υπόλοιπες. Η αφαίρεση είναι χρήσιµο εργαλείο για τη δηµιουργία µοντέλων της πραγ- µατικότητας, τα οποία έχουν µόνο τη λεπτοµέρεια που µας απασχολεί και χρησιµοποιείται ευρύτατα στην αντικειµενοστρεφή προσέγγιση. Ú ÂÈÁÌ 2.5 Ένας χάρτης είναι µια αφαίρεση της πραγµατικότητας, η οποία απεικονίζει τα χαρακτηριστικά µιας γεωγραφικής περιοχής τα οποία µας ενδιαφέρουν. Ένας µορφολογικός χάρτης χρησιµοποιεί µια άλλη αφαίρεση απ' ό,τι ένας πολιτικός χάρτης της ίδιας περιοχής (Σχήµα 2.6). εν είναι εύκολο, ούτε και χρήσιµο, όλα τα χαρακτηριστικά της περιοχής να συµπεριληφθούν σε ένα και µόνο χάρτη. Για το λόγο αυτό, κάνουµε τις αφαιρέσεις που κάθε στιγµή είναι χρήσιµες στο σκοπό µας και δουλεύουµε µ' αυτές. Ì 2.6 Η έννοια της Αφαίρεσης. Αριστερά φαίνεται ένας µορφολογικός χάρτης της Ελλάδας, ενώ δεξιά ένας πολιτικός χάρτης. Η αφαίρεση στις δύο περιπτώσεις είναι διαφορετική, δηλαδή µας ενδιαφέρει να απεικονιστούν διαφορετικά χαρακτηριστικά.

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

E π A π π ª π. Â È ÛÌfi ÔÁÈÛÌÈÎÔ. TfiÌÔ ' ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II. KÏÂ ÓıË Ú ÌappleÔ Ï Ë. (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi ) E π A π π ª π Â È ÛÌfi ÔÁÈÛÌÈÎÔ TfiÌÔ ' KÏÂ ÓıË Ú ÌappleÔ Ï Ë ÏÒÛÛÂ ÚÔÁÚ ÌÌ ÙÈÛÌÔ II (AÓÙÈÎÂÈÌÂÓÔÛÙÚÂÊ ÚÔÁÚ ÌÌ ÙÈÛÌfi ) ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών

Διαβάστε περισσότερα

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

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ E π A π π ª π EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ TfiÌÔ ' KÏ ÓıË Ú ÌappleÔ Ï Ë ÏÒÛÛ ÚÔÁÚ ÌÌ ÙÈÛÌÔ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

Διαβάστε περισσότερα

Σκοπός του μαθήματος

Σκοπός του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Εισαγωγή Βασικές Έννοιες Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Σκοπός του μαθήματος Η απόκτηση των γνώσεων

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 7 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά

ΚΕΦΑΛΑΙΟ 7 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά ΚΕΦΑΛΑΙΟ 7 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Σκοπός του κεφαλαίου είναι η εισαγωγή του αναγνώστη στην αντικειμενοστρεφή τεχνολογία και γενικότερα στα σύγχρονα χαρακτηριστικά και τις τρέχουσες τάσεις

Διαβάστε περισσότερα

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

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ TfiÌÔ ' MÈ Ï ÓÔ ËÌ. XÚÈÛÙÔ Ô Ï ÎË B ÛÂÈ Â ÔÌ ÓˆÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

Διαβάστε περισσότερα

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

E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË - EÊ ÚÌÔÁ. TfiÌÔ ' ÂÓÂÙÈÎÔ AÏÁfiÚÈıÌÔÈ Î È EÊ ÚÌÔÁ. ÎÔı Ó ÛË E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË - EÊ ÚÌÔÁ TfiÌÔ ' apple Ú ˆÓ ÎÔı Ó ÛË ÂÓÂÙÈÎÔ AÏÁfiÚÈıÌÔÈ Î È EÊ ÚÌÔÁ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ

Διαβάστε περισσότερα

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

E π A π π ª π. È ÎÚÈÙ M ıëì ÙÈÎ. Î È M ıëì ÙÈÎ ÔÁÈÎ. TfiÌÔ A' È ÎÚÈÙ M ıëì ÙÈÎ ÂÒÚÁÈÔ BÔ ÚÔ E π A π π ª π È ÎÚÈÙ M ıëì ÙÈÎ Î È M ıëì ÙÈÎ ÔÁÈÎ TfiÌÔ A' ÂÒÚÁÈÔ BÔ ÚÔ È ÎÚÈÙ M ıëì ÙÈÎ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛΗΡΟΦΟΡΙΚΗ Θεµατική Eνότητα

Διαβάστε περισσότερα

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

EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ E π A π π ª π EÈÛ ÁˆÁ ÛÙËÓ ÏËÚÔÊÔÚÈÎ TfiÌÔ A' HÏ appleèù ÎË EÈÛ ÁˆÁ ÛÙËÓ EappleÈÛÙ ÌË ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

Διαβάστε περισσότερα

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

E π A π π ª π. Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi. MÔÓÙÂÏÔappleÔ ËÛË. TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË Î È ÚÔÛÔÌÔ ˆÛË E π A π π ª π Ú ÌÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi Î È MÔÓÙÂÏÔappleÔ ËÛË TfiÌÔ A' M ÓÔ PÔ ÌÂÏÈÒÙË MÔÓÙÂÏÔappleÔ ËÛË Î È ÚÔÛÔÌÔ ˆÛË ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών

Διαβάστε περισσότερα

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

TËÏÂÌ ÙÈÎ, È ÎÙ Î È KÔÈÓˆÓ E π A π π ª π TËÏÂÌ ÙÈÎ, È ÎÙ Î È KÔÈÓˆÓ TfiÌÔ ' AÓ ÛÙ ÛÈÔ EÌ ÏˆÙ YappleÔÏÔÁÈÛÙ Î È KÔÈÓˆÓ, Information Society ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

Διαβάστε περισσότερα

Περιεχόμενο του μαθήματος

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Η Αντικειμενοστρεφής Τεχνολογία Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 202-203 Περιεχόμενο του μαθήματος Η έννοια

Διαβάστε περισσότερα

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

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË E π A π π ª π ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË TfiÌÔ B' B Û ÏÂÈÔ KfiÌË AÓ ÛÙ ÛÈÔ MÈÎÚfiappleÔ ÏÔ ÏËÚÔÊÔÚÈÎ ÛÙËÓ EÎapple  ÛË ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών

Διαβάστε περισσότερα

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

Θεωρία Πληροφορίας και Kωδικοποίησης Θεωρία Πληροφορίας και Kωδικοποίησης Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστηµονική

Διαβάστε περισσότερα

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

ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË E π A π π ª π ÏËÚÔÊÔÚÈÎ Î È EÎapple  ÛË TfiÌÔ A' B Û ÏÂÈÔ KfiÌË È ÎÙÈÎ ÙË ÏËÚÔÊÔÚÈÎ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

Διαβάστε περισσότερα

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΚΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ρ. Βασίλειος Βεσκούκης ΠΕΙΡΑΙΑΣ, 2000 Περιεχόµενα 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗ

Διαβάστε περισσότερα

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

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ ' AÓ Ú T fiáèô TÔ KfiÛÙÔ ÙË ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ Θεµατική

Διαβάστε περισσότερα

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

EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π EÈ ÈÎ Ì Ù ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ B' NÈÎfiÏ Ô TÚ ÏÈ EappleÈıÂÒÚËÛË ÛÙËÌ ÙˆÓ ÁÈ ÙËÓ ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ

Διαβάστε περισσότερα

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

B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ E π A π π ª π B ÛÈÎ EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ TfiÌÔ E' Aı Ó ÛÈÔ apple ÚÁ ÚË ÂÈÁÌ ÙÔÏË ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IΣΦAΛIΣH

Διαβάστε περισσότερα

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

E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË EÊ ÚÌÔÁ. TfiÌÔ B' NÂ ÚˆÓÈÎ ÎÙ Î È ÓÔ AÚÁ Ú ÎË EÊ ÚÌÔÁ E π A π π ª π TÂ ÓËÙ NÔËÌÔÛ ÓË EÊ ÚÌÔÁ TfiÌÔ B' ÓÔ AÚÁ Ú ÎË NÂ ÚˆÓÈÎ ÎÙ Î È EÊ ÚÌÔÁ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ E π A π π ª π ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ TfiÌÔ A' ˆÎÚ ÙË K ÙÛÈÎ AÛÊ ÏÂÈ YappleÔÏÔÁÈÛÙÒÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

Διαβάστε περισσότερα

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

E π A π π ª π. ÚÔÁÚ ÌÌ ÙÈÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. TfiÌÔ A' Â È ÛÌfi. ÁÈ ÙËÓ ÔÈfiÙËÙ. AÁÁÂÏfiappleÔ ÏÔ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ A' X Ú Ï ÌappleÔ AÁÁÂÏfiappleÔ ÏÔ Â È ÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH

Διαβάστε περισσότερα

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

E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ. TfiÌÔ B' ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ TfiÌÔ B' ÏÔ apple Ú ÎË ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα APXEΣ TEXNOΛOΓIAΣ

Διαβάστε περισσότερα

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

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ E π A π Δ π Δ ª π OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ Aı Ó ÛÈÔ X ÛÈ Îfi ËÌ ÙÚÈÔ ÂÔ ˆÚ ÎfiappleÔ ÏÔ TfiÌÔ ' XÚÔÓÈÎfi Î È OÈÎÔÓÔÌÈÎfi ÚÔÁÚ ÌÌ ÙÈÛÌfi ŒÚÁˆÓ Xρονικός και Oικονομικός Προγραμματισμός Έργων Σημείωση Το

Διαβάστε περισσότερα

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας ρ. Πάνος Φιτσιλής Περιεχόµενα Βασικές έννοιες αντικειµενοστεφούς τρόπου ανάπτυξης Τι είναι κλάση Τι είναι αντικείµενο 2 Βασικές

Διαβάστε περισσότερα

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

ÚÔËÁÌ Ó EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ E π A π π ª π ÚÔËÁÌ Ó EÚÁ ÏÂ Î È M ıô ÔÈ ÁÈ ÙÔÓ ŒÏÂÁ Ô ÙË ÔÈfiÙËÙ TfiÌÔ ' NÈÎfiÏ Ô ÔÁÔı ÙË È ÈÎ Û Â Î È T ÓÈÎ ÓÂ Ô BÂÏÙ ˆÛË ÙË ÔÈfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας

Διαβάστε περισσότερα

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

K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) :13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών K ÓÔ.ÛÂÏÈ.(168ÛÂÏ.) 18-10-06 09:13 ÂÏ 1 (M ÚÔ ÙÛ ÁÎÔ) Eπιστήµη Eπιφανειών Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως

Διαβάστε περισσότερα

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

Aρχές Διοίκησης Επιχειρήσεων Aρχές Διοίκησης Επιχειρήσεων Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστημονική αρτιότητα

Διαβάστε περισσότερα

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

E π A π π ª π º ÛÈÎÔ ËÌÂ. TfiÌÔ ' Ù ÙÈÛÙÈÎ ÂÚÌÔ Ó ÌÈÎ BÏ ÛË M Ú ÓÙ E π A π π ª π º ÛÈÎÔ ËÌÂ TfiÌÔ ' BÏ ÛË M Ú ÓÙ Ù ÙÈÛÙÈÎ ÂÚÌÔ Ó ÌÈÎ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΣΠOY EΣ ΣTIΣ ΦYΣIKEΣ EΠIΣTHMEΣ Θεµατική Ενότητα

Διαβάστε περισσότερα

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

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ E π A π π ª π ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ TfiÌÔ B' ˆÎÚ ÙË K ÙÛÈÎ AÛÊ ÏÂÈ ÈÎÙ ˆÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική

Διαβάστε περισσότερα

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

ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ E π A π π ª π ÚÔÁÚ ÌÌ ÙÈÛÌfi ÁÈ ÙËÓ ÔÈfiÙËÙ TfiÌÔ E' AÓ Ú T fiáèô ÛÂÈ ÚÔÌËıÂ Ù AÁÔÚ ÛÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών IAΣΦAΛIΣH ΠOIOTHTAΣ Θεµατική

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Τεχνολογία Λογισμικού Προαπαιτήσεις Γνώση Αρχών Προγραμματισμού Γνώση Γλώσσας Προγραμματισμού (C++, Java, Pascal) Χρήση Η/Υ (Σχεδίαση, Επεξ. Κειμένου) Κριτική και Συνθετική Ικανότητα Σκοπός μαθήματος Γνωριμία

Διαβάστε περισσότερα

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

Σχεδιασμός και Eκτίμηση Έργων Σχεδιασμός και Eκτίμηση Έργων Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστημονική αρτιότητα

Διαβάστε περισσότερα

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

Mηχανολογική Σχεδίαση Mηχανολογική Σχεδίαση Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης. Για την επιστημονική αρτιότητα και

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό

Διαβάστε περισσότερα

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

ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ E π A π π ª π ÚÔÛÙ Û Î È AÛÊ ÏÂÈ ÛÙËÌ ÙˆÓ YappleÔÏÔÁÈÛÙÒÓ TfiÌÔ ' B Û ÏÂÈÔ ZÔÚÎ Ë KÚ appleùôáú Ê ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική

Διαβάστε περισσότερα

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

Aισθητήρες και Mικροαισθητήρες TÛÔ Î Ï (128Û.) 2/1/2004 14:03 ÂÏ 1 Aισθητήρες και Mικροαισθητήρες Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης.

Διαβάστε περισσότερα

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

OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ E π A π Δ π Δ ª π OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ TfiÌÔ A' ÂÒÚÁÈÔ KÔÚÚ Aı Ó ÛÈÔ X ÛÈ Îfi OÈÎÔÓÔÌÈÎ T ÓÈÎÒÓ ŒÚÁˆÓ Oικονομική Tεχνικών Έργων Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη

Διαβάστε περισσότερα

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

Σχεδίαση Λογισμικού. Σημείωση Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό

Διαβάστε περισσότερα

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

K Ì ÚÈÓfi (232ÛÂÏ.) 23/3/ :03 ÂÏ 1. Mικροηλεκτρονική K Ì ÚÈÓfi (232ÛÂÏ.) 23/3/2004 13:03 ÂÏ 1 Mικροηλεκτρονική Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης.

Διαβάστε περισσότερα

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

È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ E π A π Δ π Δ ª π È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ ËÌ ÙÚÈÔ ÂˆÚÁ Î ÎË TfiÌÔ ' ÙÂÚ ˆÚÁÈÎ Aapplefi ÏËÙ Στερεά Γεωργικά Aπόβλητα Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των

Διαβάστε περισσότερα

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

Διαβάστε περισσότερα

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

È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ E π A π Δ π Δ ª π È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ TfiÌÔ ' ËÌ ÙÚÈÔ ÂˆÚÁ Î ÎË YÁÚ ÂˆÚÁÈÎ Aapplefi ÏËÙ Yγρά Γεωργικά Aπόβλητα Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Eιδικά Θέµατα υναµικής των Kατασκευών και Σεισµικής Mηχανικής M E KO. E. (192Û.) 23/5/2003 15:36 ÂÏ 1 Eιδικά Θέµατα υναµικής των Kατασκευών και Σεισµικής Mηχανικής Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη

Διαβάστε περισσότερα

Εισαγωγή στην Τεχνολογία Λογισµικού

Εισαγωγή στην Τεχνολογία Λογισµικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μάθηµα "Τεχνολογία Λογισµικού", 9ο εξάµηνο Εισαγωγή στην Τεχνολογία Λογισµικού Νίκος Παπασπύρου Γιάννης Μαΐστρος Βασίλης

Διαβάστε περισσότερα

Εισαγωγή στην Τεχνολογία Λογισµικού

Εισαγωγή στην Τεχνολογία Λογισµικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μάθηµα "Τεχνολογία Λογισµικού", 9ο εξάµηνο Τι είναι Λογισµικό; Προγράµµατα ηλεκτρονικού υπολογιστή οµές δεδοµένων µε µόνιµη

Διαβάστε περισσότερα

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

E π A π π ª π OÚÁ ÓÈÎ XËÌÂ. TfiÌÔ ' º ÛÌ ÙÔÛÎÔapple OÚÁ ÓÈÎÒÓ EÓÒÛˆÓ. I.. ÂÚÔı Ó ÛË E π A π π ª π OÚÁ ÓÈÎ XËÌ TfiÌÔ ' I.. ÂÚÔı Ó ÛË º ÛÌ ÙÔÛÎÔapple OÚÁ ÓÈÎÒÓ EÓÒÛÂˆÓ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας ΣΠΟΥ ΕΣ ΣΤΙΣ ΦΥΣΙΚΕΣ ΕΠΙΣΤΗΜΕΣ Oργανική Xηµεία Tόµος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εισαγωγή στην Τεχνολογία Λογισµικού

Εισαγωγή στην Τεχνολογία Λογισµικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μάθηµα "Τεχνολογία Λογισµικού", 9ο εξάµηνο Εισαγωγή στην Τεχνολογία Λογισµικού Βασίλειος Βεσκούκης ρ Ηλεκτρολόγος Μηχανικός

Διαβάστε περισσότερα

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

E π A π Δ π Δ ª π. NÔÌÔıÂÛ Î È AÛÊ ÏÂÈ T ÓÈÎÒÓ ŒÚÁˆÓ. TfiÌÔ B' K ÏÏÈfiappleË ÓË Iˆ ÓÓË Ô ÊÏ AÛÊ ÏÂÈ EÎÙ ÏÂÛË ŒÚÁˆÓ E π A π Δ π Δ ª π NÔÌÔıÂÛ Î È AÛÊ ÏÂÈ T ÓÈÎÒÓ ŒÚÁˆÓ TfiÌÔ B' K ÏÏÈfiappleË ÓË Iˆ ÓÓË Ô ÊÏ AÛÊ ÏÂÈ EÎÙ ÏÂÛË ŒÚÁˆÓ Aσφάλεια Eκτέλεσης Έργων Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την

Διαβάστε περισσότερα

Υποδείγματα Ανάπτυξης

Υποδείγματα Ανάπτυξης Υποδείγματα Ανάπτυξης περιεχόμενα παρουσίασης Αποσύνθεση Αφαίρεση Μοντελοποίηση Η δεδομένο λειτουργική προσέγγιση Η αντικειμενοστρεφής προσέγγιση αποσύνθεση Όταν επιχειρούμε τη λύση ενός προβλήματος, πρώτα

Διαβάστε περισσότερα

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

KO MA E I O OIH H 30/5/ :32 ÂÏ 1. Eπιστήµη Πολυµερών KO MA E I O OIH H 30/5/2003 12:32 ÂÏ 1 Eπιστήµη Πολυµερών Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης.

Διαβάστε περισσότερα

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

Διαβάστε περισσότερα

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ Οι Μηχανικοί Λογισμικού παράγουν μοντέλα που βοηθούν στη διατύπωση των απαιτήσεων με τη μορφή προδιαγραφών. Η εργασία της παραγωγής μοντέλων περιγράφεται ως ανάλυση απαιτήσεων. Η ανάλυση

Διαβάστε περισσότερα

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

T ÓËÙ NÔËÌÔÛ ÓË - EÊ ÚÌÔÁ E π A π π ª π T ÓËÙ NÔËÌÔÛ ÓË - EÊ ÚÌÔÁ TfiÌÔ A' EÏapple KÂÚ ÓÔ T ÓËÙ NÔËÌÔÛ ÓË Î È ŒÌappleÂÈÚ ÛÙ Ì Ù ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH

Διαβάστε περισσότερα

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

Διαβάστε περισσότερα

Πληροφορική 2. Τεχνολογία Λογισμικού

Πληροφορική 2. Τεχνολογία Λογισμικού Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

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

ÔÌ Î È ÂÈÙÔ ÚÁ ÙÔ K ÙÙ ÚÔ E π A π π ª π ÔÌ Î È ÂÈÙÔ ÚÁ ÙÔ K ÙÙ ÚÔ B Û ÏË M ÚÌ Ú M Ú ÌappleÚÔappleÔ ÏÔ M ÚÌ Ú TfiÌÔ A' K ÙÙ ÚÈÎ BÈÔÏÔÁ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΣΠOY

Διαβάστε περισσότερα

Rational Unified Process:

Rational Unified Process: ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ - Μεταπτυχιακό µάθηµα: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΕΙΣ ΜΕΘΟ ΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΣΜΙΚΟΥ Καθ. Ε. Σκορδαλάκης, ρ. Β. Βεσκούκης Rational Unified

Διαβάστε περισσότερα

Αντικειµενοστρεφής ανάλυση και σχεδίαση

Αντικειµενοστρεφής ανάλυση και σχεδίαση ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Μάθηµα "Τεχνολογία Λογισµικού", 9ο εξάµηνο Αντικειµενοστρεφής ανάλυση και σχεδίαση Βασίλειος Βεσκούκης v.vescoukis@cs.ntua.gr

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ 7.1. Ανάπτυξη Προγράµµατος Τι είναι το Πρόγραµµα; Το Πρόγραµµα: Είναι ένα σύνολο εντολών για την εκτέλεση ορισµένων λειτουργιών από τον υπολογιστή.

Διαβάστε περισσότερα

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού Πρόλογος...21 μέρος A Εισαγωγή στην Τεχνολογία Λογισμικού 1 Εισαγωγή στην Τεχνολογία Λογισμικού 1.1 Το λογισμικό...25 1.1.1 Ο ρόλος και η σημασία του λογισμικού...26 1.1.2 Οικονομική σημασία του λογισμικού...28

Διαβάστε περισσότερα

2.2 Οργάνωση και ιοίκηση (Μάνατζµεντ -Management) 2.2.1. Βασικές έννοιες 2.2.2 Ιστορική εξέλιξη τον µάνατζµεντ.

2.2 Οργάνωση και ιοίκηση (Μάνατζµεντ -Management) 2.2.1. Βασικές έννοιες 2.2.2 Ιστορική εξέλιξη τον µάνατζµεντ. 2.2 Οργάνωση και ιοίκηση (Μάνατζµεντ -Management) 2.2.1. Βασικές έννοιες Έχει παρατηρηθεί ότι δεν υπάρχει σαφής αντίληψη της σηµασίας του όρου "διοίκηση ή management επιχειρήσεων", ακόµη κι από άτοµα που

Διαβάστε περισσότερα

Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21

Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

Διαβάστε περισσότερα

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

E π A π π ª π º ÛÈÎÔ ËÌÂ. TfiÌÔ E' º ÛÌ ÙÔÛÎÔapple ºÒÙË NÙ E π A π π ª π º ÛÈÎÔ ËÌÂ TfiÌÔ E' ºÒÙË NÙ º ÛÌ ÙÔÛÎÔapple ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΣΠOY EΣ ΣTIΣ ΦYΣIKEΣ EΠIΣTHMEΣ Θεµατική Ενότητα ΦΥΣΙΚΟΧΗΜΕΙΑ

Διαβάστε περισσότερα

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ E π A π Δ π Δ ª π È Â ÚÈÛË YÁÚÒÓ AappleÔ Ï ÙˆÓ TfiÌÔ ' ÂÚ ÛÈÌÔ ÌappleÂÚ ÙÔ AÛÙÈÎ Ì Ù Aστικά Λύματα Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την ανάπτυξη των κειμένων σύμφωνα με τη Μεθοδολογία

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη

ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ Σκοπός του κεφαλαίου είναι η εισαγωγή της έννοιας της διάταξης λογισμικού, ως αρχιτεκτονικής δόμησης των υπολογιστικών πόρων και της ανάθεσης σε αυτούς συστατικών

Διαβάστε περισσότερα

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ Ο κύκλος ζωής λογισµικού (συνοπτικά) Η παραδοσιακή φάση ανάπτυξης του κύκλου ζωής λογισµικού Φάση καθορισµού απαιτήσεων (1/2) ΤΙ πρέπει να κάνει το

Διαβάστε περισσότερα

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού Μάρα Νικολαϊδου Δραστηριότητες Διαδικασιών Παραγωγής Λογισµικού Καθορισµός απαιτήσεων και εξαγωγή προδιαγραφών

Διαβάστε περισσότερα

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής Περιεχόµενα Κατηγορίες Π.Σ. ιαχείρισης Πράξεων ιοίκησης Υποστήριξης Αποφάσεων Έµπειρα Συστήµατα Ατόµων και Οµάδων Ο κύκλος ζωής Π.Σ. Ορισµός Φάσεις Χρήστες

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΔΙΑΔΙΚΑΣΙΕΣ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ Διδάσκων: Γ. Χαραλαμπίδης,

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 18/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

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

È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ E π A π Δ π Δ ª π È Â ÚÈÛË ÙÂÚÂÒÓ AappleÔ Ï ÙˆÓ A Ì ÓÙÈÔ ÎÔÚ ÏË KˆÓÛÙ ÓÙ ÓÔ KÔÌÓ ÙÛ TfiÌÔ B' EappleÈÎ Ó Ó Aapplefi ÏËÙ Eπικίνδυνα Aπόβλητα Σημείωση Το ΕΑΠ είναι υπεύθυνο για την επιμέλεια έκδοσης και την

Διαβάστε περισσότερα

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες: Άσκηση 5Α_5 26/3/2003 11.5. Άσκηση 5A - [αναγνώριση αντικειµένων-διάγραµµα κλάσεων] [Σε αντικατάσταση της άσκησης 5 του κεφαλαίου 11] 11.5.1. Περιγραφή Η άσκηση αυτή είναι η πρώτη από µία σειρά ασκήσεων

Διαβάστε περισσότερα

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

Eπικοινωνία Aνθρώπου Yπολογιστή ABOYPH /264Û. 4/6/2003 09:45 ÂÏ 1 Eπικοινωνία Aνθρώπου Yπολογιστή Σηµείωση Το ΕΑΠ είναι υπεύθυνο για την επιµέλεια έκδοσης και την ανάπτυξη των κειµένων σύµφωνα µε τη Μεθοδολογία της εξ Αποστάσεως Εκπαίδευσης.

Διαβάστε περισσότερα

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία 1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στην αντικειµενοστρεφή τεχνολογία ρ. Πάνος Φιτσιλής Περιεχόµενα Γιατί µοντελοποιούµε Εισαγωγή στη UML Ένα απλό παράδειγµα 2 Γιατί µοντελοποιούµε; Ησηµασία της µοντελοποίησης

Διαβάστε περισσότερα

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

Σχεδίαση Middleware Εγχειρίδιο Μελέτης Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο», η οποία έχει ενταχθεί στο Επιχειρησιακό

Διαβάστε περισσότερα

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

E π A π π ª π KÏ ÛÈÎ º ÛÈÎ I. TfiÌÔ ' HÏÂÎÙÚÔÌ ÁÓËÙÈÛÌfi. NÈÎfiÏ Ô. K Ï ÊË E π A π π ª π KÏ ÛÈÎ º ÛÈÎ I TfiÌÔ ' NÈÎfiÏ Ô. K Ï ÊË HÏÂÎÙÚÔÌ ÁÓËÙÈÛÌfi ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΣΠOY EΣ ΣTIΣ ΦYΣIKEΣ EΠIΣTHMEΣ Θεµατική

Διαβάστε περισσότερα

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα ΕΙΣΑΓΩΓΗ ΣΤΗ UML UML Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις ιαγράµµατα Παραδείγματα Ορισμός του μοντέλου Αποτελεί µια αφηρηµένη περιγραφή ενός Φυσικού συστήµατος. Αποτελεί ένα σχέδιο για την

Διαβάστε περισσότερα

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

Γλώσσες Προγραμματισμού Το έργο υλοποιείται στο πλαίσιο του υποέργου 2 με τίτλο «Ανάπτυξη έντυπου εκπαιδευτικού υλικού για τα νέα Προγράμματα Σπουδών» της Πράξης «Ελληνικό Ανοικτό Πανεπιστήμιο» η οποία έχει ενταχθεί στο Επιχειρησιακό

Διαβάστε περισσότερα

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

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

E π A π π ª π OÚÁ ÓÈÎ XËÌÂ. TfiÌÔ ' BÈÔÌfiÚÈ : ÔÌ & ÂÈÙÔ ÚÁÈÎfiÙËÙ N ÎÔ K. K Ú Ì ÓÔ E π A π π ª π OÚÁ ÓÈÎ XËÌÂ TfiÌÔ ' N ÎÔ K. K Ú Ì ÓÔ BÈÔÌfiÚÈ : ÔÌ & ÂÈÙÔ ÚÁÈÎfiÙËÙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΣΠOY EΣ ΣTIΣ ΦYΣIKEΣ EΠIΣTHMEΣ

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

Διαβάστε περισσότερα

2.1 Αντικειµενοστρεφής προγραµµατισµός

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

Διαβάστε περισσότερα