ΣΗΜΕΙΩΣΕΙΣ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ

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

Download "ΣΗΜΕΙΩΣΕΙΣ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλέξανδρος N. Χατζηγεωργίου ΣΗΜΕΙΩΣΕΙΣ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ Θεσσαλονίκη, Μάρτιος 008

2 Περιεχόμενα ΔΙΑΧΕΙΡΙΣΗ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ. Χρονικός Προγραμματισμός.... Εισαγωγή.... Κατασκευή δικτυακού διαγράμματος....3 Πλασματικές Δραστηριότητες Υπολογισμοί Δικτύων Εκτίμηση Κόστους (Τεχνική COCOMO)... 7 ΠΕΡΙΓΡΑΦΗ ΑΠΑΙΤΗΣΕΩΝ ΛΟΓΙΣΜΙΚΟΥ. Μηχανές Πεπερασμένων Καταστάσεων Δίκτυα Petri Γλώσσα Z... ΜΕΤΡΙΚΕΣ ΛΟΓΙΣΜΙΚΟΥ. Εισαγωγή Γενικά Μετρικές Διαδικασίας Μετρικές Έργου Μετρικές Προϊόντος Αρχές Μετρήσεων Ανάλυση Μετρικές βασισμένες σε συναρτήσεις Μετρική Bang Μετρικές για την ποιότητα των προδιαγραφών Σχεδίαση Κωδικοποίηση - Έλεγχος Μέγεθος κώδικα Γράφοι (Ορισμοί) Κυκλωματική Πολυπλοκότητα του McCabe Εξαγωγή περιπτώσεων ελέγχου... 50

3 5.5 Μέτρηση εσωτερικών χαρακτηριστικών προγράμματος Ακολουθία και φώλιασμα Η έννοια της δομικότητας Ιεραρχικά μέτρα Προγραμματιστική Προσπάθεια κατά Halstead Μετρική Πολυπλοκότητας Δεδομένων Κριτήρια Τερματισμού Ελέγχου Βασικό Μοντέλο Ανάλυση Δεδομένων και Εξαγωγή Παραμέτρων Παράδειγμα Αντικειμενοστραφείς Μετρικές Εισαγωγή Παράδειγμα: Οικογένεια Robot Μετρικές σε επίπεδο κλάσης Βιβλιογραφία... 8

4 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΔΙΑΧΕΙΡΙΣΗ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ. ΧΡΟΝΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εισαγωγή Η διαχείριση έργων λογισμικού (software project management) αποτελεί μία από τις σημαντικότερες παραμέτρους στην ανάπτυξη λογισμικού και συχνά η κακή διαχείριση συνιστά την κυριότερη αιτία αποτυχίας μεγάλων έργων λογισμικού. Παρόλο που τα έργα λογισμικού διαφέρουν σημαντικά από άλλα τεχνικά έργα λόγω της φύσεως και της πολυπλοκότητας του λογισμικού, η διαχείριση τους περιλαμβάνει πολλές ενέργειες που συναντώνται και στη διαχείριση άλλων τεχνικών δραστηριοτήτων. Ένα έργο ορίζεται ως μια δραστηριότητα με ένα καθορισμένο στόχο που πρέπει να επιτευχθεί σε προδιαγεγραμμένα χρονικά όρια και χρησιμοποιώντας πεπερασμένους πόρους. (Για ένα έργο λογισμικού ως πόροι νοούνται μόνο τα μέλη της ομάδας ανάπτυξης, ήτοι σχεδιαστές, προγραμματιστές, ελεγκτές κλπ). Η διαχείριση ενός έργου απαιτεί το σχεδιασμό των ενεργειών που θα γίνουν (planning), τη διασφάλιση των απαιτούμενων πόρων, τον χρονικό προγραμματισμό (scheduling) και τον έλεγχο/αξιολόγηση κάθε ολοκληρωμένης δραστηριότητας. Σε μια οργανωμένη εταιρεία ανάπτυξης λογισμικού η διαχείριση των έργων είναι μια διακεκριμένη αρμοδιότητα (δεν πρέπει δηλαδή να συγχέεται με άλλες τεχνικές δραστηριότητες) και πρέπει να διεκπεραιώνεται από κατάλληλο προσωπικό. Στη συνέχεια, δεν θα αναλυθούν όλες οι ενέργειες που περιλαμβάνονται στη διαχείριση έργων αλλά θα δοθεί έμφαση στον χρονικό προγραμματισμό. Ειδικότερα, θα εξεταστούν τεχνικές δικτύων για τον προγραμματισμό δραστηριοτήτων με πρωταρχικό σκοπό την εκτίμηση της απαιτούμενης χρονικής διάρκειας για την ολοκλήρωση του έργου. Τα βήματα που απαιτούνται για την εφαρμογή μιας τέτοιας τεχνικής προγραμματισμού είναι τα εξής:. Κατασκευή ενός δικτυακού διαγράμματος (network diagram) που αναπαριστά το έργο, συμβολίζοντας την ακολουθία και την αλληλεξάρτηση μεταξύ των δραστηριοτήτων. Καθορισμός της διάρκειας κάθε δραστηριότητας 3. Εκτέλεση υπολογισμών επί του δικτύου για τον καθορισμό της συνολικής διάρκειας του έργου και της κρισιμότητας κάθε δραστηριότητας 4. Τροποποίηση του δικτύου/διάρκειας εργασιών σε περίπτωση προβλημάτων (π.χ. χρόνος περάτωσης αργότερος από τον επιθυμητό). Κατασκευή δικτυακού διαγράμματος Οποιοδήποτε έργο μπορεί να αναπαρασταθεί ως ένα δικτυακό (ή τοξωτό) διάγραμμα (γράφος) όπου κάθε δραστηριότητα αναπαρίσταται ως μια ακμή (activity on arrow diagram). Η αναπαράσταση των δραστηριοτήτων με ακμές συμβαδίζει με την γενική αντίληψη ότι μια δραστηριότητα έχει διάρκεια (το μήκος της ακμής θα μπορούσε να είναι ανάλογο με την απαιτούμενη διάρκεια, ωστόσο αυτό δεν είναι απαραίτητο). Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ.

5 Διαχείριση Έργων Λογισμικού Οι κόμβοι στο διάγραμμα αναπαριστώνται ως κύκλοι και υποδηλώνουν την περάτωση ή την έναρξη μιας εργασίας. Θεωρείται δε, ότι δεν έχουν χρονική διάρκεια. Μπορεί για παράδειγμα να συμβολίζουν ένα γεγονός, ένα χρονικό ορόσημο (milestone) ή την ύπαρξη ενός παραδοτέου (deliverable) μετά την ολοκλήρωση μιας δραστηριότητας. Μια διαδρομή (path) είναι μια ακολουθία κόμβων (ή δραστηριοτήτων). Μια δραστηριότητα Α που ξεκινά με το γεγονός και ολοκληρώνεται με το γεγονός αναπαρίσταται όπως φαίνεται στο διάγραμμα του σχήματος.. Γεγονός Δραστηριότητα Γεγονός Α Σχήμα.: Αναπαράσταση δραστηριότητας ως ακμή Η κατασκευή ενός δικτυακού διαγράμματος προκύπτει από την τοποθέτηση των δραστηριοτήτων σε λογική σειρά, όπως αυτή που αναμένεται να έχουν στην πραγματικότητα. Για παράδειγμα στο σχήμα. παρουσιάζονται δραστηριότητες που βρίσκονται στην ίδια διαδρομή και αποτελούν ακολουθιακές δραστηριότητες (δηλαδή η έναρξη της μιας πραγματοποιείται μετά την περάτωση της προηγούμενης). Παρουσιάζονται επίσης παράλληλες δραστηριότητες που βρίσκονται σε ξεχωριστές διαδρομές και κατά συνέπεια μπορούν να πραγματοποιούνται ταυτόχρονα. Καμία δραστηριότητα δεν μπορεί να ξεκινήσει προτού ολοκληρωθούν όλες οι δραστηριότητες που καταλήγουν σε αυτή (προαπαιτούμενες δραστηριότητες). Για παράδειγμα με βάση το διάγραμμα του σχήματος., η δραστηριότητα "J" δεν μπορεί να ξεκινήσει προτού ολοκληρωθεί η δραστηριότητα "I" και η "Η". Α 0 Β C D 3 4 E F 5 6 G H 7 I 8 J 9 Ακολουθιακές Δραστηριότητες Παράλληλες Δραστηριότητες Σχήμα.: Ακολουθιακές και Παράλληλες Δραστηριότητες Η συνήθης σύμβαση είναι τα διαγράμματα να σχεδιάζονται κατά τέτοιο τρόπο ώστε ο χρόνος να "κυλά" από αριστερά προς τα δεξιά και οι κόμβοι να αριθμούνται ανάλογα με τη χρονική στιγμή εμφάνισης του αντίστοιχου γεγονότος. Εν γένει, για να μπορούν να πραγματοποιηθούν οι υπολογισμοί επί του δικτύου δεν επιτρέπονται βρόχοι (κυκλικές διαδρομές δραστηριοτήτων) και ελεύθεροι κόμβοι (πλην αυτού που αναπαριστά το πέρας του έργου). Σελ. Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

6 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ.3 Πλασματικές Δραστηριότητες Οι δραστηριότητες που αναφέρθηκαν συνιστούν ενέργειες που καταναλώνουν χρόνο και που αποτελούν πραγματικές εργασίες του έργου. Οι πλασματικές δραστηριότητες (dummy activities) δεν καταναλώνουν χρόνο (έχουν μηδενική διάρκεια) και χρησιμοποιούνται μόνο για τη διευκόλυνση της κατασκευής του διαγράμματος. Συμβολίζονται ως διακεκομμένες ακμές. Οι πλασματικές δραστηριότητες χρησιμοποιούνται στις ακόλουθες τρεις περιπτώσεις: α) για την αναπαράσταση της ορθής λογικής σειράς των δραστηριοτήτων στο διάγραμμα: στο άνω διάγραμμα του σχήματος.3, η ολοκλήρωση των δραστηριοτήτων C και D είναι απαραίτητη ώστε να μπορέσει να ξεκινήσει η E ή η F. Αν στην πραγματικότητα, αυτό που ισχύει είναι ότι μόνο η δραστηριότητα Ε εξαρτάται από την ολοκλήρωση των C και D, ενώ η δραστηριότητα F εξαρτάται μόνο από την D, η κατάλληλη αναπαράσταση επιτυγχάνεται με τη χρήση μιας πλασματικής δραστηριότητας, όπως φαίνεται στο κάτω διάγραμμα του σχήματος.3. Η πλασματική δραστηριότητα υποδηλώνει απλώς την αναγκαιότητα ολοκλήρωσης και της D για την έναρξη της E. Α C E 4 G Β D F 5 H... Α C 3 E 5 G... 0 Β D 4 F 6 H... Σχήμα.3: Χρήση Πλασματικών Δραστηριοτήτων για σωστή αναπαράσταση β) Για την αποφυγή περισσοτέρων της μιας δραστηριοτήτων με τον ίδιο κόμβο έναρξης και τον ίδιο κόμβο λήξης (άνω διάγραμμα σχήματος.4). Επειδή ορισμένες φορές οι δραστηριότητες περιγράφονται από τους κόμβους έναρξης και λήξης, οι δύο δραστηριότητες του σχήματος δεν θα μπορούσαν να διαχωριστούν. Για την επίλυση αυτού του προβλήματος μπορεί να χρησιμοποιηθεί μια πλασματική δραστηριότητα όπως φαίνεται στο κάτω διάγραμμα του σχήματος.4. Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ. 3

7 Διαχείριση Έργων Λογισμικού Α n Β C n D Α n Β n3 C Σχήμα.4: Χρήση Πλασματικών Δραστηριοτήτων για αποφυγή δραστηριοτήτων με τους ίδιους κόμβους έναρξης και λήξης n D γ) για την απλοποίηση της σχεδίασης του δικτυωτού διαγράμματος. Πολλές φορές, η ύπαρξη μεγάλων "καμπύλων" ακμών που συνδέουν απομακρυσμένους κόμβους του γράφου δυσκολεύει τη σχεδίαση. Πλασματικές δραστηριότητες μπορούν να διευκολύνουν τη σχεδίαση ώστε αυτή να πραγματοποιείται με "ευθείες" ακμές..4 Υπολογισμοί Δικτύων Για την πραγματοποίηση υπολογισμών (αρχικά της εκτιμώμενης χρονικής διάρκειας ολοκλήρωσης) απαιτείται αφενός η περιγραφή του έργου ως δικτυακού διαγράμματος και αφετέρου η καταγραφή η χρονική διάρκεια όλων των δραστηριοτήτων του έργου. Συνήθως, οι προδιαγραφές παρέχονται υπό μορφή μιας λίστας δραστηριοτήτων, της προαπαιτούμενων δραστηριοτήτων για κάθε μία καθώς και της εκτιμώμενης χρονικής διάρκειας κάθε δραστηριότητας (π.χ. σε ημέρες), όπως φαίνεται παρακάτω: Συμβολισμός Δραστηριότητα Προαπαιτούμενες Διάρκεια (ημέρες) Α Απαιτήσεις - 3 Β Ανάλυση Απαιτήσεις C Πρωτυποποίηση Απαιτήσεις D Σχεδίαση Ανάλυση 4 Ε Αναδόμηση Πρωτυποποίηση 3 F Υλοποίηση Σχεδίαση 5 G Τεκμηρίωση Αναδόμηση 5 H Έλεγχος Υλοποίηση 6 I Εγκατάσταση Τεκμηρίωση.4. Ενωρίτερος Χρόνος Έναρξης (Earliest Start Date - ES) Ο ενωρίτερος χρόνος έναρξης κάθε δραστηριότητας υπολογίζεται από την αρχή του δικτύου αθροίζοντας τις διάρκειες όλων των προηγούμενων δραστηριοτήτων. Όταν δύο (ή περισσότερες) δραστηριότητες καταλήγουν στον ίδιο κόμβο, η επόμενη δραστηριότητα δεν μπορεί να ξεκινήσει προτού ολοκληρωθούν όλες οι Σελ. 4 Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

8 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ προηγούμενες. Κατά συνέπεια, ο αργότερος χρόνος λήξης από αυτές τις δραστηριότητες καθορίζει τον ενωρίτερο χρόνο έναρξης της επόμενης δραστηριότητας. Στο διάγραμμα του σχήματος.5 απεικονίζονται στο αριστερό τμήμα κάθε πλαισίου που σημειώνεται πλησίον των κόμβων οι ενωρίτεροι χρόνοι έναρξης των δραστηριοτήτων που ξεκινούν από τον κόμβο. Ως χρόνος έναρξης της δραστηριότητας "Απαιτήσεις" (που δεν έχει προηγούμενες) θεωρείται η μέρα 0. Στο διάγραμμα, σημειώνεται πάνω σε κάθε ακμή η χρονική διάρκεια κάθε δραστηριότητας. Ανάλυση 0 3 d = Απαιτήσεις 0 d = 3 d = Πρωτυποποίηση 5 9 Σχεδίαση Υλοποίηση d = 4 d = 5 d = 3 d = 5 4 Αναδόμηση Τεκμηρίωση d = 6 Έλεγχος 8 0 d = Εγκατάσταση Σχήμα.5: Επίλυση δικτύου: υπολογισμός ενωρίτερων χρόνων έναρξης.4. Αργότερος Χρόνος Λήξης (Latest Finish Date - LF) Ο αργότερος χρόνος λήξης κάθε δραστηριότητας υπολογίζεται από το τέλος του έργου αφαιρώντας τις διάρκειες των δραστηριοτήτων. Όταν δύο (ή περισσότερες) δραστηριότητες εκβάλλουν από τον ίδιο κόμβο, ο ενωρίτερος από τους χρόνους αυτούς καθορίζει τον αργότερο χρόνο λήξης της προηγούμενης δραστηριότητας. Στο διάγραμμα του σχήματος.6 απεικονίζονται στο δεξί τμήμα κάθε πλαισίου που σημειώνεται πλησίον των κόμβων οι αργότεροι χρόνοι λήξης των δραστηριοτήτων που καταλήγουν στον κόμβο. Ως αργότερος χρόνος λήξης των δραστηριοτήτων που καταλήγουν στον κόμβο που συμβολίζει το τέλος του έργου, λαμβάνεται ο ενωρίτερος χρόνος έναρξης της επόμενης δραστηριότητας (ότι δηλαδή ακολουθεί το υπό εξέταση έργο - μπορεί να μην είναι τίποτε). Ανάλυση d = Απαιτήσεις Σχεδίαση 4 Υλοποίηση d = 4 d = 5 Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ d = 6 Έλεγχος d = 3 d = d = Πρωτυποποίηση d = 3 d = 5 Εγκατάσταση Αναδόμηση Τεκμηρίωση Σχήμα.6: Επίλυση δικτύου: υπολογισμός αργότερων χρόνων λήξης 8 0 0

9 Διαχείριση Έργων Λογισμικού.4.3 Ενωρίτερος Χρόνος Λήξης (Earliest Finish Date - EF) Ο ενωρίτερος χρόνος λήξης συνήθως δεν απεικονίζεται επάνω στο διάγραμμα. Υπολογίζεται ως το άθροισμα του ενωρίτερου χρόνου έναρξης και της διάρκειας κάθε δραστηριότητας, δηλαδή EF = ES + d..4.4 Αργότερος Χρόνος Έναρξης (Latest Start Date - LS) Ο αργότερος χρόνος λήξης συνήθως δεν απεικονίζεται επάνω στο διάγραμμα. Υπολογίζεται ως η διαφορά του αργότερου χρόνου λήξης και της διάρκειας κάθε δραστηριότητας, δηλαδή LS = LF - d..4.5 Περιθώριο ή Πλεόνασμα Χρόνου (Float) Στο προηγούμενο παράδειγμα ο ενωρίτερος χρόνος ολοκλήρωσης του έργου καθορίζεται από τους ενωρίτερους χρόνους λήξης των δραστηριοτήτων Έλεγχος και Εγκατάσταση. Η δραστηριότητα Εγκατάσταση θα μπορούσε να ολοκληρωθεί την ημέρα 4 (ES+d) αλλά η δραστηριότητα Έλεγχος δεν μπορεί να ολοκληρωθεί πριν από την ημέρα 0. Αυτή ακριβώς η δραστηριότητα καθορίζει και το χρόνο ολοκλήρωσης όλου του έργου. Στην πραγματικότητα, η διαδρομή Απαιτήσεις- Ανάλυση-Σχεδίαση-Υλοποίηση-Έλεγχος καθορίζει τον ενωρίτερο χρόνο ολοκλήρωσης του έργου παρά η διαδρομή Απαιτήσεις-Πρωτυποποίηση-Αναδόμηση-Τεκμηρίωση- Εγκατάσταση. Ο ενωρίτερος χρόνος ολοκλήρωσης ενός έργου καθορίζεται από τη "μακρύτερη" διαδρομή μέσα στο δίκτυο: κατά συνέπεια, οι συντομότερες διαδρομές θα έχουν περισσότερο διαθέσιμο χρόνο από όσο χρειάζονται. Η διαφορά μεταξύ του διαθέσιμου χρόνου για μια δραστηριότητα και του απαιτούμενου χρόνου καλείται Συνολικό Περιθώριο Χρόνου (ΣΠΧ). Απομονώντας τη δραστηριότητα G Τεκμηρίωση από το διάγραμμα, όπως φαίνεται στο σχήμα.6, προκύπτει ότι: Διαθέσιμος Χρόνος = LF - ES Απαιτούμενος Χρόνος = d Συνολικό Περιθώριο Χρόνου = LF - ES - d δηλαδή, ΣΠΧ G = (8-7) - 5 = 6 ημέρες Με άλλα λόγια, η δραστηριότητα G μπορεί να καθυστερήσει μέχρι και 6 ημέρες, χωρίς να επιφέρει μετατόπιση του χρόνου λήξης του έργου. Σημειώνεται ότι, το συνολικό περιθώριο χρόνου είναι ένα χαρακτηριστικό μιας διαδρομής και όχι μια μεμονωμένης δραστηριότητας. Το μακρύτερο (χρονικά) μονοπάτι σε ένα δικτυωτό διάγραμμα καλείται κρίσιμο μονοπάτι (critical path) και είναι αυτό με το μικρότερο συνολικό περιθώριο χρόνου (μηδενικό περιθώριο σε πολλές περιπτώσεις). Οποιαδήποτε καθυστέρηση στις δραστηριότητες του κρίσιμου μονοπατιού θα καθυστερήσει την ολοκλήρωση του έργου. Το κρίσιμο μονοπάτι δεν είναι κατ' ανάγκη μοναδικό. Η τεχνική υπολογισμού χρόνων επί ενός δικτύου που προαναφέρθηκε ονομάζεται τεχνική του κρίσιμου μονοπατιού (Critical Path Method - CPM). Σελ. 6 Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

10 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ. ΕΚΤΙΜΗΣΗ ΚΟΣΤΟΥΣ (ΤΕΧΝΙΚΗ COCOMO) Η τεχνική COCOMO (COnstructive COst MOdel) βασίζεται σε αλγοριθμικό μοντέλο για την εκτίμηση του κόστους ενός έργου λογισμικού και αναπτύχθηκε από τον Barry Boehm τη δεκαετία του 970 και δημοσιεύτηκε το 98, αξιοποιώντας δεδομένα από πληθώρα έργων λογισμικού της εταιρείας TRW. Το μοντέλο έχει τρεις εκδόσεις. Στη συνέχεια θα περιγραφεί η δεύτερη έκδοση του μοντέλου COCOMO που ονομάζεται "ενδιάμεσο μοντέλο". Για την εφαρμογή της τεχνικής COCOMO απαιτείται η κατάταξη ενός έργου λογισμικού σε μία από τις κατηγορίες "οργανική" (organic), "ημιαποσπασμένη" (semi-detached) και "ενσωματωμένη" (embedded). Η κατάταξη πραγματοποιείται με βάση τα χαρακτηριστικά που παρουσιάζονται στον πίνακα.. Το είδος του έργου καθορίζει τις τιμές ορισμένων παραμέτρων που χρησιμοποιούνται στις εξισώσεις του μοντέλου. Πίνακας.: Κατηγορίες έργων λογισμικού κατά COCOMO κατηγορία Χαρακτηριστικά οργανική ημιαποσπασμένη ενσωματωμένη Κατανόηση από όλους τους εμπλεκόμενους των αντικειμενικών λεπτομερής λεπτομερής γενική σκοπών του προϊόντος Εμπειρία σε σχετικά έργα λογισμικού εκτενής σημαντική μέτρια Αναγκαιότητα συμμόρφωσης λογισμικού με απαιτήσεις βασική σημαντική πλήρης Αναγκαιότητα συμμόρφωσης με προκατασκευασμένη εξωτερική βασική σημαντική πλήρης διαπροσωπεία Ταυτόχρονη ανάπτυξη νέων λειτουργικών διαδικασιών και υλικού χαμηλή μέτρια υψηλή Αναγκαιότητα νεωτεριστικών αρχιτεκτονικών, νέων αλγορίθμων ελάχιστη μερική σημαντική Bonus για ταχεία αποπεράτωση χαμηλό μέτριο υψηλό Μέγεθος προϊόντος <50 KDSI <300 KDSI >300 KDSI Παραδείγματα Καινούργια Απλά Συστήματα Λειτουργικά επιστημονικά ή ελέγχου Συστήματα, νέα εμπορικά εναέριας Συστήματα προγράμματα κυκλοφορίας Διαχείρισης ΒΔ Για την εκτίμηση του κόστους χρησιμοποιούνται: () μία "εξίσωση υπολογισμού απαιτούμενης ονομαστικής προσπάθειας" που έχει τη μορφή: MM NOM = C ( KDSI ) K όπου: ΜΜ ΝΟΜ : η ονομαστική προσπάθεια σε ανθρωπομήνες που απαιτείται για την εκτέλεση του έργου Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ. 7

11 Διαχείριση Έργων Λογισμικού KDSI: μέγεθος σε χιλιάδες εντολές πηγαίου προγράμματος C, K: παράμετροι, η τιμή των οποίων καθορίζεται με βάση τον πίνακα. Πίνακας.: Εξισώσεις ονομαστικής προσπάθειας και διάρκειας ανάπτυξης ανά κατηγορία λογισμικού κατηγορία ονομαστική προσπάθεια διάρκεια ανάπτυξης οργανική MM 3.( KDSI ). 05 NOM = ( ) TDEV =.5 MM DEV ημιαποσπασμένη MM 3.0( KDSI ). NOM = TDEV =.5( MM ) DEV ενσωματωμένη MM.8( KDSI ). 0 NOM = TDEV =.5( MM ) 0. 3 DEV Η επίδραση των συντελεστών κάθε κατηγορίας λογισμικού στην προσπάθεια ανάπτυξης παρουσιάζεται γραφικά στο σχήμα.3 Σχήμα.3: Επίδραση κατηγορίας έργου στην προσπάθεια ανάπτυξης () ένα σύνολο από 5 "παράγοντες κόστους" (cost drivers) που συνεισφέρουν στο συνολικό κόστος του έργου. Σε κάθε παράγοντα κόστους αντιστοιχεί μία παράμετρος που ονομάζεται "πολλαπλασιαστής προσπάθειας" (effort multiplier). Στη συνέχεια, οι πολλαπλασιαστές αυτοί θα συμβολίζονται ως q, q,..., q 5. Η σημασία του κάθε παράγοντα κόστους και η μνημονική ονομασία τους παρουσιάζεται στον πίνακα.3. Η κατάταξη των παραγόντων κόστους γίνεται με βάση τον πίνακα.4 (ειδικά για τον παράγοντα κόστους πολυπλοκότητα, χρησιμοποιείται ο πίνακας.5), ενώ η εύρεση της αντίστοιχης τιμής του κάθε πολλαπλασιαστή προσπάθειας για κάθε παράγοντα κόστους γίνεται με τη βοήθεια του πίνακα.6. Σελ. 8 Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

12 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Πίνακας.3: Παράγοντες κόστους κατά COCOMO α/α μνημονικό σημασία σχετίζεται με RELY Απαιτούμενη αξιοπιστία λογισμικού προϊόν DATA Μέγεθος βάσης δεδομένων -//- 3 CPLX Πολυπλοκότητα προϊόντος -//- 4 ΤΙΜΕ Περιορισμός στο χρόνο εκτέλεσης υπολογιστή 5 STOR Περιορισμός στην κύρια μνήμη -//- 6 VIRT Αλλαγές στο σύστημα HW/SW -//- 7 TURN Χρόνος απόκρισης υπολογιστή (απηρχειωμ.) -//- 8 ACAP Ικανότητα αναλυτών προσωπικό 9 AEXP Εμπειρία αναλυτών σε εφαρμογές -//- 0 PCAP Ικανότητα προγραμματιστών -//- VEXP Εμπειρία με το σύστημα HW/SW (OS etc) -//- LEXP Εμπειρία με τη γλώσσα προγραμματισμού -//- 3 MODP Χρήση μοντέρνων πρακτικών προγραμματ έργο 4 TOOL Χρήση εργαλείων προγραμματισμού -//- 5 SCED Πίεση από χρονοδιάγραμμα ανάπτυξης -//- παράγοντας κόστους RELY Πίνακας.4: Κατάταξη Παραγόντων Κόστους [Σκορδαλάκης 99] κατάταξη χαμηλότερη χαμηλή ονομαστική υψηλή υψηλότερη υψηλότατη Αποτέλεσμα: μικρή ενόχληση Μικρές, εύκολα ανακτήσιμες απώλειες Μέτριες, ανακτήσιμες απώλειες Μεγάλες Οικονομικές απώλειες Κίνδυνος για ανθρώπινες ζωές DATA L < 0 0<L<00 00<L< 000 L>000 CPLX βλέπε πίνακα 3.5 ΤΙΜΕ <50% ΧΔΧΕ 70% ΧΔΧΕ 85% ΧΔΧΕ 95% ΧΔΧΕ STOR <50% XΔΜ 70% ΧΔΜ 85% ΧΔΜ 95% ΧΔΜ VIRT Σημαντικές αλλαγές κάθε μήνες Σημαντικές αλλαγές κάθε 6 μήνες Σημαντικές αλλαγές κάθε μήνες Σημαντικές αλλαγές κάθε εβδομάδες TURN Απηρχειωμένο -> Χρησιμοποιείται η ονομαστική τιμή ACAP 5% 35% 55% 75% 90% AEXP <4 μήνες έτος 3 έτη 6 έτη έτη PCAP 5% 35% 55% 75% 90% VEXP < μήνα 4 μήνες έτος 3 έτη LEXP < μήνα 4 μήνες έτος 3 έτη MODP όχι χρήση αρχή χρήσης μερική χρήση γενική χρήση αποκλειστική TOOL Βασικά εργαλεία μικρο Η/Υ (assembler) Βασικά εργαλεία Η/Υ (compiler etc) Ενδιάμεσα εργαλεία (debugger, interactive editors) Ισχυρά εργαλεία προγρ/σμού και ελέγχου Επιπρόσθετα εργαλεία (απαιτήσεων, σχεδίου, μετρικών) SCED 75% 85% 00% 30% 60% L = (DBbytes)/(Prog.DSI), ΧΔΧΕ Χρησιμοποίηση Διαθέσιμου Χρόνου Εκτέλεσης, ΧΔΜ: Χρησιμοποίηση Διαθέσιμης Μνήμης, ΜΧΚΕ: Μέση Διάρκεια Κύκλου Εξυπηρέτησης Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ. 9

13 Διαχείριση Έργων Λογισμικού Πίνακας.5: Κατάταξη του παράγοντα κόστους πολυπλοκότητα με βάση τέσσερις κατηγορίες λειτουργιών του λογισμικού [Σκορδαλάκης 99] κατάταξη χαμηλότερη χαμηλή ονομαστική λειτουργίες ελέγχου Ευθυγραμμισμένος κώδικας (ΔΠ) με λίγους βρόχους επανάληψης, δομές ελέγχου (χωρίς φώλιασμα) Ομαλό φώλιασμα τελεστών Ομαλό φώλιασμα. Μικρός έλεγχος μεταξύ δομών. λειτουργίες υπολογισμού Αποτίμηση απλών εκφράσεων π.χ. Α=Β*C+(D-E) Αποτίμηση μετρίου επιπέδου εκφράσεων π.χ. D = SQRT(B^- 4*A*C) Χρήση προτύπων μαθηματικών και στατιστικών συναρτήσεων. Βασικές λειτουργίες μητρών. λειτουργίες εξαρτημένες από υλικό Απλές εντολές read/write Δεν απαιτείται γνώση χαρακτηριστικών του επεξεργαστή ή συσκευής ΕΕ. (π.χ. γράψιμο σε αρχείο) Επιλογή συσκευής, έλεγχος κατάστασης και λαθών λειτουργίες διαχείρισης δεδομένων Απλοί πίνακες στην κύρια μνήμη Απλή χρήση αρχείων χωρίς αλλαγές στη δομή των δεδομένων Πολλαπλά αρχεία εισόδου και ένα αρχείο εξόδου. υψηλή Υφηλός βαθμός φωλιάσματος. Σημαντικός έλεγχος μεταξύ δομών. Βασική ΑΑ: παρεμβολή, κοινές ΔΕ, Απλές απαιτήσεις ακρίβειας Μεταφράσεις φυσικών διευθύνσεων μνήμης, προσπελάσεις κτλ Συναρτήσεις που ενεργοποιούνται με βάση το περιεχόμενο data stream. Αλλαγή των δομών σε επίπεδο εγγραφής υψηλότερη Δύσκολες αλλά Γενικές, Διαδικασίες για Κώδικας με πολλαπλά δομημένες παραμετρικές διάγνωση, σημεία εισόδου. λειτουργίες ΑΑ: συναρτήσεις εξυπηρέτηση και Αναδρομικές συναρτήσεις. γραμμικές δόμησης αρχείων. απομόνωση Χειρισμός διακοπών. εξισώσεις, ΔΕ με Βελτιστοποίηση διακοπών μερ. παραγώγους αναζήτησης. υψηλότατη Δύσκολες και Ισχυρά συζευγμένες Κωδικοποίηση που Χρονο-προγραμματισμός αδόμητες δυναμικές εξαρτάται από το πολλών πόρων με λειτουργίες ΑΑ: σχεσιακές δομές. χρονισμό της προτεραιότητες που Υψηλή ακρίβεια, Διαχείριση συσκευής, μικροπρογραμματισμός αλλάζουν δυναμικά. στοχαστικά δεδομένων φυσικής δεδομένα γλώσσας. ΔΠ: Δομημένος Προγρ/σμός, ΕΕ: Είσοδος/Έξοδος, ΑΑ: Αριθμητική Ανάλυση, ΔΕ: Διαφορ. εξισώσεις Πίνακας.6: Τιμές πολλαπλασιαστών προσπάθειας με βάση την κατάταξη κατάταξη παράγοντας χαμηλότερη χαμηλή ονομαστική υψηλή υψηλότερη υψηλότατη RELY DATA CPLX ΤΙΜΕ STOR VIRT TURN ACAP AEXP PCAP VEXP LEXP MODP TOOL SCED Σελ. 0 Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

14 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ (3) μία "εξίσωση υπολογισμού παράγοντα προσαρμογής προσπάθειας" που έχει τη μορφή q = 5 q i i= όπου: q: o παράγοντας προσαρμογής προσπάθειας q i : o πολλαπλασιαστής προσπάθειας που αντιστοιχεί στον παράγοντα κόστους i (4) μία "εξίσωση υπολογισμού προσπάθειας ανάπτυξης" που έχει τη μορφή: όπου: q : ΜΜ ΝΟΜ : ΜΜ DEV : MM = q DEV MM NOM ο παράγοντας προσαρμογής προσπάθειας η ονομαστική προσπάθεια για την εκτέλεση του έργου σε ανθρωπομήνες η προσπάθεια για την εκτέλεση του έργου σε ανθρωπομήνες Η επόμενη εξίσωση του μοντέλου, είναι η "εξίσωση υπολογισμού του κόστους" και είναι άμεση συνέπεια των προηγουμένων, αν θεωρηθεί ότι η αξία σε χρήμα ενός ανθρωπομήνα είναι p. Το συνολικό κόστος σε χρήμα (C t ) που απαιτείται για την ανάπτυξη ενός έργου λογισμικού είναι: C = p t MM DEV Εκτός από την εκτίμηση του κόστους ενός έργου λογισμικού, η τεχνική COCOMO μπορεί να εφαρμοσθεί και για την εκτίμηση της διάρκειας ανάπτυξης του έργου. Η διάρκεια του έργου δεν μπορεί απλά να υπολογιστεί από την τιμή της προσπάθειας που απαιτείται για την εκτέλεση του έργου (MM DEV ) διαιρώντας με τη μέση τιμή του προσωπικού. Ο λόγος είναι ότι η σχέση μεταξύ διάρκειας του έργου και συνολικής προσπάθειας (σε ανθρωπομήνες) δεν είναι γραμμική: Αν ο στόχος είναι η μείωση στο μισό της διάρκειας του έργου, τότε ο διπλασιασμός των ανθρωπομηνών δεν είναι λύση. Ο κύριος λόγος είναι ότι αν το προσωπικό απαιτείται να επικοινωνεί για την ολοκλήρωση μιας εργασίας, τότε ο χρόνος επικοινωνίας πρέπει να συνυπολογιστεί. Σύμφωνα με το μοντέλο COCOMO, η "εξίσωση υπολογισμού της διάρκειας του έργου" έχει τη μορφή: όπου: Τ DEV : T = R ( ) m DEV MM DEV η χρονική διάρκεια του έργου σε ανθρωπομήνες R, m : παράμετροι που υπολογίζονται βάσει του πίνακα.. Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ.

15 Διαχείριση Έργων Λογισμικού Είναι φανερό ότι η ακρίβεια της τεχνικής COCOMO εξαρτάται από το είδος των έργων που χρησιμοποιήθηκαν για τη βαθμονόμηση (calibration) των παραμέτρων του μοντέλου. Η τεχνική COCOMO εφαρμόσθηκε ευρύτατα στη βιομηχανία λογισμικού τα τελευταία 0 χρόνια. Ωστόσο, το κυριότερο μειονέκτημά της, είναι το γεγονός ότι για τον υπολογισμό του κόστους του λογισμικού, απαιτείται η γνώση του μεγέθους του κώδικα, στοιχεία που δεν είναι γνωστό στις αρχικές φάσεις ανάπτυξης. Για το λόγο αυτό αναπτύχθηκε το μοντέλο COCOMOII στα τέλη της δεκαετίας του '90. Σελ. Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

16 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΠΕΡΙΓΡΑΦΗ ΑΠΑΙΤΗΣΕΩΝ ΛΟΓΙΣΜΙΚΟΥ. Μηχανές Πεπερασμένων Καταστάσεων Συνήθως, για την περιγραφή των απαιτήσεων σε πληροφοριακά συστήματα απαιτείται ο καθορισμός της ροής των δεδομένων δια μέσου του λογισμικού (διαγράμματα ροής δεδομένων) ή ο καθορισμός των αλληλεπιδράσεων του συστήματος με τους εξωτερικούς χρήστες (διαγράμματα περιπτώσεων χρήσης). Υπάρχουν ωστόσο περιπτώσεις συστημάτων όπου πρέπει να περιγραφούν θέματα ροής ελέγχου (control flow) στο λογισμικό. Για παράδειγμα, σε ένα διάγραμμα ροής δεδομένων μπορεί να υπάρξει η αναγκαιότητα να καθοριστεί αν ένας μετασχηματισμός πρέπει να "περιμένει" όλες τις εισόδους για να παράγει κάποια έξοδο ή όχι. Όλες οι γλώσσες προγραμματισμού έχουν δομές για να περιγράψουν διάφορες περιπτώσεις ροής ελέγχου. Τα χρησιμοποιούμενα μοντέλα για την περιγραφή των απαιτήσεων ενός συστήματος ποικίλλουν ανάλογα με τις ανάγκες και είναι πολύ πιθανόν να πρέπει να χρησιμοποιηθούν διαφορετικά μοντέλα για την περιγραφή διαφορετικών όψεων του συστήματος. Οι Μηχανές Πεπερασμένων Καταστάσεων (Finite State Machines FSMs) αποτελούν έναν απλό, ευρέως διαδεδομένο και τυπικό συμβολισμό για την περιγραφή θεμάτων ελέγχου. Μία μηχανή πεπερασμένων καταστάσεων αποτελείται:. ένα πεπερασμένο σύνολο καταστάσεων, Q. ένα πεπερασμένο σύνολο εισόδων, I 3. μια συνάρτηση μετάβασης δ: Q I Q. Η δ μπορεί να είναι μια μερική συνάρτηση, δηλαδή μπορεί να μην είναι ορισμένη για κάποιες τιμές του πεδίου ορισμού. Μια μηχανή πεπερασμένων καταστάσεων μπορεί να αναπαρασταθεί ως γράφος όπου οι κόμβοι συμβολίζουν καταστάσεις. Μια ακμή μεταξύ των κόμβων q και q που συμβολίζεται i υφίσταται αν και μόνο αν δ(q, i) = q. Μια απλή μηχανή παρουσιάζεται στο σχήμα. q a a q 0 b q c q Σχήμα : Μηχανή Πεπερασμένων Καταστάσεων Όπως προκύπτει από το όνομα, μια μηχανή πεπερασμένων καταστάσεων είναι κατάλληλη για την περιγραφή συστημάτων που μπορούν να βρεθούν σε ένα πεπερασμένο σύνολο καταστάσεων και μεταβαίνουν από τη μια κατάσταση σε μια άλλη ως συνέπεια κάποιου γεγονότος. Για παράδειγμα, μια λάμπα μπορεί να είναι ανοικτή ή κλειστή και μεταβαίνει από τη μια κατάσταση στην άλλη με το πάτημα του πλήκτρου. Θεωρούμε ένα σύστημα ελέγχου ενός (μικρού) χημικού εργοστασίου. Η θερμοκρασία και η πίεση παρακολουθούνται από αισθητήρες για λόγους ασφαλείας. Όταν οποιοδήποτε παρακολουθούμενο μέγεθος ξεπεράσει κάποιο όριο παράγεται ένα 3 b Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ. 3

17 Περιγραφή Απαιτήσεων Λογισμικού σήμα συναγερμού, κλείνοντας τη διαδικασία του εργοστασίου. Η διαδικασία ενεργοποιείται χειροκίνητα όταν διορθωθεί το πρόβλημα. Τα ανωτέρω περιγράφονται από τη μηχανή του σχήματος. High-pressure alarm High-temperature alarm On Off Restart Σχήμα : Μηχανή Πεπερασμένων Καταστάσεων που περιγράφει τη λειτουργία χημικού εργοστασίου Αυτή η απλή πολιτική είναι προφανώς ανεπαρκής. Ένας καλύτερος τρόπος διαχείρισης του εργοστασίου είναι ο εξής: Όταν ένα από τα δύο σήματα εμφανιστεί, το σύστημα εισέρχεται σε μια κατάσταση ανάκτησης όπου προσπαθεί να εφαρμόσει κάποια διορθωτική ενέργεια. Αν η προσπάθεια είναι επιτυχής, το σύστημα επανέρχεται σε κανονική λειτουργία. Ειδάλλως, αν η προσπάθεια είναι ανεπιτυχής ή αν κατά την προσπάθεια ανάκτησης εμφανιστεί και το άλλο σήμα συναγερμού, η διαδικασία του εργοστασίου τερματίζεται. Θεωρείται ότι τα δύο σήματα δεν μπορούν να εμφανιστούν ταυτόχρονα. Η νέα πολιτική περιγράφεται από το σχήμα 3. Pressure signal Pressure action Temperature signal Normal Normal Successful recovery Unsuccessful recovery Off Off Successful recovery Unsuccessful recovery Temperature signal Temperature action Pressure signal Σχήμα 3: Βελτιωμένη Μηχανή Πεπερασμένων Καταστάσεων που περιγράφει τη λειτουργία χημικού εργοστασίου Μια μηχανή πεπερασμένων καταστάσεων μπορεί να εμπλουτιστεί με τη δυνατότητα παραγωγής σημάτων εξόδου. Στην περίπτωση αυτή η συνάρτηση μετάβασης δ γίνεται δ: Q I Q Ο, όπου Ο είναι ένα πεπερασμένο σύνολο εξόδων. Γραφικά, μια ακμή μεταξύ των κόμβων q και q που συμβολίζεται <i/o> υφίσταται αν και μόνο αν δ(q, i) = <q, ο>. Με άλλα λόγια, η εμφάνιση του γεγονός i μεταφέρει το σύστημα από την κατάσταση q στην κατάσταση q και παράγει την έξοδο o. Οι μηχανές πεπερασμένων καταστάσεων χρησιμοποιούνται σε ευρύ φάσμα εφαρμογών, από την περιγραφή μεταγλωττιστών, συστημάτων αναγνώρισης προτύπων, πρωτοκόλλων και ψηφιακών κυκλωμάτων. Η απλότητά τους αποτελεί συνήθως πλεονέκτημα, σε ορισμένες όμως περιπτώσεις εισάγει περιορισμούς. Πρώτα από όλα, όπως συνάγεται από το όνομά τους, αποτελούν περιγραφές πεπερασμένης μνήμης. Για παράδειγμα, έστω ότι στην περίπτωση του χημικού Σελ. 4 Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

18 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ εργοστασίου, η απόκριση σε μια υψηλή θερμοκρασία είναι να εφαρμοστεί μια ενέργεια ψύξης που είναι ανάλογη της διαφοράς (DiffTemp) μεταξύ της τρέχουσας θερμοκρασίας και μιας θερμοκρασίας αναφοράς. Ένα τέτοιο σύστημα δεν μπορεί να περιγραφεί με μηχανή πεπερασμένων καταστάσεων, επειδή οι δυνατές καταστάσεις είναι άπειρες (μια για κάθε τιμή της διαφοράς DiffTemp). Ακόμα και αν το εύρος των δυνατών τιμών είναι πεπερασμένο, η περιγραφή όλων των καταστάσεων και αποκρίσεων μπορεί να γίνει εξαιρετικά περίπλοκη. Π.χ. για την περιγραφή ενός καταχωρητή 8 bit μέσω μιας μηχανής πεπερασμένων καταστάσεων απαιτούνται 8 διαφορετικές καταστάσεις! Σε τέτοιες περιπτώσεις υπάρχουν διάφορες λύσεις, όπως το να περιγραφεί ένα χαρακτηριστικό μόνο υποσύνολο των καταστάσεων, να συνοδευτούν τα διαγράμματα από λεκτικές περιγραφές ή να χρησιμοποιηθούν και άλλα μοντέλα. Επιπλέον, οι μεταβάσεις μπορούν να συνοδεύονται από συνθήκες φρουρούς, κατηγορήματα που πρέπει να είναι αληθή ώστε να λάβει χώρα η μετάβαση. Για παράδειγμα, στο σχήμα, η μετάβαση από την κατάσταση "normal" στην κατάσταση "off" μπορεί να συνοδεύεται από μια συνθήκη φρουρό του τύπου temp very_dangerous_value. Οι μηχανές πεπερασμένων καταστάσεων έχουν ένα επιπλέον μειονέκτημα που είναι χαρακτηριστικό συστημάτων περιγραφής της ροής του ελέγχου. Έστω μια διαδικασία παραγωγής μηνυμάτων που τοποθετεί τα μηνύματα σε ένα δίαυλο δύο θέσεων. Μια διαδικασία κατανάλωσης μηνυμάτων διαβάζει τα μηνύματα απομακρύνοντάς τα από το δίαυλο. Αν ο δίαυλος είναι γεμάτος, η διαδικασία παραγωγής πρέπει να περιμένει την κατανάλωση ενός μηνύματος ώστε να ελευθερωθεί μια θέση. Παρόμοια, αν ο δίαυλος είναι κενός, η διαδικασία ανάγνωσης πρέπει να αναμένει την παραγωγή ενός μηνύματος. Οι δύο διαδικασίες και η λειτουργία του διαύλου περιγράφονται από διαφορετικές μηχανές πεπερασμένων καταστάσεων όπως φαίνεται στο σχήμα 4. Producer produce p p deposit Consumer get c c consume Storage deposit deposit 0 get Σχήμα 4: Χρήση τριών μηχανών για την περιγραφή ενός συστήματος Είναι προφανές, ότι το λογικό θα ήταν να χρησιμοποιηθεί μια μηχανή για την περιγραφή όλου του συστήματος. Μια τέτοια μηχανή θα προέκυπτε από το καρτεσιανό γινόμενο των συνόλων καταστάσεων. Μια τέτοια σύνθεση θα κατέληγε στη μηχανή του σχήματος 5. Μια κατάσταση όπως η <0, p, c > αντιστοιχεί σε get Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ. 5

19 Περιγραφή Απαιτήσεων Λογισμικού έναν δίαυλο που είναι κενός, μια διαδικασία παραγωγής στην κατάσταση p και μια διαδικασία κατανάλωσης στην κατάσταση c. <0, p,c > consume write <, p,c > consume write consume <, p,c > produce <0, p,c > <0, p,c > read produce <, p,c> read <, p,c > produce <, p,c > <, p,c > produce read produce read produce write consume <0, p, c > consume write consume <, p,c > <, p,c > Σχήμα 5: Χρήση μιας μηχανής για την περιγραφή του ιδίου συστήματος Η προκύπτουσα πολυπλοκότητα, ακόμα και για ένα τέτοιο μικρό σύστημα είναι εμφανής. Από τη σύνθεση n υποσυστημάτων με k i καταστάσεις το καθένα, προκύπτει ένα σύστημα με k k... k n καταστάσεις. Ένα σημαντικότερο ωστόσο πρόβλημα σχετίζεται με την ύπαρξη συγχρονισμένων σημάτων. Η μηχανή του σχήματος 5 αναφέρεται σε ένα σύγχρονο σύστημα: κάθε χρονική στιγμή βρίσκεται σε μία κατάσταση και μπορεί να λάβει χώρα μία μόνο ενέργεια. Είναι όμως προφανές, ότι οι διαδικασίες παραγωγής και κατανάλωσης μηνυμάτων θα μπορούσαν να ενεργοποιούνται ταυτόχρονα. Ειδικά αν οι διάφορες ενέργειες έχουν διαφορετικούς χρόνους ολοκλήρωσης, μια μηχανή πεπερασμένων καταστάσεων είναι ανεπαρκής για την περιγραφή ασύγχρονων συστημάτων όπου διάφορες μεταβάσεις μπορούν να συμβαίνουν ταυτόχρονα.. Δίκτυα Petri Τα δίκτυα Petri είναι ένας φορμαλισμός για την περιγραφή σύγχρονων συστημάτων που περιλαμβάνουν παράλληλες ή ταυτόχρονες δραστηριότητες. Ορίζονται ως μια πλειάδα (P, T, F, W) όπου. P είναι ένας πεπερασμένος αριθμός θέσεων. Τ είναι ένα πεπερασμένο σύνολο μεταβάσεων 3. P T 4. Ορίζεται η διμελής σχέση ροών F { P T} { T P} 5. Ορίζεται μια συνάρτηση βάρους W : F N { 0} που συσχετίζει έναν μή αρνητικό φυσικό αριθμό σε κάθε στοιχείο της F. Αν δεν προσδιορίζεται τιμή βάρους σε μια ροή, θεωρείται η εξ'ορισμού τιμή. Τα δίκτυα Petri τυγχάνουν ευρείας χρήσης λόγω της ελκυστικής γραφικής τους αναπαράστασης. Οι θέσεις συμβολίζονται ως κόμβοι, οι μεταβάσεις ως οριζόντιες μπάρες και οι ροές ως ακμές. Ένα δίκτυο Petri απεικονίζεται στο σχήμα 6. Σελ. 6 Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

20 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ P P t P 4 P 3 t P 5 P 6 t 3 t 5 t 4 t 6 P 7 Σχήμα 6: Δίκτυο Petri Ένα δίκτυο Petri αποκτά κατάσταση τοποθετώντας σύμβολα (token) στις θέσεις του. Τυπικά η τοποθέτηση συμβόλων είναι μια συνάρτηση αντιστοίχισης θέσεων σε φυσικούς αριθμούς, M: P N. Η τοποθέτηση ενός αριθμού x συμβόλων σε μια θέση p (όπως σημειώνεται γραφικά στο σχήμα 7a), συμβολίζει ότι x = M(p). Μια μετάβαση (οριζόντια μπάρα) μπορεί να έχει μία ή περισσότερες θέσεις εισόδου και εξόδου. Αν μια ακμή εξέρχεται από μια θέση και καταλήγει σε μια μετάβαση, η αντίστοιχη θέση θεωρείται θέση εισόδου. Αν μια ακμή εξέρχεται από μια μετάβαση και καταλήγει σε μια θέση, η αντίστοιχη θέση καλείται θέση εξόδου. Μια μετάβαση είναι ενεργοποιημένη αν κάθε μια από τις θέσεις εισόδου περιλαμβάνει αριθμό συμβόλων που είναι μεγαλύτερος ή ίσος με το βάρος των ροών που συνδέουν τη θέση εισόδου με τη μετάβαση. Μια μετάβαση χωρίς θέσεις εισόδου είναι πάντοτε ενεργοποιημένη. Μια ενεργοποιημένη μετάβαση μπορεί να πυροδοτήσει. Η πυροδότηση μιας μετάβασης t απομακρύνει από κάθε θέση εισόδου p i έναν αριθμό συμβόλων που είναι ίσος με το βάρος της ροής από την p i προς την t και τοποθετεί σε κάθε θέση εξόδου q i έναν αριθμό συμβόλων που είναι ίσος με το βάρος της ροής από την t στην q i. Στο σχήμα 7a, οι μεταβάσεις t και t είναι ενεργοποιημένες. Καμία άλλη μετάβαση δεν είναι ενεργοποιημένη. Σε μία τέτοια περίπτωση, το δίκτυο μπορεί να εξελιχθεί με ένα από τους εξής δύο τρόπους: είτε με την πυροδότηση της t είτε με την πυροδότηση της t. Το μοντέλο είναι μή-ντετερμινιστικό, υπό την έννοια ότι με βάση την αρχική κατάσταση δύο διαφορετικές εξελίξεις είναι πιθανές. Αν πυροδοτήσει η t προκύπτει η κατάσταση του σχήματος 7b, ενώ αν πυροδοτήσει η t προκύπτει η κατάσταση του σχήματος 7c. Μετά την πυροδότηση της t, η t παραμένει ενεργοποιημένη και μπορεί να πυροδοτήσει. Σε κάθε περίπτωση, το σύστημα θα καταλήξει στην κατάσταση του σχήματος 7d. Στο σημείο αυτό οι t 3 και t 4 είναι ενεργοποιημένες και μπορούν να πυροδοτήσουν με μή-ντετερμινιστικό τρόπο. Αυτή τη φορά ωστόσο, η πυροδότηση της μιας απαγορεύει την πυροδότηση της άλλης. Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ. 7

21 Περιγραφή Απαιτήσεων Λογισμικού P P P P P 6 t P 4 t3 t5 P 3 t4 t6 t P 5 P 7 P 6 t P 4 t3 t5 P 3 t 4 t 6 t P5 P 7 (a) (b) P P P P P 6 t P 4 t3 t5 P 3 t 4 t 6 t P 5 P 7 P 6 t P 4 t3 t5 P 3 t 4 t 6 t P5 P 7 (c) (d) Σχήμα 7: Εξέλιξη ενός δικτύου Petri Μια ακολουθία πυροδοτήσεων ενός δικτύου Petri δεδομένης μιας αρχικής κατάστασης συμβολίζεται ως <t, t,..., t n > υποδηλώνοντας ότι η t είναι ενεργοποιημένη με βάση την αρχική κατάσταση, η t ενεργοποιείται μετά την πυροδότηση της t κ.ο.κ. Σε ένα δίκτυο Petri μια μετάβαση συνήθως αντιπροσωπεύει ένα γεγονός και η πυροδότησή του σημαίνει ότι το γεγονός λαμβάνει χώρα. Κατά συνέπεια, μια μετάβαση είναι ενεργοποιημένη αν ικανοποιούνται οι συνθήκες για την πραγματοποίηση του υπό εξέταση γεγονότος. Η ύπαρξη ενός συμβόλου σε μια θέση υποδηλώνει την ύπαρξη μιας κατάστασης ή την εξασφάλιση μιας συνθήκης. Για παράδειγμα, αν μια θέση μοντελοποιεί έναν πόρο του συστήματος, η ύπαρξη ενός ή περισσοτέρων συμβόλων υποδηλώνει τη διαθεσιμότητα ενός ή περισσοτέρων στιγμιοτύπων αυτού του πόρου. Στο δίκτυο του σχήματος 7, οι μεταβάσεις t, t 3, t 5 και οι μεταβάσεις t, t 4, t 6 μπορούν να ερμηνευτούν ως δύο ανεξάρτητες δραστηριότητες. Οι δύο δραστηριότητες μοιράζονται έναν κοινό πόρο (π.χ. έναν κοινό επεξεργαστή) που μοντελοποιείται από τη θέση P 3. Αρχικά, οι δύο δραστηριότητες μπορούν να εξελιχθούν ανεξάρτητα, δηλαδή η πυροδότηση μιας εκ των t ή t δεν αποτρέπει την πυροδότηση της άλλης. Οι δύο μεταβάσεις είναι ταυτόχρονες. Μετά την πυροδότηση των δύο μεταβάσεων, οι δύο δραστηριότητες είναι πάλι ενεργοποιημένες, με αμοιβαίο ωστόσο αποκλεισμό καθώς ο πόρος που μοντελοποιείται από τη θέση P 3 είναι διαθέσιμος σε μία από τις δύο δραστηριότητες. Οι δύο μεταβάσεις είναι αντικρουόμενες. Εάν ο πόρος δοθεί στην αριστερή δραστηριότητα η εξέλιξη θα συνεχιστεί με τις μεταβάσεις t 3 και t 5 αφήνοντας την άλλη δραστηριότητα προσωρινά "μπλοκαρισμένη". Η πυροδότηση της t 5 απελευθερώνει πάλι τον απαιτούμενο πόρο στη θέση P 3 και η μετάβαση t 4 θα μπορούσε να πυροδοτήσει. Είναι όμως πιθανό η Σελ. 8 Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

22 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ εξέλιξη να συνεχιστεί με την ακολουθία t και t 3 για ακόμα μία φορά. Το δίκτυο Petri δεν επιβάλει κάποια πολιτική για την επίλυση συγκρούσεων. Μια διαδικασία (όπως αυτή που μοντελοποιείται από την ακολουθία < t, t 4, t 6 >, αν δεν αποκτήσει ποτέ πρόσβαση στον απαιτούμενο πόρο θα υποστεί εξάντληση (starvation). Αν υποθέσουμε ότι η αρχική κατάσταση του συστήματος είχε δύο σύμβολα στη θέση P 3 (αναπαριστώντας δύο διαθέσιμους πόρους, π.χ. δύο επεξεργαστές), οι μεταβάσεις t 3 και t 4 δεν θα ήταν πλέον σε σύγκρουση, αλλά ταυτόχρονες. Στο σχήμα 8 παρουσιάζεται ένα τροποποιημένο δίκτυο Petri όπου δύο δραστηριότητες απαιτούν δύο πόρους για να συνεχιστούν (φαίνονται στη θέση R). Αν μία δραστηριότητα (έστω η αριστερή) ξεκινήσει με την πυροδότηση της t, μπορεί να καταναλώσει τον ένα πόρο με την πυροδότηση της ' 3 t. Στη συνέχεια, προσπαθεί να '' αποκτήσει πρόσβαση στον δεύτερο πόρο (πυροδοτώντας την t 3 ). Αν μία δραστηριότητα αποκτήσει και τους δύο πόρους η εξέλιξη μπορεί να συνεχιστεί και τελικά με την πυροδότηση της t 5 οι δύο πόροι θα απελευθερωθούν. P P t t R t' 3 t' 4 t" 3 t" 4 t 5 t 6 Σχήμα 8: Δίκτυο Petri που μπορεί να βρεθεί σε αδιέξοδο ' ' Αν θεωρήσουμε όμως την ακολουθία <t, t 3, t, t 4 >, το σύστημα θα καταλήξει σε μια κατάσταση όπου καμία μετάβαση δεν θα είναι ενεργοποιημένη. Κατά συνέπεια, το δίκτυο δεν μπορεί να εξελιχθεί καθώς κάθε δραστηριότητα έχει από έναν πόρο και απαιτεί τον άλλο για να προχωρήσει. Αυτή είναι μια τυπική περίπτωση αδιεξόδου (deadlock) που μοντελοποιείται ιδανικά από ένα δίκτυο Petri. Τυπικά, ένα δίκτυο με συγκεκριμένη κατάσταση βρίσκεται σε αδιέξοδο εάν καμία μετάβαση δεν είναι ενεργοποιημένη. Οι σχεδιαστές συστημάτων προσπαθούν να αποφύγουν τη δημιουργία αδιεξόδων, των οποίων ο εντοπισμός, στη γενική περίπτωση, είναι ιδιαίτερα δύσκολος. Δίκτυα Petri μπορούν να χρησιμοποιηθούν και για τη μοντελοποίηση των διαδικασιών παραγωγής και κατανάλωσης μηνυμάτων του σχήματος 4. Τα αντίστοιχα δίκτυα για τις τρεις διαδικασίες παρουσιάζονται στο σχήμα 9. Το πλεονέκτημα τώρα είναι ότι η σύνθεση των μοντέλων (παρουσιάζεται στο σχήμα 0) δεν οδηγεί σε εκρηκτική αύξηση του αριθμού των κόμβων θέσεων. Σημειώνεται, ότι στο σχήμα 0, ο αριθμός των καταστάσεων προκύπτει από την τοποθέτηση των συμβόλων σε όλες τις δυνατές θέσεις. Δεύτερο πλεονέκτημα είναι ότι οι μοντελοποιούμενες Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ. 9

23 Περιγραφή Απαιτήσεων Λογισμικού δραστηριότητες μπορούν να είναι ταυτόχρονες, δηλαδή το σύστημα δεν είναι κατ' ανάγκη σύγχρονο. Για παράδειγμα, αν το σύστημα βρίσκεται στην κατάσταση <, p, c > και οι δύο μεταβάσεις (produce και consume) είναι ενεργοποιημένες. Οι δύο μεταβάσεις μπορούν να πυροδοτήσουν παράλληλα χωρίς η μία να αποτρέπει την άλλη. write consume P P C C produce read read read 0 write Σχήμα 9: Τρία διαφορετικά δίκτυα Petri για το σύστημα παραγωγής-κατανάλωσης μηνυμάτων write C consume C read read 0 write write P produce P Σχήμα 0: Κοινό δίκτυο Petri για το σύστημα παραγωγής-κατανάλωσης μηνυμάτων Η απλότητα των δικτύων Petri είναι εν γένει πλεονέκτημα. Ωστόσο, το γεγονός ότι τα σύμβολα στις διάφορες θέσεις είναι ανώνυμα μπορεί να είναι περιοριστικό. Αν για παράδειγμα ένα δίκτυο Petri (σχήμα ) μοντελοποιεί την προώθηση ενός μηνύματος σε ένα από τα δύο κανάλια (channel αν το μήνυμα είναι σωστό, channel αν το μήνυμα είναι λάθος), τότε το δίκτυο του σχήματος είναι ανεπαρκές, διότι η εξέλιξη Σελ. 0 Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

24 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ του δικτύου φαίνεται να είναι μή-ντετερμινιστική. Με άλλα λόγια, η πυροδότηση μιας μετάβασης θα έπρεπε να εξαρτάται από το περιεχόμενο του μηνύματος. P channel channel Σχήμα : Προώθηση μηνυμάτων με βάση το περιεχόμενο Επίσης, όπως ήδη φάνηκε, τα δίκτυα Petri δεν μπορούν να καθορίσουν μια πολιτική επιλογής μεταξύ πολλών δυνατών εξελίξεων. Στη γενική περίπτωση, αποδεικνύεται ότι ένα δίκτυο δεν μπορεί να περιγράψει μια επιλογή του τύπου: if η μετάβαση t είναι ενεργοποιημένη πυροδότησε την t; else πυροδότησε την πρώτη ενεργοποιημένη μετάβαση με βάση κάποιο κριτήριο διάταξης Τέλος, τα δίκτυα Petri δεν λαμβάνουν υπόψη το χρόνο και κατά συνέπεια δεν είναι δυνατή η αναπαράσταση χρονικών εξαρτήσεων. Η πραγματοποίηση κάποιου γεγονότος, που αναπαρίσταται με την πυροδότηση μιας μετάβασης, θεωρείται ότι δεν έχει χρονική διάρκεια. Κάτι τέτοιο είναι απαραίτητο σε πολλά συστήματα (όπως συστήματα πραγματικού χρόνου), όπου η απόκριση σε κάποιο εξωτερικό ή εσωτερικό συμβάν πρέπει να καθοριστεί ότι θα λαμβάνει χώρα σε συγκεκριμένο χρονικό διάστημα. Αξίζει πάντως να σημειωθεί ότι υπάρχουν επεκτάσεις των δικτύων Petri για την επίλυση των ανωτέρω προβλημάτων. 3. Γλώσσα Ζ Η γλώσσα προδιαγραφών Z αναπτύχθηκε από τον Jean-Raymond Abrial το 979 και εν συνεχεία εξελίχθηκε στο Πανεπιστήμιο της Οξφόρδης. Ένα ισχυρό χαρακτηριστικό της γλώσσας Ζ είναι ότι ο δομημένος καθορισμός των απαιτήσεων ενός συστήματος μπορεί να επιτευχθεί με τη χρήση μιας άλγεβρας σχημάτων. Το στοιχείο αυτό επιτρέπει στις προδιαγραφές να κατασκευάζονται από απλούστερα δομικά στοιχεία, με μια προσέγγιση από κάτω-προς-τα-πάνω (bottom-up approach), αντίστοιχα με την υλοποίηση προγραμμάτων από απλούστερα υποπρογράμματα. Η σημειογραφία της γλώσσας Z βασίζεται στη χρήση συνόλων (sets). Ένα σύνολο είναι μια συλλογή αντικειμένων που κατέχουν μια κοινή ιδιότητα. Τα αντικείμενα καλούνται στοιχεία ή μέλη του συνόλου, ενώ ο συνήθης συμβολισμός ενός συνόλου είναι η απαρίθμηση των στοιχείων του μέσα σε άγκιστρα. Π.χ. {Bob, Carol, Ted, Alice} είναι ένα σύνολο ονομάτων. Αν ένα αντικείμενο x είναι μέλος ενός συνόλου S, η σχέση αυτή συμβολίζεται ως x S, ενώ αν ένα αντικείμενο x δεν είναι μέλος ενός συνόλου S, ο συμβολισμός είναι x S. Σημειώνεται ότι ένα σύνολο δεν μπορεί να περιέχει επαναλαμβανόμενα στοιχεία. Η ένωση (union) δύο συνόλων A και B (συμβολίζεται ως A B) είναι το σύνολο των στοιχείων που περιέχονται είτε στο σύνολο Α, είτε στο Β, είτε και στα δύο. Για παράδειγμα: {Bob, Carol, Ted} {Ted, Alice} = {Bob, Carol, Ted, Alice} Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ.

25 Î Περιγραφή Απαιτήσεων Λογισμικού Η τομή (intersection) δύο συνόλων A και B (συμβολίζεται ως Α Β) είναι το σύνολο των στοιχείων που περιέχονται και στο σύνολο Α και στο Β. Επομένως: {Bob, Carol, Ted} {Ted, Alice} = {Ted} Ένα σύνολο Α είναι υποσύνολο του Β (συμβολίζεται ως Α Β) αν κάθε στοιχείο του Α είναι και στοιχείο του Β. Π.χ. {Bob, Ted} {Bob, Carol, Ted} H διαφορά (difference) μεταξύ δύο συνόλων Α και Β (συμβολίζεται ως Α \ Β) είναι το σύνολο των στοιχείων που απομένουν όταν τα στοιχεία που περιέχονται στο Β απομακρυνθούν από το Α. Δηλαδή: {Bob, Carol, Ted} \ {Ted, Alice} = {Bob, Carol} Στη συνέχεια, θα χρησιμοποιηθεί η γλώσσα Z (που βασίζεται στις ανωτέρω έννοιες συνόλων) για την περιγραφή των απαιτήσεων ενός απλού συστήματος βιβλιοθήκης. Το σύστημα γνωρίζει ανά πάσα στιγμή τα βιβλία που είναι στα "ράφια" της βιβλιοθήκης και κατά συνέπεια είναι διαθέσιμα (shelved) καθώς και τα βιβλία που έχουν δανειστεί (loaned). Οι προδιαγραφές περιλαμβάνουν τις λειτουργίες του δανεισμού και της επιστροφής ενός βιβλίου. Θεωρούμε ότι όλα τα βιβλία της βιβλιοθήκης αναγνωρίζονται από έναν μοναδικό αριθμό καταλόγου και για το λόγο αυτό εισάγουμε ένα νέο τύπο δεδομένων που ονομάζεται CATNO χρησιμοποιώντας το συμβολισμό της Z για τον καθορισμό τύπων σε ένα σύστημα: [CATNO] Ένας τύπος στη Z είναι επίσης ένα σύνολο. Κατά συνέπεια, ο τύπος CATNO μπορεί να θεωρηθεί ως το σύνολο όλων των δυνατών αριθμών καταλόγου. Η συγκεκριμένη αναπαράσταση του τύπου (π.χ. αν θα είναι κάποιος συνδυασμός γραμμάτων και αριθμών) δεν είναι απαραίτητη για την κατανόηση του συστήματος και αυτό είναι ένα από τα πλεονεκτήματα της γλώσσας Z. Η βιβλιοθήκη μοντελοποιείται ως δύο σύνολα βιβλίων (ή αριθμών καταλόγου βιβλίων) τα οποία στο εξής θα ονομάζονται shelved και loaned. Είναι προφανές ότι ένα συγκεκριμένο βιβλίο δεν μπορεί να ανήκει και στα δύο σύνολα, γιατί δεν μπορεί να βρίσκεται στη βιβλιοθήκη και να είναι δανεισμένο την ίδια χρονική στιγμή. Η στοιχειώδης αυτή περιγραφή της βιβλιοθήκης καταγράφεται με ένα σχήμα Z που ονομάζεται Library: Library shelved, loaned : CATNO shelved loaned = Το σχήμα Library περιγράφει την κατάσταση του συστήματος (δηλαδή το μοντέλο της βιβλιοθήκης) και μια αναλλοίωτη που αφορά τα δεδομένα (δηλαδή ένα κατηγόρημα που αφορά το μοντέλο). Στο άνω τμήμα του σχήματος δηλώνονται τα συστατικά της κατάστασης, στην προκειμένη περίπτωση οι μεταβλητές shelved και loaned καθώς και ο τύπος δεδομένων τους. Ο τύπος CATNO αντιστοιχεί στο δυναμοσύνολο του CATNO, όπου δυναμοσύνολο είναι το σύνολο όλων των υποσυνόλων του CATNO. Μαθηματικά, το δυναμοσύνολο ενός συνόλου S είναι: S = {Χ: Χ S} δηλαδή για το σύνολο {,} το δυναμοσύνολο είναι {, {}, {}, {,} }. Κατά συνέπεια οι μεταβλητές shelved, loaned της βιβλιοθήκης μπορούν να έχουν ως τιμές οποιοδήποτε σύνολο αριθμών καταλόγου από το CATNO. Το κάτω Σελ. Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

26 ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ τμήμα του σχήματος περιέχει ένα κατηγόρημα το οποίο εκφράζει μια αναλλοίωτη (έναν ισχυρισμό για τα συστατικά-μεταβλητές του συστήματος ο οποίος πρέπει πάντοτε να ισχύει ανεξαρτήτως των λειτουργιών που επιδρούν επί του συστήματος). Στο συγκεκριμένο σχήμα, η αναλλοίωτη αναφέρεται στο ότι οι μεταβλητές shelved και loaned δεν θα έχουν ποτέ κοινά στοιχεία (το σύμβολο υποδηλώνει το κενό σύνολο {}). Υποθέτοντας ότι ο τύπος CATNO είναι το απειροσύνολο {c, c, c3, c4, c5, }, τυπικές τιμές για τις μεταβλητές shelved και loaned που ικανοποιούν την αναλλοίωτη θα ήταν: shelved = {c, c, c4} loaned = {c3, c5} Αντίστροφα, οι τιμές shelved = {c, c, c4} loaned = {c, c3, c5} θα ήταν σε σύγκρουση με την αναλλοίωτη καθώς το στοιχείο c ανήκει και στα διαθέσιμα και στα δανεισμένα βιβλία ταυτοχρόνως. Κατά την περιγραφή των λειτουργιών επί ενός συστήματος, οι αναλλοίωτες αποτελούν ένα χρήσιμο μέσο για την εξασφάλιση της συνέπειας των λειτουργικών απαιτήσεων που συγκροτούν τις προδιαγραφές. Θα πρέπει να εξασφαλίζεται ότι αν κάποια αναλλοίωτη ισχύει πριν από την εκτέλεση μιας λειτουργίας, θα πρέπει να ισχύει και μετά την ολοκλήρωση της λειτουργίας. Στη συνέχεια, παρουσιάζεται υπό μορφή σχήματος Ζ η λειτουργία του δανεισμού ενός βιβλίου από τη βιβλιοθήκη (λειτουργία Borrow): Borrow Δ Library book? : CATNO book? shelved shelved = shelved \ {book?} loaned = loaned {book?} Επειδή έχει ήδη οριστεί ένα σχήμα που ονομάζεται Library, εξ' ορισμού υπάρχει επίσης πρόσβαση σε ένα σχήμα που καλείται ΔLibrary, και το οποίο έχει ως εξής: ΔLibrary shelved, loaned : P CATNO shelved, loaned : P CATNO shelved loaned = shelved loaned = Μια σύμβαση της γλώσσας Z είναι ότι τα ονόματα σχημάτων που ξεκινούν με το γράμμα Δ υποδηλώνουν σχήματα των οποίων ο σκοπός είναι η περιγραφή της κατάστασης ενός συστήματος πριν και μετά την εκτέλεση μιας λειτουργίας, όταν η κατάσταση μετά διαφέρει από την κατάσταση πριν. Στη γλώσσα Ζ επίσης μιας τονισμένη μεταβλητή αναφέρεται στην κατάσταση μετά την εκτέλεση μιας λειτουργίας. Για παράδειγμα, η shelved αναφέρεται στα διαθέσιμα βιβλία πριν από τη λειτουργία δανεισμού (Borrow), ενώ η shelved' αναφέρεται στα διαθέσιμα βιβλία μετά την εκτέλεση μιας λειτουργίας δανεισμού. Το σχήμα Borrow αξιοποιεί την περιγραφή του σχήματος ΔLibrary με μια τεχνική που ονομάζεται συμπερίληψη σχήματος. Η τεχνική επιτρέπει την παραγωγή Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006 Σελ. 3

27 Περιγραφή Απαιτήσεων Λογισμικού σύνθετων προδιαγραφών από άλλες απλούστερες. Αν δεν χρησιμοποιούνταν αυτή η τεχνική, και η περιγραφή του σχήματος Borrow ήταν πλήρης, θα ήταν ως εξής: Borrow shelved, loaned : CATNO shelved, loaned : CATNO book? : CATNO book? shelved shelved loaned = shelved loaned = shelved = shelved \ {book?} loaned = loaned {book?} Î Î Για την κατασκευή του σχήματος Borrow, οι δηλώσεις των μεταβλητών από το σχήμα ΔLibrary συνενώθηκαν με τις δηλώσεις του σχήματος Borrow, και τα κατηγορήματα του σχήματος ΔLibrary συνδέθηκαν με λογικό "και" με τα κατηγορήματα του σχήματος Borrow. Επομένως, μετά την λειτουργία Borrow, και τα πέντε κατηγορήματα πρέπει να είναι αληθή. Το σχήμα Borrow είναι απολύτως ισοδύναμο με το σχήμα Borrow, αν το σχήμα Library είναι ορισμένο. Προφανώς, η ύπαρξη ενός ήδη ορισμένου σχήματος, επιτρέπει τη συμπερίληψή του σε άλλους ορισμούς σχημάτων. Η λειτουργία Borrow χρειάζεται ως είσοδο τον αριθμό καταλόγου του βιβλίου που δανείζεται. Το στοιχείο αυτό υποδηλώνεται με τη μεταβλητή εισόδου book? (μια ακόμα σύμβαση της γλώσσας Z είναι να δηλώνονται οι μεταβλητές εισόδου με το σύμβολο? στο τέλος). Το πρώτο κατηγόρημα περιγράφει την προ-συνθήκη που πρέπει να ισχύει ώστε να μπορεί να εφαρμοστεί η λειτουργία δανεισμού. Με άλλα λόγια, πρέπει ένα βιβλίο να είναι διαθέσιμο για να μπορεί να το δανειστεί κάποιος. Τα τελευταία δύο κατηγορήματα εκφράζουν την κατάσταση του συστήματος μετά την εφαρμογή της λειτουργίας (μετά-συνθήκες). Υποδηλώνεται ότι το νέο σύνολο διαθέσιμων βιβλίων θα ελαττωθεί κατά το δανειζόμενο βιβλίο και το νέο σύνολο δανεισμένων βιβλίων θα επαυξηθεί. Αν επομένως η αρχική κατάσταση της βιβλιοθήκης είναι: shelved = {c, c, c4} loaned = {c3, c5} και book? = c, η νέα κατάσταση του συστήματος μετά τη λειτουργία Borrow θα είναι: shelved' = {c, c, c4} \ {c} = {c, c4} loaned' ={c3, c5} {c} = {c, c3, c5} Η λειτουργία επιστροφής ενός βιβλίου στη βιβλιοθήκη (Return) περιγράφεται από το κάτωθι σχήμα: Σελ. 4 Χατζηγεωργίου Αλέξανδρος, Τμήμα Εφαρμοσμένης Πληροφορικής Θεσσαλονίκη, 006

Εισαγωγή στην εκτίμηση κόστους Λογισμικού / Μέθοδος COCOMO

Εισαγωγή στην εκτίμηση κόστους Λογισμικού / Μέθοδος COCOMO Εισαγωγή στην εκτίμηση κόστους Λογισμικού / Μέθοδος COCOMO Εκτίμηση κόστους λογισμικού. Η εκτίμηση κόστους λογισμικού: Προσδιορισμός του απαιτούμενου κατασκευαστικού κόστους για την ολοκλήρωση ενός έργου

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

Εισαγωγή στην εκτίµηση κόστους Λογισµικού / Μέθοδος COCOMO

Εισαγωγή στην εκτίµηση κόστους Λογισµικού / Μέθοδος COCOMO Εισαγωγή στην εκτίµηση κόστους Λογισµικού / Μέθοδος COCOMO Εκτίµησηκόστουςλογισµικού. Ηεκτίµησηκόστουςλογισµικού: Προσδιορισµός του απαιτούµενου κατασκευαστικού κόστους για την ολοκλήρωση ενός έργου λογισµικού

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

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 4: Διαχείριση Έργων

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 4: Διαχείριση Έργων Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 4: Διαχείριση Έργων Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

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

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 9: Διαχείριση Έργων (1ο Μέρος)

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 9: Διαχείριση Έργων (1ο Μέρος) Πληροφοριακά Συστήματα Διοίκησης Ενότητα 9: Διαχείριση Έργων (1ο Μέρος) Γρηγόριος Μπεληγιάννης Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων και Τροφίμων Σκοποί

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

ΔΕΟ 40 ΤΟΜΟΣ Β ΘΕΩΡΙΑ ΚΑΙ ΑΣΚΗΣΕΙΣ ΔΙΚΤΥΩΝ ΔΙΟΙΚΗΣΗ ΕΡΓΩΝ

ΔΕΟ 40 ΤΟΜΟΣ Β ΘΕΩΡΙΑ ΚΑΙ ΑΣΚΗΣΕΙΣ ΔΙΚΤΥΩΝ ΔΙΟΙΚΗΣΗ ΕΡΓΩΝ ΔΕΟ 40 ΤΟΜΟΣ Β ΘΕΩΡΙΑ ΚΑΙ ΑΣΚΗΣΕΙΣ ΔΙΚΤΥΩΝ ΔΙΟΙΚΗΣΗ ΕΡΓΩΝ ΟΡΙΣΜΟΣ ΤΟΥ ΕΡΓΟΥ Έργο είναι μια ακολουθία μοναδικών, σύνθετων και αλληλοσυσχετιζόμενων δραστηριοτήτων που αποσκοπούν στην επίτευξη κάποιου συγκεκριμένου

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

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

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

ΤΕΙ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. Διοίκηση Εργοταξίου

ΤΕΙ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. Διοίκηση Εργοταξίου ΤΕΙ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. Διοίκηση Εργοταξίου Διδάσκων: Γιάννης Χουλιάρας Χρονικός προγραμματισμός κατασκευής τεχνικών έργων. Μέθοδος Gantt, Μέθοδος κρίσιμης όδευσης (CPM). Επίλυση ασκήσεων

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

«Διαχείριση Έργων στη Δημόσια Διοίκηση» Ενότητα 6: Τεχνικές παρακολούθησης (μέρος 1ο) ΕΙΔΙΚΗΣ ΦΑΣΗΣ ΣΠΟΥΔΩΝ 24η ΕΚΠΑΙΔΕΥΤΙΚΗ ΣΕΙΡΑ

«Διαχείριση Έργων στη Δημόσια Διοίκηση» Ενότητα 6: Τεχνικές παρακολούθησης (μέρος 1ο) ΕΙΔΙΚΗΣ ΦΑΣΗΣ ΣΠΟΥΔΩΝ 24η ΕΚΠΑΙΔΕΥΤΙΚΗ ΣΕΙΡΑ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΕΣΩΤΕΡΙΚΩΝ ΚΑΙ ΔΙΟΙΚΗΤΙΚΗΣ ΑΝΑΣΥΓΚΡΟΤΗΣΗΣ «Διαχείριση Έργων στη Δημόσια Διοίκηση» Ενότητα 6: Τεχνικές παρακολούθησης (μέρος 1ο) ΕΙΔΙΚΗΣ ΦΑΣΗΣ ΣΠΟΥΔΩΝ 24η ΕΚΠΑΙΔΕΥΤΙΚΗ ΣΕΙΡΑ

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

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

Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

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

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

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

3. Προσομοίωση ενός Συστήματος Αναμονής.

3. Προσομοίωση ενός Συστήματος Αναμονής. 3. Προσομοίωση ενός Συστήματος Αναμονής. 3.1. Διατύπωση του Προβλήματος. Τα συστήματα αναμονής (queueing systems), βρίσκονται πίσω από τα περισσότερα μοντέλα μελέτης της απόδοσης υπολογιστικών συστημάτων,

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

5. (Λειτουργικά) Δομικά Διαγράμματα

5. (Λειτουργικά) Δομικά Διαγράμματα 5. (Λειτουργικά) Δομικά Διαγράμματα Γενικά, ένα λειτουργικό δομικό διάγραμμα έχει συγκεκριμένη δομή που περιλαμβάνει: Τις δομικές μονάδες (λειτουργικά τμήματα ή βαθμίδες) που συμβολίζουν συγκεκριμένες

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

4.6 Critical Path Analysis (Μέθοδος του κρίσιμου μονοπατιού)

4.6 Critical Path Analysis (Μέθοδος του κρίσιμου μονοπατιού) . Critical Path Analysis (Μέθοδος του κρίσιμου μονοπατιού) Η πετυχημένη διοίκηση των μεγάλων έργων χρειάζεται προσεχτικό προγραμματισμό, σχεδιασμό και συντονισμό αλληλοσυνδεόμενων δραστηριοτήτων (εργσιών).

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

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

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας Διαγράμματα Αλληλεπίδρασης Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας 1 Διαγράμματα αλληλεπίδρασης Απεικονίζουν την αλληλεπίδραση των αντικειμένων μέσω μηνυμάτων Η ανάθεση αρμοδιοτήτων περιλαμβάνει

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

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

ΗΥ-121: Ηλεκτρονικά Κυκλώματα Γιώργος Δημητρακόπουλος. Βασικές Αρχές Ηλεκτρικών Κυκλωμάτων

ΗΥ-121: Ηλεκτρονικά Κυκλώματα Γιώργος Δημητρακόπουλος. Βασικές Αρχές Ηλεκτρικών Κυκλωμάτων Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών ΗΥ-121: Ηλεκτρονικά Κυκλώματα Γιώργος Δημητρακόπουλος Άνοιξη 2008 Βασικές Αρχές Ηλεκτρικών Κυκλωμάτων Ηλεκτρικό ρεύμα Το ρεύμα είναι αποτέλεσμα της κίνησης

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

ΠΜΣ "Παραγωγή και ιαχείριση Ενέργειας" ιαχείριση Ενέργειας και ιοίκηση Έργων

ΠΜΣ Παραγωγή και ιαχείριση Ενέργειας ιαχείριση Ενέργειας και ιοίκηση Έργων ιαχείριση Ενέργειας και ιοίκηση Έργων 18. Σχεδιασμός Έργων - Χρονική Ανάλυση ση ικτύων Καθηγητής Ιωάννης Ψαρράς Εργαστήριο Συστημάτων Αποφάσεων & ιοίκησης Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

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

Διοίκηση Έργων Πληροφορικής - Τηλεπικοινωνιών

Διοίκηση Έργων Πληροφορικής - Τηλεπικοινωνιών Διοίκηση Έργων Πληροφορικής - Τηλεπικοινωνιών ΔΗΜΗΤΡΑ ΤΖΙΓΚΟΥ Λ Ε Υ Κ Α Δ Α 2 0 1 2 (1/2) Ένα έργο (project) Πληροφορικής είναι ένα σύνολο από δραστηριότητες, δηλαδή εργασίες που η υλοποίηση τους απαιτεί

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

Ανάλυση Χρόνου, Πόρων & Κόστους

Ανάλυση Χρόνου, Πόρων & Κόστους ΠΜΣ: «Παραγωγή και ιαχείριση Ενέργειας» ιαχείριση Ενέργειας και ιοίκηση Έργων Ανάλυση Χρόνου, Πόρων & Κόστους Επ. Καθηγητής Χάρης ούκας, Καθηγητής Ιωάννης Ψαρράς Εργαστήριο Συστημάτων Αποφάσεων & ιοίκησης

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

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

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

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

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops

K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops K24 Ψηφιακά Ηλεκτρονικά 9: TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΧΝΟΛΟΓΙΚΟ Περιεχόμενα 1 2 3 Γενικά Ύστερα από τη μελέτη συνδυαστικών ψηφιακών κυκλωμάτων, θα μελετήσουμε

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

ΠΕΡΙΕΧΟΜΕΝΑ ΔΙΟΙΚΗΣΗ ΛΕΙΤΟΥΡΓΙΩΝ. Διοίκηση και Προγραμματισμός Έργων

ΠΕΡΙΕΧΟΜΕΝΑ ΔΙΟΙΚΗΣΗ ΛΕΙΤΟΥΡΓΙΩΝ. Διοίκηση και Προγραμματισμός Έργων ΔΙΟΙΚΗΣΗ ΛΕΙΤΟΥΡΓΙΩΝ Διοίκηση και Προγραμματισμός Έργων ΠΕΡΙΕΧΟΜΕΝΑ 1. Βασικές έννοιες 2. Ανάλυση του έργου και διαμόρφωση του δικτύου 3. Επίλυση δικτύου 1 1. Βασικές έννοιες Με τον όρο έργο, εκτός από

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

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση Κεφάλαιο ο: Δικτυωτή Ανάλυση. Εισαγωγή Η δικτυωτή ανάλυση έχει παίξει σημαντικό ρόλο στην Ηλεκτρολογία. Όμως, ορισμένες έννοιες και τεχνικές της δικτυωτής ανάλυσης είναι πολύ χρήσιμες και σε άλλες επιστήμες.

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

Διοίκηση Λειτουργιών. Διοίκηση Έργων II (Δίκτυα Έργων & Χρονοπρογραμματισμός) - 6 ο μάθημα -

Διοίκηση Λειτουργιών. Διοίκηση Έργων II (Δίκτυα Έργων & Χρονοπρογραμματισμός) - 6 ο μάθημα - Διοίκηση Λειτουργιών Διοίκηση Έργων II (Δίκτυα Έργων & Χρονοπρογραμματισμός) - 6 ο μάθημα - Θεματολογία Μορφές δικτύων έργων Χρονικός προγραμματισμός έργων Ανδρέας Νεάρχου Συμβολισμοί για δίκτυα έργων

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

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Περιεχόμενα Μέθοδοι Παρουσίασης του αλγόριθμου Εισαγωγή Φραστική μέθοδος Ψευδοκώδικας

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες

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

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΗΛΕΚΤΡΟΝΙΚΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΟΜΑ Α Α Αριθµητική Λογική Μονάδα των 8-bit 1. Εισαγωγή Γενικά µια αριθµητική λογική µονάδα (ALU, Arithmetic Logic Unit)

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

Πληροφοριακά Συστήματα. Προγραμματισμός έργων Η μέθοδος CPM

Πληροφοριακά Συστήματα. Προγραμματισμός έργων Η μέθοδος CPM Πληροφοριακά Συστήματα Διοίκησης Προγραμματισμός έργων Η μέθοδος CPM Προγραμματισμός έργων Ασχολείται με τον βέλτιστο προγραμματισμό περίπλοκων έργων, ώστε να επιτευχθούν στόχοι σε σχέση με: τον χρόνο

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

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

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

ΤΟΠΟΓΡΑΦΙΚΑ ΔΙΚΤΥΑ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ ΑΝΑΣΚΟΠΗΣΗ ΘΕΩΡΙΑΣ ΣΥΝΟΡΘΩΣΕΩΝ ΤΟΠΟΓΡΑΦΙΚΑ ΔΙΚΤΥΑ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ ΑΝΑΣΚΟΠΗΣΗ ΘΕΩΡΙΑΣ ΣΥΝΟΡΘΩΣΕΩΝ Βασίλης Δ. Ανδριτσάνος Δρ. Αγρονόμος - Τοπογράφος Μηχανικός ΑΠΘ Επίκουρος Καθηγητής ΤΕΙ Αθήνας 3ο εξάμηνο http://eclass.teiath.gr Παρουσιάσεις,

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

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές

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

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

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ ΜΕΡΟΣ ΙΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ 36 ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ Πολλές από τις αποφάσεις

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 3 Κεντρική Μονάδα Επεξεργασίας Κεντρική Μονάδα Επεξεργασίας Μονάδα επεξεργασίας δεδομένων Μονάδα ελέγχου Μονάδα επεξεργασίας δεδομένων Δομή Αριθμητικής Λογικής Μονάδας

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας

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

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

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

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

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

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

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

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

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

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που

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

Ψηφιακή Λογική Σχεδίαση

Ψηφιακή Λογική Σχεδίαση Ψηφιακή Λογική Σχεδίαση Επιμέλεια: Νίκος Φακωτάκης, Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης)

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) Καλλονιάτης Χρήστος Επίκουρος Καθηγητής Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας, Πανεπιστήμιο Αιγαίου http://www.ct.aegean.gr/people/kalloniatis

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

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

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

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Τι είναι ένα Κατανεμημένο Σύστημα; Επικοινωνία, Χρονισμός, Σφάλματα Μοντέλο Ανταλλαγής Μηνυμάτων 1

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

Χρονικός Προγραμματισμός Έργων Project Scheduling. Κέντρο Εκπαίδευσης ΕΤΕΚ 69 Δρ. Σ. Χριστοδούλου και Δρ. Α. Ρουμπούτσου

Χρονικός Προγραμματισμός Έργων Project Scheduling. Κέντρο Εκπαίδευσης ΕΤΕΚ 69 Δρ. Σ. Χριστοδούλου και Δρ. Α. Ρουμπούτσου Χρονικός Προγραμματισμός Έργων Project Scheduling Κέντρο Εκπαίδευσης ΕΤΕΚ 69 Δρ. Σ. Χριστοδούλου και Δρ. Α. Ρουμπούτσου Χρονοδιαγράμματα Έργων Διαδικασία Κτίζοντας το Πρόγραμμα Έργου 1. Κατανόηση έργου/προδιαγραφών

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επανάληψης Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επανάληψης Επανάληψη με αρίθμηση DO = ,

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 1 ο Γλώσσα - Μετάφραση Γλώσσα προγραμματισμού = Αναπαράσταση αλγορίθμων Ευκολία χρήσης Ακρίβεια και πληρότητα περιγραφής, όχι διφορούμενη! Μία περιγραφή για όλες τις μηχανές Μετάφραση

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

Γραμμικός Προγραμματισμός Μέθοδος Simplex

Γραμμικός Προγραμματισμός Μέθοδος Simplex ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραμμικός Προγραμματισμός Μέθοδος Simplex Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Πρότυπη Μορφή ΓΠ 2. Πινακοποίηση

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

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

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές...

Περιεχόμενα. Πρόλογος... XI. Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA Κεφάλαιο 2. Τεχνολογία VLSI Εισαγωγή Βασικές Αρχές... Περιεχόμενα Πρόλογος... XI Κεφάλαιο 1. Συστήματα Βασισμένα σε FPGA... 1 1.1 Εισαγωγή... 1 1.2 Βασικές Αρχές... 1 1.2.1 Boolean Άλγεβρα... 1 1.2.2 Σχηματικά και Λογικά Σύμβολα... 6 1.3 Ψηφιακή Σχεδίαση

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

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

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

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

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

Συνδυαστικά Λογικά Κυκλώματα

Συνδυαστικά Λογικά Κυκλώματα Συνδυαστικά Λογικά Κυκλώματα Ένα συνδυαστικό λογικό κύκλωμα συντίθεται από λογικές πύλες, δέχεται εισόδους και παράγει μία ή περισσότερες εξόδους. Στα συνδυαστικά λογικά κυκλώματα οι έξοδοι σε κάθε χρονική

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

Περι-γράφοντας... βρόχους

Περι-γράφοντας... βρόχους Όνομα(τα): Όνομα Η/Υ: Σ Τμήμα: Ημερομηνία: Περι-γράφοντας... βρόχους Ξεκινήστε το Χώρο Δραστηριοτήτων, επιλέξτε τη θεματική ενότητα: ΘΕ05: Επανάληψη και επιλέξτε την πρώτη δραστηριότητα (Περι-γράφοντας...

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

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Τεχνολογία Πολυμέσων Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γιώργος Δημητρίου Μάθημα 11 ο Γεννήτορας Τελικού Κώδικα Ο γεννήτορας τελικού κώδικα είναι το πιο κρίσιμο τμήμα του μεταγλωττιστή και αντιμετωπίζει πολύπλοκα προβλήματα Βέλτιστη χρήση της αρχιτεκτονικής

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

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

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ Μ. Γρηγοριάδου Ρ. Γόγουλου Ενότητα: Η Διδασκαλία του Προγραμματισμού Περιεχόμενα Παρουσίασης

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Ακαδηµαϊκό Έτος 2003-2004, Εαρινό Εξάµηνο ιδάσκων

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 6 η Βρόχοι Επανάληψης Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

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

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο : 2. Α/Α Διάλεξης : 1 1. Τίτλος : Εισαγωγή στην Ψηφιακή Τεχνολογία 2. Μαθησιακοί Στόχοι : Λογικές Πύλες και η υλοποίησή τους με τρανζίστορ. Κατασκευή ολοκληρωμένων κυκλωμάτων. 3. Θέματα που καλύπτει : Λογικές

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

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

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

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

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ Γ Λυκείου Κατεύθυνσης Mike Trimos Βήματα Ανάπτυξης ενός Συστήματος 1.Ορισμός και κατανόηση του προβλήματος 2.Ανάλυση του προβλήματος 3.Σχεδιασμός Αλγοριθμικής Λύσης 4.Κωδικοποίηση 5.Διόρθωση

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος

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

9. Συστολικές Συστοιχίες Επεξεργαστών

9. Συστολικές Συστοιχίες Επεξεργαστών Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε

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

K15 Ψηφιακή Λογική Σχεδίαση 6: Λογικές πύλες και λογικά κυκλώματα

K15 Ψηφιακή Λογική Σχεδίαση 6: Λογικές πύλες και λογικά κυκλώματα K15 Ψηφιακή Λογική Σχεδίαση 6: Λογικές πύλες και λογικά κυκλώματα Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Λογικές πύλες Περιεχόμενα 1 Λογικές πύλες

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Εισαγωγικά ΘΕ ΠΛΗ 204-5 ONLINE ΕΡΓΑΣΙΑ E2- Η Online Εργασία Ε2- αποτελεί (όπως περιγράφεται αναλυτικότερα και στον Οδηγό Σπουδών της Θ.Ε. που σας έχει διατεθεί) συμπληρωματική άσκηση στα πλαίσια της Γραπτής

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

Visual Flowchart Γενικά

Visual Flowchart Γενικά Visual Flowchart 3.020 -Γενικά Το Visual Flowchart ή «Data-Flow Visual Programming Language 3.020» (http://www. emu8086.com/fp) είναι ένα περιβάλλον ανάπτυξης και εκτέλεσης αλγορίθμων απευθείας σε μορφή

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο Γιώργος Δημητρίου Μάθημα 9 ο Ενδιάμεσος Κώδικας Απεικόνιση ανάμεσα στον αρχικό και στον τελικό κώδικα Γραμμικές αναπαραστάσεις: Ενδιάμεσος κώδικας πλησιέστερα στον τελικό ευκολότερη παραγωγή τελικού κώδικα

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

7 η διάλεξη Ακολουθιακά Κυκλώματα

7 η διάλεξη Ακολουθιακά Κυκλώματα 7 η διάλεξη Ακολουθιακά Κυκλώματα 1 2 3 4 5 6 7 Παραπάνω βλέπουμε ακολουθιακό κύκλωμα σχεδιασμένο με μανταλωτές διαφορετικής φάσης. Παρατηρούμε ότι συνδυαστική λογική μπορεί να προστεθεί μεταξύ και των

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

Τοποθετήστε τη δισκέτα στο drive B και σε περιβάλλον MS-DOS πληκτρολογήστε: B:

Τοποθετήστε τη δισκέτα στο drive B και σε περιβάλλον MS-DOS πληκτρολογήστε: B: Συστήματα floppy disk Τοποθετήστε τη δισκέτα στο drive B και σε περιβάλλον MS-DOS πληκτρολογήστε: B: Συστήματα σκληρού δίσκου Οι χρήστες σκληρού δίσκου θα πρέπει να δημιουργήσουν ένα directory με το όνομα

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

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων YouTube Ιδρύθηκε το 2005 Στόχος του ήταν να δημιουργήσει μία παγκόσμια κοινότητα Βάση δεδομένων βίντεο Μέσα σε ένα χρόνο από τη δημιουργία

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

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

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

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

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

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Μεθοδολογίες Ανάπτυξης Συστημάτων Πληροφορικής Απαντούν στα εξής ερωτήματα Ποιά βήματα θα ακολουθηθούν? Με ποιά σειρά? Ποιά τα παραδοτέα και πότε? Επομένως,

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

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης ΠΕΡΙΕΧΟΜΕΝΑ Εντολές επιλογής Εντολές επανάληψης Εισαγωγή Στο προηγούμενο κεφάλαιο αναπτύξαμε προγράμματα, τα οποία ήταν πολύ απλά και οι εντολές των οποίων εκτελούνται η μία μετά την άλλη. Αυτή η σειριακή

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

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Βάσεις Δεδομένων Επαγγελματικού Λυκείου Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Εισηγητής Δελησταύρου Κωνσταντίνος Καθηγητής Πληροφορικής ΠΕ20 Μηχανικός Πληροφορικής Τ.Ε. M.Sc. στα Συστήματα Υπολογιστών Περιεχόμενα

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0 ΤΙ ΕΙΝΑΙ ΤΟ ADVANCED Οι Advanced θεματικές ενότητες είναι κατάλληλες για άτομα που επιθυμούν να συνεχίσουν σπουδές στο χώρο

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

Συστήματα Αυτόματου Ελέγχου

Συστήματα Αυτόματου Ελέγχου ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Συστήματα Αυτόματου Ελέγχου Ενότητα : Ψηφιακός Έλεγχος Συστημάτων Aναστασία Βελώνη Τμήμα Η.Υ.Σ Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 1 Εισαγωγή 1 / 14 Δομές Δεδομένων και Αλγόριθμοι Δομή Δεδομένων Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων

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

Υπολογιστικό Πρόβληµα

Υπολογιστικό Πρόβληµα Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις

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

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

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

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

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f.

6.1 Καταχωρητές. Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f. 6. Καταχωρητές Ένας καταχωρητής είναι μια ομάδα από f/f αλλά μπορεί να περιέχει και πύλες. Καταχωρητής των n ψηφίων αποτελείται από n f/f. Καταχωρητής 4 ψηφίων Καταχωρητής με παράλληλη φόρτωση Η εισαγωγή

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 1: Εισαγωγή Ποιος είμαι εγώ! 2 Ναύπλιο, 4/1976-9/1993 Πάτρα, 9/1993-6/2004 Williamsburg, VA, USA, 7/2004-7/2006 Μυτιλήνη, 10/2006-2/2007 Βόλος, 2/2007 - H Υπεύθυνη των

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