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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

ΔΙΔΑΣΚΑΛΙΑ ΓΝΩΣΤΙΚΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΝΟΗΣΗ Δρ. Ζαφειριάδης Κυριάκος Οι ικανοί αναγνώστες χρησιμοποιούν πολλές στρατηγικές (συνδυάζουν την

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

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

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

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

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

Περιεχόμενο του μαθήματος

Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας

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

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

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

ΕΡΩΤΗΜΑΤΟΛΟΓΙΑ ΑΞΙΟΛΟΓΗΣΗΣ ΜΑΘΗΣΗΣ-ΔΙΔΑΣΚΑΛΙΑΣ

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ

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

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

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

ΕΡΩΤΗΜΑΤΟΛΟΓΙΑ ΑΞΙΟΛΟΓΗΣΗΣ ΜΑΘΗΣΗΣ-ΔΙΔΑΣΚΑΛΙΑΣ

ΠΑΝΕΠΙΣΤΉΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: ΣΥΣΤΗΜΑ ONLINE ΑΞΙΟΛΟΓΗΣΗΣ ΚΑΘΗΓΗΤΩΝ/ Ι ΑΣΚΟΝΤΩΝ

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

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

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

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

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

Ιστορικό. *Ομάδα ανάπτυξης: Γρεασίδης Θοδωρής: 265 Κουτσαυτίκης Δημήτρης: 258 Μπούρα Βάγια: 257 Πετράκη Ελένη: 266 Φουντά Σταυρούλα: 256

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

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

Σχεδιασµός Οικολογικού ιαµεσολαβητή για την εποπτεία και διαχείριση δικτύου διανοµής ηλεκτρικής ενέργειας

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

Σχεδιαστής Ιστοσελίδων

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

05 Ανάλυση απαιτήσεων

Dynamic Business Systems. Παρουσίαση Εφαρμογής

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Ενδεικτικές λύσεις ασκήσεων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 1: Εισαγωγή. Γαροφαλάκης Ιωάννης Πολυτεχνική Σχολή Τμήμα Μηχ/κών Η/Υ & Πληροφορικής

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Παρουσίαση Εφαρμογής i-flow (i-flow HelpDesk Services)

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

Συστήματα Πληροφοριών Διοίκησης

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

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

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

Ερωτηματολόγιο. Τρόποι χορήγησης: α) Με αλληλογραφία β) Με απευθείας χορήγηση γ) Τηλεφωνικά

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Τίτλος Πλατφόρµα Ασύγχρονης Τηλεκπαίδευσης. Συντάκτης. Ακαδηµαϊκό ιαδίκτυο GUnet Οµάδα Ασύγχρονης Τηλεκπαίδευσης

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΕΣ & ΑΣΦΑΛΕΙΑ ΠΛΗΡΟΦΟΡΙΩΝ ΙΩΑΝΝΗ Δ. ΙΓΓΛΕΖΑΚΗ

Ανάλυση ποιοτικών δεδομένων

SGA Διαχείριση Πρωτόκολλου

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

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

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

Προκαταρκτική Φάση Ανάλυσης

Περίληψη ιπλωµατικής Εργασίας

Πρόβλημα είναι μία κατάσταση που χρειάζεται να αντιμετωπίσουμε και να δώσουμε λύση η Οποία δεν είναι προφανής ή γνωστή

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

Κεφάλαιο 8 Πληροφοριακά συστήματα. Εφαρμογές Πληροφορικής Κεφ. 8 Καραμαούνας Πολύκαρπος

ΘΕΜΑΤΑ ΑΞΙΟΛΟΓΗΣΗΣ ΚΑΤΑΣΚΕΥΗ ΕΡΩΤΗΣΕΩΝ. Άννα Κουκά

Διαχείριση Έργων. Ενότητα 7: Εκτέλεση, παρακολούθηση και έλεγχος έργου

ΕΛΑΧΙΣΤΕΣ ΑΠΑΙΤΗΣΕΙΣ ΕΞΟΠΛΙΣΜΟΥ ΕΠΙΚΟΙΝΩΝΙΑ... 23

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

Ηλεκτρονικό Κατάστημα

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

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

ΚΕΦΑΛΑΙΟ 3 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΔΙΑΤΑΞΕΙΣ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά. Σύνοψη

Transcript:

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 26/11/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Μηχανική Απαιτήσεων

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

Απαιτήσεις Απαίτηση είναι: Ιδιότητα του συστήματος Περιγραφή μιας ικανότητας του συστήματος απαραίτητης ώστε αυτό να επιτελεί το σκοπό του Κατηγορίες απαιτήσεων: Σε κάθε περίπτωση πρέπει να τηρηθούν Εξαιρετικά επιθυμητές αλλά όχι αναγκαίες Καλό θα ήταν να ικανοποιηθούν, αλλά δεν είναι και ιδιαίτερα αναγκαίες, οπότε μπορεί να αφαιρεθούν

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

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

Προδιαγραφή απαιτήσεων Διάκριση απαιτήσεων Απαίτηση από το σύστημα Απαίτηση από το λογισμικό

Απαιτήσεις από το σύστημα Σε κάθε σύστημα πραγματικού κόσμου δύο συνιστώσες: άνθρωποι μηχανές Η/Υ: μηχανή που έχει υπόσταση μόνο με Λογισμικό!

Διάκριση συνιστωσών συστημάτων πριν και μετά την εμφάνιση Η/Υ Μηχανές («κλασσικές μηχανές») Άνθρωποι Άνθρωποι Μηχανές («κλασσικές μηχανές», Η/Υ) Λογισμικό

Απαίτηση από το σύστημα Είναι η περιγραφή μιας εργασίας που θα πρέπει να εκτελείται από κάποια συνιστώσα του συστήματος (άνθρωποι, μηχανές, λογισμικό) ή ενός χαρακτηριστικού το οποίο θα πρέπει να έχει το σύστημα Σύνθετη εργασία! Αρκετές απαιτήσεις από το σύστημα μπορεί να σχετίζονται άμεσα ή έμμεσα με τις απαιτήσεις από το λογισμικό Πολλές φορές δύσκολη η διάκριση... Χρήσιμη όμως! Καλύτερη κατανόηση του συστήματος

Απαίτηση από το σύστημα Πώς τη διακρίνουμε? «Ποια από τις συνιστώσες του συστήματος πρέπει να ικανοποιήσει την απαίτηση αυτή?» Αν «λογισμικό», τότε απαίτηση από το λογισμικό... Αν όχι, τότε απαίτηση από το σύστημα...

Παράδειγμα Το κινητό τηλέφωνο αποτελεί ένα σύστημα στο οποίο διακρίνουμε σαν συνιστώσες τόσο τη μηχανή όσο και το λογισμικό. Ποιες από τις παρακάτω απαιτήσεις που σχετίζονται με ένα κινητό τηλέφωνο, πιστεύετε ότι είναι απαιτήσεις από το σύστημα; A. Διαθέτει ασύρματη θύρα επικοινωνίας για την επικοινωνία με άλλες ηλεκτρονικές συσκευές B. Προσφέρει δυνατότητα διαχείρισης αρχείων φωτογραφίας C. Διαθέτει κάμερα λήψης φωτογραφιών και video D. Διαθέτει δυνατότητα διαχείρισης μηνυμάτων σε δύο γλώσσες (Ελληνικά και Αγγλικά)

Παράδειγμα Το κινητό τηλέφωνο αποτελεί ένα σύστημα στο οποίο διακρίνουμε σαν συνιστώσες τόσο τη μηχανή όσο και το λογισμικό. Ποιες από τις παρακάτω απαιτήσεις που σχετίζονται μ ένα κινητό τηλέφωνο πιστεύετε ότι είναι απαιτήσεις από το σύστημα; A. Διαθέτει ασύρματη θύρα επικοινωνίας για την επικοινωνία μ άλλες ηλεκτρονικές συσκευές B. Προσφέρει δυνατότητα διαχείρισης αρχείων φωτογραφίας C. Διαθέτει κάμερα λήψης φωτογραφιών και video D. Διαθέτει δυνατότητα διαχείρισης μηνυμάτων σε δύο γλώσσες (Ελληνικά και Αγγλικά) Η απαίτηση Α είναι μια απαίτηση που για να υλοποιηθεί χρειάζεται η παρουσία μιας θύρας επικοινωνίας - δηλαδή δεν σχετίζεται με το λογισμικό του κινητού. Για την ορθή βέβαια επικοινωνία απαιτείται και η υλοποίηση σε επίπεδο λογισμικού του πρωτοκόλλου επικοινωνίας. Στην περίπτωσή μας όμως αναφερόμαστε στη «θύρα επικοινωνίας». Η απαίτηση Γ αναφέρεται ξεκάθαρα στην παρουσία κάμερας, η οποία φυσικά δεν είναι λογισμικό. Οι απαιτήσεις Β και Δ μπορούν να υλοποιηθούν μόνο μέσα στο λογισμικό του κινητού και γι αυτό είναι απαιτήσεις από το λογισμικό.

Απαίτηση από το λογισμικό Είναι μία λειτουργία που το λογισμικό θα πρέπει να επιτελεί ή μία συνθήκη που θα πρέπει να ικανοποιεί, όταν θα έχει ολοκληρωθεί η κατασκευή του Αφορά τη συμπεριφορά του λογισμικού προς το εξωτερικό του περιβάλλον (χρήστης, άλλες εφαρμογές, λογισμικού) και όχι εσωτερικά του στοιχεία

Ταξινόμηση απαιτήσεων από το λογισμικό Λειτουργικές απαιτήσεις περιγράφουν τις εργασίες (λειτουργίες) που θα πρέπει να εκτελεί το λογισμικό καθορίζουν τη συμπεριφορά του συστήματος, δηλ. την απόκριση που πρέπει να εμφανίζει στο περιβάλλον του όταν ισχύουν συγκεκριμένες συνθήκες ή όταν δέχεται συγκεκριμένα ερεθίσματα Μη λειτουργικές απαιτήσεις ή περιορισμοί περιγράφουν χαρακτηριστικά που θα πρέπει να έχει το λογισμικό τα οποία δεν αφορούν την εκτέλεση κάποιας λειτουργίας από αυτό καθορίζουν ιδιώματα εμφάνισης (αισθητική, επικοινωνία με το χρήστη), επιδόσεων (αξιοπιστία, χρόνος εκτέλεσης, χρήση πόρων), υλοποίησης, κ.τ.λ. τα οποία γενικά χαρακτηρίζουν το λογισμικό, χωρίς όμως να μπορούν να ιδωθούν ως λειτουργίες που αυτό επιτελεί.

Ταξινόμηση απαιτήσεων από το λογισμικό Απαιτήσεις από το λογισμικό Λειτουργικές Μη Λειτουργικές Χρήσης Αξιοπιστίας Επιδόσεων Υποστήριξης Επικοινωνίας Υλοποίησης Φυσικές Βάσεων Δεδομένων Σχεδίασης

Ταξινόμηση μη λειτουργικών απαιτήσεων Απαιτήσεις χρήσης καθορίζουν χαρακτηριστικά χρήσης συστήματος, user interface και υλικό τεκμηρίωσης που θα έχει στη διάθεσή του ο τελικός χρήστης π.χ.: Το λογισμικό θα πρέπει να ελέγχεται µε τη χρήση του ποντικιού ή του πληκτρολογίου και να συνοδεύεται από αναλυτικό εγχειρίδιο χρήστη και εγχειρίδιο εκµάθησης. Απαιτήσεις αξιοπιστίας καθορίζουν τη συμπεριφορά του λογισμικού σε καταστάσεις ενδογενών ή εξωγενών σφαλμάτων, τη διαδικασία αποκατάστασης, την πρόβλεψη τέτοιων καταστάσεων, και την επιθυμητή διαθεσιμότητα του λογισμικού π.χ.: Σε περίπτωση απρόβλεπτου τερµατισµού της λειτουργίας του λογισµικού θα πρέπει να επιχειρείται επανεκκίνηση µε την ελάχιστη δυνατή απώλεια δεδοµένων για το χρήστη. Απαιτήσεις επιδόσεων εισάγουν περιορισμούς σε λειτουργικές απαιτήσεις σχετικά με το χρόνο εκτέλεσής τους και με τη χρήση πόρων όπως η μνήμη και οι μονάδες επεξεργασίας π.χ.: Ο χρόνος αναζήτησης και ανάκτησης από τη βάση δεδοµένων µιας εγγραφής µε κλειδί το ονοµατεπώνυµο δε θα πρέπει να ξεπερνά το 1 δευτερόλεπτο.

Ταξινόμηση μη λειτουργικών απαιτήσεων Απαιτήσεις υποστήριξης καθορίζουν τα επιθυμητά χαρακτηριστικά για τον έλεγχο και τη συντήρηση του λογισμικού π.χ.: Κατά την εγκατάσταση θα πρέπει να καταγράφεται σε αρχείο µη ορατό από το χρήστη η έκδοση όλων των αρχείων που εγκαταστάθηκαν. Απαιτήσεις σχεδίασης καθορίζουν τον τρόπο με τον οποίο θα πρέπει να γίνει η σχεδίαση λογισμικού, π.χ χρήση προτύπων, συγκεκριμένων μεθοδολογιών κτλ. π.χ.: Η σχεδίαση θα πρέπει να γίνει µε χρήση της µεθοδολογίας OMT και µε χρήση του προτύπου IEEE Std 1016. Απαιτήσεις υλοποίησης καθορίζουν τον τρόπο με τον οποίο θα πρέπει να γίνει η συγγραφή του πηγαίου κώδικα του λογισμικού π.χ.: Θα πρέπει να χρησιµοποιηθεί η γλώσσα ANSI C και να θεωρείται ότι η συνολική διαθέσιµη µνήµη είναι 64 ΚΒ.

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

Ταξινόμηση απαιτήσεων...? Η εφαρμογή θα πρέπει να τρέχει σε περιβάλλον Linux Μη λειτουργική απαίτηση - Φυσική Η εφαρμογή θα πρέπει να υπολογίζει τη μέση τιμή και τυπική απόκλιση της παραμέτρου Α Λειτουργική απαίτηση Η εφαρμογή θα πρέπει να μπορεί να χρησιμοποιείται ταυτόχρονα από περισσότερους από έναν χρήστες Μη λειτουργική απαίτηση - Φυσική Η σχεδίαση θα πρέπει να γίνεται με τη χρήση του προτύπου UML Μη λειτουργική απαίτηση - Σχεδίασης Η εφαρμογή θα πρέπει να διαχειρίζεται αρχείο φοιτητών και βαθμολογίας στα μαθήματα που παρακολουθούν Λειτουργική απαίτηση

Ταξινόμηση απαιτήσεων...? Η καταχώρηση της βαθμολογίας θα πρέπει να γίνεται μόνο από εξουσιοδοτημένους χρήστες Μη λειτουργική απαίτηση - Χρήσης Η εφαρμογή θα υλοποιηθεί σε γλώσσα C++ Μη λειτουργική απαίτηση - Υλοποίησης Η επικοινωνία της εφαρμογής με τη βάση δεδομένων θα γίνεται μέσω δικτύου TCP/IP Μη λειτουργική απαίτηση - Επικοινωνίας Σε περίπτωση μη διαθεσιμότητας του δικτύου, η προσπάθεια σύνδεσης θα επαναλαμβάνεται ανά 5 λεπτά και επί 1 ώρα Μη λειτουργική απαίτηση - Αξιοπιστίας Η εφαρμογή θα εκτυπώνει λίστα με τους εγγεγραμμένους φοιτητές ανά μάθημα Λειτουργική απαίτηση

Ερώτηση 1 Ποιες από τις παρακάτω απαιτήσεις είναι λειτουργικές για μια εφαρμογή εξ αποστάσεως εξέτασης φοιτητών μέσω on-line τεστ πολλαπλών επιλογών; A. Ο φοιτητής θα μπορεί να βλέπει τις ερωτήσεις και τις πολλαπλές απαντήσεις απ όπου θα επιλέγει αυτές που νομίζει ότι είναι σωστές. B. Το λογισμικό θα πρέπει να αποθηκεύει σε βάση δεδομένων MySQL τα ακόλουθα στοιχεία για τους φοιτητές: ονοματεπώνυμο, αριθμός μητρώου, διεύθυνση, τηλέφωνο, έτος σπουδών, βαθμοί. C. Το on-line τεστ θα πρέπει να έχει υλοποιηθεί σαν ένα web-service για μεγαλύτερη διαλειτουργικότητα. D. Ο φοιτητής θα μπορεί να κάνει προεπισκόπηση των απαντήσεών του πριν υποβάλλει το τεστ για αξιολόγηση.

Ερώτηση 1 Ποιες από τις παρακάτω απαιτήσεις είναι λειτουργικές για μια εφαρμογή εξ αποστάσεως εξέτασης φοιτητών μέσω on-line τεστ πολλαπλών επιλογών; A. Ο φοιτητής θα μπορεί να βλέπει τις ερωτήσεις και τις πολλαπλές απαντήσεις απ όπου θα επιλέγει αυτές που νομίζει ότι είναι σωστές. B. Το λογισμικό θα πρέπει να αποθηκεύει σε βάση δεδομένων MySQL τα ακόλουθα στοιχεία για τους φοιτητές: ονοματεπώνυμο, αριθμός μητρώου, διεύθυνση, τηλέφωνο, έτος σπουδών, βαθμοί. απαίτηση βάσεων δεδομένων C. Το on-line τεστ θα πρέπει να έχει υλοποιηθεί σαν ένα web-service για μεγαλύτερη διαλειτουργικότητα. απαίτηση επικοινωνίας με άλλα συστήματα D. Ο φοιτητής θα μπορεί να κάνει προεπισκόπηση των απαντήσεών του πριν υποβάλλει το τεστ για αξιολόγηση.

Ερώτηση 2 Ποιες από τις παρακάτω απαιτήσεις είναι ΜΗ λειτουργικές απαιτήσεις? A. Η εφαρμογή θα εκτυπώνει λίστα με τα μαθήματα που έχει επιλέξει ο φοιτητής. B. Η εφαρμογή θα επιτρέπει μέχρι έξη (6) επιλογές μαθημάτων ανά εξάμηνο φοίτησης. C. Με την καταχώρηση μιας επιλογής μαθήματος από τον φοιτητή η εφαρμογή θα του αποστέλλει μήνυμα επιβεβαίωσης. D. Η εφαρμογή θα χρησιμοποιεί για την αποθήκευση των επιλογών του φοιτητή ΣΔΒΔ Oracle το οποίο θα «τρέχει» σε λειτουργικό σύστημα Linux.

Ερώτηση 2 Ποιες από τις παρακάτω απαιτήσεις είναι ΜΗ λειτουργικές απαιτήσεις? A. Η εφαρμογή θα εκτυπώνει λίστα με τα μαθήματα που έχει επιλέξει ο φοιτητής. B. Η εφαρμογή θα επιτρέπει μέχρι έξη (6) επιλογές μαθημάτων ανά εξάμηνο φοίτησης. C. Με την καταχώρηση μιας επιλογής μαθήματος από τον φοιτητή η εφαρμογή θα του αποστέλλει μήνυμα επιβεβαίωσης. D. Η εφαρμογή θα χρησιμοποιεί για την αποθήκευση των επιλογών του φοιτητή ΣΔΒΔ Oracle το οποίο θα «τρέχει» σε λειτουργικό σύστημα Linux. φυσική απαίτηση

Ερώτηση 3 Ποιες από τις παρακάτω προτάσεις είναι σωστές (όσον αφορά στις απαιτήσεις από ένα σύστημα); A. Η απαίτηση «Με την καταχώρηση μίας νέας καταγγελίας, το σύστημα θα πρέπει να στέλνει μήνυμα ηλεκτρονικού ταχυδρομείου στον αρμόδιο υπάλληλο για να αξιολογήσει την καταγγελία» είναι απαίτηση Βάσης Δεδομένων. B. Η απαίτηση «Το σύστημα θα πρέπει να αποθηκεύει σε βάση δεδομένων Oracle τα ακόλουθα στοιχεία για τους καταγγέλοντες: Όνομα, Επώνυμο, Αριθμό Ταυτότητας, Διεύθυνση, Τηλέφωνο, Επάγγελμα και Ηλικία» είναι λειτουργική απαίτηση. C. Η απαίτηση «Το σύστημα θα πρέπει να δίνει αναφορές και στατιστικά στοιχεία σχετικά με τις καταγγελίες που καταγράφονται» είναι λειτουργική απαίτηση. D. Η απαίτηση «Το σύστημα θα πρέπει να σχεδιαστεί ώστε να είναι παραμετρικό και επεκτάσιμο» είναι λειτουργική απαίτηση.

Ερώτηση 3 Ποιες από τις παρακάτω προτάσεις είναι σωστές (όσον αφορά στις απαιτήσεις από ένα σύστημα); A. Η απαίτηση «Με την καταχώρηση μίας νέας καταγγελίας, το σύστημα θα πρέπει να στέλνει μήνυμα ηλεκτρονικού ταχυδρομείου στον αρμόδιο υπάλληλο για να αξιολογήσει την καταγγελία» είναι απαίτηση Βάσης Δεδομένων. B. Η απαίτηση «Το σύστημα θα πρέπει να αποθηκεύει σε βάση δεδομένων Oracle τα ακόλουθα στοιχεία για τους καταγγέλοντες: Όνομα, Επώνυμο, Αριθμό Ταυτότητας, Διεύθυνση, Τηλέφωνο, Επάγγελμα και Ηλικία» είναι λειτουργική απαίτηση. C. Η απαίτηση «Το σύστημα θα πρέπει να δίνει αναφορές και στατιστικά στοιχεία σχετικά με τις καταγγελίες που καταγράφονται» είναι λειτουργική απαίτηση. D. Η απαίτηση «Το σύστημα θα πρέπει να σχεδιαστεί ώστε να είναι παραμετρικό και επεκτάσιμο» είναι λειτουργική απαίτηση.

Μηχανική απαιτήσεων Σημαντικά προβλήματα στον προσδιορισμό απαιτήσεων από το λογισμικό: Πλήθος και πολυπλοκότητα απαιτήσεων Συσχετίσεις μεταξύ απαιτήσεων από το λογισμικό και με τις απαιτήσεις από το σύστημα Διαφορετικά επίπεδα λεπτομέρειας στην περιγραφή ΑΡΑ πρέπει να γίνει προσεκτικά και με πειθαρχία η αντιμετώπιση του προβλήματος Μηχανική απαιτήσεων η γενική διαδικασία ανάλυσης και προσδιορισμού απαιτήσεων από το λογισμικό Διαφορετικές προσεγγίσεις δεν υπάρχει μία «καλύτερη»!

Μηχανική απαιτήσεων Δομημένη ανάλυση Γενική αλληλουχία ενεργειών που πρέπει να γίνονται κατά τον προσδιορισμό των απαιτήσεων από το λογισμικό Παραγωγή προϊόντων με τη μορφή εγγράφων και διαγραμμάτων κατά τις ενέργειες αυτές Αντικειμενοστρεφής ανάλυση υπερσύνολο δομημένης προσέγγισης

Προσδιορισμός απαιτήσεων 1η πηγή καθορισμού απαιτήσεων: πελάτης! Περιγραφή με τη μορφή έκθεσης, συνήθως όχι πλήρης, με ασάφειες... Πρώτο υλικό για τον κατασκευαστή... για να κατασκευάσει λογισμικό, να εκτιμήσει χρόνο και κόστος! Όχι μόνο τι πρέπει να κάνει το λογισμικό, αλλά και χαρακτηριστικά (περιβάλλον λειτουργίας, τρόπος χρήσης, επιδόσεις) Επαναληπτική διαδικασία καθορισμού απαιτήσεων με ολοένα και λεπτομερέστερη εκδοχή απαιτήσεων από το λογισμικό! Τελικό αποτέλεσμα: έγγραφο «Προδιαγραφές των απαιτήσεων από το λογισμικό» + Σύνολο διαγραμμάτων

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

Μελέτες σκοπιμότητας Η μελέτη σκοπιμότητας είναι μια αναφορά που αποφαίνεται αν αξίζει να προχωρήσει το προτεινόμενο σύστημα. Μια σύντομη και εστιασμένη μελέτη που ελέγχει: Αν το σύστημα συμβάλλει στους συνολικούς στόχους της εταιρείας Αν το σύστημα μπορεί να υλοποιηθεί με τη χρήση τρέχουσας τεχνολογίας και στα πλαίσια του προϋπολογισμού Αν το σύστημα μπορεί να συνεργαστεί με άλλα συστήματα που είναι ήδη σε λειτουργία 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Υλοποίηση μελέτης σκοπιμότητας Βασίζεται στην αξιολόγηση πληροφοριών (τι απαιτείται), τη συλλογή πληροφοριών και τη σύνταξη αναφορών. Ερωτήματα για τα άτομα της εταιρείας Πώς θα λειτουργούσε η εταιρεία αν αυτό το σύστημα δεν υλοποιούνταν; Τι προβλήματα έχουν οι τρέχουσες διαδικασίες; Πώς θα βοηθήσει το προτεινόμενο σύστημα; Τι προβλήματα θα παρουσιαστούν στην ενσωμάτωση του νέου συστήματος; Χρειάζεται νέα τεχνολογία; Ποιες δεξιότητες είναι απαραίτητες; Τι βοηθήματα πρέπει να υποστηρίζει το προτεινόμενο σύστημα; 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Εξαγωγή και ανάλυση Επίσης: εξαγωγή απαιτήσεων ή προσδιορισμός απαιτήσεων. Προβλέπει τη συνεργασία των μηχανικών λογισμικού με τους πελάτες για να μάθουν σχετικά με το πεδίο εφαρμογής, τις υπηρεσίες που θα πρέπει να παρέχει το σύστημα και τους λειτουργικούς περιορισμούς του. Μπορεί να εμπλέκονται οι τελικοί χρήστες, οι διευθυντές, οι μηχανικοί συντήρησης, οι ειδικοί του πεδίου εφαρμογής, κ.λπ. Όλοι τους ονομάζονται ενδιαφερόμενοι (stakeholders). 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Προβλήματα της ανάλυσης απαιτήσεων Οι ενδιαφερόμενοι δεν ξέρουν τι πραγματικά θέλουν. Οι ενδιαφερόμενοι εκφράζουν τις απαιτήσεις με δικούς τους όρους. Οι απαιτήσεις των διάφορων ενδιαφερομένων μπορεί να είναι αντιφατικές. Οι απαιτήσεις του συστήματος είναι πιθανό να επηρεάζονται από εταιρικούς παράγοντες και παράγοντες πολιτικής. Οι απαιτήσεις αλλάζουν κατά τη διάρκεια της ανάλυσης. Μπορεί να εμφανιστούν νέοι ενδιαφερόμενοι και να μεταβληθεί το επιχειρηματικό περιβάλλον. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Οι ενδιαφερόμενοι για ένα σύστημα τραπεζικών συναλλαγών ATM Οι πελάτες της τράπεζας Εκπρόσωποι άλλων τραπεζών Διευθυντές υποκαταστημάτων της τράπεζας Προσωπικό των ταμείων Διαχειριστές βάσεων δεδομένων Υπεύθυνοι για την προστασία της τράπεζας Το τμήμα μάρκετινγκ Μηχανικοί συντήρησης υλικού και λογισμικού Κρατικές τραπεζικές εποπτικές αρχές 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Απόψεις Άποψη ονομάζεται ένας τρόπος δόμησης των απαιτήσεων με τρόπο τέτοιο ώστε να αντιπροσωπεύει την οπτική γωνία του εκάστοτε ενδιαφερομένου. Οι ενδιαφερόμενοι μπορούν να κατηγοριοποιηθούν κάτω από διαφορετικές απόψεις. Αυτή η ανάλυση από πολλές οπτικές γωνίες είναι σημαντική καθώς δεν υπάρχει ένας και μοναδικός ορθός τρόπος ανάλυσης των απαιτήσεων ενός συστήματος. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Τύποι απόψεων Αλληλεπιδρούσες απόψεις Άτομα ή άλλα συστήματα που αλληλεπιδρούν άμεσα με το σύστημα. Στο τραπεζικό σύστημα ATM, απόψεις αλληλεπιδρώντων είναι οι πελάτες της τράπεζας και η βάση δεδομένων με τους λογαριασμούς. Έμμεσες απόψεις Ενδιαφερόμενοι που δεν χρησιμοποιούν το σύστημα οι ίδιοι, αλλά επηρεάζουν τις απαιτήσεις με κάποιον τρόπο. Στο τραπεζικό σύστημα ATM, έμμεσες απόψεις είναι η διεύθυνση και το προσωπικό ασφάλειας της τράπεζας. Απόψεις πεδίου Χαρακτηριστικά και περιορισμοί του πεδίου εφαρμογής που επηρεάζουν τις απαιτήσεις. Στο τραπεζικό σύστημα ATM, ένα παράδειγμα άποψης πεδίου μπορεί να είναι τα πρότυπα που έχουν αναπτυχθεί για τις διατραπεζικές επικοινωνίες. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Μετρικές απαιτήσεων Ιδιότητα Ταχύτητα Μέγεθος Ευχρηστία Αξιοπιστία Ανθεκτικότητα Φορητότητα Μετρική Συναλλαγές/δευτερόλεπτο Χρόνος απόκρισης χρήστη/συμβάντος Χρόνος ανανέωσης οθόνης K byte Αριθμός τσιπ μνήμης RAM Χρόνος εκπαίδευσης Αριθμός πλαισίων βοήθειας Μέσος χρόνος μεταξύ αστοχιών Πιθανότητα μη διαθεσιμότητας Συχνότητα εμφάνισης αστοχιών Διαθεσιμότητα Χρόνος επανεκκίνησης μετά από αστοχία Ποσοστό συμβάντων που προκαλούν αστοχία Πιθανότητα βλάβης δεδομένων από αστοχία Ποσοστό εντολών που εξαρτώνται από το σύστημα προορισμού Αριθμός συστημάτων προορισμού 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Παράδειγμα Το σύστημα ελέγχου θέσης δορυφόρου πρέπει να παρέχει απόκριση πραγματικού χρόνου σε ερωτήσεις και να παρέχει την απαραίτητη ακρίβεια ώστε να υποστηρίξει το σχεδιασμό των αποστολών Προβλήματα; Απόκριση πραγματικού χρόνου Ακρίβεια Ακριβέστερη διατύπωση: Το σύστημα ελέγχου θέσης δορυφόρου πρέπει να αποκρίνεται εντός 2 msec σε ερωτήσεις και να παρέχει τη θέση του δορυφόρου με σφάλμα κάτω από 20 m όταν ο δορυφόρος είναι σε τροχιά και κάτω από 10 m όταν δεν είναι σε τροχιά.

Έλλειψη ακρίβειας στις προδιαγραφές απαιτήσεων Όταν οι απαιτήσεις δεν διατυπώνονται με ακρίβεια, ανακύπτουν προβλήματα. Οι ασαφείς απαιτήσεις μπορούν να ερμηνευθούν με διάφορους τρόπους από προγραμματιστές και χρήστες. Εξετάστε τον όρο "λογισμικό προβολής για την ανάγνωση εγγράφων" Πρόθεση του χρήστη - ειδικό λογισμικό προβολής για κάθε ξεχωριστό τύπο εγγράφου Ερμηνεία του προγραμματιστή - Παροχή προγράμματος προβολής κειμένου που εμφανίζει τα περιεχόμενα του εγγράφου. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Αλληλεπίδραση απαιτήσεων Σε σύνθετα συστήματα είναι συνήθεις οι διενέξεις μεταξύ των διάφορων μη λειτουργικών απαιτήσεων. Σύστημα διαστημικού σκάφους Για την ελαχιστοποίηση του βάρους, το πλήθος των τσιπ του συστήματος πρέπει να είναι ελάχιστο. Για την ελαχιστοποίηση της κατανάλωσης ενέργειας, πρέπει να χρησιμοποιούνται τσιπ μικρότερης ισχύος. Όμως η χρήση τσιπ μικρότερης ισχύος μπορεί να σημαίνει ότι πρέπει να χρησιμοποιηθούν περισσότερα τσιπ. Ποια είναι η πιο κρίσιμη απαίτηση; 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Απαιτήσεις πεδίου Προέρχονται από το πεδίο εφαρμογής του συστήματος και περιγράφουν χαρακτηριστικά και δυνατότητες του συστήματος οι οποίες αντανακλούν το πεδίο. Οι απαιτήσεις πεδίου μπορεί να είναι νέες λειτουργικές απαιτήσεις, περιορισμοί για υπάρχουσες λειτουργικές απαιτήσεις, ή μπορεί να καθορίζουν πώς πρέπει να εκτελούνται κάποιοι συγκεκριμένοι υπολογισμοί. Αν δεν ικανοποιούνται οι απαιτήσεις πεδίου, το σύστημα μπορεί να είναι αδύνατο να λειτουργήσει ικανοποιητικά. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Προβλήματα των απαιτήσεων πεδίου Έλλειψη ευχέρειας κατανόησης Είναι γραμμένες στη γλώσσα του πεδίου εφαρμογής. Συχνά είναι δυσνόητες από τους μηχανικούς ανάπτυξης του συστήματος. Έλλειψη ρητής διατύπωσης Οι ειδικοί του πεδίου κατανοούν το χώρο τόσο καλά που δεν διανοούνται καν να αποσαφηνίσουν τις απαιτήσεις πεδίου. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Ανάλυση απαιτήσεων vs Προδιαγραφή απαιτήσεων Ανάλυση: συλλογή απαιτήσεων, πιθανά αδόμητων και αλληλοσυγκρουόμενων Προδιαγραφή: φορμαλιστική, μονοσήμαντα ερμηνευόμενη διατύπωση κάθε απαίτησης, δομημένη και λεπτομερής περιγραφή με στόχους: A. Συμφωνία με το χρήστη B. Τροφοδότηση του σχεδιαστή

Επιμέρους βήματα κατά τη φάση ανάλυσης απαιτήσεων Εύρεση και ταξινόμηση απαιτήσεων Αντιμετώπιση συγκρούσεων Αρχή Κατανόηση προβλήματος ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ Ιεράρχηση Επαλήθευση απαιτήσεων Προδιαγραφή απαιτήσεων

Ανάλυση απαιτήσεων Εντοπισμός απαιτήσεων και κύκλος Ταξινόμησης Ιεράρχησης Επαλήθευσης Αποτέλεσμα το σύνολο των απαιτήσεων οι οποίες περιγράφονται με μορφή διαγραμμάτων Είσοδος στη διάκριση και προδιαγραφή απαιτήσεων

Επιμέρους βήματα κατά τη φάση ανάλυσης απαιτήσεων Κατανόηση προβλήματος Συλλογή απαιτήσεων Επίλυση συγκρούσεων Ιεράρχηση Επαλήθευση απαιτήσεων

Επιμέρους βήματα κατά τη φάση ανάλυσης απαιτήσεων Κατανόηση προβλήματος Εξοικοίωση του κατασκευαστή με την ουσία του προβλήματος Δημιουργική αλλά δύσκολη εργασία! Συλλογή απαιτήσεων Αρχική καταγραφή απαιτήσεων σε λίστα μέσω Συνεντεύξεων Ερωτηματολογίων Συζητήσεων με ειδικούς Ταξινόμηση απαιτήσεων σε ομάδες ανάλογα με το υποσύνολο προβλήματος που αφορούν ή άλλο τρόπο. Εντοπισμός ασυνεπειών δύο ή περισσότερες απαιτήσεις η ικανοποίηση των οποίων δεν μπορεί να γίνει ταυτόχρονα. ΑΡΑ Επίλυση συγκρούσεων

Επιμέρους βήματα κατά τη φάση ανάλυσης απαιτήσεων Ιεράρχηση Ως προς τη σειρά ικανοποίησής τους Καθορίζει τη χρονική αλληλουχία ενσωμάτωσης στο λογισμικό λειτουργιών που ικανοποιούν τις απαιτήσεις Καθορίζει ποιες απαιτήσεις δε θα ικανοποιηθούν καθόλου, αν επιβληθεί από εξωτερικούς παράγοντες (π.χ. κόστος) Επαλήθευση απαιτήσεων Νέα επαφή με τον πελάτη με τη μορφή σύσκεψης ή ανταλλαγής εγγράφων Αν οι απαιτήσεις ικανοποιούν, τότε έναρξη κατασκευής μοντέλων περιγραφής λογισμικού Αν οι απαιτήσεις δεν ικανοποιούν, τότε πισωγυρίσματα

Συνεντεύξεις Στις τυπικές ή άτυπες συνεντεύξεις, η ομάδα των μηχανικών απαιτήσεων θέτει ερωτήματα στους ενδιαφερόμενους για το σύστημα που χρησιμοποιούν και για το σύστημα που αναπτύσσεται. Οι συνεντεύξεις μπορούν να είναι δύο τύπων: Κλειστές συνεντεύξεις, όπου ο ενδιαφερόμενος απαντάει σε ένα προκαθορισμένο σύνολο ερωτήσεων. Ανοιχτές συνεντεύξεις, όπου δεν υπάρχει προκαθορισμένη ατζέντα και η ομάδα των μηχανικών απαιτήσεων διερευνά μια σειρά ζητημάτων με τους ενδιαφερόμενους. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Συνεντεύξεις στην πράξη Συνήθως ένα μίγμα ανοικτών και κλειστών συνεντεύξεων. Οι συνεντεύξεις είναι καλές για την απόκτηση μιας γενική κατανόηση των καθηκόντων που έχει κάθε ενδιαφερόμενος και του τρόπου με τον οποίο θα αλληλεπιδρά με το σύστημα. Οι συνεντεύξεις δεν είναι τόσο καλές για την κατανόηση των απαιτήσεων του πεδίου εφαρμογής Οι μηχανικοί απαιτήσεων δεν μπορούν να κατανοήσουν την εξειδικευμένη ορολογία του πεδίου εφαρμογής Κάποιες γνώσεις πεδίου είναι τόσο οικείες στους ενδιαφερόμενους που είτε το βρίσκουν δύσκολο να τις εξηγήσουν, είτε τις θεωρούν τόσο θεμελιώδεις που θεωρούν ότι δεν αξίζει να αναφερθούν. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Αποτελεσματικοί συνεντευξιάζοντες Οι συνεντευξιάζοντες πρέπει να έχουν ανοιχτό μυαλό, να αποφεύγουν τις προδεδικασμένες ιδέες για τις απαιτήσεις και να είναι πρόθυμοι να ακούσουν τους ενδιαφερόμενους. Πρέπει να προκαλούν τον ερωτώμενο να συζητήσει, υποβάλλοντας ερωτήσεις ή προτάσεις και όχι να περιμένουν από αυτόν να αποκριθεί σε μια ερώτηση τύπου "πείτε μου τι θέλετε". 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Προδιαγραφή απαιτήσεων «Προδιαγραφή» είναι η δομημένη και λεπτομερή περιγραφή των απαιτήσεων από το λογισμικό η οποία γίνεται με τη μορφή γραπτού λόγου και, όπου απαιτείται, διαγραμμάτων. Εγγραφο προδιαγραφών απαιτήσεων από το λογισμικό: το σημαντικότερο έγγραφο τεκμηρίωσης λογισμικού. Εναλλακτικοί τρόποι δόμησης του εγγράφου Επιθυμητά χαρακτηριστικά: Να περιγράφει τη συμπεριφορά του λογισμικού προς το εξωτερικό του περιβάλλον (χρήστης, άλλες εφαρμογές λογισμικού) και όχι εσωτερικά του στοιχεία Να περιγράφει όλους τους περιορισμούς που αφορούν την ανάπτυξη του λογισμικού Να είναι εύκολο να αλλαχτεί Να είναι χρήσιμο στη συντήρηση λογισμικού Να περιγράφει τη συμπεριφορά λογισμικού σε ανεπιθύμητες καταστάσεις

Τρόποι έκφρασης απαιτήσεων Φυσική Γλώσσα: Ευκολότερη μέθοδος Προβλήματα λόγω ασάφειας και αδυναμίας συσχετισμού απαιτήσεων με συγκεκριμένα στοιχεία του συστήματος Στατικές περιγραφές: Οντότητες ή αντικείμενα του συστήματος και σχέσεις μεταξύ τους Δυναμικές περιγραφές: Εικόνα των καταστάσεων του συστήματος και των μεταβάσεων μεταξύ τους με την πάροδο του χρόνου

Προβλήματα χρήσης ανθρώπινων στοιχείων γλωσσικής έκφρασης Έλλειψη σαφήνειας Είναι δύσκολο να χρησιμοποιηθεί η γλώσσα με ακριβή τρόπο χωρίς να γίνει το έγγραφο δυσανάγνωστο. Σύγχυση των απαιτήσεων Οι λειτουργικές απαιτήσεις και οι μη λειτουργικές απαιτήσεις συνήθως συγχέονται. Συνδυασμός απαιτήσεων Πολλές διαφορετικές απαιτήσεις μπορεί να εκφράζονται με τη μορφή μίας μόνο απαίτησης. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Προβλήματα χρήσης ανθρώπινων στοιχείων γλωσσικής έκφρασης Διφορούμενη ερμηνεία Οι αναγνώστες και οι συγγραφείς της προδιαγραφής πρέπει να ερμηνεύουν τις ίδιες λέξεις με τον ίδιο τρόπο. Η φυσική γλώσσα έχει διφορούμενη ερμηνεία από τη φύση της, οπότε αυτό είναι δύσκολο. Υπερβολική ευελιξία Στις προδιαγραφές, μπορεί να διατυπωθεί το ίδιο πράγμα με πολλούς διαφορετικούς τρόπους. Έλλειψη δυνατότητας οργάνωσης σε ξεχωριστές υπομονάδες Οι δομές της φυσικής γλώσσας δεν επαρκούν για τη δόμηση των απαιτήσεων συστήματος. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Διαχείριση απαιτήσεων Είναι η διαδικασία διαχείρισης των απαιτήσεων που μεταβάλλονται κατά τη διαδικασία τεχνολογίας απαιτήσεων και της ανάπτυξης του συστήματος. Οι απαιτήσεις μοιραία είναι ημιτελείς και ασυνεπείς Κατά τη διαδικασία ανακύπτουν νέες απαιτήσεις καθώς μεταβάλλονται οι επιχειρησιακές ανάγκες και αναπτύσσεται καλύτερη αντίληψη του συστήματος Κάθε άποψη έχει διαφορετικές απαιτήσεις, οι οποίες συχνά είναι αντιφατικές. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Τροποποίηση των απαιτήσεων Κατά τη διαδικασία ανάπτυξης αλλάζει η προτεραιότητα των απαιτήσεων από τις διάφορες απόψεις. Οι πελάτες του συστήματος μπορεί να καθορίζουν απαιτήσεις από μια επιχειρηματική οπτική γωνία, οι οποίες αντικρούουν τις απαιτήσεις των τελικών χρηστών. Το επιχειρηματικό και τεχνικό περιβάλλον του συστήματος αλλάζει καθόλη τη διάρκεια της ανάπτυξής του. 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Προγραμματισμός διαχείρισης απαιτήσεων Στη διαδικασία της διαχείρισης απαιτήσεων, πρέπει να προγραμματίσετε: Τον προσδιορισμό των απαιτήσεων Πώς προσδιορίζεται μονοσήμαντα κάθε απαίτηση Μια διαδικασία διαχείρισης αλλαγών Τη διαδικασία ανάλυσης μιας αλλαγής στις απαιτήσεις Πολιτικές ανιχνευσιμότητας Την ποσότητα πληροφοριών που τηρούνται και αφορούν τις σχέσεις μεταξύ των απαιτήσεων Υποστήριξη εργαλείων CASE Την απαιτούμενη υποστήριξη με εργαλεία που διευκολύνουν τη διαχείριση αλλαγών απαιτήσεων 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Υποστήριξη εργαλείων CASE Αποθήκευση απαιτήσεων Οι απαιτήσεις θα πρέπει να διατηρούνται σε έναν ασφαλή διαχειριζόμενο αποθηκευτικό χώρο δεδομένων. Διαχείριση αλλαγών Η διαδικασία της διαχείρισης αλλαγών είναι μια διαδικασία ροής εργασιών της οποίας τα στάδια μπορούν να οριστούν πλήρως και η ροή πληροφοριών μεταξύ των σταδίων αυτών να αυτοματοποιηθεί μερικώς. Διαχείριση ανιχνευσιμότητας Αυτοματοποιημένη ανάκτηση των συνδέσεων μεταξύ των απαιτήσεων 2006 I Sommerville Βασικές αρχές Τεχνολογίας Λογισιμικού, 8 η αγγ. έκδοση

Συνοψίζοντας... (1/2) Η προδιαγραφή των απαιτήσεων από το λογισµικό είναι η πιο δύσκολη και δηµιουργική εργασία κατά την ανάπτυξη του λογισµικού. Απαιτεί ιδιαίτερες δυνατότητες επικοινωνίας, δοµηµένη και κριτική σκέψη και συστηµατική προσέγγιση. Η Τεχνολογία Λογισµικού παρέχει το µεθοδολογικό πλαίσιο για την πραγµατοποίηση της εργασίας αυτής και τα εργαλεία καταγραφής των αποτελεσµάτων της Προσέγγιση «δοµηµένης ανάλυσης» και µέσα καταγραφής των απαιτήσεων από το λογισµικό. «Έγγραφο προδιαγραφών των απαιτήσεων»

Συνοψίζοντας... (2/2) Η διαδικασία παραγωγής απαιτήσεων περιλαμβάνει τη μελέτη σκοπιμότητας, την εξαγωγή και ανάλυση απαιτήσεων, την προδιαγραφή απαιτήσεων και τη διαχείριση απαιτήσεων. Η εξαγωγή και ανάλυση των απαιτήσεων είναι μια επαναληπτική διαδικασία που περιλαμβάνει την κατανόηση του πεδίου εφαρμογής, τη συλλογή των απαιτήσεων, την κατηγοριοποίησή τους, τη δόμησή τους, τον καθορισμό της σχετικής προτεραιότητάς τους και την επικύρωσή τους. Κάθε σύστημα έχει πολλούς ενδιαφερόμενους με διάφορες απαιτήσεις.

Πηγές / Acknowledgements Β. Βεσκούκης «Τεχνολογία Λογισμικού Ι», ΕΑΠ, ΠΑΤΡΑ, 2000 Χ. Αντωνόπουλος «Ανάπτυξη και Σχεδίαση Λογισμικού», Τμήμα Μηχ. Η/Υ, Τηλεπικοινωνιών και Δικτύων, Παν. Θεσσαλίας, 2007 S. L. Pfleeger, «Τεχνολογία Λογισμικού Θεωρία και πράξη», 2η έκδοση, Τόμοι Α και Β (μετάφραση, εκδ. Κλειδάριθμος) I. Sommerville, «Βασικές αρχές Τεχνολογίας Λογισμικού», 8 η αγγλική έκδοση (μετάφραση, εκδ. Κλειδάριθμος) Roger S. Pressman. Software Engineering - A Practitioner's Approach. McGraw-Hill, 6 th edition, 2005 ΙΕΕΕ Guide to Software Requirements Specification, ANSI/IEEE, Std 830-1993, 1984