Επαλήθευση και Επικύρωση

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

Download "Επαλήθευση και Επικύρωση"

Transcript

1 ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Επαλήθευση και Επικύρωση Μάρα Νικολαϊδου

2 Διαφορά µεταξύ επαλήθευσης και επικύρωσης Επαλήθευση: "Φτιάχνουµε σωστά το προϊόν;" Το λογισµικό πρέπει να συµµορφώνεται µε τις προδιαγραφές του. Επικύρωση: "Φτιάχνουµε το σωστό προϊόν;" Το λογισµικό πρέπει να κάνει αυτό που απαιτεί πραγµατικά ο χρήστης.

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

4 Στόχοι της διαδικασίας επαλήθευσης και επικύρωσης Η διαδικασία επαλήθευσης και επικύρωσης πρέπει να αποδεικνύει ότι το λογισµικό είναι κατάλληλο για το σκοπό για τον οποίο χρησιµοποιείται. Αυτό ΔΕΝ σηµαίνει ότι δεν έχει ατέλειες. Όµως πρέπει να είναι αρκετά καλό για τη χρήση για την οποία προορίζεται - από τον τύπο χρήσης εξαρτάται και ο βαθµός εµπιστοσύνης που απαιτείται.

5 Επίπεδο εµπιστοσύνης που απορρέει από τη διαδικασία επαλήθευσης και επικύρωσης Εξαρτάται από το σκοπό του συστήµατος, τις προσδοκίες του χρήστη και το εµπορικό περιβάλλον Λειτουργία λογισµικού Το επίπεδο εµπιστοσύνης εξαρτάται από το πόσο κρίσιµο είναι το λογισµικό για έναν οργανισµό. Προσδοκίες χρηστών Πολλοί χρήστες έχουν χαµηλές προσδοκίες από ορισµένα είδη λογισµικού. Εµπορικό περιβάλλον Μερικές φορές η διάθεση ενός προϊόντος στην αγορά σε σύντοµο χρονικό διάστηµα είναι πιο σηµαντική από τον εντοπισµό των ελαττωµάτων του προγράµµατος.

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

7 Στατική και δυναµική επαλήθευση και επικύρωση

8 Δοκιµές προγραµµάτων Αποκαλύπτουν την ύπαρξη σφαλµάτων, ΟΧΙ την απουσία τους. Αποτελούν τη µοναδική τεχνική επικύρωσης αφού το λογισµικό πρέπει να εκτελεστεί για να διαπιστωθεί η συµπεριφορά του. Πρέπει να χρησιµοποιούνται σε συνδυασµό µε τη στατική επαλήθευση για πλήρη κάλυψη.

9 Τύποι δοκιµών Δοκιµές για ατέλειες Δοκιµές που στοχεύουν στον εντοπισµό ατελειών του συστήµατος. Επιτυχηµένη δοκιµή ατελειών θεωρείται µια δοκιµή που αποκαλύπτει την ύπαρξη ατελειών σε ένα σύστηµα. Εξετάζεται στο Κεφάλαιο 23. Δοκιµές επικύρωσης Επιδιώκουν να δείξουν ότι το λογισµικό ικανοποιεί τις απαιτήσεις του πελάτη. Επιτυχηµένη δοκιµή είναι εκείνη που αποδεικνύει τη σωστή υλοποίηση µιας απαίτησης.

10 Δοκιµές και αποσφαλµάτωση Οι δοκιµές και η αποσφαλµάτωση είναι ξεχωριστές διαδικασίες. Η διαδικασία επαλήθευσης και επικύρωσης αποσκοπεί να αποδείξει την ύπαρξη ατελειών σε ένα σύστηµα λογισµικού. Η αποσφαλµάτωση αφορά τον εντοπισµό και τη διόρθωση αυτών των σφαλµάτων. Η αποσφαλµάτωση προβλέπει τη διατύπωση µιας υπόθεσης που αφορά τη συµπεριφορά του προγράµµατος και στη συνέχεια τον έλεγχό της µε σκοπό τον εντοπισµό του σφάλµατος στο σύστηµα.

11 Η διαδικασία αποσφαλµάτωσης

12 Σχεδιασµός επαλήθευσης και επικύρωσης Για το καλύτερο δυνατό αποτέλεσµα των διαδικασιών δοκιµών και επιθεώρησης απαιτείται προσεκτικός σχεδιασµός τους. Ο σχεδιασµός πρέπει να ξεκινήσει στα πρώτα στάδια της διαδικασίας ανάπτυξης. Στο σχέδιο πρέπει να καθορίζεται η αναλογία µεταξύ στατικής επαλήθευσης και δοκιµών. Ο σχεδιασµός δοκιµών αφορά τον ορισµό προτύπων για τη διαδικασία δοκιµών και όχι την περιγραφή των ίδιων των δοκιµών των προϊόντων.

13 Το µοντέλο V

14 Η δοµή ενός σχεδίου δοκιµών λογισµικού Η διαδικασία δοκιµών Ανιχνευσιµότητα απαιτήσεων Στοιχεία προς δοκιµή Χρονοδιάγραµµα δοκιµών Διαδικασίες καταγραφής δοκιµών Απαιτήσεις υλικού και λογισµικού Περιορισµοί

15 Η δοµή ενός σχεδίου δοκιµών λογισµικού Η διαδικασία δοκιμών Μια περιγραφή των κύριων φάσεων της διαδικασίας δοκιμών. Αυτές οι φάσεις θα μπορούσαν να συμφωνούν με την περιγραφή μας νωρίτερα στο παρόν κεφάλαιο. Ανιχνευσιμότητα απαιτήσεων Οι χρήστες ενδιαφέρονται κυρίως για το αν το σύστημα ικανοποιεί τις απαιτήσεις του, και οι δοκιμές πρέπει να σχεδιαστούν ώστε να ελέγχουν κάθε απαίτηση ξεχωριστά. Στοιχεία προς δοκιμή Εδώ καθορίζονται τα προϊόντα της διαδικασίας παραγωγής λογισμικού που πρόκειται να δοκιμαστούν. Χρονοδιάγραμμα δοκιμών Το συνολικό χρονοδιάγραμμα των δοκιμών, και η κατανομή πόρων για αυτό το χρονοδιάγραμμα. Αυτά τα στοιχεία προφανώς συνδέονται με το γενικότερο χρονοδιάγραμμα ανάπτυξης του έργου. Διαδικασίες καταγραφής δοκιμών Μόνο η εκτέλεση των δοκιμών δεν αρκεί τα αποτελέσματα πρέπει να καταγραφούν συστηματικά. Θα πρέπει να είναι δυνατή η εξέταση της διαδικασίας των δοκιμών, ώστε να εξασφαλιστεί ότι έχει εκτελεστεί σωστά. Απαιτήσεις υλικού και λογισμικού Αυτή η ενότητα περιγράφει τα εργαλεία λογισμικού που απαιτούνται, καθώς και την εκτιμώμενη χρήση του υλικού. Περιορισμοί Στη συγκεκριμένη ενότητα πρέπει να αναφέρονται περιορισμοί οι οποίοι θα μπορούσαν να επηρεάσουν τη διαδικασία δοκιμών, όπως η έλλειψη προσωπικού.

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

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

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

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

20 Προσυνθήκες επιθεωρήσεων Πρέπει να υπάρχουν επακριβείς προδιαγραφές Τα µέλη της οµάδας επιθεώρησης πρέπει να είναι εξοικειωµένα µε τα εταιρικά πρότυπα. Πρέπει να είναι διαθέσιµος ο συντακτικά σωστός κώδικας του προγράµµατος ή κάποια άλλη ορθή αναπαράσταση του συστήµατος. Πρέπει να ετοιµαστεί µια λίστα ελέγχου για σφάλµατα. Η διοίκηση της εταιρείας πρέπει να αποδεχθεί ότι η επιθεώρηση θα αυξήσει το κόστος στα πρώτα στάδια της διαδικασίας παραγωγής λογισµικού. Η διοίκηση της εταιρείας δεν πρέπει να χρησιµοποιεί τις επιθεωρήσεις για την αξιολόγηση του προσωπικού, δηλαδή για να ανακαλύπτει ποιος κάνει λάθη.

21 Η διαδικασία επιθεώρησης

22 Βήµατα της διαδικασίας επιθεώρησης Η γενική εικόνα του συστήµατος παρουσιάζεται στην οµάδα επιθεώρησης. Ο κώδικας και τα σχετικά έγγραφα διανέµονται στα µέλη της οµάδας εκ των προτέρων. Διεξάγεται η επιθεώρηση και σηµειώνονται τα σφάλµατα που ανακαλύπτονται. Γίνονται τροποποιήσεις για τη διόρθωση των σφαλµάτων που ανακαλύφθηκαν. Ενδέχεται να απαιτείται νέος κύκλος επιθεώρησης.

23 Ρόλοι στη διαδικασία επιθεώρησης Δηµιουργός ή κάτοχος Επιθεωρητής Εκφωνητής Γραµµατέας Επικεφαλής ή συντονιστής Κύριος συντονιστής Ο προγραµµατιστής ή ο σχεδιαστής που είναι υπεύθυνος για τη δηµιουργία του προγράµµατος ή του εγγράφου. Το άτοµο αυτό είναι υπεύθυνο για τη διόρθωση των ατελειών που θα εντοπιστούν κατά τη διαδικασία της επιθεώρησης. Εντοπίζει λάθη, παραλείψεις, και ασυνέπειες στα προγράµµατα και τα έγγραφα. Μπορεί επίσης να επισηµαίνει ευρύτερα ζητήµατα τα οποία είναι έξω από τη σφαίρα αρµοδιοτήτων της οµάδας επιθεώρησης. Παρουσιάζει τον κώδικα ή το έγγραφο σε µια συνάντηση επιθεώρησης. Καταγράφει τα αποτελέσµατα της συνάντησης της οµάδας επιθεώρησης. Καθοδηγεί τη διαδικασία και διευκολύνει την επιθεώρηση. Αναφέρει τα αποτελέσµατα της διαδικασίας στον κύριο συντονιστή. Υπεύθυνος για βελτιώσεις επάνω στη διαδικασία επιθεώρησης, την ενηµέρωση της λίστας ελέγχου, την ανάπτυξη προτύπων κ.λπ.

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

25 Έλεγχοι επιθεώρησης (1) Σφάλµατα δεδοµένων Σφάλµατα ελέγχου Σφάλµατα εισόδου/εξόδου Παίρνουν κατάλληλη αρχική τιµή όλες οι µεταβλητές του προγράµµατος πριν τη χρήση των τιµών τους; Έχουν ονοµαστεί όλες οι σταθερές; Ποιο πρέπει να είναι το άνω όριο των πινάκων, ίσο µε το µέγεθος του πίνακα ή µικρότερο κατά ένα; Αν χρησιµοποιούνται αλφαριθµητικά χαρακτήρων, εκχωρείται ρητά κάποια ένδειξη τέλους; Υπάρχει πιθανότητα υπερχείλισης χώρων προσωρινής αποθήκευσης; Είναι σωστές οι συνθήκες των εντολών υπό συνθήκη; Είναι σίγουρο ότι κάθε βρόχος τερµατίζεται; Είναι οι σύνθετες εντολές σωστά οµαδοποιηµένες; Στις εντολές case, περιλαµβάνονται όλες οι δυνατές περιπτώσεις; Αν απαιτείται διακοπή (break) µετά από κάθε περίπτωση στις εντολές case, έχει συµπεριληφθεί; Χρησιµοποιούνται όλες οι µεταβλητές εισόδου; Εκχωρείται τιµή σε όλες τις µεταβλητές εξόδου πριν από την έξοδό τους; Υπάρχουν µη αναµενόµενες είσοδοι οι οποίες θα µπορούσαν να προκαλέσουν αλλοίωση;

26 Έλεγχοι επιθεώρησης (2) Σφάλµατα διασύνδεσης Σφάλµατα διαχείρισης αποθήκευσης Σφάλµατα διαχείρισης εξαιρέσεων Έχουν όλες οι κλήσεις συναρτήσεων και µεθόδων το σωστό πλήθος παραµέτρων; Ταιριάζουν οι τυπικές µε τις πραγµατικές παραµέτρους; Παρατίθενται οι παράµετροι στη σωστή σειρά; Αν υπάρχουν συστατικά στοιχεία τα οποία προσπελάζουν κοινόχρηστη µνήµη, διαθέτουν το ίδιο µοντέλο για τη δοµή της µνήµης αυτής; Κατά την τροποποίηση συνδεδεµένων δοµών, γίνεται σωστά η επανεκχώρηση σε όλους τους συνδέσµους; Αν χρησιµοποιείται δυναµική αποθήκευση, έχει κατανεµηθεί σωστά ο χώρος; Γίνεται ρητά η αποδέσµευση του χώρου ο οποίος πλέον δεν χρειάζεται; Έχουν ληφθεί υπόψη όλες οι πιθανές συνθήκες σφάλµατος;

27 Ρυθµός επιθεώρησης 500 εντολές/ώρα κατά την επισκόπηση 125 εντολές πηγαίου κώδικα/ώρα κατά την ατοµική προετοιµασία εντολές/ώρα επιθεωρούνται σε µια συνάντηση επιθεώρησης Συνεπώς η επιθεώρηση είναι µια διαδικασία που κοστίζει πολύ. Η επιθεώρηση 500 γραµµών κώδικα χρειάζεται περίπου 40 εργατοώρες - περίπου 2800 λίρες (ή 3100 ) µε τις αµοιβές που ισχύουν στο Ηνωµένο Βασίλειο.

28 Αυτοµατοποιηµένη στατική ανάλυση Οι στατικοί αναλυτές είναι εργαλεία λογισµικού για την επεξεργασία του κειµένου του πηγαίου κώδικα ενός προγράµµατος. Αναλύουν συντακτικά τον κώδικα, επιχειρούν να ανακαλύψουν ενδεχοµένως λανθασµένες συνθήκες και να τις υποδείξουν στην οµάδα επαλήθευσης και επικύρωσης. Ως βοήθηµα των επιθεωρήσεων είναι πολύ αποτελεσµατικοί - αποτελούν συµπλήρωµα, αλλά όχι υποκατάστατο της επιθεώρησης.

29 Έλεγχοι στατικής ανάλυσης Κατηγορία σφάλµατος Σφάλµατα δεδοµένων Σφάλµατα ελέγχου Σφάλµατα εισόδου/εξόδου Σφάλµατα διασύνδεσης Σφάλµατα διαχείρισης αποθήκευσης Έλεγχος στατικής ανάλυσης Μεταβλητές που χρησιµοποιούνται πριν την ανάθεση αρχικής τιµής Μεταβλητές που δηλώνονται αλλά δεν χρησιµοποιούνται ποτέ Μεταβλητές στις οποίες ανατίθεται τιµή δύο φορές χωρίς να χρησιµοποιηθούν στο ενδιάµεσο Πιθανές παραβιάσεις των ορίων πινάκων Μεταβλητές που δεν έχουν δηλωθεί Μη προσεγγίσιµος κώδικας Διακλαδώσεις χωρίς συνθήκες στο εσωτερικό βρόχων Διπλή έξοδος µεταβλητών χωρίς ενδιάµεση ανάθεση τιµής Ασυµφωνίες τύπων παραµέτρων Ασυµφωνίες πλήθους παραµέτρων Αποτελέσµατα συναρτήσεων που δεν χρησιµοποιούνται Συναρτήσεις και διαδικασίες που δεν καλούνται Δείκτες χωρίς ανάθεση τιµής Αριθµητική δεικτών

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

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

32 Στατική ανάλυση του LINT 138% more lint_ex.c #include <stdio.h> printarray (Anarray) int Anarray; { printf( %d,anarray); } main () { int Anarray[5]; int i; char c; printarray (Anarray, i, c); printarray (Anarray) ; } 139% cc lint_ex.c 140% lint lint_ex.c lint_ex.c(10): warning: c may be used before set lint_ex.c(10): warning: i may be used before set printarray: variable # of args. lint_ex.c(4) :: lint_ex.c(10) printarray, arg. 1 used inconsistently lint_ex.c(4) :: lint_ex.c(10) printarray, arg. 1 used inconsistently lint_ex.c(4) :: lint_ex.c(11) printf returns value which is always ignored

33 Χρήση στατικής ανάλυσης Ιδιαίτερα χρήσιµη σε γλώσσες προγραµµατισµού, όπως η C, οι οποίες δεν έχουν αυστηρή έκφραση τύπων και έτσι πολλά σφάλµατα δεν εντοπίζονται από το µεταγλωττιστή Λιγότερο αποτελεσµατική για γλώσσες όπως η Java, οι οποίες έχουν ισχυρό έλεγχο τύπων και έτσι µπορούν να εντοπίζουν πολλά σφάλµατα κατά τη µεταγλώττιση.

34 Επαλήθευση και τυπικές µέθοδοι Όταν παράγεται µια µαθηµατική αναπαράσταση των προδιαγραφών του συστήµατος, µπορούν να χρησιµοποιηθούν οι τυπικές µέθοδοι. Αποτελούν την απόλυτη τεχνική στατικής επαλήθευσης. Προβλέπουν τη µαθηµατική ανάλυση των προδιαγραφών και µπορούν να καταρτίσουν θεωρητικές εκφράσεις επιχειρηµάτων για να αποδείξουν ότι το πρόγραµµα συνάδει µε τις µαθηµατικές προδιαγραφές του.

35 Επιχειρήµατα υπέρ της χρήσης τυπικών µεθόδων Η κατάρτιση µαθηµατικών προδιαγραφών απαιτεί λεπτοµερή ανάλυσή τους, κάτι που είναι πιθανό να αποκαλύψει σφάλµατα. Μπορούν να ανιχνεύσουν σφάλµατα υλοποίησης πριν από το στάδιο των δοκιµών, κατά την ανάλυση του προγράµµατος σε σύγκριση µε τις προδιαγραφές του.

36 Επιχειρήµατα κατά της χρήσης τυπικών µεθόδων Απαιτεί εξειδικευµένη σηµειογραφία, η οποία δεν είναι κατανοητή από ειδικούς του εκάστοτε πεδίου εφαρµογής. Η κατάρτιση προδιαγραφών είναι πολύ ακριβή, ενώ ακόµα πιο ακριβή είναι η απόδειξη ότι ένα πρόγραµµα συµµορφώνεται µε τις προδιαγραφές αυτές. Το ίδιο επίπεδο εµπιστοσύνης σε ένα πρόγραµµα µπορεί να επιτευχθεί µε µικρότερο οικονοµικό κόστος µε χρήση άλλων τεχνικών επαλήθευσης και επικύρωσης.

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

38 Η διαδικασία ανάπτυξης "καθαρής αίθουσας"

39 Χαρακτηριστικά της διαδικασίας ανάπτυξης "καθαρής αίθουσας" Τυπική προδιαγραφή µε χρήση ενός µοντέλου µεταβολών καταστάσεων. Βαθµιαία ανάπτυξη στην οποία ο πελάτης καθορίζει την προτεραιότητα των επαυξήσεων. Δοµηµένος προγραµµατισµός - χρησιµοποιείται περιορισµένο πλήθος δοµών ελέγχου και αφηρηµένων τύπων δεδοµένων. Στατική επαλήθευση µε τη χρήση σχολαστικών επιθεωρήσεων Στατιστικές δοκιµές του συστήµατος

40 Τυπική προδιαγραφή και επιθεωρήσεις Το µοντέλο που βασίζεται στη µεταβολή καταστάσεων αποτελεί µια προδιαγραφή του συστήµατος και έτσι στη διαδικασία επιθεώρησης το πρόγραµµα συγκρίνεται µε το µοντέλο αυτό. Η προσέγγιση σε επίπεδο προγραµµατισµού είναι ορισµένη έτσι ώστε να είναι σαφής η αναλογία µεταξύ του µοντέλου και του συστήµατος. Για την αύξηση του επιπέδου εµπιστοσύνης χρησιµοποιούνται µαθηµατικές εκφράσεις (όχι αποδείξεις) στη διαδικασία επιθεώρησης.

41 Οµάδες που µετέχουν στη διαδικασία ανάπτυξης "καθαρής αίθουσας" Η οµάδα προδιαγραφών. Υπεύθυνη για την ανάπτυξη και τη συντήρηση των προδιαγραφών του συστήµατος. Η οµάδα ανάπτυξης. Υπεύθυνη για την ανάπτυξη και την επαλήθευση του λογισµικού. Το λογισµικό ΔΕΝ εκτελείται, ούτε καν µεταγλωττίζεται, κατά τη διαδικασία της ανάπτυξης. Η οµάδα πιστοποίησης. Υπεύθυνη για την ανάπτυξη ενός συνόλου στατιστικών δοκιµών µε σκοπό τον έλεγχο του λογισµικού µετά την κατασκευή του. Χρησιµοποιούνται µοντέλα ανάπτυξης αξιοπιστίας για να προσδιοριστεί πότε το σύστηµα είναι αρκετά αξιόπιστο.

42 Αξιολόγηση της διαδικασίας ανάπτυξης "καθαρής αίθουσας" Τα αποτελέσµατα της χρήσης της διαδικασίας ανάπτυξης "καθαρής αίθουσας" είναι πολύ εντυπωσιακά αφού στα παραδοτέα συστήµατα έχουν ανακαλυφθεί λίγα ελαττώµατα. Μια ανεξάρτητη αξιολόγηση αποδεικνύει ότι η διαδικασία αυτή δεν κοστίζει πιο ακριβά από άλλες προσεγγίσεις. Υπήρχαν λιγότερα σφάλµατα απ' ότι σε µια "παραδοσιακή" διαδικασία ανάπτυξης. Ωστόσο δεν είναι γενικευµένη η χρήση της διαδικασίας αυτής. Δεν είναι σαφής ο τρόπος µε τον οποίο η προσέγγιση αυτή µπορεί να µεταφερθεί σε ένα περιβάλλον µε λιγότερο ικανούς ή λιγότερο αφοσιωµένους µηχανικούς λογισµικού.

43 ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Δοκιµές Λογισµικού Μάρα Νικολαϊδου

44 Η διαδικασία δοκιµών Δοκιµές συστατικών στοιχείων Δοκιµή µεµονωµένων συστατικών στοιχείων ενός προγράµµατος Συνήθως είναι ευθύνη των προγραµµατιστών των συστατικών στοιχείων (εξαίρεση αποτελούν τα κρίσιµα συστήµατα) Οι δοκιµές απορρέουν από την πείρα του προγραµµατιστή. Δοκιµές συστήµατος Δοκιµή οµάδων συστατικών στοιχείων τα οποία έχουν συνδυαστεί ώστε να δηµιουργήσουν ένα σύστηµα ή υποσύστηµα Διεξάγονται µε ευθύνη µιας ανεξάρτητης οµάδας δοκιµών Οι δοκιµές βασίζονται στις προδιαγραφές του συστήµατος.

45 Φάσεις δοκιµών

46 Δοκιµές για ατέλειες Ο στόχος των δοκιµών για ατέλειες είναι η ανακάλυψη ελαττωµάτων στα προγράµµατα Επιτυχής δοκιµή για ατέλειες είναι εκείνη η οποία προκαλεί την ανώµαλη συµπεριφορά ενός προγράµµατος Οι δοκιµές αποδεικνύουν την ύπαρξη ατελειών, όχι την απουσία τους

47 Στόχοι των διαδικασιών δοκιµών Δοκιµές επικύρωσης Να αποδείξουν στον κατασκευαστή και τον πελάτη ότι το λογισµικό ικανοποιεί τις απαιτήσεις του Μια επιτυχηµένη τέτοια δοκιµή αποδεικνύει ότι το σύστηµα λειτουργεί όπως αναµένεται. Δοκιµές για ατέλειες Να εντοπίσουν σφάλµατα ή ατέλειες τα οποία προκαλούν συµπεριφορά του λογισµικού η οποία είναι εσφαλµένη, ανεπιθύµητη ή δεν συµφωνεί µε τις προδιαγραφές του συστήµατος. Μια δοκιµή θεωρείται επιτυχηµένη όταν προκαλεί λανθασµένη απόδοση ενός συστήµατος και µε τον τρόπο αυτό αποκαλύπτει κάποια ατέλειά του.

48 Η διαδικασία δοκιµών λογισµικού

49 Πολιτικές δοκιµών Μόνο µε εξαντλητικές δοκιµές µπορεί να αποδειχθεί ότι ένα πρόγραµµα δεν έχει ατέλειες. Όµως δεν είναι εφικτές οι εξαντλητικές δοκιµές Η προσέγγιση που θα υιοθετηθεί στην επιλογή των δοκιµών συστήµατος καθορίζεται µε τις πολιτικές δοκιµών Θα πρέπει να δοκιµαστούν όλες οι λειτουργίες του συστήµατος που προσπελάζονται µέσω µενού Θα πρέπει να δοκιµαστούν συνδυασµοί λειτουργιών που προσπελάζονται µέσω του ίδιου µενού Όπου υπάρχει είσοδος από το χρήστη, πρέπει να δοκιµάζονται όλες οι λειτουργίες τόσο µε σωστές όσο και µε λανθασµένες εισόδους

50 Δοκιµές συστήµατος Αφορούν την ενοποίηση δύο ή περισσοτέρων συστατικών στοιχείων µε σκοπό τη δηµιουργία ενός συστήµατος ή υποσυστήµατος. Μπορεί να αφορούν τη δοκιµή µιας επαύξησης που πρόκειται να παραδοθεί στον πελάτη. Δύο φάσεις: Δοκιµές ενοποίησης - η οµάδα δοκιµών έχει πρόσβαση στον πηγαίο κώδικα του συστήµατος. Γίνεται δοκιµή του συστήµατος κατά την ενοποίηση των συστατικών στοιχείων. Δοκιµές τελικής έκδοσης - η οµάδα δοκιµών δοκιµάζει ολόκληρο το σύστηµα που πρόκειται να παραδοθεί µε δοκιµές "µαύρου κουτιού".

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

52 Βαθµιαίες δοκιµές ενοποίησης

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

54 Δοκιµές τελικής έκδοσης Η διαδικασία της δοκιµής µιας έκδοσης του συστήµατος η οποία θα διανεµηθεί στους πελάτες. Κύριος στόχος είναι να αυξήσει το επίπεδο εµπιστοσύνης του προµηθευτή στο ότι το σύστηµα ικανοποιεί τις απαιτήσεις του. Οι δοκιµές τελικής έκδοσης αποτελούν συνήθως µια διαδικασία δοκιµών "µαύρου κουτιού" (black-box testing) ή λειτουργικών δοκιµών Βασίζονται µόνο στις προδιαγραφές του συστήµατος Τα µέλη της οµάδας δοκιµών δεν γνωρίζουν την υλοποίηση του συστήµατος.

55 Δοκιµή µαύρου κουτιού

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

57 Σενάριο δοκιµής Ζητήθηκε από µια φοιτήτρια στη Σκωτία η οποία µελετά την Αµερικανική ιστορία να γράψει µια έκθεση σχετικά µε «Τον επεκτατισµό στην Αµερικανική Δύση από το 1840 µέχρι το 1880». Για να το κάνει, πρέπει να βρει πηγές από διάφορες βιβλιοθήκες. Συνδέεται µε το σύστηµα LIBSYS και χρησιµοποιεί τη λειτουργία αναζήτησης για να διαπιστώσει αν µπορεί να προσπελάσει πρωτότυπα έγγραφα εκείνης της εποχής. Εντοπίζει πηγές σε διάφορες πανεπιστηµιακές βιβλιοθήκες των ΗΠΑ και κατεβάζει αντίγραφα από κάποιες από αυτές. Ωστόσο, για ένα έγγραφο, πρέπει να διαθέτει βεβαίωση από το πανεπιστήµιό της ότι είναι πράγµατι φοιτήτρια και ότι η χρήση του εγγράφου δεν προορίζεται για εµπορικούς σκοπούς. Η φοιτήτρια χρησιµοποιεί τη λειτουργία του LIBSYS µε την οποία µπορεί να ζητήσει τέτοια άδεια και καταχωρίζει το αίτηµά της. Αν γίνει αποδεκτό, το έγγραφο θα µεταφερθεί στον καταχωρισµένο διακοµιστή της βιβλιοθήκης και θα τυπωθεί για λογαριασµό της. Λαµβάνει ένα µήνυµα από το LIBSYS τον οποίο την πληροφορεί ότι θα λάβει ένα µήνυµα ηλεκτρονικού ταχυδροµείου µόλις το τυπωµένο έγγραφο γίνει διαθέσιµο.

58 Δοκιµές συστήµατος Δοκιµή του µηχανισµού σύνδεσης (login) µε χρήση σωστών και λανθασµένων διαπιστευτηρίων ώστε να ελεγχθεί αν οι έγκυροι χρήστες γίνονται αποδεκτοί και οι µη έγκυροι απορρίπτονται. Δοκιµή της λειτουργίας αναζήτησης µε τη χρήση ερωτηµάτων σε γνωστές πηγές ώστε να ελεγχθεί αν ο µηχανισµός αναζήτησης εντοπίζει όντως έγγραφα. Δοκιµή των λειτουργιών παρουσίασης του συστήµατος ώστε να ελεγχθεί αν οι πληροφορίες σχετικά µε τα έγγραφα εµφανίζονται σωστά. Δοκιµή του µηχανισµού αίτησης άδειας για λήψη. Δοκιµή της αυτόµατης απάντησης ηλεκτρονικού ταχυδροµείου ότι το έγγραφο είναι διαθέσιµο.

59 Περιπτώσεις χρήσης Οι περιπτώσεις χρήσης µπορούν να αποτελέσουν τη βάση για τις δοκιµές ενός συστήµατος. Βοηθούν στον προσδιορισµό των λειτουργιών που πρέπει να δοκιµαστούν και στο σχεδιασµό των απαιτούµενων περιπτώσεων δοκιµών. Από το σχετικό διάγραµµα ακολουθίας, µπορούν να προσδιοριστούν τα δεδοµένα εισόδου και εξόδου που πρέπει να δηµιουργηθούν για το σκοπό των δοκιµών.

60 Διάγραµµα ακολουθίας για τη συλλογή µετεωρολογικών δεδοµένων

61 Δοκιµές απόδοσης Στα πλαίσια των δοκιµών τελικής έκδοσης µπορεί να περιλαµβάνεται και η δοκιµή για ανακύπτουσες ιδιότητες του συστήµατος όπως η απόδοση και η αξιοπιστία. Οι δοκιµές απόδοσης συνήθως προβλέπουν το σχεδιασµό µιας σειράς δοκιµών, κατά τη διάρκεια των οποίων το φορτίο αυξάνεται σταθερά µέχρι η απόδοση του συστήµατος να µην είναι πλέον αποδεκτή.

62 Δοκιµές καταπόνησης Οδηγούν το σύστηµα να λειτουργήσει πέρα από τα σχεδιαστικά όριά του. Η καταπόνηση του συστήµατος συχνά προκαλεί την αποκάλυψη των ατελειών. Συµπεριφορά σε αστοχία κατά τη δοκιµή καταπόνησης. Η αστοχία του συστήµατος δεν πρέπει να είναι ολοκληρωτική. Η δοκιµή καταπόνησης ελέγχει για ενδεχόµενη µη αποδεκτή έλλειψη διαθεσιµότητας υπηρεσίας ή απώλεια δεδοµένων. Οι δοκιµές καταπόνησης σχετίζονται ιδιαίτερα µε κατανεµηµένα συστήµατα των οποίων η απόδοσή υποβαθµίζεται σηµαντικά καθώς υπερφορτώνεται το δίκτυο.

63 Δοκιµές συστατικών στοιχείων Οι δοκιµές συστατικών στοιχείων αφορούν τη διαδικασία δοκιµής µεµονωµένων συστατικών στοιχείων του συστήµατος. Είναι µια διαδικασία δοκιµών για ατέλειες. Τα συστατικά στοιχεία µπορεί να είναι: Μεµονωµένες συναρτήσεις ή µέθοδοι στο εσωτερικό ενός αντικειµένου Κλάσεις αντικειµένων µε πολλά γνωρίσµατα και µεθόδους Σύνθετα συστατικά στοιχεία που διαθέτουν καθορισµένες διασυνδέσεις οι οποίες χρησιµοποιούνται για πρόσβαση στις λειτουργικές δυνατότητές τους

64 Δοκιµές κλάσεων αντικειµένων Για πλήρη κάλυψη µιας κλάσης αντικειµένων από πλευράς δοκιµών απαιτούνται Η µεµονωµένη δοκιµή κάθε λειτουργίας που σχετίζεται µε το αντικείµενο Ο ορισµός κάθε γνωρίσµατος του αντικειµένου και η αλληλεπίδραση µε αυτό Η χρήση του αντικειµένου σε όλες τις δυνατές καταστάσεις Η κληρονοµικότητα δυσχεραίνει το σχεδιασµό δοκιµών κλάσεων αντικειµένων αφού οι πληροφορίες που πρέπει να υποβληθούν σε δοκιµή δεν βρίσκονται σε µία θέση.

65 Δοκιµές διασυνδέσεων Ο στόχος είναι η ανίχνευση ελαττωµάτων που οφείλονται σε σφάλµατα των διασυνδέσεων ή σε µη έγκυρες παραδοχές που αφορούν τις διασυνδέσεις. Ιδιαίτερα σηµαντικές στην αντικειµενοστρεφή ανάπτυξη αφού τα αντικείµενα ορίζονται από τις διασυνδέσεις τους

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

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

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

69 Οδηγίες για τις δοκιµές διασυνδέσεων Σχεδιάζουµε τις δοκιµές έτσι ώστε οι τιµές των παραµέτρων µιας εξωτερικής διεργασίας να βρίσκονται στα όριά τους. Πάντα δοκιµάζουµε τις παραµέτρους των δεικτών µε µηδενικούς δείκτες. Σχεδιάζουµε δοκιµές που προκαλούν την αστοχία του συστατικού στοιχείου. Σε συστήµατα µεταβίβασης µηνυµάτων χρησιµοποιούµε δοκιµές καταπόνησης. Σε συστήµατα κοινόχρηστης µνήµης, µεταβάλλουµε τη σειρά ενεργοποίησης των συστατικών στοιχείων.

70 Σχεδιασµός δοκιµαστικών περιπτώσεων Αναφέρεται στο σχεδιασµό των περιπτώσεων δοκιµών (είσοδοι και προβλεπόµενοι έξοδοι) που ελέγχουν το σύστηµα. Σκοπός της διαδικασίας σχεδιασµού περιπτώσεων δοκιµών είναι η δηµιουργία ενός συνόλου δοκιµών που είναι αποτελεσµατικές στην επικύρωση και τον εντοπισµό ατελειών ενός προγράµµατος. Προσεγγίσεις σχεδιασµού: Δοκιµές βάσει απαιτήσεων Δοκιµές διαµέρισης Δοκιµές δοµής

71 Δοκιµές βάσει απαιτήσεων Μια γενική αρχή της τεχνολογίας απαιτήσεων είναι ότι κάθε απαίτηση πρέπει να µπορεί να δοκιµαστεί. Οι δοκιµές βάσει απαιτήσεων αποτελούν µια τεχνική δοκιµών επικύρωσης, κατά την οποία κάθε απαίτηση εξετάζεται µε στόχο την παραγωγή ενός συνόλου δοκιµών.

72 Απαιτήσεις του συστήµατος LIBSYS Ο χρήστης πρέπει να είναι σε θέση να εκτελεί αναζητήσεις είτε σε όλο το αρχικό σύνολο των βάσεων δεδοµένων είτε σε ένα υποσύνολό τους. Το σύστηµα θα παρέχει στο χρήστη κατάλληλα προγράµµατα προβολής για την ανάγνωση εγγράφων του αποθετηρίου. Σε κάθε παραγγελία πρέπει να αποδίδεται ένα µοναδικό αναγνωριστικό (ORDER_ID), το οποίο ο χρήστης θα µπορεί να αντιγράψει στον µόνιµο αποθηκευτικό χώρο του λογαριασµού.

73 Δοκιµές για το σύστηµα LIBSYS Ο χρήστης αναζητάει στοιχεία που είναι γνωστό ότι υπάρχουν και στοιχεία που είναι γνωστό ότι δεν υπάρχουν, όταν το σύνολο των βάσεων δεδοµένων περιλαµβάνει µόνο µία βάση δεδοµένων. Ο χρήστης αναζητάει στοιχεία που είναι γνωστό ότι υπάρχουν και στοιχεία που είναι γνωστό ότι δεν υπάρχουν, όταν το σύνολο των βάσεων δεδοµένων περιλαµβάνει δύο βάσεις δεδοµένων. Ο χρήστης αναζητάει στοιχεία που είναι γνωστό ότι υπάρχουν και στοιχεία που είναι γνωστό ότι δεν υπάρχουν, όταν το σύνολο των βάσεων δεδοµένων περιλαµβάνει περισσότερες από δύο βάσεις δεδοµένων. Ο χρήστης επιλέγει µία βάση δεδοµένων από το σύνολο των βάσεων δεδοµένων, και αναζητάει στοιχεία που είναι γνωστό ότι υπάρχουν και στοιχεία που είναι γνωστό ότι δεν υπάρχουν. Ο χρήστης επιλέγει περισσότερες από µία βάσεις δεδοµένων από το σύνολο των βάσεων δεδοµένων, και αναζητάει στοιχεία που είναι γνωστό ότι υπάρχουν και στοιχεία που είναι γνωστό ότι δεν υπάρχουν.

74 Δοκιµές διαµέρισης Τα δεδοµένα εισόδου και τα αποτελέσµατα της εξόδου ενός προγράµµατος συνήθως ανήκουν σε µια σειρά από διαφορετικές κατηγορίες των οποίων τα µέλη έχουν κάποια κοινά χαρακτηριστικά. Καθεµιά από αυτές τις κατηγορίες είναι µια διαµέριση ισοδυναµίας ή ένας τοµέας ισοδυναµίας όπου το πρόγραµµα συµπεριφέρεται µε ισοδύναµο τρόπο για κάθε µέλος της κατηγορίας. Πρέπει να επιλέγονται περιπτώσεις δοκιµής από κάθε διαµέριση.

75 Διαµερίσεις ισοδυναµίας

76 Διαµερίσεις ισοδυναµίας

77 Προδιαγραφή ρουτίνας αναζήτησης procedure Search (Key : ELEM ; T: SEQ of ELEM; Found : in out BOOLEAN; L: in out ELEM_INDEX) ; Προσυνθήκη -- η ακολουθία έχει τουλάχιστον ένα στοιχείο T FIRST <= T LAST Μετασυνθήκη -- το στοιχείο υπάρχει και αναφέρεται από το L ( Found and T (L) = Key) ή -- το στοιχείο δεν περιέχεται στην ακολουθία ( not Found and not (exists i, T FIRST >= i <= T LAST, T (i) = Key ))

78 Ρουτίνα αναζήτησης διαµερίσεις εισόδου Είσοδοι που συνάδουν µε τις προσυνθήκες Είσοδοι στις οποίες κάποια προσυνθήκη δεν ισχύει Είσοδοι όπου το στοιχείο-κλειδί είναι µέρος της ακολουθίας Είσοδοι όπου το στοιχείο-κλειδί δεν είναι µέρος της ακολουθίας

79 Οδηγίες δοκιµών (ακολουθίες) Δοκιµάζουµε το λογισµικό µε ακολουθίες οι οποίες έχουν µία µόνο τιµή. Σε κάθε δοκιµή χρησιµοποιούµε ακολουθίες διαφορετικού µεγέθους. Δηµιουργούµε δοκιµές οι οποίες θα προσπελάζουν το πρώτο, το µεσαίο και το τελευταίο στοιχείο κάθε ακολουθίας. Πραγµατοποιούµε δοκιµές µε ακολουθίες µηδενικού µήκους.

80 Ρουτίνα αναζήτησης διαµερίσεις εισόδου Ακολουθία Μία τιµή Μία τιµή Περισσότερες από 1 τιµές Περισσότερες από 1 τιµές Περισσότερες από 1 τιµές Περισσότερες από 1 τιµές Στοιχείο Στην ακολουθία Δεν περιέχεται στην ακολουθία Το πρώτο στοιχείο της ακολουθίας Το τελευταίο στοιχείο της ακολουθίας Το µεσαίο στοιχείο της ακολουθίας Δεν περιέχεται στην ακολουθία Ακολουθία εισόδου (T) Κλειδί (Key) Έξοδος (Found, L) αληθές, ψευδές, ;; 17, 29, 21, αληθές, 1 41, 18, 9, 31, 30, 16, αληθές, 7 17, 18, 21, 23, 29, 41, αληθές, 4 21, 23, 29, 33, ψευδές, ;;

81 Δοκιµές δοµής Μερικές φορές ονοµάζεται και δοκιµή "λευκού κουτιού". Δηµιουργούνται περιπτώσεις δοκιµών ανάλογα µε τη δοµή του προγράµµατος. Για τον προσδιορισµό επιπλέον περιπτώσεων δοκιµών χρησιµοποιείται η γνώση και η κατανόηση του προγράµµατος. Ο αντικειµενικός στόχος είναι ο έλεγχος όλων των εντολών του προγράµµατος (όχι όλων των συνδυασµών διαδροµών).

82 Δοκιµές δοµής

83 Δυαδική αναζήτηση ισοδυν. διαµερίσεις Ικανοποιούνται οι προσυνθήκες, το στοιχείο-κλειδί ανήκει στον πίνακα. Ικανοποιούνται οι προσυνθήκες, το στοιχείο-κλειδί δεν ανήκει στον πίνακα. Δεν ικανοποιούνται οι προσυνθήκες, το στοιχείοκλειδί ανήκει στον πίνακα. Δεν ικανοποιούνται οι προσυνθήκες, το στοιχείοκλειδί δεν ανήκει στον πίνακα. Ο πίνακας εισόδου έχει µία µόνο τιµή. Ο πίνακας εισόδου έχει ζυγό πλήθος τιµών. Ο πίνακας εισόδου έχει µονό πλήθος τιµών.

84 Δυαδική αναζήτηση ισοδυν. διαµερίσεις

85 Δυαδική αναζήτηση - περιπτώσεις δοκιµών Πίνακας εισόδου (Τ) Κλειδί Έξοδος (Found, L) (Key) αληθές, ψευδές, ;; 17, 21, 23, αληθές, 1 9, 16, 18, 30, 31, 41, αληθές, 7 17, 18, 21, 23, 29, 38, αληθές, 4 17, 18, 21, 23, 29, 33, αληθές, 3 12, 18, 21, 23, αληθές, 4 21, 23, 29, 33, ψευδές, ;;

86 Δοκιµές διαδροµής Ο αντικειµενικός στόχος των δοκιµών διαδροµής είναι η εξασφάλιση ότι κάθε διαδροµή του προγράµµατος εκτελείται τουλάχιστον µία φορά µε το χρησιµοποιούµενο σύνολο περιπτώσεων δοκιµών. Το σηµείο εκκίνησης για τις δοκιµές διαδροµής είναι ένα γράφηµα ροής του προγράµµατος, το οποίο αποτελείται από κόµβους που αντιπροσωπεύουν αποφάσεις και ακµές που δείχνουν τη ροή του ελέγχου. Εποµένως, κάθε εντολή υπό συνθήκη εµφανίζεται ως κόµβος στο γράφηµα ροής.

87 Γράφηµα ροής δυαδικής αναζήτησης

88 Ανεξάρτητες διαδροµές 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14 1, 2, 3, 4, 5, 14 1, 2, 3, 4, 5, 6, 7, 11, 12, 5, 1, 2, 3, 4, 6, 7, 2, 11, 13, 5, Πρέπει να παραχθούν περιπτώσεις δοκιµών ώστε να εκτελεστεί καθεµιά από αυτές τις διαδροµές Για να ελέγξουµε αν έχουν εκτελεστεί όλες οι διαδροµές, µπορούµε να χρησιµοποιήσουµε ένα δυναµικό αναλυτή προγραµµάτων.

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

90 Ένα εργαστήριο δοκιµών

91 Προσαρµογή εργαλείων δοκιµών Ίσως απαιτείται η δηµιουργία σεναρίων για προσοµοιωτές διασύνδεσης χρήστη και υποδειγµάτων για γεννήτριες δοκιµαστικών δεδοµένων. Ίσως θα πρέπει να δηµιουργηθούν µε µη αυτόµατο τρόπο σύνολα µε αποτελέσµατα δοκιµών. Ίσως είναι απαραίτητη η δηµιουργία µονάδων σύγκρισης αρχείων ειδικής χρήσης.

92 Ενδεικτικά Ζητήµατα Επαλήθευση και Επικύρωση Ορισµός εννοιών Που και γιατί χρησιµοποιείται η κάθε έννοια Διαφορές µεταξύ τους Πως (µέθοδοι/τεχνικές) υλοποιείται η κάθε µία από αυτές Τεχνικές Στατικής Επαλήθευσης Στόχος Αυτοµατοποίηση/Εργαλεία Μπορούν να βρουν όλα τα σφάλµατα?? Ποια δεν µπορούν να εντοπίσουν?? Διαδικασία Επιθεώρησης Προγράµµατος Διαδικασία Δοκιµών Που αποσκοπεί? Οργάνωση διαδικασίας δοκιµών Ποιοι συµµετέχουν Διαδικασία ανάπτυξης "καθαρής αίθουσας" Που αποσκοπεί Βασίζεται στη βαθµιαία ανάπτυξη, τη στατική επαλήθευση και τις στατιστικές δοκιµές του λογισµικού Ποιο το όφελος και οι δυσκολίες

93 Ενδεικτικά Ζητήµατα Στόχος Δοκιµών Κατηγοριοποίηση Δοκιµών Δοκιµή Συστατικού Στοιχείου VS Δοκιµή Συστήµατος Ποιοι είναι «υπεύθυνοι» για τη διεξαγωγή κάθε µιας από αυτές Δοκιµές Ενοποίησης Συσχετίσεις ανάµεσα στις διαφορές κατηγορίες δοκιµών (Υπάρχει προτεινόµενη σειρά εκτέλεσης?) Αν η λειτουργία των συστατικών στοιχείων είναι ορθή, αυτό εξασφλίζει και την ορθή λειτουργία του συστήµατος? Επαλήθευση απαιτήσειεων Πως ελέγχεται η ορθή λειτουργία του συστήµατος? Πως περιλαµβάνονται οι µη λειτουργικές απαιτήσεις στις δοκιµές? Δοκιµές για ατέλειες Δοκιµές διασύνδεσης Δοκιµές δοµής Περιπτώσεις δοκιµής Στόχος Δηµιουργία διαµερίσεων ισοδυναµίας Αυτοµατοποίηση Δοκιµών Σε ποιο βαθµό είναι εφικτή

94 Ενδεικτική Βιβλιογραφία Κεφάλαιο 22 ο «Επαλήθευση και Επικύρωση» του βιβλίου «Βασικές Αρχές Τεχνολογίας Λογισµικού» του Ian Sommerville Κεφάλαιο 23 ο «Δοκιµές Λογισµικού» του βιβλίου «Βασικές Αρχές Τεχνολογίας Λογισµικού» του Ian Sommerville Κεφάλαιο 8 ο Προχωρώντας προς το σχεδιασµό (σελ ) του βιβλίου «Ανάλυση και Σχεδιασµός Συστηµάτων µε τη UML 2.0 των Davis, Wixon, Tegarden Κεφάλαιο 13 ο Κατασκευή (σελ ) του βιβλίου «Ανάλυση και Σχεδιασµός Συστηµάτων µε τη UML 2.0 των Davis, Wixon, Tegarden

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

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

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

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

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

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

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

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

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

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

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

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

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

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

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

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

Ενότητα 9 (κεφάλαιο 24) Διαχείριση Ποιότητας

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

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

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

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

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

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

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

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

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

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

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

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

Δομημένος Προγραμματισμός

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

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

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

Διαδικασίες παραγωγής λογισμικού. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 4 Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #2 2 Γενικά Στο Εργαστήριο αυτό θα αναλύσουμε τη χρήση της βασικής εντολής ελέγχου ροής

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

Περιεχόμενα. Κεφάλαιο 2 Κοινωνικοτεχνικά συστήματα 49

Περιεχόμενα. Κεφάλαιο 2 Κοινωνικοτεχνικά συστήματα 49 Περιεχόμενα Πρόλογος 5 Μέρος 1 Επισκόπηση 27 Κεφάλαιο 1 Εισαγωγή 29 1.1 Συχνές ερωτήσεις για την τεχνολογία λογισμικού 31 1.2 Επαγγελματική και ηθική ευθύνη 41 Κύρια σημεία 46 Πρόσθετες πηγές 46 Ασκήσεις

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

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

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

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

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Έλεγχος Λογισμικού Προβλήματα Λογισμικού 2 Μια ματιά στα παλιά: Σφάλμα: Ελάττωμα: Ανθρώπινο λάθος (σε προδιαγραφές, τεκμηρίωση κλπ) «Κωδικοποίηση του σφάλματος» στο

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

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

Τεχνολογίες Υλοποίησης Αλγορίθµων Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 3 1 / 25 Ενότητα 3 οκιµή Προγραµµάτων (Program Testing)

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

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

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

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

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

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

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

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

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

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

Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού

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

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

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

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

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

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4) Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4) Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Η διαδικαστική γλώσσα προγραμματισμού WHILE Τριάδες Hoare Μερική και Ολική Ορθότητα Προγραμμάτων Κανόνες

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

Έλεγχος Λογισμικού. Software Testing

Έλεγχος Λογισμικού. Software Testing Έλεγχος Λογισμικού Software Testing Γενικά ΣΤΑΤΙΚΟΣ ΕΛΕΓΧΟΣ: Ο κώδικας εξετάζεται για τον εντοπισμό λαθών ή αδυνάμων σημείων ΔΥΝΑΜΙΚΟΣΕΛΕΓΧΟΣ: Ένα συστατικό κώδικα εκτελείται µε ένα σύνολο από δεδομένα

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

ΟΡΟΛΟΓΙΑ. απαιτήσεις αξιοπιστίας, στις απαιτήσεις ασφάλειας, στις απαιτήσεις λειτουργίας κλπ.

ΟΡΟΛΟΓΙΑ. απαιτήσεις αξιοπιστίας, στις απαιτήσεις ασφάλειας, στις απαιτήσεις λειτουργίας κλπ. ΟΡΟΛΟΓΙΑ Γενικές έννοιες Ποιότητα: ο βαθμός στον οποίο ένα σύνολο εγγενών χαρακτηριστικών εκπληρώνει τις απαιτήσεις. Απαίτηση: ανάγκη ή προσδοκία που δηλώνεται ρητώς, συνάγεται ως συμπέρασμα ή προκύπτει

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ ΘΕΜΑ Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και, δίπλα,

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

ΚΕΦΑΛΑΙΑ XIII, XIV. Εκσφαλμάτωση προγράμματος - Κύκλος Ζωής Λογισμικού

ΚΕΦΑΛΑΙΑ XIII, XIV. Εκσφαλμάτωση προγράμματος - Κύκλος Ζωής Λογισμικού ΚΕΦΑΛΑΙΑ XIII, XIV Ένας προγραμματιστής ανεξάρτητα από το πόσο ικανός είναι, όταν δημιουργεί ένα πρόγραμμα, είναι φυσικό να κάνει ορισμένα λάθη. Σε ένα πρόγραμμα είναι δυνατό να παρουσιαστούν διαφορετικής

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

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

ΕΠΑΛΗΘΕΥΣΗ ΚΑΙ ΕΠΙΚΥΡΩΣΗ ΣΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Τ.Ε.Ι. ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ ΕΠΑΛΗΘΕΥΣΗ ΚΑΙ ΕΠΙΚΥΡΩΣΗ ΣΤΗΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΑΝΑΣΙΔΟΥ ΧΡΙΣΤΙΝΑ ΜΑΙΟΣ 2009 ΕΠΟΠΤΗΣ ΚΑΘΗΓΗΤΗΣ Μαρκουλίδης Αναστάσιος Εκπονηθείσα

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

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

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

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

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

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

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

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

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

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

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη

Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη Πώς βλέπουμε τις ιδιότητες των αντικειμένων που έχουμε δημιουργήσει; Ανοίγουμε το σενάριο CarWorld και δημιουργούμε μερικά αντικείμενα των κλάσεων

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

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

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

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

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

Σχεδιασµός Λογισµικού

Σχεδιασµός Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Σχεδιασµός Λογισµικού Μάρα Νικολαΐδου Αρχιτεκτονικές Εφαρµογών Γενικές αρχιτεκτονικές εφαρµογών Ένα σύστηµα εφαρµογών είναι σχεδιασµένο ώστε να

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

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

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

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

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ.

Περιεχόµενα. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής. Π.Σ. ιαχείρισης Πράξεων. Π.Σ. ιοίκησης. Κατηγορίες Π.Σ. Ο κύκλος ζωής Π.Σ. Πληροφοριακά Συστήµατα: Κατηγορίες και Κύκλος Ζωής Περιεχόµενα Κατηγορίες Π.Σ. ιαχείρισης Πράξεων ιοίκησης Υποστήριξης Αποφάσεων Έµπειρα Συστήµατα Ατόµων και Οµάδων Ο κύκλος ζωής Π.Σ. Ορισµός Φάσεις Χρήστες

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

Προδιαγραφές Απαιτήσεων Επικύρωση Απαιτήσεων

Προδιαγραφές Απαιτήσεων Επικύρωση Απαιτήσεων Προδιαγραφές Απαιτήσεων Επικύρωση Απαιτήσεων περιεχόμενα παρουσίασης Προδιαγραφές Απαιτήσεων Έγγραφο Προδιαγραφών Απαιτήσεων λογισμικού (ΕΠΑΛ) Επικύρωση απαιτήσεων Ιχνηλάτηση απαιτήσεων προδιαγραφές απαιτήσεων

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

Προγραμματισμός I (Θ)

Προγραμματισμός I (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα της γλώσσας C, το Dev-C++, το οποίο είναι εφαρμογή που τρέχει

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

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

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

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

Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας

Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας 1 Ατζέντα Εισαγωγή Εργαλεία Ανοιχτού Λογισμικού για Μηχανικούς Λογισμικού Χρήση και

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

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

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

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

Έλεγχος Προγραμμάτων και Συστήματος

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

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

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

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Εισαγωγή στις Αρχές της επιστήμης των ΗΥ Ερωτήσεις και ασκήσεις για επανάληψη 1. Τι είναι πρόβλημα (σελ 14) 2. Ποιες είναι οι κατηγορίες προβλημάτων με βάση την επίλυση; Δώστε τον ορισμό για κάθε μια κατηγορία.

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

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

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

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

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

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΜΟΝΟ ΝΕΟ ΣΥΣΤΗΜΑ Γ ΗΜΕΡΗΣΙΩΝ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΜΟΝΟ ΝΕΟ ΣΥΣΤΗΜΑ Γ ΗΜΕΡΗΣΙΩΝ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΑΡΑΣΚΕΥΗ 27 ΜΑΪΟΥ 2016 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ

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

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

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

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

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

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

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

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

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

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

Διδακτική της Πληροφορικής

Διδακτική της Πληροφορικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 11: Διδακτική της έννοιας της μεταβλητής Σταύρος Δημητριάδης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19 Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών Κεφ. 2 Θεωρητική Επιστήμη Υπολογιστών 2.3.1.1 Έννοια προγράμματος Τι είναι πρόγραμμα και τι προγραμματισμός; Πρόγραμμα είναι το σύνολο εντολών που χρειάζεται

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

Μοντέλο συστήματος διαχείρισης της ποιότητας

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

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

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

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

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

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ 10 η Διάλεξη C++ - Πίνακες Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Ανακεφαλαίωση Κατά την κλήση μιας συνάρτησης κατ αξία οι τιμές των ορισμάτων αντιγράφονται στις αντίστοιχες τυπικές παραμέτρους

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

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

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

Δομημένος Προγραμματισμός

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

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

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

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

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

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

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

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

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

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

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

Περιεχόμενα. Πρόλογος... 21

Περιεχόμενα. Πρόλογος... 21 Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31

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

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

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

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

Επώνυµη ονοµασία. Ενότητα 13 η Σχεδίαση,Επιλογή, ιανοµή Προϊόντων 1

Επώνυµη ονοµασία. Ενότητα 13 η Σχεδίαση,Επιλογή, ιανοµή Προϊόντων 1 Επώνυµη ονοµασία Η επώνυµη ονοµασία είναι αυτή η ονοµασία που ξεχωρίζει τα προϊόντα και τις υπηρεσίες µας από αυτές των ανταγωνιστών. Οι σχετικές αποφάσεις θα επηρεαστούν από τις εξής ερωτήσεις: 1. Χρειάζεται

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ KAI Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΤΑΡΤΗ 06 ΣΕΠΤΕΜΒΡΙΟΥ 2017 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

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

Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων.

Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων. Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων. Στην προηγούμενη Εκπαιδευτική Μονάδα παρουσιάστηκαν ορισμένα χρήσιμα παραδείγματα διαδεδομένων εργαλείων για τον χρονοπρογραμματισμό

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

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

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

Ανάλυση της Ορθότητας Προγραμμάτων

Ανάλυση της Ορθότητας Προγραμμάτων Ανάλυση της Ορθότητας Προγραμμάτων Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Η διαδικαστική γλώσσα προγραμματισμού WHILE Τριάδες Hoare Μερική και Ολική Ορθότητα Προγραμμάτων ΚανόνεςΑπόδειξηςΜερικήςΟρθότητας

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

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

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

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

Ανάλυση της Ορθότητας Προγραμμάτων

Ανάλυση της Ορθότητας Προγραμμάτων Ανάλυση της Ορθότητας Προγραμμάτων Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Η διαδικαστική γλώσσα προγραμματισμού WHILE Τριάδες Hoare Μερική και Ολική Ορθότητα Προγραμμάτων Κανόνες Απόδειξης Μερικής

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

Φρ. Κουτελιέρης. Επίκουρος Καθηγητής Παν/µίου Ιωαννίνων ΠΛΗΡΟΦΟΡΙΚΗ Ι

Φρ. Κουτελιέρης. Επίκουρος Καθηγητής Παν/µίου Ιωαννίνων ΠΛΗΡΟΦΟΡΙΚΗ Ι Φρ. Κουτελιέρης Επίκουρος Καθηγητής Παν/µίου Ιωαννίνων ΠΛΗΡΟΦΟΡΙΚΗ Ι Πληροφορική Ι Ακαδ. Έτος 2008-9 1/30 ΚΕΦΑΛΑΙΟ 2 Πληροφορική Ι Ακαδ. Έτος 2008-9 2/30 1. Εισαγωγή 3. Ανάπτυξη αλγορίθµου 4. οµηµένος

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

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

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

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

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης Συγγραφή κώδικα, δοκιμασία, επαλήθευση Γιάννης Σμαραγδάκης Προδιαγραφή απαιτήσεων Σχεδιασμός συνεπείς σχέσεις Υψηλό επίπεδο συνεπείς σχέσεις Χαμηλό επίπεδο συνεπείς σχέσεις Πλάνο δοκιμών Κώδικας Συγγραφή

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

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

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

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

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

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ ΚΕΦΑΛΑΙΟ 2 ο ΚΕΦΑΛΑΙΟ 7 ο ΕΡΩΤΗΣΕΙΣ ΓΕΝΙΚΑ ΠΕΡΙ ΑΛΓΟΡΙΘΜΩΝ 1. Έστω ότι ο καθηγητής σας δίνει δύο αριθμούς και σας ζητάει να του πείτε πόσο είναι το άθροισμά τους. Διατυπώστε

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2016-2017 Πάτρα 3/5/2017 Ονοματεπώνυμο:.. Α1. Να γράψετε στην κόλλα σας τον αριθμό

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

Η ΕΣΩΤΕΡΙΚΗ ΕΠΙΘΕΩΡΗΣΗ ΣΑΝ ΚΙΝΗΤΗΡΙΟΣ ΥΝΑΜΗ ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑΣ ΕΝΟΣ ΣΥΣΤΗΜΑΤΟΣ ΠΟΙΟΤΗΤΑΣ ISO 9001

Η ΕΣΩΤΕΡΙΚΗ ΕΠΙΘΕΩΡΗΣΗ ΣΑΝ ΚΙΝΗΤΗΡΙΟΣ ΥΝΑΜΗ ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑΣ ΕΝΟΣ ΣΥΣΤΗΜΑΤΟΣ ΠΟΙΟΤΗΤΑΣ ISO 9001 Αθήνα 30-6-08 Η ΕΣΩΤΕΡΙΚΗ ΕΠΙΘΕΩΡΗΣΗ ΣΑΝ ΚΙΝΗΤΗΡΙΟΣ ΥΝΑΜΗ ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑΣ ΕΝΟΣ ΣΥΣΤΗΜΑΤΟΣ ΠΟΙΟΤΗΤΑΣ ISO 9001 Από Γεώργιο Παπαλόη i H εσωτερική επιθεώρηση ενός συστήµατος διαχείρισης ποιότητας ISO 9001

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