Software oftware Engineering 5 th

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

Download "Software oftware Engineering 5 th"

Transcript

1 Ian Sommerville s Software oftware Engineering 5 th th edition Παρουσίαση κεφαλαίων 18, 19, 20 ηµήτρης Καλαµαράς Α.Μ

2 1. Αξιοπιστία Λογισµικού (ΑΛ) Στόχοι του κεφαλαίου Εισαγωγή έννοιας αξιοπιστίας. Προβλήµατα καθορισµού και µέτρησης της αξιοπιστίας Περιγραφή µετρικών αξιοπιστίας που χρησιµοποιούνται στην ποσοτικοποίηση της αξιοπιστίας Περιγραφή της διαδικασίας στατιστικού ελέγχου για την αποτίµηση της αξιοπιστίας Επίδειξη του πως µπορούµε να βγάλουµε συµπεράσµατα για την αξιοπιστία από τα αποτελέσµατα στατιστικού ελέγχου ηµήτρης Καλαµαράς 2

3 1.1 Τι είναι η ΑΛ; Η αξιοπιστία είναι το πιο σηµαντικό ζητούµενο χαρακτηριστικό κάθε λογισµικού Άτυπα, η ΑΛ είναι το µέτρο του πόσο καλά νοµίζουν οι χρήστες του συστήµατος ότι τους παρέχει τις υπηρεσίες που απαιτούν Τυπικά, η ΑΛ συνήθως ορίζεται ως η πιθανότητα για ελεύθερη από αποτυχίες λειτουργία για καθορισµένο χρόνο σε ένα καθορισµένο πλαίσιο για ένα δεδοµένο σκοπό Παράδειγµα: Λογισµικού αεροπλάνου, αξιόπιστο κατά 99.99% σε µια µέση πτήση 5 ωρών σηµαίνει ότι πιθανή βλάβη θα υπάρξει 1 φορά στις πτήσεις Ο ορισµός της ΑΛ συνεπάγεται διαφορετικά πράγµατα που εξαρτώνται από το σύστηµα και τους χρήστες του ηµήτρης Καλαµαράς 3

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

5 2.1 Αποτυχίες και σφάλµατα Η ΑΛ είναι µια συνάρτηση του πλήθους των αποτυχιών του λογισµικού που έγιναν αντιληπτές από ένα χρήστη του. Μια ια αποτυχία είναι η κατάσταση κατά την οποία το λογισµικό δεν παρέχει την αναµενόµενη από τον χρήστη υπηρεσία κατά την διάρκεια εκτέλεσης του Ένα να σφάλµα µπορεί να είναι ένα προγραµµατιστικό ή σχεδιαστικό λάθος στο λογισµικό (όταν δεν συµφωνεί µε τις προδιαγραφές του) ή λάθος στις προδιαγραφές ή στην τεκµηρίωση του λογισµικού που προκαλεί την εµφάνιση µιας αποτυχίας. Άρα τα σφάλµατα είναι στατικά και είναι χαρακτηριστικά του κώδικα Όµως µως τα σφάλµατα δεν προκαλούν απαραίτητα αποτυχίες. Αυτό συµβαίνει µόνο όταν χρησιµοποιηθεί το εσφαλµένο κοµµάτι του λογισµικού. ηµήτρης Καλαµαράς 5

6 2.2 Παράδειγµα: Αντιστοίχηση Εισόδου/Εξόδου Input $ Input causing a system failure Program Erroneous output Output Λ ηµήτρης Καλαµαράς 6

7 3.1 Βελτίωση ΑΛ Η ΑΛ σχετίζεται λοιπόν µε την πιθανότητα εµφάνισης λάθους κατά την χρήση Η αφαίρεση x% % των σφαλµάτων δεν οδηγεί απαραίτητα σε βελτίωση της αξιοπιστίας κατά x% Για παράδειγµα, σε µια µελέτη η αφαίρεση του 60% των σφαλµάτων οδήγησε σε βελτίωση της αξιοπιστίας µόνο κατά 3% Η ΑΛ δεν βελτιώνεται σηµαντικά παρά µόνο όταν αφαιρούνται τα σφάλµατα που βρίσκονται στα πλέον χρησιµοποιούµενα µέρη του λογισµικού Ο κυριότερος στόχος πρέπει να είναι η αφαίρεση των σφαλµάτων που έχουν σοβαρές συνέπειες ηµήτρης Καλαµαράς 7

8 4.1 ΑΛ & τυπικές µέθοδοι Θεωρείται µερικές φορές ότι η χρήση τυπικών µεθόδων στην ανάπτυξη οδηγεί σε περισσότερο αξιόπιστα συστήµατα καθώς το σύστηµα θα ανταποκρίνεται στις προδιαγραφές του. Στο κεφ. 9, είδαµε πως η ανάπτυξη τυπικών προδιαγραφών οδηγεί σε µια λεπτοµερή ανάλυση του συστήµατος η οποία είναι χρήσιµη για την ανακάλυψη λαθών Παρόλα αυτά, µπορεί οι τυπικές µέθοδοι να µην βελτιώνουν πραγµατικά την αξιοπιστία ηµήτρης Καλαµαράς 8

9 4.2 ΑΛ & τυπικές µέθοδοι Αιτίες για τις οποίες οι τυπικές µέθοδοι µπορεί να µην εγγυώνται την ΑΛ στην πράξη: Οι προδιαγραφές µπορεί να µην ανταποκρίνονται στις πραγµατικές απαιτήσεις των χρηστών. Μπορεί οι αποτυχίες να είναι συνέπειες λαθών στις προδιαγραφές που οι τυπικές µέθοδοι δεν δύνανται να βρουν. Ή οι τυπικές προδιαγραφές µπορεί να κρύβουν τα προβλήµατα διότι οι χρήστες δεν τις κατανοούν Οι αποδείξεις προγραµµάτων µπορεί να περιέχουν λάθη, λόγω µεγέθους και πολυπλοκότητας Η απόδειξη µπορεί να περιέχει υποθέσεις για το περιβάλλον και τη χρήση του συστήµατος που είναι λανθασµένες, όπου η απόδειξη ακυρώνεται στην πράξη ηµήτρης Καλαµαράς 9

10 5.1 ΑΛ & αποδοτικότητα Το τίµηµα για την αύξηση της ΑΛ είναι η αποδοτικότητα του συστήµατος που µειώνεται Γιατί, το αξιόπιστο λογισµικό πρέπει να συµπεριλαµβάνει πλεονάζων κώδικα προκειµένου να γίνονται έλεγχοι κτλ. Αυτό µειώνει την ταχύτητα εκτέλεσης του προγράµµατος και αυξάνει συνήθως τον ζητούµενο χώρο αποθήκευσης ηµήτρης Καλαµαράς 10

11 5.2 ΑΛ & αποδοτικότητα Λόγοι για τους οποίους η αξιοπιστία είναι συνήθως σηµαντικότερη από την αποδοτικότητα: Οι υπολογιστές είναι φτηνοί και γρήγοροι, άρα µπορούµε να βασιστούµε κάπως στην ταχύτητα των Η/Υ για την αποδοτικότητα Το µη αξιόπιστο λογισµικό δεν προτιµάται από τους χρήστες Το κόστος της αποτυχίας του λογισµικού µπορεί να είναι µεγάλο και συχνά υπερβαίνει το κόστος του λογισµικού Τα αναξιόπιστα συστήµατα είναι δύσκολο να βελτιωθούν ηµήτρης Καλαµαράς 11

12 6.1 Μετρικές αξιοπιστίας Πρόκειται για µεγέθη είτε πιθανοθεωρητικά είτε χρονικά που προδιαγράφουν την ΑΛ Προέρχονται από τις µετρικές hardware Οι µονάδες χρόνου για τις µετρικές αξιοπιστίας θα πρέπει να επιλέγονται προσεκτικά. εν είναι ίδιες για όλα τα συστήµατα Απλός χρόνος εκτέλεσης (για συνεχούς-λειτουργίας συστήµατα) Ηµερολογιακός χρόνος (για συστήµατα που έχουν ένα τακτικό πρόγραµµα χρήσης, π.χ. Μια φορά την ηµέρα) Αριθµός πράξεων (για συστήµατα που χρησιµοποιούνται κατ αίτηση) ηµήτρης Καλαµαράς 12

13 6.2 Είδη Μετρικών αξιοπιστίας Πιθανότητα αποτυχίας σε αίτηση (ΠΑΑ): Είναι το µέτρο της πιθανότητας να αποτύχει το σύστηµα όταν γίνεται µια αίτηση για µια υπηρεσία ΠΑΑ=0.001 σηµαίνει ότι 1 στις 1000 αιτήσεις για υπηρεσία θα οδηγήσουν σε αποτυχία Η µετρική αυτή είναι χρήσιµη σε κριτικής ασφάλειας ή αδιάκοπης λειτουργίας συστήµατα Γίνεται µε µέτρηση του αριθµού των αποτυχιών για έναν αριθµό δεδοµένων εισόδου ηµήτρης Καλαµαράς 13

14 6.3 Είδη Μετρικών αξιοπιστίας Ρυθµός εµφάνισης αποτυχίας (ΡΕΑ) Είναι η συχνότητα εµφάνισης αναπάντεχης συµπεριφοράς ΡΕΑ=0.02 σηµαίνει ότι είναι πιθανόν να συµβούν 2 σφάλµατα σε 100 µονάδες χρόνου λειτουργίας Είναι χρήσιµη για λειτουργικά συστήµατα, συστήµατα διενέργειας πράξεων κτλ Με µέτρηση του χρόνου ή αριθµού πράξεων µεταξύ δύο αποτυχιών ηµήτρης Καλαµαράς 14

15 6.4 Είδη Μετρικών αξιοπιστίας Μέσος χρόνος µέχρι αποτυχία (ΜΧΑ) Μέτρο του χρόνου µεταξύ δύο παρατηρούµενων αποτυχιών ΜΧΑ=500 σηµαίνει ότι ο χρόνος µεταξύ δύο αποτυχιών είναι κατά µέσο όρο 500 µ. Χρόνου Χρήσιµη σε συστήµατα όπου ο χρόνος είναι σηµαντικός π.χ. CAD systems* Με µέτρηση του χρόνου ή αριθµού πράξεων µεταξύ δύο αποτυχιών ηµήτρης Καλαµαράς 15

16 6.5 Είδη Μετρικών αξιοπιστίας ιαθεσιµότητα ( ΙΑ) Μέτρο του πόσο συχνά είναι διαθέσιµο το σύστηµα. Λαµβάνει υπόψη το χρόνο επισκευής/επανεκκίνησης ΙΑ=0.998 σηµαίνει ότι στις 998 από τις 1000 µ. χρόνου το λογισµικό είναι διαθέσιµο. Χρήσιµο για συστήµατα που λειτουργούν συνεχώς, π.χ. Τηλεφωνικά κέντρα Μέτρηση χρόνου επανεκκίνησης µετά από αποτυχία ηµήτρης Καλαµαράς 16

17 6.6 Μετρικές & συνέπειες αποτυχίας Οι µετρικές αξιοπιστίας βασίζονται όλες στην πιθανότητα µιας αποτυχίας αλλά δεν λαµβάνουν υπόψη τις συνέπειες µιας αποτυχίας Κάποια σφάλµατα τα οποία είναι παροδικά µπορεί να µην έχουν πραγµατικές συνέπειες ενώ άλλα σφάλµατα µπορεί να προκαλέσουν απώλεια δεδοµένων ή της ίδιας της λειτουργίας του συστήµατος Έτσι όταν καθορίζουµε την ΑΛ είναι απαραίτητες διαφορετικές µετρικές για διαφορετικές κλάσεις αποτυχιών ηµήτρης Καλαµαράς 17

18 7.1 Ταξινόµηση αποτυχιών Μόνιµη ΑΠΟΤΥΧΙΑ Παροδική Ανακτήσιµη Μη-ανακτήσιµη Μη-καταστροφική Καταστροφική ΚΛΑΣΗ Συµβαίνει µόνο µε συγκεκριµένη είσοδο Συµβαίνει µε όλες τις εισόδους Το σύστηµα επανέρχεται από µόνο του Η επέµβαση του χρήστη είναι απαραίτητη για την την ανάνηψη από την αποτυχία εν καταστρέφει δεδοµένα ή την κατάσταση του συστήµατος Καταστρέφει δεδοµένα ή την κατάσταση του συστήµατος ηµήτρης Καλαµαράς 18

19 7.2 Βήµατα για προδιαγραφές αξιοπιστίας σε ένα σύστηµα Για κάθε υπο-σύστηµα, ανάλυσε τις συνέπειες των πιθανών αποτυχιών Από την ανάλυση των αποτυχιών του συστήµατος, διαµέρισε τις αποτυχίες σε κατάλληλες κλάσεις Για κάθε µια κλάση που ταυτοποιείται, περιέγραψε την αξιοπιστία χρησιµοποιώντας την κατάλληλη µετρική. ιαφορετικές µετρικές µπορούν να χρησιµοποιηθούν για διαφορετικές απαιτήσεις αξιοπιστίας. ηµήτρης Καλαµαράς 19

20 7.3 Παράδειγµα σε ΑΤΜ Κάθε ΑΤΜ σε ένα δίκτυο χρησιµοποιείται 300 φορές την ηµέρα Ο κύκλος ζωής του λογισµικού είναι 2 χρόνια Κάθε ΑΤΜ χειρίζεται περίπου πράξεις στα δύο χρόνια της ζωής του λογισµικού του Η τράπεζα έχει συνολικα 1000 ΑΤΜ Περίπου πράξεις Β γίνονται συνολικά την ηµέρα σε όλο το δίκτυο ηµήτρης Καλαµαράς 20

21 7.4 ΑΤΜ: Ταξινόµηση αποτυχιών - πιθανών προδιαγραφών αξιοπιστίας Κλάση Παράδειγµα Μετρική Αξιοπιστίας Μόνιµη, µη καταστρεπτική Παροδική, µη καταστρεπτική Παροδική, καταστρεπτική Το σύστηµα αποτυγχάνει να λειτουργήσει µε κάθε κάρτα. Επανεκκίνηση Η µαγνητική ταινία δεν µπορεί να αναγνωστεί ή προβληµατική κάρτα Ένα σχέδιο πράξεων σε όλο το δίκτυο προκαλεί καταστροφή στη Β ΡΕΑ 1 ανά 1000 µέρες=3 χρόνια ΠΑΑ 1 ανά 1000 πράξεις Μη µετρήσιµη δεν πρέπει να συµβεί ποτέ στη ζωή ενός συστήµατος ηµήτρης Καλαµαράς 21

22 7.5 ΑΤΜ: Επικύρωση προδιαγραφής ΑΛ Ιδεατά, αποτυχίες της τρίτης κλάσης δεν θα έπρεπε να συµβαίνουν. Μη καταστροφή της Β σηµαίνει απαίτηση αξιοπιστίας ΠΑΑ < 1 / 200 εκατοµµύρια (όλος ο χρόνος ζωής του λογ) Όµως, είναι αδύνατο να επικυρώσουµε εµπειρικά τόσο υψηλές προδιαγραφές αξιοπιστίας Εάν µια πράξη γίνεται σε ένα δευτερόλεπτο, τότε η προσοµείωση µιας ηµέρας πράξεων θα απαιτούσε 3.5 ηµέρες. Ότι και να κάνουµε είναι δύσκολο να επικυρώσουµε αυτήν την προδιαγ.. αξιοπιστίας Επιπλέον, η αύξηση στην ΑΛ, η ανάπτυξη και επικύρωση µιας προδιαγραφής ΑΛ, συνεπάγεται συνήθως εκθετική αύξηση στο κόστος του λογισµικού. ηµήτρης Καλαµαράς 22

23 Το κόστος της αυξανόµενης ΑΛ Cost Low Mediu m High Αξιοπιστία Very High Very Very ηµήτρης Καλαµαράς 23

24 8.1 Στατιστικός έλεγχος Είναι η διαδικασία ελέγχου του λογισµικού για την µέτρηση της αξιοπιστίας του παρά για ανίχνευση σφαλµάτων Χρησιµοποιούνται δοκιµ.. δεδοµένα, η επιλογή των οποίων θα πρέπει να ακολουθεί την προβλεπόµενη χρήση του λογισµικού Μπορεί να συνδυαστεί µε την µοντελοποίηση ανάπτυξης ΑΛ. Μπορούν να γίνουν προβλέψεις της ΑΛ και του πότε θα επιτευχθεί και καθώς ανακαλύπτονται & διορθώνονται τα σφάλµατα η ΑΛ θα βελτιώνεται κατά την διάρκεια του ελέγχου Πρέπει να καθορίζεται ένα αποδεκτό επίπεδο αξιοπιστίας και το λογισµικό να ελέγχεται και να τροποποιείται µέχρι να πετύχει αυτό το επίπεδο. ηµήτρης Καλαµαράς 24

25 8.2 ιαδικασία στατιστικού ελέγχου Προσδιορισµός του επιχειρησιακού προφιλ του λογισµικού ηµιουργία ενός δοκιµαστικού συνόλου δεδοµένων που να αντιστοιχούν σε αυτό το προφίλ Εφαρµογή δοκιµών, π.χ. µε µέτρηση του χρόνου εκτέλεσης που µεσολαβεί µεταξύ αποτυχιών (προσοχή στις µονάδες) Μετά από ένα στατιστικά έγκυρο αριθµό δοκιµών µετράται η αξιοπιστία (µετρικές) ηµήτρης Καλαµαράς 25

26 8.3 υσκολίες στατιστικού ελέγχου Αβεβαιότητα στο επιχειρησιακό προφιλ Ιδιαίτερα για νέα συστήµατα που δεν έχουν επιχειρησιακή ιστορία. Μεγάλο κόστος δηµιουργίας του επιχειρησιακού προφιλ Το κόστος εξαρτάται από τις πληροφορίες περί τη χρήση που συλλέγονται από τον οργανισµό που θέλει το προφιλ Στατιστική αβεβαιότητα όταν απαιτείται υψηλή αξιοπιστία ύσκολο να εκτιµηθεί ο βαθµός εµπιστοσύνης στο επιχειρησιακό προφίλ Ο τρόπος χρήσης του λογισµικού µπορεί να αλλάξει µε την πάροδο του χρόνου. ηµήτρης Καλαµαράς 26

27 8.4 Ένα επιχειρησιακό προφιλ Number Of Input Data Input Classes ηµήτρης Καλαµαράς 27

28 8.5 Παραγωγή επιχειρησιακού προφιλ Ο στατ.. έλεγχος βασίζεται στην χρήση µεγάλου αριθµού δοκ.. εδοµένων. Βασίζεται στην παραδοχή ότι µόνο ένα µικρό µέρος αυτών µπορεί να προκαλέσει αποτυχία. Ο καλύτερος τρόπος παραγωγής δδ,, όταν είναι δυνατό, είναι µια γεννήτρια τυχαίων δδ (αυτόµατη παραγωγή προφίλ) Η αυτόµατη παραγωγή προφιλ είναι δύσκολη για αλληλεπιδραστικά συστήµατα Μπορεί να είναι άµεση για «κανονικές» εισόδους αλλά είναι δύσκολο να προβλεφθούν «απίθανες» είσοδοι και να παραχθούν δοκιµαστικά δεδοµένα για αυτές. ηµήτρης Καλαµαράς 28

29 9.1 Μοντελοποίηση αύξησης αξιοπιστίας Κατά την επικύρωση του λογισµικού είναι σηµαντικό να προβλέψουµε το πότε έχει επιτευχθεί το επιθυµητό επίπεδο ΑΛ και να σταµατήσουµε την επικύρωση-τεστάρισµα (λόγοι κόστους) Το µοντέλο αύξησης είναι είναι µαθηµατικό µοντέλο της ΑΛ που προβλέπει πως η ΑΛ θα βελτιώνεται µε το χρόνο καθώς το λογισµικό ελέγχεται και αποµακρύνονται τα σφάλµατα Έχουν προταθεί πολλά µοντέλα αύξησης της αξιοπιστίας Το απλούστερο είναι το step function,, όπου η αξιοπιστία θεωρείται πως αυξάνεται µε κάθε εύρεση σφάλµατος Το µοντέλο Littlewood&Verral (σχήµα) προσπαθεί να λύσει τα προβλήµατα των προηγούµενων εν είναι όλες οι επιδιορθώσεις ίδιου αντίκτυπου στην αξιοπιστία Κάποια επιδιόρθωση µπορεί να έχει αρνητικό αποτέλεσµα Καθώς τα σφάλµατα επιδιορθώνονται η µέση αύξηση αξιοπιστίας ανα σφάλµα µειώνεται, διότι τα πιο πιθανά σφάλµατα ανακαλύπτονται ενωρίς! ηµήτρης Καλαµαράς 29

30 9.2 Μοντέλο ανάπτυξης αξιοπιστίας πολλαπλών βηµάτων Reliability ROCOF Reliability Increases Wrong repairs Causing increase in ROCOF t1 t2 t3 t4 t5 Time ηµήτρης Καλαµαράς 30

31 9.3 Επιλογή µοντέλων ανάπτυξης εν υπάρχει µοντέλο που να εφαρµόζεται σε όλες τις περιπτώσεις, εξαρτάται από το πεδίο της εφαρµογής Για την πρόβλεψη της ΑΛ, τα παρατηρούµενα δεδοµένα θα πρέπει να χρησιµοποιούνται σε διαφορετικά µοντέλα ανάπτυξης Το µοντέλο που ταιριάζει καλύτερα θα πρέπει να χρησιµοποιείται για την πρόβλεψη της αξιοπιστίας ηµήτρης Καλαµαράς 31

32 9.4 Πρόβλεψη αξιοπιστίας Reliability = Measured reliability Fitted reliability model curve Required reliability Estimated Time time of reliability ηµήτρης Καλαµαράς achievement 32

33 1. Προγραµµατίζοντας για αξιοπιστία Στόχοι κεφαλαίου Περιγραφή προγραµµατιστικών τεχνικών για ανάπτυξη αξιόπιστων συστηµάτων Εξήγηση του πως αποφεύγουµε σφάλµατα µε ελαχιστοποίηση της χρήσης «κατασκευών που είναι επιρρεπείς σε λάθη» Εισαγωγή έννοιας λογισµικών ανεκτικών σε σφάλµατα και σχετικές µέθοδοι Επίδειξη του πως ο χειρισµός εξαιρέσεων µπορεί να χρησιµοποιηθεί στη δηµιουργία εύρωστων προγραµµάτων Περιγραφή αµυντικής προσέγγισης προγραµµατισµού, η οποία σκοπεύει στην ανίχνευση σφαλµάτων και στο ότι δεν οδηγούν αυτά σε αποτυχία του συστήµατος ηµήτρης Καλαµαράς 33

34 1.1 Το rationale των τεχνικών που θα συζητηθούν Εν γένει, οι τελικοί χρήστες ενός λογισµικού αναµένουν να είναι αξιόπιστο. Βελτιωµένες προγραµµατιστικές τεχνικές, καλύτερες γλώσσες και καλύτερη διαχείριση στην ποιότητα έχουν οδηγήσει σε σηµαντική αύξηση αξιοπιστίας στα περισσότερα συστήµατα Όµως, κάποιες εφαρµογές, π.χ. αυτά που ελέγχουν µηχανήµατα που δεν παρακολουθούνται, έχουν ειδικές απαιτήσεις υψηλής αξιοπιστίας και τότε πρέπει να χρησιµοποιηθούν ειδικές προγραµµατιστικές τεχνικές για να επιτευχθούν αυτές. ηµήτρης Καλαµαράς 34

35 1.2 Επίτευξη αξιοπιστίας Η ΑΛ σε τέτοια συστήµατα µπορεί να επιτευχθεί µε τρεις συµπληρωµατικές στρατηγικές: Αποφυγή σφαλµάτων Η πιο σηµαντική & εφαρµόσιµη! Το λογισµικό σχεδιάζεται & υλοποιείται µε τρόπο τέτοιο ώστε να µην περιέχει σφάλµατα στον κώδικα Αντοχή σε σφάλµατα Η στρατηγική υποθέτει ότι το τελικό προϊόν θα έχει σφάλµατα και παρέχει στο λογισµικό µηχανισµούς ώστε να συνεχίσει την λειτουργία του όταν τα σφάλµατα αυτά οδηγούν σε αποτυχία - Εντοπισµός σφαλµάτων * (στο 22ο κεφάλαιο) Η διαδικασία ανάπτυξης & επικύρωσης οργανώνεται έτσι ώστε τα σφάλµατα να εντοπίζονται και να επιδιορθώνονται πριν από την παράδοση στον τελικό πελάτη ηµήτρης Καλαµαράς 35

36 2.1 Αποφυγή σφαλµάτων (ΑΣ) Μια καλή διαδικασία ανάπτυξης λογισµικού πρέπει να προσανατολίζεται στην ΑΣ παρά στον εντοπισµό. Ως λογισµικό ελεύθερο από σφάλµατα εννοούµε στην ουσία εκείνο το λογισµικό που ανταποκρίνεται στις προδιαγραφές του. Όµως δεν σηµαίνει λογισµικό που πάντα εκτελείται σωστά αφού π.χ. µπορεί να υπάρχουν λάθη στις προδιαγραφές ή να µην ανταποκρίνονται στις ανάγκες του χρήστη Το κόστος παραγωγής τέτοιου λογισµικού είναι πολύ υψηλό. Μπορεί τότε να είναι φτηνότερο να αποδεχτούµε κάποια σφάλµατα στο λογισµικό ηµήτρης Καλαµαράς 36

37 2.2 Κόστος αποµάκρυνση σφαλµάτων Cost / Removed fault Very Few Few Remaining Errors Many ηµήτρης Καλαµαράς 37

38 2.3 Που βασίζεται η ΑΣ Τι απαιτείται για ανάπτυξη λογισµικού ελεύθερου από σφάλµατα Ακριβείς, προτιµότερα τυπικές, προδιαγραφές λογισµικού Υιοθέτηση οργανωτικής φιλοσοφίας ποιότητας, όπου η ποιότητα να είναι οδηγός στην υλοποίηση Υιοθέτηση µιας προσέγγισης στον σχεδιασµό και υλοποίηση που να βασίζεται στην απόκρυψη πληροφορίας και τη συµπύκνωση* (encapsulation) και ενθαρρύνει ευ-αναγνώσιµα προγράµµατα Θα πρέπει να χρησιµοποιείται µια γλώσσα που απαιτεί αυστηρότητα στο γράψιµο κώδικα έτσι ώστε τα πιθανά λάθη να εντοπίζονται και από τον compiler Περιορισµούς στην χρήση προγραµµατιστικών κατασκευών όπως οι δείκτες που είναι επιρρεπείς στα λάθη. Προσεκτικός και εκτεταµένος έλεγχος του συστήµατος ηµήτρης Καλαµαράς 38

39 2.4 ΑΣ & C++ Η ΑΣ σε λογισµικό µε γλώσσες χαµηλού επιπέδου είναι σχεδόν αδύνατη. Σε strongly-typed typed γλώσσες, π.χ. Ada, C++, ο compiler µπορεί να βρει κάποια σφάλµατα πριν από την εκτέλεση του προγραµµατισµού Ο ίδιος προτιµά την Ada, αλλά η C++ χρησιµοποιείται όλο και ευρύτερα για ανάπτυξη. Συνδυάζει την αποτελεσµατικότητα µιας χαµηλού επιπέδου γλώσσας µε δοµές αντικειµενοστραφούς προγραµµατισµού. ιαθέτει καλύτερο έλεγχο τύπων από την C αλλά όχι τόσο όσο η Ada.. Μειονέκτηµα: είναι σχεδόν αδύνατο να γραφτεί αποτελεσµατικό πρόγραµµα χωρίς την χρήση δεικτών, που όπως ελέχθη πρότερα είναι επιρρεπείς σε λάθη. ηµήτρης Καλαµαράς 39

40 2.5 οµηµένος προγραµµατισµός οµές επιρρεπείς σε σφάλµατα, που θα πρέπει να αποφεύγετε* για πρόγραµµα ελεύθερο από σφάλµατα: GOTOs Αριθµοί κινητής υποδιαστολής Εµφύτως ανακριβείς. Π.χ. η ανακρίβεια µπορεί να οδηγήσει σε λάθος συγκρίσεις είκτες Οι δείκτες που αναφέρονται σε λάθος περιοχές µνήµης µπορεί να καταστρέψουν δεδοµένα. Άλλο πρόβληµα τους το aliasing, µπορεί να κάνουν τα προγράµµατα δύσκολα στην κατανόηση και αλλαγή. υναµική εκχώρηση µνήµης Η κατά την λειτουργία εκχώρηση µνήµης µπορεί να προκαλέσει υπερχείλιση είλιση µνήµης Παράλληλος προγραµµατισµός Μπορεί να προκαλέσει πολύπλοκα προβλήµατα χρονισµού λόγω απρόβλεπτων αλληλεπιδράσεων µεταξύ των παράλληλων διεργασιών ηµήτρης Καλαµαράς 40

41 2.5.συνέχεια Αναδροµή Λάθη στην αναδροµή µπορεί να προκαλέσουν υπερχείλιση στην µνήµη. Είναι και δύσκολο να ακολουθηθεί η λογική τους ιακοπές ( (interrupts) Οι διακοπές µπορεί να προκαλέσουν µια κριτικής σηµασίας λειτουργία να τερµατιστεί και να κάνουν ένα πρόγραµµα δύσκολο στην κατανόηση. Συγκρίνονται µε τις εντολές GOTO * εν προτείνεται να µην χρησιµοποιούνται ποτέ οι παραπάνω δοµές, απλώς πρέπει να τους δίνεται ιδιαίτερη προσοχή. ηµήτρης Καλαµαράς 41

42 2.6 Απόκρυψη πληροφορίας Τα τµήµατα του προγράµµατος πρέπει να έχουν πρόσβαση µόνο στα δεδοµένα που τους είναι απαραίτητα για να λειτουργήσουν. Αυτό εµπλέκει την κατασκευή αντικειµένων ( (objects) objects) ή αφηρηµένων τύπων δεδοµένων (ADT)( που διατηρούν την κατάσταση και λειτουργίες σε αυτήν Έτσι αποφεύγουµε σφάλµατα για τρεις λόγους: Την πιθανότητα κατά τύχη καταστροφής πληροφορίας Η πληροφορία περιβάλλεται από firewalls έτσι ώστε τα τυχόν προβλήµατα είναι δύσκολο να διαδοθούν σε άλλα τµήµατα του προγράµµατος Καθώς η πληροφορία γίνεται τοπική, ο προγραµµατιστής είναι λιγότερο πιθανό να κάνει λάθη και οι testers είναι πιο εύκολο να τα ανακαλύψουν ηµήτρης Καλαµαράς 42

43 2.7 Κλάσεις Αντικειµένων και ADT Υλοποιούνται στην C++ σαν objects ενώ στην Ada σαν packages ADT & objects classes δεν είναι το ίδιο ακριβώς. Οι κλάσεις είναι σαν πρότυπα που χρησιµοποιούνται για την δηµιουργία αντικειµένων που έχουν λειτουργίες και ιδιότητες που ορίζονται στην κλάση Το όνοµα ορίζεται µέσα στο αντικείµενο ή ADT Οι λειτουργίες ορίζονται σαν procedures ή functions Η αναπαράσταση της δοµής ορίζεται στο private µέρος Οι κλάσεις & οι γενικές ADT µπορούν να παραµετροποιηθούν ηµήτρης Καλαµαράς 43

44 ήλωση κλάσης ουράς ακεραίων - C++ class Queue { public: Queue () ; ~Queue () ; void Put ( int x ) ; // adds an item to the queue int Remove () ; // this has side effect of changing the queue int Size( ) ; // returns number of elements in the queue private: int front, back ; int qvec [100] ; } ; ηµήτρης Καλαµαράς 44

45 2.8 Γενίκευση κλάσεων Η συµπεριφορά των αντικειµένων και ADTs που συντίθεται από άλλα αντικείµενα ή ADTs είναι συχνά ανεξάρτητη από το είδος των συνιστωσών τους Η γενίκευση είναι ένας τρόπος γραψίµατος γενικών, παραµετροποιηµένων ADTs και κλάσεων αντικειµένων που µπορούν να υλοποιηθούν αργότερα µε συγκεκριµένους τύπους. Τόσο η Ada όσο και η C++ διαθέτουν τέτοιες δυνατότητες. ηµήτρης Καλαµαράς 45

46 Γενικευµένη ουρά σε C++ template <class elem> class Queue { public: Queue ( int size = 100 ) ; // default to queue of size 100 elements ~Queue () ; void Put ( elem x ) ; elem Remove ( ) ; // this has side effect of changing queue int Size ( ) ; private: int front, back ; elem* qvec ; } ; ηµήτρης Καλαµαράς 46

47 2.9 Instantiation nstantiation γενικευµένης ADT Τα instants των γενικευµένων ADTs δηµιουργούνται κατά την ώρα του compile και όχι κατά την εκτέλεση και έτσι είναι εφικτός ο έλεγχος των τύπων //Assume List has been defined elsewhere as a type Queue <int> Int_queue (50) ; Queue <List> List_queue (200) ; ηµήτρης Καλαµαράς 47

48 3.1 Αντοχή σε σφάλµατα Σε καταστάσεις κρίσιµης σηµασίας, όπου η απώλεια λειτουργίας θα είναι καταστροφική, τα συστήµατα λογισµικού πρέπει να είναι ανεκτικά σε σφάλµατα Η αντοχή σε σφάλµατα σηµαίνει ότι το σύστηµα συνεχίζει να λειτουργεί παρά το γεγονός µιας αποτυχίας στο λογισµικό Ακόµη και εάν το σύστηµα είναι ελεύθερο από σφάλµατα, πρέπει να έχει επίσης αντοχή σε σφάλµατα καθώς µπορεί να υπάρχουν λάθη στις προδιαγραφές ή η επαλήθευση µπορεί να ήταν λανθασµένη. Fault-free σύστηµα δεν σηµαίνει Failure-free ηµήτρης Καλαµαράς 48

49 3.2 Ενέργειες λογισµικού για αντοχή σε σφάλµατα Ανίχνευση αποτυχίας Το σύστηµα πρέπει να εντοπίζει µια αποτυχία όταν αυτή συµβαίνει Αποτίµηση ζηµιάς Τα τµήµατα της κατάστασης συστήµατος που επηρεάζονται από την αποτυχία θα πρέπει να εντοπίζονται Ανάνηψη από σφάλµα Το σύστηµα θα πρέπει να επαναφέρει τον εαυτό του σε ασφαλή κατάσταση είτε µε forward είτε µε backward recovery ιόρθωση σφάλµατος Το σύστηµα µπορεί να τροποποιείται ώστε να αποτρέπεται η επανεµφάνιση του σφάλµατος. Καθώς πολλά σφάλµατα λογισµικού είναι παροδικά αυτό συνήθως είναι µη αναγκαίο. ηµήτρης Καλαµαράς 49

50 3.3 Πρόβλεψη αντοχής σε σφάλµατα ύο είναι οι βασικές προσεγγίσεις. Και οι δύο προέκυψαν από αντίστοιχα hardware µοντέλο όπου ένα στοιχείο ή και ολόκληρο το σύστηµα αντιγράφεται. Προγραµµατισµός ν-εκδόσεωνν Παράγεται ένας αριθµός διαφορετικών εκδόσεων του λογισµικού που όλες ακολουθούν τις ίδιες προδιαγραφές. Όλες οι εκδόσεις τίθενται ι σε ταυτόχρονη λειτουργία και επιλέγονται αυτές που δίνουν στην πλειοψηφία τους την ίδια έξοδο. Παράδειγµα εφαρµογής: Airbus A320. Μειονέκτηµα: δεν παρέχει αντοχή σε σφάλµατα όταν υπάρχουν λάθη στις προδιαγραφές Μπλοκ επαναφοράς Οι εκδόσεις τρέχουν σε ακολουθία. Επιλέγεται η έξοδος που επιτυγχάνει σε κάποιο «τεστ αποδοχής». Η αδυναµία της είναι ότι είναι δύσκολο ο να γραφτεί κατάλληλο τεστ. ηµήτρης Καλαµαράς 50

51 3.4 Προγραµµατισµός Ν-εκδόσεωνΝ Version 1 Version 2 Version 3 Output Comparator Agreed Result N-Versions- ηµήτρης Καλαµαράς 51

52 3.5 Προγραµµατισµός ν-εκδόσεωνν Οι διαφορετικές εκδόσεις του συστήµατος σχεδιάζονται και υλοποιούνται από διαφορετικές οµάδες. Θεωρείται έτσι ότι υπάρχει µικρή πιθανότητα να κάνουν τα ίδια λάθη Η εµπειρία όµως δείχνει το αντίθετο. Οι οµάδες παρανοούν τις προδιαγραφές µε τον ίδιο τρόπο και τελικά καταλήγουν να χρησιµοποιούν τους ίδιους αλγορίθµους στις εκδόσεις τους. ηµήτρης Καλαµαράς 52

53 3.6 Μπλοκ επαναφοράς Try algorithm 1 Algorithm 1 Test for success Acceptance test fails re-try Acceptance test Retest Retry Retest Continue execution if acceptance test succeeds Signal exception if all algorithms fail Algorithm 2 Algorithm 3 Recovery blocks ηµήτρης Καλαµαράς 53

54 3.7 Μπλοκ επαναφοράς Απαιτούν διαφορετικό αλγόριθµο να χρησιµοποιείται σε κάθε έκδοση ώστε να µειώνεται η πιθανότητα κοινών ή επαναλαµβανόµενων λαθών Όµως είναι δύσκολη η δηµιουργία κατάλληλου «τεστ αποδοχής» Ακόµη, όπως και στον προγραµµατισµό µε ν-ν εκδόσεις, η µέθοδος είναι ευάλωτη σε σφάλµατα που προέρχονται από τις προδιαγραφές ηµήτρης Καλαµαράς 54

55 4.1 Χειρισµός εξαιρέσεων Μια εξαίρεση σε ένα πρόγραµµα είναι είτε ένα λάθος ή κάποιο απροσδόκητο γεγονός, π.χ. πτώση τάσης Οι δοµές χειρισµού εξαιρέσεων επιτρέπουν την πρόβλεψη και αντιµετώπιση τέτοιων καταστάσεων χωρίς να είναι απαραίτητος ο συνεχής έλεγχος της τρέχουσας κατάστασης για τον εντοπισµό τέτοιων εξαιρέσεων Οι περισσότερες γλώσσες προγραµµατισµού δεν παρέχουν χειρισµό εξαιρέσεων, οπότε αν χρησιµοποιούµε κανονικές δοµές ελέγχου για την ανίχνευση εξαιρέσεων π.χ. σε µια ακολουθία nested κλήσεων υπο-ρουτινών οδηγούµαστε στην πρόσθεση πολλών επιπλέον δηλώσεων στο πρόγραµµα που µε τη σειρά τους προκαλούν αύξηση του χρόνου εκτέλεσης του προγράµµατος Η C++ παρέχει χειρισµό εξαιρέσεων. ηµήτρης Καλαµαράς 55

56 Παράδειγµα: nested proc. calls A B; B Call sequence C C; Exception return Exception occurrence ηµήτρης Καλαµαράς 56

57 4.2 Χειρισµός εξαιρέσεων στην C++ To keyword throw σηµαίνει την εµφάνιση µιας εξαίρεσης. Ο χειρισµός της εξαίρεσης γίνεται µέσω του keyword catch Οι εξαιρέσεις ορίζονται σαν κλάσεις ώστε να µπορούν να κληρονοµούν ιδιότητες από άλλες κλάσεις εξαιρέσεων Κανονικά, οι εξαιρέσεις αντιµετωπίζονται απόλυτα µέσα στο µπλοκ όπου εµφανίστηκαν, παρά να διαδίδονται µέσα στον υπόλοιπο κώδικα. Όλες οι εξαιρέσεις είναι καθοριζόµενες από τον χρήστη. εν υπάρχουν built-in in εξαιρέσεις. ηµήτρης Καλαµαράς 57

58 4.3 Παράδειγµα: Θερµοστάτης Ελέγχει ένα ψυγείο µε σκοπό την διατήρηση της θερµοκρασίας εντός συγκεκριµένων πλαισίων Ανοίγει/Κλείνει µια αντλία ψυκτικού υγρού Στέλνει ένα σήµα (alert)( εάν η µέγιστη προβλεπόµενη θερµοκρασία 18 ξεπεραστεί Χρησιµοποιεί εξωτερικές οντότητες: Pump, Temp_dial, Sensor, Alarm ηµήτρης Καλαµαράς 58

59 4.4 Θερµοστάτης void Control_freezer ( const float Danger_temp) { float Ambient_temp ; // try means exceptions will be handled in this block // Assume that Sensor, Temperature_dial and Pump are //objects which have been declared elsewhere try { while (true) { Ambient_temp = Sensor.Get_temperature () ; if (Ambient_temp > Temperature_dial.Setting () ) if (Pump.Status () == off) { Pump.Switch (on) ; Wait (Cooling_time) ; } else if (Pump.Status () == on) Pump.Switch (off) ; if ( Ambient_temp > Danger_temp ) throw Freezer_too_hot ( ) ; } // end of while loop } // end of exception handling try block // catch indicates the exception handling code. catch ( Freezer_too_hot ) Alarm.Activate () ; Software } Engineering ηµήτρης Καλαµαράς 59

60 5.1 Αµυντικός προγραµµατισµός Είναι µια προσέγγιση στην ανάπτυξη προγραµµάτων (fault-tolerant) tolerant) στην οποία θεωρείται ότι µπορεί να υπάρχουν σφάλµατα που δεν έχουν ανιχνευθεί Έτσι τέτοια προγράµµατα περιέχουν κώδικα ανίχνευσης και ανάνηψης από τέτοια σφάλµατα Οι τεχνικές που χρησιµοποιεί είναι θεµελιώδεις για την διαδικασία αντοχής σε σφάλµατα: Παρεµπόδιση αποτυχιών Αποτίµηση ζηµιάς Ανάνηψη από σφάλµα ηµήτρης Καλαµαράς 60

61 5.2 Παρεµπόδιση αποτυχιών Γλώσσες όπως η C++ επιτρέπουν τον εντοπισµό κατά την ώρα του compile πολλών πιθανά καταστροφικών σφαλµάτων λόγω strict type rules Επίσης, µια οµάδα πιθανών αποτυχιών µπορεί να εντοπίζεται είτε µε range checking είτε µε χειρισµό εξαιρέσεων την ώρα της εκτέλεσης του προγράµµατος Επιπλέον µπορούν να αναπτυχθούν κάποιες δηλώσεις κατάστασης ( (state assertions) και να συµπεριληφθούν στο πρόγραµµα, π.χ. λογικά κατηγορήµατα πάνω στις µεταβλητές κατάστασης του συστήµατος (κεφ. 9), αυτά ελέγχονται πριν από την ανάθεση σε αυτές τις µτβ και εάν θα προέκυπτε µια ανώµαλη τιµή για αυτήν την µτβλ τότε θα υπήρχε κάποιο λάθος ηµήτρης Καλαµαράς 61

62 5.3 Αποτίµηση ζηµιάς Η αποτίµηση ζηµιάς περιλαµβάνει ανάλυση της κατάστασης συστήµατος για την εκτίµηση της έκτασης της καταστροφής που προκλήθηκε από µια αποτυχία του Πρέπει να εκτιµάται το ποια τµήµατα της κατάστασης του λογισµικού έχουν επηρεαστεί από την αποτυχία Γενικά, βασίζονται σε validity functions,, δηλαδή συναρτήσεις που κατά κάποιο τρόπο εφαρµόζονται σε στοιχεία/µεταβλητές κατάστασης και αξιολογούν αν βρίσκονται εντός καθορισµένου εύρους ηµήτρης Καλαµαράς 62

63 5.4 Κλάση C++ µε αποτίµηση ζηµιάς template <class elem> class Robust_array { public: Robust_array (int size = 20) ; ~Robust_array () ; void Assign ( int Index, elem Val) ; elem Eval (int Index) ; // Damage assessment functions // Assess_damage takes a pointer to a function as a parameter // It sets the corresponding element of Checks if a problem is // detected by the function Test void Assess_damage ( void (*Test ) (boolean*)) ; boolean Eval_state (int Index) ; boolean Is_damaged () ; private: elem* Vals ; boolean* Checks ; } ; ηµήτρης Καλαµαράς 63

64 5.5 Τεχνικές αποτίµησης ζηµιάς Τεχνικές για εντοπισµό σφαλµάτων και αξιολόγησης της ζηµιάς: Checksums (τιµή που υπολογίζεται µε κάποια συνάρτηση από τα δεδοµένα από τον αποστολέα) στην µετάδοση δεδοµένων και έλεγχος ψηφίων στα αριθµητικά δεδοµένα Όταν χρησιµοποιούνται συνδεδεµένες δοµές δεδοµένων, µπορούν να συµπεριληφθούν επιπλέον «προς τα πίσω» δείκτες. Π.χ. για κάθε αναφορά από το Α στο Β, υπάρχει µια συγκρίσιµη αναφορά από το Β στο Α. Χρονοµετρητές για τον έλεγχο διεργασιών που δεν λένε να τελειώσουν. Π.χ. αν δεν υπάρχει απόκριση µετά από κάποιο διάστηµα θεωρείται ότι υπάρχει πρόβληµα ηµήτρης Καλαµαράς 64

65 5.6 Ανάνηψη από σφάλµα Γενικά είναι η διαδικασία τροποποίησης της κατάστασης του συστήµατος ώστε να ελαχιστοποιηθούν τα αποτελέσµατα ενός σφάλµατος. Έχουµε: Ανάνηψη προς τα εµπρός Προσπάθεια για επιδιόρθωση µιας καταστραµµένης κατάστασης συστήµατος Συνήθως είναι συγκεκριµένη για κάθε εφαρµογή. Απαιτείται πλήρης γνώση της κατάστασης για τον υπολογισµό πιθανών επιδιορθώσεων Ανάνηψη προς τα πίσω Επιστροφή σε µια πρότερη κατάσταση που ήταν ασφαλής Είναι πιο απλή. ιατηρούνται οι λεπτοµέρειες µιας προηγούµενης ασφαλούς κατάστασης συστήµατος και γίνεται προσπάθεια επιστροφής σε αυτή. ηµήτρης Καλαµαράς 65

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις. 1 Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) ηµήτριος Κατσαρός, Ph.D. Χειµώνας 2005 ιάλεξη 5η Ιστοσελίδα του µαθήµατος 2 http://skyblue.csd.auth.gr/~dimitris/courses/cpp_fall05.htm Θα

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

ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ

ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ Εισαγωγή Ηεµφάνιση ηλεκτρονικών υπολογιστών και λογισµικού σε εφαρµογές µε υψηλές απαιτήσεις αξιοπιστίας, όπως είναι διαστηµικά προγράµµατα, στρατιωτικές τηλεπικοινωνίες,

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

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 1.3-1.4: Εισαγωγή Στον Προγραµµατισµό ( ιάλεξη 2) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Περιεχόµενα Εισαγωγικές Έννοιες - Ορισµοί Ο κύκλος ανάπτυξης προγράµµατος Παραδείγµατα Πότε χρησιµοποιούµε υπολογιστή?

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

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

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

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η και ο στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Γενικές αρχές ανάλυσης και σχεδιασµού Τα βήµατα της ανάλυσης και του σχεδιασµού Συµπεράσµατα 2 3 Η ανάλυση

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

Ενότητα 3 (κεφάλαιο 16) Επαναχρησιμοποίηση Λογισμικού

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

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

Μοτίβα Σχεδίασης (Design Patterns)

Μοτίβα Σχεδίασης (Design Patterns) Ενότητα 6 Μοτίβα Σχεδίασης (Design Patterns) Ορισµοί βασικές έννοιες. Σηµαντικά µοτίβα σχεδίασης: Παρατηρητής (Observer). Πρόσοψη (Façade). Προσαρµογέας (Adapter). Πληρεξούσιος (Proxy). Μοναχοπαίδι (Singleton).

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

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

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

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

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

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

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

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

Τι είναι τα Συστήµατα Γεωγραφικών Πληροφοριών. (Geographical Information Systems GIS)

Τι είναι τα Συστήµατα Γεωγραφικών Πληροφοριών. (Geographical Information Systems GIS) Τι είναι τα Συστήµατα Γεωγραφικών Πληροφοριών (Geographical Information Systems GIS) ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ, ΤΜΗΜΑ ΓΕΩΓΡΑΦΙΑΣ ΧΑΛΚΙΑΣ ΧΡΙΣΤΟΣ Εισαγωγή στα GIS 1 Ορισµοί ΣΓΠ Ένα σύστηµα γεωγραφικών πληροφοριών

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

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

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

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

Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS)

Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS) Γεωγραφικά Πληροφοριακά Συστήµατα (Geographical Information Systems GIS) ρ. ΧΑΛΚΙΑΣ ΧΡΙΣΤΟΣ xalkias@hua.gr Χ. Χαλκιάς - Εισαγωγή στα GIS 1 Ορισµοί ΓΠΣ Ένα γεωγραφικό πληροφοριακό σύστηµα Geographic Information

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

Οι περιπτώσεις χρήσης

Οι περιπτώσεις χρήσης 1 Ελληνικό Ανοικτό Πανεπιστήµιο Οι περιπτώσεις χρήσης ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Το µοντέλο των περιπτώσεων χρήσης Τα διαγράµµατα των περιπτώσεων χρήσης Λεκτική περιγραφή των περιπτώσεων χρήσης Τρόπος

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

Κεφάλαιο 4ο: Εντολές επιλογής

Κεφάλαιο 4ο: Εντολές επιλογής Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 4ο: Εντολές επιλογής Μέχρι τώρα παρατηρήσαµε ότι τα προβλήµατα που αντιµετωπίσαµε είχαν σειριακή κίνηση, δηλαδή η µία εντολή

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

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός ΗΥ : Αντικειµενοστρεφής Προγραµµατισµός http://www.csd.uoc.gr/~hy Β. Χριστοφίδης christop@ics.forth.gr Τµήµα Επιστήµης Υπολογιστών, Πανεπιστήµιο Κρήτης Ηράκλειο Κρήτης Γενικές Πληροφορίες Ώρες ιδασκαλίας

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Εναλλακτικές Τεχνικές Εντοπισµού Θέσης Όνοµα: Κατερίνα Σπόντου Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο της διπλωµατικής Ο εντοπισµός

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

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

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

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

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran

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

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

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

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

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

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

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

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

Γενικό πλαίσιο. Software Evolution Monitor Requirements. Απόστολος Ζάρρας http://www.cs.uoi.gr/~zarras/se.htm

Γενικό πλαίσιο. Software Evolution Monitor Requirements. Απόστολος Ζάρρας http://www.cs.uoi.gr/~zarras/se.htm Software Evolution Monitor Requirements Απόστολος Ζάρρας http://www.cs.uoi.gr/~zarras/se.htm Γενικό πλαίσιο Γενικά, οι αποφάσεις που λαμβάνουμε και ο προγραμματισμός της όλης διαδικασίας συντήρησης ενός

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

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

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

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

ΠαράδειγµαΠρογραµµατισµού

ΠαράδειγµαΠρογραµµατισµού Προγραµµατισµός Η/Υ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Μεθοδολογία Προγραµµατισµού Αφαιρετικότητα Ροή Ελέγχου/ εδοµένων Βιβλίο µαθήµατος: Chapter 1,, Sec. 4-54 ΕΠΛ 131 Αρχές Προγραµµατισµού

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06. Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06. Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «Κατανεµηµένα Συστήµατα Αρχείων (1/2)» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Σύστηµα αρχείων Αποθήκευση, προσπέλαση και διαχείριση δεδοµένων

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

Αποµακρυσµένη κλήση διαδικασιών

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

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

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

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

6. Εισαγωγή στον προγραµµατισµό

6. Εισαγωγή στον προγραµµατισµό 6. Εισαγωγή στον προγραµµατισµό 6.1 Η έννοια του προγράµµατος. 6.2 Ιστορική αναδροµή. 6.2.1 Γλώσσες µηχανής. ΗΜ04-Θ1Α 1. Ένα πρόγραµµα σε γλώσσα µηχανής είναι µια ακολουθία δυαδικών ψηφίων. 5. Ένα πρόγραµµα

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

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

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

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

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

Ενότητα 8 (κεφάλαιο 21) Θεματοκεντρική Τεχνολογία Λογισμικού

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

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

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

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

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

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:

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

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Ανάλυση - Απόδοση Αλγορίθμων Έλεγχος Αλγορίθμων. Απόδοση Προγραμμάτων. Χωρική/Χρονική Πολυπλοκότητα. Ασυμπτωτικός Συμβολισμός. Παραδείγματα. Αλγόριθμοι: Βασικές Έννοιες

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

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

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

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1 Εισαγωγή Υλισµικό Λογισµικό Αρχές σχεδίασης ιαφάνεια Κλιµάκωση Παρεχόµενες υπηρεσίες Μοντέλο πελάτη εξυπηρετητή Μοντέλο πελάτη εξυπηρετητή τριών επιπέδων Κατανοµή επεξεργασίας Κατανεµηµένα Συστήµατα 01-1

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

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής ίκτυα Η/Υ Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα Μοντέλο TCP/IP πολλές πολλοί N A N B Ενότητα E PC A PC B PC D PC E E A E B

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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

(Διαφάνειες Νίκου Βιδάκη)

(Διαφάνειες Νίκου Βιδάκη) (Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό

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

SIMATIC MANAGER SIMATIC MANAGER

SIMATIC MANAGER SIMATIC MANAGER 1 Προγραμματισμός του PLC. 1. Γενικά Μια προσεκτική ματιά σε μια εγκατάσταση που θέλουμε να αυτοματοποιήσουμε, μας δείχνει ότι αυτή αποτελείται από επιμέρους τμήματα τα οποία είναι συνδεδεμένα μεταξύ τους

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Εικονική Μνήµη Κεφάλαιο 8 Υλικό και δοµές ελέγχου Οι αναφορές στην µνήµη υπολογίζονται δυναµικά κατά την εκτέλεση Ηδιεργασίαχωρίζεταισετµήµατα τα οποία δεν απαιτείται να καταλαµβάνουν συνεχόµενες θέσεις

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις

Επανάληψη για τις Τελικές εξετάσεις Επανάληψη για τις Τελικές εξετάσεις ( ιάλεξη 21) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Εισαγωγή Το µάθηµα EPL032 έχει ως βασικό στόχο την επίλυση προβληµάτων πληροφορικής µε την χρήση της γλώσσας προγραµµατισµού

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

Η αβεβαιότητα στη μέτρηση.

Η αβεβαιότητα στη μέτρηση. Η αβεβαιότητα στη μέτρηση. 1. Εισαγωγή. Κάθε μέτρηση, όσο προσεκτικά και αν έχει γίνει, περικλείει κάποια αβεβαιότητα. Η ανάλυση των σφαλμάτων είναι η μελέτη και ο υπολογισμός αυτής της αβεβαιότητας στη

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

Εργαστήριο Διοίκησης Παραγωγής & Έργων. Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend

Εργαστήριο Διοίκησης Παραγωγής & Έργων. Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend Εργαστήριο Διοίκησης Παραγωγής & Έργων Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Το Extend είναι ένα λογισμικό εικονικής προσομοίωσης που μπορεί να

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

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

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

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

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

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

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον

Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Κεφάλαιο 6ο Εισαγωγή στον Προγραµµατισµό Μέρος Πρώτο (6.1, 6.2 και 6.3) Α. Ερωτήσεις Σωστού Λάθους 1. Η γλώσσα µηχανής είναι µία γλώσσα υψηλού επιπέδου.

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

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων Αντικείµενα ηµιουργία και χρησιµοποίηση αντικειµένων ηµιουργία αντικειµένων Για να δηµιουργήσω ένα νέο αντικείµενο χρησιµοποιώ τον τελεστή new µε τοόνοµατηςκλάσηςαπότηνοποίαθέλωναδηµιουργήσωένααντικείµενο,

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

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

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

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

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

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

Ανάλυση Κόστους Κύκλου Ζωής

Ανάλυση Κόστους Κύκλου Ζωής Ανάλυση Κόστους Κύκλου Ζωής ρ Γ. Γιαννακίδης Εισαγωγή Στόχοι και Οφέλη Ανάλυση Κόστους Κύκλου Ζωής Life Cycle Cost Analysis - LCCA Μέθοδος οικονοµικής σύγκρισης εναλλακτικών επενδύσεων που βασίζεται στο

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

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εισαγωγή, εύρεση, διαγραφή) Ευθύγραμμες Διπλά Συνδεδεμένες Λίστες

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

ιαχείρισηέργων I. Sommerville 2006 Κεφ. 5 ΒασικέςαρχέςΤεχνολογίαςΛογισµικού, 8ηαγγ. έκδοση

ιαχείρισηέργων I. Sommerville 2006 Κεφ. 5 ΒασικέςαρχέςΤεχνολογίαςΛογισµικού, 8ηαγγ. έκδοση ιαχείρισηέργων Στόχοι Ερµηνεία των κύριων εργασιών ενός διευθυντή έργου λογισµικού Παρουσίαση της διαχείρισης έργων λογισµικού και περιγραφή των χαρακτηριστικών που τη διακρίνουν Εξέταση του σχεδιασµού

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

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

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr. Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η Υλοποίηση στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Πρωτοτυποποίηση Προγραµµατισµός υλοποίησης Ανάπτυξη συστήµατος Μοναδιαίος έλεγχος Ολοκλήρωση 2 3 Η υλοποίηση

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

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

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

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

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

ΤΕΙ Κρήτης, Παράρτηµα Χανίων ΠΣΕ, Τµήµα Τηλεπικοινωνιών & ικτύων Η/Υ Εργαστήριο ιαδίκτυα & Ενδοδίκτυα Η/Υ ( ηµιουργία συστήµατος µε ροint-tο-ροint σύνδεση) ρ Θεοδώρου Παύλος Χανιά 2003 Περιεχόµενα 1 ΕΙΣΑΓΩΓΗ...2 2 ΤΟ ΚΑΝΑΛΙ PΟINT-TΟ-PΟINT...2

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

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

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

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

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

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

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

MATLAB. Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών.

MATLAB. Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών. MATLAB Tι είναι το λογισµικό MATLAB? Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών. Σύστηµα αλληλεπίδρασης µε τοχρήστηγια πραγµατοποίηση επιστηµονικών υπολογισµών (πράξεις µε πίνακες επίλυση

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

Υπολογιστικά Συστήματα

Υπολογιστικά Συστήματα Υπολογιστικά Συστήματα Ενότητα 3: Βασικά στοιχεία της γλώσσας προγραμματισμού Visual Basic for Applications (VBA) Σαπρίκης Ευάγγελος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα 6: Τεχνολογία Λογισμικού-Software Engineering Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών Σπουδών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

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

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

ΕΠΛ 012. JavaScripts

ΕΠΛ 012. JavaScripts ΕΠΛ 012 JavaScripts Γλώσσα JavaScript (JS) ηµιουργεί δυναµικές ιστοσελίδες και αλληλεπιδράσεις µε το χρήστη εν είναι Java, αλλά είναι αντικειµενοστραφής (απλό µοντέλο υποκειµένων) Objects, properties (τιµές

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

...στις µέρες µας, όσο ποτέ άλλοτε, οι χώρες καταναλώνουν χρόνο και χρήµα στη µέτρηση της απόδοσης του δηµόσιου τοµέα...(oecd)

...στις µέρες µας, όσο ποτέ άλλοτε, οι χώρες καταναλώνουν χρόνο και χρήµα στη µέτρηση της απόδοσης του δηµόσιου τοµέα...(oecd) Κατηγορία Καλύτερης Εφαρµογής 4-delta: ηµιουργία & ιαχείριση ιαδικασιών Αξιολόγησης στο ηµόσιο τοµέα Χονδρογιάννης Θεόδωρος Εθνικό Καποδιστριακό Πανεπιστήµιο Αθηνών Αλεξόπουλος Χαράλαµπος Πανεπιστήµιο

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

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

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

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή στην Πληροφορική 1 Γενικές πληροφορίες Εισαγωγή στην Πληροφορική ιδασκαλία: Παναγιώτης Χατζηδούκας Email:

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

2 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ ΙΟΙΚΗΣΗΣ ΕΡΓΩΝ

2 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ ΙΟΙΚΗΣΗΣ ΕΡΓΩΝ 2 ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ ΙΟΙΚΗΣΗΣ ΕΡΓΩΝ 2.1 Βασικοί Ορισµοί ιοίκηση έργου είναι η διαδικασία (process) του σχεδιασµού και της διοίκησης εργασιών και αποθεµάτων, και της επικοινωνίας µεταξύ προόδου και αποτελεσµάτων.

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

Διάλεξη 6: Δείκτες και Πίνακες

Διάλεξη 6: Δείκτες και Πίνακες Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 6: Δείκτες και Πίνακες (Κεφάλαιο 12, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 6-1 Περιεχόμενο

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

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

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες)

Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 13: Δομές Δεδομένων ΙΙ (Ταξινομημένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 13-1 Περιεχόμενο

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

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

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

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

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

ΔΙΕΘΝΗ ΛΟΓΙΣΤΙΚΑ ΠΡΟΤΥΠΑ Τίτλος Μαθήματος ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΤΕ ΔΙΕΘΝΗ ΛΟΓΙΣΤΙΚΑ ΠΡΟΤΥΠΑ Καθηγητής Αθιανός Στέργιος ΣΕΡΡΕΣ, ΣΕΠΤΕΜΒΡΙΟΣ 2015 Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects)

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects) ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ Τίτλος Μαθήματος Μικροελεγκτές και Ενσωματωμένα συστήματα Ανάπτυξη και Εφαρμογές Κωδικός Μαθήματος Μ2 Θεωρία / Εργαστήριο Θεωρία + Εργαστήριο Πιστωτικές μονάδες 4 Ώρες Διδασκαλίας 2Θ+1Ε

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

Περιγραφή Κυκλωμάτων με χρήση της VHDL. Εισαγωγικές έννοιες για σχεδιασμό με τη VHDL

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Robert Sedgewick, Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση,

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

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 5: Κλάσεις και Αντικείμενα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 5: Κλάσεις και Αντικείμενα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Κλάσεις και Αντικείμενα - Κατασκευή, Πρόσβαση Αντικειμένων - Διαχείριση Μνήμης, Garbage

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

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 6 Λογισμικό Εφαρμογών Καραμαούνας Πολύκαρπος 1 Λογισμικό Εφαρμογών (application software) Είναι όλα τα προγράμματα που μετατρέπουν τον ΗΥ σε εξειδικευμένο μηχάνημα για συκεκριμένες εργασίες. Περιέχει

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

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

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

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