Παρουσίαση/Προβολή
Ποιότητα Λογισμικού (Θ)
(ECE_INF950) - Σωτήριος Χριστοδούλου
Περιγραφή Μαθήματος
Η έννοια της ποιότητας λογισμικού. Η σημασία των προδιαγραφών λογισμικού και των απαιτήσεων του χρήστη. Το βασικό πρότυπο ποιότητας λογισμικού ISO 9126 και η εξέλιξή του. Προβλήματα στη μέτρηση ποιοτικών χαρακτηριστικών λογισμικού. Μετρικές λογισμικού και κατηγορίες (εσωτερικές, εξωτερικές, κά). Aντικειμενοστραφής μετρικές. Μεταμετρικές και ανάλυση μετρικών. Εργαλεία μέτρησης μετρικών. Οι δραστηριότητες της επαλήθευσης και επικύρωσης (Ε&Ε) λογισμικού και η θέση τους στον κύκλο ζωής λογισμικού. Στατικές και δυναμικές τυπικές μέθοδοι Ε&Ε του λογισμικού. Οι τρεις φάσεις ελέγχου: δοκιμή μονάδων, δοκιμή συγκρότησης, δοκιμή επικύρωσης. Τεχνικές σχεδίασης περιπτώσεων ελέγχου για το λειτουργικό έλεγχο του λογισμικού (έλεγχος αδιαφανούς κουτιού), για τον δομικό έλεγχο του λογισμικού (έλεγχος διαφανούς κουτιού) και για τον έλεγχο των διεπαφών ανάμεσα στα τμήματα που συγκροτούν ένα σύστημα λογισμικού. Μέθοδοι εκσφαλμάτωσης λογισμικού, όπως τεχνικές κατά μέτωπο επίθεσης, μέθοδος οπισθοδρόμησης, τεχνικές εντοπισμού του αιτίου του σφάλματος. Έλεγχος απόδοσης (έλεγχος φορτίου και έλεγχος έντασης) πολυχρηστικών εφαρμογών, και πιο συγκεκριμένα εφαρμογών Παγκοσμίου Ιστού. Συντήρηση, φορητότητα, επαναχρησιμοποίηση του λογισμικού. Σημασία τεκμηρίωσης λογισμικού. Εισαγωγή στις τυπικές προδιαγραφές και στα δίκτυα Petri. Εργαλεία για τη σχεδίαση δικτύων Petri και πρακτική εφαρμογή τους.
Ημερομηνία δημιουργίας
Δευτέρα 19 Οκτωβρίου 2020
-
Μαθησιακοί στόχοι
Βασικός στόχος του μαθήματος είναι η εκμάθηση των βασικών εννοιών, μεθόδων και τεχνικών που αφορούν στη διαχείριση και διασφάλιση της Ποιότητας Λογισμικού και πως αυτές εφαρμόζονται.
Λέξεις Κλειδιά: Επαλήθευση, Επικύρωση, Στατική Ανάλυση, Έλεγχος Λογισμικού, Περίπτωση Ελέγχου, Λειτουργικός Έλεγχος, Δομικός Έλεγχος, Έλεγχος Διεπαφών, Εκσφαλμάτωση, Έλεγχος Απόδοσης, Μετρικές Ποιότητας, Δίκτυα Petri
Μαθησιακά Αποτελέσματα
Με την επιτυχή ολοκλήρωση του μαθήματος, ο φοιτητής θα είναι σε θέση:
Σε επίπεδο Γνώσεων:
- Να γνωρίζει τις πιο σημαντικές τεχνικές για την Επαλήθευση, Επικύρωση και Εκσφαλμάτωση Λογισμικού.
- Να διακρίνει τις δραστηριότητες επαλήθευσης και επικύρωσης (Ε&Ε) λογισμικού και να κατανοεί τη θέση τους στον κύκλο ζωής λογισμικού.
- Να γνωρίζει τις στρατηγικές ελέγχου λογισμικού και να μπορεί να διακρίνει τις τρεις φάσεις ελέγχου: δοκιμή μονάδων, δοκιμή συγκρότησης, δοκιμή επικύρωσης.
- Να αναγνωρίζει τις διάφορες τεχνικές ελέγχου λογισμικού, όπως δοκιμή από κάτω προς τα πάνω και το αντίστροφο, δοκιμή άλφα και βήτα, δοκιμή απόδοσης, δοκιμή ανάκαμψης, κά.
- Να γνωρίζει τι είναι οι εσωτερικές και οι εξωτερικές μετρικές ποιότητας λογισμικού, ποια είναι η διαδικασία μέτρησής τους και σε ποιο βαθμό αυτές συσχετίζονται μεταξύ τους.
- Να γνωρίζει τη θεμελιώδη προβληματική και τους στόχους του πεδίου Αλληλεπίδρασης Ανθρώπου Υπολογιστή καθώς επίσης και τις βασικές θεωρίες μοντελοποίησης της αλληλεπίδρασης (όπως μοντέλο ανθρώπινου επεξεργαστή και επιπέδου πληκτρολογήσεων, νόμος Fitts, Hick-Hyman και εξάσκησης-πρακτικής).
- Να γνωρίζει τις πιο διαδεδομένες Τυπικές Τεχνικές για την παραγωγή προδιαγραφών λογισμικού
Σε επίπεδο Δεξιοτήτων:
- Να αναγνωρίζει βασικά πρότυπα ποιότητας στο λογισμικό και να τα χρησιμοποιεί κατάλληλα.
- Να αναγνωρίζει και να εφαρμόζει διαδικασίες ποιότητας λογισμικού σε όλες τις φάσεις του κύκλου ζωής του λογισμικού.
- Να εφαρμόζει τις σημαντικότερες τεχνικές σχεδίασης περιπτώσεων ελέγχου για το λειτουργικό έλεγχο του λογισμικού (έλεγχος αδιαφανούς κουτιού), όπως: διαμέριση σε κλάσεις ισοδυναμίας, ανάλυση οριακών τιμών, γράφημα αιτίου - αποτελέσματος.
- Να εφαρμόζει τις σημαντικότερες τεχνικές σχεδίασης περιπτώσεων ελέγχου για τον δομικό έλεγχο του λογισμικού (έλεγχος διαφανούς κουτιού), όπως: έλεγχος βασικών μονοπατιών, έλεγχος δομών επανάληψης.
- Να εφαρμόζει τις σημαντικότερες τεχνικές σχεδίασης περιπτώσεων ελέγχου για τον έλεγχο των διεπαφών ανάμεσα στα τμήματα που συγκροτούν ένα σύστημα λογισμικού.
- Να εφαρμόζει τις μεθόδους εκσφαλμάτωσης οι οποίες ακολουθούν μια επιτυχημένη φάση ελέγχου, με σκοπό της διόρθωση των σφαλμάτων που αυτή αποκάλυψε, όπως τεχνικές κατά μέτωπο επίθεσης, μέθοδος οπισθοδρόμησης, τεχνικές εντοπισμού του αιτίου του σφάλματος.
- Να σχεδιάζει και να εφαρμόζει έλεγχο απόδοσης (έλεγχο φορτίου και έλεγχο έντασης) πολυχρηστικών εφαρμογών, και πιο συγκεκριμένα εφαρμογών Παγκοσμίου Ιστού.
- Να γνωρίζει και να μπορεί να εφαρμόσει αποτελεσματικά τις πλέον διαδεδομένες μεθόδους αξιολόγησης λογισμικού (ευρετική αξιολόγηση, γνωσιακό περιδιάβασμα, παρατήρηση χρηστών, ερωτηματολόγια, μέτρηση απόδοσης).
- Να αναγνωρίζει και να σχεδιάζει δίκτυα Petri τριών διαφορετικών κατηγοριών: δίκτυα συνθήκης-γεγονότος, θέσης-μετάβασης και διακριτών τεκμηρίων.
Σε επίπεδο Ικανοτήτων:
- Να επιλέγει και να συνδυάζει τις καταλληλότερες τεχνικές σχεδίασης περιπτώσεων ελέγχου για το λειτουργικό έλεγχο, το δομικό έλεγχο και τον έλεγχο διεπαφών του λογισμικού, ανάλογα με τις προδιαγραφές του.
- Να επιλέγει και να συνδυάζει τις καταλληλότερες τεχνικές εκσφαλμάτωσης λογισμικού.
- Να αξιολογεί συνολικά την ποιότητα του λογισμικού, λαμβάνοντας υπόψη μετρικές ποιότητας και απόδοσης.
- Να χρησιμοποιεί αποτελεσματικά εργαλεία για τη σχεδίαση δικτύων Petri και την πρακτική εφαρμογή τους.
Βιβλιογραφία
Προτεινόμενη Βιβλιογραφία:
- Pressman R., «Τεχνολογία Λογισμικού: Μια πρακτική προσέγγιση (8η έκδοση)», Εκδόσεις Τζιόλα, ISBN: 978-960-418-720-1, 2018
- Sommerville I., «Βασικές Αρχές Τεχνολογίας Λογισμικού (8η έκδοση)», Εκδόσεις Κλειδάριθμος ΕΠΕ, ISBN: 978-960-461-220-8, 2009
- Ξένος Μ., «Ποιότητα Λογισμικού (2η έκδοση)». Εκδόσεις ΓΚΟΤΣΗΣ ΚΩΝ/ΝΟΣ & ΣΙΑ Ε.Ε., ISBN: 9789609840019, 2009
- Σπινέλλης Δ., «Ποιότητα κώδικα: Η προοπτική του ανοικτού λογισμικού (1η έκδοση)», Εκδόσεις Κλειδάριθμος ΕΠΕ, ISBN: 978-960-461-123-2, 2008
Συναφή επιστημονικά περιοδικά:
- Software Quality Journal, Springer
- ACM Transactions on Programming Languages and Systems
- ACM Transactions on Software Engineering and Methodology
- IEEE Transactions on Software Engineering
Περιεχόμενο μαθήματος
Το μάθημα αναπτύσσεται στις παρακάτω 13 ενότητες/διαλέξεις:
- Ορισμός της ποιότητας, διαφορές της ποιότητας λογισμικού με την παραγωγή υλικών αγαθών, πρότυπα ποιότητας (πρότυπα ISO, IEEE και ACM).
- Ποιότητα διεργασιών λογισμικού, ποιότητα σε όλα τα στάδια της τεχνολογίας λογισμικού (από τις προδιαγραφές έως τον έλεγχο).
- Επαλήθευση και επικύρωση (Ε&Ε) λογισμικού. Στατικές τεχνικές Ε&Ε (στατική ανάλυση, περιήγηση, επισκόπηση, κά). Δυναμικές τεχνικές Ε&Ε (συμβολική εκτέλεση, προσομοίωση, ανάλυση ευαισθησίας, έλεγχος λογισμικού).
- Τεχνικές σχεδίασης περιπτώσεων ελέγχου για το λειτουργικό έλεγχο του λογισμικού (έλεγχος αδιαφανούς κουτιού), όπως: διαμέριση σε κλάσεις ισοδυναμίας, ανάλυση οριακών τιμών, γράφημα αιτίου – αποτελέσματος.
- Τεχνικές σχεδίασης περιπτώσεων ελέγχου για τον δομικό έλεγχο του λογισμικού (έλεγχος διαφανούς κουτιού), όπως: έλεγχος βασικών μονοπατιών, έλεγχος δομών επανάληψης.
- Τεχνικές σχεδίασης περιπτώσεων ελέγχου για τον έλεγχο των διεπαφών ανάμεσα στα τμήματα που συγκροτούν ένα σύστημα λογισμικού. Τεχνικές ελέγχου λογισμικού, όπως δοκιμή από κάτω προς τα πάνω και το αντίστροφο, δοκιμή άλφα και βήτα, δοκιμή απόδοσης, δοκιμή ανάκαμψης, κά.
- Αναλυτικά παραδείγματα εφαρμογής των τεχνικών σχεδίασης περιπτώσεων.
- Μέθοδοι εκσφαλμάτωσης, όπως: τεχνικές κατά μέτωπο επίθεσης, μέθοδος οπισθοδρόμησης, τεχνικές εντοπισμού του αιτίου του σφάλματος.
- Έλεγχος απόδοσης (έλεγχο φορτίου και έλεγχο έντασης) πολυχρηστικών εφαρμογών, και πιο συγκεκριμένα εφαρμογών Παγκοσμίου Ιστού.
- Πρότυπο ISO9126. Εσωτερικές και οι εξωτερικές μετρικές ποιότητας λογισμικού, ποια είναι η διαδικασία μέτρησής τους και σε ποιο βαθμό αυτές συσχετίζονται μεταξύ τους.
- Ποιότητα στη σχεδίαση, ευχρηστία, ευρετική αξιολόγηση, βασικές θεωρίες μοντελοποίησης της αλληλεπίδρασης ανθρώπου υπολογιστή (όπως μοντέλο ανθρώπινου επεξεργαστή και επιπέδου πληκτρολογήσεων, νόμος Fitts, Hick-Hyman και εξάσκησης-πρακτικής).
- Μετρικές μεγέθους, δομής και δεδομένων, αντικειμενοστραφής μετρικές και μετρικές Halstead. Μετρικές πολυπλοκότητας, η μετρική του McCabe.
- Ποιότητα στη φάση της ανάλυσης προδιαγραφών, τυπικές προδιαγραφές, δίκτυα Petri.
Μέθοδοι αξιολόγησης
Α. Γραπτή τελική εξέταση που περιλαμβάνει:
- Επίλυση ασκήσεων
- Ερωτήσεις πολλαπλής επιλογής
- Ερωτήσεις σύντομης απάντησης
Β. Εκπόνηση εργασίας (Project).
Παρατηρήσεις:
- Ο τελικός βαθμός προκύπτει από την στάθμιση των βαθμών θεωρίας και της εργασίας με συντελεστές που καθορίζονται στην αρχή του εξαμήνου και ανακοινώνονται στους φοιτητές μέσω του eClass. Ενδεικτικά θα είναι περίπου 60% - 40%
- Οι εργασίες κατατίθενται ηλεκτρονικά στο eclass.
- Η εξεταστέα ύλη και η διαδικασία αξιολόγησης γνωστοποιούνται στους φοιτητές στην αίθουσα διαλέξεων και στο e-class.