3642 Επαλήθευση, Επικύρωση και Συντήρηση Λογισμικού

Μάθημα Επιλογής Πυρήνα,  ΣΤ’ εξάμηνο, 7 μονάδες ECTS

Διδάσκων: Καθηγητής Α’ βαθμίδας Νικόλαος Μαλεύρης

URL: https://eclass.aueb.gr/courses/INF198/

Περιεχόμενο

Σημασία προδιαγραφών λογισμικού και απαιτήσεων του χρήστη. Πρακτική προγραμματισμού και η σημασία των γλωσσών προγραμματισμού στην ανάπτυξη προγραμμάτων και λογισμικού. Παραγωγή λογισμικού με σκοπό την υψηλή ποιότητά του. Επαλήθευση λογισμικού και αντίστοιχες τεχνικές. Επικύρωση λογισμικού για τήρηση προδιαγραφών και απαιτήσεών του. Τυπικές μέθοδοι επαλήθευσης του λογισμικού. Ποιότητα λογισμικού, τεχνικές για τη διασφάλισή της. Τεχνικές δοκιμής (testing). Έμφαση σε τεχνικές Black Box και White Box. Εύρεση δεδομένων ελέγχου ικανών για την ανεύρεση σφαλμάτων και εμπέδωσης εμπιστοσύνης στη λειτουργία του λογισμικού. Φορητότητα και επαναχρησιμοποίηση του λογισμικού. Συντήρηση λογισμικού. Έμφαση στην ανάγκη αποτελεσματικών μεθόδων για τη συντήρηση του λογισμικού. Σημασία τεκμηρίωσης λογισμικού και ελέγχων του. Εκτίμηση κόστους ανάπτυξης του λογισμικού. Αρχές αξιοπιστίας λογισμικού. Ιδιαιτερότητες αντικειμενοστρεφούς λογισμικού και εφαρμογών στο διαδίκτυο. Εργαλεία σε σχέση με τις παραπάνω ενότητες.

Μαθησιακά Αποτελέσματα

Μετά την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές θα είναι σε θέση:

  • Να συνειδητοποιούν ότι όταν ένα κομμάτι λογισμικού παράγει αποτελέσματα για κάποια δεδομένα δεν σημαίνει ότι θα παράγει σωστά αποτελέσματα και για κάθε άλλο σύνολο δεδομένων.
  • Να αντιληφθούν ότι αν ακολουθούνται συγκεκριμένες μεθοδολογίες το παραγόμενο λογισμικό θα είναι υψηλής ποιότητας και επομένως και η συντήρησή του πιο εύκολη.
  • Να αντιλαμβάνονται πως πρέπει να χρησιμοποιούνται κανόνες και ποσοτικά κριτήρια ώστε να διασφαλίζεται η υψηλή ποιότητα του λογισμικού.
  • Να εφαρμόζουν τεχνικές για την ανεύρεση σφαλμάτων σε ένα κομμάτι λογισμικού.

Προαπαιτούμενα Μαθήματα

Για να εγγραφεί στο μάθημα, ο φοιτητής πρέπει να έχει εξεταστεί επιτυχώς σε προηγούμενο εξάμηνο είτε στο μάθημα «Προγραμματισμός Υπολογιστών με JAVA» είτε στο μάθημα «Εισαγωγή στον Προγραμματισμό Υπολογιστών». Όμως, συνιστάται στους φοιτητές να έχουν εξεταστεί επιτυχώς σε προηγούμενο εξάμηνο και στα δύο αυτά μαθήματα.

Συνιστώμενη Βιβλιογραφία

  • Επαλήθευση, Επικύρωση και Συντήρηση Λογισμικού, Ν. Μαλεύρης, πανεπιστημιακές παραδόσεις, ΟΠΑ, 2015.
  • Βασικές Αρχές Τεχνολογίας Λογισμικού, I. Sommervile, Εκδόσεις Κλειδάριθμος, 2009.
  • Software Testing and Analysis: Process, Principles and Techniques, M. Pezze, M. Young, Wiley, 2008.
  • Software Testing: A Craftsman’s Approach, P. C. Jorgensen, CRC Press, 2013.

Διδακτικές και Μαθησιακές Μέθοδοι

Διαλέξεις (2 διαλέξεις των 2 ωρών εβδομαδιαίως), φροντιστήρια (1 φροντιστήριο των 2 ωρών ανά 2 εβδομάδες), και ατομική ή ομαδική προαιρετική εργασία.

Μέθοδοι Αξιολόγησης/Βαθμολόγησης

Για τους φοιτητές που δεν έχουν πάρει εργασία, ο τελικός βαθμός προκύπτει από τη γραπτή τελική εξέταση του μαθήματος. Για τους υπόλοιπους, ο τελικός βαθμός είναι ο σταθμισμένος μέσος όρος του βαθμού της γραπτής τελικής εξέτασης (με βάρος 60%) και του βαθμού της εργασίας (με βάρος 40%).