Ανάπτυξη αρχετύπων
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Ο ρόλος της ανάπτυξης αρχετύπων
Κατά την ανάλυση των προδιαγραφών
- Εκμαίευση προδιαγραφών
- Επικύρωση προδιαγραφών
'Αλλα πλεονεκτήματα
- Βελτίωση επικοινωνίας μεταξύ προσωπικού ανάπτυξης και τελικών χρηστών
- Το σύστημα μπορεί να χρησιμοποιηθεί για επίδειξη της λειτουργικότητας
σε διοικητικά στελέχη
- Το αρχέτυπο μπορεί να αποτελέσει τη βάση για τις προδιαγραφές του τελικού
συστήματος
- Εκπαίδευση χρηστών
- Έλεγχος του τελικού συστήματος (με παράλληλους ελέγχους)
Έρευνα σε 39 έργα που χρησιμοποιήθηκαν τεχνικές δημιουργίας αρχέτυπου
βρήκε τα παρακάτω πλεονεκτήματα:
- Βελτίωση χρηστικότητας του τελικού συστήματος
- Καλύτερο συνταίριασμα του συστήματος στις απαιτήσεις των χρηστών
- Βελτιωμένη ποιότητα σχεδιασμού
- Ευκολότερη συντήρηση
- Μείωση του έργου ανάπτυξης
Εξελικτική ανάπτυξη με αρχέτυπο
Η
εξελικτική ανάπτυξη αρχετύπου (evolutionary prototyping)
έχει ως στόχο την ανάπτυξη του τελικού συστήματος με τη διαδοχική
εξέλιξη του αρχέτυπου.
Τα πλεονεκτήματα της μεθοδολογίας αυτής είναι:
- Γρηγορότερη παράδοση του συστήματος
- Συμμετοχή του χρήστη στη διαδικασία ανάπτυξης
Τα βασικά χαρακτηριστικά της μεθοδολογίας είναι:
- Προδιαγραφές, σχεδιασμός, υλοποίηση και επικύρωση
αποτελούν αλληλοκαλυπτόμενες και παρεμβαλλόμενες φάσεις.
- Το σύστημα υλοποιείται με διαδοχικές προσθήκες.
- Χρησιμοποιούνται εργαλεία και τεχνικές που επιτρέπουν τη
γρήγορη ανάπτυξη του συστήματος.
- Η διεπαφή υλοποιείται με γραφικό τρόπο.
Προβλήματα
- Δύσκολη η διοικητική παρακολούθηση
- Προβλήματα στη συντήρηση
- Δύσκολο να προσδιοριστεί συμβατικά
Ανάπτυξη με αρχέτυπο που θα πεταχτεί
Η
ανάπτυξη με αρχέτυπο που θα πεταχτεί (throw-away prototyping)
έχει ως κύριο στόχο τη δημιουργία της επικυρωμένης προδιαγραφής του
τελικού συστήματος.
Το αρχέτυπο που θα υλοποιηθεί μπορεί να χρησιμοποιηθεί και για εκπαίδευση,
έλεγχο ή επαναχρησιμοποίηση εξαρτημάτων, αλλά δε θα αποτελέσει το
τελικό σύστημα.
Οι λόγοι είναι οι παρακάτω:
- Το αρχέτυπο μπορεί να είναι αδύνατο να εκπληρώσει μη
λειτουργικές προδιαγραφές ασφάλειας, απόδοσης και αξιοπιστίας.
- Δεν υπάρχει τεκμηρίωση.
- Η χαοτική δομή του το κάνει δυσκολοσυντήρητο.
- Κατά την ανάπτυξή του δεν έχουν ακολουθηθεί τα πρότυπα ποιότητας
του οργανισμού.
Τεχνικές δημιουργίας αρχέτυπου
- Γλώσσες υψηλού επιπέδου
- Συστήματα δημιουργίας εφαρμογών βάσεων δεδομένων
- Σύνδεση εξαρτημάτων και εφαρμογών
- Αρχέτυπα διεπαφής του χρήστη
Γλώσσες υψηλού επιπέδου
Συχνά αρχέτυπα μπορούν να αναπτυχθούν αποτελεσματικά με
δυναμικές γλώσσες υψηλού επιπέδου (dynamic high high-level languages).
Η γλώσσες αυτές υποστηρίζουν αυτόματη διαχείριση της μνήμης,
σύνθετες δομές δεδομένων και - συχνά - προσφέρουν
πρόσθετες δυνατότητες σε κάποιο εξειδικευμένο πεδίο.
Παραδείγματα τέτοιων γλωσσών είναι:
Γλώσσα | Πεδίο / πρόσθετες δυνατότητες |
Smalltalk | Γραφικές διεπαφές |
Java | Γραφικές διεπαφές, εφαρμογές στο Internet |
Prolog | Συμβολική επεξεργασία με βάση τη λογική |
Lisp, ML | Συμβολική επεξεργασία με βάση τις συναρτήσεις |
Perl, awk, Ruby | Επεξεργασία συμβολοσειρών |
PHP, ASP | Εφαρμογές Web |
Συστήματα δημιουργίας εφαρμογών βάσεων δεδομένων
Περιλαμβάνουν εργαλεία για:
Παραδείγματα:
- Powerbuilder
- Oracle Developer
- Microsoft Foxpro
- Microsoft Access
- Centura
Προβλήματα:
- Απόδοση (ταχύτητα, κατανάλωση μνήμης)
- Μεταφερσιμότητα
- Δομή
Σύνδεση εξαρτημάτων και εφαρμογών
Σύνδεση ολοκληρωμένων εφαρμογών ή εργαλείων
- Microsoft Office: Word, Excel, Powerpoint + VBA
- Unix: diff, wc, cat, find, sort, uniq, tr, sed, awk + sh
Παράδειγμα: ορθογραφικός έλεγχος του
πρόχειρου (clipboard) των Windows με εργαλεία
του Unix και της σουίτας outwit:
winclip -p | tr -c [a-zA-Z] \n | tr [A-Z] [a-z] | sort | uniq | comm -23 - /usr/dict/words
winclip -p | # Paste the clipboard on standard output
tr -c [a-zA-Z] \n | # Convert all non-alhpabetic characters to newlines
tr [A-Z] [a-z] | # Convert to lowercase
sort | # Sort
uniq | # Remove duplicates
comm -23 - /usr/dict/words # Display lines not in dictionary
Σύνδεση εξαρτημάτων
Με γλώσσες όπως:
- Visual Basic (ActiveX)
- Tcl/Tk (C libraries)
- Perl (modules)
- Java (JavaBeans)
Παράδειγμα: εφαρμογή κράτησης θέσεων από το Internet σε Visual Basic.
Χρησιμοποιεί εξαρτήματα πίνακα, ημερολογίου, ανταλλαγής στοιχείων
μέσω Internet,
σύνδεσης με βάση δεδομένων, και εμφάνισης ώρας.
Προβλήματα
- Μεταφερσιμότητα
- Υλοποίηση από ομάδα
- Συντήρηση (αλλαγές προδιαγραφών ή περιβάλλοντος υλοποίησης)
- Υλοποίηση λειτουργικότητας που δεν υπάρχει έτοιμη
Αρχέτυπα διεπαφής του χρήστη
- Visual Basic
- HTML
- Χαρτί και χρώματα
Το περιβάλλον της Visual Basic
Μια εφαρμογή Visual Basic υλοποιείται με βάση διάφορες
φόρμες (forms) που ορίζουν τα περιεχόμενα για
αντίστοιχα παράθυρα.
Κάθε φόρμα έχει, όπως και τα όργανα, ιδιότητες και μεθόδους.
Το περιβάλλον υλοποίησης της Visual Basic έχει την παρακάτω μορφή:
- Στο κέντρο σχεδιάζεται η φόρμα της εφαρμογής
- Αριστερά επιλέγονται τα όργανα που τοποθετούνται στη φόρμα.
- Άνω δεξιά μπορεί κανείς να επιλέξει τις φόρμες της εφαρμογής καθώς
και να αλλάξει μεταξύ γραφικής εμφάνισης και της εμφάνισης του κώδικα για
τα όργανα.
- Κάτω δεξιά μπορεί κανείς να διαβάσει και να αλλάξει τις ιδιότητες
για το κάθε φορά επιλεγμένο όργανο.
- Με την πάνω γραμμή εργαλείων μπορεί κανείς μεταξύ άλλων να
ξεκινήσει και να σταματήσει την εφαρμογή, να προσθέσει φόρμες και να
ορίσει τα μενού της εφαρμογής.
Για να ορίσουμε τον κώδικα που εκτελείται για κάποιο γεγονός κάνουμε
διπλό κλικ σε κάποιο όργανο και αυτόματα δημιουργείται η δήλωση για
τη συνάρτηση που αφορά το πιο χρήσιμο γεγονός για το αντίστοιχο όργανο.
Από επιλογές στην κορυφή του παραθύρου μπορούμε να επιλέξουμε το όργανο και
το γεγονός για τα οποία θέλουμε να γράψουμε κώδικα:
Παράθυρα, εικονίδια, μενού, και δείκτης
Στο σύγχρονο περιβάλλον διεπαφής με το χρήστη βασίζεται
στα παράθυρα (windows),
τα εικονίδια (icons),
τα μενού (menus) και
το δείκτη (pointer).
Το περιβάλλον αυτό σχεδιάστηκε για πρώτη φορά στο Palo Alto Research Center
της Xerox (PARC) και υλοποιήθηκε με επιτυχία από την Apple για τους υπολογιστές
Macintosh και από τη Micosoft στην οικογένεια Windows.
Η επιφάνεια εργασίας χρησιμοποιεί ως βάση τη
μεταφορά του γραφείου (desktop metaphor).
Ο χρήστης μετακινεί πάνω στην οθόνη παράθυρα με τη χρήση του δείκτη
όπως θα κινούσε έγγραφα στο γραφείο με τα χέρια του.
Βασικά τεχνολογικά στοιχεία για τη λειτουργία του περιβάλλοντος αυτού
είναι η οθόνη χαρτογραφικής απεικόνισης (bitmap display)
και το ποντίκι (mouse) ή κάποιος άλλος αντίστοιχος μηχανισμός
που επιτρέπει στο χρήστη να δείχνει αντικείμενα στην οθόνη.
Με τη χρήση εικονιδίων ορισμένα στοιχεία του περιβάλλοντος μπορούν να
παρασταθούν με αμεσότητα, ενώ τα μενού κάνουν τις λειτουργίες του περιβάλλοντος
προσιτές χωρίς να χρειάζεται ο χρήστης να απομνημονεύει εντολές και τη σύνταξή
τους.
Εικονίδια στο περιβάλλον Windows
Εισαγωγή εικόνας στο κείμενο με τη χρήση μενού στο πρόγραμμα Microsoft Word
<img src="inspic.gif">
Εισαγωγή εικόνας στο κείμενο στη γλώσσα HTML
Υλοποίηση διεπαφών στη Visual Basic
Το περιβάλλον προγραμματισμού Visual Basic επιτρέπει τη γραφική σχεδίαση
εφαρμογών με τη χρήση οργάνων και τον άμεσο ορισμό κώδικα που θα αποκρίνεται
σε συγκεκριμένα γεγονότα.
Για το σκοπό αυτό η Visual Basic απλοποιεί το περιβάλλον προγραμματισμού
που ορίζουν τα Windows δίνοντας στο χρήστη μια σειρά από εξειδικευμένα
όργανα (βασισμένα σε αυτά των Windows) και έναν τρόπο να ορίζει ο χρήστης
την εμφάνιση του κάθε οργάνου, τις λειτουργίες του και τον
τρόπο που αυτό ανταποκρίνεται σε γεγονότα.
Έτσι, κάθε όργανο παριστάνεται ως ένα αντικείμενο που διαθέτει:
- ιδιότητες όπως για παράδειγμα τη θέση και το χρώμα του,
- μεθόδους που μπορούν να κληθούν για εκτέλεση όπως για
παράδειγμα τη μέθοδο της επανασχεδίασης και
- γεγονότα στα οποία μπορεί ο χρήστης να συνδέσει κώδικα
π.χ. το γεγονός click.
Ο έλεγχος που έχει ο χρήστης πάνω στα όργανα διαφέρει ανάλογα με
την κατάσταση της εφαρμογής:
-
Κατά τη διάρκεια σχεδιασμού της εφαρμογής, ο χρήστης μπορεί να διαβάσει
και να αλλάξει τιμή στις περισσότερες ιδιότητες καθώς και να συνδέσει
κώδικα με όλα τα γεγονότα κάθε οργάνου.
-
Κατά τη διάρκεια εκτέλεσης της εφαρμογής, το πρόγραμμα μπορεί να διαβάσει
και να αλλάξει τιμή στις περισσότερες ιδιότητες και να καλέσει τις
μεθόδους του κάθε οργάνου.
Όταν παραλαμβάνεται από την εφαρμογή ένα γεγονός, αυτό προωθείται
αυτόματα στον κώδικα που έχει συνδεθεί με το αντίστοιχο όργανο.
Αν δεν υπάρχει τέτοιος κώδικας, τότε η εφαρμογή εκτελεί αυτόματα
κώδικα ο οποίος εκτελεί τη βασική λειτουργία για το αντίστοιχο γεγονός.
Όργανα
Όργανα τοποθετούνται μέσα στην εφαρμογή με γραφικό τρόπο κατά την
υλοποίησή της.
Κάθε όργανο διακρίνεται από το όνομά του.
Αν πολλά όργανα ίδιου τύπου έχουν το ίδιο όνομα τότε αυτά ορίζουν
έναν πίνακα οργάνων τον οποίο μπορούμε να διατρέξουμε με τη χρήση
ενός δείκτη (π.χ. txtTextBox(i).text = "hello").
Το περιβάλλον της Visual Basic ορίζει τα παρακάτω βασικά
όργανα:
- TextBox
-
Όργανο για είσοδο κειμένου
- Label
-
Εμφάνιση κειμένου
- PictureBox
-
Περιοχή για εμφάνιση και σχεδίαση γραφικών κατά τη διάρκεια εκτέλεσης
του προγράμματος.
- CheckBox
-
Επιλογή τύπου ναι/όχι (μπορούν να είναι αληθείς πολλαπλές τέτοιες επιλογές)
- OptionButton
-
Επιλογή τύπου ναι/όχι (δεν μπορούν να είναι αληθείς πολλαπλές τέτοιες επιλογές)
- CommandButton
-
Κουμπί για εντολές
- Image
-
Χαρτογραφική εικόνα που μπορεί να ορίσει ο χρήστης
- Shape
-
Σχήμα που μπορεί να οριστεί κατά τη σχεδίαση της εφαρμογής.
- Timer
-
Χρονόμετρο που δημιουργεί γεγονότα σε τακτά διαστήματα.
- ListBox
-
Λίστα με επιλογές.
- ComboBox
-
Λίστα με επιλογές σε συνδυασμό με περιοχή που μπορεί να γραφτεί κείμενο
- VScrollBar
-
Κάθετο όργανο ελέγχου της θέσης στο παράθυρο.
- HScrollBar
-
Οριζόντιο όργανο ελέγχου της θέσης στο παράθυρο.
- Frame
-
Περιοχή στην οποία μπορούν να ομαδοποιηθούν πολλά όργανα (ειδικά
OptionButton)
Εκτός από τα παραπάνω βασικά όργανα μπορεί κανείς να ορίσει ή να αγοράσει
πολλά άλλα όργανα που εκτελούν χρήσιμες λειτουργίες όπως π.χ. σύνδεση
με βάσεις δεδομένων και το Internet, εμφάνιση γραφημάτων και πινάκων.
Τα όργανα αυτά μπορούν να θεωρηθούν εξαρτήματα (components)
για την υλοποίηση εφαρμογών.
Γεγονότα
Κάθε όργανο έχει το δικό του σύνολο από γεγονότα τα οποία μπορεί να δεχτεί.
Ορισμένα από τα γεγονότα τα οποία αφορούν πολλά όργανα είναι τα παρακάτω:
- Click
- Click του ποντικιού πάνω στο όργανο.
- DblClick
- Διπλό click του ποντικιού πάνω στο όργανο.
- GotFocus
- Το όργανο γίνεται η εστία εισόδου.
- LostFocus
- Το όργανο παύει να είναι η εστία εισόδου.
- KeyDown
- Ένα πλήκτρο πατιέται πάνω από το όργανο.
- KeyUp
- Ένα πλήκτρο αφήνεται πάνω από το όργανο.
- KeyPress
- Ένας χαρακτήρας γράφεται πάνω από το όργανο.
- MouseDown
- Ένα πλήκτρο του ποντικιού πατιέται πάνω από το όργανο.
- MouseUp
- Ένα πλήκτρο του ποντικιού αφήνεται πάνω από το όργανο.
- MouseMove
- Το ποντίκι κινείται πάνω από το όργανο.
- Change
- Τα δεδομένα που περιέχει το όργανο άλλαξαν.
Η σύνδεση του γεγονότος με κώδικα της Visual Basic γίνεται με τον
ορισμό μιας συνάρτησης που έχει ως όρισμα παραμέτρους που αφορούν το
συγκεκριμένο όργανο.
Παράδειγμα:
Private Sub Check1_KeyPress(KeyAscii As Integer)
End Sub
Private Sub Check1_KeyUp(KeyCode As Integer, Shift As Integer)
End Sub
Private Sub Check1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
End Sub
Private Sub Command1_Click()
End Sub
Private Sub Text1_Change()
End Sub
Ιδιότητες
Οι ιδιότητες που αφορούν κάθε όργανο μπορούν να μεταβληθούν τόσο κατά το
σχεδιασμό, όσο και κατά την εκτέλεση της εφαρμογής.
Πρόσβαση στις ιδιότητες κατά την εκτέλεση της εφαρμογής έχουμε με τη
σύνταξη όργανο.ιδιότητα.
Μερικές ιδιότητες που εμφανίζονται σε πολλά όργανα είναι οι παρακάτω:
- Name
- Το όνομα του συγκεκριμένου οργάνου.
- BackColor
- Το χρώμα του φόντου.
- ForeColor
- Το χρώμα σχεδίασης.
- Enabled
- Αληθές αν το όργανο είναι ενεργό.
- Visible
- Αληθές αν το όργανο είναι ορατό.
- Text
- Το κείμενο που περιέχει το όργανο.
- Caption
- Το κείμενο που εμφανίζει το όργανο.
- Value
- Η τιμή που έχει το όργανο (π.χ. αληθές/ψευδές).
- ToolTipText
- Το αναδυόμενο κείμενο σύντομης βοήθειας.
- Height
- Το ύψος του οργάνου.
- Left
- Η θέση του οργάνου στη φόρμα από αριστερά.
- Top
- Η θέση του οργάνου στη φόρμα από πάνω.
- Width
- Το πλάτος του οργάνου.
Η γλώσσα Visual Basic
Η γλώσσα Visual Basic είναι μια δομημένη γλώσσα με τύπους
που υποστηρίζει, μερικώς, τον προγραμματισμό με αντικείμενα
(δεν υποστηρίζει κληρονομικότητα).
Στις επόμενες παραγράφους περιγράφουμε πολύ συνοπτικά ορισμένα
βασικά στοιχεία της:
Ορισμός συναρτήσεων
function funcname(param1 as type1, param2 as type2) as returntype
end function
Παράδειγμα:
function square(x as double) as double
square = x * x
end function
Διαδικασίες (συναρτήσεις που δεν επιστρέφουν τιμή) ορίζονται αντίστοιχα,
αλλά με τη λέξη sub αντί για function.
Τύποι
Ορισμένοι βασικοί τύποι είναι οι boolean, integer, single, double, string.
Ορισμός μεταβλητών
Μεταβλητές ορίζονται με τη σύνταξη:
dim varname as type
Παράδειγμα:
dim x as double
dim k as integer
Εντολές
Οι εντολές τερματίζονται από το τέλος της γραμμής
Παράδειγμα:
x = 3
txt.Text = "Hello"
Σχόλια
Τα σχόλια αρχίζουν με το χαρακτήρα '
Δομές ελέγχου
Η Visual Basic παρέχει τις παρακάτω δομές ελέγχου (σε σχόλιο
η αντίστοιχη δομή της C).
' if (...) { ... } else { ... }
if boolean then
statement
...
else
statement
...
end if
' for (v = start; v <= end; v++) { ... }
for variable = start to end
statement
...
next variable
' while (...) { ... }
do while boolean
statement
...
loop
' do { ... } while (...)
do
statement
..
loop while boolean
' switch (c) { case ... default: }
Select Case testexpression
Case expressionlist
statement
...
Case Else
statement
...
End Select
Βιβλιογραφία
-
Microsoft Developer Network Library
Visual Studio Documentation -
Visual Basic -
Reference -
Controls Reference -
Intrinsic Controls
- Michael Halvorson
Visual Basic 6 Βήμα προς βήμα. Εκδόσεις Κλειδάριθμος, Αθήνα.
- Εμμανουήλ Σκορδαλάκης.
Εισαγωγή στην Τεχνολογία Λογισμικού, σελίδες 31-34.
Εκδόσεις Συμμετρία, 1991.
- B. Boar.
Application Prototyping.
Wiley, 1984.
- David Boctor.
Microsoft Office 2000 Visual Basic Fundamentals.
Microsoft Press, Redmond, WA, USA, 1999.
- James R. Cordy, Charles D.
Halpern-Hamu, and Eric Promislow.
TXL: A rapid prototyping system for programming language dialects.
Computer Languages, 16(1):97–107, January 1991.
- Adele Goldberg.
Smalltalk 80: The Language and its Implementation.
Addison Wesley, 1980.
- Sharam Hekmatpour
and Darrel Ince.
Software Prototyping, Formal Methods and VDM.
Addison-Wesley, 1988.
- Brian W. Kernighan.
Experience with Tcl slash Tk for scientific and
engineering visualization.
In Proceedings of the Tcl slash Tk Workshop, pages 269–278,
Toronto, Ontario, Canada, July 1995.
- John K. Ousterhout.
Tcl
and the Tk Toolkit.
Addison-Wesley, 1994.
- John K. Ousterhout.
Scripting:
Higher-level programming for the 21st century.
IEEE Computer, 31(3):23–30, March 1998.
- Roger S. Pressman.
Software Engineering: A Practitioner's Approach, pages 283–285.
McGraw-Hill, fifth edition, 2000.
European Adaptation. Adapted by Darrel Ince.
- Ben Shneiderman.
Designing the User Interface: Stratefies for Effective
Human-Computer-Interaction.
Addison-Wesley, third edition, 1998.
- Ian Sommerville.
Software Engineering, pages 171–181.
Addison-Wesley, sixth edition, 2001.
- Diomidis Spinellis
and Konstantinos Raptis.
Component mining: A process and its pattern language ( http://www.spinellis.gr/pubs/jrnl/2000-IST-Components/html/comp.html).
Information and Software Technology, 42(9):609–617, June 2000.
- Diomidis Spinellis.
Outwit: Unix tool-based programming meets the Windows world ( http://www.spinellis.gr/pubs/conf/2000-Usenix-outwit/html/utool.html).
In USENIX 2000 Technical Conference Proceedings, pages 149–158,
San Diego, CA, USA, June 2000. Usenix Association.
- M. M. Tanik and R. T.
Yates.
Rapid prototyping in software development (special issue).
IEEE Computer, 22(5), May 1989.
- Shmuel
Tyszberowicz and Amiram Yehudai.
OBSERV — a prototyping language and environment (http://www.acm.org/pubs/citations/journals/tosem/1992-1-3/p269-tyszberowicz/).
ACM Transactions on Software Engineering and Methodology,
1(3):269–309, July 1992.
- Larry Wall, Tom
Christiansen, Randal L. Schwartz, and Stephen Potter.
Programming Perl.
O'Reilly and Associates, Sebastopol, CA, USA, second edition, 1996.
Ασκήσεις
- Σχεδιάστε τη διεπαφή του Microsoft Word στο περιβάλλον της Visual Basic.
- Να παραθέσετε 10 διαφορετικά συστήματα λογισμικού και αντίστοιχες
μεθόδους υλοποίησης με αρχέτυπο που θα χρησιμοποιούσατε.
- Σχεδιάστε με χαρτί και μολύβι το αρχέτυπο για μια εφαρμογή
αναπαραγωγής μουσικών αρχείων MP3.
- Διαβάστε για την τεχνολογία OLE automation.
Σε τι είδους αρχέτυπα μπορεί να χρησιμοποιηθεί;