25
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση Ποιο το πρόβλημα ? Ποια η λύση ? Πώς θα υλοποιηθεί η λύση ? Κώδικας ??? Επιλύθηκε το πρόβλημα? Αξιοποιεί ο πελάτης τη λύση ? Παρουσιάζονται προβλήματα ?

Διαδικασία ανάπτυξης

  • Upload
    deana

  • View
    46

  • Download
    2

Embed Size (px)

DESCRIPTION

Διαδικασία ανάπτυξης. Προσδιορισμός απαιτήσεων. Ποιο το πρόβλημα ?. Αρχιτεκτονικός Σχεδιασμός. Ποια η λύση ?. Πώς θα υλοποιηθεί η λύση ?. Λεπτομερής Σχεδιασμός. Κωδικοποίηση. Κώδικας ???. Έλεγχος. Επιλύθηκε το πρόβλημα?. Αξιοποιεί ο πελάτης τη λύση ?. Παράδοση Συστήματος. - PowerPoint PPT Presentation

Citation preview

Page 1: Διαδικασία ανάπτυξης

Διαδικασία ανάπτυξηςΠροσδιορισμός απαιτήσεων

Αρχιτεκτονικός Σχεδιασμός

Λεπτομερής Σχεδιασμός

Κωδικοποίηση

Έλεγχος

Παράδοση Συστήματος

Λειτουργία - Συντήρηση

Ποιο το πρόβλημα ?

Ποια η λύση ?

Πώς θα υλοποιηθεί η λύση ?

Κώδικας ???

Επιλύθηκε το πρόβλημα?

Αξιοποιεί ο πελάτης τη λύση ?Παρουσιάζονται προβλήματα ?

Page 2: Διαδικασία ανάπτυξης

Συστηματική προσέγγιση για τον καθορισμό σε ένα σύστημα• των λειτουργιών που πρέπει να εκτελεί• των περιορισμών στους οποίους υπόκειται

!!! : Καθορίζουμε τι πρέπει να κάνει το σύστημα όχι τον τρόπο με τον οποίο θα το κάνει

Προσδιορισμός Απαιτήσεων

Page 3: Διαδικασία ανάπτυξης

ΠΑΡΑΔΕΙΓΜΑ(Λογισμικό Αυτοκινήτου)

Λειτουργικές Απαιτήσεις:(Αλληλεπίδραση συστήματος – περιβάλλοντος)• Υπολογισμός μέσης κατανάλωσης καυσίμου• Υπολογισμός μέση ωριαίας ταχύτητας• Υπολογισμός βέλτιστης ταχύτηταςΠεριορισμοί :• Υλοποίηση σε γλώσσα C• Απόκριση σε 5 secs• Μνήμη < 100 Kb

Προσδιορισμός Απαιτήσεων

Page 4: Διαδικασία ανάπτυξης

1994: Μελέτη 350 εταιριών = 8000 έργα λογισμικού31% των έργων ακυρώθηκαν πριν από την ολοκλήρωση 9% των έργων παραδόθηκαν εγκαίρως και εντός

προϋπολογισμού από μεγάλες εταιρείες16% των έργων παραδόθηκαν εγκαίρως και εντός

προϋπολογισμού από μικρές εταιρείεςΑιτίες:1. Ελλιπείς απαιτήσεις (13.1 %)2. Μη συμμετοχή των χρηστών (12.4 %)3. Έλλειψη πόρων (10.6 %)4. Εξωπραγματικές απαιτήσεις (9.9 %)5. Αλλαγές στις απαιτήσεις (8.7 %)6. Ανεπαρκής προγραμματισμός (8.1 %)7. Το σύστημα δεν χρειαζόταν πλέον (7.5 %)

Είναι οι απαιτήσεις σημαντικές ?

Pfleeger

Page 5: Διαδικασία ανάπτυξης

Διατύπωση Προβλήματος

Εταιρεία Πελάτης (π.χ. ΟΤΕ)

Εταιρείες Παραγωγής Λογισμικού

(Ericsson, Siemens, Intracom, NOKIA)

Οι απαιτήσεις καθορίζονται σε χαμηλό επίπεδο ανάλυσης,

Φυσική γλώσσα

Page 6: Διαδικασία ανάπτυξης

Ανάλυση ΑπαιτήσεωνΑρχική Περιγραφή

Αναλυτής Συστημάτων

Έγγραφο Περιγραφής Απαιτήσεων από το Σύστημα

(ΕΠΑΣ)

Page 7: Διαδικασία ανάπτυξης

Ανάλυση Απαιτήσεων ΙΙ• Τι θα κάνει το σύστημα

• Κατανομή λειτουργιών σε H/W, S/W, Users

• Περιορισμοί στην ανάπτυξη και λειτουργία

Για να καθορίσουμε τα ανωτέρω :

• Εντοπισμός κύριων λειτουργιών – απαιτήσεων επίδοσης

• Εξέταση υπάρχοντος υλικού – λογισμικού

• Πηγές και ροή πληροφορίας

• Διαδικασίες αλληλεπίδρασης συστήματος - χρηστών

Page 8: Διαδικασία ανάπτυξης

Τύποι απαιτήσεων

Απαιτήσεις

Φυσικό περιβάλλον Διεπαφές Χρήστες

Λειτουργι-κότητα

Ποιότητα

Ασφάλεια

Πόροι ΔεδομέναΤεκμηρίωση

Page 9: Διαδικασία ανάπτυξης

Επικύρωση απαιτήσεωνΕίναι οι απαιτήσεις

• Σωστές ? (Αναφέρονται σε αυτά που θέλουμε ?)

• Συνεπείς (Ανυπαρξία αντιφάσεων)

• Πλήρεις (Περιγράφονται όλες οι δυνατές καταστάσεις ?)

• Πραγματοποιήσιμες ?

• Ουσιαστικές ? (Τις χρειάζεται ο πελάτης ?)

• Επαληθεύσιμες ? (υπάρχουν έλεγχοι που να δείχνουν ότι καλύψαμε τις απαιτήσεις ?)

• Ιχνηλατήσιμες ? (ποιο τμήμα του συστήματος σχετίζεται?)

Page 10: Διαδικασία ανάπτυξης

Επικύρωση απαιτήσεωνΑπαίτηση:

• Το σύστημα πρέπει να εξασφαλίζει απόκριση εντός πραγματικού χρόνου για τις κύριες λειτουργίες.

•Σε ποιες κύριες λειτουργίες αναφέρεται ?

•Τι σημαίνει πραγματικού χρόνου ?

•Αν μία κύρια λειτουργία είναι σε μηνιαία βάση, γιατί πρέπει να εκτελείται σε πραγματικό χρόνο ?

Page 11: Διαδικασία ανάπτυξης

Level of abstraction

Εταιρεία Πελάτης (π.χ. ΟΤΕ)

Εταιρείες Παραγωγής Λογισμικού

(Ericsson, Siemens, Intracom, NOKIA)

Οι απαιτήσεις καθορίζονται σε υψηλό επίπεδο ανάλυσης,

Page 12: Διαδικασία ανάπτυξης

• Έγγραφο Ορισμού Απαιτήσεων (Requirements Definition)

(φυσική γλώσσα + διαγράμματα) Μπορεί να το γράψει και ο πελάτης• Έγγραφο Προσδιορισμού Απαιτήσεων

(Requirements Specification) Ακριβές και δομημένο κείμενο αναπτύσσεται από τον κατασκευαστή συνοδεύει συχνά το συμβόλαιο μπορεί να συνοδεύεται από περιγραφή

λογισμικού

Documentation

Page 13: Διαδικασία ανάπτυξης

Το λογισμικό πρέπει να παρέχει τη δυνατότητα

προβολής και πρόσβασης εξωτερικών αρχείων

που δημιουργούνται από άλλα εργαλεία

-Ο- Πελάτης

Ορισμός Απαιτήσεων (Παράδειγμα)

Page 14: Διαδικασία ανάπτυξης

1.1 Ο χρήστης θα πρέπει να μπορεί να ορίζει τους τύπους των εξωτερικών αρχείων1.2 Κάθε εξωτερικό αρχείο μπορεί να συνδέεται με κάποια εφαρμογή που να το χρησιμοποιεί1.3 Κάθε εξωτερικό αρχείο θα είναι ορατό σαν εικονίδιο στην οθόνη του χρήστη1.4 Ο χρήστης θα πρέπει να έχει τη δυνατότητα να καθορίσει τον τύπο του εικονιδίου για κάθε αρχείο1.5 Όταν ο χρήστης επιλέξει ένα εικονίδιο θα πρέπει να ενεργοποιείται η συνδεδεμένη με αυτό το αρχείο εφαρμογή

Προσδιορισμός Απαιτήσεων –Παράδ.

Page 15: Διαδικασία ανάπτυξης

ReadersΟρισμός Απαιτήσεων

Managerial level

Προσδιορισμός Απαιτήσεων

Technical level

Page 16: Διαδικασία ανάπτυξης

Πρακτικά, είναι αδύνατο να καθορίσουμε πλήρως και με ακρίβεια τις απαιτήσεις ενός συστήματος:

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

Προβλήματα

Page 17: Διαδικασία ανάπτυξης

Μέθοδοι Προσδιορισμού Απαιτήσεων

• Άτυπες

• Ημιτυπικές

• Τυπικές

• Λειτουργικές προδιαγραφές (operational specifications): Περιγραφή του συστήματος αναφέροντας την επιθυμητή συμπεριφορά

• Περιγραφικές προδιαγραφές (descriptive specifications): Περιγραφή του συστήματος αναφέροντας τις επιθυμητές ιδιότητες

Page 18: Διαδικασία ανάπτυξης

Μέθοδοι Προσδιορισμού Απαιτήσεων

1. Επιλέξτε δύο σημεία P1, P2 σε ένα επίπεδο

2. Επιλέξτε ένα νήμα συγκεκριμένου μήκους και προσαρτήστε τα άκρα του στα P1 και P2

3. Τοποθετήστε μία γραφίδα επάνω στο νήμα

4. Μετακινήστε τη γραφίδα περιστροφικά σε επαφή με το νήμα, κρατώντας το νήμα τεντωμένο μέχρις ότου φθάσετε στο αρχικό σημείο

Λειτουργική Προδιαγραφή μιας έλλειψης

Page 19: Διαδικασία ανάπτυξης

Μέθοδοι Προσδιορισμού Απαιτήσεων

P P 1 2

Page 20: Διαδικασία ανάπτυξης

Μέθοδοι Προσδιορισμού Απαιτήσεων

Περιγραφική Προδιαγραφή μιας έλλειψης:

α x2 + b y2 + c = 0

Page 21: Διαδικασία ανάπτυξης

Μέθοδοι Προσδιορισμού Απαιτήσεων

Έστω a ένας πίνακας n στοιχείων. Το αποτέλεσμα της ταξινόμησης του a είναι ένας πίνακας b με n στοιχεία ο οποίος μπορεί να κατασκευαστεί ως εξής:

• Εύρεση του μικρότερου στοιχείου του a και τοποθέτησή του στην πρώτη κενή θέση του b

• Απομάκρυνση του στοιχείου που βρέθηκε στο προηγούμενο βήμα από τον a.

• Επανάληψη των 1 και 2 μέχρις ότου εξαντληθούν τα στοιχεία του a

Ghezzi

Page 22: Διαδικασία ανάπτυξης

Μέθοδοι Προσδιορισμού Απαιτήσεων

"Το αποτέλεσμα της ταξινόμησης ενός πίνακα a είναι ένας πίνακας b ο οποίος αποτελεί μετάθεση (permutation) του a και είναι ταξινομημένος"

Ghezzi

Page 23: Διαδικασία ανάπτυξης

Χειρογραφικές Μέθοδοι - HIPOΔΙΑΓΡΑΜΜΑΤΑ HIPO

(HIERARCHY – INPUT – PROCESS – OUTPUT)1. Διάγραμμα Η συστήματος (Ιεραρχία Λειτουργιών)

Σύστημα Επεξεργασίας Κειμένου1

ΤροποποίησηΚειμένου

1.1

ΔημιουργίαΚειμένου

1.2

ΕκτύπωσηΚειμένου

1.3

ΑρχειοθέτησηΚειμένου

1.4

Έξοδος

1.5

ΔιαγραφήΚειμένου

1.4.1

ΑντιγραφήΚειμένου

1.4.2

ΚατάλογοςΚειμένων

1.4.3Γιακουμάκης

Page 24: Διαδικασία ανάπτυξης

HIPO - IIΔΙΑΓΡΑΜΜΑΤΑ HIPO

(HIERARCHY – INPUT – PROCESS – OUTPUT)1. Διαγράμματα Εισόδου – Επεξεργασίας - Εξόδου

Από τερματικό :File namePasswordPrinter No.Print options

Από βιβλιοθήκη :Αρχείο κειμένου

1.3 Εκτύπωση Κειμένου

INPUT

If passwd correct && file exists send file to prntElse print message

PROCESS

Εκτύπωση αρχείου

Μηνύματα λάθους

OUTPUT

Page 25: Διαδικασία ανάπτυξης

HIPO - IIIΔΙΑΓΡΑΜΜΑΤΑ HIPOMEIONEKTHMATA

• Περιγράφουν μόνο τις λειτουργικές απαιτήσεις (Δεν

διαθέτουν μηχανισμό χειρισμού περιορισμών)

• Δεν υπάρχουν μηχανισμοί ελέγχου (Επαλήθευση μόνο

με προσεκτική μελέτη)