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

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

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

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

Κωδικοποίηση και Έλεγχος Ορθότητας

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

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

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

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

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

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

Συστήµατα Τηλεκπαίδευσης: Κύκλος ζωής εκπαιδευτικού υλικού

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

Ποιότητα Λογισμικού και Πιστοποίηση

Διοίκηση Ολικής Ποιότητας ΔΙΑΛΕΞΗ 2 η : Εργαλεία και Τεχνικές

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

Έλεγχος Συνένωσης και Διασφάλιση Ποιότητας

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

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

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

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

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

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

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

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

Ποιότητα και Πρότυπα στη Διοίκηση Επιχειρήσεων Γενική Επισκόπηση Επισηµάνσεις Διάλεξη 9

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

Διοίκηση Ολικής Ποιότητας ΔΙΑΛΕΞΗ 8 η : Στατιστικός Έλεγχος Ποιότητας. Δρ. Α. Στεφανή Τμήμα Διοίκησης Επιχειρήσεων ΤΕΙ Δυτικής Ελλάδας - Μεσολόγγι

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

Ποιότητα και Πρότυπα στη Διοίκηση Επιχειρήσεων Συστήµατα Διασφάλισης Ποιότητας ISO Διεργασιακή Προσέγγιση Διάλεξη 3

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

Σχεδιασμός και Υλοποίηση ενός πληροφοριακού συστήματος για τους τεχνικούς του φυσικού αερίου

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 4 : Τεχνολογία λογισμικού. Δρ.

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

Απαιτήσεις Λογισμικού

Ποιότητα και Πρότυπα στη Διοίκηση Επιχειρήσεων Πρότυπα διαχείρισης Επιχειρηµατικών Κινδύνων Διάλεξη 5

Τεχνολογία λογισμικού στην πράξη

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

Θέματα ποιότητας (1/5)

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Εισαγωγή στην. Γιάννης Σμαραγδάκης

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

Επιχειρηµατικές ιαδικασίες: Εισαγωγικές Έννοιες & Αρχικά στάδια µοντελοποίησης

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

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

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας»

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

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

Ανάλυση Περιπτώσεων Χρήσης

Έγγραφο Περιγραφής Απαιτήσεων Λογισμικού

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

Ποιότητα και Πρότυπα στη Διοίκηση Επιχειρήσεων Συστήµατα Διασφάλισης Ποιότητας ISO Διάλεξη 2

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

Αλγόριθµοι και Πολυπλοκότητα

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

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

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

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

Γενική Επισκόπηση. Διοίκηση Ολικής Ποιότητας Τµήµα Διοίκησης Επιχειρήσεων ΤΕΙ Δυτικής Ελλάδας. Διάλεξη 9 η Δρ. Α. Στεφανή

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

Σχεδιασμός και Διαχείριση Λογισμικού

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

οκιμασία και πλάνο δοκιμασίας

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Εισαγωγή στην ανάλυση

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

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

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

Το εσωτερικό ενός Σ Β

Βασικά Στοιχεία Διαχείρισης Έργων

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

Σύστημα. Αντώνης Μαϊργιώτης

Ποιότητα και Πρότυπα στη Διοίκηση Επιχειρήσεων Συστήµατα Διασφάλισης Ποιότητας ISO Διεργασιακή Προσέγγιση Διάλεξη 4

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

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΚΕΦΑΛΑΙΟ Μηχανική Μάθηση

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

...στις µέρες µας, όσο ποτέ άλλοτε, οι χώρες καταναλώνουν χρόνο και χρήµα στη µέτρηση της απόδοσης του δηµόσιου τοµέα...(oecd)

Transcript:

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

Τι είναι ποιότητα;

Ποιότητα λογισµικού Ο όρος «Ποιότητα» (Quality) φαίνεται καταρχήν αυτονόητος. Η ερµηνεία του στην Επιστήµη της Πληροφορικής είναι πιο δύσκολη από ότι φαίνεται. Στο τοµέα της Τεχνολογίας Λογισµικού, υπάρχουν πολλές όψεις για το τι είναι Ποιότητα και πως αυτή επιτυγχάνεται. Η επιστηµονική (αλλά και πρακτική) χρήση του όρου οριοθετείται από πρότυπα (standards), δηλαδή από κοινά αποδεκτούς ορισµούς και οδηγίες χρήσης.

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

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

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

Προϊόντα λογισµικού Εκπαιδευτικό λογισµικό Παιχνίδια Εφαρµογές εικονικής πραγµατικότητας Εφαρµογές επαυξηµένης παραγµατικότητας Λογισµικό κινητών συσκευών Βιοµηχανικό Λογισµικό Λογισµικό διαχείρισης και ανάκτησης γνώσης (µηχανές αναζήτησης)...

Διαστάσεις της Ποιότητας Μέγεθος κώδικά Πολυπλοκότητα κώδικά. Ποιότητα φωτογραφιών ψηφιακής φωτογραφικής µηχανής.

Διαστάσεις της Ποιότητας Ποσοτικές και ποιοτικές διαστάσεις. Ποσοτικές: χρησιµοποιούµε επίσηµη µονάδα µέτρησης µε µαθηµατικα οριµένο τρόπο. Μέτρηση γραµµών κώδικά. Ανάλυση οθόνης Χρόνος απόκρισης ΑΤΜ Ποιοτικές: αξιολογούµε την ικανοποίηση του πελάτη Ικανοποίηση από την αγορά µας σε ηλεκτρονικό κατάστηµα. Ευχρηστία λογισµικού κινητής συσκευής. Χρησιµοποιούµε κλίµακες αξιολόγησης.

Βασικές αρχές ποιότητας στον κύκλο ζωής του λογισµικού.

PDSA cycle (2)

Διαχείριση Ποιότητας Λογισµικού

16 Πρότυπα Ποιότητας Η επιστηµονική (αλλά και πρακτική) χρήση του όρου Ποιότητα οριοθετείται από πρότυπα (standards), δηλαδή από κοινά αποδεκτούς ορισµούς και οδηγίες χρήσης. Το καταλληλότερο πρότυπο για το λογισµικό είναι το ISO 25000 το οποίο αποτελεί εξέλιξη του προτύπου ISO 9126.

Πρότυπο ποιότητας ποιοτικά χαρακτηριστικά ποιοτικά υπο-χαρακτηριστικά µετρικές ποιοτικά στοιχεία µέτρησης συναρτήσεις µέτρησης ποιοτικές µετρήσεις.

Δοµή

Ιεραρχική δοµή

Τα πρότυπα που χρησιµοποιούνται τώρα. ISO/IEC 9126: Information Technology- Software Product Evaluation- Quality Characteristics and Guidelines for their Use. ISO/IEC 9126-1: 2001 Software Engineering Product Quality Part 1: Quality Model. ISO/IEC 9126-2: 2001 Software engineering - Product quality - Part 2: External metrics. ISO/IEC 9126-3: 2001 Software engineering - Product quality - Part 3: Internal metrics.

Τα πρότυπα που χρησιµοποιούνται τώρα. ISO/IEC 25000. Software Engineering - Software Product Quality Requirements and evaluation (SQuaRE). ISO/IEC 25010 Software engineering - Software product Quality Requirements and Evaluation (SQuaRE) Software and quality in use models. ISO/IEC 25012 Software engineering: Software product Quality Requirements and Evaluation (SQuaRE) Data Quality Model.

Ποιοτικά Χαρακτηριστικά των προτύπων

Λειτουργικότητα Η Λειτουργικότητα (Functionality) ορίζεται ως η δυνατότητα του λογισµικού να ικανοποιεί λειτουργικές απαιτήσεις και στόχους. Οι λειτουργικές απαιτήσεις για τα δεδοµένα και το λογισµικό σχετίζονται µε το σύνολο των λειτουργικών απαιτήσεων (ή δυνατοτήτων) του χρήστη που το λογισµικό µπορεί να εξυπηρετήσει.

Ευχρηστία Η Ευχρηστία (Usability) ορίζεται ως η δυνατότητα του λογισµικού να είναι κατανοητό, διαχειρίσιµο και χρησιµοποιήσιµο για να ελκύει την προσοχή του χρήστη κάτω από καθορισµένες συνθήκες. Η Ευχρηστία πραγµατεύεται το ερώτηµα «Πώς µπορεί ο χρήστης να χρησιµοποιήσει το λογισµικό;».

Αποδοτικότητα Η Αποδοτικότητα (Efficiency) είναι η δυνατότητα επεξεργασίας των δεδοµένων του λογισµικού (πρόσβαση, απόκτηση, ενηµέρωση).

Αξιοπιστία Ως Αξιοπιστία (Reliability) ορίζεται η δυνατότητα του λογισµικού να υποστηρίζει καθορισµένο επίπεδο λειτουργιών σε καθορισµένο τεχνολογικό περιβάλλον. Η αξιοπιστία δίνει έµφαση στο ερώτηµα «Πότε το λογισµικό λειτουργεί σωστά και αποδεκτά στο χρήστη;».

Συντηρησιµότητα Το ποιοτικό χαρακτηριστικό της Συντηρησιµότητας (Maintenability) αναφέρεται στη δυνατότητα τροποποίησης του λογισµικού ώστε να ικανοποιεί τεχνολογικές απαιτήσεις ή λειτουργικές προδιαγραφές.

Μεταφερσιµότητα Το ποιοτικό χαρακτηριστικό της Μεταφερσιµότητας (Portability) αναφέρεται στη δυνατότητα του ΕΥ να είναι προσαρµόσιµο από ένα τεχνολογικό περιβάλλον σε ένα άλλο. Πρόβληµα της ενοποίησης των πληροφοριακών συστηµάτων του ΤΕΙ Μεσολογγίου µε το ΤΕΙ Πάτρας.

29 Η Πρακτικότητα των προτύπων Ένα πρότυπο καθορίζει τις ιδιότητες του ποιοτικού λογισµικού όχι πως θα κατασκευαστεί ένα ποιοτικό λογισµικό! Τι σηµαίνει π.χ. η οδηγία «το λογισµικό πρέπει να έχει καλή απόκριση χρόνου;» Πως γίνεται αυτό;

30 Η Πρακτικότητα των προτύπων Τα πρότυπα είναι ανεξάρτητα της τεχνολογίας! Μέσω εµπειρίας, και για όλες τις γλώσσες προγραµµατισµού µπορούµε να καθορίσουµε κάποιους εµπειρικούς κανόνες! Έχετε να προτείνετε κάποιους?

ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM) Στόχοι Διασφάλιση ποιότητας διαδικασιών παραγωγής (process quality assurance) Συνεχής βελτίωση διαδικασιών παραγωγής προϊόντος και λειτουργίας επιχείρησης, σύµφωνα µε τις προδιαγραφές ποιότητας. Διασφάλιση ποιότητας πόρων (resource quality assurance) Συνεχής βελτίωση χρησιµοποιούµενων πόρων (εξοπλισµός, λογισµικό, εργαλεία, χώροι εργασίας, προσωπικό κλπ.) στην παραγωγή προϊόντος. Διασφάλιση ποιότητας προϊόντος (product quality assurance) Συνεχής βελτίωση ποιότητας παραγόµενου προϊόντος.

33 Χαρακτηριστικά Λογισµικού n Εσωτερικά n Εξωτερικά

34 Μετρικές Τι είναι? Τα χαρακτηριστικά δεν µετριούνται! You can t control what you can't measure DeMarco, T. (1982) Μετρικές: Ανάθεση αριθµού ή συµβόλου σε µία οντότητα που χαρακτηρίζει µία συγκεκριµένη ιδιότητά της (attribute).

35 Κατηγοριοποίηση Μετρικών- Στόχος Μετρικές Διαδικασιών Πόρων Προϊόντων CMM ISO Μεγέθους Δοµής Δεδοµένων Halstead McCabe Tsai

36 Παραδείγµατα Μετρικών Μετρικές Διαδικασίας: # λαθών ανά ώρα προγραµµατισµού # αλλαγών στις προδιαγραφές # διαθέσιµων και χρησιµοποιηµένων ωρών προγραµµατιστή την εβδοµάδα # patch releases µετά την πρώτη παράδοση

37 Παραδείγµατα Μετρικών Μετρικές Πόρων: Ανθρώπινο δυναµικό Εξοπλισµός Αναλώσιµα

38 Συσχέτιση Εξ. & Εσ. Μετρικών Απόλυτη συσχέτιση: Αδύνατη! (π.χ. µεγάλος LOC -> εύχρηστο λογισµικό?) Εµπειρικά έχει αποδειχθεί: 1. Τήρηση ορίων Εσ. Μετρικών -> µάλλον ποιοτικό λογισµικό 2. Μη-τήρηση ορίων Εσ. Μετρικών -> µάλλον κακής ποιότητας λογισµικό

39 Lines Of Code LOC Lines of Code ή SLOC (Source Lines of Code) Χρησιµοποιείται για την εκτίµηση του φόρτου και της παραγωγικότητας 2 είδη Physical SLOC: # των γραµµών µαζί µε τα σχόλια και τις κενές γραµµές. Logical SLOC: # των εντολών (στη C των «;»)

40 Μετρικές Ηalstead Ποσοτικές Μετρικές για τον πηγαίο κώδικα Επιστήµη Λογισµικού: Κώδικας = Τελεστές, Έντελα Τελεστές: συµβολοσειρές που καθορίζουν δράση πάνω στα έντελα Έντελα: σ υ µ β ο λ ο σ ε ι ρ έ ς π ο υ αντιπροσωπεύουν αποδέκτες της δράσης των τελεστών

41 Τελεστές ονόµατα εντολών, ονόµατα συναρτήσεων, σύµβολα πράξεων, ακόµα και σύµβολα στίξης π.χ. Printf(), ++, ;, {} Πως τα µετράµε: Παρενθέσεις, άγκιστρα ανά ζεύγη: {}, () Go to µαζί µε την ετικέτα: Go to 10 10: Εντολή διακλάδωσης: ΙF()-Then, IF()-Then-Else (µαζί µε τις παρενθέσεις τους!) Βρόγχοι: while()-do, do-while(), For(; ;), repeat-until() Άλλα: ;, printf(), return, scanf(), +, *, -, /, ==, κτλ.

42 Έντελα ονόματα μεταβλητών και σταθερές π.χ. i, j, 10, %d\n

43 Μετρικές Ηalstead Bασικές Οντότητες n1 ο αριθµός των διακριτών τελεστών που εµφανίζονται στο πρόγραµµα. n2 ο αριθµός των διακριτών εντέλων που εµφανίζονται στο πρόγραµµα. N1 ο αριθµός των συνολικών εµφανίσεων τελεστών στο πρόγραµµα. N2 ο αριθµός των συνολικών εµφανίσεων εντέλων στο πρόγραµµα

44 Διάγραµµα ροής Ροή ελέγχου (και όχι δεδοµένων) Απεικονίζει την πολυπλοκότητα του κώδικα Προσδιορίζει το πλήθος των βασικών µονοπατιών Κυκλωµατική Πολυπλοκότητα = Πλήθος ΒΜ = Άνω όριο περιπτώσεων ελέγχου

45 Δοκιµή Βασικών Μονοπατιών n Διαδικασία σχεδίασης περιπτώσεων ελέγχου: Υπολογισµός της κυκλωµατικής πολυπλοκότητας (V) του γραφήµατος ροής (G) αντιστοιχεί στον αριθµό των βασικών µονοπατιών που υπάρχουν: n n n V(G) = αριθµός περιοχών του G V(G) = E N + 2 (όπου E: ακµές και N: κόµβοι) V(G) = P + 1 (όπου Ρ το πλήθος των απλών συνθηκών ελέγχου του κώδικα) Εύρεση βασικών µονοπατιών n n Κάθε βασικό µονοπάτι περιλαµβάνει τουλάχιστον µία ακµή που δεν υπάρχει σε άλλο βασικό µονοπάτι. Όλα τα µη βασικά µονοπάτια προκύπτουν συνδυάζοντας τα βασικά. Δεν βρίσκει λάθη αλλά το άνω όριο των περιπτώσεων ελέγχου

Γράφος Κυκλωµατικής Πολυπλοκότητας 46 Βήµατα 1. Οµαδοποιούµε τις εντολές (αγνοούνται οι δηλώσεις, κάθε λογική έκφραση θεωρείται ξεχωριστός κόµβος, ακολουθιακές εντολές =1 κόµβος) 2. Κατασκευάζουµε το γράφο χρησιµοποιώντας τα σύµβολα:

Το µοντέλο κύκλου ζωής λογισµικού

20/06/16 48 Ένα Γενικό Μοντέλο Κύκλου Ζωής Ανάπτυξη σε κύκλους σύµφωνα µε τα χαρακτηριστικά και τις δυνατότητες του κατασκευαστή. Γενικευµένη µορφή των προηγούµενων µοντέλων κύκλου ζωής.

20/06/16 49 Προδιαγραφή Απαιτήσεων Το πρώτο βήµα στην ανάπτυξη λογισµικού Διάκριση απαιτήσεων Από το σύστηµα Από το λογισµικό Απαίτηση από το σύστηµα: Η περιγραφή µιας εργασίας που θα πρέπει να εκτελείται από κάποια συνιστώσα ενός συστήµατος (άνθρωποι, µηχανές, λογισµικό) ή ενός χαρακτηριστικού το οποίο θα πρέπει να έχει ένα σύστηµα. Σύνθετη εργασία! Πως τις διακρίνουµε: Προσπαθούµε να απαντήσουµε στην ερώτηση: «Ποια από τις συνιστώσες του συστήµατος πρέπει να ικανοποιήσει την απαίτηση αυτή;»

20/06/16 50 Επιθυµητά Χαρακτηριστικά των Απαιτήσεων Ορθότητα Οι απαιτήσεις έχουν καταγραφεί χωρίς λάθη Συνέπεια Δεν υπάρχουν αλληλοσυγκρουόµενες απαιτήσεις Πληρότητα Περιγράφουν όλες τις πιθανές καταστάσεις, αλλαγές καταστάσεων, είσοδοι, προϊόντα, περιορισµοί Ρεαλισµός Μπορούν να υλοποιηθούν Αναγκαιότητα Περιγράφουν κάτι που πραγµατικά χρειάζεται ο πελάτης Επαληθευσιµότητα Είναι δυνατός ο έλεγχος ότι οι απαιτήσεις πληρούνται εξ ολοκλήρου; Ιχνηλασιµότητα Είναι εύκολο να βρεθεί το σύνολο των απαιτήσεων που σχετίζεται µε µια συγκεκριµένη άποψη του συστήµατος;

51 Ποιότητες που ενδιαφέρουν Συντηρητής Καλή τεκµηρίωση Κατανοητός κώδικας Καλή σχεδίαση Επαναχρησιµοποίηση Λειτουργικότητα Ευκολία χρήσης Ευκολία εκµάθησης Χρήστης Αξιοπιστία Ορθότητα Αποδοτικότητα Χαµηλό κόστος Μεταφέρσιµο Αυξάνει την παραγωγικότητα Πελάτης

Έλεγχος ορθότητας µονάδων λογισµικού αλγοριθµικά σφάλµατα υπολογιστικά λάθη και λάθη ακρίβειας σφάλµατα υπερφόρτωσης σφάλµατα ορίων ή χωρητικότητας σφάλµατα χρονισµού ή σφάλµατα συντονισµού σφάλµατα απόδοσης σφάλµατα ανάκαµψης σφάλµατα υλικού και λογισµικού συστήµατος σφάλµατα τεκµηρίωσης

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

Διαµερισµός ισοδυναµίας Μία τεχνική η οποία χρησιµοποιείται πολύ συχνά για τον έλεγχο κλειστού κουτιού είναι ο διαµερισµός ισοδυναµίας (equivalence partitioning). Σύµφωνα µε αυτή την τεχνική θα πρέπει να χωρίσουµε το χώρο των δυνατών εισόδων σε κλάσεις ισοδυναµίας (equivalence classes), έτσι ώστε η επιλογή µίας δοκιµασίας ελέγχου από κάθε διαφορετική κλάση να θεωρείται ως αντιπροσωπευτική για όλη την κλάση. Με αυτό τον τρόπο περιορίζουµε τον αριθµό των δοκιµασιών ελέγχου, έχοντας ταυτόχρονα αυξήσει την πιθανότητα να ανακαλύψουµε κάποιο σφάλµα.

Ανάλυση συνοριακών τιµών Μία δεύτερη τεχνική είναι η ανάλυση των συνοριακών τιµών (boundary value analysis). Η εµπειρία στον έλεγχο του λογισµικού έχει δείξει ότι η πιθανότητα ανακάλυψης σφαλµάτων αυξάνεται, όταν οι δοκιµασίες ελέγχου σχετίζονται µε τις συνοριακές συνθήκες (boundary conditions). Αν επανέλθουµε στο παράδειγµα της συνάρτησης calculatesalary, οι συνοριακές τιµές οι οποίες θα πρέπει να συµπεριληφθούν στις δοκιµασίες ελέγχου είναι οι τιµές 0, 1, 12, 13.

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

Έλεγχος ανοικτού κουτιού Για να επιλέξουµε δοκιµασίες ελέγχου βασιζόµαστε στην κάλυψη του κώδικα που παρέχει ο έλεγχος. Υπάρχουν τρεις διαφορετικές κατηγορίες καλύψεων, έτσι ώστε να αξιολογήσουµε την κάλυψη του κώδικα για τις δοκιµασίες ελέγχου που επιλέγουµε. Κάλυψη εντολών (statement coverage): Κάθε εντολή της µονάδας εκτελείται τουλάχιστον µία φορά. Κάλυψη διακλαδώσεων (branch coverage): Για κάθε σηµείο απόφασης στη µονάδα επιλέγεται κάθε διακλάδωση τουλάχιστον µία φορά. Κάλυψη διαδροµών (path coverage): Κάθε διακριτή διαδροµή του προγράµµατος εκτελείται τουλάχιστον µια φορά.

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

Software Integration Testing Πρόκειται για το επίπεδο ελέγχου λογισµικού στο οποίο οι ατοµικές µονάδες του συστήµατος συνδυάζονται και ελέγχονται ως οµάδα. Σκοπός του Integration ή Incremental Testing να ελέγξει και να παρουσιάσει τα σφάλµατα των αλληλεπιδράσεων και των διεπαφών µεταξύ των ενοτήτων κώδικα(modules)/ συστατικών του συστήµατος και να βεβαιώσει ότι η αρχιτεκτονική του συστήµατος έχει σχεδιαστεί σωστά κατά την φάση σχεδίασης. Το Integration Testing εκτός του ότι επιτρέπει την διεξαγωγή ελέγχου των µονάδων(unit tests) του συστήµατος µπορεί παράλληλα να εξετάζει και την συνολική ενσωµάτωση του συστήµατος στα όρια των ενοτήτων κώδικα.

System Integration Testing To System Integration Testing(SIT) είναι µια υψηλού επιπέδου ελεγκτική διαδικασία λογισµικού µέσω της οποίας οι µηχανικοί ελέγχου λογισµικού µπορούν να εξακριβώσουν αν όλα τα συσχετιζόµενα συστήµατα διατηρούν την ακεραιότητα των δεδοµένων τους και µπορούν να λειτουργήσουν σε συντονισµό µε άλλα συστήµατα µέσα στο ίδιο περιβάλλον. Η διεργασία αυτή ελέγχου διαβεβαιώνει ότι όλα τα επιµέρους συστατικά µέρη του συστήµατος έχουν ενσωµατωθεί καταλλήλως στο συνολικό σύστηµα και µπορούν να παρέχουν τα αναµενόµενα αποτελέσµατα.