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

Σχετικά έγγραφα
Έλεγχος Λογισμικού. Software Testing

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

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

Πληροφορική 2. Αλγόριθμοι

ΕΝ ΕΙΚΤΙΚΑ ΣΧΕ ΙΑ ΛΥΣΕΩΝ - ΥΠΟ ΕΙΞΕΙΣ

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

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

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

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

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

Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 1

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

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι

ΑΣΚΗΣΕΙΣ ΘΕΩΡΙΑΣ. ΘΕΜΑ 1 Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»: ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ: Π[10] ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ ΑΚΕΡΑΙΕΣ: i

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

Προγραµµατισµός Η/Υ. Μέρος2

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Υπολογισμός - Εντολές Επανάληψης

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

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

Επαναληπτικές Διαδικασίες

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

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2013 ΕΚΦΩΝΗΣΕΙΣ

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων

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

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Να περιγραφεί η δομή επανάληψης Αρχή_επανάληψης Μέχρις_ότου

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

for for for for( . */

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

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2013 ÅÐÉËÏÃÇ

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

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. i. Η συνθήκη α > β ή α <= β α) είναι πάντα Αληθής β) είναι πάντα Ψευδής γ) δεν υπολογίζεται δ) τίποτα από τα προηγούμενα

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

Ενδεικτικές Ερωτήσεις Θεωρίας

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΕΠΠ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ / Γ3 Γ4 ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΝΟΕΜΒΡΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : ΕΞΙ (6)

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. Α2. Να αναφέρετε ονομαστικά: i) τα αλγοριθμικά κριτήρια ii) τους τρόπους αναπαράστασης αλγορίθμου. (μονάδες 10)

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

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

ΠΡΟΣΟΜΟΙΩΣΗ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γʹ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΤΡΙΤΗ 18 ΑΠΡΙΛΙΟΥ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 24/04/2019

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. i. Η συνθήκη α > β ή α <= β α) είναι πάντα Αληθής β) είναι πάντα Ψευδής γ) δεν υπολογίζεται δ) τίποτα από τα προηγούμενα

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

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

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

Πρόβλημα 37 / σελίδα 207

ΘΕΜΑ Συμβολική γλώσσα 2. Γλώσσες υψηλού επιπέδου 3. Γλώσσες τέταρτής γενιάς 4. Γλώσσα μηχανής

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

ÏÌÉÊÑÏÍ ÖÑÏÍÔÉÓÔÇÑÉÏ ÊÏÑÄÅËÉÏ

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

Κεφαλαιο 2.2 ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΕΣ ΑΛΓΟΡΙΘΜΟΙ

Διάγραμμα Ροής. Σελίδα 1 από 10

ΣΤΗΛΗ Β ΑΠΟΤΕΛΕΣΜΑ 1. float(10) α pow(2,3) β abs(-10) γ int(5.6) δ. 10 ε. 5.6 Μονάδες 8 ΣΤΗΛΗ Α ΣΥΝΑΡΤΗΣΗ

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Δομές ελέγχου ροής προγράμματος

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

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

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

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

σφαλμάτων Δημήτρης Νικολός, Τμήμα Μηχ. Ηλεκτρονικών Υπολογιστών και Πληροφορικής, Παν. Πατρών

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

Επαλήθευση μοντέλου. (model Verification) Προσομοίωση Βιομηχανικής Παραγωγής & Επιχειρήσεων

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Λύσεις Θεμάτων Επαναληπτικών Εξετάσεων Ενιαίου Λυκείου 2015

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

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

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

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

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

Γκύζη 14-Αθήνα Τηλ :

Περι-γράφοντας... βρόχους

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

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

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

Παρατηρήσεις για την δομή Όσο..επανάλαβε( ΣΟΣ)

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

Α1. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1-5 και, δίπλα, τη λέξη ΣΩΣΤΟ, αν η πρόταση είναι σωστή, ή τη λέξη

Θέματα ΑΕΠΠ Πανελλήνιες Εξετάσεις 2006

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

Θέματα Προγραμματισμού Η/Υ

Λύσεις 4ης Σειράς Ασκήσεων

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

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

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

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

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

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

Transcript:

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

2 Εγκυροποίηση Λογισµικού Εγκυροποίηση Λογισµικού Επαλήθευση - Verification Επικύρωση - Validation Αναπτύσσουµε σωστά το προϊόν; Αξιολόγηση αναφορικά µε τις προδιαγραφές που τέθηκαν στην αρχή κάθε φάσης. Αναπτύξαµε το σωστό προϊόν; Αξιολόγηση αναφορικά µε τις απαιτήσεις των χρηστών.

Κατηγοριοποίηση Τεχνικών 3

4 Σφάλµα (bug, fault) Κάποια αναπαράσταση του λογισµικού είναι: ελλιπής, ασυνεπής λανθασµένη 3 κατηγορίες σφαλµάτων: προδιαγραφών, σχεδιασµού, υλοποίησης

5 Στατικές τεχνικές Ε&Ε Επαλήθευση προδιαγραφών, σχεδίου ή κώδικα. Μέθοδοι: Στατικός Αναλυτής Αναθεώρηση (review) Περιήγηση (walkthrough)- άτυπη, στην αρχή του κύκλου ανάπτυξη Επισκόπηση (inspection)-τυπική, µετά το τέλος της ανάπτυξης

6 Δυναµικές τεχνικές Ε&Ε «Εκτέλεση» του λογισµικού! 1. Συµβολική εκτέλεση (symbolic execution) καταχώρηση συµβολικών τιµών στις µεταβλητές εισόδου και εκτέλεση->µελέτη τρόπου διάδοσης τιµών, εντοπισµός λαθών 2. Προσοµοίωση (simulation): Χρήση τεχνητών δεδοµένων εισόδου που προσοµοιώνουν την πραγµατικότητα, σε πραγµατικές συνθήκες λειτουργίας. Προσοµοίωση του τρόπου λειτουργίας τµηµάτων του λογισµικού που δεν έχουν ακόµη ολοκληρωθεί. Ιδιαίτερα δαπανηρή µέθοδος. 3. Ανάλυση ευαισθησίας (sensitivity analysis).

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

8 Στρατηγικές Ελέγχου Επαναλαµβανόµενη εφαρµογή περιπτώσεων ελέγχου («τρέξιµο» µε δοκιµαστικά δεδοµένα)

9 Έλεγχος Διαφανούς Κουτιού (white-box) n n n n Έλεγχος εκτέλεσης κάθε εντολής τουλάχιστον µία φορά. Έλεγχος εκτέλεσης για όλες τις πιθανές περιπτώσεις δοµών ελέγχου συνθηκών (αληθής ή ψευδής). Έλεγχος δοµών επανάληψης τόσο για συνήθεις όσο και για οριακές τιµές. Έλεγχος εγκυρότητας εσωτερικών δοµών δεδοµένων. n Ενδεικτικές τεχνικές: 1. Δοκιµή βασικών µονοπατιών (basic path testing). 2. Δοκιµή δοµών επανάληψης (loop testing). 3. Δοκιµή συνθηκών (condition testing).

10 Πότε τελειώνει ο έλεγχος; Ουσιαστικά ποτέ! Ποια είναι καλά κριτήρια τερµατισµού των δοκιµών; (εκτός από την εξάντληση των διαθέσιµων πόρων!) Τα κριτήρια εξαρτώνται: 1. από το είδος του ελέγχου 2. αποδοτική σχεδίαση περιπτώσεων ελέγχου (πως θα βρούµε τα περισσότερα λάθη πιο γρήγορα και µε µικρό κόστος)

Τεχνικές σχεδιασµού περιπτώσεων Ελέγχου Λογισµικού 1. Λειτουργικός Έλεγχος (functional testing) ή Έλεγχος Αδιαφανούς Κουτιού black-box testing 2. Δοµικός Έλεγχος (structural testing) ή Έλεγχος Διαφανούς Κουτιού white-box testing 3. Έλεγχος Διεπαφών (interface testing): έλεγχος συµπεριφοράς τµηµάτων σε σχέση µε συσχετιζόµενα τµήµατα. 11

12 Δοκιµή Βασικών Μονοπατιών 1. Προσδιόρισε τα βασικά µονοπάτια του προγράµµατος -µονοπάτι: ξεκινά από τον κόµβο εισόδου, τελειώνει στον κόµβο εξόδου -ένα βασικό µονοπάτι δεν µπορεί να παραχθεί συνενώνοντας 2 ή περισσότερα µονοπάτια 2. Σχεδίασε περιπτώσεις ελέγχου για τα µονοπάτια αυτά - εάν κάθε βασικό µονοπάτι δοκιµαστεί µία φορά τότε έχουν ελεγχθεί όλες οι εντολές του προγράµµατος και οι συνθήκες (true και false) Δεν ανακαλύπτονται όλα τα ελαττώµατα που κώδικα

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

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

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

16 Άσκηση Θεωρήστε το παρακάτω πρόγραµµα γλώσσας C, το οποίο ζητά από το χρήστη να γεµίσει έναν πίνακα ακεραίων 8 θέσεων και στη συνέχεια βρίσκει τη µέγιστη και την ελάχιστη τιµή του πίνακα, τις θέσεις (στον πίνακα) των τιµών αυτών και το µέσο όρο της µέγιστης και της ελάχιστης τιµής. Για το πρόγραµµα αυτό καλείστε να κατασκευάσετε το γράφο ροής του και να υπολογίσετε την κυκλωµατική πολυπλοκότητα.

17 6 7

18 Άσκηση Πριν από το for δεν υπάρχουν εντολές οπότε βάζουµε κόµβο κατευθείαν για τη λογική συνθήκη του for

19 Άσκηση Εάν η συνθήκη είναι αληθής, εκτελούνται οι δύο εντολές που οµαδοποιούνται µε την αγκύλη 1, και συνιστούν έναν κόµβο:

20 Άσκηση Η 1 επαναλαµβάνεται µέχρι η συνθήκη του for να γίνει ψευδής, άρα χρειάζεται και ένα βέλος προς τα πίσω

21 Άσκηση Όταν γίνεται ψευδής, εκτελείται τα επόµενο σύνολο εντολών, το 2. Αυτές οι εντολές επειδή δεν περιέχουν λογικές συνθήκες οµαδοποιούνται σε έναν κόµβο: Αυτό είναι και το σχήµα µίας εντολής for

22 Άσκηση εάν η συνθήκη της for είναι αληθής, τότε θα εκτελεστεί το 3

23 Άσκηση Στη συνέχεια ακολουθεί if-then (χωρίς else), που απεικονίζεται µε 3 κόµβους: 4

24 Άσκηση Επειδή το 3 θα εκτελεστεί οπωσδήποτε, ενοποιούµε τον κόµβο της λογικής συνθήκης µε το 3. Στο παραπάνω, εάν η συνθήκη είναι αληθής θα εκτελεστεί το 4 και θα πάει κατευθείαν στον έλεγχο του επόµενου if, αλλιώς θα πάει εκεί κατευθείαν. Το επόµενο if είναι ακριβώς το ίδιο οπότε: 4 6

25 Άσκηση Το for τελειώνει στο 6 και επιστρέφει. Τέλος, µένει να θέσουµε τη ροή ελέγχου όταν δεν είναι αληθής η συνθήκη του for και τελειώνει ο κώδικας στον κόµβο 7 4 6 7

26 Άσκηση Υπολογισµός Κυκλ. Πολυπλοκότητας 3 τρόποι: 1. V(g) = e n + 2p=13-10+2=5 2. Περιοχές = 5 3. Μπορεί να ελέγξει κανείς την ορθότητα της λύσης µε έναν απλό τρόπο: η V(g) είναι ο αριθµός των απλών λογικών συνθηκών +1 δηλ. 4+1=5 (απλές λογικές συνθήκες µαρκαρισµένες µε κίτρινο στον κώδικα) Χρειάζονται το πολύ 5 περιπτώσεις ελέγχου για να ελεγχτεί η ορθότητα όλων των µονοπατιών του κώδικα