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

Σχετικά έγγραφα
Τεχνολογία Λογισμικού

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

Εισαγωγή στην Τεχνολογία Λογισµικού

Εισαγωγή στην Τεχνολογία Λογισµικού

Εισαγωγή στην Τεχνολογία Λογισµικού

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

Ανάλυση & Προδιαγραφή Απαιτήσεων Λογισμικού & Μοντέλα Δομημένης Ανάλυσης:

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

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

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

Εισαγωγή στην Τεχνολογία Λογισμικού

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

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

Σκοπός του μαθήματος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή Κεφάλαιο 1: Εγκατάσταση της Access Κεφάλαιο 2: Βάσεις δεδομένων και δομικά στοιχεία της Access

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

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

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

6. Διαχείριση Έργου. Έκδοση των φοιτητών

Τεχνολογία Λογισµικού (software. engineering)

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

Ο ΗΓΙΕΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ

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

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

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

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

Atlantis - Νέο user interface

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

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

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

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

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

1. Τα τμήματα της επιφάνειας εργασίας των Windows

Αποτελείται από τρεις (3) τόμους. Τόμος Α : Τεχνολογία Λογισμικού Ι Τόμος Β : Βάσεις Δεδομένων και Τόμος Γ : Λειτουργικά Συστήματα Ι.

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

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

Οδηγίες Ηλεκτρονικής Υποβολής Προτάσεων

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

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

EBSCOhost Research Databases

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape

Διαχείριση Βάσης Δεδομένων (dbadmin)

Εγχειρίδιο χρήσης του Άβακα

Εισαγωγή. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ ΕΝΟΤΗΤΑ «ΕΣΟΔΑ ΕΡΓΩΝ»

ΠΑ-24γ Εγχειρίδιο Χρήσης Δ.Δ.Π. Του Δήμου Αιγάλεω

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

Περιεχόμενα. Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων...

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ ΕΝΟΤΗΤΑ «ΑΠΑΝΤΗΣΕΙΣ ΕΥΡΗΜΑΤΩΝ»

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου

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

Μετάβαση σε Ε.Λ.Π. Παραμετροποίηση

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

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

Σημειώσεις στο μάθημα «Στοιχεία Προγραμματισμού σε Γραφικό Περιβάλλον»

Atlantis - Νέο user interface

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

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

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ "PROΩΘΗΣΗ" PROώθηση

Εγχειρίδιο Χρήσης Φορέα Πιστοποίησης

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

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

Ανοικτά Ακαδηµα κά Μαθήµατα

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

Εισαγωγή στα Πληροφοριακά Συστήματα

Copyright 2017 HP Development Company, L.P.

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

Η συμβολή στην επιτυχία ενός οργανισμού, παρουσιάζοντας σχετικά δεδομένα με τη χρήση τεχνικών 2Δ ή 3Δ τεχνολογίας. Αρμοδιότητα

Κεφάλαιο 4: Λογισμικό Συστήματος

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

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

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΣΥΣΤΗΜΑΤΟΣ ΑΓΡΟΠΕΡΙΒΑΛΛΟΝΤΙΚΩΝ ΕΝΙΣΧΥΣΕΩΝ. Μέτρο 2.2.1

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

Εγχειρίδιο του πίνακα χαρακτήρων

Προγραμματισμός Διαχείρισης Συστημάτων Ι

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

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

Βάσεις δεδομένων (Access)

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

Η Διαδικασία Σχεδιασμού Συστημάτων

Transcript:

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

05/05/16 2 Σχεδιάζοντας Λογισµικό Τι είναι ποιοτικό λογισµικό; Πώς φτιάχνω ποιοτικό λογισµικό; (δύσκολο ερώτηµα) ποιότητα κόστος χρόνος ανάπτυξης αµοιβαία συγκρουόµενα

05/05/16 3 Κύκλος Ζωής Λογισµικού Οι φάσεις από τις οποίες διέρχεται µια εφαρµογή Λογισµικού από την σύλληψή της, κατά την κατασκευή, χρήση, συντήρησή της, µέχρι την απόσυρσή της. Ένα µοντέλο κύκλου ζωής περιγράφει Ποιες είναι αυτές οι φάσεις. Ποιες εργασίες γίνονται και ποια προϊόντα παράγονται σε καθεµία. Πώς διαδέχονται η µία την άλλη.

05/05/16 4 Παράσταση Μοντέλων Κύκλου Ζωής Με τη βοήθεια ενός διαγράµµατος δραστηριοτήτων Μέσα σε ένα παραλληλόγραµµο περιέχεται ο τίτλος µιας εργασίας. Με βελάκια υποδηλώνεται η µετάβαση σε κάποια άλλη εργασία. Με λεπτοµερή τεκµηρίωση σε µορφή κειµένου. Με πρότυπα για την περιγραφή των συστατικών λογισµικού.

05/05/16 5 Λογισµικό και Προσπάθεια

05/05/16 6 Το Μοντέλο του Καταρράκτη Ολόκληρη η εφαρµογή λογισµικού διέρχεται από διακριτές φάσεις ανάπτυξης. Για να ξεκινήσει µια φάση πρέπει να έχει ολοκληρωθεί πλήρως η προηγούµενη. Ακολουθιακή ανάπτυξη. Ιδιαίτερα χρήσιµο όταν οι απαιτήσεις από το λογισµικό είναι από την αρχή γνωστές και δε µεταβάλλονται.

05/05/16 7 Το Μοντέλο Πρωτοτυποποίησης Κατασκευάζονται διαδοχικά πρωτότυπα µε ολοένα και περισσότερα χαρακτηριστικά. Επαναληπτικό µοντέλο. Δυνατότητα απόκτησης άποψης για την εφαρµογή λογισµικού νωρίτερα. Χρήσιµο όταν δεν υπάρχει βεβαιότητα για τις απαιτήσεις από την αρχή.

05/05/16 8 Το Μοντέλο Λειτουργικής Επαύξησης Κατάτµηση του λογισµικού και εφαρµογή του µοντέλου του καταρράκτη σε κάθε τµήµα. Συνένωση στο τέλος.

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

Το Σπειροειδές Μοντέλο

05/05/16 11 Το Μοντέλο του Πίδακα Ανάπτυξη µε αντικειµενοστρεφή φιλοσοφία και επαναχρησιµοποίηση έτοιµων συστατικών.

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

05/05/16 13 Σύγκριση Mοντέλων Κύκλου Ζωής Λογισµικού Μοντέλο Καταρράκτη Πρωτοτυποποίησης Λειτουργικής επαύξησης Σπειροειδές Μέγεθος εφαρµογών Μικρό έως µεσαίο Μικρό ως µεσαίο Μεσαίο ως µεγάλο Μεσαίο ως µεγάλο Μεταβολές στις απαιτήσεις Προσαρµοστικότητα στον κατασκευαστή Διάδοση Ανεπιθύµητες Καµία Μεγάλη µε τάση µείωσης Δεκτές Μικρή Μικρή µε τάση αύξησης Ανεπιθύµητες Καµία Μικρή µε τάση µείωσης Δεκτές Αρκετή Μικρή µε τάση µείωσης Πίδακα Οποιοδήποτε Δεκτές Αρκετή Μικρή Γενικό Οποιοδήποτε Δεκτές Μεγάλη Μικρή µε ισχυρές τάσεις αύξησης

05/05/16 14 Περιγραφή Εργασιών και Συστατικών Στοιχείων Λογισµικού Διαδοχικά επίπεδα λεπτοµέρειας, ανάλογα µε το σηµείο εστίασης της προσοχής του παρατηρητή.

05/05/16 15 Περιγραφή Εργασιών και Συστατικών Στοιχείων Λογισµικού Διαδοχικά επίπεδα λεπτοµέρειας, ανάλογα µε το σηµείο εστίασης της προσοχής του παρατηρητή.

05/05/16 16 Συζήτηση - Προβληµατισµός Ποια από τις παρακάτω προτάσεις είναι σωστή (όσον αφορά το µοντέλο του καταρράκτη); Στο µοντέλο του καταρράκτη δεν είναι απαραίτητη η ολοκλήρωση και επαλήθευση µίας φάσης προκειµένου να ξεκινήσει η επόµενη φάση. Το µοντέλο του καταρράκτη είναι το καταλληλότερο όταν οι απαιτήσεις είναι από την αρχή γνωστές και διατυπωµένες µε σαφήνεια. Στο µοντέλο του καταρράκτη µία πρώτη εικόνα του συστήµατος λογισµικού προκύπτει άµεσα από τα αρχικά στάδια ανάπτυξης. Στο µοντέλο του καταρράκτη µία καθυστερηµένη αναγνώριση ενός σφάλµατος αποκαθίσταται εύκολα.

05/05/16 17 Συζήτηση - Προβληµατισµός Ποια από τις παρακάτω προτάσεις είναι σωστή (όσον αφορά το µοντέλο του καταρράκτη); Στο µοντέλο του καταρράκτη δεν είναι απαραίτητη η ολοκλήρωση και επαλήθευση µίας φάσης προκειµένου να ξεκινήσει η επόµενη φάση. Το µοντέλο του καταρράκτη είναι το καταλληλότερο όταν οι απαιτήσεις είναι από την αρχή γνωστές και διατυπωµένες µε σαφήνεια. Στο µοντέλο του καταρράκτη µία πρώτη εικόνα του συστήµατος λογισµικού προκύπτει άµεσα από τα αρχικά στάδια ανάπτυξης. Στο µοντέλο του καταρράκτη µία καθυστερηµένη αναγνώριση ενός σφάλµατος αποκαθίσταται εύκολα.

05/05/16 18 Συζήτηση - Προβληµατισµός Για την υλοποίηση ενός µικρού λογισµικού που εισάγεται σε έναν οργανισµό για πρώτη φορά και αυτοµατοποιεί εργασίες που ποτέ πριν δεν είχαν αυτοµατοποιηθεί ποιό µοντέλο κύκλου ζωής λογισµικού πρέπει να επιλεγεί; Το µοντέλο του καταρράκτη γιατί η διαδικασία ανάπτυξης πρέπει να είναι αυστηρά ακολουθιακή ώστε να ελέγχονται καλύτερα οι αλλαγές. Το µοντέλο της λειτουργικής επαύξησης για να έχουµε γρήγορη παράλληλη ανάπτυξη καθώς ο οργανισµός θέλει γρήγορα να αυτοµατοποιήσει τις συγκεκριµένες χειροκίνητες διαδικασίες. Το σπειροειδές µοντέλο γιατί θα µειώσει το χρόνο ανάπτυξης της εφαρµογής κάνοντας καλύτερη διαχείριση των ρίσκων. Το µοντέλο της πρωτοτυποποίησης γιατί θα δώσει την ευκαιρία σε εκπροσώπους των χρηστών να διαµορφώσουν άποψη για το λογισµικό από νωρίς.

05/05/16 19 Συζήτηση - Προβληµατισµός Για την υλοποίηση ενός µικρού λογισµικού που εισάγεται σε έναν οργανισµό για πρώτη φορά και αυτοµατοποιεί εργασίες που ποτέ πριν δεν είχαν αυτοµατοποιηθεί ποιό µοντέλο κύκλου ζωής λογισµικού πρέπει να επιλεγεί; Το µοντέλο του καταρράκτη γιατί η διαδικασία ανάπτυξης πρέπει να είναι αυστηρά ακολουθιακή ώστε να ελέγχονται καλύτερα οι αλλαγές. Το µοντέλο της λειτουργικής επαύξησης για να έχουµε γρήγορη παράλληλη ανάπτυξη καθώς ο οργανισµός θέλει γρήγορα να αυτοµατοποιήσει τις συγκεκριµένες χειροκίνητες διαδικασίες. Το σπειροειδές µοντέλο γιατί θα µειώσει το χρόνο ανάπτυξης της εφαρµογής κάνοντας καλύτερη διαχείριση των ρίσκων. Το µοντέλο της πρωτοτυποποίησης γιατί θα δώσει την ευκαιρία σε εκπροσώπους των χρηστών να διαµορφώσουν άποψη για το λογισµικό από νωρίς.

05/05/16 20 Συζήτηση - Προβληµατισµός Ποιο/α από τα παρακάτω σχόλια που αναφέρονται στο σπειροειδές µοντέλο θεωρείτε ότι είναι σωστό/ά; Στο σπειροειδές µοντέλο το ρίσκο αντιµετωπίζεται νωρίς και επαναπροσδιορίζεται σε κάθε κύκλο ανάπτυξης. Το σπειροειδές µοντέλο δεν επιτρέπει προσαρµοστικότητα στον κατασκευαστή. Κάθε κύκλος ανάπτυξης οδηγεί πάντοτε σε µια νέα γενιά λογισµικού. Η εφαρµογή του σπειροειδούς µοντέλου στην πράξη είναι εύκολη και αυτό το καθιστά δηµοφιλές.

05/05/16 21 Συζήτηση - Προβληµατισµός Ποιο/α από τα παρακάτω σχόλια που αναφέρονται στο σπειροειδές µοντέλο θεωρείτε ότι είναι σωστό/ά; Στο σπειροειδές µοντέλο το ρίσκο αντιµετωπίζεται νωρίς και επαναπροσδιορίζεται σε κάθε κύκλο ανάπτυξης. Το σπειροειδές µοντέλο δεν επιτρέπει προσαρµοστικότητα στον κατασκευαστή. Κάθε κύκλος ανάπτυξης οδηγεί πάντοτε σε µια νέα γενιά λογισµικού. Η εφαρµογή του σπειροειδούς µοντέλου στην πράξη είναι εύκολη και αυτό το καθιστά δηµοφιλές.

05/05/16 22 Συζήτηση - Προβληµατισµός Σας ζητούν να προσδιορίσετε τους πιθανούς λόγους αποτυχίας ενός έργου που βασίστηκε στο µοντέλο της λειτουργικής επαύξησης. Ποια/ες από τις παρακάτω δηλώσεις θεωρείτε ότι αποτελεί/ούν πιθανές ενδείξεις αποτυχίας; Η βασική αρχιτεκτονική του συστήµατος άλλαζε µε κάθε προσαύξηση. Τα λειτουργικά τµήµατα της εφαρµογής δεν ήταν αυτόνοµα και έτσι δεν ήταν δυνατή η ανεξάρτητη ανάπτυξή τους. Το σύστηµα ήταν µεγάλης κλίµακας και το µοντέλο της λειτουργικής επαύξησης δεν ήταν το κατάλληλο. Το µοντέλο της λειτουργικής προσαύξησης έχει µεγάλο ποσοστό αποτυχίας.

05/05/16 23 Συζήτηση - Προβληµατισµός Σας ζητούν να προσδιορίσετε τους πιθανούς λόγους αποτυχίας ενός έργου που βασίστηκε στο µοντέλο της λειτουργικής επαύξησης. Ποια/ες από τις παρακάτω δηλώσεις θεωρείτε ότι αποτελεί/ούν πιθανές ενδείξεις αποτυχίας; Η βασική αρχιτεκτονική του συστήµατος άλλαζε µε κάθε προσαύξηση. Τα λειτουργικά τµήµατα της εφαρµογής δεν ήταν αυτόνοµα και έτσι δεν ήταν δυνατή η ανεξάρτητη ανάπτυξή τους. Το σύστηµα ήταν µεγάλης κλίµακας και το µοντέλο της λειτουργικής επαύξησης δεν ήταν το κατάλληλο. Το µοντέλο της λειτουργικής προσαύξησης έχει µεγάλο ποσοστό αποτυχίας.

05/05/16 24 Εξαγωγή Απαιτήσεων Τι περιµένουν πελάτες & χρήστες από το σύστηµα Διαδικασία εξαγωγής απαιτήσεων Τύποι απαιτήσεων Ιδιότητες συνόλου απαιτήσεων Τρόποι ορισµού/περιγραφής απαιτήσεων Σηµειογραφίες / τεκµηρίωση απαιτήσεων Επανεξέταση απαιτήσεων Καθορίζουµε το τι, όχι το πώς!

05/05/16 25 Διατύπωση Προβλήµατος Εταιρεία πελάτης Οι απαιτήσεις καθορίζονται σε χαµηλό επίπεδο ανάλυσης Φυσική γλώσσα Εταιρείες παραγωγής λογισµικού

05/05/16 26 Από τον Ορισµό στην Προδιαγραφή Απαιτήσεων Ορισµός απαιτήσεων ΠΡΟΣΟΧΗ! Δεν πρέπει κατά τη µετάβαση να χαθούν απαιτήσεις ή να δηµιουργηθούν παρανοήσεις! Αναλυτής συστηµάτων Προδιαγραφή απαιτήσεων

05/05/16 27 Γιατί είναι σηµαντικές οι απαιτήσεις; Παράγοντες αποτυχίας έργων λογισμικού Άλλοι παράγοντες 20% Το σύστημα δεν χρειαζόταν πλέον πουθενά 8% Μη π λήρεις απ αιτήσεις 13% Έ λλειψη ενασχόλησης των χρηστών 12% Έ λλειψη π όρων 11% Έ λλειψη σχ εδιασμού 8% Αλλαγή απ αιτήσεων και προδιαγραφών 9% Έ λλειψη διευθυντικής υπ οστήριξης 9% Μη ρεαλιστικές προσδοκίες 10% Έρευνα της Standish Group σε 350 εταιρίες και 8000 έργα (1995)

05/05/16 28 Το Πρόβληµα Ποσοστά επιτυχούς ανάπτυξης έργου στις ΗΠΑ: 29% όσον αφορά στον προϋπολογισµό, λειτουργικότητα, έγκαιρη υλοποίηση Σοβαρά προβλήµατα: 53% Ολοκληρωτική αποτυχία: 18% Λαµβάνοντας υπόψη το κόστος (budget) <$750,000: επιτυχία = 55% >$10,000,000 : επιτυχία = 0% Αγγλία (δηµόσιος τοµέας): 84% µερική ή ολική αποτυχία Συνολική εκτίµηση: 20-30% έργα είναι ολικές αποτυχίες η αποτυχία ανάπτυξης µεγάλων και πολύπλοκων πληροφοριακών συστηµάτων είναι σε µεγάλο βαθµό αναπόφευκτη Source: DangerousEnthusiams: Gauldand Goldfinch

05/05/16 29 Σηµασία Ολοκληρωµένης Εξαγωγής Απαιτήσεων 1994: Μελέτη 350 εταιρειών = 8000 έργα λογισµικού 31% των έργων ακυρώθηκαν πριν από την ολοκλήρωση. 9% των έργων παραδόθηκαν εγκαίρως και εντός προϋπολογισµού από µεγάλες εταιρείες. 16% των έργων παραδόθηκαν εγκαίρως και εντός προϋπολογισµού από µικρές εταιρείες.

05/05/16 30 Η κρίση του λογισµικού σε αριθµούς Η.Π.Α., 1979: Από έργα 6.8 Μ$ 47% πληρώθηκε αλλά δεν παραδόθηκε προς χρήση. 29% παραδόθηκε αλλά δεν χρησιµοποιήθηκε. 19% τροποποιήθηκε µετά την παράδοση. 3% χρησιµοποιήθηκε µε µικρές αλλαγές. 2% χρησιµοποιήθηκε όπως παραδόθηκε.

05/05/16 31 Ανάλυση Απαιτήσεων vs. Προδιαγραφή Απαιτήσεων Ανάλυση προδιαγραφή ανάλυση: συλλογή απαιτήσεων, πιθανά αδόµητων και αλληλοσυγκρουόµενων προδιαγραφή: φορµαλιστική, µονοσήµαντα ερµηνευόµενη διατύπωση των απαιτήσεων µε στόχους συµφωνία µε το χρήστη τροφοδότηση του σχεδιαστή

05/05/16 32 Πηγές για τις Πιθανές Απαιτήσεις Επιθυµίες και ανάγκες των παραληπτών Μοντέλα πεδίων Τρέχουσα οργάνωση και συστήµατα Ήδη υπάρχοντα έγγραφα Εξαγωγή απαιτήσεων Τρέχον µοντέλο κατάστασης Προτεινόµενος τύπος απαιτήσεων Επαναχρησιµοποιήσιµες απαιτήσεις Πίνακας-πρότυπο απαιτήσεων Βιβλιοθήκη επαναχρησιµοποίησης

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

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

05/05/16 35 Παράδειγµα Απαιτήσεις από το Λογισµικό Ζητείται η κατασκευή µιας εφαρµογής συντάκτη αρχείων κειµένου (text editor). Οι απαιτήσεις από την εφαρµογή αυτή, όπως εκφράζονται από τον πελάτη, είναι οι ακόλουθες: (Π1) Ο χρήστης θα πρέπει να πληκτρολογεί κείµενο έχοντας στη διάθεσή του όλες τις βασικές λειτουργίες που παρέχουν για το σκοπό αυτό τα Windows 98. (Π2) Το κείµενο θα πρέπει να αποθηκεύεται µε τη µορφή αρχείου στο δίσκο, καθώς και να ανακτάται από το δίσκο για επεξεργασία. (Π3) Θα πρέπει να παρέχεται µια µπάρα εργαλείων µε τις περισσότερο συχνά εκτελούµενες εργασίες.

Παράδειγµα Απαιτήσεις από το Λογισµικό Για τον κατασκευαστή λογισµικού µια πιο λεπτοµερής διατύπωση των παραπάνω απαιτήσεων είναι η ακόλουθη: (Κ1) Η εφαρµογή θα λειτουργεί σε περιβάλλον Windows 8. (Κ2) Με την εκκίνηση της εφαρµογής, αυτή βρίσκεται σε κατάσταση συγγραφής νέου κειµένου. (Κ3) Κατά τη λειτουργία συγγραφής κειµένου εµφανίζεται στην οθόνη, στην τρέχουσα θέση του δροµέα, ο χαρακτήρας που αντιστοιχεί στο πλήκτρο που πατά ο χρήστης. (Κ4) Η θέση του δροµέα µπορεί να αλλάξει πατώντας τα βελάκια ή χρησιµοποιώντας το ποντίκι. (Κ5) Το τράβηγµα (drag) του ποντικιού από ένα σηµείο του κειµένου σε ένα άλλο έχει ως αποτέλεσµα τη σηµείωση του ενδιάµεσου κειµένου ως επιλεγµένου και την εµφάνισή του µε αντίστροφα χρώµατα.

05/05/16 37 Παράδειγµα Απαιτήσεις από το Λογισµικό (Κ6)Το κείµενο παραµένει επιλεγµένο µέχρι να πατηθεί οποιοδήποτε πλήκτρο. Αν το πρώτο πλήκτρο που πατηθεί είναι αλφαριθµητικό, τότε το επιλεγµένο κείµενο διαγράφεται, ενώ, αν είναι βελάκι κατεύθυνσης, τότε η επιλογή αναιρείται χωρίς διαγραφή του επιλεγµένου κειµένου. (Κ10) Η εφαρµογή διαθέτει µενού µε τις εντολές «Νέο αρχείο», «Άνοιγµα», «Αποθήκευση», «Αποθήκευση ως» και «Έξοδος». (Κ11) Η εφαρµογή διαθέτει µια µπάρα εργαλείων που περιέχει όλες τις εντολές που αναφέρονται στο µενού, καθώς επίσης και τις εντολές «Αντιγραφή», «Αποκοπή» και «Επικόλληση». (Κ13) Η εντολή «Αποθήκευση» έχει ως αποτέλεσµα το γράψιµο του αρχείου στο δίσκο. Αν πρόκειται για νέο αρχείο, εκτελείται η εντολή «Αποθήκευση ως».

05/05/16 38 Ταξινόµηση Απαιτήσεων από το Λογισµικό Απαίτηση -> Λειτουργία / Συνθήκη Λειτουργικές απαιτήσεις Εργασίες (λειτουργίες) που πρέπει να εκτελεί το λογισµικό. Αλληλεπίδραση ανάµεσα στο σύστηµα και το περιβάλλον του. Περιγράφουν τον τρόπο συµπεριφοράς του συστήµατος όταν δέχεται συγκεκριµένα ερεθίσµατα. Μη-λειτουργικές απαιτήσεις Χαρακτηριστικά που πρέπει να έχει το λογισµικό. Προδιαγραφές που περιορίζουν τις επιλογές για την αναζήτηση λύσης στο πρόβληµα

05/05/16 Παραδείγµατα Μη Λειτουργικών Απαιτήσεων Απαιτήσεις χρήσης: Καθορίζουν τα χαρακτηριστικά της χρήσης του συστήµατος, την αισθητική της επικοινωνίας µε το χρήστη (user interface), καθώς και το υλικό τεκµηρίωσης και εκπαίδευσης που θα έχει στη διάθεσή του ο τελικός χρήστης. π.χ.: Το λογισµικό θα πρέπει να ελέγχεται µε τη χρήση του ποντικιού ή του πληκτρολογίου και να συνοδεύεται από αναλυτικό εγχειρίδιο χρήστη και εγχειρίδιο εκµάθησης. Απαιτήσεις αξιοπιστίας: Καθορίζουν τη συµπεριφορά του λογισµικού σε καταστάσεις ενδογενών ή εξωγενών σφαλµάτων, τη διαδικασία αποκατάστασης, την πρόβλεψη τέτοιων καταστάσεων, καθώς και την επιθυµητή διαθεσιµότητα του λογισµικού. π.χ.: Σε περίπτωση απρόβλεπτου τερµατισµού της λειτουργίας του λογισµικού θα πρέπει να επιχειρείται επανεκκίνηση µε την ελάχιστη δυνατή απώλεια δεδοµένων για το χρήστη. 39

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

05/05/16 41 Παραδείγµατα Μη Λειτουργικών Απαιτήσεων Απαιτήσεις σχεδίασης: Καθορίζουν τον τρόπο µε τον οποίο θα πρέπει να γίνει η σχεδίαση του λογισµικού. π.χ.: Η σχεδίαση θα πρέπει να γίνει µε χρήση της µεθοδολογίας OMT και µε χρήση του προτύπου IEEE Std 1016. Απαιτήσεις υλοποίησης: Καθορίζουν τον τρόπο µε τον οποίο θα πρέπει να γίνει η συγγραφή του πηγαίου κώδικα του λογισµικού. π.χ.: Θα πρέπει να χρησιµοποιηθεί η γλώσσα ANSI C και να θεωρείται ότι η συνολική διαθέσιµη µνήµη είναι 64 ΚΒ. Απαιτήσεις επικοινωνίας µε άλλα συστήµατα: Καθορίζουν τα εξωτερικά συστήµατα, λογισµικού ή άλλα, µε τα οποία το λογισµικό θα επικοινωνεί, καθώς και τον τρόπο (λ.χ. πρότυπα, φυσική σύνδεση) πραγµατοποίησης της επικοινωνίας αυτής π.χ.: Το λογισµικό θα επικοινωνεί µε ένα σύστηµα διαχείρισης βάσεων δεδοµένων µέσω του πρωτοκόλλου ODBC.

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

05/05/16 43 Γενική Μορφή Διαδικασίας Προσδιορισµού Απαιτήσεων από το Λογισµικό Requirements engineering

Απαιτήσεις Βάσεων Δεδοµένων: Καθορίζουν τις οντότητες για τη διαχείριση των οποίων είναι υπεύθυνο το σύστηµα λογισµικού, καθώς και τα ιδιώµατα καθεµίας από αυτές, όπως αυτά είναι αναγνωρίσιµα στην παρούσα φάση της ανάπτυξης. π.χ.: Το λογισµικό θα πρέπει να διατηρεί αρχείο πελατών µε τα εξής στοιχεία: ονοµατεπώνυµο, διεύθυνση, τηλέφωνο, ΑΦΜ. Φυσικές απαιτήσεις: Καθορίζουν τα επιθυµητά φυσικά χαρακτηριστικά του λογισµικού και του συστήµατος. π.χ.: Καθορισµός λειτουργικού συστήµατος και προδιαγραφές υπολογιστή όπου θα τρέχει το λογισµικό, περιγραφή απαιτούµενων δικτυακών συνδέσεων.

05/05/16 45 Ανάλυση και Προδιαγραφή Απαιτήσεων Ανάλυση απαιτήσεων Μια ιδιαίτερα ενδιαφέρουσα και δηµιουργική εργασία. Σχεδόν πάντα αποτελεί πρόκληση. Συλλογή απαιτήσεων, πιθανά αδόµητων και αλληλοσυγκρουόµενων Προδιαγραφή Η δοµηµένη και λεπτοµερής περιγραφή των απαιτήσεων από το λογισµικό.