Ανάπτυξη αρχετύπων

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
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

Συστήματα δημιουργίας εφαρμογών βάσεων δεδομένων

Περιλαμβάνουν εργαλεία για: Παραδείγματα: Προβλήματα:

Σύνδεση εξαρτημάτων και εφαρμογών

Σύνδεση ολοκληρωμένων εφαρμογών ή εργαλείων

Παράδειγμα: ορθογραφικός έλεγχος του πρόχειρου (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

Σύνδεση εξαρτημάτων

Με γλώσσες όπως: Παράδειγμα: εφαρμογή κράτησης θέσεων από το Internet σε Visual Basic. Χρησιμοποιεί εξαρτήματα πίνακα, ημερολογίου, ανταλλαγής στοιχείων μέσω Internet, σύνδεσης με βάση δεδομένων, και εμφάνισης ώρας.

Προβλήματα

Αρχέτυπα διεπαφής του χρήστη

Το περιβάλλον της 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) και έναν τρόπο να ορίζει ο χρήστης την εμφάνιση του κάθε οργάνου, τις λειτουργίες του και τον τρόπο που αυτό ανταποκρίνεται σε γεγονότα. Έτσι, κάθε όργανο παριστάνεται ως ένα αντικείμενο που διαθέτει: Ο έλεγχος που έχει ο χρήστης πάνω στα όργανα διαφέρει ανάλογα με την κατάσταση της εφαρμογής:

Όργανα

Όργανα τοποθετούνται μέσα στην εφαρμογή με γραφικό τρόπο κατά την υλοποίησή της. Κάθε όργανο διακρίνεται από το όνομά του. Αν πολλά όργανα ίδιου τύπου έχουν το ίδιο όνομα τότε αυτά ορίζουν έναν πίνακα οργάνων τον οποίο μπορούμε να διατρέξουμε με τη χρήση ενός δείκτη (π.χ. 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

Βιβλιογραφία

Ασκήσεις

  1. Σχεδιάστε τη διεπαφή του Microsoft Word στο περιβάλλον της Visual Basic.
  2. Να παραθέσετε 10 διαφορετικά συστήματα λογισμικού και αντίστοιχες μεθόδους υλοποίησης με αρχέτυπο που θα χρησιμοποιούσατε.
  3. Σχεδιάστε με χαρτί και μολύβι το αρχέτυπο για μια εφαρμογή αναπαραγωγής μουσικών αρχείων MP3.
  4. Διαβάστε για την τεχνολογία OLE automation. Σε τι είδους αρχέτυπα μπορεί να χρησιμοποιηθεί;