Ανάπτυξη Πρωτοτύπου Λογισμικού Επίδειξη και παρουσίαση των απαιτήσεων του συστήματος
Στόχοι Περιγραφή της χρήσης των πρωτοτύπων στην αξιολόγηση απαιτήσεων Συζήτηση εξέλιξης και απομάκρυνσης πρωτοτύπων Εισαγωγή τεχνικών γρήγορης προτυποποίησης Ανάγκη για προτυποποίηση της διεπαφής χρήστη
Θέματα Προτυποποίηση στην διαδικασία λογισμικού Τεχνικές προτυποποίησης Προτυποποίηση διεπαφής χρήστη
Χρήση Πρωτοτύπων Συστήματος Η κύρια χρήση είναι να βοηθήσει τους πελάτες και τους ανθρώπους που θα το υλοποιήσουν να κατανοήσουν τις απαιτήσεις του συστήματος Το πρωτότυπο μπορεί να χρησιμοποιηθεί για εκπαίδευση πριν την τελική παράδοση του συστήματος Το πρωτότυπο χρησιμοποιείται για back-to-back έλεγχο
Οφέλη Προτυποποίησης Επιλύονται προβλήματα κατανόησης μεταξύ χρηστών και ατόμων που αναπτύσσουν το σύστημα Βρίσκονται λειτουργίες οι οποίες πιθανό να λείπουν Μπορούν να αναγνωρισθούν λειτουργίες οι οποίες δεν είναι ξεκάθαρες Ένα σύστημα που δουλεύει είναι διαθέσιμο σχετικά νωρίς Το πρωτότυπο χρησιμοποιείται ως βάση για την παρουσίαση της εξειδίκευσης του συστήματος
Διαδικασία Προτυποποίησης
Στόχοι Προτυποποίησης Ο στόχος της προτυποποίησης είναι η παράδοση ενός συστήματος στους τελικούς χρήστες. Η ανάπτυξη αρχίζει με βάση τις απαιτήσεις που έχουν κατανοηθεί καλύτερα. Ο στόχος της προτυποποίησης είναι η αξιολόγηση ή η διαπίστωση των απαιτήσεων του συστήματος. Η προτυποποίηση αρχίζει με βάση τις απαιτήσεις που έχουν κατανοηθεί λιγότερο
Προσεγγίσεις Προτυποποίησης
Εξελικτική Προτυποποίηση Χρησιμοποιείται για σύστημα όπου η εξειδίκευση δεν μπορεί να αναπτυχθεί από πριν, π.χ. συστήματα τεχνητής νοημοσύνης και διεπαφής χρηστών Βασίζεται σε τεχνικές που επιτρέπουν γρήγορη επανάληψη συστήματος Η επιβεβαίωση είναι αδύνατη διότι δεν υπάρχει εξειδίκευση. Με τον όρο αξιολόγηση εννοούμε την παρουσίαση της αξιοπιστίας του συστήματος
Εξελικτική Προτυποποίηση
Προβλήματα Εξελικτικής Προτυποποίησης Υπάρχουσες διαδικασίες διαχείρισης επιτρέπουν μοντέλο καταρράκτη για την ανάπτυξη Η συνεχείς αλλαγές προκαλούν προβλήματα στην δομή του συστήματος και καθιστούν την μακροπρόθεσμη συντήρηση πολύ ακριβή Απαιτούνται δεξιότητες ειδικών που πιθανά να μην είναι διαθέσιμες Οι οργανισμοί πρέπει να δεχθούν ότι ο χρόνος ζωής τέτοιων συστημάτων είναι μικρός
Άμεση Προτυποποίηση Χρησιμοποιείται για την ελαχιστοποίηση κινδύνων απαιτήσεων Το πρωτότυπο αναπτύσσεται από μία αρχική εξειδίκευση Αυτό το πρωτότυπο δεν πρέπει να θεωρείται ως τελικό σύστημα Μπορεί να μην έχουν συμπεριληφθεί όλα τα χαρακτηριστικά του συστήματος Δεν υπάρχει εξειδίκευση για μακροπρόθεσμη συντήρηση Το σύστημα δεν θα έχει καλή δομή και θα είναι πολύ δύσκολη η συντήρησή του
Άμεση Προτυποποίηση
Τα Πρωτότυπα ως Εξειδικεύσεις Μερικά μέρη των απαιτήσεων (π.χ. λειτουργίες ασφάλειας) είναι αδύνατο να προτυποποιηθούν και δεν εμφανίζονται στην εξειδίκευση Η υλοποίηση δεν έχει θεσμική ισχύ όπως το συμβόλαιο Οι μη - λειτουργικές απαιτήσεις δεν μπορούν να ελεγχθούν σε ένα πρωτότυπο συστήματος
Σταδιακή Ανάπτυξη Το σύστημα αναπτύσσεται και παραδίδεται σε στάδια μετά την δημιουργία συνολικής αρχιτεκτονικής Οι χρήστες χρησιμοποιούν τα παραδοτέα στάδια ενώ άλλα αναπτύσσονται. Έτσι αυτά μπορούν να χρησιμοποιηθούν ως πρωτότυπο συστήματος Γίνεται συνδυασμός πλεονεκτημάτων της προτυποποίησης αλλά η διαδικασία είναι ευκολότερη στην διαχείριση και καλύτερη δομή του συστήματος
Διαδικασία Σταδιακής Ανάπτυξης
Τεχνικές Προτυποποίησης Εκτελέσιμες γλώσσες εξειδίκευσης Γλώσσες πολύ υψηλού επιπέδου Γεννήτριες εφαρμογών και 4GLs Σύνθεση επαναχρησιμοποιήσιμων στοιχείων
Εκτελέσιμες Γλώσσες Εξειδίκευσης Το σύστημα εξειδικεύεται σε μία τυπική γλώσσα Παράγεται η εξειδίκευση και παράγεται ένα εκτελέσιμο σύστημα αυτόματα Στο τέλος της διαδικασίας η εξειδίκευση μπορεί να είναι η βάση για την επανα-υλοποίηση του συστήματος
Προβλήματα στην Προσέγγιση Δεν γίνεται προτυποποίηση γραφικών διεπαφών χρηστών Η ανάπτυξη τυπικής εξειδίκευσης δεν είναι γρήγορη διαδικασία Το εκτελέσιμο σύστημα είναι αργό και μη αποτελεσματικό Οι εκτελέσιμες εξειδικεύσεις επιτρέπουν προτυποποίηση μόνο των λειτουργικών απαιτήσεων
Γλώσσες Πολύ Υψηλού Επιπέδου Περιλαμβάνουν πολύ καλές δυνατότητες διαχείρισης αρχείων Απαιτούν μεγάλο σύστημα υποστήριξης. Δεν χρησιμοποιείται για ανάπτυξη μεγάλων συστημάτων Μερικές προσφέρουν πολύ καλές δυνατότητες για ανάπτυξη διεπαφών χρηστών Μερικές έχουν ολοκληρωμένο σύστημα υποστήριξης που μπορεί να χρησιμοποιηθούν σε προτυποποίηση
Γλώσσες Προτυοποίησης
Smalltalk Πολύ καλό για διαλογικά συστήματα Αντικειμενοστραφής γλώσσα και επομένως οι αλλαγές είναι εύκολες Τα αντικείμενα περιβάλλοντος της Smalltalk είναι διαθέσιμα σε αυτόν που αναπτύσσει το πρωτότυπο Υπάρχει λογισμικό υποστήριξης, όπως διεπαφή με γραφικά
Γλώσσες Τέταρτης Γενιάς Είναι εξειδικευμένα συστήματα που έχουν αναπτυχθεί γύρω από ένα σύστημα διαχείρισης βάσης δεδομένων Περιλαμβάνουν query language της βάσης δεδομένων, γεννήτρια οθονών, γεννήτρια εκθέσεων και λογισμικό φύλλο Μπορεί να ολοκληρωθεί με ένα εργαλείο CASE Αποτελεσματική ως προς το κόστος για ΜΜΕ
4GLs
Προτυποποίηση με Επανάχρηση Το σύστημα προτυποποιείται με χρήση υπαρχόντων στοιχείων Γίνονται περισσότερο δημοφιλής όσο αναπτύσσονται βιβλιοθήκης με αντικείμενα Ανάγκες για γλώσσα σύνθεσης όπως Unix shell Visual Basic είναι χαρακτηριστική περίπτωση
Σύνθεση Υπαρχόντων Στοιχείων
Προτυποποίηση Διεπαφής Χρήστη Είναι πολύ δύσκολο να ορίσουμε την μορφή και την αίσθηση της διεπαφή του χρήστη με αποτελεσματικό τρόπο. Η προτυποποίηση είναι σημαντική Συνήθως αφιερώνεται μεγάλο ποσοστό του κόστους στην ανάπτυξη της διεπαφής Χρησιμοποιείται γλώσσες πολύ υψηλού επιπέδου όπως Smalltalk ή Lisp Γεννήτριες διεπαφών χρησιμοποιούνται για την δημιουργία διεπαφής και προσομοίωση της λειτουργικότητας
Σύστημα Διαχείρισης Διεπαφής Χρήστη
Σημαντικά Συστήματα Το πρωτότυπο χρησιμοποιείται για να δώσει στους χρήστες μία εικόνα των δυνατοτήτων του συστήματος Μπορεί να είναι εξελικτικό ή άμεσο Η γρήγορη ανάπτυξη είναι σημαντικό στοιχείο για προτυποποίηση Οι δομές προτυποποίησης καταστρέφονται από την συνεχή αλλαγή. Έτσι η ανάπτυξη μεγάλης διάρκειας είναι δύσκολη
Σημαντικά Σημεία Στην άμεση προτυποποίηση αρχίζουμε με τα μέρη που έχουν κατανοηθεί λιγότερο. Στην εξελικτική προτυποποίηση με αυτά που έχουν κατανοηθεί καλύτερα Οι μέθοδοι προτυποποίησης περιλαμβάνουν την χρήση εκτελέσιμων γλωσσών εξειδίκευσης, πολύ υψηλού επιπέδου γλώσσες, γλώσσες τέταρτης γενιάς και προτυποποίηση από επαναχρησιμοποιήσιμα στοιχεία Η προτυποποίηση είναι ουσιαστική για μέρη του συστήματος όπως η διεπαφή χρήστη που δεν μπορούν εκ των προτέρων να εξειδικευτούν