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

ΚΕΦΑΛΑΙΟ 19 ΠΡΟΓΡΑΜΜΑΤΙΖΟΝΤΑΣ ΓΙΑΑΞΙΟΠΙΣΤΙΑ ΑΞΙΟΠΙΣΤΙΑ

ΚΕΦΑΛΑΙΟ 19 ΠΡΟΓΡΑΜΜΑΤΙΖΟΝΤΑΣ ΓΙΑΑΞΙΟΠΙΣΤΙΑ ΑΞΙΟΠΙΣΤΙΑ ΚΕΦΑΛΑΙΟ 19 ΠΡΟΓΡΑΜΜΑΤΙΖΟΝΤΑΣ ΓΙΑΑΞΙΟΠΙΣΤΙΑ ΑΞΙΟΠΙΣΤΙΑ ΣΤΟΧΟΙ Να περιγράψουµε τεχνικές προγραµµατισµού για ανάπτυξη αξιόπιστων συστηµάτων Να συζητήσουµε την αποφυγή σφαλµάτων ελαχιστοποιώντας την χρήση

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

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

ΚΕΦΑΛΑΙΟ 18 ΑΞΙΟΠΙΣΤΙΑ ΛΟΓΙΣΜΙΚΟΥ ΚΕΦΑΛΑΙΟ 18 ΑΞΙΟΠΙΣΤΙΑ ΛΟΓΙΣΜΙΚΟΥ ΣΤΟΧΟΙ Να περιγράψουµε τους τρόπους προδιαγραφών αξιοπιστίας και µέτρησης Να εισάγουµε µονάδες µέτρησης της αξιοπιστίας και την χρησιµότητα τους στις προδιαγραφές αξιοπιστίας

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

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

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

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

ΚΕΦΑΛΑΙΟ 20 ΕΠΑΝΑΧΡΗΣΙΜΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ

ΚΕΦΑΛΑΙΟ 20 ΕΠΑΝΑΧΡΗΣΙΜΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΚΕΦΑΛΑΙΟ 20 ΕΠΑΝΑΧΡΗΣΙΜΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ Στόχοι Περιγραφή πλεονεκτηµάτων-µειονεκτηµάτων µειονεκτηµάτων επαναχρησιµοποίησης λογισµικού Ανάπτυξη για-µε επαναχρησιµοποίηση Χαρακτηριστικά γενικών επαναχρησιµοποιούµενων

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

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

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

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

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

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

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

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

Δομές Δεδομένων & Αλγόριθμοι Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές

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

Η Γλώσσα Προγραµµατισµού 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 Θα

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

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

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

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις Προγραµµατισµός Η/Υ Ανασκόπηση - Ορισµοί Περιεχόµενα Ο κύκλος ανάπτυξης προγράµµατος Περιγραφή προβλήµατος Ανάλυση προβλήµατος Λογικό ιάγραµµα Ψευδοκώδικας Κωδικοποίηση Συντήρηση Γλώσσες Προγραµµατισµού

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

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

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

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

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

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

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

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

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

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή

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

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

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

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

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού Γενικά Η αρχιτεκτονική ανάπτυξης τους πληροφοριακού συστήµατος Γραµµατεία 2000 υποσύστηµα διαχείρισης προσωπικού

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

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

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:

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

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

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

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

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

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

Δείκτες σε συναρτήσεις. Προγραμματισμός II 1

Δείκτες σε συναρτήσεις. Προγραμματισμός II 1 Δείκτες σε συναρτήσεις Προγραμματισμός II 1 lalis@inf.uth.gr Συνάρτηση Ομάδα εντολών που γράφουμε ξεχωριστά για να υλοποιήσουμε μια συγκεκριμένη λειτουργία για καλύτερη / πιο καθαρή δόμηση του κώδικα για

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

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

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

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Week. 6: Java Collections

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

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

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

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

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

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

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

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

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

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

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

Γλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού

Γλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ http://courses.softlab.ntua.gr/softeng/ ιδάσκοντες: (nickie@softlab.ntua.gr) Βασίλης Βεσκούκης (bxb@softlab.ntua.gr) Γλώσσες Προγραµµατισµού και Ανάπτυξη Συστηµάτων Λογισµικού ΤΛ

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

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

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

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

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη 9.1 Γενικά Οι εφαρµογές που δηµιουργούνται από ένα προγραµµατιστή µπορούν ανά πασά στιγµή να καταρρεύσουν από κάποιο λάθος κατά την λειτουργία τους. Αυτές οι καταστάσεις συµβαίνουν από αµέλεια του προγραµµατιστή

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

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα

8 Τεχνικός Εφαρμογών Πληροφορικής με Πολυμέσα Περιεχόμενα Πρόλογος... 9 Κεφάλαιο 1: Δομή και λειτουργία του υπολογιστή... 11 Κεφάλαιο 2: Χρήση Λ.Σ. DOS και Windows... 19 Κεφάλαιο 3: Δίκτυα Υπολογιστών και Επικοινωνίας... 27 Κεφάλαιο 4: Unix... 37

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

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

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

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή Οι σηµερινές δραστηριότητες των επιχειρήσεων δηµιουργούν την ανάγκη για όσο το δυνατό µεγαλύτερη υποστήριξη από τα πληροφοριακά τους

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

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

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

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

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

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

ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα

ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα Τύπος Δεδομένων: ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα - Ένας ΑΤΔ είναι ένα μαθηματικό μοντέλο (οντότητα)

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ ΜΑΘΗΜΑΤΟΣ Αρχές

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

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον κεφ.6 Εισαγωγή στον Προγραμματισμό Μάριος Αραποστάθης Καθηγητής πληροφορικής Βαρβάκειου Λύκειου http://users.sch.gr/mariosarapostathis 6.1 Η έννοια του

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Προγραµµατισµός Η/Υ Ο προγραµµατισµός είναι η διατύπωση του αλγορίθµου σε µορφή κατανοητή από τον Η/Υ ώστε να τον εκτελέσει («τρέξει» όπως λέµε στην ορολογία της

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

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΕΞΑΙΡΕΣΕΙΣ ΚΑΙ Ο ΧΕΙΡΙΣΜΟΣ ΤΟΥΣ EXCEPTIONS & EXCEPTION HANDLING Εξαιρέσεις (Exceptions) Γνωμικό της Μηχανικής Λογισμικού: το 80% της δουλειάς των μηχανικών

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

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

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

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

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

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

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

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

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

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

Συγγραφή Προγραμμάτων

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

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

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

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

JDSL Java Data Structures Library

JDSL Java Data Structures Library ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ JDSL Java Data Structures Library Δομές Δεδομένων Μπαλτάς Αλέξανδρος 24 Μαρτίου 2015 ampaltas@ceid.upatras.gr Εισαγωγή Η JDSL είναι μια βιβλιοθήκη ομών εδομένων σε

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

Κεφάλαιο 5: Εισαγωγή στην Προσομοίωση

Κεφάλαιο 5: Εισαγωγή στην Προσομοίωση Κεφάλαιο 5: Εισαγωγή στην Προσομοίωση Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Γιάννης Γαροφαλάκης Αν. Καθηγητής Προσομοίωση Τεχνικές χρήσης υπολογιστών για τη «μίμηση» των λειτουργιών διαφόρων ειδών

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

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε

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

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει. οµηµένες τεχνικές Ο στόχος των δοµηµένων τεχνικών είναι: Υψηλής ποιότητας προγράµµατα Εύκολη τροποποίηση προγραµµάτων Απλοποιηµένα προγράµµατα Μείωση κόστους και χρόνου ανάπτυξης. Οι βασικές αρχές τους

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

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

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

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

Εισαγωγή στην επιστήμη των υπολογιστών

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

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

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

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

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

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

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

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

ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT)

ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) Τύπος Δεδομένων: ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα - Ένας ΑΤΔ είναι ένα μαθηματικό μοντέλο (οντότητα)

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

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

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

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

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

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

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

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

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C# Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

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

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

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

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

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

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

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

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Λειτουργικά Συστήματα Πραγματικού Χρόνου Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Η χρήση του χρόνου Μ.Στεφανιδάκης Συστήματα πραγματικού χρόνου: ελεγκτής και ελεγχόμενο σύστημα real-time system

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

Διαχείριση Πληροφοριακών Συστημάτων

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

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

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

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

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού

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

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

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

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

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

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

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

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

Computing. Νοέμβριος Έκδοση 1.0

Computing. Νοέμβριος Έκδοση 1.0 Computing Νοέμβριος 2017 Έκδοση 1.0 Ενότητα Computing Αυτή η ενότητα παραθέτει τις βασικές έννοιες και δεξιότητες που σχετίζονται με την ικανότητα χρήσης υπολογιστικής σκέψης (computational thinking) και

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 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. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

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

Εισαγωγή στην πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Αλγόριθµοι, στοιχεία

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

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

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

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

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διαχείριση Πολιτισμικών Δεδομένων Ενότητα 6: Εισαγωγή στις Βάσεις Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

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

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

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

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

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

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

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

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

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

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