ΣΗΜΕΙΩΣΕΙΣ ΤΕΧΝΟΛΟΓΙΑΣ ΛΟΓΙΣΜΙΚΟΥ
|
|
- Ἰσμήνη Αθανασίου
- 8 χρόνια πριν
- Προβολές:
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 Εκτίµησηκόστουςλογισµικού. Ηεκτίµησηκόστουςλογισµικού: Προσδιορισµός του απαιτούµενου κατασκευαστικού κόστους για την ολοκλήρωση ενός έργου λογισµικού
Διαβάστε περισσότεραΠληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 4: Διαχείριση Έργων
Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 4: Διαχείριση Έργων Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)
Διαβάστε περισσότεραΠληροφοριακά Συστήματα Διοίκησης Ενότητα 9: Διαχείριση Έργων (1ο Μέρος)
Πληροφοριακά Συστήματα Διοίκησης Ενότητα 9: Διαχείριση Έργων (1ο Μέρος) Γρηγόριος Μπεληγιάννης Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων και Τροφίμων Σκοποί
Διαβάστε περισσότεραΔΕΟ 40 ΤΟΜΟΣ Β ΘΕΩΡΙΑ ΚΑΙ ΑΣΚΗΣΕΙΣ ΔΙΚΤΥΩΝ ΔΙΟΙΚΗΣΗ ΕΡΓΩΝ
ΔΕΟ 40 ΤΟΜΟΣ Β ΘΕΩΡΙΑ ΚΑΙ ΑΣΚΗΣΕΙΣ ΔΙΚΤΥΩΝ ΔΙΟΙΚΗΣΗ ΕΡΓΩΝ ΟΡΙΣΜΟΣ ΤΟΥ ΕΡΓΟΥ Έργο είναι μια ακολουθία μοναδικών, σύνθετων και αλληλοσυσχετιζόμενων δραστηριοτήτων που αποσκοπούν στην επίτευξη κάποιου συγκεκριμένου
Διαβάστε περισσότεραK15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων
K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού
Διαβάστε περισσότεραΔιαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων
Διαγράμματα UML στην Ανάλυση Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων περιεχόμενα παρουσίασης Διαγράμματα επικοινωνίας Διαγράμματα ακολουθίας Διαγράμματα
Διαβάστε περισσότερα«Διαχείριση Έργων στη Δημόσια Διοίκηση» Ενότητα 6: Τεχνικές παρακολούθησης (μέρος 1ο) ΕΙΔΙΚΗΣ ΦΑΣΗΣ ΣΠΟΥΔΩΝ 24η ΕΚΠΑΙΔΕΥΤΙΚΗ ΣΕΙΡΑ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΕΣΩΤΕΡΙΚΩΝ ΚΑΙ ΔΙΟΙΚΗΤΙΚΗΣ ΑΝΑΣΥΓΚΡΟΤΗΣΗΣ «Διαχείριση Έργων στη Δημόσια Διοίκηση» Ενότητα 6: Τεχνικές παρακολούθησης (μέρος 1ο) ΕΙΔΙΚΗΣ ΦΑΣΗΣ ΣΠΟΥΔΩΝ 24η ΕΚΠΑΙΔΕΥΤΙΚΗ ΣΕΙΡΑ
Διαβάστε περισσότεραΤΕΙ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. Διοίκηση Εργοταξίου
ΤΕΙ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. Διοίκηση Εργοταξίου Διδάσκων: Γιάννης Χουλιάρας Χρονικός προγραμματισμός κατασκευής τεχνικών έργων. Μέθοδος Gantt, Μέθοδος κρίσιμης όδευσης (CPM). Επίλυση ασκήσεων
Διαβάστε περισσότεραΣου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά.
AeppAcademy.com facebook.com/aeppacademy Γεια. Σου προτείνω να τυπώσεις τις επόμενες τέσσερις σελίδες σε ένα φύλο διπλής όψης και να τις έχεις μαζί σου για εύκολη αναφορά. Καλή Ανάγνωση & Καλή Επιτυχία
Διαβάστε περισσότερα10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.
1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.
Διαβάστε περισσότεραΠροβλήματα, αλγόριθμοι, ψευδοκώδικας
Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ
ΥΠΟΥΡΓΕΙΟ ΕΘΝΙΚΗΣ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΠΑΙΔΑΓΩΓΙΚΟ ΙΝΣΤΙΤΟΥΤΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ Κ Υ Κ Λ Ο Υ Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Κ Α Ι Υ Π Η Ρ Ε Σ Ι Ω Ν Τ Ε Χ Ν Ο Λ Ο Γ Ι Κ Η
Διαβάστε περισσότεραΤμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα
Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Βήματα προς τη δημιουργία εκτελέσιμου κώδικα
Διαβάστε περισσότερα4.6 Critical Path Analysis (Μέθοδος του κρίσιμου μονοπατιού)
. Critical Path Analysis (Μέθοδος του κρίσιμου μονοπατιού) Η πετυχημένη διοίκηση των μεγάλων έργων χρειάζεται προσεχτικό προγραμματισμό, σχεδιασμό και συντονισμό αλληλοσυνδεόμενων δραστηριοτήτων (εργσιών).
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης
Διαβάστε περισσότεραΟ επόμενος πίνακας παρουσιάζει τις δραστηριότητες ενός έργου, τις σχέσεις μεταξύ τους, καθώς και τη διάρκειά τους σε εβδομάδες.
Το Διάγραμμα Gantt Tο πλέον χρησιμοποιούμενο εργαλείο για το χρονοπρογραμματισμό ενός έργου είναι το διάγραμμα Gantt, το οποίο αναπτύχθηκε από το Η. Grantt. To διάγραμμα Gantt αποτελεί ένα γραμμικό διάγραμμα
Διαβάστε περισσότεραΗΥ-121: Ηλεκτρονικά Κυκλώματα Γιώργος Δημητρακόπουλος. Βασικές Αρχές Ηλεκτρικών Κυκλωμάτων
Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών ΗΥ-121: Ηλεκτρονικά Κυκλώματα Γιώργος Δημητρακόπουλος Άνοιξη 2008 Βασικές Αρχές Ηλεκτρικών Κυκλωμάτων Ηλεκτρικό ρεύμα Το ρεύμα είναι αποτέλεσμα της κίνησης
Διαβάστε περισσότεραΠΜΣ "Παραγωγή και ιαχείριση Ενέργειας" ιαχείριση Ενέργειας και ιοίκηση Έργων
ιαχείριση Ενέργειας και ιοίκηση Έργων 18. Σχεδιασμός Έργων - Χρονική Ανάλυση ση ικτύων Καθηγητής Ιωάννης Ψαρράς Εργαστήριο Συστημάτων Αποφάσεων & ιοίκησης Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής
Διαβάστε περισσότεραΠιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.
i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical
Διαβάστε περισσότεραΑΕΠΠ Ερωτήσεις θεωρίας
ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος
Διαβάστε περισσότεραΓενικά Στοιχεία Ηλεκτρονικού Υπολογιστή
Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω
Διαβάστε περισσότεραΘεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος Θέμα 1 Δίνονται τα παρακάτω τμήματα αλγορίθμου Α. βαλίτσα Αληθής εισιτήριο Αληθής ταξίδι βαλίτσα και εισιτήριο Τι τιμή θα έχει η λογική μεταβλητή
Διαβάστε περισσότεραΚεφάλαιο 4ο: Δικτυωτή Ανάλυση
Κεφάλαιο ο: Δικτυωτή Ανάλυση. Εισαγωγή Η δικτυωτή ανάλυση έχει παίξει σημαντικό ρόλο στην Ηλεκτρολογία. Όμως, ορισμένες έννοιες και τεχνικές της δικτυωτής ανάλυσης είναι πολύ χρήσιμες και σε άλλες επιστήμες.
Διαβάστε περισσότεραΑρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες
Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Περιεχόμενα Μέθοδοι Παρουσίασης του αλγόριθμου Εισαγωγή Φραστική μέθοδος Ψευδοκώδικας
Διαβάστε περισσότεραΔΕΙΓΜΑ ΠΡΙΝ ΤΙΣ ΔΙΟΡΘΩΣΕΙΣ - ΕΚΔΟΣΕΙΣ ΚΡΙΤΙΚΗ
Συναρτήσεις Προεπισκόπηση Κεφαλαίου Τα μαθηματικά είναι μια γλώσσα με ένα συγκεκριμένο λεξιλόγιο και πολλούς κανόνες. Πριν ξεκινήσετε το ταξίδι σας στον Απειροστικό Λογισμό, θα πρέπει να έχετε εξοικειωθεί
Διαβάστε περισσότερα3. Προσομοίωση ενός Συστήματος Αναμονής.
3. Προσομοίωση ενός Συστήματος Αναμονής. 3.1. Διατύπωση του Προβλήματος. Τα συστήματα αναμονής (queueing systems), βρίσκονται πίσω από τα περισσότερα μοντέλα μελέτης της απόδοσης υπολογιστικών συστημάτων,
Διαβάστε περισσότερα2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός
Διαβάστε περισσότερα5. (Λειτουργικά) Δομικά Διαγράμματα
5. (Λειτουργικά) Δομικά Διαγράμματα Γενικά, ένα λειτουργικό δομικό διάγραμμα έχει συγκεκριμένη δομή που περιλαμβάνει: Τις δομικές μονάδες (λειτουργικά τμήματα ή βαθμίδες) που συμβολίζουν συγκεκριμένες
Διαβάστε περισσότεραΔιοίκηση Έργων Πληροφορικής - Τηλεπικοινωνιών
Διοίκηση Έργων Πληροφορικής - Τηλεπικοινωνιών ΔΗΜΗΤΡΑ ΤΖΙΓΚΟΥ Λ Ε Υ Κ Α Δ Α 2 0 1 2 (1/2) Ένα έργο (project) Πληροφορικής είναι ένα σύνολο από δραστηριότητες, δηλαδή εργασίες που η υλοποίηση τους απαιτεί
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός
Διαβάστε περισσότερα4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER
4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER Σκοπός του κεφαλαίου είναι να παρουσιάσει μερικές εφαρμογές του Μετασχηματισμού Fourier (ΜF). Ειδικότερα στο κεφάλαιο αυτό θα περιγραφούν έμμεσοι τρόποι
Διαβάστε περισσότεραΠρογραμματισμός Ι (HY120)
Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται
Διαβάστε περισσότεραΑναγνώριση Προτύπων Ι
Αναγνώριση Προτύπων Ι Ενότητα 1: Μέθοδοι Αναγνώρισης Προτύπων Αν. Καθηγητής Δερματάς Ευάγγελος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΔιαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας
Διαγράμματα Αλληλεπίδρασης Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας 1 Διαγράμματα αλληλεπίδρασης Απεικονίζουν την αλληλεπίδραση των αντικειμένων μέσω μηνυμάτων Η ανάθεση αρμοδιοτήτων περιλαμβάνει
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ
ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗ, Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ Σκοπός του μαθήματος είναι οι μαθητές και οι μαθήτριες να αναπτύξουν ικανότητες αναλυτικής και συνθετικής σκέψης, ώστε να επιλύουν προβλήματα, να σχεδιάζουν
Διαβάστε περισσότερα5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ
5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος
Διαβάστε περισσότερα4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.
ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ο ΚΕΦΑΛΑΙΟ 1) Τι είναι πρόβλημα (σελ. 3) 2) Τι είναι δεδομένο, πληροφορία, επεξεργασία δεδομένων (σελ. 8) 3) Τι είναι δομή ενός προβλήματος (σελ. 8)
Διαβάστε περισσότεραΥπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).
Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται
Διαβάστε περισσότερα1 η Άσκηση στο Χρονοπρογραμματισμό Έργων
1 η Άσκηση στο Χρονοπρογραμματισμό Έργων Θεωρείστε ένα έργο που απαιτεί τις δραστηριότητες του Πίνακα 1. Για κάθε δραστηριότητα αναγράφονται οι προαπαιτούμενες δραστηριότητες αν υπάρχουν, και οι εκτιμήσεις
Διαβάστε περισσότεραΔικτυακή Αναπαράσταση Έργων (Δίκτυα ΑΟΑ και ΑΟΝ) & η Μέθοδος CPM. Λυμένες Ασκήσεις & Παραδείγματα
Δικτυακή Αναπαράσταση Έργων (Δίκτυα ΑΟΑ και ΑΟΝ) & η Μέθοδος PM Λυμένες Ασκήσεις & Παραδείγματα Άσκηση σχεδίασης έργου με δίκτυο ΑΟΑ Σχεδιάστε το δίκτυο ΑΟΑ που ικανοποιεί του ακόλουθους περιορισμούς:
Διαβάστε περισσότεραΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ
ΜΕΡΟΣ ΙΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ 36 ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ Πολλές από τις αποφάσεις
Διαβάστε περισσότεραΚεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού
Διαβάστε περισσότεραΟι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών
44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.
Διαβάστε περισσότεραΠεριεχόμενα. 2 Αριθμητικά συστήματα
Περιεχόμενα Πρόλογος 1 Εισαγωγή 1.1 Το μοντέλο Turing 1.2 Το μοντέλο von Neumann 1.3 Συστατικά στοιχεία υπολογιστών 1.4 Ιστορικό 1.5 Κοινωνικά και ηθικά ζητήματα 1.6 Η επιστήμη των υπολογιστών ως επαγγελματικός
Διαβάστε περισσότεραΕρωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος
Διαβάστε περισσότεραΜαλούτα Θεανώ Σελίδα 1
ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες
Διαβάστε περισσότεραΤΟΠΟΓΡΑΦΙΚΑ ΔΙΚΤΥΑ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ ΑΝΑΣΚΟΠΗΣΗ ΘΕΩΡΙΑΣ ΣΥΝΟΡΘΩΣΕΩΝ
ΤΟΠΟΓΡΑΦΙΚΑ ΔΙΚΤΥΑ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ ΑΝΑΣΚΟΠΗΣΗ ΘΕΩΡΙΑΣ ΣΥΝΟΡΘΩΣΕΩΝ Βασίλης Δ. Ανδριτσάνος Δρ. Αγρονόμος - Τοπογράφος Μηχανικός ΑΠΘ Επίκουρος Καθηγητής ΤΕΙ Αθήνας 3ο εξάμηνο http://eclass.teiath.gr Παρουσιάσεις,
Διαβάστε περισσότεραΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου
Διαβάστε περισσότεραz = c 1 x 1 + c 2 x c n x n
Τεχνολογικό Εκπαιδευτικό Ιδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Γραμμικός Προγραμματισμός & Βελτιστοποίηση Δρ. Δημήτρης Βαρσάμης Καθηγητής Εφαρμογών Δρ. Δημήτρης Βαρσάμης Μάρτιος
Διαβάστε περισσότεραK24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops
K24 Ψηφιακά Ηλεκτρονικά 9: TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΧΝΟΛΟΓΙΚΟ Περιεχόμενα 1 2 3 Γενικά Ύστερα από τη μελέτη συνδυαστικών ψηφιακών κυκλωμάτων, θα μελετήσουμε
Διαβάστε περισσότεραΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ
ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΗΛΕΚΤΡΟΝΙΚΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΟΜΑ Α Α Αριθµητική Λογική Μονάδα των 8-bit 1. Εισαγωγή Γενικά µια αριθµητική λογική µονάδα (ALU, Arithmetic Logic Unit)
Διαβάστε περισσότεραFORTRAN και Αντικειμενοστραφής Προγραμματισμός
FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών
Διαβάστε περισσότεραΔΙΔΑΣΚΩΝ: Λ. ΜΠΙΣΔΟΥΝΗΣ ΛΥΣΕΙΣ ΕΞΕΤΑΣΗΣ ΣΤΟ ΜΑΘΗΜΑ «ΤΕΧΝΟΛΟΓΙΑ ΜΕΤΡΗΣΕΩΝ» ΗΜΕΡΟΜΗΝΙΑ: 28/01/2015
ΛΥΣΕΙΣ ΕΞΕΤΑΣΗΣ ΣΤΟ ΜΑΘΗΜΑ «ΤΕΧΝΟΛΟΓΙΑ ΜΕΤΡΗΣΕΩΝ» ΗΜΕΡΟΜΗΝΙΑ: 8//5 ΘΕΜΑ ο (.5 μονάδες) Η έξοδος του αισθητήρα του παρακάτω σχήματος είναι γραμμικό σήμα τάσης, το οποίο εφαρμόζεται για χρονικό διάστημα
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Γιώργος Δημητρίου Μάθημα 11 ο Γεννήτορας Τελικού Κώδικα Ο γεννήτορας τελικού κώδικα είναι το πιο κρίσιμο τμήμα του μεταγλωττιστή και αντιμετωπίζει πολύπλοκα προβλήματα Βέλτιστη χρήση της αρχιτεκτονικής
Διαβάστε περισσότεραΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ
ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που
Διαβάστε περισσότεραΤμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος
Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Κανόνες Ομαλής Λειτουργίας Ερχόμαστε στην ώρα μας Δεν καπνίζουμε και τρώμε εντός της αίθουσας
Διαβάστε περισσότεραΠεριεχόμενο του μαθήματος
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος
Διαβάστε περισσότεραΔιοίκηση Έργων Πληροφορικής Εργαστήριο 2. Μακρή Ελένη-Λασκαρίνα
Διοίκηση Έργων Πληροφορικής Εργαστήριο 2 Μακρή Ελένη-Λασκαρίνα elmak@unipi.gr Περιεχόμενα Προγραμματισμός Έργων Δομή Ανάλυσης Εργασιών - Work breakdown structure (WBS) Χρονοπρογραμματισμός Έργων Διάγραμμα
Διαβάστε περισσότεραΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ
Κεφάλαιο 7 ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ Ερωτήσεις 1. Να αναφέρετε διαφορές μεταξύ γλωσσών μηχανής και γλωσσών χαμηλού επιπέδου. Οι γλώσσες μηχανής κωδικοποιούν τις εντολές τους με ομάδες
Διαβάστε περισσότεραΔιοίκηση Λειτουργιών. Διοίκηση Έργων II (Δίκτυα Έργων & Χρονοπρογραμματισμός) - 6 ο μάθημα -
Διοίκηση Λειτουργιών Διοίκηση Έργων II (Δίκτυα Έργων & Χρονοπρογραμματισμός) - 6 ο μάθημα - Θεματολογία Μορφές δικτύων έργων Χρονικός προγραμματισμός έργων Ανδρέας Νεάρχου Συμβολισμοί για δίκτυα έργων
Διαβάστε περισσότεραΕισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο
Εισαγωγικές Έννοιες ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΠΕΡΙΕΧΟΜΕΝΑ ΔΙΟΙΚΗΣΗ ΛΕΙΤΟΥΡΓΙΩΝ. Διοίκηση και Προγραμματισμός Έργων
ΔΙΟΙΚΗΣΗ ΛΕΙΤΟΥΡΓΙΩΝ Διοίκηση και Προγραμματισμός Έργων ΠΕΡΙΕΧΟΜΕΝΑ 1. Βασικές έννοιες 2. Ανάλυση του έργου και διαμόρφωση του δικτύου 3. Επίλυση δικτύου 1 1. Βασικές έννοιες Με τον όρο έργο, εκτός από
Διαβάστε περισσότεραΑναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.
ΤΡΙΤΗ ΔΙΑΛΕΞΗ Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.): Σύνταξη τύπος όνομαα; τύπος όνομαβ{όνομαα}; όνομαβ
Διαβάστε περισσότεραΤεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα
Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη
Διαβάστε περισσότεραΠερι-γράφοντας... βρόχους
Όνομα(τα): Όνομα Η/Υ: Σ Τμήμα: Ημερομηνία: Περι-γράφοντας... βρόχους Ξεκινήστε το Χώρο Δραστηριοτήτων, επιλέξτε τη θεματική ενότητα: ΘΕ05: Επανάληψη και επιλέξτε την πρώτη δραστηριότητα (Περι-γράφοντας...
Διαβάστε περισσότεραΨευδοκώδικας. November 7, 2011
Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε
Διαβάστε περισσότεραΚεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1
Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,
Διαβάστε περισσότεραΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 3 Κεντρική Μονάδα Επεξεργασίας Κεντρική Μονάδα Επεξεργασίας Μονάδα επεξεργασίας δεδομένων Μονάδα ελέγχου Μονάδα επεξεργασίας δεδομένων Δομή Αριθμητικής Λογικής Μονάδας
Διαβάστε περισσότεραΚεφάλαιο 10 ο Υποπρογράµµατα
Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.
ΔΙΙΔΡΥΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΝΕΕΣ ΤΕΧΝΟΛΟΓΙΕΣ ΣΤΗ ΝΑΥΤΙΛΙΑ ΚΑΙ ΤΙΣ ΜΕΤΑΦΟΡΕΣ» Τίτλος Μαθήματος: Διοίκηση έργου Ονοματεπώνυμο Σπουδαστή: Αργύριος Κρουστάλλης Ονοματεπώνυμο Υπεύθυνου Καθηγητή:
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα
Διαβάστε περισσότεραΠληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού
Πληροφοριακά Συστήματα Διοίκησης Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού Σημασία μοντέλου Το μοντέλο δημιουργεί μια λογική δομή μέσω της οποίας αποκτούμε μια χρήσιμη άποψη
Διαβάστε περισσότεραΑνάλυση Χρόνου, Πόρων & Κόστους
ΠΜΣ: «Παραγωγή και ιαχείριση Ενέργειας» ιαχείριση Ενέργειας και ιοίκηση Έργων Ανάλυση Χρόνου, Πόρων & Κόστους Επ. Καθηγητής Χάρης ούκας, Καθηγητής Ιωάννης Ψαρράς Εργαστήριο Συστημάτων Αποφάσεων & ιοίκησης
Διαβάστε περισσότεραΠρόβλημα 37 / σελίδα 207
Πρόβλημα 37 / σελίδα 207 2.5. Ôåóô áõôïáîéïëüãçóçò Δίνονται οι παρακάτω ομάδες προτάσεων. Σε κάθε μία από αυτές, να κάνετε τις απαραίτητες διορθώσεις ώστε να ισχύουν οι προτάσεις 1. Η αναπαράσταση
Διαβάστε περισσότεραΧρονικός Προγραμματισμός Έργων Project Scheduling. Κέντρο Εκπαίδευσης ΕΤΕΚ 69 Δρ. Σ. Χριστοδούλου και Δρ. Α. Ρουμπούτσου
Χρονικός Προγραμματισμός Έργων Project Scheduling Κέντρο Εκπαίδευσης ΕΤΕΚ 69 Δρ. Σ. Χριστοδούλου και Δρ. Α. Ρουμπούτσου Χρονοδιαγράμματα Έργων Διαδικασία Κτίζοντας το Πρόγραμμα Έργου 1. Κατανόηση έργου/προδιαγραφών
Διαβάστε περισσότεραΠοσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος
Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΠληροφοριακά Συστήματα. Προγραμματισμός έργων Η μέθοδος CPM
Πληροφοριακά Συστήματα Διοίκησης Προγραμματισμός έργων Η μέθοδος CPM Προγραμματισμός έργων Ασχολείται με τον βέλτιστο προγραμματισμό περίπλοκων έργων, ώστε να επιτευχθούν στόχοι σε σχέση με: τον χρόνο
Διαβάστε περισσότεραΕνότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών
ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές
Διαβάστε περισσότεραΤμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD
Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επανάληψης Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επανάληψης Επανάληψη με αρίθμηση DO = ,
Διαβάστε περισσότεραΠληροφορική 2. Τεχνολογία Λογισμικού
Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού
Διαβάστε περισσότεραπεριεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης
Περιπτώσεις Χρήσης περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης περιπτώσεις χρήσης Τι θα κάνει το λογισμικό για κάποιον
Διαβάστε περισσότεραQ 12. c 3 Q 23. h 12 + h 23 + h 31 = 0 (6)
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Πολιτικών Μηχανικών Τοµέας Υδατικών Πόρων Μάθηµα: Τυπικά Υδραυλικά Έργα Μέρος 2: ίκτυα διανοµής Άσκηση E0: Μαθηµατική διατύπωση µοντέλου επίλυσης απλού δικτύου διανοµής
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Καθηγητής Πληροφορικής ΠΕ19 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 6 ο : ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ Η έννοια του προγράμματος
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 9 ο
Γιώργος Δημητρίου Μάθημα 9 ο Ενδιάμεσος Κώδικας Απεικόνιση ανάμεσα στον αρχικό και στον τελικό κώδικα Γραμμικές αναπαραστάσεις: Ενδιάμεσος κώδικας πλησιέστερα στον τελικό ευκολότερη παραγωγή τελικού κώδικα
Διαβάστε περισσότεραΓραμμικός Προγραμματισμός Μέθοδος Simplex
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επιχειρησιακή Έρευνα Γραμμικός Προγραμματισμός Μέθοδος Simplex Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου Περιεχόμενα Παρουσίασης 1. Πρότυπη Μορφή ΓΠ 2. Πινακοποίηση
Διαβάστε περισσότεραΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos
ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ Γ Λυκείου Κατεύθυνσης Mike Trimos Βήματα Ανάπτυξης ενός Συστήματος 1.Ορισμός και κατανόηση του προβλήματος 2.Ανάλυση του προβλήματος 3.Σχεδιασμός Αλγοριθμικής Λύσης 4.Κωδικοποίηση 5.Διόρθωση
Διαβάστε περισσότεραΤεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/
Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας
Διαβάστε περισσότεραΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ 1. Έστω ότι ο καθηγητής σας δίνει δύο αριθμούς και σας ζητάει να του πείτε πόσο είναι το άθροισμά τους. Διατυπώστε
Διαβάστε περισσότεραΑδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)
Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Εισαγωγή Μοντέλο συστήματος Χαρακτηρισμός και ορισμός κατάστασης αδιεξόδου Μέθοδοι χειρισμού αδιεξόδων Αποτροπή αδιεξόδου (Deadlock Prevention) Αποφυγή
Διαβάστε περισσότερα2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ
2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,
Διαβάστε περισσότερα8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα
Περιεχόμενα Πρόλογος... 9 Κεφάλαιο 1: Δομή και λειτουργία του υπολογιστή... 11 Κεφάλαιο 2: Χρήση Λ.Σ. DOS και Windows... 19 Κεφάλαιο 3: Δίκτυα Υπολογιστών και Επικοινωνίας... 27 Κεφάλαιο 4: Unix... 37
Διαβάστε περισσότεραΜεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 1 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Γιώργος Δημητρίου Μάθημα 1 ο Γλώσσα - Μετάφραση Γλώσσα προγραμματισμού = Αναπαράσταση αλγορίθμων Ευκολία χρήσης Ακρίβεια και πληρότητα περιγραφής, όχι διφορούμενη! Μία περιγραφή για όλες τις μηχανές Μετάφραση
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ
ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ 2.1 Εισαγωγή Η μέθοδος που θα χρησιμοποιηθεί για να προσομοιωθεί ένα σύστημα έχει άμεση σχέση με το μοντέλο που δημιουργήθηκε για το σύστημα. Αυτό ισχύει και
Διαβάστε περισσότεραΚεφάλαιο 5. Λογικά κυκλώματα
Κεφάλαιο 5 Λογικά κυκλώματα 5.1 Εισαγωγή Κάθε συνάρτηση boole αντιστοιχεί σε έναν και μοναδικό πίνακα αλήθειας. Εάν όμως χρησιμοποιήσουμε τα γραφικά σύμβολα των πράξεων, μπορούμε για κάθε συνάρτηση που
Διαβάστε περισσότεραJ-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου
J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,
Διαβάστε περισσότεραΠρόβλημα 29 / σελίδα 28
Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους
Διαβάστε περισσότερα