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 Θα

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

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Χειρισµός Σφαλµάτων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.12.06 Σφάλµατα, Σφάλµατα, Σφάλµατα 2 εν υπάρχουν προγράµµατα χωρίς λογικά λάθη Υλοποίηση που

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

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

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

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

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

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

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

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα

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

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

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

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

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

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

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

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

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

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

Week. 6: Java Collections

Week. 6: Java Collections Week 6: Java Collections Συλλογές δεδοµένων [collections] Εβδοµάδα 6: Συλλογές δεδοµένων στην Java Οι συλλογές [collections] (αναφέρονται και ως «υποδοχείς δεδοµένων» [containers]) είναι κλάσεις που χρησιµοποιούνται

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

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

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

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

Τεχνολογίες Υλοποίησης Αλγορίθµων

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Γρηγόρης Πράσινος Υποψήφιος ιδάκτωρ Τµήµα Μηχ/κων Η/Υ &

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

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

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

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

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

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

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

Ανοικτά Ακαδηµα κά Μαθήµατα

Ανοικτά Ακαδηµα κά Μαθήµατα ΤΕΙ Ιονίων Νήσων Ανοικτά Ακαδηµα κά Μαθήµατα Ανάλυση Σχεδίαση Υλοποίηση Αξιολόγηση Ανάλυση: Πληροφορίες σχετικά µε τις ανάγκες της εκπαίδευσης Σχεδίαση: Καθορισµός χαρακτηριστικών του εκπαιδευτικού λογισµικού

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

Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας

Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας Μ.Στεφανιδάκης Ενσωματωμένα Συστήματα: Απαιτήσεις Αξιοπιστία (reliability) Χρηστικότητα

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

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

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

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

Μοτίβα Σχεδίασης (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 επιτρέπει

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

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

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

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

Κεφάλαιο 7: Υπορουτίνες

Κεφάλαιο 7: Υπορουτίνες Κεφάλαιο 7: Υπορουτίνες Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction) είναι η αντιστοίχιση ενός συνόλου εισόδων σε ένα σύνολο εξόδων που μπορεί

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

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

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

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

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

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

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

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

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

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

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

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

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

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

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

Πλεονεκτήματα και μειονεκτήματα της προσομοίωσης

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

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

7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού

7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού 7 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού Εισαγωγή Η χειρονακτική σχεδίαση ενός ψηφιακού συστήµατος είναι εξαιρετικά δύσκολη και επιρρεπής σε λάθη Συστήµατα που ξεπερνούς τις µερικές

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 1ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Ορισμός Wikipedia.org 2 Δομημένος προγραμματισμός (structured programming) ή διαδικαστικός προγραμματισμός (procedural

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης

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

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

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή» Σκοπός Μαθήματος Λειτουργικά Συστήματα Η/Υ Θεωρία: Βασικές έννοιες των λειτουργικών συστημάτων Βασικές αρχές σχεδιασμού τους Κεφάλαιο 1 «Εισαγωγή» Εργαστήριο: Πρακτική εξάσκηση στη χρήση των λειτουργικών

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

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

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

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

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση: Σχεδίαση Κλάσεων Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Έκδοση: 2010.11.19 Εισαγωγή 2 ιαρκής συντήρηση και επέκταση λογισµικού Οι εταιρίες συνήθως συντηρούν, επεκτείνουν

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

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής Εισαγωγή στις Βάσεις Δεδομένων Εισαγωγή στις Βάσεις Δεδομένων Ορισμός Βάσης Δεδομένων Σύστημα Διαχείρισης Βάσης Δεδομένων ΣΔΒΔ (DBMS) Χαρακτηριστικά προσέγγισης συστημάτων αρχειοθέτησης Χαρακτηριστικά

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

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

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

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

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

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

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

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE) EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 5: Component Adaptation Environment (COPE) Performing Static Analysis 1 Class Name: The fully qualified name of the specific class Type: The type of the class

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

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

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

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

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

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

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

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

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

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

Μεθοδολογίες Παραγωγής Λογισµικού

Μεθοδολογίες Παραγωγής Λογισµικού Μεθοδολογίες Παραγωγής Λογισµικού Βασικά Γενικά Μοντέλα Μοντέλο καταρράκτη (waterfall model) Ξεχωριστές φάσεις καθορισµού απαιτήσεων και ανάπτυξης, επικύρωσης, εξέλιξης Εξελικτική ανάπτυξη (evolutionary

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

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

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

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

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL

Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι. Εισαγωγή στη VHDL Εργαστήριο Αρχιτεκτονικής Υπολογιστών Ι Εισαγωγή στη VHDL Εισαγωγή Very High Speed Integrated Circuits Hardware Description Language ιαφορές από γλώσσες προγραμματισμού: παράλληλη εκτέλεση εντολών προσδιορισμός

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

Κατευθυντήριες γραµµές

Κατευθυντήριες γραµµές Πρότυπα και ιαδικασίες προγραµµατισµού Υλοποίηση και Έλεγχος Λογισµικού Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Το περισσότερο λογισµικό αναπτύσσεται

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

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

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

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

Γενικό πλαίσιο. 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 Γενικό πλαίσιο Γενικά, οι αποφάσεις που λαμβάνουμε και ο προγραμματισμός της όλης διαδικασίας συντήρησης ενός

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

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

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

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

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 7 «Διαχείριση Μνήμης» Διδάσκων: Δ. Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Κύρια Μνήμη 1. Εισαγωγή 2. Βασική διαχείριση μνήμης 3. Μνήμη και πολυπρογραμματισμός 4. Τμηματοποίηση

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

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

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

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

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης. 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 Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού 1 Εξέλιξη Οι γλώσσες προγραμματισμού είναι σύνολα από προκαθορισμένες λέξεις οι οποίες συνδυάζονται σε προγράμματα

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

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

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

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

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

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

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

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ii ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Εισαγωγή - Βασικές έννοιες....1 1.1 Εσωτερική παράσταση δεδομένων....2 1.1.1 Παράσταση θέσης....3 1.1.2 Μετατροπές μεταξύ συστημάτων διαφορετικών βάσεων....5 1.1.3 Οι αριθμητικές

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

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

Αντικειμενοστραφής Προγραμματισμός Κλάσεις Αντικειμενοστραφής Προγραμματισμός Κλάσεις-Αντικείμενα Ένα παράδειγμα Συναρτήσεις κατασκευής (Constructors) Συνάρτηση καταστροφής (Destructor) Συναρτήσεις πρόσβασης (Access Functions) Συνάρτηση

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

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

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

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

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

Προγραµµατισµός Συστηµάτων Πραγµατικού Χρόνου

Προγραµµατισµός Συστηµάτων Πραγµατικού Χρόνου Προγραµµατισµός Συστηµάτων Πραγµατικού Χρόνου Εφαρµογές σε µικρά ενσωµατωµένα συστήµατα Ιωάννης Καλόµοιρος Αναπληρωτής Καθηγητής Τµήµα Μηχανικών Πληροφορικής Μάθηµα 2ο Περίληψη και σηµαντικά σηµεία Τα

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

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

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

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

υναµικές οµές εδοµένων

υναµικές οµές εδοµένων υναµικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: υναµικές οµές εδοµένων Γενικά υναµική έσµευση Μνήµης οµή τύπου structure αυτοαναφορικές δοµές Η δήλωση typedef στη C Αναπαράσταση

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

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1)

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1) ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1) 2. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΟΒΛΗΜΑΤΟΣ H υλοποίηση ενός προβλήµατος σε σύστηµα Η/Υ που επιδεικνύει ΤΝ 1 απαιτεί: Την κατάλληλη περιγραφή του προβλήµατος

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

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

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

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

ΠΑΡΑΡΤΗΜΑ Β. Verification

ΠΑΡΑΡΤΗΜΑ Β. Verification ΠΑΡΑΡΤΗΜΑ Β Ροή Σχεδίασης και VHDL Ροή Σχεδίασης Πριν περάσουµε σε περιγραφή της γλώσσας VHDL είναι χρήσιµο να δούµε το περιβάλλον και τη ροή της σχεδίασης. Τα βήµατα µιας σχεδίασης βασισµένης σε VHDL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Ανάπτυξη Λογισμικού ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Βασικές Έννοιες Η διαδικασία ανάπτυξης λογισμικού μπορεί να

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

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

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

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

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

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

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

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

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

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

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο 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

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

υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 είκτες

υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 είκτες υναµική διαχείριση µνήµης στη C++ Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: είκτες στη C++ Οι τελεστές new και delete Destructors Ορισµός τελεστών κλάσεων Ο δείκτης this ΕΠΛ 132 Αρχές Προγραµµατισµού

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

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

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

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

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 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 ΘΕΣΣΑΛΟΝΙΚΗΣ

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

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

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

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