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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "«Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού:Κλωνοποίηση σε επίπεδο Μοντέλου, Ανάλυση Ποιότητας & Σχεδιαστικά Πρότυπα»"

Transcript

1 Πανεπιστήμιο Πατρών Τμήμα Μηχανικών Η/Υ και Πληροφορικής Διπλωματική Εργασία για το Μεταπτυχιακό Δίπλωμα Ειδίκευσης στην «Επιστήμη και Τεχνολογία Υπολογιστών» «Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού:Κλωνοποίηση σε επίπεδο Μοντέλου, Ανάλυση Ποιότητας & Σχεδιαστικά Πρότυπα» Φαλιάγκα Ευανθία Α.Μ. 486 Επιβλέπων Καθηγητής Καθηγητής κ. Αθανάσιος Τσακαλίδης Τριμελής Εξεταστική Επιτροπή Καθηγητής κ. Αθανάσιος Τσακαλίδης Επίκουρος Καθηγητής κ. Χρήστος Μακρής Επίκουρος Καθηγητής κ. Ιωάννης Χατζηλυγερούδης Πάτρα, Ιανουάριος 2008

2 Ευχαριστίες Αρχικά, θεωρώ τιμή μου τη συνεργασία με τον καθηγητή κ. Αθανάσιο Τσακαλίδη και υποχρέωσή μου να τον ευχαριστήσω θερμά για την πολύτιμη καθοδήγησή του. Επίσης, θέλω να ευχαριστήσω τους κ.κ. Χρήστο Μακρή και Ιωάννη Χατζηλυγερούδη που δέχτηκαν να είναι μέλη της εξεταστικής επιτροπής για την εξέταση και κρίση της μεταπτυχιακής εργασίας μου. Ακόμη θεωρώ υποχρέωσή μου να ευχαριστήσω το διδάκτορα Γιάννη Τζήμα, για τη βοήθεια, τις συμβουλές και την δυνατότητα που μου έδωσε να ασχοληθώ με τη μοντελοποίηση εφαρμογών παγκόσμιου ιστού, αποκτώντας πολύτιμη εμπειρία.

3 Επιτελική Σύνοψη Οι εφαρμογές παγκόσμιου ιστού προσφέρουν ολοένα και περισσότερες, με υψηλό βαθμό πολυπλοκότητας υπηρεσίες, σε σχέση με τους πρώτους ιστότοπους που χρησιμοποιούνταν απλά και μόνο για την προβολή πληροφοριών. Όμως, η πολυπλοκότητα αυτή καθιστά τις εφαρμογές δύσχρηστες καθώς είναι πολύ δύσκολο να συντηρηθούν και να επεκταθούν. Η ερευνητική κοινότητα προκειμένου να αντιμετωπίσει την αυξανόμενη πολυπλοκότητα του σχεδιασμού εφαρμογών παγκόσμιου ιστού έχει προτείνει ένα πλήθος προσεγγίσεων και μεθόδων βασισμένων σε μοντέλα. Η δουλειά του σχεδιαστή εφαρμογών παγκόσμιου ιστού μπορεί να απλοποιηθεί ακόμα περισσότερο με την επαναχρησιμοποίηση της εμπειρίας άλλων σχεδιαστών εφαρμογών παγκόσμιου ιστού. Η επαναχρησιμοποίηση της εμπειρίας αυτής γίνεται με χρήση σχεδιαστικών προτύπων που ορίζονται από πεπειραμένους σχεδιαστές. Αν κατά το σχεδιασμό μιας εφαρμογής χρησιμοποιηθεί κάποια μέθοδος μοντελοποίησης σε συνδυασμό με ένα σύνολο σχεδιαστικών προτύπων, η τελική εφαρμογή θα είναι πιο αποδοτική και ποιοτική. Πολλές φορές όμως, κατά το σχεδιασμό και την ανάπτυξη μιας εφαρμογής παγκόσμιου ιστού δε λαμβάνεται υπόψη κάποια συγκεκριμένη μεθοδολογία μοντελοποίησης και ανάπτυξης. Ένα πλήθος μεθόδων αντίστροφης μηχανίκευσης έχει αναπτυχθεί για την ανάλυση, κατανόηση και μοντελοποίηση των αρχιτεκτονικών τέτοιου είδους εφαρμογών. Στα πλαίσια της συγκεκριμένης διπλωματικής εργασίας μελετώνται οι μέθοδοι μοντελοποίησης που έχουν προταθεί από την ερευνητική κοινότητα, τα σχεδιαστικά πρότυπα που έχουν οριστεί καθώς και οι μέθοδοι και οι διαδικασίες αντίστροφης μηχανίκευσης που έχουν αναπτυχθεί. Επιπλέον προτείνεται μία μέθοδος που ανιχνεύει και αξιολογεί την ύπαρξη πιθανών κλώνων μοντέλων. Αναλυτικά, η παρούσα διπλωματική εργασία είναι δομημένη ως εξής: Στο πρώτο κεφάλαιο παρουσιάζεται η τρέχουσα κατάσταση σε σχέση με τις μεθοδολογίες σχεδιασμού και ανάπτυξης εφαρμογών Παγκόσμιου Ιστού που έχουν προταθεί από την ερευνητική κοινότητα μέχρι σήμερα. Γίνεται μία προσπάθεια να αναγνωριστούν και να χαρακτηριστούν οι διάφορες κατηγορίες λύσεων και παρουσιάζεται μία πρώτου επιπέδου αξιολόγηση σε σχέση με την επάρκεια που παρουσιάζουν στις απαιτήσεις της διαδικασίας ανάπτυξης εφαρμογών Παγκόσμιου Ιστού. Στο δεύτερο κεφάλαιο, δίνεται μεγαλύτερη βαρύτητα στην παρουσίαση της μεθοδολογίας και της αντίστοιχης γλώσσας μοντελοποίησης εφαρμογών Παγκόσμιου Ιστού WebML, καθώς αποτελεί τη βάση (γλώσσα επίδειξης) πάνω στην οποία θα στηριχτεί η παρουσίαση των τεχνικών και μεθόδων που προτείνονται στα επόμενα κεφάλαια της διπλωματικής εργασίας. Στο τρίτο κεφάλαιο, εισάγεται η έννοια των σχεδιαστικών προτύπων στα πλαίσια της μοντελοποίησης εφαρμογών Παγκόσμιου Ιστού. Τα πρότυπα χρησιμοποιούνται τα τελευταία χρόνια σαν ένας τρόπος υποστήριξης των σχεδιαστών εφαρμογών Παγκόσμιου Ιστού με αποδεδειγμένα επιτυχημένες λύσεις, οι οποίες μπορούν να

4 επαναχρησιμοποιηθούν με διαφορετικούς τρόπους όταν προκύψει ένα συγκεκριμένο πρόβλημα. Για το σχεδιασμό πολύπλοκων εφαρμογών παγκόσμιου ιστού, ναι μεν το είδος επαναχρησιμοποίησης που προσφέρουν τα σχεδιαστικά πρότυπα παγκόσμιου ιστού είναι πολύτιμα, εν τούτοις απαιτείται η επαναχρησιμοποίηση όσο το δυνατόν μεγαλύτερων σχεδιαστικών δομών. Για το λόγο αυτό γίνεται αναφορά και παρουσίαση της επαναχρησιμοποίησης που υποστηρίζεται από τη χρήση σχεδιαστικών πλαισίων ανάπτυξης εφαρμογών παγκόσμιου ιστού. Το τέταρτο κεφάλαιο επικεντρώνεται σε θέματα αξιολόγησης και αναδιάταξης του εννοιολογικού σχήματος-μοντέλου εφαρμογών Παγκόσμιου Ιστού. Εισάγεται η έννοια των Κλώνων Μοντέλου (Model Clones), ως μικρότερα μοντέλα υπερκειμένου που επαναλαμβάνονται σε ένα ευρύτερο μοντέλο εφαρμογής και η έννοια των Οσμών Μοντέλου (Model Smells), ως ενδείξεις ύπαρξης κλώνων. Παρουσιάζεται μία μέθοδος ανίχνευσης πιθανών προβλημάτων αποδοτικότητας, συνέπειας, ευχρηστίας και ποιότητας στο επίπεδο του σχήματος υπερκειμένου της εφαρμογής μέσω της εξόρυξης κλώνων μοντέλου. Επιπλέον, παρέχονται μετρικές αξιολόγησης, οι οποίες δίνουν τη δυνατότητα ποσοτικοποίησης της ακατάλληλης επαναχρησιμοποίησης των κλώνων και προτείνονται κανόνες αναδιάταξης του μοντέλου της εφαρμογής. Οι τεχνικές που παρουσιάζονται μπορούν να εφαρμοστούν κατά τη διάρκεια σχεδιασμού της εφαρμογής, καθώς και κατά τη διάρκεια συντήρησης και επανασχεδιασμού της. Στο πέμπτο κεφάλαιο παρουσιάζονται ο ερευνητικός χώρος της αντίστροφης μηχανίκευσης, τα συστατικά που αποτελούν μία εφαρμογή παγκόσμιου ιστού, καθώς και ο τύπος της πληροφορίας που απαιτείται να εξαχθεί από μία διαδικασία αντίστροφης μηχανίκευσης, έτσι ώστε να γίνει κατανοητή και αντιληπτή η αρχιτεκτονική μιας τέτοιας εφαρμογής. Η μέθοδος αυτή αναλύει τον κώδικα μιας εφαρμογής και τη μοντελοποιεί με χρήση της WebML. Δηλαδή πηγαίνουμε από επίπεδο κώδικα σε επίπεδο μοντέλου, όπου μπορεί να εφαρμοστεί το εργαλείο που προτείνεται στην παρούσα εργασία. Στο έκτο κεφάλαιο περιγράφεται σε υψηλό επίπεδο, το εργαλείο που υλοποιήθηκε, το οποίο ανιχνεύει και αξιολογεί την ύπαρξη πιθανών κλώνων μοντέλων, με αποτέλεσμα τον προσδιορισμό τυχόν προβλημάτων στο εννοιολογικό σχήμα μιας εφαρμογής, που αφορούν την αποδοτικότητα, τη συνέπεια, την ευχρηστία και γενικότερα την ποιότητά της. Δίνεται και ένα παράδειγμα για την καλύτερη κατανόηση της λειτουργικότητας του εργαλείου. Τέλος, στο έβδομο κεφάλαιο, περιγράφεται αναλυτικά ο τρόπος λειτουργίας και η υλοποίηση και σχολιάζεται ο πηγαίος κώδικας του εργαλείου που υλοποιήθηκε σε επίπεδο συναρτήσεων.

5 Executive Summary Web Applications provide many services and they are not used just to display content, as it was the case for the first web sites. Due to the growing complexity, the design, development and maintenance of these aplications has become one of the major challenges that the developer has to face. In an attempt to face this growing complexity, the research community has proposed a number of model based approaches and methods. The task of the hypertext architect may be further facilitated by reusing the experience of other hypertext architects. This reuse is achieved by means of design patterns that have been defined by experts. If, we make use of a modelling method in combination with design patterns when designing a web application, the final result will be more efficient and qualitative. Usually, due to the pressing market demands, the modeling methods or techniques are not applied during the design and development of the web applications. A number of reverse engineering methods and tools have been proposed in order to analyse, comprehend and model the architectures of such applications. In this thesis, we study the various modelling methods that have been proposed, as well as the design patterns that have been defined and the reverse engineering methods that have been developed. Furthermore, we propose a method to detect and evaluate the existence of possible model clones. Analytically, this master thesis is being structured in the following chapters: The first chapter presents the modelling methods that have been proposed by the research community. We try to find and characterize the solution categories and we study if they can respond to the requirements of the web applications development. In the second chapter the Web modelling language (WebML) is extensively presented as it constitutes the model language with which the methods and techniques that will be suggested in the next chapters have been developed. In the end of this chapter, we make a comparison of the proposed modelling methods. The third chapter presents the concept of design patterns, in terms of web applications modelling. These are succesfull solutions that may be reused by designers in different ways whenever a problem occurs. Though the kind of reuse provided by patterns is valuable when designing web applications, complex web applications need a way to maximize reuse of larger design structures. For this reason, we also present the kind of reuse that is provided by using web application frameworks. The fourth chapter is focused on evaluation and reordering issues of the conceptual scema-model of the web applications. The concept of the Model Clones is proposed as small hypertext models that are repeated in a wider application model and the concept of the Model Smells as the indications of the existence of model clones. We present a method that detects possible problems of efficiency, consistency, usability and quality in the hypertext application level throught the extraction of model clones. Furthermore we present the evaluation metrics that can mesure the unsuitable clone reuse and we suggest reordering rules of the application model. The techniques that are presented may be applied during the design of the application as well as during its maintenance.

6 The fifth chapter proposes a methodology for retrieving effective design solutions, or even more design patterns, within the conceptual schema of one or more web applications. This approach, if applied to a large number of applications of the same domain, may lead to the identification of templates for specific domain Web application frameworks and to the discovery of new design patterns. With this method, the code can be transformed into model level, where the tool suggested below may be applied. The sixth chapter describes in high level the implemented tool that detects and evaluates the existence of possible model clones and finds whether there are any problems in the conceptual schema of the application, that concern its quality. For the better understanding of the tool s function an example is given. The seventh and last chapter presents the implementation of the tool and comments the source code of the tool in functional level.

7 Δημοσιεύσεις - Faliagka, E., Rigou, M., Sirmakessis, S., & Tzimas, G. (2006), 'A Tool for Extracting Model Clones From a Conceptual Schema', in the Proceedings of the 24th IASTED International Multi-Conference on Software Engineering (SE 2006), Special Session on Web Engineering, February 14-16, 2006, Innsbruck, Austria, ACTA Press, ISBN , pp Faliagka, E., Rigou, M., Sirmakessis, S., & Tzimas, G., Extracting Model Clones from Conceptual Schemas, Engineering Letters, 13:3, pages

8 Πίνακας Περιεχομένων 1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού Μέθοδοι και Γλώσσες Μοντελοποίησης Εφαρμογών Παγόσμιου Ιστού Μέθοδοι και Τεχνικές Μοντελοποίησης Hypertext Design Model HDM Relationship Management Methodology- RMM Object-Oriented Hypermedia Design Method - OOHDM HDM-lite Web Site Design Method WSDM Unified Modeling Language - UML Βιβλιογραφία κεφαλαίου Web Modeling Language (WebML) Εισαγωγή Μοντέλο δομής Μοντέλο σύνθεσης Data units Multi-Data Units Index units Scroller Unit Filter unit Direct Units Pages Μοντέλο Πλοήγησης Contextual και Non-contextual σύνδεσμοι Αυτόματοι σύνδεσμοι και σύνδεσμοι μεταφοράς Μοντέλο Παρουσίασης Μοντέλο Εξατομίκευσης Σύγκριση Μεθοδολογιών Μοντελοποίηση Περιεχομένου Μοντελοποίηση Πλοήγησης Μοντελοποίηση Διεπαφής Χρήστη Μοντελοποίηση Παρουσίασης Μοντελοποίηση Εξατομίκευσης Βιβλιογραφία κεφαλαίου Σχεδιαστικά πρότυπα Εισαγωγή Η προέλευση των σχεδιαστικών προτύπων Παράδειγμα χρήσης σχεδιαστικών προτύπων παγκόσμιου ιστού Οφέλη και Πιθανά Προβλήματα της χρήσης σχεδιαστικών προτύπων παγκόσμιου ιστού Ορισμός σχεδιαστικών προτύπων παγκόσμιου ιστού Ταξινόμηση Σχεδιαστικών Προτύπων Παγκόσμιου Ιστού Πρότυπα στη WebML Πρότυπα Δημοσίευσης Περιεχομένου Πρότυπα Διαχείρισης Περιεχομένου Βιβλιογραφία κεφαλαίου Kλωνοποίηση Μοντέλου Εισαγωγή Η Έννοια της Κλωνοποίησης Μοντέλου Σχεδιασμού Εφαρμογής και των Οσμών Μοντέλου (Model Cloning Model Smells) Μία Αποδοτική Μέθοδος Εξόρυξης Κλώνων Μοντέλου... 74

9 4.3.1 Μετασχηματισμός του Εννοιολογικού Σχήματος της Εφαρμογής Εξόρυξη Πιθανών Κλώνων Μοντέλου Κατηγοριοποίηση Κλώνων Μοντέλου Μετρικές και Αξιολόγηση Ποιότητας Προτάσεις Αναδιάταξης του Μοντέλου της Εφαρμογής Βιβλιογραφία κεφαλαίου Μοντελοποίηση Εφαρμογών με χρήση Αντίστροφης Μηχανίκευσης (Reverse Engineering) Εισαγωγή Ο Ερευνητικός Χώρος Συστατικά Εφαρμογής Παγκόσμιου Ιστού Μέθοδος Αντίστροφης Μηχανίκευσης Βήματα Μεθόδου Συμπεράσματα Βιβλιογραφία Υλοποίηση Εισαγωγή Γενική περιγραφή Τεχνολογία Αρχιτεκτονική Υψηλού Επιπέδου Αναλυτική περιγραφή των modules Parser Parser Next_query Parser 3 - Δημιουργία στατιστικών Παράδειγμα Βιβλιογραφία κεφαλαίου Κώδικας Parser Parser Next_query Parser 3 - Δημιουργία στατιστικών Προβολή των υπογράφων

10 Κατάλογος Εικόνων Εικόνα 1: Οι βασικές αρχές της RMDM Εικόνα 2 : Η RMM μεθοδολογία σχεδιασμού Εικόνα 3: Οι δύο φάσεις του σχεδιασμού πλοήγησης Εικόνα 4: Η σχέση του εννοιολογικού μοντέλου, του σχεδιασμού πλοήγησης και του αφαιρετικού σχεδιασμού του περιβάλλοντος διεπαφής Εικόνα 5: Παράδειγμα ενός σχήματος πρόσβασης Εικόνα 6: Οι φάσεις της WSDM Εικόνα 7: (α) Ένα user object model (β) To αντίστοιχο perspective object model Εικόνα 8: Παράδειγμα από ένα μοντέλο δομής Εικόνα 9 : xml αναπαράσταση του παραδείγματος Εικόνα 10 : Παράδειγμα ενός data unit Εικόνα 11 : Παράδειγμα ενός multi-data unit Εικόνα 12 : Παράδειγμα ενός index unit Εικόνα 13 : Παράδειγμα ενός scroller unit Εικόνα 14 : Παράδειγμα ενός filter unit Εικόνα 15 : Παράδειγμα ενός direct unit Εικόνα 16 : Παράδεγμα μιας σελίδας Εικόνα 17 : Παράδεγμα μιας AND/OR σελίδας Εικόνα 18 : Παράδεγμα ενός contextual link Εικόνα 19 : Παράδεγμα ενός αυτόματου συνδέσμου Εικόνα 20 : Παράδεγμα ενός συνδέσμου μεταφοράς Εικόνα 21: Γενικό Παράδειγμα Επαναχρησιμοποίησης με χρήση Σχεδιαστικών Προτύπων Εικόνα 22: cascaded index πρότυπο Εικόνα 23: παραλλαγή του cascaded index πρότυπο με data units να παρεμβάλλονται μεταξύ των index units Εικόνα 24: filtered index πρότυπο Εικόνα 25: filtered scrolled index πρότυπο Εικόνα 26: guided tour πρότυπο Εικόνα 27: παράδειγμα ενός indexed guided tour και μια πιθανή αναπαράστασή του σε HTML Εικόνα 28: παράδειγμα ενός object viewpoint προτύπου Εικόνα 29: παράδειγμα ενός nested data προτύπου Εικόνα 30: παράδειγμα ενός hierarchical index with alternative sub-pages pattern. 61 Εικόνα 31: παράδειγμα ενός προτύπου reusable unit Εικόνα 32: Πρότυπο Δημιουργίας Αντικειμένου Εικόνα 33: Πρότυπο Διαγραφής Αντικειμένου Εικόνα 34: Πρότυπο Τροποποίησης Αντικειμένου Εικόνα 35: Πρότυπο Δημιουργίας Σχέσης Εικόνα 36: Πρότυπο Διαγραφής Σχέσης Εικόνα 37: Create-Connect πρότυπο Εικόνα 38: Παράδειγμα ενός cascaded delete προτύπου Εικόνα 39: Αντίστροφη Μηχανίκευση Εικόνα 40: Ροή Δεδομένων Ανάμεσα στα Συστατικά μιας Εφαρμογής Παγκόσμιου Ιστού Εικόνα 41: Αρχιτεκτονική προτεινόμενου Συστήματος Εικόνα 42: Κώδικας.aspx σελίδας Εικόνα 43: Asp-tag tree Εικόνα 44: Μετασχηματισμός μιας σύνθεσης υπερκειμένου WebML στους ισοδύναμους γράφους Εικόνα 45: Κατηγοριοποίηση πιθανών κλώνων μοντέλου στο επίπεδο υπερκειμένου Εικόνα 46: Κατηγοριοποίηση πιθανών κλώνων μοντέλου στο επίπεδο δεδομένων... 78

11 Εικόνα 47: Κλώνοι μοντέλου στο επίπεδο συνδέσμων Εικόνα 48 : Αρχιτεκτονική του συστήματος Εικόνα 49 : flowchart αναπαράσταση του xml αρχείου Εικόνα 50: αναπαράσταση του xml αρχείου με WebML στοιχεία Εικόνα 51: Αναπαράσταση του xml αρχείου για τη δεύτερη περίπτωση Εικόνα 52: Αναπαράσταση του xml αρχείου για την τρίτη περίπτωση Εικόνα 53: Ο υπογράφος I-D που έχει γίνει highlighted στον αρχικό γράφο (πρώτη περίπτωση) Εικόνα 54: Ο υπογράφος P-Artist που έχει γίνει highlighted στον αρχικό γράφο (δεύτερη περίπτωση)

12 Κατάλογος Πινάκων Πίνακας 1: Παράδειγμα μιας οντότητας στην HDM Πίνακας 2 : πληροφορία που μεταφέρεται ανάλογα με τη μονάδα πηγής Πίνακας 3: Σύγκριση Μεθοδολογιών Πίνακας 4: Η κλίμακα μέτρησης για τη μετρική SPM Πίνακας 5: Ταξινόμηση των πιθανών κλώνων μοντέλου με βάση το επίπεδο υπερκειμένου Πίνακας 6: Ταξινόμηση των πιθανών κλώνων μοντέλου με βάση το επίπεδο δεδομένων Πίνακας 7: Ταξινόμηση των πιθανών κλώνων μοντέλου με βάση την τοπολογία συνδέσμων Πίνακας 8: Προτάσεις αναδιάταξης του μοντέλου της εφαρμογής με βάση τα επίπεδα ομοιότητας κλώνων μοντέλου Πίνακας 9: Πίνακας αντιστοίχησης html-asp tags σε WebML Units Πίνακας 10 :Στατιστικά που προέκυψαν για την πρώτη κατηγοριοποίηση Πίνακας 11:Στατιστικά που προέκυψαν για τη δεύτερη κατηγοριοποίηση Πίνακας 12:Στατιστικά που προέκυψαν για την τρίτη κατηγοριοποίηση

13 1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού 1.1 Μέθοδοι και Γλώσσες Μοντελοποίησης Εφαρμογών Παγόσμιου Ιστού Τα τελευταία χρόνια έχει παρατηρηθεί μία αλματώδης ανάπτυξη του παγκόσμιου ιστού, ο οποίος έχει γίνει πλέον μέρος της καθημερινότητάς μας, με αποτέλεσμα τη δημιουργία πολύπλοκων web εφαρμογών. Πολλά web sites, που αρχικά ήταν ένα σύνολο από web σελίδες, αναπτύχθηκαν σε μεγάλες web εφαρμογές και μετά από λίγο καιρό έγιναν δύσχρηστες. Άλλο ένα χαρακτηριστικό των μεγάλων web sites είναι ότι δεν μπορούν να συντηρηθούν εύκολα. Σε ένα μεγάλο web site αν κάποια πληροφορία αλλάξει σε μια σελίδα είναι πολύ δύσκολο, αν όχι αδύνατο, να γίνουν οι κατάλληλες αλλαγές και στις σχετικές με αυτή σελίδες. Στην περίπτωση αυτή, ολόκληρο το web site πρέπει να καταργηθεί και να επανασχεδιαστεί. Το πρόβλημα είναι κυρίως αισθητό για τις μεγάλες εφαρμογές, που διαχειρίζονται τεράστιο όγκο δεδομένων και οι πληροφορίες τους αλλάζουν με γρήγορο ρυθμό, όπου η επαναχρησιμοποίηση και η συντήρηση είναι πολύ βασικά ζητήματα. Αυτά τα προβλήματα έκαναν αναγκαία την αναζήτηση συστηματικών τρόπων για την ανάπτυξη μεγάλων πληροφοριακών συστημάτων βασισμένων στο web. Συγκεκριμένα, έχουν προταθεί πολλά μοντέλα και μεθοδολογίες για να υποστηρίξουν την ανάπτυξη εφαρμογών υπερμέσων (hypermedia applications). Ο βασικός σκοπός αυτών των μοντέλων είναι να βοηθηθούν οι σχεδιαστές ώστε να αναλύσουν με ένα δομημένο τρόπο, τα στοιχεία που είναι καθοριστικά για τα υπερμέσα, όπως συνδέσμους, δομή, πλοήγηση κ.τ.λ. Επίσης, οι μεθοδολογίες αυτές βοηθούν στην επικοινωνία μεταξύ των ετερογενών μελών μιας εφαρμογής υπερμέσων. Ακόμη, βοηθούν τους μηχανικούς να διαχειριστούν τη συνολική πολυπλοκότητα της ανάπτυξης υπερμέσων, που απαιτεί πολλές δραστηριότητες, όπως οργάνωση της δομής, επιλογή των περιεχομένων και καθορισμό της εμφάνισης της εφαρμογής. Επομένως, οι μεθοδολογίες συνήθως παρέχουν οδηγίες για την επίτευξη τέτοιων εργασιών και κατάλληλα μοντέλα για να εκφράσουν τα αποτελέσματά τους. Κάθε ένα από τα μοντέλα και τις μεθοδολογίες επικεντρώνεται σε συγκεκριμένα στοιχεία. Συγκεκριμένα, το Hypertext Design Model [7] βασίζεται σε μία επέκταση του μοντέλου οντοτήτων-συσχετίσεων και μας επιτρέπει να περιγράψουμε τη συνολική δομή της εφαρμογής. Η HDM είναι η βάση του αντικειμενοστρεφούς μοντέλου σχεδιασμού υπερμέσων (OOHDM) [9,10], μία μεθοδολογία για την κατασκευή μεγάλων εφαρμογών υπερμέσων με μία προσέγγιση βασισμένη σε πρωτότυπα. Η HDM-lite [6]είναι μια επέκταση της HDM και ουσιαστικά μετατρέπει τις εννοιολογικές προδιαγραφές σε μία λογική αναπαράσταση, που οδηγεί στη δημιουργία σελίδων της εφαρμογής από αποθηκευμένα δεδομένα. Η Relationship Management Methodology (RMM) [8] βοηθάει στην κατασκευή της δομής των web sites και δίνει έμφαση σε θέματα πλοήγησης. Η WSDM [3] είναι μία μεθοδολογία προσανατολισμένη στους χρήστες της εφαρμογής (user-centered) και λύνει πολλά προβλήματα στα web sites που δεν έχουν κάποια ιδιαίτερη σχεδίαση ή η σχεδίασή τους βασίζεται στα δεδομένα της εφαρμογής (data driven). Τέλος, οι επεκτάσεις της UML ενοποιούν τη UML με χαρακτηριστικά πλοήγησης [5]. Κατά συνέπεια, αξίζει

14 να σημειώσουμε ότι δεν υπάρχει ούτε καλύτερο μοντέλο, ούτε καλύτερη μεθοδολογία αλλά μόνο η κατάλληλη για την εφαρμογή που αναπτύσσουμε. 1.2 Μέθοδοι και Τεχνικές Μοντελοποίησης Με βάση τις απαιτήσεις μοντελοποίησης που προαναφέρθηκαν έχει αναπτυχθεί και προταθεί από την ερευνητική κοινότητα ένα πλήθος μεθόδων, μεθοδολογιών και τεχνικών μοντελοποίησης των εφαρμογών παγκόσμιου ιστού. Στόχος των εννοιολογικών προσεγγίσεων μοντελοποίησης του παγκόσμιου ιστού είναι η παροχή υποστήριξης υψηλού επιπέδου για το σχεδιασμό και την ανάπτυξη των εφαρμογών παγκόσμιου ιστού. Οι μεθοδολογικές προσεγγίσεις συνήθως: χωρίζουν το σχεδιασμό των εφαρμογών παγκόσμιου ιστού σε διαφορετικές διαστάσεις, οργανώνουν τις δραστηριότητες ανάπτυξης σε μία δομημένη διαδικασία και παρέχουν εργαλεία μεταβλητού επιπέδου αυτοματοποίησης. Στη συνέχεια παρουσιάζονται τα πιο αντιπροσωπευτικά δείγματα μεθόδων μοντελοποίησης εφαρμογών παγκόσμιου ιστού Hypertext Design Model HDM Η HDM είναι ένα μοντέλο που περιγράφει εφαρμογές υπερκειμένου (hypertext applications) σε υψηλό επίπεδο και είναι η βάση για το σχεδιασμό εργαλείων που βοηθούν άμεσα στην ανάπτυξη εφαρμογών [7]. Η HDM περιγράφει συνοπτικά έτοιμες εφαρμογές ή εφαρμογές που βρίσκονται υπό κατασκευή, βοηθά το συγγραφέα να κατανοήσει μία εφαρμογή χωρίς να δίνει έμφαση σε λεπτομέρειες υλοποίησης και μπορεί να χρησιμοποιηθεί σαν μία γλώσσα επικοινωνίας ανάμεσα στους σχεδιαστές, τους προγραμματιστές και τους χρήστες. Επίσης, πρέπει να σημειωθεί ότι βασίζεται και επεκτείνει το μοντέλο Σχέσεων-Οντοτήτων (Entity- Relationship Model) [2]. Μία HDM εφαρμογή αποτελείται από δομές πληροφοριών, τις οντότητες (entities). Μία οντότητα είναι το μικρότερο αυτόνομο κομμάτι πληροφορίας, δηλαδή η ύπαρξή του δεν εξαρτάται από την ύπαρξη άλλων πληροφοριών και αναπαριστά φυσικά ή εννοιολογικά αντικείμενα του πραγματικού κόσμου. Ένα παράδειγμα οντοτήτων είναι μία εγκυκλοπαίδεια π.χ. η Νέα Δομή, ή ένα βιβλίο π.χ. Ο Αλχημιστής του Coelho. Οι οντότητες ομαδοποιούνται σε τύπους οντοτήτων, οι οποίοι αντιστοιχούν στις κλάσεις αντικειμένων του πραγματικού κόσμου. Στο παραπάνω παράδειγμα η οντότητα Νέα Δομή ανήκει στον τύπο οντοτήτων Εγκυκλοπαίδεια. Αν και οι τύποι οντοτήτων μοιάζουν με τις κλάσεις του μοντέλου Σχέσεων-Οντοτήτων υπάρχει μια σημαντική διαφορά: Οι τύποι οντοτήτων έχουν πολύπλοκη εσωτερική δομή με συνδέσμους που θα δούμε παρακάτω, ενώ οι κλάσεις είναι μονολιθικές. Κάθε οντότητα είναι μία συλλογή στοιχείων (components), που είναι οργανωμένα σε μια

15 δενδρική δομή. Κάθε στοιχείο δηλαδή, έχει ένα πατέρα και έναν αριθμό παιδιών και αδερφών. Τα στοιχεία υπάρχουν μόνο σαν μέρος της ιεραρχίας και δεν μπορούν να υπάρξουν αυτόνομα. Στο παράδειγμά μας, υπάρχει το στοιχείο Τόμος 1 (Α-Γ), το στοιχείο Κεφάλαιο Α, που είναι παιδί του στοιχείου Τόμος 1 (Α-Γ) κ.α. Στις εφαρμογές υπερκειμένου υπάρχει συχνά η ανάγκη το ίδιο αντικείμενο να αναπαρασταθεί με διαφορετικούς τρόπους. Η HDM, για το λόγο αυτό μπορεί να παρουσιάσει μία οντότητα με διαφορετική αναπαράσταση, δηλαδή με διαφορετική προοπτική (perspective). Στο παράδειγμά μας, οι πληροφορίες της εγκυκλοπαίδειας μπορούν να είναι σε μορφή κειμένου, εικόνας ή και βίντεο. Τα στοιχεία κάθε οντότητας κληρονομούν τις προοπτικές της οντότητας στην οποία ανήκουν. Το μικρότερο δομικό στοιχείο της HDM είναι η μονάδα (unit). Μία μονάδα αντιστοιχεί σε ένα στοιχείο που σχετίζεται με μία συγκεκριμένη προοπτική. Κάθε μονάδα χαρακτηρίζεται από το όνομα (name) και τον κορμό (body). Παραδείγματα μονάδων είναι τα εξής: Τόμος 1 (Α-Γ)/εικόνα, Τόμος 9 (Κ)/κείμενο κ.α. Το παραπάνω παράδειγμα φαίνεται συνολικά στον Πίνακας 1. Πίνακας 1: Παράδειγμα μιας οντότητας στην HDM Οντότητα Στοιχεία Προοπτικές Μονάδα Νέα Δομή Τόμος 1(Α-Γ), Τόμος 2 (Δ-Ε) Κείμενο, Εικόνα, Βίντεο Τόμος 1(Α-Γ)/ Κείμενο, Τόμος 1(Α-Γ)/ Εικόνα, Τόμος 2 (Δ-Ε)/ Κείμενο Ένα από τα ιδιαίτερα χαρακτηριστικά της HDM, όπως είδαμε και παραπάνω είναι η εσωτερική δομή των οντοτήτων, η οποία συνίσταται σε εσωτερικούς συνδέσμους. Υπάρχουν τρεις κατηγορίες συνδέσμων ανάλογα με ποια δομοστοιχεία ενώνουν και για ποιο σκοπό (για αναπαράσταση ή για πλοήγηση). Οι σύνδεσμοι που υπάρχουν είναι οι εξής: Σύνδεσμοι προοπτικής, οι οποίοι συνδέουν διαφορετικά δομοστοιχεία που αντιστοιχούν στο ίδιο συστατικό, Δομικοί σύνδεσμοι, οι οποίοι συνδέουν συστατικά που ανήκουν στην ίδια οντότητα, σύνδεσμοι εφαρμογής, οι οποίοι ορίζονται από το σχεδιαστή και συνδέουν συστατικά και οντότητες. Οι σύνδεσμοι προοπτικής συνδέουν μονάδες που αναφέρονται στο ίδιο στοιχείο. Για παράδειγμα ένας σύνδεσμος προοπτικής θα συνέδεε τις μονάδες Τόμος 1(Α-Γ)/ Κείμενο, Τόμος 1(Α-Γ)/ Εικόνα. Οι δομικοί σύνδεσμοι ενώνουν στοιχεία που ανήκουν στην ίδια οντότητα και βοηθούν στην πλοήγηση του αναγνώστη στις πληροφορίες μιας οντότητας. Υπάρχουν πολλά είδη δομικών συνδέσμων όπως οι άνω (up), που συνδέουν ένα στοιχείο με τον πατέρα του, οι κάτω (down), που συνδέουν ένα στοιχείο με τα παιδιά του κ.ο.κ. Τέλος, οι σύνδεσμοι εφαρμογών αναπαριστούν τη σχέση των οντοτήτων ή των στοιχείων τους. Η περιγραφή μιας εφαρμογής υπερκειμένου από την HDM αποτελείται από τον ορισμό του σχήματος (schema definition), που καθορίζει τις οντότητες και τους

16 συνδέσμους και τον ορισμό των στιγμιοτύπων (instances definition). Μία εφαρμογή υπερκειμένου αποτελείται από μία Hyperbase, που έχει τις οντότητες, τα στοιχεία, τις μονάδες και τους συνδέσμους, καθώς και από δομές πρόσβασης που ονομάζονται περιγράμματα (outlines). Ένα περίγραμμα είναι ένα τμήμα του υπερκειμένου, το οποίο περιέχει πληροφορίες πλοήγησης όπως, οδηγούς, χάρτες και διαδρομές (guides, maps, tours). Η HDM μπορεί να χρησιμοποιηθεί και για τη μοντελοποίηση και την ανάπτυξη εφαρμογών και υπήρξε η βάση για την ανάπτυξη άλλων μεθόδων μοντελοποίησης όπως η RMM και η OOHDM Relationship Management Methodology- RMM Η RMM είναι μια μεθοδολογία, που αποτελείται από 7 βήματα και βοηθάει στο σχεδιασμό και την ανάπτυξη εφαρμογών υπερμέσων (hypermedia applications) [8]. Οι εφαρμογές για τις οποίες είναι κατάλληλη η RMM είναι εφαρμογές που έχουν μία σταθερή δομή για το πεδίο ενδιαφέροντος (για παράδειγμα έχουν κλάσεις αντικειμένων, ορισμένες σχέσεις μεταξύ των κλάσεων και πολλά στιγμιότυπα αντικειμένων μέσα στην κάθε κλάση) και μεγάλη μεταβλητότητα δεδομένων. Υπάρχουν πολλές εφαρμογές υπερμέσων που ικανοποιούν αυτές τις προϋποθέσεις, όπως για παράδειγμα κατάλογοι προϊόντων. Βασικό στοιχείο της RMM μεθοδολογίας είναι το μοντέλο δεδομένων της, το Relationship Management Data Model (RMDM), τα δομοστοιχεία του οποίου φαίνονται στην Εικόνα 1 [8].. Το RMDM παρέχει μία γλώσσα για την περιγραφή των αντικειμένων πληροφορίας και των μηχανισμών πλοήγησης σε εφαρμογές υπερμέσων. Το μοντέλο αυτό βασίζεται στο μοντέλο Σχέσεων/Οντοτήτων [2]. και στην HDM. Οι οντότητες (entities) και τα κατηγορήματά (attributes) τους αναπαριστούν αφηρημένα ή συγκεκριμένα αντικείμενα και οι συσχετίσεις, οι οποίες μπορεί να είναι ένα-προς-ένα (one-to-one), ένα-προς-πολλα (one-to-many) και πολλά-προς-πολλά (many-to-many), αναπαριστούν σχέσεις μεταξύ των ονοτήτων. Τα κατηγορήματα των οντοτήτων ομαδοποιούνται σε slices ανάλογα με τη φύση της πληροφορίας που περιέχουν. Για παράδειγμα για την οντότητα άνθρωπος υπάρχουν τα γνωρίσματα όνομα, επίθετο, ηλικία, φωτογραφία κ.α., τα οποία μπορούν να ομαδοποιηθούν σε μία slice με το όνομα βιογραφία Η πλοήγηση υποστηρίζεται στην RMDM με έξι τρόπους, που φαίνονται στο κάτω μέρος της Εικόνα 1. Οι δύο πρώτοι σύνδεσμοι συνδέουν slices μιας οντότητας, δηλαδή χρησιμεύουν στην πλοήγηση μόνο στα όρια μιας οντότητας. Αντίθετα, οι υπόλοιποι σύνδεσμοι χρησιμεύουν στην πλοήγηση μεταξύ διαφορετικών οντοτήτων. Οι συνενώσεις (groupings) βοηθούν ώστε να έχουμε πρόσβαση σε διαφορετικά σημεία ενός εγγράφου υπερμέσων. Τα ευρετήρια (indices), είναι μια ειδική κατηγορία των συνενώσεων και ουσιαστικά είναι μια λίστα από στιγμιότυπα οντοτήτων και παρέχουν πρόσβαση σε κάθε ένα από αυτά. Μία κατευθυνόμενη περιήγηση (guided tour) είναι ένα γραμμικό μονοπάτι σε μία συλλογή στοιχείων και επιτρέπει στο χρήστη να κινηθεί μπροστά ή πίσω στο μονοπάτι αυτό. Υπάρχουν πολλές διαφοροποιήσεις των κατευθυνόμενων περιηγήσεων, όπως κυκλικές κατευθυνόμενες περιηγήσεις, που συνδέουν το τελευταίο στοιχείο με το πρώτο, οι κατευθυνόμενες περιηγήσεις με επιστροφή στην αρχή και οι κατευθυνόμενες περιηγήσεις με είσοδο

17 και έξοδο. Ο συνδυασμός ενός δείκτη και μίας κατευθυνόμενης περιήγησης οδηγεί στη δημιουργία μίας κατευθυνόμενης περιήγησης δείκτη. Οι πιο σημαντικές δομές πλοήγησης που υποστηρίζονται από το RMDM είναι: τα ευρετήρια, τα οποία παρουσιάζουν μία λίστα των στιγμιοτύπων των οντοτήτων και παρέχουν απευθείας πρόσβαση σε κάθε αντικείμενο της λίστας, οι κατευθυνόμενες περιηγήσεις, οι οποίες υλοποιούν ένα γραμμικό μονοπάτι σε μία συλλογή αντικειμένων, επιτρέποντας στο χρήστη να κινείται εμπρός ή πίσω στο μονοπάτι και οι ομαδοποιήσεις, οι οποίες παρέχουν ένα μηχανισμό τύπου μενού, ο οποίος επιτρέπει την πρόσβαση σε άλλα τμήματα της εφαρμογής. Εικόνα 1: Οι βασικές αρχές της RMDM. Η RMM περιγράφει πλήρως τον κύκλο ανάπτυξης λογισμικού, δίνοντας όμως έμφαση στις φάσεις σχεδιασμού, ανάπτυξης και κατασκευής της εφαρμογής. Η RMM μεθοδολογία όπως είπαμε αποτελείται από 7 βήματα, τα οποία φαίνονται και στην Εικόνα 2, όπου μπορούμε να δούμε και τη θέση τους στον κύκλο ανάπτυξης του λογισμικού. Τα τρία πρώτα βήματα (σχεδιασμός του σχήματος Σχέσεων/Οντοτήτων, σχεδιασμός των slices και σχεδιασμός πλοήγησης), γίνονται ακολουθιακά, ενώ τα τρία επόμενα (σχεδιασμός του πρωτοκόλλου μετατροπής, σχεδιασμός και κατασκευή του περιβάλλοντος διεπαφής με τους χρήστες και σχεδιασμός της συμπεριφοράς κατά το χρόνο εκτέλεσης ), μπορούν να εκτελεστούν και ταυτόχρονα. Αναλυτικότερα, τα βήματα της μεθοδολογίας RMM είναι τα εξής:

18 Εικόνα 2 : Η RMM μεθοδολογία σχεδιασμού. Βήμα 1: Σχεδιασμός του σχήματος Σχέσεων/Οντοτήτων Στο βήμα αυτό γίνεται η μελέτη των οντοτήτων και των σχέσων στο πεδίο της εφαρμογής. Αυτές οι οντότητες και οι σχέσεις είναι η βάση των εφαρμογών υπερμέσων. Η επιλογή της αναπαράστασης σχέσεων-οντοτήτων έγινε γιατί είναι αρκετά οικεία στους σχεδιαστές, επομένως και εύχρηστη. Βήμα 2: Σχεδιασμός των slices Στο βήμα αυτό αποφασίζεται ο τρόπος με τον οποίο η πληροφορία των επιλεγμένων οντοτήτων θα παρουσιαστεί στους χρήστες και πώς οι χρήστες θα έχουν πρόσβαση σε αυτή. Περιλαμβάνει το διαχωρισμό της οντότητας σε slices. Κάθε οντότητα έχει και μια βασική slice, που λέγεται head και στην οποία καταλήγουν οι σύνδεσμοι που οδηγούν στην οντότητα. Η πιο απλή προσέγγιση θα ήταν ολόκληρη η οντότητα να εμφανίζεται στο χρήστη σε ένα παράθυρο, αυτό όμως δε θα ήταν καθόλου εύχρηστο και πρακτικό. Για το λόγο αυτό, δημιουργείται ένα διάγραμμα με slices, κάθε μία από τις οποίες περιλαμβάνει κάποια γνωρίσματα της οντότητας και συνδέσμους, που βοηθούν στην πλοήγηση μεταξύ των slices. Βήμα 3: Σχεδιασμός της πλοήγησης

19 Εδώ γίνεται ο σχεδιασμός των μονοπατιών πλοήγησης. Αρχικά σχεδιάζονται τα μονοπάτια μεταξύ των οντοτήτων, όπως φαίνεται και στην Εικόνα 3(α). Ύστερα, σχεδιάζονται δομές που μοιάζουν με μενού, παρέχοντας έτσι μία ιεραρχική πρόσβαση στην πληροφορία, όπως φαίνεται και στην Εικόνα 3 (β). Στο τέλος αυτού του βήματος, το διάγραμμα οντοτήτων-συσχετίσεων έχει μετατραπεί σε διάγραμμα RMDM. Βήμα 4: Σχεδιασμός του πρωτοκόλλου μετατροπής Στο βήμα αυτό χρησιμοποιείται ένα σύνολο κανόνων μετατροπής με αποτέλεσμα, κάθε στοιχείο του RMDM διαγράμματος να μετατρέπεται σε αντικείμενο του πραγματικού επιπέδου. Το βήμα αυτό υλοποιείται από τους προγραμματιστές με το χέρι. Βήμα 5: Σχεδιασμός και κατασκευή του περιβάλλοντος διεπαφής Εδώ καθορίζεται ο τρόπος με τον οποίο θα εμφανιστεί στο χρήστη κάθε αντικείμενο του RMDM διαγράμματος που δημιουργήθηκε στο βήμα 3. Βήμα 6: Σχεδιασμός της συμπεριφοράς κατά το χρόνο εκτέλεσης Στο βήμα αυτό περιγράφεται τι θα πρέπει να παρέχεται κατά την εκτέλεση της εφαρμογής και λαμβάνονται οι αποφάσεις για τους μηχανισμούς πλοήγησης. Βήμα 7: Κατασκευή και έλεγχος Τέλος, εδώ γίνεται ο έλεγχος της εφαρμογής που κατασκευάστηκε στα προηγούμενα βήματα. Στις εφαρμογές υπερμέσων πρέπει να γίνονται εξαντλητικοί έλεγχοι στα μονοπάτια πλοήγησης. Εικόνα 3: Οι δύο φάσεις του σχεδιασμού πλοήγησης

20 Γενικά, η RMM μπορεί να είναι η βάση για το σχεδιασμό και την ανάπτυξη εφαρμογών και κυρίως για αυτές που έχουν μία πολύ καλή δομή και ανάγκη για συχνή ανανέωση των δεδομένων τους Object-Oriented Hypermedia Design Method - OOHDM Η OOHDM [9,10] είναι μία μεθοδολογία βασισμένη σε μοντέλα, και χρησιμοποιείται για την κατασκευή μεγάλων εφαρμογών υπερμέσων. Όπως μπορούμε να δούμε και από το όνομά της, είναι μία αντικειμενοστρεφής μέθοδος σχεδιασμού, που βασίζεται στην HDM. Η OOHDM συνίσταται από τέσσερις φάσεις: Eννοιολογικός σχεδιασμός (conceptual design), Σχεδιασμός πλοήγησης (navigational design), Αφαιρετικός σχεδιασμός του περιβάλλοντος διεπαφής (abstract interface design) και Υλοποίηση (implementation). Θεωρώντας ότι οι τρεις πρώτες φάσεις είναι ξεχωριστές, επιτρέπει να γίνονται ταυτόχρονα πολλές εργασίες αλλά και βοηθάει ώστε στην κάθε φάση να δίνεται μεγαλύτερη προσοχή. Στην Εικόνα 4 φαίνεται η σχέση μεταξύ των τριών πρώτων φάσεων. Αναλυτικότερα, οι φάσεις της OOHDM είναι: 1. Eννοιολογικός σχεδιασμός Στη φάση αυτή κατασκευάζεται το εννοιολογικό μοντέλο της εφαρμογής χρησιμοποιώντας γνωστές αρχές αντικειμενοστρεφούς μοντελοποίησης, οι οποίες είναι παρόμοιες με τις αρχές της UML. Τα αντικείμενα, οι σχέσεις και η επιδιωκόμενη λειτουργικότητα της εφαρμογής αναπαρίστανται με χρήση κλάσεων και σχέσεων. Οι κλάσεις χρησιμοποιούνται για την παραγωγή κόμβων σελίδων και οι σχέσεις χρησιμοποιούνται για την παραγωγή συνδέσμων στη φάση του σχεδιασμού πλοήγησης. Εδώ η μοντελοποίηση γίνεται χωρίς να λαμβάνονται υπ όψην οι τύποι των χρηστών και των εργασιών τους. 2. Σχεδιασμός πλοήγησης Στη φάση αυτή, θεωρούμε ότι οι εφαρμογές παγκόσμιου ιστού είναι εφαρμογές υπερμέσων που έχουν χτιστεί πάνω στο εννοιολογικό μοντέλο. Τα αντικείμενα στα οποία ο χρήστης πλοηγείται δεν είναι τα εννοιολογικά αντικείμενα, αλλά άλλου είδους αντικείμενα τα οποία έχουν δημιουργηθεί από ένα ή περισσότερα εννοιολογικά αντικείμενα. Ο χρήστης πλοηγείται στα διάφορα αντικείμενα μέσω συνδέσμων, πολλοί από τους οποίους δεν παράγονται απευθείας από τις εννοιολογικές σχέσεις. Η OOHDM υποστηρίζει το σχεδιασμό της πλοήγησης σε μεγάλο εύρος. Για κάθε προφίλ χρήστη δίνεται η δυνατότητα ορισμού διαφορετικής δομής πλοήγησης, η οποία απεικονίζει τα αντικείμενα και τις σχέσεις του εννοιολογικού σχήματος, ανάλογα με τις λειτουργίες που μπορεί κάθε φορά να εκτελεί ο συγκεκριμένος τύπος χρήστη. Η δομή της κλάσης πλοήγησης της εφαρμογής παγκόσμιου ιστού καθορίζεται από ένα σχήμα που περιέχει κλάσεις πλοήγησης. Στην OOHDM, έχει οριστεί ένα σύνολο από κλάσεις πλοήγησης, όπως κόμβοι, σύνδεσμοι, ευρετήρια και δομές προσπέλασης. Οι κόμβοι αναπαριστούν λογικές όψεις των κλάσεων που έχουν οριστεί στο πεδίο του μοντέλου δεδομένων. Οι κόμβοι συνδέονται μέσω συνδέσμων, για τη διευκόλυνση της πλοήγησης. Οι δομές προσπέλασης, όπως για παράδειγμα τα ευρετήρια, αναπαριστούν δυνατούς τρόπους πλοήγησης μεταξύ των αντικειμένων. Επιπλέον, στην OOHDM ορίζεται η έννοια του περιεχομένου πλοήγησης (navigational context). Οι εφαρμογές παγκόσμιου ιστού περιέχουν συνήθως συλλογές

21 σελίδων, οι οποίες ασχολούνται με παρόμοια θέματα, όπως για παράδειγμα τα βιβλία ενός συγγραφέα ή τα ξενοδοχεία μιας πόλης. Ο χρήστης πρέπει να έχει τη δυνατότητα ανάλογα με τη λειτουργία που εκτελεί να πλοηγείται στις συλλογές με διάφορους τρόπους. Για παράδειγμα, σε ένα ηλεκτρονικό βιβλιοπωλείο, ο χρήστης μπορεί να αναζητήσει βιβλία που γράφηκαν μία συγκεκριμένη περίοδο ή τα βιβλία ενός συγκεκριμένου συγγραφέα. Πρέπει να μπορεί ο χρήστης να πλοηγείται από ένα βιβλίο σε άλλο, χωρίς να χρειάζεται να επιστρέφει στο αρχικό ευρετήριο (το οποίο μπορεί να είναι αποτέλεσμα αναζήτησης μιας λέξης κλειδί). Προκειμένου να ικανοποιηθεί η απαίτηση αυτή, η OOHDM δομεί το χώρο πλοήγησης σε navigational contexts, τα οποία αναπαρίστανται σε ένα Σχήμα περιεχομένου πλοήγησης (Navigational Context Schema). Κάθε navigation context είναι ένα σύνολο κόμβων και ορίζεται δηλώνοντας την εσωτερική δομή πλοήγησης, ένα σημείο εισόδου και συσχετιζόμενα ευρετήρια.. Όταν ο ίδιος κόμβος εμφανίζεται σε περισσότερα από ένα σύνολα (contexts), δίνεται η δυνατότητα στο σχεδιαστή της εφαρμογής, με τη χρήση των InContext κλάσεων να ορίσει διαφορετική παρουσίαση του κόμβου, ανάλογα με τo context στην οποία ανήκει. Οι InContext κλάσεις εμπλουτίζουν τα αντικείμενα πλοήγησης επιτρέποντάς τα να εμφανίζονται διαφορετικά, να παρουσιάζουν διαφορετικά κατηγορήματα ή και να έχουν διαφορετικές συμπεριφορές (μέθοδοι), ανάλογα με το πλαίσιο στο οποίο κάθε φορά ανήκουν. 3. Αφαιρετικός σχεδιασμός του περιβάλλοντος διεπαφής Στον αφαιρετικό σχεδιασμό του περιβάλλοντος διεπαφής προσδιορίζεται το περιβάλλον διεπαφής που θα βλέπει ο χρήστης, ποια αντικείμενα της διεπαφής θα ενεργοποιούν την πλοήγηση και η συμπεριφορά της διεπαφής. Η φάση αυτή είναι διαφορετική φάση από το σχεδιασμό πλοήγησης, έτσι ώστε να μπορούν να κατασκευαστούν διαφορετικές διεπαφές για την ίδια εφαρμογή. Επίσης, με τον τρόπο αυτό γίνεται καλύτερη η κατανόηση ολόκληρης της δομής της εφαρμογής και φαίνονται και ποιες αλλαγές της διεπαφής είναι τοπικές και δεν απαιτούν πρόσβαση στο web server. Στην OOHDM, χρησιμοποιείται η προσέγγιση Abstract Data View (ADV) για να περιγραφεί η διεπαφή του χρήστη μιας εφαρμογής υπερμέσων. Τα ADVs είναι αντικείμενα, τα οποία έχουν μία κατάσταση (state) και μία διεπαφή, η οποία μπορεί να αλλάζει ανάλογα με τη συμπεριφορά του χρήστη. Τα ADVs μπορούν να χρησιμοποιηθούν ώστε να αναπαραστήσουν είτε διεπαφές μεταξύ δύο διαφορετικών μέσων όπως ένας χρήστης, ένα δίκτυο ή μία συσκευή, είτε διεπαφές μεταξύ δύο ή και περισσότερων Abstract Data Objects (ADOs). Τα ADOs είναι αντικείμενα, τα οποία δεν υποστηρίζουν εξωτερικά events που προκαλούνται από το χρήστη. Από αρχιτεκτονική άποψη, τα ADVs παρατηρούν τα ADOs, έτσι ώστε το πρωτόκολλο επικοινωνίας μεταξύ της διεπαφής και των αντικειμένων της εφαρμογής να ακολουθούν τους κανόνες που περιγράφονται στο Observer Design Pattern [Gamma 95]. Ένα ADV που χρησιμοποιείται στο σχεδιασμό web εφαρμογών μπορεί να θεωρηθεί σαν ένα αντικείμενο της διεπαφής. Περιέχει ένα σύνολο χαρακτηριστικών, που καθορίζουν τις ιδιότητές του και τα γεγονότα που μπορεί να χειριστεί, όπως γεγονότα που προέρχονται από το χρήστη (π.χ. MouseClick, MouseDoubleClick, MouseOn κ.τ.λ). Στην OOHDM, τα αντικείμενα πλοήγησης όπως οι κόμβοι και τα ευρετήρια λειτουργούν σαν ADOs, και τα ADVs που σχετίζονται με αυτά θα χρησιμοποιηθούν για να καθορίσουν πώς θα εμφανιστούν στο χρήστη.

22 4. Υλοποίηση Μέχρι τώρα, όλα τα μοντέλα κατασκευάστηκαν έτσι ώστε να είναι ανεξάρτητα από την πλατφόρμα υλοποίησης. Στη φάση αυτή αρχίζει να λαμβάνεται υπ όψην το περιβάλλον της εκτέλεσης (runtime environment). Έως τη φάση της υλοποίησης, ο σχεδιαστής έχει ήδη ορίσει τα κομμάτια πληροφορίας του προβλήματος, πώς αυτά θα οργανωθούν σύμφωνα με το προφίλ του χρήστη και έχει αποφασίσει πώς θα είναι το περιβάλλον διεπαφής και πώς θα λειτουργεί. Για να υλοποιηθούν όλα αυτά σε ένα περιβάλλον WWW, ο σχεδιαστής πρέπει να αποφασίσει πώς θα αποθηκευτούν τα κομμάτια πληροφορίας (τόσο τα εννοιολογικά όσο και τα αντικείμενα πλοήγησης). Επίσης πρέπει να αποφασίσει πώς θα χρησιμοποιηθεί η HTML για την εμφάνιση και τη συμπεριφορά του περιβάλλοντος διεπαφής και πιθανώς να χρησιμοποιήσει και κάποιες επεκτάσεις. Συνοψίζοντας, στην υλοποίηση αντιστοιχίζονται τα εννοιολογικά αντικείμενα και τα αντικείμενα πλοήγησης και διεπαφής στο περιβάλλον υλοποίησης. Όταν το περιβάλλον δεν είναι πλήρως αντικειμενοστρεφές πρέπει να αντιστοιχίστουν τα εννοιολογικά αντικείμενα και τα αντικείμενα πλοήγησης και διεπαφής σε απτά αντικείμενα, που είναι διαθέσιμα στο περιβάλλον υλοποίησης που έχει επιλεχθεί. Εικόνα 4: Η σχέση του εννοιολογικού μοντέλου, του σχεδιασμού πλοήγησης και του αφαιρετικού σχεδιασμού του περιβάλλοντος διεπαφής Συμπερασματικά, η OOHDM είναι μία από τις πιο ολοκληρωμένες μεθοδολογίες μοντελοποίησης εφαρμογών Παγκόσμιου Ιστού. Επεκτείνει το μοντέλο της HDM και βελτιώνει τη διαδικασία συντήρησης και επαναχρησιμοποίησης της εφαρμογής, χάρη στο διαχωρισμό των φάσεων σχεδιασμού.

23 1.2.4 HDM-lite Η HDM-lite [6] είναι ένα εννοιολογικό μοντέλο, που βοηθάει στον καθορισμό της δομής, της πλοήγησης και της παρουσίασης μιας εφαρμογής στο Web. Η HDM-lite είναι μια επέκταση της HDM και ουσιαστικά μετατρέπει τις εννοιολογικές προδιαγραφές σε μία λογική αναπαράσταση, που οδηγεί στη δημιουργία σελίδων της εφαρμογής από αποθηκευμένα δεδομένα. Η HDM-lite υλοποιείται στο σύστημα Autoweb, ένα σύνολο εργαλείων που υποσηρίζουν τη διαδικασία ανάπτυξης από την εννοιολογική μοντελοποίηση στην ανάπτυξη σελίδων της εφαρμογής στο Web. Μία εφαρμογή καθορίζεται στην HDM-lite ορίζοντας τη δομή, την πλοήγηση και την παρουσίαση, τα οποία διαμορφώνονται με τα σχήματα υπερβάσης (hyperbase), πρόσβασης (access) και παρουσίασης αντίστοιχα. Το σχήμα υπερβάσης (hyperbase schema) περιγράφει τη δομή της πληροφορίας της εφαρμογής. Ένα HDM-lite σχήμα υπερβάσης επεκτείνει ένα μοντέλο σχέσεωνοντοτήτων (E-R) και αναπαριστά οντότητες οργανωμένες σε ένα δέντρο στοιχείων (components), χαρακτηριστικά (attributes) των στοιχείων, σημασιολογικούς συνδέσμους μεταξύ οντοτήτων και στοιχείων και βασικούς περιορισμούς. Γενικά, τα αντικείμενα της εφαρμογής και οι σημασιολογικοί τους σύνδεσμοι αποτελούν τη βάση πληροφοριών της εφαρμογής, ή αλλιώς υπερβάση. Το σχήμα προσπέλασης (access schema) καθορίζει τον τρόπο, με τον οποίο προσεγγίζεται η πληροφορία που περιγράφηκε από το σχήμα υπερβάσης. Για ένα σχήμα υπερβάσης μπορούν να δημιουργηθούν πολλά σχήματα πρόσβασης, έτσι ώστε να μπορούν να καλυφθούν διαφορετικές ανάγκες από την εφαρμογή. Ένα σχήμα πρόσβασης αποτελείται από traversals, που είναι κατευθυνόμενα μονοπάτια πλοήγησης από ένα αντικείμενο πηγής (source object) σε ένα σύνολο από αντικείμενα και συλλογές (collections), που είναι ευρετήρια των αντικειμένων υπερβάσης. Τα traversals, όπως φαίνεται και στην Εικόνα 5 βασίζονται στις σημασιολογικές σχέσεις του σχήματος υπερβάσης. Το σχήμα παρουσίασης (presentation schema) από μια συλλογή από style sheets, τα οποία περιγράφουν την εμφάνιση των σελίδων της εφαρμογής. Για ένα ζευγάρι <σχήμα υπερβάσης, σχήμα πρόσβασης> μπορούν να υπάρχουν περισσότερα από ένα σχήματα παρουσίασης. Η βασική μονάδα του σχήματος παρουσίασης είναι η σελίδα (page). Υπάρχουν τρεις τύποι σελίδων: οι σελίδες στοιχείων (components pages), που περιγράφουν πώς αναπαριστώνται οι οντότητες και τα υποστοιχεία τους, οι traversal σελίδες, που καθορίζουν την απεικόνιση Ν-οστών traversals που απαιτούν ένα ευρετήριο και οι collection σελίδες, που σχετίζονται με τις συλλογές. Ένα style sheet υποδεικνύει την εμφάνιση ενός συγκεκριμένου τύπου σελίδας και οργανώνεται λογικά σε δύο επίπεδα: το layout επίπεδο περιγράφει το layout της σελίδας (κάθε σελίδα μοντελοποιείται σε ένα πλέγμα (grid), κάθε κελί του οποίου περιέχει στοιχεία παρουσίασης) και το element επίπεδο, που προσδιορίζει τα στοιχεία που εμφανίζονται στο πλέγμα. Τα στοιχεία μπορεί να είναι είτε built-in είτε ορισμένα από το χρήστη (user-defined). Υπάρχουν διάφορες κατηγορίες από built-in στοιχεία. Τα component στοιχεία, τα οποία εμφανίζονται στα style sheets για τις component σελίδες, τα στοιχεία οντοτήτων, τα οποία χρησιμοποιούνται στα style sheets των component σελίδων για να περιγράψουν τη δομή των οντοτήτων και τα στοιχεία πλοήγησης, που αναπαριστούν διάφορες μορφές πλοήγησης.

24 Όπως είδαμε και προηγουμένως, η HDM-lite μετατρέπει τις εννοιολογικές λεπτομέρειες σε λογικές δομές και αυτές σε φυσικές σελίδες. Αυτά τα δύο βήματα γίνονται από το σύστημα Autoweb [6], ένα περιβάλλον που αποτελείται από τη visual HDM (VHDM), που είναι ένα case εργαλείο που βοηθά στη μετατροπή των HDMlite εννοιολογικών σχημάτων σε συσχετιζόμενες δομές και το Autoweb generator, που δημιουργεί σελίδες εφαρμογής από λογικές δομές. Η VHDM παίρνει σαν είσοδο το εννοιολογικό σχήμα της web εφαρμογής και αυτόματα κατασκευάζει το λογικό σχήμα της υπερβάσης, της βάσης πρόσβασης και της βάσης παρουσίασης. Η έξοδος που παράγεται μπορεί να απευθύνεται σε διαφορετικές πλατφόρμες. Η αντιστοίχιση του εννοιολογικού σχήματος υπερβάσης στο αντίστοιχο λογικό είναι μία απλή διαδικασία, που μοιάζει με το λογικό σχεδιασμό ενός εννοιολογικού σχήματος οντοτήτων-συσχετίσεων. Η δημιουργία της βάσης πρόσβασης και της βάσης παρουσίασης γίνεται ως εξής: το λογικό σχήμα της βάσης πρόσβασης και της βάσης παρουσίασης ορίζονται με βάση τα traversals και τα collections της HDM-lite και ύστερα αντιστοιχίζεται το εννοιολογικό σχήμα υπερβάσης που προκύπτει με συσχετιζόμενες δομές με τον ίδιο τρόπο που γίνεται και με τις κανονικές εφαρμογές. Τέλος, κάθε σχήμα πρόσβασης και style sheet της HDMlite μετατρέπεται σε ένα σύνολο πλειάδων (tuples) της βάσης πρόσβασης και της βάσης παρουσίασης. Ο Autoweb page generator λειτουργεί σαν ένας διαμεσολαβητής μεταξύ του HTTP server και ενός ή περισσότερων μηχανών DBMS που έχουν αποθηκευμένη την υπερβάση της εφαρμογής. Ο page generator παρουσιάζεται στους clients σαν μία αντικειμενοστρεφής διεπαφή που μπορεί να ανοίγει και να κλείνει τη σύνδεση στη βάση καθώς και να ανοίγει και αρκετές συνδέσεις σε διαφορετικές βάσεις ταυτόχρονα και να εξυπηρετεί αιτήσεις για ανάγνωση ή εγγραφή από τους clients. Συνοπτικά η HDM- lite απλουστεύει και επεκτείνει την HDM και την κάνει εφαρμόσιμη στην διαδικασία αυτόματης κατασκευής εφαρμογών Παγκόσμιου Ιστού, ιδιαίτερα απαιτητικών σε διαχείριση μεγάλου όγκου δεδομένων.

25 Εικόνα 5: Παράδειγμα ενός σχήματος πρόσβασης Web Site Design Method WSDM Η WSDM [3] είναι μία μεθοδολογία προσανατολισμένη στους χρήστες της εφαρμογής (user-centered) και λύνει πολλά προβλήματα στα web sites που δεν έχουν κάποια ιδιαίτερη σχεδίαση ή η σχεδίασή τους βασίζεται στα δεδομένα της εφαρμογής (data driven). Η μέθοδος αποτελείται από τις ακόλουθες φάσεις, όπως φαίνονατι και στην Εικόνα 6: μοντελοποίηση χρηστών (user modeling), εννοιολογικός σχεδιασμός (conceptual design), σχεδιασμός υλοποίησης (implementation design) και υλοποίηση (implementation). Εικόνα 6: Οι φάσεις της WSDM 1. Μοντελοποίηση των χρηστών Στη φάση μοντελοποίησης των χρηστών, οι χρήστες κατηγοριοποιούνται ανάλογα με τα ενδιαφέροντα και τις προτιμήσεις τους. Η φάση αυτή αποτελείται από δύο βήματα: την κατηγοριοποίηση των χρηστών και την περιγραφή της κλάσης των χρηστών. Στο πρώτο βήμα, κατηγοριοποιούνται οι χρήστες της εφαρμογής. Αυτό γίνεται ως εξής: Διακρίνουμε κατ αρχάς από ποιες δραστηριότητες (activities) αποτελείται το πεδίο της εφαρμογής. Αν για παράδειγμα η εφαρμογή παρουσίαζε ένα πανεπιστήμιο οι δραστηριότητες θα ήταν η επαίδευση, η έρευνα, να παρέχει συμβουλές σε εταιρείες ή η δημοσίευση εργασιών. Ύστερα, προσδιορίζουμε τους τύπους των ανθρώπων, που θα ενδιαφέρονταν για την κάθε δραστηριότητα. Για παράδειγμα, για τη δραστηριότητα έρευνα θα ενδιαφέρονταν φοιτητές, καθηγητές του πανεπιστημίου, ερευνητές και εταιρείες. Αυτοί οι τύποι ανθρώπων που ενδιαφέρονται για μία δραστηριότητα αποτελούν την κλάση χρηστών.

26 Εφόσον οι χρήστες έχουν κατηγοριοποιηθεί σε κλάσεις χρηστών, το επόμενο βήμα είναι να αναλυθούν οι κλάσεις αυτές με μεγαλύτερη λεπτομέρεια. Η ανάλυση συνίσταται σε πρώτη φάση στις απαιτήσεις πληροφορίας των χρηστών (information requirements), δηλαδή τι θέλουν να δουν οι χρήστες, γιατί αν και ανήκουν στην ίδια κλάση χρηστών δεν είναι απαραίτητο ότι ψάχνουν για τις ίδιες πληροφορίες. Η δεύτερη φάση της ανάλυσης ασχολείται με τον προσδιορισμό των χαρακτηριστικών της κλάσης χρηστών, για παράδειγμα πόση εμπειρία έχουν στη χρήση των web sites, τι γλώσσες γνωρίζουν, έτσι ώστε να αποφασιστεί πώς θα παρουσιάσουν τις πληροφορίες. 2. Εννοιολογικός Σχεδιασμός Ο εννοιολογικός σχεδιασμός αποτελείται από δύο βήματα: τη μοντελοποίηση αντικειμένων (object modeling) και το σχεδιασμό πλοήγησης (navigational design). Η μοντελοποίηση αντικειμένων αποτελείται από τη μοντελοποίηση των αντικειμένων του πεδίου (business object modeling), τη μοντελοποίηση των αντικειμένων των χρηστών (user object modeling) και τη μοντελοποίηση των αντικειμένων των προοπτικών (perspective object modeling). Ο σκοπός της πρώτης φάσης είναι να μοντελοποιήσει τις απαιτήσεις πληροφορίας κάθε κλάσης χρηστών. Αυτό γίνεται φτιάχνοντας μοντέλα για διαφορετικές κλάσεις χρηστών. Αυτά τα μοντέλα λέγονται User Object Models (UOM). Το μειονέκτημά τους είναι ότι επειδή μία κλάση χρηστών έχει μόνο μία περιορισμένη άποψη για το πεδίο της εφαρμογής, ένα UOM θα καλύπτει μόνο ένα μέρος του συνόλου των απαιτήσεων. Για το λόγο αυτό εισάγεται και η έννοια της προοπτικής (perspective) και δημιουργούνται τα Perspective Object Models (POM). Τα μοντέλα αυτά ουσιαστικά επεκτείνουν τα UOMs δίνοντάς τους μια προοπτική. Για παράδειγμα, αν το UOM για το μάθημα ενός πανεπιστημίου χαρακτηρίζονταν από το όνομα, την περιγραφή και την εξεταστέα ύλη (Εικόνα 7α), θα μπορούσαν να δοθούν δύο προοπτικές ανάλογα με τη γλώσσα που μιλάνε οι ενδιαφερόμενοι φοιτητές (Εικόνα 7β). Για να αποφευχθεί η υπερχείλιση κατά την αποθήκευση πληροφοριών, τα διαφορετικά POMs θα περιγράφονται σαν όψεις ενός μοντέλου, το Business Object Model (BOM). Εικόνα 7: (α) Ένα user object model (β) To αντίστοιχο perspective object model Το μοντέλο πλοήγησης αποτελείται από έναν αριθμό από μονοπάτια πλοήγησης (navigation tracks), ένα για κάθε προοπτική, εκφράζοντας τον τρόπο με τον οποίο οι

27 χρήστες μίας συγκεκριμένης προοπτικής μπορούν να πλοηγηθούν στις διαθέσιμες πληροφορίες. Αυτό στην WSDM περιγράφεται με τη χρήση των στοιχείων (components) και των συνδέσμων (links). Υπάρχουν τρεις τύποι στοιχείων: τα στοιχεία πληροφορίας, τα στοιχεία πλοήγησης, και τα εξωτερικά. Για να κατασκευαστεί ένα μοντέλο πλοήγησης κατασκευάζεται ένα μονοπάτι πλοήγησης για κάθε POM. Κάθε μονοπάτι πλοήγησης αποτελείται από τρία επίπεδα: το επίπεδο πλαισίου (context), το επίπεδο πλοήγησης (navigation) και το επίπεδο πληροφορίας (information). Το επίπεδο πλαισίου βρίσκεται στο πάνω τμήμα του μονοπατιού πλοήγησης και ξεκινάει με ένα στοιχείο πλοήγησης. Το επίπεδο πληροφορίας βρίσκεται στο κάτω τμήμα του μονοπατιού, ενώ το επίπεδο πλοήγησης συνδέει τα δύο άλλα επίπεδα. Για να επιτευχθεί πρόσβαση στην πληροφορία δημιουργούνται ενδιάμεσα στοιχεία και σύνδεσμοι, όπως για παράδειγμα δείκτες. 3. Σχεδιασμός Υλοποίησης Στο βήμα αυτό σχεδιάζουμε την εμφάνιση του web site. Σκοπός είναι να δημιουργηθεί μία συνεπής, ευχάριστη και εύχρηστη άποψη του εννοιολογικού σχεδιασμού της προηγούμενης φάσης. Κάποιες βασικές αρχές για σωστό σχεδιασμό είναι οι εξής: Δεν πρέπει να φαίνονται όλες οι πληροφορίες σε μία σελίδα, γιατί θα είναι πολύ κουραστικό για το χρήστη αλλά να ομαδοποιούνται και ο χρήστης να πλοηγείται σε αυτές μέσω συνδέσμων. Είναι καλό να υπάρχει ένα ευρετήριο που θα οδηγεί το χρήστη σε όποια σελίδα της εφαρμογής επιθυμεί και μάλιστα αυτό το ευρετήριο θα μπορούσε να είναι το εννοιολογικό μοντέλο της εφαρμογής. Κάθε σελίδα θα πρέπει να έχει όνομα αντιπροσωπευτικό του περιεχομένου της. 4. Υλοποίηση Η τελευταία φάση είναι η υλοποίηση του web site χρησιμοποιώντας το κατάλληλο περιβάλλον υλοποίησης. Για να επιτευχθεί καλύτερη συντήρηση της εφαρμογής πολλά web sites αποθηκεύουν τις πληροφορίες που χρειάζονται σε κάποια βάση δεδομένων και οι σελίδες δημιουργούνται με την εξαγωγή των απαραίτητων δεδομένων από τη βάση. Συνοψίζοντας, η μέθοδος WSDM είναι πολύ χρήσιμη για αλληλεπιδραστικές εφαρμογές, και καθώς επιθυμεί η κάθε εφαρμογή να είναι προσαρμοσμένη στους χρήστες δίνει μεγαλύτερη βαρύτητα στη μοντελοποίηση των χρηστών και στην εννοιολογική μοντελοποίηση παρά στην εμφάνιση της εφαρμογής Unified Modeling Language - UML Η UML [1] είναι μία γλώσσα μοντελοποίησης, που είναι κατάλληλη για το σχεδιασμό και την ανάλυση web εφαρμογών. Είναι μία επέκταση των ήδη υπάρχουσων μεθοδολογιών και τα νέα στοιχεία που εισάγονται είναι: τα στερεότυπα, που δίνουν μία νέα σημασιολογική ερμηνεία για κάθε στοιχείο μοντελοποίησης, τα tagged values, που είναι διακριτά ζευγάρια τιμών, το κάθε ένα από τα οποία συσχετίζεται με ένα στοιχείο μοντελοποίησης και οι περιορισμοί (constraints), που είναι κανόνες που καθορίζουν τη σωστή διαμόρφωση ενός μοντέλου.

28 Για τη μοντελοποίηση των web σελίδων σε UML κατ αρχάς θα πρέπει να γνωρίζουμε ότι κάθε web σελίδα αντιστοιχίζεται σε μία κλάση της UML και οι συσχετίσεις της με άλλες σελίδες αναπαριστώνται με υπερσυνδέσμους. Το κομμάτι μιας web σελίδας που αναφέρεται στον εξυπηρετητή μπορεί να μοντελοποιηθεί με μία κλάση και το κομμάτι που αναφέρεται στον client με μία άλλη, και να διαχωρίζονται χρησιμοποιώντας τους μηχανισμούς επέκτασης της UML, που αναφέρθηκαν παραπάνω. Οι στερεότυπες κλάσεις (stereotyped classes), μπορούν να αναπαρασταθούν σε ένα UML διάγραμμα είτε με κάποιο εικονίδιο, είτε μέσα σε εισαγωγικά. Ένας υπερσύνδεσμος σε μια web εφαρμογή αναπαριστά ένα μονοπάτι πλοήγησης μέσα στο σύστημα. Η σχέση αυτή εκφράζεται στο μοντέλο με μία στερεότυπη συσχέτιση τύπου «link». Η συσχέτιση αυτή ξεκινάει πάντα από μία σελίδα πελάτη (client page) και δείχνει είτε σε μία σελίδα πελάτη είτε σε μία σελίδα εξυπηρετητή (server page). Οι tagged τιμές χρησιμοποιούνται για καθορίσουν τις παραμέτρους που περνιούνται μέσα από κάθε σύνδεσμο. Οι λειτουργίες και τα χαρακτηριστικά της κλάσης «client page» μετατρέπονται σε συναρτήσεις και μεταβλητές, ορατές στο χρήστη. Οι λειτουργίες της κλάσης «server page» μετατρέπονται σε συναρτήσεις στην πλευρά του εξυπηρετητή (server side functions) και τα χαρακτηριστικά της σε μεταβλητές με εμβέλεια τη σελίδα. Οι φόρμες εισαγωγής δεδομένων, οι οποίες μπορεί να περιέχονται σε σελίδες στο επίπεδο του πελάτη, μοντελοποιούνται και αυτές με μία κλάση. Κάθε φόρμα έχει μια συσχέτιση με μία σελίδα εξυπηρετητή, η οποία είναι υπεύθυνη για την υποβολή της φόρμας. Μία φόρμα μπορεί να σχετίζεται με ActiveX ή Java Applets controls, τα οποία λειτουργούν σαν controls εισόδου. Σκοπός της γλώσσας αυτής είναι να παρουσιάσει μία συνεχή και ολοκληρωμένη πρόταση ώστε να ενσωματωθούν τα web-specific στοιχεία με την υπόλοιπη εφαρμογή έτσι ώστε το επίπεδο της λεπτομέρειας να είναι κατάλληλο για τους σχεδιαστές και τους προγραμματιστές των web εφαρμογών. 1.3 Βιβλιογραφία κεφαλαίου 1. Booch, G., Jacobson, I. and Rumbaugh, J. (1998), The Unified Modeling Language User Guide, The Addison-Wesley Object Technology Series. 2. Chen, P. P. (1976), The entity-relationship model: toward a unified view of data, ACM TODS, vol. 1, no. 1, pp De Troyer, O. and Leune, C. (1997), WSDM: A user-centered design method for Web sites, In the Proceedings of the 7th International World Wide Web Conference (WWW 7). 4. Diaz, Α., Isakowitz, T., Maiorana, V. and Gilabert, G. (1995), RMC: A tool to design WWW application, In the Proceedings of the 4th International WWW Conference, Boston, Mass., pp Engels, G. and Sauer, S. (1999), Extending UML for Modeling of Multimedia Applications, In the Proceedings of the IEEE Symposium on Visual Languages, Tokyo, Japan, pp Fraternali, P. and Paolini, P. (1998), A Conceptual Model and a Tool Environment for Developing More Scalable, Dynamic, and Customizable Web Applications, In the Proceedings of the 6th International Conference on Extending Database Technology EDBT 98, pp Garzotto, F., Paolini, P. and Schwabe, D. (1993), HDM - A Model-Based Approach to Hypertext Application Design, ACM Transactions on Information Systems, vol. 11 no. 1, pp

29 8. Isakowitz, T., Sthor, E.A. and Balasubranian, P. (1995), RMM: a methodology for structured hypermedia design, Communications of the ACM, vol. 38, no. 8, pp Schwabe, D. and Rossi, G. (1995), The object-oriented hypermedia design model, Communications of the ACM, vol. 38, no. 8, pp Schwabe, D. and Rossi, G. (1998), An object-oriented approach to web-based application design, Theory and Practice of Object Systems (TAPOS), Special Issue on objects, databases, and the WWW, vol. 4, no. 4, pp

30 2 Web Modeling Language (WebML) 2.1 Εισαγωγή Όπως είδαμε και στο πρώτο κεφάλαιο, ένα από τα βασικότερα ζητήματα που αφορούν τις web εφαρμογές είναι ο σχεδιασμός και η συντήρησή τους και για το λόγο αυτό έχουν προταθεί αρκετές μεθοδολογίες και μοντέλα. Ένα εννοιολογικό μοντέλο που έχει προταθεί και βασίζεται στην HDM-lite είναι η Web Modeling Language (WebML), η οποία μπορεί να περιγράφει σύνθετα web sites σε εννοιολογικό επίπεδο [1].Όλα τα δομοστοιχεία της WebML έχουν μία γραφική απεικόνιση αλλά περιγράφονται και σε μορφή κειμένου, μέσω μιας XML σύνταξης, η οποία μπορεί να παράγει αυτόματα την υλοποίηση του web site. Τα χαρακτηριστικά της WebML είναι ανεξάρτητα και από τις γλώσσες από τη μεριά του πελάτη (client server), αλλά και από την πλατφόρμα από τη μεριά του εξυπηρετητή. Η WebML εγγυάται μία προσέγγιση βασισμένη σε μοντέλα (model driven) για την ανάπτυξη των web sites, που είναι πολύ βασικό για τον ορισμό μιας νέας γενιάς από CASE εργαλεία για την κατασκευή σύνθετων sites, που υποστηρίζουν προχωρημένα χαρακτηριστικά, όπως πολλαπλή πρόσβαση και personalization. Η WebML περιγράφει ένα web site σε υψηλό επίπεδο χωρίς να περιγράφει λεπτομέρειες αρχιτεκτονικής και είναι οργανωμένη σε τέσσερα βασικά μοντέλα: στο μοντέλο δομής (structural model), στο μοντέλο υπερκειμένου (hypertext model), στο μοντέλο παρουσίασης (presentation model) και στο personalization μοντέλο. Το μοντέλο δομής, μας παρέχει τα δεδομένα του site σε μορφή οντοτήτων και συσχετίσεων, όπως φαίνεται στην Εικόνα 8. Η WebML δεν παρέχει κάποια καινούρια γλώσσα για μοντελοποίηση δεδομένων αλλά είναι συμβατή με το μοντέλο οντοτήτων- συσχετίσεων. Το μοντέλο υπερκειμένου περιγράφει τον τρόπο με τον οποίο παρουσιάζεται το περιεχόμενο της εφαρμογής και καθορίζει πώς συνδέονται μεταξύ τους οι δομικές μονάδες περιεχομένου και οι σελίδες, ώστε να δημιουργήσουν τα site views της εφαρμογής. Ένα site view είναι ένα υπερκείμενο της εφαρμογής, το οποίο απευθύνεται σε μία ομάδα χρηστών. Δηλαδή, μία εφαρμογή για το ίδιο μοντέλο δεδομένων μπορεί να έχει πολλά site views. Tο μοντέλο υπερκειμένου αποτελείται από δύο άλλα μοντέλα: Το μοντέλο σύνθεσης (composition model) και το μοντέλο πλοήγησης (navigation model). Το μοντέλο σύνθεσης καθορίζει ποιες σελίδες συνθέτουν ένα υπερκείμενο και ποιες δομικές μονάδες περιεχομένου συνθέτουν μία σελίδα. Έξι δομικές μονάδες περιεχομένου μπορούν να συνθέτουν μία σελίδα: το data, το multi-data, το index, το filter, το scroller και το direct unit. Τα data units δείχνουν την πληροφορία για ένα αντικείμενο, για παράδειγμα δείχνουν το στιγμιότυπο μιας οντότητας ή ενός στοιχείου. Τα multi-data units έχουν πληροφορία για ένα σύνολο οντοτήτων, για παράδειγμα όλα τα στιγμιότυπα μιας οντότητας. Τα index units δείχνουν μία λίστα από αντικείμενα χωρίς να αποκαλύπτουν λεπτομερείς πληροφορίες για το κάθε ένα. Τα scroller units δείχνουν εντολές για την πρόσβαση αντικειμένων σε ένα καθορισμένο σύνολο αντικειμένων, για παράδειγμα, το πρώτο, το επόμενο, το τελευταίο). Τα filter units είναι πεδία, τα οποία συμπληρώνουμε όταν θέλουμε να ψάξουμε σε ένα σύνολο αντικειμένων.

31 Τέλος, τα direct units δείχουν τη σύνδεση σε ένα αντικείμενο που συσχετίζεται σημασιολογικά με ένα άλλο αντικείμενο. Το μοντέλο πλοήγησης, εκφράζει πώς συνδέονται οι σελίδες και οι δομικές μονάδες περιεχομένου ώστε να σχηματίσουν ένα υπερκείμενο. Οι σύνδεσμοι είναι είτε σύνδεσμοι μεταφοράς περιεχομένου (contextual links), οι οποίοι μεταφέρουν παραμέτρους ανάμεσα σε δομικές μονάδες είτε non-contextual όταν δε μεταφέρουν περιεχόμενο. Οι σύνδεσμοι μεταφοράς περιεχομένου βασίζονται στο μοντέλο δομής, καθώς συνδέουν μονάδες (units), οι οντότητες των οποίων συσχετίζονται στο μοντέλο δομής. Το μοντέλο παρουσίασης εκφράζει τη γραφική αναπαράσταση των σελίδων, μέσω μιας XML σύνταξης. Τέλος, το Personalization μοντέλο, έχει τα δεδομένα του site οργανωμένα σε ομάδες με βάση το προφίλ του κάθε χρήστη. Εικόνα 8: Παράδειγμα από ένα μοντέλο δομής 2.2 Μοντέλο δομής Τα βασικά στοιχεία του μοντέλου δομής της WebML είναι οι οντότητες, οι οποίες περιέχουν τα δεδομένα της εφαρμογής και τις συσχετίσεις τους. Οι οντότητες έχουνε γνωρίσματα, τα οποία χαρακτηρίζονται από τον τύπο τους (string, integer, date). Οι συσχετίσεις χαρακτηρίζονται από το όνομά τους και από την οντότητα στην οποία καταλήγουν. Όλα αυτά φαίνονται στον παρακάτω xml κώδικα (Εικόνα 9) που αναπαριστά τη WebML αναπαράσταση του μοντέλου δομής της Εικόνα 8.

32 Εικόνα 9 : xml αναπαράσταση του παραδείγματος 2.3 Μοντέλο σύνθεσης Όπως είδαμε και στην εισαγωγή, το μοντέλο σύνθεσης καθορίζει ποιες σελίδες συνθέτουν ένα υπερκείμενο και ποιες δομικές μονάδες περιεχομένου συνθέτουν μία σελίδα. Έξι δομικές μονάδες περιεχομένου μπορούν να συνθέτουν μία σελίδα: το data, το multi-data, το index, το filter, το scroller και το direct unit Data units Τα data units χρησιμεύουν για να παρουσιάζουν κάποια ή και όλα τα χαρακτηριστικά μιας οντότητας ή ενός στοιχείου του σχήματος δομής. Στην xml τα data units ορίζονται με τη σύνταξη DATAUNIT μέσα σε tags, το όνομα της μονάδαςκαι σε ποια οντότητα ή στοιχείο αναφέρονται. Τα χαρακτηριστικά της οντότητας ή του στοιχείου

33 που περιέχει η μονάδα ορίζονται με το στοιχείο INCLUDE. Αν η μονάδα αναφέρεται σε όλα τα χαρακτηριστικά της οντότητας ή του στοιχείου του σχήματος δομής, τότε χρησιμοποιείται το στοιχείο INCLUDEALL. Αν για παράδειγμα θέλουμε μια πρώτη εικόνα για τον κάθε φοιτητή η σύνταξη του data unit είναι η εξής: <DATAUNIT id= ShortStudent entity= Student > <INCLUDE attribute= firstname /> <INCLUDE attribute= lastname /> <INCLUDE attribute= photo /> </DATAUNIT> Παρατηρώντας την παραπάνω σύνταξη βλέπουμε ότι πρόκειται για ένα data unit, με όνομα ShortStudent, αναφέρεται στην οντότητα Student και τα χαρακτηριστικά της οντότητας που παρουσιάζει είναι το όνομα, το επίθετο και η φωτογραφία. Αν θέλαμε το data unit να περιγράφει ολόκληρο το βιογραφικό του κάθε φοιτητή η σύνταξή του θα ήτανε: <DATAUNIT id= BiographyUnit entity= Student > <INCLUDEALL/> </DATAUNIT> δηλαδή, θα περιελάμβανε όλα τα χαρακτηριστικά της οντότητας student, όπως αυτά ορίστηκαν στο σχήμα δομής. Στην Εικόνα 10 φαίνεται η γραφική αναπαράσταση του data unit με όνομα ShortStudent και μια πιθανή αναπαράστασή του σε HTML. Εικόνα 10 : Παράδειγμα ενός data unit Multi-Data Units Τα multi-data units παρουσιάζουν ταυτόχρονα πολλά στιγμιότυπα μιας οντότητας ή ενός στοιχείου, επαναλαμβάνοντας πανομοιότυπα data units. Επομένως, ένα multidata unit αποτελείται από τα στιγμιότυπα της οντότητας που θα παρουσιάσει και από

34 το data unit που χρησιμοποιείται για την αναπαράσταση των στιγμιοτύπων. Στην xml τα multi-data units αναπαρίστανται με το στοιχείο MULTIDATAUNIT με εμφωλευμένο ένα στοιχείο DATAUNIT. Το παρακάτω παράδειγμα δείχνει πώς μπορούν να αναπαρασταθούν ταυτόχρονα όλα τα μαθήματα. <MULTIDATAUNIT id= MultiLessonUnit entity= Lesson > <DATAUNIT id= ShortLesson entity= Lesson > <INCLUDE attribute= name /> <INCLUDE attribute= code /> </DATAUNIT> </MULTIDATAUNIT> Στην Εικόνα 11 φαίνεται η γραφική αναπαράσταση του multi-data unit με όνομα MultiLessonUnit και μια πιθανή αναπαράστασή του σε HTML. Εικόνα 11 : Παράδειγμα ενός multi-data unit Index units Τα index units παρουσιάζουν σε μια λίστα, πολλαπλά στιγμιότυπα μιας οντότητας ή ενός στοιχείου. Ο ορισμός ενός index unit συνίσταται από δύο μέρη: Πρώτον περιέχει την οντότητα ή το στοιχείο, του οποίου τα στιγμιότυπα θα παρουσιαστούν και δεύτερον, τα χαρακτηριστικά της οντότητας, που εμφανίζονται στη λίστα (Εικόνα 12). Στην xml τα index units αναπαρίστανται με το στοιχείο INDEXUNIT, με εμφωλευμένο ένα στοιχείο DESCRIPTION. Το παρακάτω παράδειγμα δείχνει πώς μπορούν να εμφανιστούν όλα τα μαθήματα σε μία λίστα, εμφανίζοντας μόνο το όνομα του καθενός και στην Εικόνα 12 φαίνεται η γραφική αναπαράσταση του index unit με όνομα LessonIndex και μια πιθανή αναπαράστασή του σε HTML. <INDEXUNIT id=" LessonIndex " entity=" Lesson"> <DESCRIPTION Key="name"/> </INDEXUNIT>

35 Εικόνα 12 : Παράδειγμα ενός index unit Scroller Unit Το scroller unit χρησιμεύει στην κύληση ανάμεσα σε στιγμιότυπα μιας οντότητας. Ένα scroller unit συνήθως χρησιμοποιείται σε συνδυασμό με ένα data unit, το οποίο αναπαριστά γραφικά το τρέχον στιγμιότυπο. Στην xml αναπαρίσταται με το στοιχείο SCROLLERUNIT και δηλώνεται σε ποια οντότητα αναφέρεται και σε ποια στιγμιότυπα μπορεί να μεταφερθεί οχρήστης. Για παράδειγμα, από την παρακάτω xml σύνταξη φαίνεται ότι το scroller unit ονομάζεται StudentScroll, αναφέρεται στην οντότητα student και ο χρήστης μπορεί να μεταφερθεί στο επόμενο, στο προηγούμενο, στο πρώτο και στο τελευταίο στιγμιότυπο. <SCROLLERUNIT id=" StudentScroll" entity="student" first="yes" last="yes" previous="yes" next="yes"/> Στην Εικόνα 13 φαίνεται η γραφική αναπαράσταση του scroller unit με όνομα StudentScroll και μια πιθανή αναπαράστασή του σε HTML. Εικόνα 13 : Παράδειγμα ενός scroller unit

36 2.3.5 Filter unit Τα filter units παρέχουν πεδία εισόδου (input fields), τα οποία συμπληρώνει ο χρήστης όταν αναζητά στιγμιότυπα μιας οντότητας με συγκεκριμένα χαρακτηριστικά. Συνήθως, τα filter units χρησιμοποιούνται σε συνδυασμό με ένα index ή ένα multidata unit, όπου εμφανίζονται τα αποτελέσματα της αναζήτησης. Συντακτικά αναπαρίστανται με το στοιχείο FILTERUNIT και αναφέρουν το όνομα της μονάδας και την οντότητα στην οποία θα γίνει η αναζήτηση. Μέσα στο στοιχείο FILTERUNIT υπάρχει εμφωλευμένο το στοιχείο SEARCHATTRIBUTE, που καθορίζει το χαρακτηριστικό με βάση το οποίο θα γίνει η αναζήτηση αλλά και το είδος της αναζήτησης που θέλουμε. Για παράδειγμα, με την παρακάτω σύνταξη ορίζεται ένα filter unit, με όνομα StudentFilter, που αναφέρεται στην οντότητα student και ο χρήστης μπορεί να βρει όλους τους φοιτητές που έχουν ένα συγκεκριμένο επίθετο και έχουν γεννηθεί μέσα σε ένα διάστημα.. <FILTERUNIT id="studentfilter" entity="student"/> </SEARCHATTRIBUTE name="lastname" predicate="like"> </SEARCHATTRIBUTE name="birthdate" predicate="between"> </FILTERUNIT> Στην Εικόνα 14 φαίνεται η γραφική αναπαράσταση του filter unit με όνομα StudentFilter και μια πιθανή αναπαράστασή του σε HTML. Εικόνα 14 : Παράδειγμα ενός filter unit Direct Units Ένα direct unit ενώνει δύο units, τα στιγμιότυπα των οποίων έχουν σχέση 1-1. Παρόλο που ουσιαστικά είναι ένα είδος ευρετηρίου, τα direct units δεν αναπαρίστανται σε HTML όπως τα index units. Συντακτικά, αναπαρίστανται με το στοιχείο DIRECTUNIT και επίσης αναφέρεται το όνομά του και η συσχέτιση που εκφράζει. Για παράδειγμα, ο παρακάτω κώδικας αναφέρεται σε ένα direct unit με

37 όνομα ToGrades και εκφράζει τη συσχέτιση ενός μαθήματος με τον αντίστοιχο βαθμό. <DIRECTUNIT id=" ToGrades " relation="lessonτοgrades"/> Στην Εικόνα 15 φαίνεται η γραφική αναπαράσταση του direct unit με όνομα ToGrades. Εικόνα 15 : Παράδειγμα ενός direct unit Pages Οι pages είναι σύνολα από units, που εμφανίζονται μαζί σε μία σελίδα της εφαρμογής, ανεξάρτητα από τα υπόλοιπα στοιχεία της σελίδας (για παράδειγμα τα στοιχεία ενός φοιτητή και τα μαθήματα που έχει επιλέξει). Τα pages μπορεί να αποτελούνται από units ή από άλλα pages. Στη δεύτερη περίπτωση, οι υπο-σελίδες αντιμετωπίζονται σαν ανεξάρτητα κομμάτια και μπορεί να εμφανίζονται είτε μαζί (Εικόνα 16) είτε χωριστά (π.χ η μία υπο-σελίδα να είναι η εναλλακτική της άλλης). Για την περίπτωση που θέλουμε κάποιο κομμάτι της σελίδας να είναι σταθερό και κάποιο μεταβλητό υπάρχουν οι AND/OR υποσελίδες όπως φαίνεται στην Εικόνα 17. Όλες οι σελίδες εμφανίζονται με διακεκομμένες γραμμές και συντακτικά αναπαρίστανται με το στοιχείο PAGE και ακόμη αναφέρεται το όνομά τους, και τα units από τα οποία αποτελούνται. Για παράδειγμα στην xml σύνταξη που ακολουθεί έχουμε μία σελίδα (outermost), η οποία αποτελέιται από δύο υποσελίδες (leftmost, rightmost). Η υποσελίδα leftmost αποτελείται από δύο units, που είναι λίστες φοιτητών δύο χρόνων και οδηγούν σε ένα unit, που έχει τα στοιχεία του φοιτητή. Η γραφική αναπαράσταση και μια πιθανή αναπαράσταση σε HTML φαίνεται στην. <PAGE id="outermost"> <PAGE id="leftmost"> <UNIT id="pastyearindex"/> <UNIT id="thisyearindex"/> </PAGE > <PAGE id="rightmost"><unit id="student"/></page > </PAGE>

38 Εικόνα 16 : Παράδεγμα μιας σελίδας Αν θέλαμε να φαίνεται σε μία σελίδα η λίστα των φοιτητών και η λίστα των μαθημάτων ενός τμήματος και ανάλογα με την επιλογή μας να φαίνονται τα στοιχεία του φοιτητή ή του μαθήματος αντίστοιχα η xml σύνταξη θα ήταν η σύνταξη που ακολουθεί και η γραφική αναπαράσταση και μια πιθανή αναπαράσταση σε HTML φαίνεται στην Εικόνα 17: <PAGE id="outermost"> <PAGE id="leftmost"> <UNIT id="studentindex"/> <UNIT id="lessonindex"/> </PAGE > <PAGE id="rightmost"> <ALTERNATIVE> <PAGE id="rightmost1"> <UNIT id="studentinfo"/> </PAGE > <PAGE id="rightmost2"> <UNIT id="lessoninfo"/> </PAGE > </ALTERNATIVE> </PAGE > </PAGE>

39 Εικόνα 17 : Παράδεγμα μιας AND/OR σελίδας 2.4 Μοντέλο Πλοήγησης Contextual και Non-contextual σύνδεσμοι Προηγουμένως μιλήσαμε για τις μονάδες και τις σελίδες, τη δομή τους, τη σύνταξή τους και είδαμε τη γραφική αναπαράσταση της καθεμιάς. Τώρα θα δούμε πώς συνδέονται μεταξύ τους για να σχηματίσουν μια δομή υπερκειμένου. Αυτός είναι και ο σκοπός του μοντέλου πλοήγησης. Η WebML έχει δύο είδη συνδέσμων: οι σύνδεσμοι που μεταφέρουν πληροφορία (contextual links) και οι σύνδεσμοι που χρησιμοποιούνται απλά για πλοήγηση (non- contextual links). Contextual links: Οι σύνδεσμοι αυτοί ενώνουν μονάδες μεταφέροντας κάποια πληροφορία από τη μονάδα πηγής στη μονάδα προορισμού. Η πληροφορία αυτή χρησιμοποιείται για να αποφασιστεί ποια αντικείμενα θα εμφανιστούν στη μονάδα προορισμού. Συντακτικά, οι contextual σύνδεσμοι αναπαρίστανται με το στοιχείο INFOLINK Non-contextual links: Οι σύνδεσμοι αυτοί ενώνουν σελίδες με ένα εντελώς ανεξάρτητο τρόπο για παράδειγμα ανεξάρτητα από τις μονάδες που περιέχει η κάθε σελίδα. Συντακτικά, οι non-contextual σύνδεσμοι αναπαρίστανται με το στοιχείο HYPERLINK. Η μεταφορά πληροφορίας, που γίνεται μέσω των contextual συνδέσμων γίνεται χρησιμοποιώντας μία παράμετρο συνδέσμου (link parameter), που ορίζεται πάνω στο σύνδεσμο και έναν επιλογέα συνδέσμου (parametric selector), που ορίζεται στη μονάδα προορισμού. Μία παράμετρος συνδέσμου είναι μία τιμή, που μεταφέρεται στη μονάδα προορισμού και καθορίζει το περιεχόμενό της. Ένας σύνδεσμος μπορεί

40 να έχει περισσότερες από μία παραμέτρους. Ακολουθεί ένα παράδειγμα για να γίνουν οι έννοιες αυτές πιο κατανοητές. Ο σύνδεσμος έχει την παράμετρο CurrLesson, που είναι το αναγνωριστικό του μαθήματος που επιλέχθηκε από τη λίστα και το data unit έχει ένα επιλογέα [OID=CurrLesson], που χρησιμοποιεί την παράμετρο CurrLesson για να ανακτήσει και να εμφανίσει τις λεπτομέρειες του κατάλληλου μαθήματος. <INDEXUNIT id="lessonindex" relation="student2lesson"> <DESCRIPTION key="name"/> <INFOLINK id="link2" to="lessonunit" OID=" CurrLesson "/> </INDEXUNIT> <DATAUNIT id="lessonunit" entity="lesson"> <INCLUDEALL/> </DATAUNIT> Το index unit LessonIndex συνδέεται με ένα INFOLINK με το data unit LessonUnit, που αναφέρεται στην οντότητα Lesson και μέσω του συνδέσμου αυτού μεταφέρεται η πληροφορία για το μάθημα που επιλέχθηκε ώστε να εμφανιστεί η αντίστοιχη πληροφορία στο data unit. Η Εικόνα 18 δείχνει τη WebML αναπαράσταση του παραπάνω contextual συνδέσμου και μια πιθανή αναπαράσταση σε HTML.

41 Εικόνα 18 : Παράδεγμα ενός contextual link. Ανάλογα με τη μονάδα πηγής, η πληροφορία που μεταφέρεται μέσω ενός contextual συνδέσμου είναι διαφορετική. Ο Πίνακας 2 την πληροφορία που μεταφέρεται ανάλογα με τη μονάδα πηγής: Μονάδα πηγής Data Unit Index Unit Scroller Unit Filter Unit Direct unit Multidata unit Πληροφορία Η τιμή που προσδιορίζει το τρέχον αντικείμενο της μονάδας. Η τιμή-κλειδί του αντικειμένου που επιλέχθηκε από τη λίστα. Η τιμή του αντικειμένου που επιλέχθηκε χρησιμοποιώντας τις εντολές κύλησης. Οι τιμές των γνωρισμάτων που δίνονται σαν είσοδος από το χρήστη σε μία φόρμα εισαγωγής στοιχείων Η τιμή-κλειδί ενός αντικειμένου Οι τιμές που σχετίζονται με τα data units που είναι εμφωλευμένα στο multidata unit Πίνακας 2 : πληροφορία που μεταφέρεται ανάλογα με τη μονάδα πηγής Αυτόματοι σύνδεσμοι και σύνδεσμοι μεταφοράς Οι σύνδεσμοι δε χρησιμεύουν μόνο στην πλοήγηση, όπως είδαμε στηην προηγούμενη ενότητα αλλά μπορούν να δείξουν και κάποια ροή πληροφορίας, η οποία γίνεται χωρίς την παρέμβαση του χρήστη. Στο παράδειγμα της εικόνας 17 οι πληροφορίες του μαθήματος εμφανίζονται μόλις ο χρήστης επιλέξει κάποιο μάθημα. Πριν την επιλογή, το data unit δεν έχει το απαραίτητο OID ώστε να καθορίσει ποια πληροφορία θα εμφανίσει, επομένως δεν εμφανίζει τίποτα. Όμως, σε κάποιες εφαρμογές είναι απαραίτητο μόλις ανοίγει η σελίδα να εμφανίζονται όλα τα περιεχόμενά της ακόμη και αν ο χρήστης δεν έχει κάνει κάποια ενέργεια. Αυτό μπορεί να επιτευχθεί χρησιμοποιώντας αυτόματους συνδέσμους. Ένας αυτόματος σύνδεσμος ( automatic link) είναι ένας σύνδεσμος, ο οποίος ενεργοποιείται χωρίς την παρέμβαση του χρήστη, μόλις προσπελαστεί η σελίδα που περιέχει τη μονάδα πηγής του συνδέσμου. Η Εικόνα 19 δείχνει το παράδειγμα της Εικόνα 18 με τη διαφορά ότι ο σύνδεσμος είναι αυτόματος. Μόλις προσπελαστεί η σελίδα δε θα φαίνεται μόνο η λίστα των μαθημάτων αλλά και το data unit που δείχνει τις λεπτομέρειες ενός μαθήματος της λίστας. Η επιλογή του μαθήματος που θα εμφανιστεί βασίζεται σε ευρετικά κριτήρια, για παράδειγμα επιλέγεται το πρώτο αντικείμενο της λίστας. Η ανάγκη για ευρετικά κριτήρια υπάρχει μόνο για τα index units και τα scroller units, τα οποία επιτρέπουν στο χρήστη να επιλέξει ένα ή περισσότερα αντικείμενα από ένα σύνολο. Ένας αυτόματος σύνδεσμος αναπαρίσταται με την επικεφαλίδα A πάνω στο σύνδεσμο.

42 Εικόνα 19 : Παράδεγμα ενός αυτόματου συνδέσμου. Εκτός από τους συνδέσμους που είδαμε μέχρι τώρα και χρησιμεύουν στην πλοήγηση, υπάρχουν και σύνδεσμοι, οι οποίοι χρησιμεύουν μόνο στο πέρασμα παραμέτρων από το ένα unit στο άλλο χωρίς να υποστηρίζουν πλοήγηση του χρήστη και λέγονται σύνδεσμοι μεταφοράς (transport links). Οι σύνδεσμοι αυτοί αναπαρίστανται με διακεκομμένη γραμμή. Στην Εικόνα 20 φαίνεται ένα παράδειγμα ενός συνδέσμου μεταφοράς: Όταν προσπελαύνεται η σελίδα και το data unit και το index unit εμφανίζουν τις αντίστοιχες πληροφορίες.

43 Εικόνα 20 : Παράδεγμα ενός συνδέσμου μεταφοράς. 2.5 Μοντέλο Παρουσίασης Το μοντέλο παρουσίασης ασχολείται με τη μορφή και την εμφάνιση των σελίδων που ορίστηκαν στο μοντέλο σύνθεσης. Οι WebML σελίδες αναπαρίστανται σύμφωνα με ένα style sheet. Ένα style sheet καθορίζει τη μορφή των σελίδων, τις πληροφορίες που θα έχει η κάθε μία και είναι ανεξάρτητο από τη γλώσσα που χρησιμοποιείται για την απόδοση της σελίδας. Για να επιτευχθεί καλύτερη επαναχρησιμοποίηση υπάρχουν δύο κατηγορίες style sheets: τα untyped style sheets (που λέγονται αλλιώς και μοντέλα), περιγράφουν τη μορφή της σελίδας ανεξάρτητα από το περιεχόμενό της, επομένως μπορούν να χρησιμοποιηθούν χωρίς να λαμβάνεται υπ όψην η αντιστοιχία της σελίδας με το περιεχόμενο και τα typed style sheets, τα οποία εφαρμόζονται μόνο σε σελίδες που έχουν συγκεκριμένα περιεχόμενα. 2.6 Μοντέλο Εξατομίκευσης Ο όρος Personalization αφορά την προσαρμογή του περιεχομένου ή του τρόπου παρουσίασης τηςσελίδας ανάλογα με το προφίλ του χρήστη. Στη WebML, οι μονάδες, οι σελίδες, οι τρόποι παρουσίασής τους, και τα site views μπορούν να οριστούν ώστε να λαμβάνεται υπ όψην τα δεδομένα που αφορούν το χρήστη ή κάποια ομάδα χρηστών. Αυτό μπορεί να γίνει με δύο συμπληρωματικούς τρόπους: Declarative personalization: ο σχεδιαστής ορίζει τα μεταβλητά στοιχεία (π.χ., οντότητες, χαρακτηριστικά γνωρίσματα) ο ορισμός των οποίων εξαρτάται από τα δεδομένα του χρήστη. Με τον τρόπο αυτό το σύστημα κατά τον καθορισμό του

44 περιεχομένου της σελίδας συμπληρώνει τις πληροφορίες που σχετίζονται με τον κάθε χρήστη. Procedural personalization: Η WebML έχει μία XML σύνταξη, που βοηθάει στον υπολογισμό και στην αποθήκευση πληροφοριών που αφορούν το χρήστη. Ανάλογα με τις ενέργειες του χρήστη, αποθηκεύονται οι κατάλληλες πληροφορίες και ανάλογα με τις αποθηκευμένες πληροφορίες ο χρήστης μπαίνει σε μία ομάδα χρηστών με παρόμοια συμπεριφορά και παρόμοια αντιμετώπιση. 2.7 Σύγκριση Μεθοδολογιών Οι τρέχουσες προσεγγίσεις για μοντελοποίηση του παγκόσμιου ιστού, όπως προαναφέρθηκε, έχουν ένα κοινό στόχο, την παροχή υψηλού επιπέδου υποστήριξη για το σχεδιασμό και την ανάπτυξη εφαρμογών παγκόσμιου ιστού. Εν τούτοις κάθε μία από τις προτεινόμενες μεθοδολογίες επικεντρώνεται σε διαφορετικά επίπεδα. Κάποιες από τις προσεγγίσεις, όπως η Araneus, η Strudel, η OOHDM και η WebML, εξετάζουν ένα πλήθος διαστάσεων της διαδικασίας σχεδιασμού και ανάπτυξης μιας εφαρμογής παγκόσμιου ιστού, ενώ άλλες όπως η HDM, η HDM-Lite και η RMM επικεντρώνονται μόνο σε μερικές από τις διαστάσεις αυτές. Για παράδειγμα, η HDM ασχολείται κυρίως με το σχεδιασμό της δομής πλοήγησης, ενώ η WebML στοχεύει στο σχεδιασμό όσο δυνατόν περισσότερων επιπέδων. Επιπλέον, οι εφαρμογές παγκόσμιου ιστού εξελίσσονται συνεχώς και για το λόγο αυτό κατασκευάζονται, τροποποιούνται και προτείνονται συνεχώς εννοιολογικές προσεγγίσεις για μοντελοποίηση του παγκόσμιου ιστού. Τα χαρακτηριστικά αυτά κάνουν τη σύγκριση των μεθοδολογιών μοντελοποίησης πολύ δύσκολη. Διαστάσεις Προσεγγίσεις Μοντελοποίηση Περιεχομένου Μοντελοποίηση Πλοήγησης Μοντελοποίηση Διεπαφής Χρήστη Μοντελοποίηση Παρουσίασης Μοντελοποίηση Εξατομίκευσης HDM x x RMM x OOHDM x HDM-Lite UML επεκτάσεις x WebML Πίνακας 3: Σύγκριση Μεθοδολογιών Στη συνέχεια παρατίθεται μία σύγκριση μεθοδολογιών όσον αφορά την υψηλού επιπέδου υποστήριξη για τον καθορισμό των εφαρμογών παγκόσμιου ιστού. Συγκεκριμένα, γίνεται σύγκριση των μεθοδολογιών με βάση τη διάσταση των επιπέδων και τη διάσταση της εξατομίκευσης.. Στον πίνακα είναι τα αποτελέσματα

45 της σύγκρισης (Πίνακας 3). Το σύμβολο υποδηλώνει πλήρη υποστήριξη και το x καθόλου υποστήριξη Μοντελοποίηση Περιεχομένου Η μοντελοποίηση περιεχομένου αφορά τη σημασιολογία του υποκείμενου πεδίου βάσης δεδομένων των εφαρμογών παγκόσμιου ιστού. Με τη μοντελοποίηση περιεχομένου ασχολούνται όλες οι προσεγγίσεις. Οι περισσότερες προσεγγίσεις επιτρέπουν την αφαίρεση των δομών δεδομένων του πεδίου δεδομένων και τον καθορισμό δομών πλοήγησης και διεπαφών προκειμένου να είναι εφικτή η προσπέλαση στο υποκείμενο πεδίο δεδομένων. Ειδικότερα, στο πεδίο δεδομένων της WebML, το περιεχόμενο δεν είναι μόνο προς ανάγνωση. Στη WebML έχει οριστεί ένα σύνολο δομικών μονάδων λειτουργιών προκειμένου να υποστηρίξει τη διαχείριση του υποκείμενου πεδίου δεδομένων. Άλλες προσεγγίσεις, όπως η HDM, δεν υποστηρίζουν δυναμική πρόσβαση στο υποκείμενο μοντέλο δεδομένων, μιας και στόχος τους είναι η μοντελοποίηση στατικών ιστοτόπων, στους οποίους η πληροφορία είναι προκαθορισμένη τη στιγμή που γίνεται ο σχεδιασμός. Παρ όλ αυτά, διαχωρίζουν το πεδίο των δεδομένων από τον καθορισμό άλλων όψεων του τελικού ιστοτόπου Μοντελοποίηση Πλοήγησης Η μοντελοποίηση της πλοήγησης αφορά τις δομές και τις συμπεριφορές πλοήγησης των τελικών εφαρμογών παγκόσμιου ιστού. Ένα πλήθος μεθόδων και δομοστοιχείων έχουν προταθεί για τη μοντελοποίηση της πλοήγησης. Παραδείγματα τέτοιου είδους αποτελούν τα δομοστοιχεία προσπέλασης (π.χ. ευρετήρια, κατευθυνόμενες περιηγήσεις) της RMM, οι κλάσεις πλοήγησης της OOHDM, το εννοιολογικό μοντέλο πλοήγησης της ARANEUS, καθώς και το μοντέλο πλοήγησης της WebML. Εν τούτοις εκτός από μερικές πρόσφατες προσεγγίσεις, όπως η WebML, οι υπόλοιπες δεν παρέχουν meta-models για την υποστήριξη του καθορισμού της πλοήγησης σε εννοιολογικό επίπεδο. Παρέχουν δηλαδή μόνο μεθοδολογική υποστήριξη στη δημιουργία των δομών πλοήγησης Μοντελοποίηση Διεπαφής Χρήστη Η μοντελοποίηση διεπαφής χρήστη αφορά θέματα σχετικά με τη σύνθεση του περιεχομένου στις ιστοσελίδες. Σχεδόν όλες οι προτεινόμενες μεθοδολογίες εξετάζουν τη μοντελοποίηση διεπαφής χρήστη. Η OOHDM για παράδειγμα χρησιμοποιεί μία εξωτερική προσέγγιση για την περιγραφή των αφηρημένων αντικείμενων των διεπαφών μιας εφαρμογής. Η Araneus χρησιμοποιεί το λογικό μοντέλο δεδομένων ADM για την αναπαράσταση των πραγματικών ιστοσελίδων με μία αφηρημένη περιγραφή. Η Strudel βασίζεται στην template γλώσσα για το σχεδιασμό των σελίδων. Τέλος, προσεγγίσεις όπως η WebML προτείνουν ένα πλήρες σύνολο δομοστοιχείων για την περιγραφή των διεπαφών που εμφανίζονται συχνά σε εφαρμογές μεγάλου όγκου δεδομένων. Τέτοιου είδους διεπαφές μπορεί να είναι για παράδειγμα οι διεπαφές για την παρουσίαση των δεδομένων, για την αγορά ή και την αναζήτηση προϊόντων.

46 Δυστυχώς, εκτός από την WebML, οι υπόλοιπες προσεγγίσεις δεν παρέχουν ξεκάθαρα meta-models, τα οποία επιτρέπουν τον καθορισμό των διεπαφών χρήστη σε εννοιολογικό επίπεδο. Με λίγα λόγια, οι υπόλοιπες προσεγγίσεις μπορούν μόνο να καθοδηγήσουν και να παρέχουν ένα σύνολο οδηγιών για το σχεδιασμό των διεπαφών Μοντελοποίηση Παρουσίασης Οι περισσότερες προσεγγίσεις δεν εξετάζουν πληρως το θέμα της μοντελοποίησης των στυλ παρουσίασης των σελίδων και των layouts. Οι περισσότερες βασίζονται σε εξωτερικές προσεγγίσεις, όπως για παράδειγμα στα style sheets προκειμένου να καθορίσουν το μοντέλο παρουσίασης. Αυτό συμβαίνει κυρίως επειδή δεν αναπαρίστανται όλα τα συστατικά των ιστοσελίδων με μία δηλωτική μορφή κι έτσι δεν είναι δυνατόν να παρέχεται για κάθε συστατικό της εφαρμογής συγκεκριμένη οδηγία παρουσίασης σε εννοιολογικό επίπεδο. Συνεπώς, οι προγραμματιστές του παγκόσμιου ιστού χρειάζεται να κάνουν αρκετή δουλειά χαμηλού επιπέδου προκειμένου να δημιουργήσουν πολύπλοκα στυλ παρουσίασης και layouts για τις ιστοσελίδες. Η HDM-Lite εξετάζει μερικώς τον καθορισμό layouts για τις ιστοσελίδες, χρησιμοποιώντας ένα πλέγμα στο οποίο τοποθετούνται τα υπο-στοιχεία των κόμβων σελίδων Μοντελοποίηση Εξατομίκευσης Οι εφαρμογές παγκόσμιου ιστού παρέχουν πληροφορίες που μπορεί να ενδιαφέρουν ένα πλήθος διαφορετικών ομάδων και χρηστών. Για το λόγο αυτό, στις διάφορες ομάδες χρηστών πρέπει να παρουσιάζονται εξατομικευμένες όψεις της εφαρμογής. Λίγο ή πολύ, όλες οι προτεινόμενες μεθοδολογίες εξετάζουν τη μοντελοποίηση της εξατομίκευσης. Όλες οι μεθοδολογίες διαχωρίζουν ρητά τα μοντέλα του πεδίου δεδομένων από τα μοντέλα όψεων της εφαρμογής. Έτσι, διαφορετικά μοντέλα όψεων της εφαρμογής για διαφορετικές ομάδες χρηστών μπορούν να οριστούν πάνω στο ίδιο μοντέλο δεδομένων. Επιπλέον, η WebML επιτρέπει την παραγωγή εξατομικευμένων όψεων για τους ανεξάρτητους χρήστες με βάση τα προφίλ τους και τις απαιτήσεις εξατομίκευσης κατά το χρόνο εκτέλεσης. Με λίγα λόγια, παρέχεται δυναμική υποστήριξη της εξατομίκευσης. H UML παρόλο που παρέχει γενική υποστήριξη μοντελοποίησης διαφορετικών όψεων της εφαρμογής, εν τούτοις δεν παρέχει ειδική υποστήριξη. Για παράδειγμα, δεν υπάρχει η δυνατότητα ορισμού συνθηκών εξατομίκευσης και ενεργειών προσαρμογής. Προσεγγίσεις, όπως η HDM, η RMM, η OOHDM, η Araneus, και η HDM-Lite δεν παρέχουν ρητή υποστήριξη εξατομίκευσης. Είναι στο χέρι των προγραμματιστών να ασχοληθούν με τη μοντελοποίηση εξατομικευμένων όψεων, χρησιμοποιώντας ad hoc προσεγγίσεις για τη δημιουργία μοντέλων χρήστη και να αναθέσουν τις διαφορετικές όψεις της εφαρμογής στις διαφορετικές ομάδες χρηστών. 2.8 Βιβλιογραφία κεφαλαίου 1. Ceri, S., Fraternali, P. and Matera, M. (2002), Conceptual Modeling of Data-Intensive Web Applications, IEEE Internet Computing, vol. 6, no. 4, pp

47 3 Σχεδιαστικά πρότυπα 3.1 Εισαγωγή Τα τελευταία χρόνια, όπως αναφέρθηκε και στο κεφάλαιο 1, οι εφαρμογές παγκόσμιου ιστού γίνονται ολοένα και πιο πολύπλοκες και υποστηρίζουν ολοένα και περισσότερες υπηρεσίες. Προβλέπεται ότι σε λίγα χρόνια το διαδίκτυο θα έχει τη δυνατότητα να υποστηρίζει και να εκτελεί οποιαδήποτε επιχειρισιακή λειτουργία που σήμερα λαμβάνει χώρα στον προ-ψηφιακό κόσμο. Όσο όμως αυξάνει η πολυπλοκότητα των εφαρμογών παγκόσμιου ιστού, τόσο αυξάνει και η πολυπλοκότητα σχεδιασμού τους. Η ερευνητική κοινότητα προκειμένου να βοηθήσει τους σχεδιαστές να αντιμετωπίσουν τα προβλήματα που δημιουργεί η αύξηση της πολυπλοκότητας των εφαρμογών παγκόσμιου ιστού, τους προτείνει να λαμβάνουν υπόψη τους τις προσπάθειες και τα αποτελέσματα που επιτεύχθηκαν από άλλους σχεδιαστές. Η συλλογή και αξιολόγηση της σχεδιαστικής εμπειρίας άλλων σχεδιαστών μπορεί να αποδειχθεί εξαιρετικά χρήσιμη για την επίλυση συχνά εμφανιζόμενων σχεδιαστικών προβλημάτων. Η χρησιμοποίηση της σχεδιαστικής εμπειρίας άλλων σχεδιαστών συντελεί στη μείωση του κόστους (χρόνος, ανθρώπινο δυναμικό, επένδυση λογισμικού) και στη βελτίωση της ποιότητας σχεδιασμού. Όπως αναφέρεται στο [18], «η επαναχρησιμοποίηση εκμεταλλεύεται τις όποιες προσπάθειες έγιναν σε παλιότερες δουλειές, προκειμένου να μειώσει τον απαιτούμενο κόπο για την επίτευξη μιας νέας δουλειάς». Η λύση που έχει δοθεί από έναν έμπειρο σχεδιαστή σε ένα συγκεκριμένο πρόβλημα πλοήγησης ή συγγραφής κώδικα θα ήταν χρήσιμο να παρέχεται σε έναν όχι και τόσο έμπειρο σχεδιαστή που καλείται να λύσει ένα ανάλογο πρόβλημα. Με τον τρόπο αυτό τον βοηθά να λύσει ευκολότερα και γρηγορότερα το πρόβλημα που έχει. Η μετάδοση της εμπειρίας μεταξύ των προγραμματιστών γίνεται κατά κύριο λόγο με τη χρήση προτύπων. Αντίστοιχα η μετάδοση της εμπειρίας μεταξύ των σχεδιαστών εφαρμογών παγκόσμιου ιστού γίνεται με χρήση των σχεδιαστικών προτύπων. Ένα σχεδιαστικό πρότυπο καταγράφει τη λύση που δίνεται σε ένα πρόβλημα που εμφανίζεται επανειλημμένως κατά τη διαδικασία σχεδιασμού. Η χρήση ενός σχεδιαστικού προτύπου συντελεί όχι μόνο στην τεκμηρίωση της σχεδιαστικής εμπειρίας με απλή και κατανοητή μορφή, αλλά και στην επαναχρησιμοποίηση της ίδιας εμπειρίας αρκετές φορές και σε διαφορετικές εφαρμογές. Στην Εικόνα 21 παρουσιάζεται ο ρόλος των σχεδιαστικών προτύπων στην επαναχρησιμοποίηση της σχεδιαστικής εμπειρίας [5]. Κάθε σχεδιαστής αποκτά την προσωπική του εμπειρία και γνώση κατά την ανάπτυξη εφαρμογών (είτε συστημάτων λογισμικού, είτε εφαρμογών παγκόσμιου ιστού) και στη συνέχεια την εφαρμόζει κατά το σχεδιασμό νέων εφαρμογών. Όσο οι σχεδιαστές σχεδιάζουν και μαθαίνουν από την ανάπτυξη των δικών τους εφαρμογών ή από τις εφαρμογές που έχουν αναπτυχθεί από άλλους, η γνώση τους παραμένει σε αυτούς και δε μεταδίδεται σε άλλους. Σε περίπτωση όμως που οι έμπειροι σχεδιαστές αποφασίσουν να «τοποθετήσουν» τη γνώση τους σε σχεδιαστικά

48 πρότυπα, τότε οποιοσδήποτε σχεδιαστής μπορεί να έχει πρόσβαση στη γνώση τους και να λύσει το πρόβλημά του με λύσεις που δόθηκαν από άλλους. Με την τοποθέτηση της γνώσης σε σχεδιαστικά πρότυπα παρέχεται η δυνατότητα να ταξινομηθούν τα σχεδιαστικά πρότυπα ανάλογα με τα πεδία των εφαρμογών τους (σχεδιαστικά πλαίσια ανάπτυξης ή γλώσσες προτύπων) και να επαναχρησιμοποιηθούν οι σχεδιαστικές λύσεις για την ανάπτυξη νέων εφαρμογών. Η επαναχρησιμοποίηση, η εξαγωγή και εισαγωγή σχεδιαστικών ιδεών και λύσεων γίνονται πολύ πιο εύκολα όταν η γνώση των προγραμματιστών εκφράζεται και μοιράζεται μέσω σχεδιαστικών προτύπων. Τα πρότυπα προωθούν την επικοινωνία μεταξύ των σχεδιαστών παρέχοντας ένα διαμοιραζόμενο λεξιλόγιο [21]. Εικόνα 21: Γενικό Παράδειγμα Επαναχρησιμοποίησης με χρήση Σχεδιαστικών Προτύπων Η ιδέα του σχεδιασμού μιας εφαρμογής με χρήση σχεδιαστικών προτύπων δεν είναι καινούρια στην ερευνητική κοινότητα πληροφοριακών συστημάτων. Οι σχεδιαστές λογισμικού, στις αρχές της δεκαετίας του '90, όρισαν ένα συνόλο σχεδιαστικών προτύπων, προκειμένου να μοιραστούν την προγραμματιστική τους εμπειρία. Ο προγραμματιστής δε χρειάζεται πλέον να προγραμματίσει από την αρχή τμήματα κώδικα ή ακόμα και ολόκληρη την αρχιτεκτονική του λογισμικού. Αντίθετα, έχει πρόσβαση σε μία βιβλιοθήκη, η οποία περιέχει ένα σύνολο σχεδιαστικών λύσεων για τα προβλήματα που εμφανίζονται αρκετά συχνά. Ονομάζοντας κάθε πρότυπο ή μία πολύπλοκη δομή δεδομένων και προάγοντας τα στην κοινότητα των προγραμματιστών, τα σχεδιαστικά πρότυπα γνώρισαν και γνωρίζουν μεγάλη επιτυχία στην τεχνολογία λογισμικού ([10], [11], [16], [21]). Τα τελευταία χρόνια, οι σχεδιαστές και προγραμματιστές του υπερκειμένου, ακολουθώντας το δρόμο που χάραξε η κοινότητα των παραδοσιακών πληροφοριακών συστημάτων, άρχισαν να μοιράζονται την εμπειρία τους, ορίζοντας σχεδιαστικά πρότυπα για το σχεδιασμό του υπερκειμένου. Στη συνέχεια του κεφαλαίου αυτού γίνεται μία γρήγορη ανασκόπηση στην προέλευση των σχεδιαστικών προτύπων και δίνεται ένας πιο τυπικός και επίσημος ορισμός των σχεδιαστικών προτύπων για τον παγκόσμιο ιστό. Επιπλέον, παρουσιάζονται τα οφέλη χρήσης σχεδιαστικών προτύπων τόσο από άπειρους όσο και από έμπειρους σχεδιαστές. Στα πλαίσια του κεφαλαίου αυτού γίνεται

49 επίσης μία αναφορά των προτύπων δημοσίευσης και διαχείρισης περιεχομένου που έχουν οριστεί στη WebML. Για το σχεδιασμό πολύπλοκων εφαρμογών παγκόσμιου ιστού, ναι μεν το είδος επαναχρησιμοποίησης που προσφέρουν τα σχεδιαστικά πρότυπα παγκόσμιου ιστού είναι πολύτιμα, εν τούτοις απαιτείται η επαναχρησιμοποίηση όσο το δυνατόν μεγαλύτερων σχεδιαστικών δομών. Για το λόγο αυτό γίνεται αναφορά και παρουσίαση της επαναχρησιμοποίησης που υποστηρίζεται από τη χρήση σχεδιαστικών πλαισίων ανάπτυξης εφαρμογών παγκόσμιου ιστού. 3.2 Η προέλευση των σχεδιαστικών προτύπων Πρώτος ο αυστριακός αρχιτέκτονας Christopher Alexander το 1997, όρισε στο βιβλίο του «A pattern language: Towns, Buildings, Constructions» [1], την έννοια των σχεδιαστικών προτύπων. Το βιβλίο αυτό προορίζεται, φαινομενικά τουλάχιστον, για την αρχιτεκτονική. Ωστόσο έχει εφαρμογή και σε άλλα πεδία, συμπεριλαμβανομένου και του πεδίου ανάπτυξης λογισμικού. Ο Alexander υποστηρίζει ότι οι τρέχουσες αρχιτεκτονικές μέθοδοι: οδηγούν σε προϊόντα, τα οποία δεν καλύπτουν τις απαιτήσεις των χρηστών τους δεν εκπληρώνουν τον κύριο σκοπό όλων των σχεδιαστικών και μηχανικών προσπαθειών: τη βελτίωση της ανθρώπινης κατάστασης. Ο Alexander περιγράφει μερικές διαχρονικές σχεδιαστικές ιδέες για τη βελτίωση των αρχιτεκτονικών μεθόδων. Σύμφωνα με τον Alexander [1]: «ένα πρότυπο περιγράφει ένα πρόβλημα, το οποίο εμφανίζεται επανειλημμένως στο πεδίο μας και στη συνέχεια περιγράφει τη λύση του προβλήματος αυτού, με τέτοιο τρόπο ώστε η λύση αυτή να μπορεί να χρησιμοποιηθεί ένα εκατομμύριο φορές». Το 1987 οι Ward Cunningham και Kent Back, ενώ σχεδίαζαν διεπαφές χρήστη, με τη γλώσσα προγραμματισμού Smalltalk, αποφάσισαν να «χρησιμοποιήσουν» κάποιες από τις ιδέες του Alexander προκειμένου να καθορίσουν έναν μικρό κατάλογο πέντε προτύπων για αρχάριους προγραμματιστές. Την ίδια χρονιά παρουσίασαν την ιδέα των προτύπων λογισμικού σε μία δημοσίευση με τίτλο «Using Pattern Languages for Object-Oriented Programms» [11]. Αμέσως μετά, ο Jim Coplien όρισε διάφορα πρότυπα για τη γλώσσα προγραμματισμού C++, τα οποία και δημοσίευσε το 1991 [10]. Στις αρχές της δεκαετίας του '90, οι δημοσιεύσεις αυτές αποτέλεσαν θέμα συζήτησης σχετικά με τη σχετικότητα, τη χρησιμότητα και τον ορισμό προτύπων για την ανάπτυξη λογισμικού. Το 1993 δημιουργήθηκε το Hillside Group 1, μία από τις σημαντικότερες κοινότητες προτύπων. Το βασικό ερευνητικό ενδιαφέρον της κοινότητας αυτής είναι η ανάπτυξη και προώθηση σχεδιαστικών προτύπων μεταξύ των προγραμματιστών. 1 Η ιστοσελίδα της Hillside Group κοινότητας είναι διαθέσιμη στο

50 Η καθοριστική επιτυχία των προτύπων επικυρώθηκε με τη δημοσίευση του βιβλίου: «Design Patterns: Elements of Reusable Object-Oriented Software» των Gamma, Helm, Johnson και Vlissides [12]. Τα τελευταία χρόνια, προγραμματιστές, επαγγελματίες και ερευνητές ασχολούνται ολοένα και περισσότερο με ζητήματα που αφορούν τα σχεδιαστικά πρότυπα. Επιπλέον, πολλά συνέδρια διοργανώθηκαν και διοργανώνονται με κύριο θέμα τα σχεδιαστικά πρότυπα. Δεδομένου το ότι η λέξη «πρότυπο» έχει μία πολύπλευρη έννοια, διάφορες απαντήσεις μπορούν να δοθούν στην ερώτηση: «τι είναι ένα σχεδιαστικό πρότυπο λογισμικού;». Πολύ γενικά, ένα σχεδιαστικό πρότυπο λογισμικού μπορεί να οριστεί ως μία μορφή τεκμηρίωσης της επίλυσης ενός προβλήματος τεχνολογίας λογισμικού [3] ή η περιγραφή πρακτικών λύσεων σε σχεδιαστικά προβλήματα. Επιπλέον, ένα πρότυπο έχει τη δυνατότητα να αναγνωρίσει καλές σχεδιαστικές δομές, που επαναλαμβάνονται στην πράξη, και να παρουσιάσει πώς και πότε πρέπει κάποιος προγραμματιστής να τις εφαρμόσει. Ένας σύντομος, αλλά ακριβής ορισμός του προτύπου, ο οποίος αντικατοπτρίζει τη χρήση του στην κοινότητα της τεχνολογίας λογισμικού είναι ο ορισμός που δίνεται στο[2]. Σύμφωνα με τον ορισμό αυτό, ένα πρότυπο ενσωματώνει τη γνώση και την εμπειρία των έμπειρων σχεδιαστών και τις προωθεί σε λιγότερο έμπειρους ή και αρχάριους προγραμματιστές. Τα τελευταία χρόνια, η ερευνητική κοινότητα των υπερμέσων και του παγκόσμιου ιστού άρχισε να χρησιμοποιεί σχεδιαστικά πρότυπα για την ανάπτυξη εφαρμογών παγκόσμιου ιστού. Στο πεδίο των εφαρμογών παγκόσμιου ιστού, τα πρότυπα χρησιμοποιούνται με τον ίδιο τρόπο που χρησιμοποιούνται και στην ανάπτυξη των παραδοσιακών πληροφοριακών συστημάτων. 3.3 Παράδειγμα χρήσης σχεδιαστικών προτύπων παγκόσμιου ιστού Στο υποκεφάλαιο αυτό θα προσπαθήσουμε να εξηγήσουμε τη διαφορά μεταξύ του σχεδιασμού μιας εφαρμογής παγκόσμιου ιστού με χρήση σχεδιαστικών προτύπων και του σχεδιασμού της χωρίς τη χρήση σχεδιαστικών προτύπων. Έστω ότι έχουμε τις εξής περιπτώσεις: 1. Ένα μεγάλο web project ανατίθεται σε μία έμπειρη εταιρεία σχεδιασμού εφαρμογών παγκόσμιου ιστού. Η εταιρεία αυτή έχει αναπτύξει πολλούς δικτυακούς τόπους και εφαρμογές παγκόσμιου ιστού διαφόρων πεδίων (ιστοτόπους παροχής πληροφοριών, αλληλεπίδρασης με το χρήστη, παρουσίασης εταιριών). 2. Το ίδιο web project ανατίθεται σε μία νεοσυσταθείσα ομάδα σχεδιαστών του παγκόσμιου ιστού. Για τη συγκεκριμένη ομάδα, αυτό το web project είναι μία από τις πρώτες σημαντικές δουλειές που καλούνται να φέρουν εις πέρας. Υποθέτουμε ότι και οι δύο ομάδες θα περάσουν από τα διαφορετικά στάδια ανάπτυξης εφαρμογών (Συλλογή απαιτήσεων, Σχεδιασμός βάσης δεδομένων, Σχεδιασμός πλοήγησης, Σχεδιασμός Λειτουργικότητας, Σχεδιασμός διεπαφών).

51 Αυτό που μας ενδιαφέρει και θέλουμε να μελετήσουμε είναι η προσέγιση και η μεθοδολογία που θα ακολουθήσουν σε περίπτωση που παρουσιαστεί κάποιο σχεδιαστικό πρόβλημα. Η πεπειραμένη ομάδα σχεδιασμού εφαρμογών, κατά πάσα πιθανότητα έχει αναπτύξει και καθιερώσει εσωτερικές διαδικασίες για την αντιμετώπιση προβλημάτων σχετικών με την πλοήγηση, τη δόμηση δεδομένων, το σχεδιασμό διεπαφής και τις διάφορες λειτουργικότητες μιας εφαρμογής παγκόσμιου ιστού. Οι προγραμματιστές της ομάδας αυτής χρησιμοποιούν προηγούμενη εμπειρία προκειμένου να δημιουργήσουν μία «εξατομικευμένη λύση» για κάθε μία από τις απαιτήσεις του πελάτη. Τέτοιες διαδικασίες σχεδιασμού (συχνά αποκαλούμενες ως «εσωτερικά σχεδιαστικά πρότυπα») πιθανόν να αποδειχθούν επικίνδυνες. Τείνουν να αποκλείσουν τη σχεδιαστική «βιβλιοθήκη» της εταιρείας από καινοτομίες και καλές λύσεις που προτείνονται και υιοθετούνται από άλλους σχεδιαστές του παγκόσμιου ιστού. Στις περισσότερες περιπτώσεις, η εταιρεία δε δέχεται την «εισαγωγή» νέων προτύπων και την επαναχρησιμοποίηση τους. Οι προγραμματιστές της ομάδας απλά επανεφαρμόζουν προηγούμενες σχεδιαστικές στρατηγικές, ακόμα και στην περίπτωση που οι στρατηγικές αυτές δεν επιλύουν πλήρως το πρόβλημα. Αργά ή γρήγορα, θα διαφανεί η έλλειψή τους ως προς το συγκεκριμένο πρόβλημα και θα καταστούν προβληματικές. Για το λόγο αυτό, οι προγραμματιστές θα πρέπει να ψάξουν να βρουν και να υιοθετήσουν σχεδιαστικά πρότυπα που έχουν προταθεί από άλλους σχεδιαστές για τη λύση του συγκεκριμένου προβλήματος. Η εταιρεία πρέπει να είναι πρόθυμη να υιοθετήσει καινοτόμες στρατηγικές κωδικοποιημένες, κατάλληλα σε σχεδιαστικά πρότυπα. Με την τακτική αυτή η ομάδα κερδίζει όχι μόνο σε χρόνο, αλλά υπάρχει και αισθητή βελτίωση της ποιότητας σχεδιασμού της εφαρμογής. Οι διαμοιραζόμενες σχεδιαστικές στρατηγικές, ακόμα και σε πολύ πεπειραμένες ομάδες σχεδιασμού εφαρμογών παγκόσμιου ιστού, είναι μία ανάσα καινοτομίας και δημιουργικότητας. Η μη έμπειρη ομάδα πιθανόν αντιμετωπίζει κάποια σχεδιαστικά προβλήματα για πρώτη φορά. Μια συχνά εφανιζόμενη δυσκολία είναι ο σωστός προσδιορισμός του προβλήματος που πρέπει να λυθεί. Για παράδειγμα ένας άπειρος σχεδιαστής μπορεί να συγχύσει μια απαίτηση πλοήγησης με μια απαίτηση διεπαφής, η οποία με τη σειρά της, προκειμένου να λυθεί, μπορεί να προκαλέσει άλλα προβλήματα διεπαφών. Όταν οι νέοι σχεδιαστές αντιμετωπίζουν ένα πρόβλημα, τους είναι δύσκολο να προσδιορίσουν το κατάλληλο επίπεδο αφαίρεσης και να απομονώσουν το πρόβλημα από αλληλοσυσχετιζόμενα ζητήματα. Επιπλέον, λόγω του ότι η σχεδιαστική τους εμπειρία είναι αρκετά περιορισμένη, ορίζουν αντιφατικές ή τετριμμένες λύσεις, οι όποιες αργά ή γρήγορα θα αποκαλύψουν τις αδυναμίες τους. Αν η συγκεκριμένη ομάδα δε χρησιμοποιήσει πρότυπα, θα απαιτηθεί περισσότερος κόπος και η τελική εφαρμογή πολύ πιθανόν να μην είναι τόσο αποδοτική και ποιοτική. Η προσπάθεια επίλυσης του σχεδιαστικού προβλήματος από την αρχή και όχι με χρήση σχεδιαστικών προτύπων κοστίζει πολύ τόσο από άποψη χρόνου, όσο και από άποψη ανθρώπινου δυναμικού. Επιπλέον, μέσω της αναζήτησης, εύρεσης και υιοθέτησης σχεδιαστικής εμπειρίας άλλων προγραμματιστών, η ομάδα θα μπορεί να είναι συνεχώς ενήμερη όσον αφορά τις νέες αλλαγές στο σχεδιασμό του παγκόσμιου ιστού και της τεχνολογίας γενικότερα.

52 Η λιγότερο πεπειραμένη ομάδα έχει ανάγκη να μάθει από έμπειρους σχεδιαστές και να ενσωματώσει εμπειρία άλλων στην εφαρμογή της. Τα σχεδιαστικά πρότυπα του παγκόσμιου ιστού πρέπει να «βοηθήσουν» αυτήν την έλλειψη εμπειρίας με την παροχή λύσεων που υιοθετούνται σε περίπτωση κρίσιμων σχεδιαστικών αποφάσεων. Προκειμένου να παράγουν ένα προϊόν που να ανταποκρίνεται επαρκώς στις απαιτήσεις του πελάτη στα όρια του χρόνου και του προϋπολογισμού, οι άπειροι σχεδιαστές πρέπει να έχουν εύκολη πρόσβαση σε μία κατάλληλα ευρετηριοποιημένη βιβλιοθήκη σχεδιαστικών προτύπων. Οι δύο αυτές περιπτώσεις φανερώνουν την ανάγκη χρήσης σχεδιαστικών προτύπων. Τόσο η άπειρη όμαδα, όσο και η έμπειρη ωφελούνται από τη χρήση τους. Για το σχεδιασμό των εφαρμογών θα γλιτώσουν κόπο και χρόνο. Επίσης, οι εφαρμογές που πρόκειται να υλοποιηθούν θα είναι πολύ πιο αποδοτικές και πιοτικές. 3.4 Οφέλη και Πιθανά Προβλήματα της χρήσης σχεδιαστικών προτύπων παγκόσμιου ιστού Τα κύρια οφέλη υιοθέτησης σχεδιαστικών προτύπων παγκόσμιου ιστού είναι τα ακόλουθα: Ποιότητα Σχεδιασμού: Έστω ότι έχουμε στη διάθεσή μας μία μεγάλη συλλογή από «καλά» και ελεγμένα σχεδιαστικά πρότυπα. Ένας έμπειρος σχεδιαστής αναμένεται ότι θα παράγει ποιοτικότερο σχεδιασμό της εφαρμογής αν επαναχρησιμοποιήσει πρότυπα, παρά εάν ξεκινήσει το σχεδιασμό από την αρχή. Χρόνος και κόστος Σχεδιασμού: Για παρόμοιους λόγους, ένας άπειρος σχεδιαστής χρησιμοποιώντας μία βιβλιοθήκη προτύπων αναμένεται να χρειαστεί λιγότερο χρόνο και σε χαμηλότερο κόστος προκειμένου να ολοκληρώσει το σχεδιασμό της εφαρμογής παγκόσμιου ιστού. Χρόνος και κόστος Υλοποίησης: Οι στρατηγικές υλοποίησης για διαδεδομένα σχεδιαστικά πρότυπα είναι ευρέως διαθέσιμες. Αναμένεται ότι η υλοποίηση μιας εφαρμογής που έχει σχεδιαστεί συνθέτοντας διάφορα σχεδιαστικά πρότυπα θα είναι ευκολότερη από την υλοποίηση μιας εφαρμογής που σχεδιάζεται εξ ολοκλήρου από την αρχή. Επιπλέον, στο μέλλον αναμένεται ότι περιβάλλοντα υλοποίησης, όπως το Jweb[4], το Autoweb [19] και το Araneus [15] θα παρέχουν αυτόματη υποστήριξη για έναν αριθμό διαφορετικών σχεδιαστικών προτύπων. Βελτίωση Επικοινωνίας: Η χρήση σχεδιαστικών προτύπων βελτιώνει την επικοινωνία μεταξύ των μελών μιας σχεδιαστικής ομάδας, παρέχοντας ένα σαφές διαμοιραζόμενο λεξιλόγιο. Το επίπεδο επικοινωνίας μεταξύ των μελών είναι πιο αφαιρετικό. Για παράδειγμα, οι σχεδιαστές αντί να πουν: «Πρέπει να δημιουργηθεί ένα ευρετήριο για όλα τα έργα τέχνης του ίδιου θέματος και να δοθεί στο χρήστη η δυνατότητα να πλοηγηθεί σε αυτά», μπορούν απλά να πούνε «Πρέπει να δημιουργηθεί το περιβάλλον πλοήγησης ΈργοΤέχνης-Ανά-Θέμα» 0. Από την άλλη μεριά, η χρήση σχεδιαστικών προτύπων έχει και μειονεκτήματα που μπορεί να αφορούν τόσο την ποιότητα όσο και τη χρήση τους.

53 Ας εξετάσουμε αρχικά την ποιότητα των σχεδιαστικών προτύπων. Τα σχεδιαστικά πρότυπα, όπως προαναφέρθηκε, καταγράφουν τη σχεδιαστική εμπειρία κάποιου σχεδιαστή. Ο σχεδιαστής αυτός είναι πιθανόν να κάνει τόσο σωστές όσο και λανθασμένες επιλογές σχεδιαστικών προτύπων. Για το λόγο αυτό, κάποια σχεδιαστικά πρότυπα μπορεί να μην παρέχουν τη βέλτιστη λύση σε ένα σχεδιαστικό πρόβλημα. Ποιος όμως αποφασίζει για το αν ένα σχεδιαστικό πρότυπο αποτελεί λύση σε ένα πρόβλημα; Είναι δουλειά του κάθε σχεδιαστή να επιλέξει τα πρότυπα εκείνα που του φαίνονται πιο κατάλληλα για το σχεδιασμό του. Κανείς όμως δεν του εγγυάται την ορθότητα και τα πρότυπα ποιότητας των προτύπων που επιλέγει. Επομένως, οι λιγότερο έμπειροι σχεδιαστές διατρέχουν τον κίνδυνο υιοθέτησης ενός προτύπου που δε δίνει μία καλή λύση. Τέτοιου είδους πρότυπα θεωρούνται «αντι-πρότυπα» (anti-patterns). Η χρήση σχεδιαστικών προτύπων μπορεί να εγκυμονεί άλλου είδους κινδύνους. Οι σχεδιαστές πρέπει να έχουν υπόψη τους ότι η εφαρμογή ενός σχεδιαστικού προτύπου προκειμένου να λύσουν ένα πρόβλημα διαφορετικό από το πρόβλημα για το οποίο έχει οριστεί το συγκεκριμένο πρότυπο μπορεί να προκαλέσει προβλήματα στο σχεδιασμό της εφαρμογής. Αν ο σχεδιαστής συνδυάζει διάφορα πρότυπα για το σχεδιασμό της εφαρμογής, πρέπει να είναι σε θέση να δικαιολογήσει κάθε μία από τις επιλογές και αποφάσεις που πήρε κατά τη διαδικασία σχεδιασμού. Σε αντίθετη περίπτωση, η εφαρμογή σχεδιαστικών προτύπων ναι μεν μπορεί να επιτύχει τη μείωση του απαιτούμενου κόστους και χρόνου ανάπτυξης της εφαρμογής, αλλά δε σημαίνει ότι επιλύει πλήρως και τα προβλήματα που εμφανίστηκαν στις προδιαγραφές των απαιτήσεων. 3.5 Ορισμός σχεδιαστικών προτύπων παγκόσμιου ιστού Ένα σχεδιαστικό πρότυπο (ιδιαίτερα όταν χρησιμοποιείται για ένα γρήγορα μεταβαλλόμενο περιβάλλον όπως είναι ο παγκόσμιος ιστός) πρέπει να γίνεται εύκολα κατανοητό και να μπορεί να χρησιμοποιηθεί ευρέως. Η επικοινωνιακή αυτή απαίτηση ικανοποιείται μέσω ενός απλού σχήματος περιγραφής. Η ερευνητική κοινότητα έχει προτείνει ένα μεγάλο αριθμό παρόμοιων εκδόσεων απλουστευμένων σχημάτων για την περιγραφή των σχεδιαστικών προτύπων του παγκόσμιου ιστού ([13], [14], [17], [18], [20]). Από τη συγκριτική μελέτη των εκδόσεων αυτών προοκύπτει ότι για την περιγραφή των σχεδιαστικών προτύπων του παγκόσμιου ιστού απαιτούνται τουλάχιστον τα ακόλουθα στοιχεία: Το όνομα του. Το όνομα που δίνεται στο πρότυπο πρέπει να είναι ένα μοναδικό αναγνωριστικό. Ο ορισμός του προβλήματος που στοχεύει να λύσει. Η λύση ή ένα σύνολο πιθανών λύσεων. Σύμφωνα με το Alexandrian σχήμα, η αιτιολόγηση και τεκμηρίωση του επιλεχθέντος προτύπου τοποθετείται σε αυτή την εγγραφή. Καλό είναι να επισημαίνονται και οι διαφορές παραλλαγές του προτύπου.

54 Μελέτη των πλεονεκτημάτων και των μειονεκτημάτων κάθε μιας από τις προτεινόμενες λύσεις. Σε μία εξαντλητική μελέτη καλό είναι να εξηγούνται και οι διάφοροι περιορισμοί που πρέπει να λαμβάνει υπόψη ο σχεδιαστής. Παραδείγματα εφαρμογής του προτύπου. Οι σχεδιαστές καταλαβαίνουν ευκολότερα και καλύτερα το πως και που μπορεί να εφαρμοστεί το συγκεκριμένο πρότυπο, αν υπάρχουν παραδείγματα εφαρμογής του σε υπάρχουσες εφαρμογές παγκόσμιου ιστού. Αναγνώριση σχετικών προτύπων. Ένα πρότυπο μπορεί να αποτελεί ειδίκευση ή γενίκευση ενός άλλου. Δύο ή περισσότερα πρότυπα μπορούν να χρησιμοποιούνται επανειλλημένως μαζί και να συνδυάζονται. Όταν ορίζονται πρότυπα που συνδέονται με κάποια άλλα, πρέπει να δηλώνεται σαφέστατα και η σχέση που τα συνδέει. Η ανάγκη ύπαρξης και αναγνώρισης σχεδιαστικών προτύπων είναι εμφανέστατη, αν αναλογιστεί κανείς ότι όλο και περισσότεροι ανθρώποι, ειδικά μη έμπειροι σχεδιαστές ή και άτομα που δεν έχουν σχέση με το λογισμικό πειραματίζονται με το σχεδιασμό ιστοτόπων και εφαρμογών παγκόσμιου ιστού. Στο σημείο αυτό πρέπει να αναφερθεί ότι ένα οποιοδήποτε σχεδιαστικό τεχνητό προϊόν δεν πρέπει να θεωρηθεί ότι αποτελεί και σχεδιαστικό πρότυπο. 3.6 Ταξινόμηση Σχεδιαστικών Προτύπων Παγκόσμιου Ιστού Η σχεδίαση εφαρμογών παγκόσμιου ιστού αποτελείται από μία σειρά αλληλένδετων σχεδιαστικών περιοχών. Ανάλογα με τη σχεδιαστική περιοχή του προβλήματος που καλούνται να λύσουν τα πρότυπα, αναγνωρίζονται και οι αντίστοιχες κατηγορίες προτύπων. Συγκεκριμένα, οι σχεδιαστές προκειμένου να σχεδιάσουν επιτυχώς μια εφαρμογή συνήθως ακολουθούν τα παρακάτω στάδια: Ανάλυση Απαιτήσεων Στη φάση αυτή, ο project manager και οι σχεδιαστές καλούνται να αναλύσουν τις απαιτήσεις και ανάγκες του πελάτη. Ορίζουν έναν πρώτο εννοιολογικό σχεδιασμό της εφαρμογής. Στα πλαίσια αυτής της φάσης, ορίζουν τα προφίλ των χρηστών, την πληροφορία και τις διάφορες λειτουργίες της εφαρμογής. Στη φάση αυτή αναγνωρίζονται και χρησιμοποιούνται τα πρότυπα ανάλυσης απαιτήσεων. Δόμηση Δεδομένων Σε αυτό το στάδιο αναγνωρίζεται ο τύπος των αντικειμένων που θα ενσωματώσουν το περιεχόμενο της εφαρμογής. Εδώ αναγνωρίζονται και χρησιμοποιούνται τα σχεδιαστικά πρότυπα δόμησης δεδομένων. Σχεδιασμός Πλοήγησης Ο σχεδιαστής ορίζει τους τρόπους με τους οποίους ο τελικός χρήστης θα πλοηγείται ανάμεσα στους διάφορους τύπους αντικειμένων που αναγνωρίστηκαν στην προηγούμενη φάση. Επίσης, ορίζει και μονοπάτια πλοήγησης, τα οποία θα επιτρέπουν την πρόσβαση στα διάφορα αντικείμενα. Στη φάση αυτή αναγνωρίζονται και χρησιμοποιούνται τα σχεδιαστικά πρότυπα πλοήγησης.

55 Σχεδιασμός Λειτουργικότητας Εδώ καθορίζονται οι διάφορες λειτουργίες και υπηρεσίες της εφαρμογής. Συγκεκριμένα ορίζονται όλες οι λειτουργίες που συνδέονται με τα αναγνωρισμένα αντικείμενα. Στη φάση αυτή αναγνωρίζονται και χρησιμοποιούνται τα σχεδιαστικά πρότυπα λειτουργικότητας. Σχεδιασμός Διεπαφής Ο σχεδιαστής στο στάδιο αυτό ορίζει τη διεπαφή για την οπτική παρουσίαση των αντικειμένων. Στόχος του σταδίου αυτού είναι η παρουσίαση των αντικειμένων στο χρήστη με εύχρηστο και αποδοτικό τρόπο. Στη φάση αυτή αναγνωρίζονται και χρησιμοποιούνται τα σχεδιαστικά πρότυπα διεπαφής. 3.7 Πρότυπα στη WebML Στη WebML, υπάρχουν αρκετά πρότυπα, που λύνουν προβλήματα τα οποία συναντώνται κατά την εννοιολογική μοντελοποίηση του παγκόσμιου ιστού. Ένα πρότυπο αποτελείται από δύο συστατικά μέρη: την προδιαγραφή πυρήνα (core spescification), η οποία δίνει το αμετάβλητο κομμάτι του προτύπου, δηλαδή από ποιες δομικές μονάδες αποτελείται πάντα και τις παραλλαγές των προτύπων, οι οποίες επεκτείνουν την προδιαγραφή πυρήνα με όλες τις έγκυρες μορφές από τις οποίες μπορεί να αρχίσει (μεταβλητές έναρξης) ή στις οποίες μπορεί να τερματίσει το πρότυπο (μεταβλητές λήξης). Οι μεταβλητές έναρξης περιγράφουν ποιες μονάδες μπορούν να χρησιμοποιηθούν για να μεταφέρουν το πλαίσιο στη βασική σύνθεση του προτύπου. Αντίθετα, οι μεταβλητές λήξης περιγράφουν τον τρόπο με τον οποίο η πληροφορία που παράγεται από τη βασική σύνθεση του προτύπου μεταφέρεται στις επόμενες συνθέσεις του υπερκειμένου. Συγκεκριμένα, στη WebML έχουν αναγνωριστεί και οριστεί πρότυπα τόσο για το σχεδιασμό των δεδομένων, όσο και για το σχεδιασμό του υπερκειμένου (πρότυπα δημοσίευσης και διαχείρισης περιεχομένου). Στη συνέχεια γίνεται μία σύντομη αναφορά στα πρότυπα σχεδιασμού υπερκειμένου [4] Πρότυπα Δημοσίευσης Περιεχομένου Η οργάνωση του περιεχομένου στις web σελίδες τυπικά ακολουθεί κάποια προκαθορισμένα πρότυπα, τα οποία εμφανίζονται συχνά στις πραγματικές εφαρμογές. Η τυπική διαμόρφωση ενός δομημένου υπερκειμένου εναλλάσσει data και multidata units, προκειμένου να παρουσιάσει πληροφορίες για τα διάφορα αντικείμενα, με χρήση δομοστοιχείων που υποστηρίζουν την πλοήγηση από ένα αντικείμενο σε ένα άλλο. Στη συνέχεια ακολουθεί μία σύντομη παρουσίαση των πιο αντιπροσωπευτικών παραδειγμάτων ακολουθιών πλοήγησης, όπου αποδεικνύεται ότι οι διάφορες WebML δομικές μονάδες μπορούν να οργανωθούν με πολλούς τρόπους, για να περιγράψουν μια πληθώρα καταστάσεων.

56 Cascaded Index πρότυπο Το cascaded index είναι μία ακολουθία από index units που ορίζονται με βάση διακριτές οντότητες, έτσι ώστε όταν επιλέξουμε ένα αντικείμενο από το ένα index unit μεταφερόμαστε σε ένα άλλο index unit, το οποίο περιέχει μια λίστα αντικειμένων που σχετίζονται με το αντικείμενο που επιλέχθηκε αρχικά μέσω μιας σχέσης. Στο τέλος, παρουσιάζεται ένα μόνο αντικείμενο σε ένα data unit, ή πολλά αντικείμενα σε ένα multidata unit. Η Εικόνα 22 δείχνει ένα cascaded index πρότυπο, το οποίο χρησιμοποιείται για την πλοήγηση από ένα σύνολο φοιτητών σε ένα μάθημα ενός συγκεκριμένου φοιτητή. Το πρώτο ευρετήριο (Ευρετήριο φοιτητών), παρουσιάζει όλα τα αντικείμενα της οντότητας Φοιτητής. Το δεύτερο (Ευρετήριο Μαθημάτων) δείχνει τα αντικείμενα της οντότητας Μάθημα, που σχετίζονται με το φοιτητή που επιλέχθηκε στο πρώτο ευρετήριο, δηλαδή δείχνει τα μαθήματα που έχει επιλέξει ο συγκεκριμένος φοιτητής. Τέλος, το data unit LessonInfo δείχνει τις λεπτομέρειες του μαθήματος, που επιλέχθηκε στη δεύτερη λίστα. Εικόνα 22: cascaded index πρότυπο Αυτό που περιγράψαμε ήταν η προδιαγραφή πυρήνα για το συγκεκριμένο πρότυπο. Στην Εικόνα 23 μπορούμε να δούμε και μία παραλλαγή του, όπου μεταξύ των index units παρεμβάλλονται και data units. Αυτή η παραλλαγή επιτρέπει την παρουσίαση κάποιων χαρακτηριστικών γνωρισμάτων του αντικειμένου που επιλέγεται στο κάθε βήμα. Εικόνα 23: παραλλαγή του cascaded index πρότυπο με data units να παρεμβάλλονται μεταξύ των index units. Filtered Index πρότυπο Ένα filtered index είναι μία ακολουθία, που αποτελείται από ένα entry unit ακολουούμενο από ένα index unit και τα δύο ορισμένα στην ίδια οντότητα. Το σύνολο των αντικειμένων που εμφανίζονται στο index unit περιορίζεται από έναν

57 επιλογέα που βασίζεται στις τιμές που έχουν εισαχθεί από το χρήστη στο entry unit. Η χρησιμότητα αυτού του προτύπου είναι μία επιλογή δύο βημάτων. Πρώτα, ο χρήστης εισάγει κάποιες τιμές-κλειδιά στα πεδία αναζήτησης και τα αντικείμενα που ταιριάζουν στις τιμές αυτές εμφανίζονται στο index unit. Στη συνέχεια ο χρήστης μπορεί να επιλέξει το επιθυμητό αντικείμενο, το οποίο εμφανίζεται σε ένα data unit. Η Εικόνα 24 δείχνει ένα παράδειγμα ενός filtered index. Το entry unit επιτρέπει στο χρήστη να εισάγει το έτος και το επώνυμο του φοιτητή που ψάχνει. Ο σύνδεσμος που οδηγεί από το entry unit στο index unit μεταφέρει τις τιμές που συμπλήρωσε ο χρήστης, οι οποίες χρησιμοποιούνται σαν επιλογέας για την ανάκτηση μόνο των φοιτητών που έχουν το συγκεκριμένο επίθετο και έτος. Αν σε κάποιο πεδίο δε δοθεί τιμή τότε αυτή η συνθήκη αγνοείται και η επιλογή γίνεται μόνο με βάση τις τιμές που έχουν δοθεί. Εικόνα 24: filtered index πρότυπο Filtered Scrolled Index πρότυπο Το filtered scrolled index αποτελείται από ένα entry unit και ένα scroller unit, το οποίο συνδέεται με έναν αυτόματο σύνδεσμο με ένα index unit. Συνήθως χρησιμοποιείται από μηχανές αναζήτησης, οι οποίες δέχονται μία ακολουθία λέξεων-κλειδιών και μετά παρουσιάζουν τα αποτελέσματα της αναζήτησης με scrolling εντολές ώστε ο χρήστης να μην τα βλέπει όλα μαζί αλλά διαιρεμένα σε σελίδες. Η Εικόνα 25 δείχνει ένα παράδειγμα ενός filtered scrolled index για την οντότητα Φοιτητής. Στο παράδειγμα αυτό ο χρήστης εισάγει το έτος και το επώνυμο στο entry unit και ο σύνδεσμος μεταφέρει τις πληροφορίες αυτές στο scroller unit, το οποίο ανακτά όλους τους φοιτητές με τα στοιχεία αυτά. Ύστερα, ένα index unit εμφανίζει μία ομάδα φοιτητών και ο χρήστης μπορεί χρησιμοποιώντας τις scrolling εντολές να προχωρήσει στην πρώτη, την τελευταία, την προηγούμενη και την επόμενη ομάδα φοιτητών. Ο σύνδεσμος μεταξύ του scroller unit και του index unit είναι αυτόματος, έτσι ώστε ο χρήστης μόλις εισάγει τις τιμές να εμφανίζεται κάποια ομάδα φοιτητών με ευρετικά κριτήρια (για παράδειγμα η πρώτη).

58 Εικόνα 25: filtered scrolled index πρότυπο Πρότυπο κατευθυνόμενης Περιήγησης (Guided Tour) Το guided tour είναι ένα πρότυπο που χρησιμοποιείται για να παρουσιάσει τα αντικείμενα μιας ακολουθίας ένα προς ένα. Το πρότυπο αποτελείται από ένα scroller unit με παράγοντα ομαδοποίησης ίσο με 1 (δηλαδή δείχνει ένα αντικείμενο με κάθε scrolling εντολή), το οποίο συνδέεται μέσω ενός αυτόματου συνδέσμου με ένα data unit. Όταν προσπελαστεί για πρώτη φορά η σελίδα, λόγω της αυτόματης πλοήγησης στο data unit εμφανίζεται το πρώτο αντικείμενο του scroller unit. Στη συνέχεια ο χρήστης έχει τη δυνατότητα χρησιμοποιώντας τις εντολές πρώτο, τελευταίο, επόμενο και προηγούμενο, να δει τα διάφορα αντικείμενα της ακολουθίας. Η Εικόνα 26 δείχνει ένα παράδειγμα ενός προτύπου κατευθυνόμενης περιήγησης στα μαθήματα ενός συγκεκριμένου φοιτητή. Στο παράδειγμα αυτό, στην περιήγηση εμφανίζονται όλα τα μαθήματα του συγγραφέα. Γενικά, στον επιλογέα του scroller unit μπορούν να τοποθετηθούν πιο πολύπλοκες συνθήκες. Για παράδειγμα, ο σχεδιαστής μπορεί να ορίσει να εμφανίζονται μόνο τα μαθήματα του φοιτητή που επέλεξε κάποια συγκεκριμένη χρονιά. Εικόνα 26: guided tour πρότυπο Indexed Guided Tour πρότυπο Το πρότυπο indexed guided tour είναι μία ακολουθία και αποτελείται από ένα index unit και ένα scroller unit που και τα δύο συνδέονται με το ίδιο data unit. Χρησιμοποιείται για να παρουσιάσει τα αντικείμενα με τρόπο παρόμοιο με ένα guided tour πρότυπο. Η διαφορά είναι ότι το πρώτο αντικείμενο που προσπελαύνεται επιλέγεται μέσω ενός ευρετηρίου, επομένως ο χρήστης μπορεί να μεταβεί στη μέση της ακολουθίας των αντικειμένων και έπειτα χρησιμοποιώντας τις scrolling εντολές να επιλέξει και άλλα αντικείμενα. Η Εικόνα 27 δείχνει ένα

59 παράδειγμα του indexed guided tour και για την καλύτερη κατανόηση της λειτουργικότητάς του φαίνεται και μια πιθανή αναπαράστασή του σε HTML. Εικόνα 27: παράδειγμα ενός indexed guided tour και μια πιθανή αναπαράστασή του σε HTML. Object Viewpoints πρότυπο Το πρότυπο object viewpoint είναι μία αλυσίδα από δύο ή περισσότερα συνδεδεμένα data units, έτσι ώστε κάθε data unit να παρουσιάζει μία διαφορετική όψη ενός αντικειμένου. Συνήθως, μια δομική μονάδα παρουσιάζει τις απαραίτητες πληροφορίες για ένα αντικείμενο και η επόμενη παρουσιάζει επιπρόσθετες πληροφορίες και λεπτομέρειες. Η Εικόνα 28 παρουσιάζει δύο data units που έχουν οριστεί πάνω στην οντότητα Φοιτητής. Τα βασικά στοιχεία του φοιτητή εμφανίζονται στη σελίδα Φοιτητής. Από τη σελίδα αυτή, ο χρήστης μπορεί να προσπελάσει τη σελίδα Βιογραφία, η οποία παρουσιάζει πιο λεπτομερή στοιχεία σχετικά με τη βιογραφία του ίδιου φοιτητή. Ο χρήστης μπορεί να επιστρέψει από τη σελίδα Βιογραφία στη σελίδα παρουσίασης των γενικών στοιχείων του φοιτητή.

60 Εικόνα 28: παράδειγμα ενός object viewpoint προτύπου Nested Data πρότυπο Ένα nested data πρότυπο είναι ένα ιεραρχικό ευρετήριο που ορίζεται πάνω σε δύο οντότητες, έτσι ώστε η οντότητα που χρησιμοποιείται στο ανώτερο επίπεδο της ιεραρχίας συνδέεται με μία one-to-one ή με μία many-to-one σχέση με την οντότητα που βρίσκεται στο δεύτερο επίπεδο της ιεραρχίας. Στόχος του προτύπου αυτού είναι η παρουσίαση επιπλέον πληροφορίας που σχετίζεται με κάθε αντικείμενο του ευρετηρίου. Στο παράδειγμα της Εικόνα 29, το ιεραρχικό ευρετήριο παρουσιάζει τα ονόματα όλων των φοιτητών και για κάθε φοιτητή παρουσιάζονται τα ονόματα και οι κωδικοί των μαθημάτων που έχει επιλέξει. Το όνομα και ο κωδικός του μαθήματος δεν ανήκουν στην οντότητα Φοιτητής, αλλά μπορούν να ανακτηθούν μέσω της σχέσης ΜάθημαΦοιτητή. Εικόνα 29: παράδειγμα ενός nested data προτύπου Hierarchical Index with Alternative Sub-Pages πρότυπο Το ιεραρχικό ευρετήριο με εναλλακτικές υπο-σελίδες (hierarchical index with alternative sub-pages pattern) χρησιμοποιείται για να παρουσιάσει μια ιεραρχία αντικειμένων διαφορετικών τύπων, επιτρέποντας στο χρήστη να επιλέξει οποιοδήποτε αντικείμενο από το ευρετήριο και να το εμφανίσει με λεπτομέρειες. Παράδειγμα του προτύπου αυτού εμφανίζεται στην Εικόνα 30. Η ΕξωτερικήΣελίδα περιέχει ένα ιεραρχικό ευρετήριο που ορίζεται πάνω στις οντότητες Φοιτητής και Μάθημα. Στο ιεραρχικό ευρετήριο, το υψηλότερο επίπεδο της ιεραρχίας παρουσιάζει τα στιγμιότυπα της οντότητας Φοιτητής και το δεύτερο επίπεδο παρουσιάζει για κάθε φοιτητή τα μαθήματά του με βάση τη

61 σχέση Μαθήματα Φοιτητή. Οι δύο ενναλλακτικές υποσελίδες περιέχουν μία δομική μονάδα δεδομένων για την παρουσίαση είτε ενός επιλεγμένου μαθήματος είτε ενός φοιτητή αντίστοιχα. Δύο σύνδεσμοι συνδέουν το ιεραρχικό ευρετήριο με τις δομικές μονάδες δεδομένων: ο σύνδεσμος που δείχνει στη δομική μονάδα δεδομένων Στοιχεία Φοιτητή συνδέεται με την παράμετρο συνδέσμου Φοιτητής.OID, η οποία περιέχει το αναγνωριστικό του φοιτητή που επιλέχτηκε από το ευρετήριο και ο σύνδεσμος που δείχνει στη δομική μονάδα δεδομένων ΣτοιχείαΜαθήματος συνδέεται με την παράμετρο συνδέσμου Μάθημα.OID, η οποία περιέχει το αναγνωριστικό του μαθήματος που επιλέχτηκε από το ευρετήριο. Με βάση την επιλογή του χρήστη παρουσιάζεται η κατάλληλη ενναλακτική υποσελίδα. Εικόνα 30: παράδειγμα ενός hierarchical index with alternative sub-pages pattern Reusable Units πρότυπο Υπάρχουν περιπτώσεις στις οποίες μια σελίδα πρέπει να προσπελαστεί ακολουθώντας διαφορετικά μονοπάτια πλοήγησης, καθένα από τα οποία μπορεί να μεταφέρει παραμέτρους διαφορετικών τύπων για την ίδια δομική μονάδα της σελίδας. Μια δομική μονάδα, η οποία μπορεί να δεχτεί παραμέτρους διαφορετικών τύπων, πρέπει να περιλαμβάνει πολλαπλούς υπονοούμενους επιλογείς και συγκεκριμένα έναν για κάθε διαφορετικό τρόπο προσπέλασης της. Η πιο συνηθισμένη διαμόρφωση ενός τέτοιου προτύπου αποτελείται από ένα data unit, που βρίσκεται σε μια σελίδα, και μπορεί να προσπελαστεί από διάφορες πηγές. Στην Εικόνα 31 παρουσιάζεται ένα παράδειγμα επαναχρησιμοποιήσιμης δομικής μονάδας, η δομική μονάδα δεδομένων ΣτοιχείαΦοιτητή. Η δομική αυτή μονάδα μπορεί να προσπελαστεί από δύο διαφορετικούς συνδέσμους. Ο κάθε σύνδεσμος παρέχει διαφορετικές παραμέτρους εισόδου. Ανάλογα με το σύνδεσμο, η δομική

62 μονάδα δεδομένων έχει και τους αντίστοιχους επιλογείς. Ο σύνδεσμος που προέρχεται από το ΕυρετήριοΦοιτητών συνδέεται με την παράμετρο συνδέσμου Φοιτ., η οποία περιέχει το αναγνωριστικό του επιλεγμένου φοιτητή. Όταν ο χρήστης πλοηγείται μέσω του συνδέσμου αυτού, η δομική μονάδα δεδομένων χρησιμοποιεί τον επιλογέα [OID=Φοιτ.] προκειμένου να προβάλει πληροφορία για το συγκεκριμένο συγγραφέα. Στην περίπτωση αυτή ο υπονοούμενος επιλογέας [ΜάθημαΦοιτητή(OID Μαθήματος)] αγνοείται. Ο σύνδεσμος που προέρχεται από τα ΣτοιχείαΜαθήματος συνδέεται με την παράμετρο συνδέσμου OID.Μαθήματος, η οποία περιέχει το αναγνωριστικό του εμφανιζόμενου μαθήματος. Ο επιλογέας [ΜάθημαΦοιτητή(OID Μαθήματος)] χρησιμοποιεί την παράμετρο αυτή για την ανάκτηση του αντικειμένου του φοιτητή που σχετίζεται με το μάθημα αυτό. Στην περίπτωση αυτή, ο υπονοούμενος επιλογέας [OID=Φοιτ..] αγνοείται. Εικόνα 31: παράδειγμα ενός προτύπου reusable unit Πρότυπα Διαχείρισης Περιεχομένου Τα υπερκείμενα που ασχολούνται με τη διαχείριση περιεχομένου ακολουθούν πολύ συχνά πρότυπα, ίσως και συχνότερα από αυτά που ασχολούνται με τη δημοσίευση περιεχομένου. Παρακάτω θα αναφερθούμε λεπτομερώς σε κάποια πρότυπα διαχείρισης περιεχομένου. Τα πρώτα πέντε πρότυπα παρουσιάζουν τυπικούς τρόπους με τους οποίους ορίζεται η δημιουργία, η διαγραφή ή η τροποποίηση του περιεχομένου αντικειμένων ή σχέσεων. Τα επόμενα, είναι πρότυπα που παρουσιάζονται αρκετά συχνά και περιλαμβάνουν πολλαπλές λειτουργίες. Πρότυπο δημιουργίας αντικειμένου (object creation pattern) Με το πρότυπο αυτό ο χρήστης μπορεί να δημιουργεί καινούρια στιγμιότυπα μιας οντότητας. Το πρότυπο αυτό αποτελείται από μία δομική μονάδα εισόδου, ακολουθούμενη από μία δομική μονάδα δημιουργίας, η οποία ακολουθείται από ένα data unit. Κάθε πρότυπο δημιουργίας αντικειμένου χαρακτηρίζεται από το όνομα, την οντότητα στην οποία απευθύνεται η διεργασία και από ένα σύνολο χαρακτηριστικών τιμών μέσω ενός συνδέσμου, ο οποίος προέρχεται από τη δομική μονάδα εισόδου. Η είσοδος ενός create unit είναι ένα σύνολο τιμών κάποιων γνωρισμάτων, που συνήθως προέρχονται από έναν εισερχόμενο σύνδεσμο που προέρχεται από τη δομική μονάδα εισόδου. Οι τιμές αυτές χρησιμοποιούνται για τη δημιουργία ενός

63 νέου αντικειμένου. Αν κάποια γνωρίσματα δεν έχουν τιμή, τους ανατίθεται η τιμή null, εκτός από το OID, που έχει διαφορετική αντιμετώπιση: αν δεν έχει κάποια τιμή, δημιουργείται από τη διεργασία μια νέα τιμή, μοναδική σε σχέση με τα στιγμιότυπα της οντότητας. Η έξοδος που παράγεται από τη διεργασία της δημιουργίας είναι ένα σύνολο από τιμές γνωρισμάτων, συμπεριλαμβανομένου και του OID του αντικεμένου που μόλις δημιουργήθηκε. Η έξοδος ορίζεται μόνο όταν η διεργασία είναι επιτυχής και έτσι μπορεί να τεθεί σαν παράμετρος μόνο στον OK σύνδεσμο και όχι στον KO σύνδεσμο. Το παράδειγμα στην Εικόνα 32 δείχνει μια συνηθισμένη χρήση του προτύπου, που αποτελείται από το συνδυασμό ενός entry unit (ΕίσοδοςΦοιτητή), που παρέχει την είσοδο σε ένα create unit (Δημιουργία Φοιτητή), το οποίο δημιουργεί ένα νέο στιγμιότυπο της οντότητας Φοιτητής. Στο παράδειγμα, το entry unit έχει δύο πεδία (Όνομα, Επίθετο), για την εισαγωγή του ονόματος και του επιθέτου του φοιτητή. Οι τιμές που εισάγονται από το χρήστη γίνονται παράμετροι στο σύνδεσμο που ενώνει το entry unit με τη διεργασία της δημιουργίας. Οι παράμετροι αυτοί σχετίζονται με τα γνωρίσματα του αντικειμένου Φοιτητής που δημιουργείται. Ουσιαστικά, ο σύνδεσμος που φεύγει από το entry unit εμφανίζεται σαν ένα κουμπί υποβολής, που επιτρέπει την ενεργοποίηση της διεργασίας. Η διεργασία Δημιουργία Φοιτητή έχει δύο εξερχόμενους συνδέσμους: ο OK σύνδεσμος δείχνει στο data unit Φοιτητής και σχετίζεται με το OID του νέου αντικειμένου. Ο KO δείχνει πίσω στη σελίδα Δημιουργία Φοιτητή, ώστε να επιτρέψει στο χρήστη να δοκιμάσει ξανά τη διεργασία. Εικόνα 32: Πρότυπο Δημιουργίας Αντικειμένου Object Deletion πρότυπο Το πρότυπο διαγραφής αντικειμένου χρησιμοποιείται για τη διαγραφή ενός ή περσσοτέρων αντικειμένων μιας οντότητας. Κάθε μονάδα διαγραφής χαρακτηρίζεται από το όνομα, την οντότητα και τον επιλογέα, που καθορίζουν το αντικείμενο ή το σύνολο των αντικειμένων στα οποία θα εφαρμοστεί η διεργασία. Τα αντικείμενα που διαγράφονται είναι αυτά που ικανοποιούν τη συνθήκη του επιλογέα. Ο χρήστης επιλέγει είτε ένα αντικείμενο που εμφανίζεται σε ένα data unit ή που επιλέγεται από ένα index ή scroller unit είτε από ένα σύνολο αντικειμένων, που εμφανίζονται σε ένα multidata unit ή που επιλέγονται από ένα

64 multi-choice index unit. Το αντίστοιχο OID ή το σύνολο των OIDs μπαίνουν σαν παράμετροι στον εισερχόμενο σύνδεσμο της μονάδας διαγραφής, η οποία ουσιαστικά διαγράφει τα αντικείμενα. Η μονάδα διαγραφής έχει έναν επιλογέα που βασίζεται στα OIDs της εισόδου: ισχύει ότι [OID=<παράμετρος συνδέσμου>], αν η παράμετρος του συνδέσμου εισόδου έχει μία τιμή ή [OID IN < παράμετρος συνδέσμου >], αν η παράμετρος του συνδέσμου εισόδου έχει πολλαπλές τιμές. Ο OK σύνδεσμος ακολουθείται όταν όλα τα αντικείμενα που αποφάσισε ο επιλογέας έχουν διαγραφεί και δεν έχει καμία παράμετρο. Ο KO σύνδεσμος ακολουθείται όταν ένα τουλάχιστον από τα αντικείμενα δεν έχει διαγραφεί και σχετίζεται με μία παράμετρο που έχει το OID ή το σύνολο από τα OIDs των αντικειμένων που δεν μπόρεσαν να διαγραφούν. Η Εικόνα 33 απεικονίζει τη διαγραφή ενός μόνο αντικειμένου. Η σελίδα Φοιτητές περιέχει το ευρετήριο φοιτητών, το οποίο συνδέεται με τη δομική μονάδα διαγραφής. Ο σύνδεσμος έχει μία προκαθορισμένη παράμετρο, η οποία περιέχει το αναγνωριστικό του επιλεγμένου φοιτητή, το οποίο χρησιμοποιείται από τον υπονοούμενο επιλογέα της δομικής μονάδας διαγραφής. Με την πλοήγηση του συνδέσμου διαγράφεται το επιλεγμένο αντικείμενο. Σε περίπτωση επιτυχούς διαγραφής, η σελίδα Φοιτητές επανεμφανίζεται, αλλά ο διαγραμμένος φοιτητής δεν εμφανίζεται πλέον στο ευρετήριο. Σε περίπτωση αποτυχίας, η σελίδα Φοιτητές επανεμφανίζεται, αλλά ο προς διαγραφή φοιτητής συνεχίζει να εμφανίζεται. Εικόνα 33: Πρότυπο Διαγραφής Αντικειμένου Πρότυπο Τροποποίησης Αντικειμένου Το πρότυπο τροποποίησης αντικειμένου χρησιμοποιείται για την τροποποίηση ενός ή περισσότερων αντικειμένων μιας συγκεκριμένης οντότητας. Κάθε τέτοιο πρότυπο χαρακτηρίζεται από την οντότητα και τον επιλογέα, που προσδιορίζουν το αντικείμενο ή το σύνολο των αντικειμένων στα οποία εφαρμόζεται η διεργασία. Τα αντικείμενα που τροποποιούνται είναι το σύνολο των αντικειμένων που ικανοποιούν τον επιλογέα. Ο χρήστης συνήθως επιλέγει ένα ή περισσότερα αντικείμενα για να τροποποιήσει. Στη δεύτερη περίπτωση, η ίδια τροποποίηση εφαρμόζεται σε όλα τα επιλεγμένα αντικείμενα. Ένα πρότυπο τροποποίησης πρέπει να είναι κατάλληλα συνδεδεμένο με άλλα units, έτσι ώστε να πάρει τις κατάλληλες εισόδους, που είναι οι νέες τιμές των γνωρισμάτων, οι οποίες ορίζονται σαν παράμετροι του συνδέσμου εισόδου που έρχεται από ένα entry unit

65 και τα αντικείμενα που θα τροποποιηθούν, τα οποία συνήθως ορίζονται σαν μία παράμετρος ενός συνδέσμου εισόδου, που μεταφέρει ένα OID ή ένα σύνολο από OIDs. Ο OK σύνδεσμος μιας μονάδας τροποποίησης ακολουθείται όταν όλα τα αντικείμενα έχουν τροποποιηθεί επιτυχώς. Στην περίπτωση αυτή ο OK σύνδεσμος έχει μία παράμετρο που δείχνει το σύνολο των τροποποιημένων αντικειμένων. Ο KO σύνδεσμος ακολουθείται όταν ένα τουλάχιστον από τα αντικείμενα δεν μπόρεσαν να τροποποιηθούν και έχει σαν παράμετρο το σύνολο των OIDs των αντικειμένων που τροποποιήθηκαν. Η Εικόνα 34 δείχνει ένα entry unit, που χρησιμοποιείται για να παρέχει τιμές σε μια μονάδα τροποποίησης. Η σελίδα ΤροποποίησηΦοιτητή αποτελείται από ένα data unit (BioData), που δείχνει το όνομα του φοιτητή που θα τροποποιηθεί και ένα entry unit (BioEntry), όπου ο χρήστης μπορεί να τροποποιήσει τη βιογραφία. Ένας σύνδεσμος μεταφοράς από το data unit στη μονάδα τροποποίησης έχει μία παράμετρο με το OID του φοιτητή που θα τροποποιηθεί και χρησιμοποιείται από τον επιλογέα της μονάδας τροποποίησης. Η μονάδα τροποποίησης ενεργοποιείται από ένα δεύτερο σύνδεσμο, που φεύγει από το entry unit. Ο OK σύνδεσμος καταλήγει στη σελίδα Αποτελέσματα, η οποία δείχνει την τρέχουσα τιμή του γνωρίσματος BiographicInfo. Ο KO σύνδεσμος οδηγεί πίσω στο BioData unit. Σε περίπτωση επιτυχίας η νέα τιμή της βιογραφίας παρουσιάζεται στο BioData data unit. Εικόνα 34: Πρότυπο Τροποποίησης Αντικειμένου Πρότυπο Δημιουργίας Σχέσης Το πρότυπο δημιουργίας σχέσης χρησιμοποιείται για τη δημιουργία νέων στιγμιοτύπων μιας σχέσης. Συγκεκριμένα, μία δομική μονάδα σύνδεσης εφαρμόζεται στη μία από τις δύο πλευρές του συνδέσμου και δημιουργεί ένα ή περισσότερα στιγμιότυπα μιας σχέσης συνδέοντας αντικείμενα από την οντότηταπηγή με αντικείμενα της οντότητας-προορισμός. Τα χαρακτηριστικά μιας μονάδας σύνδεσης είναι το όνομα, η πλευρά του συνδέσμου, όπου θα εφαρμοστεί

66 η διεργασία και δύο επιλογείς, ένας για να εντοπίζει τα αντικείμενα της οντότητας-πηγής και ένας για τα αντικείμενα της οντότητας προορισμού. Η διεργασία σύνδεσης δημιουργεί ένα στιγμιότυπο της σχέσης για κάθε ζευγάρι αντικειμένων των οντοτήτων πηγής και προορισμού που ανακτήθηκαν με βάση τους δύο επιλογείς. Δηλαδή, στην έξοδο βγάζει δύο τιμές, που είναι τα OIDs των αντικειμένων των οντοτήτων πηγής και προορισμού που ανακτήθηκαν από τους επιλογείς. Οι τιμές αυτές μπορούν να χρησιμοποιηθούν για να ορίσουν τις παραμέτρους στους συνδέσμους OK, KO, και στο σύνδεσμο μεταφοράς της διεργασίας. Ο KO σύνδεσμος ακολουθείται αν αποτύχει η δημιουργία ενός τουλάχιστον στιγμιοτύπου σχέσης, ενώ ο OK σύνδεσμος ακολουθείται αν δημιουργηθούν όλες οι συνδέσεις. Αν η διεργασία σύνδεσης επιχειρήσει να συνδέσει δύο αντικείμενα, για τα οποία υπάρχει ήδη ένα στιγμιότυπο σχέσης στη βάση, τότε η διεργασία δεν εισάγει δεύτερο στιγμιότυπο σχέσης αλλά και πάλι θεωρείται επιτυχής. Στην Εικόνα 35 παρουσιάζεται ένα παράδειγμα σύνδεσης ενός μαθήματος σε ένα φοιτητή. Η σελίδα Μάθημα περιέχει μία δομική μονάδα δεδομένων, το ΝέοΜάθημα, που ορίζεται πάνω από την οντότητα Μάθημα και το ευρετήριο ΌλοιοιΦοιτητές που ορίζεται πάνω από την οντότητα Φοιτητής. Η δομική μονάδα σύνδεσης δέχεται δύο συνδέσμους εισόδου: ένα σύνδεσμο μεταφοράς που προέρχεται από τη δομική μονάδα δεδομένων ΝέοΜάθημα και ένα σύνδεσμο από το ευρετήριο ΌλοιοιΦοιτητές. Ο σύνδεσμος μεταφοράς μεταφέρει το αναγνωριστικό (OID) του τρέχοντος μαθήματος, ενώ ο άλλος σύνδεσμος μεταφέρει το αναγνωριστικό του επιλεγμένου φοιτητή. Ο χρήστης ενεργοποιεί τη λειτουργεία επιλέγοντας ένα φοιτητή από το ευρετήριο. Το αποτέλεσμα της λειτουργίας είναι η σύνδεση του τρέχοντος μαθήματος με τον επιλεγμένο φοιτητή χρησιμοποιώντας τη σχέση ΜάθημαΦοιτητή. Σε περίπτωση επιτυχούς σύνδεσης, ακολουθείται ο σύνδεσμος ΟΚ, ο οποίος μεταφέρει το χρήστη στη σελίδα Φοιτητής. Η σελίδα αυτή παρουσιάζει πληροφορίες για τον επιλεγμένο Φοιτητή και για το τρέχον μάθημα. Σε περίπτωση αποτυχημένης σύνδεσης, ακολουθείται ο σύνδεσμος KO και η σελίδα Μάθημα επανεμφανίζεται.

67 Εικόνα 35: Πρότυπο Δημιουργίας Σχέσης Πρότυπο Διαγραφής Σχέσης Ένα πρότυπο διαγραφής σχέσης χρησιμοποιείται για τη διαγραφή στιγμιοτύπων μιας σχέσης. Συγκεκριμένα, μία δομική μονάδα αποσύνδεσης εφαρμόζεται στη μία από τις δύο πλευρές του συνδέσμου και διαγράφει τη σύνδεση μεταξύ κάποιων αντικειμένων από την οντότητα-πηγή και κάποιων αντικειμένων της οντότητας-προορισμός. Τα χαρακτηριστικά μιας μονάδας αποσύνδεσης είναι το όνομα, η πλευρά του συνδέσμου, όπου θα εφαρμοστεί η διεργασία και δύο επιλογείς, ένας για να εντοπίζει τα αντικείμενα της οντότητας-πηγής και ένας για τα αντικείμενα της οντότητας προορισμού. Η διεργασία διαγράφει ένα στιγμιότυπο της σχέσης για κάθε ζευγάρι αντικειμένων των οντοτήτων πηγής και προορισμού που ανακτήθηκαν με βάση τους δύο επιλογείς. Δηλαδή, στην έξοδο βγάζει δύο τιμές, που είναι τα OIDs των αντικειμένων των οντοτήτων πηγής και προορισμού που ανακτήθηκαν από τους επιλογείς. Οι τιμές αυτές μπορούν να χρησιμοποιηθούν για να ορίσουν τις παραμέτρους στους συνδέσμους OK, KO, και στο σύνδεσμο μεταφοράς της διεργασίας. Ο KO σύνδεσμος ακολουθείται αν αποτύχει η διαγραφή ενός τουλάχιστον στιγμιοτύπου σχέσης, ενώ ο OK σύνδεσμος ακολουθείται αν έχουν διαγραφεί όλες οι συνδέσεις. Αν δύο αντικείμενα που πρόκειται να αποσυνδεθούν δε συνδέονται με κάποιο στιγμιότυπο σχέσης, τότε δε συμβαίνει καμία αποσύνδεση αλλά και πάλι η διεργασία θεωρείται επιτυχής. Το παράδειγμα της Εικόνα 36 αποσυνδέει έναν επιλεγμένο φοιτητή από ένα σύνολο βοβλίων. Η δομική μονάδα αποσύνδεσης δέχεται δύο συνδέσμους: ένα σύνδεσμο μεταφοράς από τη δομική μονάδα δεδομένων ΛεπτομέρειεςΦοιτητή ο οποίος μεταφέρει ως παράμετρο το όνομα του φοιτητή και ένα σύνδεσμο που προέρχεται από τη δομική μονάδα δεδομένων ΛεπτομέρειεςΜαθήματος, παράμετρος του οποίου είναι το αναγνωριστικό του επιλεγμένου μαθήματος. Ο

68 χρήστης ενεργοποιεί τη λειτουργία επιλέγοντας ένα μάθημα από το ευρετήριο. Το αποτέλεσμα της λειτουργίας είναι η αποσύνδεση του επιλεγμένου φοιτητή από το μάθημα που επιλέχθηκε. Με τη διαγραφή της σχέσης δε διαγράφονται και τα αντικείμενα. Αν αποσυνδεθεί ένας φοιτητής από ένα μάθημα, τόσο το αντικείμενο του φοιτητή, όσο και το αντικείμενο του μαθήματος συνεχίζουν να υφίστανται. Εικόνα 36: Πρότυπο Διαγραφής Σχέσης Create-Connect Pattern Το Create-Connect πρότυπο είναι μια ακολουθία που αποτελείται από μια δομική μονάδα λειτουργίας και από ένα τυχαίο αριθμό λειτουργιών σύνδεσης (connect operations). Οι λειτουργίες αυτές συνδέουν το αντικείμενο που δημιουργείται με ένα ή περισσότερα σχετικά αντικείμενα, τα οποία συνήθως παρέχονται από έναν ή περισσότερους σύνδεμους μεταφοράς. Το παράδειγμα της Εικόνα 37 παρουσιάζει ένα απλό create-connect πρότυπο για τη δημιουργία ενός νέου μαθήματος και της σύνδεσής της σε ένα φοιτητή. Η σελίδα Μαθήματα περιέχει μία δομική μονάδα δεδομένων που παρουσιάζει τα στοιχεία του φοιτητή και μία δομική μονάδα εισόδου δεδομένων για την εισαγωγή του ονόματος και του κωδικού του μαθήματος. Όταν τα δεδομένα του μαθήματος εισαχθούν, ένα νέο αντικείμενο της οντότητας Μάθημα δημιουργείται και στη συνέχεια συνδέεται με το αντικείμενο του φοιτητή. Ο εξερχόμενος σύνδεσμος από τη δομική μονάδα Δημιουργία Μαθήματος μεταφέρει το αναγνωριστικό του νέου αντικειμένου, το οποίο στη συνέχεια χρησιμοποιείται από τη δομική μονάδα Σύνδεση. Στην περίπτωση που μία από τις δύο λειτουργίες αποτύχει, αποτυγχάνει ολόκληρη η διεργασία.

69 Εικόνα 37: Create-Connect πρότυπο Cascaded Delete πρότυπο Το cascaded delete πρότυπο επιτρέπει τη διαγραφή ενός συγκεκριμένου αντικειμένου και όλων των αντικειμένων που σχετίζονται μεαυτό μέσω μιας ή περισσότερων συσχετίσεων. Είναι μία ακολουθία που αποτελείται από δύο ή περισσότερες λειτουργίες διαγραφής, μία για τη διαγραφή του βασικού αντικειμένου και οι υπόλοιπες για την αφαίρεση των συσχετιζόμενων αντικειμένων. Ειδικότερα, η διαδοχική διαγραφή χρησιμοποιείται για τη διάδοση της διαγραφής ενός αντικειμένου σε άλλα αντικείμενα, τα οποία συνδέονται με αυτό με μια «1-1» σχέση. Διαγράφονται δηλαδή, τα αντικείμενα που δε μπορούν να υπάρξουν, αν δεν υπάρχει το αντικείμενο στο οποίο αναφέρονται. Το παράδειγμα της Εικόνα 38 παρουσιάζει την εφαρμογή του cascaded delete προτύπου σε ένα επίπεδο σχέσης. Το ίδιο πρότυπο μπορεί να επεκταθεί σε δύο ή περισσότερα επίπεδα σχέσης. Για παράδειγμα, διαγράφοντας ένα φοιτητή, διαγράφονται και όλοι οι βαθμοί των μαθημάτων αυτών. Ανεξάρτητα από τον αριθμό των επιπέδων, η διαγραφή ξεκινά πάντα από το βαθύτερο επίπεδο σχέσης και προχωρά διαγράφοντας προς τα πίσω όλα τα αντικείμενα που σχετίζονται με βάση τις σχέσεις που έχουν οριστεί. Στο παράδειγμα αυτό, διαγράφονται πρώτα το μάθημα του φοιτητή που προβάλλεται στο data unit ΣτοιχείαΜαθήματος, στη συνέχεια διαγράφεται ο φοιτητής.

70 Εικόνα 38: Παράδειγμα ενός cascaded delete προτύπου 3.8 Βιβλιογραφία κεφαλαίου 1. Alexander C., et al. (1977), A Pattern Language: Towns, Building and Construction, New York: Oxford University Press. 1. Appleton, B. (2000), Patterns and Software: essential concepts and terminology, viewed 2 October, 2005, < 2. Appleton, B. (2000), Patterns in a Nutshell, viewed 2 October, 2005, < 4. Bochicchio, M.A. and Paolini, P. (1998), An HDM interpreter for On-Line Tutorials, in the Proceedings of MMM 98, Los Alamitos. 5. Bolchini, D. (2000), Web Design Patterns: Improving Quality and Performance in Web Application Design, Master Thesis in Communication Science, Università della Svizzera Italiana, Lugano November Bonifati, A., Brambilla, M., Ceri, S., Fraternali, P. and Matera, M. (2000), The WebML Methodology for the Design of Data-Intensive Web Applications, W3I3 Technical report, September. 7. Ceri, S., Fraternali, P. and Matera, M. (2001), WebML Application Frameworks, a Conceptual Tool for Enhancing Design Reuse, In the Proceedings of WWW10 Workshop Web Engineering, Hong Kong, May Ceri, S., Fraternali, P. and Matera, M. (2002), Conceptual Modeling of Data-Intensive Web Applications, IEEE Internet Computing, vol. 6, no. 4, July - August 2002, pp Ceri, S., P. Fraternali, A. Bongio, M. Brambilla, S. Comai, and Matera, M. (2002), Designing Data-Intensive Web Applications, Morgan Kauffmann. 10. Coplien, J.O. (1991), Advanced C++ Programming Styles and Idioms, Addison-Wesley. 11. Cunningham, W. and Back, K., (1987), Using Pattern Languages for Object-Oriented Programs, in the Proceedings of. OOPSLA '87, Orlando. 12. Gamma, E., Helm, R., Johnson, R. and Vlissedes, J. (1995), Design Patterns - Elements of Reusable Object Oriented Software, Addison Wesley. 13. Garzotto, F. and Paolini P. (1999), Design patterns for WWW hypermedia: problems and proposals, in Proc. ACM HT 99, Workshop on Hypermedia Development: Design patterns in Hypermedia, Darmstadt. 14. Garzotto, F. et al. (1999), Modeling by patterns of Web applications, in the Proceedings of WWWCM 99, Paris. 15. Mecca, G., Atzeni, P., Masci, A., Sindoni, G. and Merialdo, P. (1998), The Araneus Web- Based Management System, In the Proceedings of SIGMOD 98.

71 16. Mowbray, T. and Malveau, R. (1997), CORBA Design patterns, New York: Wiley Computer Publishing. 17. Nanard, J. and Nanard, M. (1999), Toward an Hypermedia Design Patterns Space, in the Proceedings of ACM HT 99, Workshop on Hypermedia Development: Design patterns in Hypermedia, Darmstadt. 18. Nanard, M., Nanard J. and Kahn, P. (1998), Pushing reuse in Hypermedia Design: Golden Rules, Design patterns and Constructive Templates, in the Proceedings ACM HT 98, Pittsburgh. 19. Paolini, P. and Fraternali, P. (1998), A Conceptual Model and a Tool Environment for Developing More Scalable, Dynamic, and Customizable Web Applications, In the Proceedings of EDBT 98, Valencia. 20. Rossi, G., Schwabe D. and Lyardet, F. (1999), Improving Web Information System with navigational patterns, in the Proceedings of WWW8, Toronto. 21. Schmidt, D. (1995), Experience using design patterns to develop reusable object-oriented communication software, Communications of the ACM, vol. 38, no. 10, October 1995, pp Schwabe, D., Garrido, A. and Rossi, G. (1997), Design Reuse in Hypermedia Applications Development, In the Proceedings of the 8 th ACM conference on Hypertext, Southampton, UK, pp Schwabe, D., Rossi, G., Esmeraldo, L. and Lyardet, F. (2001), Web Design Frameworks: An approach to improve reuse in Web applications, Web Engineering, Software Engineering and Web Application Development, January 2001, pp Schwabe, D.,Esmeraldo, L., Rossi, G. and Lyardet, F. (2001), Engineering web Applications for Reuse, IEEE Multimedia, vol. 8, no. 1, pp

72 4 Kλωνοποίηση Μοντέλου 4.1 Εισαγωγή Όπως έχει ήδη αναφερθεί, μία εφαρμογή με το πέρασμα του χρόνου αλλάζει συνεχώς με αποτέλεσμα να είναι πολύ δύσκολη η συντήρησή της. Είδαμε ότι χρησιμοποιώντας κατάλληλες μεθοδολογίες μπορεί να βελτιωθεί η ποιότητά της και να γίνει συντηρήσιμη και επεκτάσιμη. Όμως, η χρησιμοποίηση μιας μεθοδολογίας για το σχεδιασμό και ανάπτυξη μιας εφαρμογής Παγκόσμιου Ιστού δεν εγγυάται τη βελτιστοποίηση στη όλη διαδικασία, καθώς η μοντελοποίηση εφαρμογών Παγκόσμιου Ιστού χρησιμοποιείται κατά κύριο λόγο στα πρώτα στάδια του κύκλου ζωής τους. Ένα άλλο σημαντικό πρόβλημα είναι ότι οι σχεδιαστές εκμεταλλεύονται την εμπειρία τους από προηγούμενα έργα, με αποτέλεσμα να δημιουργούν εφαρμογές που ουσιαστικά είναι προσαρμογές παλιότερων. Είναι προφανές ότι στις περισσότερες περιπτώσεις υπάρχει ανάγκη για αναδόμηση (restructuring) / αναδιάταξη (refactoring) των εφαρμογών, ακόμη και στο εννοιολογικό τους επίπεδο (επίπεδο μοντέλου). Βασικός στόχος αυτών που θα παρουσιαστούν στη συνέχεια είναι να υποστηριχτεί η ανάγκη να προσεγγιστούν όλες οι πτυχές αποδοτικού και ποιοτικού σχεδιασμού από την αρχή του κύκλου ανάπτυξης εφαρμογών Παγκόσμιου Ιστού [12]. Δεδομένου ότι η ποιότητα είναι ένα βασικό ζήτημα στην επιτυχία της εφαρμογής, είναι πολύ σημαντικό να εξετάζεται στη φάση σχεδιασμού και όχι μόνο στη φάση ανάπτυξης. Στο συγκεκριμένο κεφάλαιο παρουσιάζεται μία μέθοδος, που επιτρέπει την ανίχνευση κλώνων μοντέλου, δηλαδή περιπτώσεων μέσα στο μοντέλο σχεδιασμού της εφαρμογής, στις οποίες χρησιμοποιούνται διαφορετικές σχεδιαστικές λύσεις για να παράγουν την ίδια λειτουργικότητα, προκαλώντας έτσι ασυνέπεια και μείωση της αποδοτικότητας. Η αξιολόγηση εκτελείται σε διάφορα στάδια της επιθεώρησης του μοντέλου της εφαρμογής. Γίνεται μία πρώτου επιπέδου αξιολόγηση των συνθέσεων υπερκειμένων που χρησιμοποιούνται στο σχεδιασμό του συνολικού υπερκειμένου, και μια δεύτερου επιπέδου αξιολόγηση του χειρισμού και της παρουσίασης των δεδομένων της εφαρμογής στο χρήστη. Παρουσιάζονται μετρικές για την αξιολόγηση ποιότητας του εννοιολογικού σχήματος της εφαρμογής και ένα σύνολο από κανόνες αναδόμησης/αναδιάταξης του μοντέλου της. Στόχος είναι η αναβάθμιση της ποιότητας του τελικού αποτελέσματος Η μέθοδος μπορεί να χρησιμοποιηθεί είτε κατά τη διαδικασία του αρχικού σχεδιασμού της εφαρμογής ή κατά τη διαδικασία της συντήρησης και του ανασχεδιασμού της. Στη συνέχεια χρησιμοποιείται η WebML σαν σχεδιαστική πλατφόρμα μοντελοποίησης εφαρμογών με στόχο την παρουσίαση των τεχνικών που προτείνονται. Η επιλογή αυτή έγινε κυρίως λόγω του γεγονότος ότι υποστηρίζει ένα ισχυρό πλαίσιο για τον αποδοτικό σχεδιασμό εφαρμογών Παγκόσμιου Ιστού (ιδιαίτερα απαιτητικών σε δεδομένα) και λόγω του γεγονότος ότι υποστηρίζεται από ένα ισχυρό εργαλείο σχεδιασμού (CASE tool), το WebRatio [14]

73 4.2 Η Έννοια της Κλωνοποίησης Μοντέλου Σχεδιασμού Εφαρμογής και των Οσμών Μοντέλου (Model Cloning Model Smells) Οι έννοιες της αναδόμησης (restructuring), αναδιάταξης (refactoring) και κλωνοποίησης κώδικα (code cloning) είναι πολύ γνωστές στην επιστημονική κοινότητα που ασχολείται με θέματα ανάπτυξης λογισμικού. Σύμφωνα με την ταξινομία αντίστροφης εφαρμοσμένης μηχανικής (reverse engineering taxonomy) των [5], η αναδόμηση ορίζεται ως: ο μετασχηματισμός από μια μορφή αναπαράστασης σε άλλη, στο ίδιο σχετικό επίπεδο αφαίρεσης, συντηρώντας την εξωτερική συμπεριφορά του συστήματος (λειτουργία και σημασιολογία). Ένας μετασχηματισμός αναδόμησης είναι συχνά μιας εμφάνισης, όπως η αλλαγή του κώδικα για να βελτιωθεί η δομή του υπό την παραδοσιακή έννοια του δομημένου σχεδιασμού. Ενώ η αναδόμηση δημιουργεί νέες εκδόσεις που υλοποιούν ή προτείνουν αλλαγή στο σύστημα, δεν περιλαμβάνουν κανονικά τροποποιήσεις λόγω νέων απαιτήσεων. Εντούτοις, μπορεί να οδηγήσει σε καλύτερες παρατηρήσεις σε σχέση με το σύστημα, οι οποίες προτείνουν αλλαγές που θα βελτίωναν διάφορες πτυχές του συστήματος. Στην περίπτωση της αντικειμενοστραφούς ανάπτυξης λογισμικού, σύμφωνα με τους [6], η αναδιάταξη ορίζεται παρόμοια ως: η διαδικασία αλλαγής ενός συστήματος λογισμικού με τέτοιο τρόπο ώστε να μην αλλάξει η εξωτερική συμπεριφορά του κώδικα, αλλά να βελτιωθεί η εσωτερική του δομή. Η βασική ιδέα σε αυτή την περίπτωση είναι να ανακατανεμηθούν οι κλάσεις, οι μεταβλητές και οι μέθοδοι, προκειμένου να διευκολυνθούν οι μελλοντικές προσαρμογές και επεκτάσεις του συστήματος. Τέλος, η κλωνοποίηση κώδικα ή με άλλα λόγια η πράξη της αντιγραφής τμημάτων κώδικα κάνοντας μικρής σημασίας, μη λειτουργικές αλλαγές, είναι ένα γνωστό πρόβλημα στην διαδικασία εξέλιξης συστημάτων λογισμικού, το οποίο οδηγεί στην δημιουργία αντιγράφων τμημάτων κώδικα, ή αλλιώς σε κλώνους κώδικα (code clones). Η κλωνοποίηση κώδικα μπορεί να ανιχνευθεί από τις λεγόμενες οσμές κώδικα (code smells), δηλαδή από συγκεκριμένες δομές στον κώδικα που υπονοούν τη δυνατότητα αναδιάταξης [6]. Η εφαρμοσμένη μηχανική λογισμικού (software engineering) έχει φθάσει σε ένα τέτοιο επίπεδο ωριμότητας, ώστε να θεωρεί ότι τα μοντέλα λογισμικού και ο κώδικας προγράμματος μπορούν να θεωρηθούν ως δύο διαφορετικές αναπαραστάσεις του ίδιου αντικειμένου. Σε ένα τέτοιο πλαίσιο, η έννοια της αναδιάταξης μπορεί να γενικευτεί έτσι ώστε να περιγράφει τη διαδικασία η οποία βελτιώνει τη δομή του λογισμικού, και όχι μόνο την αναπαράσταση του κώδικα. Στα πλαίσια του συγκεκριμένου κεφαλαίου επεκτείνεται η έννοια της κλωνοποίησης κώδικα στο επίπεδο μοντελοποίησης εφαρμογών Παγκόσμιου Ιστού. Σε αντιστοιχία με την κλωνοποίηση κώδικα, ορίζουμε [11] την έννοια της κλωνοποίησης μοντέλου (model cloning) ως:

74 τη διαδικασία δημιουργίας αντιγράφων και στη συνέχεια τροποποίησης ενός τμήματος του μοντέλου μιας συγκεκριμένης εφαρμογής, το οποίο υλοποιεί μια συγκεκριμένη λειτουργικότητα. Αυτή η τυχαία μορφή επαναχρησιμοποίησης συμβαίνει συχνά κατά τη διάρκεια μοντελοποίησης μίας εφαρμογής. Αφού πρώτα γίνει μία σύντομη ανασκόπηση του ερευνητικού πεδίου της αναδόμησης-αναδιάταξης εφαρμογών (ενότητα 2.4), στις επόμενες ενότητες ( ) θα παρουσιαστεί μία μέθοδος ανίχνευσης οσμών μοντέλου (model smells), δηλαδή συγκεκριμένων τμημάτων του μοντέλου της εφαρμογής, τα οποία υπονοούν την πιθανότητα ανάγκης αναδιάταξης του μοντέλου της. 4.3 Μία Αποδοτική Μέθοδος Εξόρυξης Κλώνων Μοντέλου Στη συνέχεια παρουσιάζεται αναλυτικά η μεθοδολογική προσέγγιση για εξόρυξη πιθανών κλώνων μοντέλου στο μοντέλο σχεδιασμού μίας εφαρμογής Παγκόσμιου Ιστού [11,9]. Η μέθοδος αποτελείται από τρεις διακριτές φάσεις: Αρχικά μετασχηματίζεται το εννοιολογικό σχήμα (conceptual schema) της εφαρμογής Παγκόσμιου Ιστού σε κατευθυνόμενους γράφους, οι οποίοι αναπαριστούν τη δομή πλοήγησης της εφαρμογής και την κατανομή του περιεχομένου στις περιοχές και σελίδες της. Αυτό αποτελεί τη βάση για το μηχανισμό εξαγωγής πληροφοριών που απαιτείται στην επόμενη φάση. Στη συνέχεια με τη βοήθεια τεχνικών εξόρυξης πληροφοριών από γράφους, εξάγονται οι πιθανοί κλώνοι μοντέλου, καθώς και πληροφορίες σχετικές με την πλοήγηση και τη σημασιολογία της εφαρμογής και γίνεται μια πρώτη κατηγοριοποίηση των πιθανών κλώνων μοντέλου. Τέλος, παρέχονται μετρικές εκτίμησης, οι οποίες εξυπηρετούν την αναδιάταξη των μοντέλων Μετασχηματισμός του Εννοιολογικού Σχήματος της Εφαρμογής Σε αυτή τη φάση γίνεται προεπεξεργασία του μοντέλου σχεδιασμού της εφαρμογής, ώστε να γίνει η εξαγωγή των πιθανών κλώνων μοντέλων και των παραμέτρων εκτίμησης. Πιο συγκεκριμένα, έστω ότι έχουμε μια εφαρμογή, της οποίας το μοντέλο αποτελείται από μία σειρά από site views, που χρησιμοποιούνται για να παρέχουν εξατομίκευση (personalization) στους τελιούς χρήστες. Σε πρώτο στάδιο μετατρέπεται κάθε site view σε ένα κατευθυνόμενο γράφο, με βάση τη σημειολογία που παρουσιάζεται στην επόμενη παράγραφο. Με αυτό τον τρόπο κατασκευάζεται ένα πρώτο σύνολο γράφων οι οποίοι αναπαριστούν τους μηχανισμούς πλοήγησης, παρουσίασης και χειρισμού του περιεχομένου της εφαρμογής. Ένα site view ορίζεται ως ένας κατευθυνόμενος γράφος, G(V, E, fv, fe), ο οποίος αποτελείται από ένα σύνολο κόμβων V, ένα σύνολο ακμών E, μία συνάρτηση ονοματισμού κόμβων fv: V ΣV, και μία συνάρτηση ονοματισμού ακμών fe:

75 E ΣE. Η fv αναθέτει γράμματα από ένα αλφάβητο ΣV στους κόμβους του site view, ενώ η fe έχει τον ίδιο ρόλο για τις ακμές χρησιμοποιώντας το αλφάβητο ΣE. Το ΣV διαθέτει διαφορετικά γράμματα για κάθε δομικό στοιχείο της WebML (δομικές μονάδες περιεχομένου και λειτουργιών, σελίδες, περιοχές κλπ.). Αντίστοιχα, το ΣE περιλαμβάνει όλα τα διαφορετικά είδη συνδέσμων (σύνδεσμοι μεταφοράς περιεχομένου, και μη, αυτόματοι σύνδεσμοι, σύνδεσμοι αυτόματης μεταφοράς). Εκτός της αναπαράστασης των προκαθορισμένων συνδέσμων της WebML, εισάγεται και ένας ειδικός τύπος ακμής (ο οποίος ονοματίζεται με το γράμμα c στον γράφο), έτσι ώστε να γίνει δυνατή η αναπαράσταση της σχέσης ανήκει σε (containment) ανάμεσα σε δομικές μονάδες περιεχομένου και υποσελίδες σε σχέση με σελίδες, καθώς και σελίδες, υπο-περιοχές και δομικές μονάδες λειτουργιών σε περιοχές. Σημειώνεται ότι μπορούν να υπάρξουν αυθαίρετες ακολουθίες ανήκει σε. Ένα παράδειγμα μετασχηματισμού απεικονίζεται στην Εικόνα 39 (Μετ/σμός Α), όπου μετασχηματίζεται μία σελίδα που αποτελείται από διάφορες μονάδες περιεχομένου, οι οποίες διασυνδέονται με συνδέσμους μεταφοράς περιεχομένου. Ακολουθώντας παρόμοια διαδικασία για κάθε site view του σχήματος υπερκειμένου, δημιουργείται ένας δεύτερος γράφος, ο οποίος αναπαριστά την κατανομή των δεδομένων σε κάθε περιοχή, υπο-περιοχή και σελίδα της εφαρμογής. Με τον τρόπο αυτό κατασκευάζεται ένα δεύτερο σύνολο γράφων. Σε αυτή την περίπτωση ένα site view ορίζεται σαν ένας κατευθυνόμενος γράφος, Q(N, L, fn, fl), ο οποίος αποτελείται από ένα σύνολο κόμβων N, ένα σύνολο ακμών L, μία συνάρτηση ονοματισμού κόμβων fn: N ΣN, και μία συνάρτηση ονοματισμού ακμών fl: L ΣL. Η fn αναθέτει γράμματα από ένα αλφάβητο ΣN στους κόμβους του site view, ενώ η fl έχει τον ίδιο ρόλο για τις ακμές χρησιμοποιώντας το αλφάβητο ΣL. Το ΣN διαθέτει διαφορετικά γράμματα για κάθε οντότητα που χρησιμοποιείται από τα WebML δομικά στοιχεία που συνθέτουν το σχήμα υπερκειμένου, καθώς και για τις σελίδες, υπο-σελίδες, περιοχές και υπο-περιοχές του site view. Το ΣL περιλαμβάνει όλα τα διαφορετικά είδη συνδέσμων της WebML, έτσι ώστε να μοντελοποιηθεί η μεταφορά περιεχομένου στο σχήμα υπερκειμένου. Και σε αυτή την περίπτωση εισάγονται με τον ίδιο τρόπο ακμές που αναπαριστούν τη σχέση ανήκει σε. Ένα παράδειγμα μετασχηματισμού απεικονίζεται στην Εικόνα 39 (Μετασχηματισμός Β). Εικόνα 39: Μετασχηματισμός μιας σύνθεσης υπερκειμένου WebML στους ισοδύναμους γράφους.

76 4.3.2 Εξόρυξη Πιθανών Κλώνων Μοντέλου Έχοντας μοντελοποιήσει με τη χρήση γράφων τους μηχανισμούς πλοήγησης, παρουσίασης και χειρισμού του περιεχομένου της εφαρμογής, καθώς και την κατανομή των δεδομένων σε κάθε site view, σε αυτή τη φάση γίνεται μια προσπάθεια ανίχνευσης οσμών μοντέλου ώστε να ακολουθήσει η εξόρυξη πιθανών κλώνων. Διατρέχεται το πρώτο σύνολο γράφων που κατασκευάστηκε στην προηγούμενη φάση, με στόχο να εντοπιστούν όμοιες διαμορφώσεις στοιχείων υπερκειμένου (υπογράφοι), καθώς και οι παραλλαγές τους (variants), είτε μέσα στον ίδιο γράφο αναπαράστασης ενός site view, είτε ανάμεσα σε γράφους που αναπαριστούν διαφορετικά site views. Οι παραλλαγές περιλαμβάνουν όλες τις μορφές με τις οποίες ξεκινάει και τελειώνει μία ανακτημένη διαμόρφωση. Δηλαδή, όλους τους κόμβους ή σύνολα κόμβων στο γράφο, που δίνουν ή λαμβάνουν περιεχόμενο από τη διαμόρφωση υπερκειμένου. Για κάθε εμφάνιση της διαμόρφωσης ανακτώνται και οι αντίστοιχες παραλλαγές αρχής και τερματισμού (starting and termination variants). Η ανάκτηση των διαμορφώσεων υπερκειμένου μπορεί να επιτευχθεί χρησιμοποιώντας αλγορίθμους εξόρυξης δεδομένων από γράφους. Διαισθητικά, αφού γίνει ο μετασχηματισμός των site views σε κατευθυνόμενους γράφους, το πρόβλημα ανάγεται στην ανίχνευση συχνά επαναλαμβανόμενων επαγόμενων υπογράφων (frequently occurring induced subgraphs). Το πρόβλημα στη γενική του περίπτωση συνοψίζεται στην εύρεση της ύπαρξης της ισομορφικής εικόνας (isomorphic image) ενός υπογράφου σε ένα μεγαλύτερο γράφο. Το συγκεκριμένο πρόβλημα σύμφωνα με τους [8] είναι NP-complete. Παρόλα αυτά έχουν προταθεί αρκετοί ευριστικοί αλγόριθμοι για τη λύση του. Οι πιο σημαντικές προσεγγίσεις στο θέμα είναι οι αλγόριθμοι gspan [15], CloseGraph [16] και ADI [13]. Οποιαδήποτε από τις παραπάνω προσεγγίσεις μπορεί να χρησιμοποιηθεί στη συγκεκριμένη περίπτωση για την εξόρυξη των διαμορφώσεων υπερκειμένου. Με τη χρήση των ίδιων τεχνικών εξόρυξης, διατρέχεται το δεύτερο σύνολο γράφων με στόχο την εύρεση όμοιων διαμορφώσεων στοιχείων δεδομένων (οντότητες), καθώς και των παραλλαγών τους. Τέλος, γίνεται προσπάθεια να εντοπιστούν όμοιες συνθέσεις στοιχείων υπερκειμένου, οι οποίες αναφέρονται ακριβώς στις ίδιες οντότητες, αλλά διασυνδέονται μεταξύ τους με διαφορετικές τοπολογίες συνδέσμων. Αγνοώντας τις ακμές στο πρώτο σύνολο γράφων, εκτός από αυτές που αναπαριστούν σχέσεις ανήκει σε, γίνεται ανίχνευση όμοιων διαμορφώσεων υπερκειμένου στον ίδιο γράφο ή ανάμεσα σε γράφους. Στη συνέχεια, φιλτράρονται οι υπάρχοντες υπογράφοι, χρησιμοποιώντας τις πληροφορίες που αναπαρίστανται στο δεύτερο σύνολο γράφων και κρατούνται οι συνθέσεις που αναφέρονται ακριβώς στις ίδιες οντότητες Κατηγοριοποίηση Κλώνων Μοντέλου Για κάθε περίπτωση διαμορφώσεων υπερκειμένου που ανακτήθηκε από το πρώτο σύνολο γράφων στο προηγούμενο βήμα, γίνεται μία πρώτη κατηγοριοποίηση, με βάση τις οντότητες και τα χαρακτηριστικά στα οποία αναφέρονται τα WebML δομικά στοιχεία της διαμόρφωσης. Για να επιτευχθεί αυτό γίνεται χρήση των πληροφοριών που παρέχονται από την XML αναπαράσταση (XML definition) κάθε site view, όπου οι οντότητες (source entities) και οι επιλογείς (selectors) κάθε στοιχείου

77 προδιαγράφονται λεπτομερειακά [2]. Συγκεκριμένα, για κάθε διαμόρφωση που ανακτείται γίνεται κατηγοριοποίηση των εμφανίσεων της στα διάφορα site views της εφαρμογής με βάση τα παρακάτω κριτήρια. Διαμορφώσεις που αποτελούνται από δομικά στοιχεία WebML, τα οποία αναφέρονται σε: ακριβώς τις ίδιες οντότητες και χαρακτηριστικά, ακριβώς τις ίδιες οντότητες αλλά διαφέρουν σε κάποια από τα χαρακτηριστικά μερικές από τις οντότητες οι οποίες είναι οι ίδιες (π.χ.εικόνα 40), διαφορετικές οντότητες. Εικόνα 40: Κατηγοριοποίηση πιθανών κλώνων μοντέλου στο επίπεδο υπερκειμένου. Επίσης, γίνεται κατηγοριοποίηση (με τη χρήση της XML αναπαράστασης των site views) κάθε εμφάνισης των διαμορφώσεων στοιχείων δεδομένων, οι οποίες ανακτήθηκαν από τους γράφους αναπαράστασης της κατανομής των δεδομένων. Έτσι κατηγοριοποιούνται ως συνθέσεις αποτελούμενες από οντότητες οι οποίες χρησιμοποιούνται από: διαφορετικά δομικά στοιχεία WebML, παρόμοια δομικά στοιχεία WebML (δηλαδή στοιχεία που ανήκουν στην ίδια κατηγορία: δομικά στοιχεία σύνθεσης ή διαχείρισης περιεχομένου). Για παράδειγμα στην Εικόνα 41, η οντότητα Α χρησιμοποιείται από δύο στοιχεία σύνθεσης, μία δομική μονάδα πολλαπλών δεδομένων (multidata unit) και μία δομική μονάδα δείκτη (index unit). ακριβώς τα ίδια δομικά στοιχεία WebML. Η τελευταία κατηγορία περικλείει ακριβώς τις ίδιες διαμορφώσεις υπερκειμένου όπως η πρώτη περίπτωση της προηγούμενης κατηγοριοποίησης. Τέλος, πιθανοί

78 κλώνοι μοντέλου είναι τα σύνολα διαμορφώσεων υπερκειμένου που έχουν ανακτηθεί στο τελευταίο βήμα της προηγούμενης φάσης. Δηλαδή, συνθέσεις των ίδιων δομικών στοιχείων WebML που αναφέρονται σε κοινές οντότητες, αλλά χρησιμοποιούν διαφορετικές τοπολογίες συνδέσεων (Εικόνα 42). Εικόνα 41: Κατηγοριοποίηση πιθανών κλώνων μοντέλου στο επίπεδο δεδομένων. Εικόνα 42: Κλώνοι μοντέλου στο επίπεδο συνδέσμων. Μετρικές και Αξιολόγηση Ποιότητας Αφού έχουν αναγνωριστεί οι πιθανοί κλώνοι μοντέλου με βάση την αναπαράσταση υπερκειμένου και δεδομένων, παρέχονται μετρικές [11,9] για την κατηγοριοποίηση των κλώνων, μέσω της εκτίμησης ποιότητας του εννοιολογικού σχήματος της εφαρμογής. Για τους κλώνους μοντέλου που έχουν αναγνωριστεί εισάγονται μετρικές, που δηλώνουν πιθανή ανάγκη για αναδιάταξη της εφαρμογής. Η αξιολόγηση γίνεται σε τρία επίπεδα. Σε πρώτο επίπεδο γίνεται αξιολόγηση των διαμορφώσεων υπερκειμένου με κριτήριο τη συνέπεια και βάσει των παραλλαγών τους στο εννοιολογικό σχήμα. Σε δεύτερο επίπεδο γίνεται ποσοτικοποίηση της κατηγοριοποίησης που παρουσιάστηκε στην προηγούμενη ενότητα, με βάση την ομοιότητα και ανεξαρτησία των πιθανών κλώνων μοντέλου και σε τρίτο επίπεδο γίνεται μία αξιολόγηση βασίζεται στην τοπολογία συνδέσμων.

79 Συνέπεια Χρήσης των Κλώνων Μοντέλου Οι [3] εισήγαγαν μία μεθοδολογία για την αξιολόγηση της συνεπούς εφαρμογής με προκαθορισμένα WebML σχεδιαστικά πρότυπα (design patterns), στο εννοιολογικό σχήμα μιας εφαρμογής. Στη συνέχεια, χρησιμοποιείται η συγκεκριμένη μεθοδολογία και επεκτείνεται [11], με στόχο την εισαγωγή μετρικών που απεικονίζουν τη συνεπή εφαρμογή κλώνων μοντέλου (σχεδιαστικών λύσεων), που ανακτήθηκαν κατά το πρώτο βήμα της διαδικασίας που περιγράφεται στην παράγραφο 4.3.2, σε ολόκληρο το εννοιολογικό σχήμα της εφαρμογής. Για να γίνει αυτό εφικτό, εισάγονται δύο μετρικές, οι οποίες υπολογίζουν τη στατιστική μεταβλητότητα (statistical variance) της εμφάνισης N παραλλαγών τερματισμού ή έναρξης των κλώνων μοντέλου και είναι κανονικοποιημένες (normalized) σε σχέση με τη μεταβλητότητα καλύτερης περίπτωσης (best case variance). Οι μετρικές αυτές ονομάζονται αντίστοιχα Start- Point Metric (SPM) and End-Point Metric (EPM). Η SPM ορίζεται ως (η EPM ορίζεται ανάλογα): SPM 2 = σ σ 2 BC (4.1) Όπου σ2 είναι η στατιστική διακύμανση των εμφανίσεων των παραλλαγών αρχής, η οποία υπολογίζεται με βάση τον ακόλουθο τύπο: 2 σ 1 = ( ) N N i= 0 ( p i 1 ) N 2 (4.2) Ν είναι ο αριθμός των παραλλαγών στις οποίες απευθύνεται η συγκεκριμένη μετρική, 2 σ BC ενώ pi είναι το ποσοστό των εμφανίσεων της i-οστής παραλλαγής. Το είναι η διακύμανση στην καλύτερη περίπτωση και υπολογίζεται από την εξίσωση 4.2, υποθέτοντας ότι μόνο μία παραλλαγή έχει εφαρμοστεί με συνέπεια σε όλη την εφαρμογή. Το τελευταίο βήμα στον ορισμό της μετρικής είναι η δημιουργία μίας κλίμακας μέτρησης, η οποία ορίζει την αντιστοιχία μεταξύ των αριθμητικών αποτελεσμάτων, που εξάγονται μέσω της αριθμητικής μεθόδου υπολογισμού και διακριτών τιμών με σημασιολογικό χαρακτήρα. Σύμφωνα με τους τύπους κλιμάκων που ορίζονται στη θεωρία μετρήσεων [10], η μετρική SPM υιοθετεί μία τακτική ονομαστική κλίμακα (ordinal nominal scale). Κάθε ονομαστική τιμή στην κλίμακα εκφράζει ένα επίπεδο συνέπειας το οποίο αντιστοιχεί σε ένα εύρος αριθμητικών τιμών της μετρικής, όπως ορίζεται στον επόμενο πίνακα (Πίνακας 4). Η ίδια ακριβώς κλίμακα καλύπτει και τη μετρική EPM. Εύρη Μετρικών Τιμές Κλίμακας Μέτρησης 0 <= SPM <0.2 Ανεπαρκής 0.2 <= SPM <0.4 Αδύναμη

80 0.4 <= SPM <0.6 Μέση 0.6 <= SPM <0.8 Καλή 0.8 <= SPM <=1 Βέλτιστη Πίνακας 4: Η κλίμακα μέτρησης για τη μετρική SPM. Ομοιότητα και Ανεξαρτησία των Κλώνων Μοντέλου Για να γίνει η αξιολόγηση της ομοιότητας μεταξύ δύο διαμορφώσεων υπερκειμένου (πιθανοί κλώνοι μοντέλου που αναφέρονται είτε στις ίδιες οντότητες είτε στα ίδια WebML δομικά στοιχεία), υιοθετείται το διανυσματικό μοντέλο (vector model), με βάση το οποίο υπολογίζεται ο βαθμός ομοιότητας [1]. Για τη μετατροπή των διαμορφώσεων σε διανύσματα στο μοντέλο χώρου (space model) ορίζεται το διάνυσμα d r i = (xi1, xi2, xi3 xin). Οι συνιστώσες (compounds) περιλαμβάνουν τα διακριτά WebML στοιχεία ή τις οντότητες όλων των διαμορφώσεων που εμπλέκονται (για παράδειγμα στην Εικόνα 40 υπάρχουν έξι εμπλεκόμενες διακριτές οντότητες, ενώ στην Εικόνα 41 υπάρχουν τέσσερα διακριτά δομικά στοιχεία WebML σε κάθε ζευγάρι συγκρινόμενων διαμορφώσεων). Οι συνιστώσες θεωρούνται μοναδιαία διανύσματα (uni-grams) και ζυγίζονται με τη συχνότητα φ εμφάνισης του μοναδιαίου διανύσματος αντίστοιχα. Στην περίπτωση οντοτήτων που έχουν διαφορετικά χαρακτηριστικά που εμπλέκονται σε μία σελίδα, το μοναδιαίο διάνυσμα της αντίστοιχης οντότητας μετασχηματίζεται σε ένα κλάσμα της συχνότητας φ, ανάλογο με τον αριθμό των χαρακτηριστικών που συμμετέχουν προς τον αριθμό του συνόλου των χαρακτηριστικών που έχουν σχεδιαστεί. Το διανυσματικό μοντέλο υπολογίζει το βαθμό ομοιότητας μίας διαμόρφωσης dm σε σχέση με μία διαμόρφωση dμ (με τις ίδιες οντότητες ή στοιχεία WebML), ως τη d r συσχέτιση ανάμεσα στα διανύσματα μ και d r m. Αυτή η συσχέτιση μπορεί να ποσοτικοποιηθεί μέσω του συνημίτονου της γωνίας ανάμεσα στα δύο διανύσματα, δηλαδή: similarity (dm, dμ) = cos( d r m d r, μ ) = όπου d r m και d r μ r d r d m m r d r d μ μ = t w i, m ι= 1 t 2 wi, m ι= 1 w i, μ t ι= 1 w 2 i, μ είναι τα μέτρα (norms) των δύο διαμορφώσεων., [0,1] (4.3) Οι πιθανοί κλώνοι μπορούν να κατηγοριοποιηθούν ως συσχετισμένοι ή όχι χρησιμοποιώντας το μοντέλο διανυσματικού χώρου (vector space model), το οποίο τους ταξινομεί ανάλογα με το βαθμό της μεταξύ τους ομοιότητας. Μία επιπλέον συνιστώσα μοναδιαίου διανύσματος (εξίσωση 4.5) είναι η ανεξαρτησία κλώνων (clone independency). Σύμφωνα με τον [4], ένας πιθανός κλώνος μοντέλου είναι ανεξάρτητος όταν η εντροπία του περιεχομένου του είναι υψηλή (π.χ. το αριστερό και δεξί τμήμα του κλώνου είναι αρκετά τυχαία). Διαισθητικά, η

81 ανεξαρτησία κλώνου επεκτείνει την έννοια της συνέπειας κλώνου και διαχωρίζει τους πιθανούς κλώνους σε σχέση με διαμορφώσεις οι οποίες ανήκουν σε ευρύτερες διαμορφώσεις. Χρησιμοποιείται η μετρική IND για τη μέτρηση της ανεξαρτησία των πιθανών κλώνων. Η INDl, η οποία είναι η τιμή ανεξαρτησίας της αριστερής πλευράς υπολογίζεται από την εξίσωση 4.4, όπου 0log0 = 0. Στην συγκεκριμένη περίπτωση ένα γειτνιάζον δομικό στοιχείο θεωρείται ως σχετικό. IND l = t= l( d ) φ( t) φ( t) log TF TF (4.4) όπου TF είναι η Συνολική Συχνότητα. Η τιμή INDr για τη δεξιά πλευρά υπολογίζεται με παρόμοιο τρόπο. Η τελική τιμή της IND υπολογίζεται σαν το μέσο όρο των δύο. IND l + IND IND = r 2 (4.5) Στη συνέχεια προτείνονται τα κατώτατα όρια και οι αντίστοιχες κατηγορίες ομοιότητας - similarity(dm, dμ), λαμβάνοντας πάντα υπόψη την ανεξαρτησία μεταξύ των πιθανών κλώνων μοντέλου [9,11]. Αυτή η δεύτερη φάση αξιολόγησης χρησιμοποιεί σαν είσοδο τις εμφανίσεις των διαμορφώσεων υπερκειμένου που έχουν ανακτηθεί από τα δύο πρώτα σύνολα γράφων. Σκοπός αυτής της φάσης είναι να ελεγχθεί εάν αυτές οι διαμορφώσεις είναι πραγματικά κλώνοι μοντέλου, και να αναγνωριστούν οι πιθανότητες αναδιάταξης του μοντέλου της εφαρμογής. Τα αποτελέσματα αυτού του βήματος παρουσιάζονται σε τακτικές κατηγορίες κλίμακας που φαίνονται παρακάτω. Αρχικά, οι διαμορφώσεις που έχουν ανακτηθεί από το πρώτο σύνολο γράφων ταξινομούνται σύμφωνα με το σχήμα ταξινόμησης κλώνων μοντέλου που περιγράφεται στον επόμενο πίνακα (Πίνακας 5). Επίπεδο Διαμορφώσεις δομικών στοιχείων WebML που αναφέρονται σε: 1 ακριβώς τις ίδιες οντότητες και ιδιοχαρακτηριστικά. 2 οντότητες που σε ποσοστό 75% είναι όμοιες. 3 οντότητες που σε ποσοστό 50% είναι όμοιες. 4 οντότητες που σε ποσοστό 25% είναι όμοιες. 5 διαφορετικές οντότητες. Πίνακας 5: Ταξινόμηση των πιθανών κλώνων μοντέλου με βάση το επίπεδο υπερκειμένου.

82 Η ταξινόμηση γίνεται με βάση μία τακτική κλίμακα ανάλογα με το βαθμό ομοιότητας των πιθανών κλώνων μοντέλου. Όταν o βαθμός ομοιότητας αυξάνει, η δυνατότητα ανίχνευσης κλώνων μοντέλου μειώνεται. Επομένως, όσο υψηλότερη είναι η τιμή του επιπέδου, τόσο μικρότερη είναι η πιθανότητα να έχει προσδιοριστεί ένας κλώνος μοντέλου. Στη συνέχεια, οι διαμορφώσεις που έχουν ανακτηθεί από το δεύτερο σύνολο γράφων ταξινομούνται με βάση το σχήμα ταξινόμησης κλώνων μοντέλου που περιγράφεται στον επόμενο πίνακα (Πίνακας 6) Επίπεδο Διαμορφώσεις αποτελούμενες από οντότητες που χρησιμοποιούνται από: 1 δομικά στοιχεία WebML της ίδιας κατηγορίας, τα οποία είναι όμοια. 2 δομικά στοιχεία WebML της ίδιας κατηγορίας, τα οποία σε ποσοστό 75% είναι όμοια. 3 δομικά στοιχεία WebML της ίδιας κατηγορίας, τα οποία σε ποσοστό 50% είναι όμοια. 4 δομικά στοιχεία WebML της ίδιας κατηγορίας, τα οποία σε ποσοστό 25% είναι όμοια. 5 διαφορετικά δομικά στοιχεία WebML. Πίνακας 6: Ταξινόμηση των πιθανών κλώνων μοντέλου με βάση το επίπεδο δεδομένων Παρόμοια η ταξινόμηση ακολουθεί τακτική κλίμακα βασισμένη στο βαθμό ομοιότητας μεταξύ των υποψηφίων κλώνων μοντέλου. Ο έλεγχος συνεχίζεται από τα επίπεδα 1 έως 5, και σταματάει όταν ένα συγκεκριμένο επίπεδο μπορεί να αναγνωριστεί. Και σε αυτή την περίπτωση η πιθανότητα αναγνώρισης ενός κλώνου μοντέλου αυξάνεται όσο μειώνεται η τιμή του επίπεδου. Αξιολόγηση σε Επίπεδο Τοπολογίας Συνδέσμων Με στόχο την περαιτέρω βελτίωση της διαδικασίας αξιολόγησης, οι διαμορφώσεις υπερκειμένου των υποψήφιων μοντέλων κλώνου μιας σελίδας, εξετάζονται σε αυτή τη φάση με κριτήριο τη συνδεσμολογία-τοπολογία των συνδέσμων. Διαισθητικά, η ομοιότητα της τοπολογίας συνδέσμων σε ένα τοπικό (μέσα σε μια σελίδα) ή ευρύτερο (σε μία περιοχή ή siteview) μοντέλο υπερκειμένου, υπονοεί ομοιότητα στην επιχειρησιακή λογική. Εάν υπάρχουν ευρύτερες διαφορές, ή έχει αλλάξει η επιχειρησιακή λογική, ή υπάρχουν προβλήματα σε σχέση με τη διαμόρφωση της τοπολογίας.

83 Η ομοιότητα τοπολογίας συνδέσμων ορίζεται ως το συνημίτονο της γωνίας των διανυσμάτων της μορφής v r i = (xi1, xi2, xi3 xin), όπου n είναι οι διαφορετικοί σύνδεσμοι στο μοντέλο υπερκειμένου ενός συνόλου πιθανών κλώνων, με τον ίδιο αριθμό δομικών στοιχείων WebML και τα οποία αναφέρονται στις ίδιες οντότητες. Οι συνιστώσες των μοναδιαίων διανυσμάτων παίρνουν τιμές από το σύνολο {1,0,-1}. Η τιμή 1 αντιστοιχεί στην περίπτωση που ο σύνδεσμος έχει την ίδια κατεύθυνση, η τιμή 0 αντιστοιχεί στην περίπτωση που δεν υπάρχει σύνδεσμος και η τιμή -1 αντιστοιχεί στην περίπτωση που υπάρχει σύνδεσμος αντίθετης κατεύθυνσης. Με τον τρόπο αυτό ταξινομούνται οι διαμορφώσεις υπερκειμένου που έχουν ανακτηθεί στην τρίτη φάση ανάκτησης κλώνων, σύμφωνα με την ομοιότητα της τοπολογίας συνδέσμων όπως φαίνεται στον ακόλουθο πίνακα (Πίνακας 7). Επίπεδο Περιγραφή 1 πολύ υψηλή ομοιότητα τοπολογίας συνδέσμων. (ισοδύναμη) 2 ομοιότητα τοπολογίας συνδέσμων σε ποσοστό 75%. (υψηλή) 3 ομοιότητα τοπολογίας συνδέσμων σε ποσοστό 50%. (μέση) 4 ομοιότητα τοπολογίας συνδέσμων σε ποσοστό 25%. (χαμηλή) 5 Διαφορετική τοπολογία συνδέσμων. (διάφορη) Πίνακας 7: Ταξινόμηση των πιθανών κλώνων μοντέλου με βάση την τοπολογία συνδέσμων. Και σε αυτή την περίπτωση χρησιμοποιείται τακτική κλίμακα για το σχήμα ταξινόμησης. 4.4 Προτάσεις Αναδιάταξης του Μοντέλου της Εφαρμογής Αφού γίνει η ταξινόμηση των πιθανών κλώνων μοντέλου με βάση τη μεταξύ τους ομοιότητα, ο σχεδιαστής υπερκειμένων έχει στη διάθεσή του ένα πρώτο σύνολο μετρικών, οι οποίες υποδεικνύουν σημεία (hot spots), όπου μπορούν να γίνουν πιθανές βελτιώσεις στο εννοιολογικό σχήμα της εφαρμογής [9,11]. Οι υποψήφιοι κλώνοι μοντέλου κατατάσσονται με βάση το επίπεδο ομοιότητάς τους και το μέγεθός τους (αριθμός στοιχείων που συγκροτούν τη διαμόρφωση), αποτελώντας έτσι ένα πολύτιμο εργαλείο,που παρέχει οδηγίες βελτίωσης της ποιότητας για το συνολικό μοντέλο της εφαρμογής. Η μεθοδολογία μπορεί να επεκταθεί ώστε να υποστηρίζει αυτόματη βελτίωση του μοντέλου, αλλά πριν γίνει αυτό υπάρχει ένας αριθμός θεμάτων τα οποία θα πρέπει να εξεταστούν. Στην περίπτωση αυτόματης αναδιάταξης του μοντέλου της εφαρμογής θα πρέπει να γίνει πρώτα έλεγχος ορθότητας του συντακτικού και σημασιολογικού

84 επιπέδου - syntactic and semantic correctness (π.χ. συγκρούσεις, συνθήκες αποκλεισμού, αδιέξοδα κλπ.). Αναλυτικά τα συγκεκριμένα θέματα παρουσιάζονται στην επόμενη ενότητα. Επιπλέον, καθώς η εξατομίκευση της εφαρμογής πραγματοποιείται σε διάφορα επίπεδα της διαδικασίας σχεδιασμού (π.χ. εξατομίκευση πλοήγησης ή περιεχομένου), η αυτόματη αναδιάταξη του μοντέλου της μπορεί να οδηγήσει σε ασυνέπειες σε σχέση με τις αρχικές προδιαγραφές λειτουργικότητας της εφαρμογής. Παρόλα αυτά, ένας αριθμός προτάσεων αναδιάταξης της εφαρμογής είναι προφανής. Με βάση την πρώτη ταξινόμηση η ύπαρξη δύο ή περισσότερων κλώνων μοντέλου, που ανήκουν στο επίπεδο 1, παραπέμπει σε πολύ υψηλή πιθανότητα αναδιάταξης. Ο σχεδιαστής θα πρέπει να κρατήσει έναν από τους κλώνους μοντέλου χρησιμοποιώντας τη δομική μονάδα change siteview αν οι κλώνοι βρίσκονται σε διαφορετικά site views ή θα πρέπει να αλλάξει την τοπολογία συνδέσμων αν οι κλώνοι βρίσκονται στο ίδιο site view. Στην περίπτωση που τα δομικά στοιχεία ενός ή περισσότερων κλώνων μοντέλου αναφέρονται σε ακριβώς τις ίδιες οντότητες αλλά διαφέρουν σε κάποια από τα χαρακτηριστικά, θα πρέπει να εξεταστεί η δυνατότητα συνένωσης όλων των χαρακτηριστικών σε κάθε δομικό στοιχείο υπό τον όρο ότι δεν επηρεάζεται το περιεχόμενο εξατομίκευσης. Αν οι κλώνοι ανήκουν στα επίπεδα 2 έως 4, ο σχεδιαστής θα πρέπει να κάνει αναδιάταξη του μοντέλου της εφαρμογής συνενώνοντας τις σελίδες ή τις περιοχές της εφαρμογής. Από την άλλη πλευρά, οι διαμορφώσεις που έχουν ταξινομηθεί στο επίπεδο 5, μπορεί να οδηγήσουν σε αναγνώριση περιπτώσεων όπου έχει γίνει αποτελεσματική εφαρμογή μιας σχεδιαστικής λύσης ή ενός σχεδιαστικού προτύπου. Τέτοιες διαμορφώσεις υπονοούν αποτελεσματική χρήση προηγούμενης εμπειρίας και οδηγούν σε υψηλό βαθμό συνέπειας στα πλαίσια του μοντέλου της εφαρμογής, καθώς και αναβάθμιση της ευχρηστίας της. Αυτές είναι οι περιπτώσεις όπου η εφαρμογή κερδίζει από πλευράς ποιότητας. Σε αυτή την κατηγορία κλώνων μοντέλου, αναδιάταξη της εφαρμογής θα πρέπει να γίνει όταν οι μετρικές SPM και/η EPM έχουν τιμή κάτω από 0,6 χρησιμοποιώντας όπου είναι δυνατό την παραλλαγή με τη μεγαλύτερη συχνότητα εμφάνισης στο μοντέλο της εφαρμογής. Τα διάφορα επίπεδα ομοιότητας, που έχουν υπολογιστεί κατά τη δεύτερη φάση της ταξινόμησης υποδεικνύουν περιπτώσεις όπου όμοια δεδομένα παρουσιάζονται στους χρήστες (ή διαχειρίζονται από αυτούς) με τη χρήση διαφορετικών μηχανισμών παρουσίασης (ή διαχείρισης δεδομένων). Υψηλή ομοιότητα ανάμεσα σε κλώνους υπονοεί σημεία (hot spots), όπου ο σχεδιαστής θα πρέπει να εξετάσει την περίπτωση επανασχεδιασμού του υπερκειμένου ώστε να επιτευχθεί συνέπεια στο επίπεδο παρουσίασης και ευχρηστία στην τελική εφαρμογή. Ανάλογα, η τελευταία ταξινόμηση αναγνωρίζει περιπτώσεις, στις οποίες η τοπολογία συνδέσμων κάποιων τμημάτων του μοντέλου εφαρμογής θα πρέπει να εξεταστεί ξανά ώστε να επιτευχθεί συνέπεια στο επίπεδο πλοήγησης και παρουσίασης. Κλώνοι μοντέλων, οι οποίοι ανήκουν σε χαμηλά επίπεδα ταξινόμησης θα πρέπει να εξεταστούν ως προς την πιθανότητα συνένωσή τους με αναδιάταξη των συνδέσμων. Στον επόμενο πίνακα (Πίνακας 8) συνοψίζονται οι προτάσεις αναδιάταξης με βάση την κατηγοριοποίηση των διατάξεων των κλώνων, που παρουσιάστηκαν προηγουμένως.

85 Επίπεδο Περιγραφή Πρόταση Αναδιάταξης Διαμορφώσεις δομικών στοιχείων WebML που αναφέρονται σε: 1 ακριβώς τις ίδιες οντότητες και ιδιοχαρακτηριστικά. Θα πρέπει να παραμείνει μόνον ένας από τους κλώνους με τη χρήση της δομικής μονάδας change siteview στην περίπτωση που οι κλώνοι βρίσκονται σε διαφορετικά site views, ή να γίνει αλλαγή της τοπολογίας συνδέσμων στο ίδιο το site view σε αντίθετη περίπτωση. ακριβώς τις ίδιες οντότητες και διαφέρουν σε μερικά από τα ιδιοχαρακτηριστικά. Διερεύνηση της δυνατότητας συνένωσης όλων των ιδιοχαρακτηριστικών σε κάθε δομικό στοιχείο ώστε να διαγραφούν κάποιοι από τους κλώνους με τον τρόπο που παρουσιάζεται στην προηγούμενη περίπτωση. 2 οντότητες που σε ποσοστό 75% είναι όμοιες. 3 οντότητες που σε ποσοστό 50% είναι όμοιες. Θεώρηση της πιθανότητας αναδιάταξης του μοντέλου της εφαρμογής μέσω της συνένωσης σελίδων ή περιοχών της. Προτεραιότητα δίνεται

86 4 οντότητες που σε ποσοστό 25% είναι όμοιες. στους κλώνους χαμηλότερων επιπέδων. 5 διαφορετικές οντότητες. Αναδιάταξη του σχήματος της εφαρμογής όταν οι μετρικές SPM και/η EPM έχουν τιμή κάτω από 0,6 μέσω της εφαρμογής της παραλλαγής με τη μεγαλύτερη συχνότητα εμφάνισης. Διαμορφώσεις υπερκειμένου αποτελούμενες από οντότητες που χρησιμοποιούνται από: 1 δομικά στοιχεία WebML της ίδιας κατηγορίας, τα οποία είναι όμοια. 2 δομικά στοιχεία WebML της ίδιας κατηγορίας, τα οποία σε ποσοστό 75% είναι όμοια. 3 δομικά στοιχεία WebML της ίδιας κατηγορίας, τα οποία σε ποσοστό 50% είναι όμοια. Ανάγεται στο επίπεδο 1 της προηγούμενης περίπτωσης. Ανασχεδιασμός του υπερκειμένου με στόχο τη συνέπεια σε επίπεδο παρουσίασης και την αναβάθμιση της ευχρηστίας. Προτεραιότητα δίνεται στους κλώνους χαμηλότερων επιπέδων. 4 δομικά στοιχεία WebML της ίδιας κατηγορίας, τα οποία σε ποσοστό 25% είναι όμοια. 5 διαφορετικά δομικά στοιχεία WebML Δεν προτείνεται αναδιάταξη.

87 Ομοιότητα Τοπολογίας Συνδέσμων <2 Θα πρέπει να εξεταστεί η πιθανότητα συνένωσης των κλώνων με αναδιάταξη των συνδέσμων. Πίνακας 8: Προτάσεις αναδιάταξης του μοντέλου της εφαρμογής με βάση τα επίπεδα ομοιότητας κλώνων μοντέλου.

88 4.5 Βιβλιογραφία κεφαλαίου 1. Baeza-Yates, R. and Ribeiro-Neto, B. (1999), Modern Information Retrieval, Addison Wesley, ACM Press, pp , 2. Ceri, S., Fraternali, P. and Bongio, A. (2000), Web Modeling Language (WebML): a Modeling Language for Designing Web Sites, In the Proceedings of WWW9 Conference, Amsterdam., 3. Ceri, S., Fraternali, P. and Matera, M (2002),: Conceptual Modeling of Data-Intensive Web Applications, IEEE Internet Computing, vol. 6, no. 4, pp , 4. Chien L. F. (1997), PAT-Tree-Based Adaptive Keyphrase Extraction for Intelligent Chinese Information Retrieval, In the Proceedings of the 20th Annual International ACM/SIGIR Conference on Research and Development in Information Retrieval (SIGIR'97), pp , 5. Chikofsky, E. and Cross, J. (1990), Reverse engineering and design recovery: A taxonomy, IEEE Software, vol. 7, no 1, pp , 6. Fowler, M., Beck, K., Brant, J., Opdyke, W. and Roberts, D. (1999), Refactoring: Improving the Design of Existing Code, The Addison-Wesley Object Technology Series., 7. Fraternali, P., Matera, M. and Maurino, A. (2002), WQA: an XSL Framework for Analyzing the Quality of Web Applications, In the Proceedings of the 2nd International Workshop on Web-Oriented Software Technologies - IWWOST'02, Malaga, Spain, pp , 8. Garey, M., R. and Johnson, D., S. (1979), Computers and Intractability: A guide to NP- Completeness, New York: Freeman., 9. Rigou, M., Sirmakessis, S., and Tzimas, G. (2005), Model Cloning: A push to reuse or a Disaster?, to appear in the Proccedings of the 16th ACM Conference on Hypertext and Hypermedia - HyperText 2005, September 6-9, 2005, Salzburg, Austria., 10. Roberts, F.S. (1979), Measurement Theory with Applications to Decision Making, Utility and the Social Sciences, Addison Wesley., 11. Sakkopoulos, E., Sirmakessis, S., Tsakalidis, A., and Tzimas, G. (2005), A Methodology for Evaluating the Personalization Conceptual Schema of a Web Application, to appear in the Proceedings of the 11th International Conference on Human-Computer Interaction (HCI International 2005), July 22-27, 2005, Las Vegas, Nevada, USA., 12. Tzimas, G. (2005), Βελτίωση Απόδοσης & Αποτελεσματικές Σχεδιαστικές Λύσεις Για Εφαρμογές Παγκοσμίου Ιστού., 13. Wang, C., Wang, W., Pei, J., Zhu, Y. and Shi, B. (2004), Scalable Mining of Large Disk-based Graph Databases, In the Proceedings of ACM KDD04, pp , 14. WebRatio (2005), available at: Yan, X. and Han, J. (2002), gspan: Graph-based substructure pattern mining In the Proceedings of International Conference on Data Mining (ICDM'02), Maebashi, pp , 16. Yan, X. and Han, J. (2003), CloseGraph: mining closed frequent graph patterns, In the Proceedings of ACM KDD03, pp ,

89 5 Μοντελοποίηση Εφαρμογών με χρήση Αντίστροφης Μηχανίκευσης (Reverse Engineering) 5.1 Εισαγωγή Οι επιτακτικές ανάγκες της αγοράς επιβάλλουν την ανάπτυξη των νέων εφαρμογών παγκόσμιου ιστού σε πολύ σύντομο χρονικό διάστημα καθώς και τη συχνή και γρήγορη τροποποίηση των ήδη ανεπτυγμένων εφαρμογών. Οι προγραμματιστές, λόγω της πίεσης που δέχονται, δε λαμβάνουν υπόψη τις αρχές ανάπτυξης λογισμικού (software engineering principles) ούτε υιοθετούν σωστά καθορισμένες (well-defined), τεκμηριωμένες διαδικασίες και μεθοδολογίες ανάπτυξης λογισμικού. Η έλλειψη μεθόδου κατά την ανάπτυξη και συντήρηση εφαρμογών για τον παγκόσμιο ιστό θεωρείται ο κυριότερος παράγοντας ύπαρξης λογισμικού με «ακατάστατη» αρχιτεκτονική και ανεπαρκή ή καθόλου τεκμηρίωση. Το λογισμικό αυτό μπορεί να αναλυθεί, να τροποποιηθεί και να συντηρηθεί με πολύ κόπο, δυσκολία και χρόνο 0. Παρόμοια προβλήματα εμφανίστηκαν και στο πεδίο των παραδοσιακών πληροφοριακών συστημάτων. Για την επίλυση τους, άρχισαν να ορίζονται και να χρησιμοποιούνται διαδικασίες αντίστροφης μηχανίκευσης, οι οποίες και αποδείχτηκαν πολύ χρήσιμες για την κατανόηση της αρχιτεκτονικής των συστημάτων αυτών 0. Οι διαδικασίες αντίστροφης μηχανίκευσης παρέχουν προσεγγίσεις για την ανάκτηση πληροφορίας και τεκμηρίωσης συστήματων λογισμικού, ελάχιστα ή μη τεκμηριωμένων. Το πρόβλημα ορισμού παρόμοιων τεχνικών, προσεγγίσεων και εργαλείων, κατάλληλων για εφαρμογές παγκόσμιου ιστού, είναι ένα θέμα που απασχολεί έντονα την ερευνητική κοινότητα 0. Ένας τυπικός ορισμός της γενικής έννοιας της αντίστροφης μηχανίκευσης σύμφωνα με τους Chikofsky και Cross 0 είναι: «η διαδικασία της ανάλυσης ενός υποκείμενου συστήματος, προκειμένου να αναγνωριστούν τα συστατικά του συστήματος και οι αλληλοσυσχετίσεις τους και να αναπαρασταθεί το σύστημα σε μία άλλη μορφή ή σε ένα υψηλότερο επίπεδο αφαίρεσης». Στην Εικόνα 43 αναπαρίσταται η διαδικασία της αντίστροφης μηχανίκευσης στα πλαίσια του συνολικού κύκλου ζωής μιας εφαρμογής παγκόσμιου ιστού 0, 0. Επαναδόμηση Απαιτήσεις Forward Engineering Σχεδιασμός Αντίστροφη Μηχανίκευση Κατασκευή Εικόνα 43: Αντίστροφη Μηχανίκευση

90 Η αντίστροφη μηχανίκευση μετασχηματίζει μία τελική διεπαφή χρήστη σε μία λογική αναπαράσταση που επιτρέπει στους σχεδιαστές να μεταφέρουν μία διεπαφή χρήστη από μία υπολογιστική πλατφόρμα σε μία άλλη, πολύ ευέλικτα και με ελάχιστο κόπο 0. Μία τέτοια διαδικασία μπορεί να χρησιμοποιηθεί για να επιτευχθούν διάφοροι στόχοι, όπως: η τεκμηρίωση / επανατεκμηρίωση μιας εφαρμογής, η ανάκτηση της αρχιτεκτονικής της, ο έλεγχός της, η συντήρησή της, η αποτίμηση της ποιότητάς της, η ανάπτυξη μιας νέας εφαρμογής. Στη συνέχεια του κεφαλαίου παρουσιάζονται ο ερευνητικός χώρος της αντίστροφης μηχανίκευσης, τα συστατικά που αποτελούν μία εφαρμογή παγκόσμιου ιστού, καθώς και ο τύπος της πληροφορίας που απαιτείται να εξαχθεί από μία διαδικασία αντίστροφης μηχανίκευσης, έτσι ώστε να γίνει κατανοητή και αντιληπτή η αρχιτεκτονική μιας τέτοιας εφαρμογής. Επίσης, προτείνεται μια μέθοδος αντίστροφης μηχανίκευσης εφαρμογών παγκόσμιου ιστού, με στόχο τη μοντελοποίησή τους με χρήση της WebML. Η μέθοδος αυτή σε συνδυασμό με το αντίστοιχο εργαλείο που έχει υλοποιηθεί είναι πολύ χρήσιμα καθώς δίνει τη δυνατότητα να πάμε από επίπεδο κώδικα σε επίπεδο μοντέλου. Στο στάδιο αυτό, έχοντας το WebML εννοιολογικό σχήμα της εφαρμογής, μπορούμε να εφαρμόσουμε το εργαλείο που υλοποιήθηκε στην παρούσα εργασία και περιγράφεται στο επόμενο κεφάλαιο. 5.2 Ο Ερευνητικός Χώρος Το πρόβλημα της ανάλυσης ιστοσελίδων και εφαρμογών παγκόσμιου ιστού με στόχο τη συντηρησιμότητά τους, την κατανόησή τους, τον έλεγχο τους ή την αποτίμηση της ποιότητάς τους έχει γίνει αντικείμενο πολλών δημοσιεύσεων. Νέες προσεγγίσεις και εργαλεία ανάλυσης, όπως και προσαρμογές και τροποποιήσεις υπαρχόντων έχουν προταθεί στον τομέα των εφαρμογών παγκόσμιου ιστού. Για παράδειγμα, οι Hassan και Holt 0 περιγράφουν τις μετατροπές που έκαναν στο Portable Bookshelf Environment (PBE), προκειμένου να ανακτήσουν την αρχιτεκτονική μιας εφαρμογής παγκόσμιου ιστού. Το PBE είχε αρχικά σχεδιαστεί για την ανάκτηση της αρχιτεκτονικής μεγάλων παραδοσιακών εφαρμογών. Παράλληλα, οι Martin et al. 0 προτείνουν τη χρήση του εργαλείου Rigi 0 για την ανάλυση και οπτικοποίηση της δομής των εφαρμογών παγκόσμιου ιστού. Έχουν επίσης οριστεί άλλες ad hoc τεχνικές και εργαλεία προκειμένου να διαχειριστούν υπάρχουσες εφαρμογές παγκόσμιου ιστού. Οι Chung και Lee 0, 0 προτείνουν μία προσέγγιση για αντίστροφη μηχανίκευση εφαρμογών. Στην

91 προσέγγισή τους υιοθετούν τις UML επεκτάσεις του Conallen 0, 0 για την περιγραφή της αρχιτεκτονικής των εφαρμογών παγκόσμιου ιστού. Σύμφωνα με την προσέγγισή αυτή, κάθε σελίδα της εφαρμογής συνδέεται με ένα συστατικό (component) του διαγράμματος συστατικών (component diagram), ενώ η δομή των φακέλων της εφαρμογής παγκόσμιου ιστού αντιστοιχίζεται απευθείας σε διαγράμματα πακέτων (package diagrams). Οι Ricca και Tonella 0, 0, 0, 0, 0 ανέπτυξαν το εργαλείο ReWeb, το οποίο αν εφαρμοστεί σε μία υπάρχουσα εφαρμογή παγκόσμιου ιστού παράγει ένα μοντέλο της εφαρμογής σε UML. Το ReWeb εφαρμόζει ορισμένες παραδοσιακές τεχνικές ανάλυσης του πηγαίου κώδικα και χρησιμοποιεί UML διαγράμματα κλάσεων για να αναπαραστήσει τα συστατικά της εφαρμογής, τις σχέσεις που τα συνδέουν και την πλοήγηση από ένα συστατικό σε ένα άλλο. Οι Schwabe et al. 0 ορίζουν ένα πλαίσιο εργασίας για την επαναχρησιμοποίηση του σχεδιασμού μιας εφαρμογής παγκόσμιου ιστού, διαχωρίζοντας τα θέματα που αφορούν τη συμπεριφορά της εφαρμογής από αυτά της μοντελοποίησης πλοήγησης (navigational modelling) και του σχεδιασμού της διεπαφής (interface design). Οι Boldyreff et al. 0 προτείνουν ένα σύστημα που εκμεταλλεύεται τις παραδοσιακές τεχνικές αντίστροφης μηχανίκευσης, για την εξαγωγή από εφαρμογές παγκόσμιου ιστού περιεχομένου που εμφανίζεται πολλές φορές, με στόχο την επαναδόμησή των εφαρμογών και τη βελτίωση της συντηρησιμότητάς τους. Οι Vanderdonckt et al. 0 περιγράφουν το σύστημα VAQUISTA, το οποίο επιτρέπει την αντίστροφη μηχανίκευση του μοντέλου παρουσίασης μιας ιστοσελίδας, προκειμένου να μεταφερθεί σε άλλο περιβάλλον. Οι Di Lucca et al. 0, 0 παρουσιάζουν μία μέθοδο και ένα εργαλείο 0 για την αντίστροφη μηχανίκευση εφαρμογών παγκόσμιου ιστού. Η μέθοδος ορίζει τις αναγκαίες ενέργειες που πρέπει να γίνουν, προκειμένου να εξαχθεί ένα σύνολο όψεων (set of views) της εφαρμογής παγκόσμιου ιστού σε διαφορετικά επίπεδα αφαίρεσης. Οι όψεις αυτές παρουσιάζονται με τη μορφή UML διαγραμμάτων, τα οποία μπορούν να δημιουργηθούν με την υποστήριξη και τη χρήση ενός εργαλείου αντίστροφης μηχανίκευσης. Άλλες προσεγγίσεις ασχολούνται με την ανάλυση εφαρμογών παγκόσμιου ιστού με στόχο την αποτίμηση ή τη βελτίωση της ποιότητας των εφαρμογών αυτών. Στο 0 προτείνεται μία μεθοδολογία ανάλυσης του κώδικα μιας εφαρμογής παγκόσμιου ιστού, η οποία επιτρέπει την ανάκτηση ενός πειραματικού μοντέλου (test model) της εφαρμογής. Επίσης παρουσιάζεται μία στρατηγική για τον έλεγχο και την ορθότητα των συστατικών του πειραματικού μοντέλου. Οι Tonella et al. 0 προτείνουν τεχνικές και αλγορίθμους που υποστηρίζουν την επαναδόμηση πολύγλωσσων εφαρμογών, που μπορούν να χρησιμοποιηθούν για την παραγωγή συντηρήσιμων και συνεπών πολύγλωσσων εφαρμογών. Οι Paganelli et al. 0 περιγράφουν το εργαλείο TERESA, το οποίο, κάνοντας στατική ανάλυση του πηγαίου κώδικα, παράγει ένα μοντέλο μιας εφαρμογής παγκόσμιου ιστού κατευθυνόμενο σε εργασίες (task-oriented). Στο μοντέλο αυτό κάθε εργασία αναπαριστά μεμονωμένες συναρτήσεις μιας σελίδας που κλήθηκαν από κάποιο αίτημα του χρήστη (user requests). Το μοντέλο που παράγεται είναι κατάλληλο για την αποτίμηση της χρηστικότητας ενός δικτυακού τόπου, ή για την ανίχνευση και καταγραφή του προφίλ των χρηστών. Στο 0 περιγράφεται ένα εργαλείο αυτόματης κατασκευής μοντέλων UML από υπάρχουσες εφαρμογές παγκόσμιου ιστού. Το εργαλείο αυτό, που ονομάζεται WebUML, αναλύει τον κώδικα της εφαρμογής και

92 αλλεπιδρά με τον εξυπηρετητή ιστού, προκειμένου να παράγει διαγράμματα κλάσσεων και καταστάσεων (class και state diagrams). Οι τεχνικές και τα εργαλεία που παρουσιάζονται στις παραπάνω δημοσιεύσεις επιτρέπουν την ανάκτηση κάποιου είδους πληροφορίας από τον πηγαίο κώδικα μιας υπάρχουσας εφαρμογής παγκόσμιου ιστού, συμπεριλαμβανομένης πληροφορίας που αφορά την οργάνωση της δομής, τη συμπεριφορά της εφαρμογής και την ποιότητά της. 5.3 Συστατικά Εφαρμογής Παγκόσμιου Ιστού Για να γίνει αντίστροφη μηχανίκευση σε μία εφαρμογή παγκόσμιου ιστού, πρέπει πρώτα από όλα να κατανοηθεί η δομή της και τα συστατικά από τα οποία απαρτίζεται. Οι εφαρμογές παγκόσμιου ιστού αποτελούνται από πολλά συστατικά, τα οποία είναι διασυνδεδεμένα μεταξύ τους προκειμένου να υλοποιήσουν τη λειτουργικότητα της εφαρμογής. Τα συστατικά αυτά υλοποιούνται με χρήση διαφόρων προγραμματιστικών γλωσσών και είναι πιθανόν να εκτελούνται σε πολλά κατανεμημένα στο δίκτυο μηχανήματα. Κάθε συστατικό είναι γραμμένο σε μία γλώσσα κατάλληλη να υλοποιήσει τη λειτουργικότητα του. Για την ένωση των διαφορετικών συστατικών, χρησιμοποιούνται scripting γλώσσες. Τα διάφορα συστατικά χρησιμοποιούν βάσεις δεδομένων για την αποθήκευση και το διαμοιρασμό των δεδομένων τους 0, 0, 0. Μία εφαρμογή απαρτίζεται κυρίως από τα εξής συστατικά: Φυλλομετρητές Παγκόσμιου Ιστού (web browsers): Είναι ένα πρόγραμμα (εφαρμογή λογισμικού) το οποίο στέλνει μία αίτηση για μία web σελίδα σε έναν υπολογιστή. Όταν η σελίδα αυτή επιστραφεί, την προβάλει στο χρήστη, και του επιτρέπει να πλοηγείται στο δίκτυο ακολουθώντας τους διαφόρους συνδέσμους που περιέχουν οι σελίδες. Οι φυλλομετρητές παγκόσμιου ιστού χρησιμοποιούνται κυρίως από τους πελάτες (clients). Εξυπηρετητές Παγκόσμιου Ιστού (web servers): Ο εξυπηρετητής παγκόσμιου ιστού είναι ένα πρόγραμμα που τρέχει σε κάποια διεύθυνση του διαδικτύου και περιμένει αιτήματα (requests) από διάφορους φυλλομετρητές παγκόσμιου ιστού. Όταν λάβει κάποιο αίτημα, επιστρέφει στο φυλλομετρητή την ιστοσελίδα που ζήτησε. Εξυπηρετητές Εφαρμογής (application servers): Οι εξυπηρετητές αυτοί επιτρέπουν στο χρήστη να εκτελεί πολύπλοκες συναλλαγές μέσω των ιστοσελίδων. Τέτοιου είδους συναλλαγές είναι οι ερωτήσεις σε μία βάση δεδομένων ή η εκτέλεση προγραμμάτων που έχουν φορτωθεί στον εξυπηρετητή. Στατικές Σελίδες: Οι σελίδες αυτές περιέχουν μόνο HTML κώδικα ή και εκτελέσιμο κώδικα που εκτελείται στο φυλλομετρητή του πελάτη. Εξυπηρετούνται από τον εξυπηρετητή ιστού και δε χρειάζεται να γίνει προεπεξεργασία τους από τον εξυπηρετητή της εφαρμογής.

93 Δυναμικές Σελίδες: Οι σελίδες αυτές περιέχουν ένα συνδυασμό HTML ετικετών και εκτελέσιμου κώδικα. Όταν ζητείται μία δυναμική σελίδα, ο εξυπηρετητής της εφαρμογής την προεπεξεργάζεται και ενώνει δεδομένα από διάφορους πόρους, όπως από αντικείμενα του παγκόσμιου ιστού ή από βάσεις δεδομένων, προκειμένου να παράγει την τελική HTML ιστοσελίδα που επιστρέφεται στο φυλλομετρητή. Τέτοιους είδους σελίδες είναι οι Active Server Pages και οι Java Server Pages. Αντικείμενα Παγκόσμιου Ιστού (Web Objects): Τα αντικείμενα αυτά είναι κομμάτια μεταγλωττισμένου κώδικα και παρέχουν στο υπόλοιπο σύστημα μία υπηρεσία μέσω μίας καθορισμένης διεπαφής. Υποστηρίζονται από κατανεμημένες τεχνολογίες, όπως οι CORBA, EJB και η DCOM. Δεν έχουν την έννοια των αντικειμενοστρεφών προγραμματιστικών αντικειμένων, που ορίζονται στη C++ ή στη Java. Πολυμεσικά Αντικείμενα: Πολυμεσικά αντικείμενα είναι οι ψηφιακές εικόνες, τα γραφικά, οι σχεδιοκινήσεις (animations), τα αρχεία ήχου και βίντεο. Βάσεις Δεδομένων: Χρησιμοποιούνται για την αποθήκευση δεδομένων, τα οποία μοιράζονται ανάμεσα στα διάφορα συστατικά. Η Εικόνα 44 παρουσιάζει τη ροή των δεδομένων μεταξύ των διάφορων συστατικών μιας εφαρμογής παγκόσμιου ιστού. Τα βήματα που ακολουθούνται είναι τα εξής: Ο χρήστης της εφαρμογής χρησιμοποιεί το φυλλομετρητή (web browser) του σα μια διεπαφή για να προσπελάσει τη λειτουργικότητα της εφαρμογής παγκόσμιου ιστού. Αλληλεπιδρά με το φυλλομετρητή επιλέγοντας συνδέσμους και συμπληρώνοντας πεδία φόρμας. Ο φυλλομετρητής στη συνέχεια μεταδίδει τις ενέργειες του χρήστη στον εξυπηρετητή παγκόσμιου ιστού σε μορφή αιτήσεων. Οι αιτήσεις αποστέλλονται με χρήση του HTTP πρωτοκόλλου. Εικόνα 44: Ροή Δεδομένων Ανάμεσα στα Συστατικά μιας Εφαρμογής Παγκόσμιου Ιστού Ο εξυπηρετητής παγκόσμιου ιστού, όταν λάβει κάποια αίτηση, αποφασίζει αν μπορεί να την εξυπηρετήσει ο ίδιος, ή αν πρέπει να καλέσει τον εξυπηρετητή της εφαρμογής. Ο εξυπηρετητής παγκόσμιου ιστού μπορεί να εξυπηρετήσει άμεσα στατικές HTML σελίδες (static pages) και πολυμεσικό υλικό, όπως εικόνες, video, ή ήχο.

94 Ο εξυπηρετητής της εφαρμογής, εφόσον κληθεί, επεξεργάζεται τις δυναμικές σελίδες (active pages) και επιστρέφει το αποτέλεσμά τους στον εξυπηρετητή παγκόσμιου ιστού σε μορφή στατικών HTML σελίδων. Ο εξυπηρετητής παγκόσμιου ιστού, με τη σειρά του, επιστρέφει την HTML σελίδα πίσω στο φυλλομετρητή που του τη ζήτησε. Τέλος, ο φυλλομετρητής εμφανίζει στο χρήστη τη σελίδα που επιστράφηκε. 5.4 Μέθοδος Αντίστροφης Μηχανίκευσης Στο υποκεφάλαιο αυτό παρουσιάζεται μία μέθοδος που έχει αναπτυχθεί [35] για αντίστροφη μηχανίκευση εφαρμογών παγκόσμιου ιστού που έχουν δημιουργηθεί με χρήση της ASP.NET, προκειμένου να μοντελοποιηθούν, με χρήση της WebML. Η ίδια μέθοδος μπορεί να εφαρμοστεί και για αντίστροφη μοντελοποίηση εφαρμογών παγκόσμιου ιστού με χρήση άλλων μεθόδων μοντελοποίησης με ελάχιστες τροποιήσεις Βήματα Μεθόδου Η προσέγγιση που προτείνεται στηρίζεται στη στατική ανάλυση του πηγαίου κώδικα της εφαρμογής. Για τη στατική ανάλυση του κώδικα απαιτείται η δημιουργία δύο αναλυτών. Ο πρώτος αναλυτής διατρέχει τα.aspx αρχεία και δημιουργεί ένα δέντρο για κάθε σελίδα με html και aspx ετικέτες-tags. Στη συνέχεια με χρήση ενός πίνακα αντιστοίχησης αντιστοιχίζονται οι ετικέτες που περιέχονται στον πίνακα αυτό σε δομικές μονάδες της WebML. Έχουμε με αυτό τον τρόπο μία πρώτη εκτίμηση των δομικών μονάδων που περιέχουν οι σελίδες. Τέλος, ο δεύτερος αναλυτής διατρέχει τα αρχεία κώδικα της εφαρμογής. Στόχος του δεύτερου αναλυτή είναι η εύρεση των πινάκων της βάσης δεδομένων από τους οποίους αντλεί πληροφορία κάθε δομική μονάδα που εντοπίστηκε κατά την ανάλυση των aspx σελίδων. Η αρχιτεκτονική του προτεινόμενου συστήματος παρουσιάζεται στην Εικόνα 45. Εικόνα 45: Αρχιτεκτονική προτεινόμενου Συστήματος Αναλυτικά τα βήματα της μεθόδου είναι τα εξής:

95 Δημιουργία ASP-Tag δέντρων Προετοιμασία σελίδων Οι σελίδες που πρόκειται να αναλυθούν σε αυτό το βήμα είναι aspx έγγραφα. Κάθε.aspx σελίδα αποτελείται από κείμενο και ετικέτες (tags). Μία ετικέτα, σε ένα έγγραφο παγκόσμιου ιστού, αποτελείται από ένα όνομα και μία προαιρετική λίστα από κατηγορήματα-χαρακτηριστικά. Κείμενο θεωρείται μια ακολουθία χαρακτήρων που βρίσκεται ανάμεσα σε δύο ετικέτες. Οι ετικέτες εμφανίζονται συνήθως σε ζευγάρια, εκτός από ορισμένες εξαιρέσεις. Μία ετικέτα της οποίας το όνομα δεν ξεκινά με πλάγια γραμμή ( / ) ονομάζεται «ετικέτα-αρχής», αλλιώς ονομάζεται «ετικέτα-τέλους». Το όνομα μιας «ετικέτας-τέλους» αποτελείται από μία πλάγια γραμμή ( / ) και το όνομα της αντίστοιχης «ετικέτας-αρχής» 0. Πολλές φορές κατά τη συγγραφή μιας aspx σελίδας με ένα απλό κειμενογράφο, είναι πολύ πιθανό να γίνουν συντακτικά λάθη και η παραγόμενη σελίδα να μην είναι «σωστά δομημένη», να μην ικανοποιούνται δηλαδή οι παρακάτω συνθήκες: Όλες οι ετικέτες εμφανίζονται σε «ζευγάρια». Δηλαδή, κάθε «ετικέτα-αρχή» έχει μία αντίστοιχη «ετικέτα-τέλος». Εξαίρεση αποτελούν οι ετικέτες «<br>, <img>, <hr>» και άλλες, οι οποίες αναφέρονται στα πρότυπα καθορισμού της γλώσσας HTML και ASPX και δεν απαιτούν την ύπαρξη αντίστοιχης «ετικέτα-τέλους». Ωστόσο, οι φυλλομετρητές του παγκόσμιου ιστού έχουν τη δυνατότητα να μεταφράζουν και να παρουσιάζουν τις σελίδες στο χρήστη κανονικά, χωρίς πρόβλημα, σαν να μην υπήρχαν συντακτικά λάθη 0. Στην περίπτωση όμως που θέλουμε να αναλύσουμε στατικά τον κώδικα μιας.aspx σελίδας πρέπει η σελίδα αυτή να είναι είναι «σωστά δομημένη». Οι σελίδες που δεν έχουν την παραπάνω μορφή πρέπει να μετατραπούν και να αντικατασταθούν από «σωστά-δομημένες» σελίδες. Η μετατροπή αυτή, που αναφέρεται και ως κανονικοποίηση σελίδας, περιλαμβάνει: Εισαγωγή των ετικετών που λείπουν (συνήθως οι προγραμματιστές ξεχνούν να βάλουν κάποια «ετικέτα-τέλους»). Επαναδιάταξη των ζευγών των ετικετών. Η κανονικοποίηση της σελίδας είναι απαραίτητη, προκειμένου να αναπαρασταθεί μία σελίδα σε δενδρική μορφή και κάθε κόμβος να έχει μόνο έναν πατέρα. Μπορεί να επιτευχθεί με χρήση κάποιου εργαλείου όπως του HTML TIDY Δενδρική Αναπαράσταση Σελίδων Μία σωστά δομημένη σελίδα μπορεί να αναπαρασταθεί από ένα asp-tag δέντρο. Τα βήματα που ακολουθούνται για τη δημιουργία του δέντρου είναι τα ακόλουθα: 1. Διατρέχουμε το κείμενο της aspx σελίδας και κάθε φορά που συναντάμε μία «ετικέτα-αρχής» δημιουργούμε έναν κόμβο. Το όνομα του κόμβου είναι το όνομα της ετικέτας. Συνήθως, σε μία σωστά δομημένη σελίδα, μη λαμβάνοντας υπόψη τις ετικέτες που περιέχουν ψευδοεντολές (directives), ο πρώτος κόμβος που δημιουργείται περιέχει το κείμενο <html>.

96 2. Αν η «ετικέτα-αρχής» περιέχει κατηγορήματα, δημιουργούμε για κάθε κατηγόρημα φύλλα-παιδιά του αντίστοιχου κόμβου της. Το κείμενο των φύλλων αυτών είναι το κείμενο του κατηγορήματος και της τιμής του. 3. Αν πριν βρεθεί η «ετικέτα-τέλους» της «ετικέτας-αρχής» που είναι ανοιχτή, συναντήσουμε μία νέα «ετικέτα-αρχής» δημιουργούμε ένα νέο κόμβο. Ο νέος κόμβος που δημιουργείται είναι παιδί του κόμβου που αναπαριστά την «ετικέτα-αρχής», που ήταν ήδη ανοιχτή. Με τον ίδιο τρόπο που περιγράφηκε στο βήμα 2, δημιουργούμε φύλλα-παιδιά του νέου κόμβου, για τη λίστα κατηγορημάτων της νέας «ετικέτας-αρχής». 4. Δε δημιουργούμε κόμβους για τις «ετικέτες-τέλους». Για παράδειγμα, έστω ότι έχουμε μία.aspx σελίδα, ο κώδικας της οποίας παρουσιάζεται στην Εικόνα 46. Page language="c#" Codebehind="News.aspx.cs" AutoEventWireup="false" Inherits="News_Management.News" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html> <head> <title>ειδησεισ</title> </head> <body> <table> <tr> <td> <asp:datagrid id="news_categories" DataKeyField="Category_id" runat="server"> <Columns> <asp:hyperlinkcolumn DataNavigateUrlField="Category_id" DataNavigateUrlFormatString="News.aspx?category_id={0}" DataTextField="Category_Name"> </asp:hyperlinkcolumn> </Columns> </asp:datagrid> </td> </tr> </body> </html> Εικόνα 46: Κώδικας.aspx σελίδας Η σελίδα αυτή, ακολουθώντας τους παραπάνω κανόνες αναπαρίσταται από το asp-tag δέντρο που φαίνεται στην Εικόνα 47. html head body title table tr td asp:datagrid DataKeyField= Category_id Columns runat= server id= News_Categories asp:hyperlinkcolumn DataTextField= Category_Name DataNavigateUrlFormatString= News.aspx?category_id={0} Εικόνα 47: Asp-tag tree DataNavigateUrlField= category_id

97 Αντιστοίχιση Ετικετών σε Δομικές Μονάδες της WebML Στο βήμα αυτό, απομονώνουμε τους κόμβους ή τα φύλλα που μας ενδιαφέρουν. Η απομόνωση αυτή γίνεται με χρήση του πίνακα αντιστοίχησης που παρουσιάζεται στη συνέχεια (Πίνακας 9). Για κάθε σελίδα της εφαρμογής διατρέχουμε τους κόμβους του αντίστοιχου δέντρου που δημιουργήθηκε στο προηγούμενο βήμα. Αν μία ετικέτα ενός κόμβου του δέντρου ανήκει στον ακόλουθο πίνακα, δημιουργούμε μία εγγραφή σε ένα αρχείο κειμένου. Η εγγραφή περιέχει τον τύπο του unit με τον οποίο αντιστοιχίζεται η ετικέτα του κόμβου και το id του αντικειμένου που αναπαριστά ο κόμβος. Στο σημείο αυτό πρέπει να αναφερθεί ότι κάθε αντικείμενο μιας aspx σελίδας έχει ένα μοναδικό id. Η εύρεση του id του αντικειμένου μπορεί να επιτευχθεί διατρέχοντας τα φύλλα-παιδιά του κόμβου, που αναπαριστούν τη λίστα κατηγορημάτων. Οι αντιστοιχήσεις των διαφόρων html και asp controls σε δομικές μονάδες της WebML που εμφανίζονται στον Πίνακα 8 είναι απλές και ξεκάθαρες. Το αρχείο κειμένου που δημιουργείται αποθηκεύεται στον ίδιο φάκελο με την.aspx σελίδα. Το όνομα του αρχείου αυτού δημιουργείται με την ένωση του ονόματος της.aspx σελίδας από την οποία προέρχεται και την κατάληξη «.txt». HTML Controls WebML ASP Controls WebML <a href=" "> Link <asp:button> Link <button> Link <asp:textbox> EntryUnit <input type="button"> Link <asp:checkboxlist> Multi_choice index <input type="password"> EntryUnit <asp:dropdownlist> IndexUnit <input type="text"> EntryUnit <asp:listbox> IndexUnit <input type="submit> Link <asp:repeater> IndexUnit <select> IndexUnit <asp:datalist> MultiDataUnit <textarea> EntryUnit <asp:datagrid> IndexUnit Πίνακας 9: Πίνακας αντιστοίχησης html-asp tags σε WebML Units Οι δομικές μονάδες που εμφανίζονται στο αρχείο κειμένου μετά από αυτό το βήμα δεν είναι οι τελικές, αλλά μπορούν να αλλάξουν, ύστερα από την εκτέλεση του εξαγωγέα του παρακάτω βήματος Εξαγωγέας Βάσης Δεδομένων Στο βήμα αυτό, επεξεργαζόμαστε τα αρχεία κειμένου που δημιουργήθηκαν στο προηγούμενο βήμα και αναλύουμε τα αρχεία κώδικα που συνδέονται με τις.aspx σελίδες από τις οποίες προέρχονται τα αντίστοιχα αρχεία κειμένου. Κάθε αρχείο κειμένου, όπως προαναφέρθηκε, περιλαμβάνει τα id των ετικετών, που εμφανίζονται στις.aspx σελίδες. Για κάθε id, διατρέχουμε το αντίστοιχο αρχείο

98 κώδικα, προκειμένου να βρούμε κλήσεις στη βάση δεδομένων. Συγκεκριμένα, ψάχνουμε SQL λέξεις-κλειδιά, όπως select και update και στη συνέχεια λέξεις όπως from και where, προκειμένου να βρούμε από ποιον πίνακα της βάσης αντλεί πληροφορία η συγκεκριμένη δομική μονάδα. Είναι πολύ πιθανό, για κάποιες δομικές μονάδες να μη βρεθεί από ποιον πίνακα αντλούν πληροφορία, είτε γιατί απαιτείται η εκτέλεση κάποιας stored procedure, είτε γιατί το query string ανήκει σε κάποια άλλη σελίδα ή είναι ενσωματωμένο σε κάποιο dll. Αν η αναζήτηση είναι επιτυχημένη και βρεθεί το sql query string που αντιστοιχεί σε κάποια δομική μονάδα, δίνεται η δυνατότητα αλλαγής του τύπου της συγκεκριμένης δομικής μονάδας. Έστω για παράδειγμα ότι κάποια <asp:datagrid> ετικέτα έχει αντιστοιχιστεί σε μία δομική μονάδα ευρετηρίου και έστω ότι κατά την ανάλυση των αρχείων κειμένου βρεθεί ότι στον όρο «where» του αντίστοιχου sql query string, αναζητούνται αντικείμενα με βάση το κλειδί ενός πίνακα. Τότε το αντικείμενο που επιστρέφεται, προφανώς, είναι μοναδικό. Οπότε το συγκεκριμένο <asp:datagrid> tag θα πρέπει να αναπαρασταθεί από μία δομική μονάδα δεδομένων και όχι από μία δομική μονάδα ευρετηρίου. Με κατάλληλη επεξεργασία των query strings που βρέθηκαν μπορεί να εξαχθεί χρήσιμη πληροφορία για κάθε δομική μονάδα, όπως για παράδειγμα ποιον πίνακα χρησιμοποιεί, ποια πεδία-στήλες θα εμφανιστούν, καθώς και με ποια διάταξη θα εμφανιστούν τα αποτελέσματα (ascending ή descending). Τα αποτελέσματα αυτά ξαναποθηκεύονται στα ίδια αρχεία κειμένου. Σε αυτό το στάδιο ζητείται πολλές φορές η επέμβαση του ίδιου του προγραμματιστή της εφαρμογής ή και του δημιουργού της βάσης δεδομένων Αναπαράσταση της εφαρμογής σε δέντρο. Στο βήμα αυτό διατρέχουμε τους καταλόγους της εφαρμογής και δημιουργούμε ένα δέντρο, σύμφωνα με τους φακέλους που περιέχει η εφαρμογή, τις σελίδες και τις δομικές μονάδες που υπάρχουν σε κάθε σελίδα. Ορίζεται ως κείμενο της ρίζας του δέντρου το όνομα της εφαρμογής. Στη συνέχεια, προστίθενται κόμβοι-παιδιά της ρίζας για κάθε φάκελο και για κάθε aspx αρχείο που περιέχει ο αρχικός φάκελος της εφαρμογής. Επαναληπτικά, προστίθενται κόμβοιπαιδιά και για τους υποφακέλους των φακέλων και για τα aspx αρχεία των υποφακέλων. Στη συνέχεια, σε κάθε aspx αρχείο, προστίθενται κόμβοι-παιδιά, των οποίων το κείμενο είναι ο τύπος των αναγνωρισμένων units και το id του unit. Τέλος, στους κόμβους που αναπαριστούν δομικές μονάδες προστίθενται φύλλα-παιδιά, το κείμενο των οποίων είναι τα διάφορα χαρακτηριστικά που εξήχθησαν για κάθε δομική μονάδα κατά το προηγούμενο βήμα Προσθήκη ακμών στο δέντρο, με βάση αναγνωρισμένους συνδέσμους Μετά τη δημιουργία του δέντρου, τα αρχεία κειμένου που έχουν δημιουργηθεί ξαναελέγχονται προκειμένου να εντοπιστεί αν περιέχουν κάποιο σύνδεσμο που είτε μεταφέρει πληροφορία (contextual link) από μία δομική μονάδα σε μία σελίδα, ή σε μία άλλη δομική μονάδα ή απλά μας κατευθύνει σε κάποια άλλη σελίδα χωρίς να μεταφέρει πληροφορία (non-contextual link). Σε περίπτωση που βρεθεί κάποιος

99 σύνδεσμος, προστίθενται ακμές στο δέντρο που ενώνουν τους κόμβους τους οποίους δείχνει ο σύνδεσμος. Η αναζήτηση συνδέσμων μέσα στα αρχεία κειμένου γίνεται αφού έχει ήδη σχηματιστεί ένα αρχικό δέντρο της εφαρμογής, έτσι ώστε οι δομικές μονάδες στις οποίες δείχνουν οι σύνδεσμοι να είναι υπαρκτές. Με τον τρόπο αυτό, αν κάποιο unit στο οποίο δείχνει ένας σύνδεσμος δεν υπάρχει, θεωρούμε ότι έχει βρεθεί κάποιος λανθασμένος σύνδεσμος. Στο σημείο αυτό, ο προγραμματιστής της εφαρμογής ενημερώνεται προκειμένου είτε να διαγράψει το σύνδεσμο από τη συγκεκριμένη σελίδα, ή να διορθώσει το λάθος Παρουσίαση τελικής Μορφής του Δέντρου Τέλος, μετά τη διόρθωση των συνδέσμων από τον προγραμματιστή, το δέντρο παίρνει την τελική του μορφή. 5.5 Συμπεράσματα Στην ενότητα αυτή, παρουσιάστηκε μία μέθοδος αντίστροφης μηχανίκευσης μιας υπάρχουσας εφαρμογής, προκειμένου να μοντελοποιηθεί με χρήση της WebML. Με τη μέθοδο αυτή, μπορούμε να αποκτήσουμε μία καλύτερη άποψη για την αρχιτεκτονική της εφαρμογής, ενώ μπορούμε, έχοντας το WebML εννοιολογικό σχήμα της εφαρμογής, να χρησιμοποιήσουμε τη μέθοδο που περιγράφεται στο επόμενο κεφάλαιο για να ανιχνεύσουμε πιθανούς κλώνους μοντέλων και να εκτιμήσουμε την ποιότητά της. 5.6 Βιβλιογραφία 1. Bellettini, C., Marchetto, A., Trentini, A. (2004), WebUml: reverse engineering of web applications, In the Proceedings of the 2004 ACM symposium on Applied computing, Nicosia, Cyprus, pp Boldyreff, C. and Kewish, R. (2001), Reverse engineering to achieve maintainable WWWsites, In the Proceedings of the 8th Working Conference on Reverse Engineering, IEEE Computer Society Press: Los Alamitos CA, pp Bouillon, L., Chow, K. and Vanderdonckt, J. (2004), Flexible Re-engineering of Web Sites, In the Proceedings of the 9th international conference on Intelligent user interfaces, Funchal, Madeira, Portugal, pp Buttler, D., Liu, L. and Pu, C. (2001), A Fully Automated Object Oriented Extraction for World Wide Web, In the Proceedings of the 20th International Conference on Distributed Computing Systems (ICDCS 01), May 2001, Phoenix, Arizona. 5. Chikofsky, E. and Cross II, J. (1990), Reverse Engineering and Design Recovery: A Taxonomy, IEEE Software, vol. 7, no. 1, pp Chung, S. and Lee, Y. - S. (2000), Reverse Software Engineering with UML for Web Site Maintenance, In the Proceedings of the 1st International Conference on Web Information Systems Engineering (WISE 00), vol. 2, June , pp Chung, S. and Lee, YS. (2001), Reverse software engineering with UML for Web site maintenance, In the Proceedings of the 1st International Conference on Web Information Systems Engineering, IEEE Computer Society Press: Los Alamitos CA, pp Conallen, J. (1999), Building Web Applications with UML, Addison-Wesley, Reading MA.

100 9. Conallen, J. (1999), Modelling Web application architectures with UML, Communications of the Association for Computing Machinery, vol. 42, no. 10, pp , January-April Di Lucca G., Fasolino A.-R. and Tramontana, P. (2004), Reverse engineering web applications: the WARE approach, Journal of Software Maintenance and Evolution: Research and Practice, vol. 16 no. 1-2, pp Di Lucca, G., Di Penta, M., Antoniol, G. and Casazza, G. (2001), An approach for reverse engineering of Web-based applications, In the Proceedings of the 8th Working Conference on Reverse Engineering, IEEE Computer Society Press: Los Alamitos CA, pp Di Lucca, G., Fasolino, A.-R. and Tramontana, P. (2002), Towards a Better Comprehensibility of Web Applications: Lessons Learned from Reverse Engineering Experiments, In the Proceedings of the 4th International Workshop on Web Site Evolution WSE 2002, pp Di Lucca, G., Fasolino, A.-R., Faralli, F. and De Carlini, U. (2002), Testing Web applications, In the Proceedings of the International Conference on Software Maintenance, IEEE Computer Society Press: Los Alamitos CA, pp Di Lucca,G., Fasolino, A.-R., De Carlini, U., Pace, F., and Tramontana, P. (2002), WARE: A tool for the reverse engineering of Web applications, In the Proceedings of the 6th European Conference on Software Maintenance and Reengineering, IEEE Computer Society Press: Los Alamitos CA, pp Estiévenart, F., François, A., Henrard, J. and Hainaut, J-L. (2003), A tool-supported method to extract data and schema from web sites, in Proceedings of the 5th International Workshop on Web Site Evolution (WSE 2003), Amsterdam (The Netherlands). 16. Fraternali, P., Matera, M. and Maurino, A. (2002), WQA: an XSL Framework for Analyzing the Quality of Web Applications, In the Proceedings of IWWOST'02, Malaga, Spain. 17. Hassan, A. (2001), Architecture Recovery of Web Applications, Master s Thesis, Department of Computer Science, Faculty of Mathematics, University of Waterloo, Ontario, Canada. 18. Hassan, A. and Holt, R. (2002), Architecture Recovery of Web Applications, In the Proceedings of the 24th International Conference on Software Engineering, Orlando, Florida, pp Hassan, A. and Holt, R. (2001), Towards a better understanding of Web applications, In the Proceedings of the 3rd International Workshop on Web Site Evolution, IEEE Computer Society Press: Los Alamitos CA, pp Huang, S. (2001), Evaluating the reverse engineering capabilities of web tools for understanding site contents and structure, Master s thesis, University of California Riverside. 21. Martin, J. and Martin, L. (2001), Web site maintenance with software engineering tools, In the Proceedings of the 3rd International Workshop on Web Site Evolution, IEEE Computer Society Press: Los Alamitos CA, pp Kienle, H. and Müller H. (2001), Leveraging Program Analysis for Web Site Reverse Engineering, In the Proceedings of the 3rd International Workshop on Web Site Evolution (WSE 2001), November 2001, Florence, Italy. 23. Müller, H. and Klashinsky, K. (1988), Rigi A system for programming in the large, Proceedings International Conference on Software Engineering, IEEE Computer Society Press: Los Alamitos CA, pp Paganelli, L. and Paterno, F. (2002), Automatic reconstruction of the underlying interaction design of Web applications, In the Proceedings of the 14th International Conference on Software Engineering and Knowledge Engineering (SEKE02), ACM Press:New York, pp Ragget D., Clean up your Web pages with HTML TIDY, Ricca, F. and Tonella, P. (2000), Web site analysis: Structure and evolution, In the Proceedings of the International Conference on Software Maintenance, IEEE Computer Society Press: Los Alamitos CA, pp Ricca, F. and Tonella, P. (2001), Understanding and restructuring Web sites with ReWeb, IEEE Multimedia 2001, vol. 8, no. 2, April-June 2001, pp Ricca, F. and Tonella, P. (2001), Analysis and Testing of Web Applications, In the Proceedings of the 23th International Conference on Software Engineering (ICSE 2001), Toronto, Canada, May 2001, pp Ricca, F. and Tonella, P. (2001), Building a Tool for the Analysis and Testing of Web Applications: Problems and Solutions, In the Proceedings of the 7th International Conference on Tools

101 and Algorithms for the Construction and Analysis of Systems (TACAS 200), April 2001, Genova, Italy, pp Ricca, F. and Tonella, P. (2002), Dynamic Model Extraction and Statistical Analysis of Web Applications, In the Proceedings of the 4th International Workshop on Web Site Evolution (WSE 2002), October 2002, Montreal, Canada, pp Schwabe, D., Esmeraldo, L., Rossi, G. and Lyardet, F. (2001), Engineering Web applications for reuse, IEEE Multimedia, vol. 8, no. 1, pp Tilley, S. and Huang, V. (2001), Evaluating the reverse engineering capabilities of web tools for understanding site content and structure: A case study, In the Proceedings of the 23rd International Conference on Software Engineering (ICSE 2001), May 2001, pp Tonella, P., Ricca, F., Pianta, E. and Girardi, C. (2002), Restructuring multilingual Web sites, Proceedings of the International Conference on Software Maintenance, IEEE Computer Society Press: Los Alamitos CA, pp Vanderdonckt, J., Bouillon, L. and Souchon, N., (2001), Flexible Reverse Engineering of Web Pages with VAQUISTA, In the Proceedings Of IEEE 8th Working Conference on Reverse Engineering WCRE'2001, IEEE Computer Society Press: Los Alamitos, Stuttgart, 2-5 October 2001, pp Κατσίμπα Θεοδώρα, Μοντελοποίηση εφαρμογών παγκόσμιου ιστού: Αποδοτική αναζήτηση και εφαρμογή σχεδιαστικών λύσεων και προτύπων, CEID-MSc ,pp85-102

102 6 Υλοποίηση 6.1 Εισαγωγή Στο κεφάλαιο αυτό θα περιγράψουμε ένα εργαλείο που ανιχνεύει και αξιολογεί πιθανούς κλώνους μοντέλων, με αποτέλεσμα τον προσδιορισμό τυχόν προβλημάτων στο εννοιολογικό σχήμα μιας εφαρμογής, που αφορούν την αποδοτικότητα, τη συνέπεια, την ευχρηστία και γενικότερα την ποιότητά της[1,2]. Αρχικά θα περιγραφεί η αρχιτεκτονική του συστήματος και θα ακολουθήσει και ένα παράδειγμα που θα βοηθήσει στην καλύτερη κατανόηση της λειτουργικότητάς του. 6.2 Γενική περιγραφή Το εργαλείο που υλοποιήθηκε παίρνει την xml αναπαράσταση ενός ή περισσότερων site views μιας web εφαρμογής και τις αναπαριστά σε έναν ή σε περισσότερους γράφους. Ο πρώτος μετασχηματισμός γίνεται ως εξής: κάθε WebML στοιχείο (π.χ. data unit, index unit κ.τ.λ.) αναπαρίσταται με ένα κόμβο και ο σύνδεσμος ανάμεσα σε δύο στοιχεία με μία ακμή. Ύστερα, προσδιορίζονται όλες οι πιθανές εμφανίσεις επαναλαμβανόμενων υπογράφων στον αρχικό γράφο και γίνονται highlighted. Τέλος, εμφανίζονται στατιστικά τα οποία μας δείχνουν πόσες φορές εμφανίζονται οι υπογράφοι στον αρχικό γράφο και το μέγεθός τους. Ο δεύτερος μετασχηματισμός είναι παρόμοιος με τον πρώτο με τη διαφορά ότι κάθε κόμβος αναπαριστά μια οντότητα. Προσδιορίζονται και γίνονται highlighted όλοι οι υπογράφοι που έχουν ακριβώς τις ίδιες οντότητες και τέλος εμφανίζονται και τα αντίστοιχα στατιστικά. Τέλος, στον τρίτο μετασχηματισμό κάθε κόμβος αναπαριστά τον τύπο κάθε WebML στοιχείου (π.χ. data unit, index unit κ.τ.λ.) και την αντίστοιχη οντότητα έτσι ώστε να προσδιοριστούν οι συνθέσεις πανομοιότυπων στοιχείων υπερκειμένου που αναφέρονται στο ίδιο ακριβώς περιεχόμενο. Το εργαλείο επιτρέπει μία βηματική εκτέλεση των παρακάτω βημάτων: Δημιουργία του γράφου. Παρουσιάζεται ένα πλαίσιο διαλόγου (dialog box), που ζητάει από το χρήστη να δώσει το xml αρχείο. Με βάση αυτό το αρχείο δημιουργούνται οι αντίστοιχοι γράφοι, οι οποίοι αναπαρίστανται στο visio σε μορφή flowchart και με WebML στοιχεία. Με βάση το xml αρχείο, δημιουργείται και το αρχείο που χρησιμοποιείται ως είσοδος για τον gspan ώστε να βρεθούν όλοι οι υπογράφοι του αρχικού γράφου, καθώς και το αρχείο που θα χρησιμοποιηθεί ως είσοδος για το graphgrep, που βρίσκει τις εμφανίσεις ενός υπογράφου στον αρχικό γράφο. Στατιστικά υπογράφων. Στο βήμα αυτό δημιουργούνται και εμφανίζονται στατιστικά τα οποία μας δείχνουν πόσες φορές εμφανίζονται οι υπογράφοι στον αρχικό γράφο και το μέγεθός τους. Αναπαράσταση υπογράφων. Κάθε υπογράφος που βρέθηκε στα προηγούμενα βήματα, γίνεται highlighted στην αναπαράσταση του αρχικού γράφου στο visio.

103 6.3 Τεχνολογία Για την κατασκευή του εργαλείου χρησιμοποιήθηκε το περιβάλλον Microsoft Visual Studio c#.net 2003, το Microsoft Office Visio 2003, τη βιβλιοθήκη interop για την επικοινωνία μεταξύ του visual studio και του visio καθώς και τα προγράμματα gspan και graphgrep. Το πρόγραμμα gspan παίρνει σαν είσοδο ένα αρχείο, το οποίο περιλαμβάνει όλους τους κόμβους και τις ακμές ενός γράφου. Το πρόγραμμα αυτό το τρέχουμε σε περιβάλλον linux και παίρνουμε το αρχείο εξόδου, που έχει επέκταση.fp. Το αρχείο εξόδου περιλαμβάνει όλους τους υπογράφους του γράφου που δώσαμε σαν είσοδο. Το πρόγραμμα αυτό δεν υποστηρίζει κατευθυνόμενους γράφους. Το πρόγραμμα graphgrep έχει γίνει compile στα windows μέσω της πλατφόρμας cygwin και καλείται από το πρόγραμμά μας, το οποίο του δίνει και την κατάλληλη είσοδο. Το πρόγραμμα αυτό παίρνει για είσοδο δύο αρχεία που έχουν επέκταση.dat : το ένα αρχείο έχει έναν ή περισσότερους γράφους και το άλλο αρχείο έχει έναν υπογράφο. Η έξοδος του προγράμματος αυτού είναι ένα αρχείο με επέκταση.dat.out το οποίο δείχνει σε ποιους γράφους και σε ποια σημεία του καθενός βρέθηκε ο υπογράφος. Ούτε αυτό το πρόγραμμα υποστηρίζει κατευθυνόμενους γράφους. 6.4 Αρχιτεκτονική Υψηλού Επιπέδου

104 Εικόνα 48 : Αρχιτεκτονική του συστήματος Όπως φαίνεται και στο παραπάνω διάγραμμα ροής της πληροφορίας (Error! Reference source not found.), ξεκινάμε από το αρχείο xml, το οποίο μπαίνει σαν είσοδος σε δύο parsers. O πρώτος parser αρχικά δημιουργεί τους κόμβους του γράφου και παρεμβάλλει βοηθητικούς κόμβους. Οι βοηθητικοί αυτοί κόμβοι χρησιμοποιούνται για να δηλώνεται η κατεύθυνση των ακμών, γιατί όπως είπαμε και παραπάνω τα δύο προγράμματα που χρησιμοποιήσαμε δεν υποστηρίζουν κατευθυνόμενους γράφους. Αναλυτικά αυτό θα το δούμε στην περιγραφή των modules. Μετά την κατασκευή των κόμβων καλείται το visio όπου γίνεται η αναπαράσταση του γράφου. Eπίσης, αυτός ο parser δημιουργεί το αρχείο εισόδου για το gspan. O δεύτερος parser δημιουργεί το αρχείο που αναπαριστά το γράφο για το graphgrep και ύστερα ο γράφος γίνεται build. Το αρχείο αυτό είναι ένα από τα δύο αρχεία εισόδου του graphgrep. Aφού τρέξουμε το gspan και δημιουργηθεί το output αρχείο (το οποίο περιλαμβάνει όλους τους υπογράφους) καλούμε τη συνάρτηση next_query. Η συνάρτηση αυτή παίρνει έναν-έναν τους υπογράφους του αρχείου εξόδου του gspan και τους μετατρέπει σε αρχεία εισόδου του graphgrep (queries). Ύστερα καλείται το graphgrep, το αρχείο εξόδου του οποίου, μπαίνει σε έναν τρίτο parser. O parser αυτός διαβάζει το αρχείο εξόδου του graphgrep και ανάλογα με την πληροφορία που διαβάζει για τη θέση και τον αριθμό των εμφανίσεων των υπογράφων βγάζει τα στατιστικά και εμφανίζει τους υπογράφους στον αρχικό γράφο. 6.5 Αναλυτική περιγραφή των modules Πριν δούμε αναλυτικότερα πώς δουλεύουν τα modules του κώδικά μας θα ήταν καλύτερο να δούμε τη μορφή των αρχείων που είναι είσοδοι για τα δύο προγραμματα που χρησιμοποιούμε (gspan, graphgrep). Αρχείο εισόδου του gspan: t #0 v 0 1 v 1 1 v 2 0 v 3 1 v 4 1 v 5 0 e e e e e e 0 2 1

105 H γραμμή v 0 1 δηλώνει έναν κόμβο που έχει αριθμό 0 και όνομα 1. Οι υπόλοιπες γραμμές με πρώτο γράμμα το v δηλώνουν ανάλογα τους υπόλοιπους κόμβους του γράφου. Η γραμμή e δηλώνει μια ακμή από τον κόμβο 0 στον κόμβο 1 και έχει όνομα 2. Πρώτο αρχείο εισόδου του graphgrep: # graph0 5 d i i d d Αυτό είναι το αρχείο που έχει τον αρχικό γράφο. Πρώτα εμφανίζεται ο αριθμός των κόμβων και ύστερα κάθε γραμμή έχει το όνομα ενός κόμβου. Κάθε κόμβος έχει και έναν κωδικό (ο οποίος δε φαίνεται στο αρχείο), που είναι η σειρά με την οποία εμφανίζεται στο αρχείο. Πχ ο πρώτος κόμβος d έχει κωδικό 0, ο κόμβος i έχει κωδικό1 κ.ο.κ. Όταν τελειώσουν οι κόμβοι εμφανίζεται ο αριθμός των ακμών που ακολουθούν. Τέλος εμφανίζονται οι ακμές. Δηλαδή η γραμμή 0 1 δηλώνει ότι υπάρχει μια ακμή ανάμεσα στον κόμβο 0 και στον κόμβο1. Δεύτερο αρχείο εισόδου του graphgrep: #query0 3 d i i Το αρχείο αυτό αποτελεί τον υπογράφο που θα αναζητήσουμε στον αρχικό γράφο και έχει ακριβώς την ίδια σύνταξη με το προηγούμενο αρχείο. Μια σημαντική παρατήρηση είναι ότι ενώ η ύπαρξη κατεύθυνσης στις ακμές του γράφου είναι αναγκαία, οι αλγόριθμοι που χρησιμοποιούμε (gspan, graphgrep) δεν υποστηρίζουν αυτή τη δυνατότητα. Για το λόγο αυτό, ανάμεσα σε δύο κόμβους παρεμβάλλουμε ένα βοηθητικό κόμβο με όνομα τα αρχικά των τύπων των δύο κόμβων. Πχ ο υπογράφος

106 Μετατρέπεται στον Αυτό γίνεται στον πρώτο μετασχηματισμό. Στους άλλους δύο, επειδή τα αρχικά των ονομάτων δε θα ήταν αντιπροσωπευτικά για να αποτελέσουν όνομα του ενδιάμεσου κόμβου, ανατίθεται σε κάθε κόμβο ένας κωδικός και ο ενδιάμεσος κόμβος έχει σαν όνομα τους κωδικούς των κόμβων, τους οποίους συνδέει. Π.χ. Αν χρησιμοποιούσαμε τον παραπάνω τρόπο ο υπογράφος Θα μετατρέπονταν στον Όμως στον ίδιο υπογράφο θα μετατρέπονταν και ο υπογράφος. Είναι φανερό ότι με τον τρόπο αυτό δεν εξασφαλίζεται η σωστή κατεύθυνση. Αν όμως αναθέσουμε στον κόμβο Artist τον κωδικό 1 και στον κόμβο Album τον κωδικό 2, τότε στην πρώτη περίπτωση ο ενδιάμεσος κόμβος θα έχει όνομα 12, ενώ στη δεύτερη θα έχει όνομα 21, δηλαδή με τον τρόπο αυτό εξασφαλίζεται η σωστή αναπαράσταση της κατεύθυνσης. Προφανώς οι ενδιάμεσοι κόμβοι δε φαίνονται στην αναπαράσταση του γράφου στο visio σε κανένα από τους τρεις μετασχηματισμούς. Τώρα μπορούμε να ξεκινήσουμε να δούμε αναλυτικά πώς δουλεύουν τα modules του κώδικα Parser 1 Ο parser αυτός κάνει ένα πέρασμα το xml αρχείο και μόλις βρεθεί ένα νέο unit (dataunit, indexunit κτλ), κατασκευάζεται ένας νέος κόμβος. Κάθε κόμβος που δημιουργείται, ταυτόχρονα εμφανίζεται σε τέσσερα αρχεία του visio, στο ένα με τη

107 μορφή κόμβου και όνομα τον τύπο του, στο δεύτερο με το αντίστοιχο WebML component, στο τρίτο με μορφή κόμβου και όνομα την οντότητά του και στο τέταρτο με μορφή κόμβου και όνομα το αρχικό του τύπου μαζί με τον κωδικό που αντιστοιχεί στην οντότητα. Αφού κατασκευάσουμε όλους τους κόμβους κάνουμε ένα καινούριο πέρασμα του xml αρχείου για να κατασκευάσουμε τις ακμές. Ξανά κάθε ακμή που κατασκευάζουμε την αναπαριστούμε στο visio ανάμεσα στους αντίστοιχους κόμβους Parser 2 Όπως εύκολα μπορούμε να παρατηρήσουμε τα αρχεία του gspan και του graphgrep έχουν την ίδια περίπου δομή. Για το λόγο αυτό για να κατασκευάσουμε το αρχείο του graphgrep δεν υπάρχει λόγος να ξανακάνουμε parsing το xml αρχείο αλλά μπορούμε να μετατρέψουμε το αρχείο του gspan που έχουμε ήδη δημιουργήσει. Κατ αρχάς κάνουμε ένα πέρασμα του αρχείου και μετράμε όλους τους κόμβους. Γράφουμε τον αριθμό των κόμβων στο αρχείο και ύστερα για κάθε κόμβο του gspan αρχείου δημιουργούμε τον αντίστοιχο κόμβο του graphgrep αρχείου. πχ. v 0 1 i v 1 0 d Όταν τελειώσουν οι κόμβοι κάνουμε ένα νέο πέρασμα του αρχείου μετρώντας τις ακμές. Γράφουμε τον αριθμό που βρήκαμε στο αρχείο του graphgrep και τέλος γράφουμε μία-μία τις ακμές. πχ. e Next_query Η συνάρτηση next_query παίρνει έναν-έναν τους υπογράφους από το αρχείο εξόδου του gspan (που περιέχει όλους τους υπογράφους ) και αφού κρατήσει τα απαραίτητα στοιχεία για τα στατιστικά τον κάνει highlighted στον γράφο. Το πρόβλημα είναι ότι έχουμε βάλει και τους ενδιάμεσους κόμβους, επομένως το gspan μπορεί να έχει βρει σαν υπογράφο τον: Προφανώς τέτοιοι υπογράφοι δε μας ενδιαφέρουν, επομένως πρέπει να τους φιλτράρουμε. Αυτό γίνεται ως εξής: Η ιδέα είναι ότι κάθε ενδιάμεσος κόμβος πρέπει να έχει μία εισερχόμενη και μία εξερχόμενη ακμή. Κατασκευάζουμε έναν πίνακα με αριθμό γραμμών ίσο με τον αριθμό των συνολικών κόμβων και 2 στήλες. Η πρώτη στήλη αντιστοιχεί στον

108 κωδικό του κόμβου και η δεύτερη στήλη αντιστοιχεί στον αριθμό των ακμών που ξεκινούν ή καταλήγουν στον κόμβο αυτό. Αρχικά μηδενίζουμε όλα τα στοιχεία του. Ενώ κάνουμε parsing το αρχείο εξόδου του gspan όταν βρίσκουμε κόμβους βάζουμε στο στοιχείο (αριθμός κόμβου,0) τον κωδικό του κόμβου. Όταν βρίσκουμε ακμή αυξάνουμε το στοιχείο του πίνακα (αριθμός κόμβου,1). Τελικά θα πρέπει όταν στην πρώτη στήλη έχουμε τον κωδικό ενός ενδιάμεσου κόμβου στη δεύτερη στήλη να έχουμε τον αριθμό 2. Παράδειγμα 1. Ο παραπάνω υπογράφος στο gspan θα συμβολίζονταν ως εξής: v 0 0 v 1 5 e Mε βάση τον παραπάνω αλγόριθμο τα στοιχεία του πίνακα θα ήταν: v 0 0 (0,0)=0 v 1 5 (1,0)=5 e (0,1)++, (1,1)++ (0,0)=0 (1,0)=5 (0,1)=1 (1,1)=1. Βλέπουμε ότι το στοιχείο (1,0) έχει κωδικό(5) που αντιστοιχεί σε ενδιάμεσο κόμβο. Άρα το στοιχείο (1,1) θα πρέπει να είναι 2. Όμως στην περίπτωσή μας είναι 1 άρα ο υπογράφος αυτός είναι άκυρος. Παράδειγμα 2. Ο παραπάνω υπογράφος στο gspan θα συμβολίζονταν ως εξής: v 0 0 v 1 5 v 2 1 e e Mε βάση τον παραπάνω αλγόριθμο τα στοιχεία του πίνακα θα ήταν: v 0 0 (0,0)=0 v 1 5 (1,0)=5 v 2 1 (2,0)=1 e (0,1)++, (1,1)++

109 e (1,1)++, (2,1)++ (0,0)=0 (1,0)=5 (2,0)=1 (0,1)=1 (1,1)=2. (2,1)= Βλέπουμε ότι το στοιχείο (1,0) έχει κωδικό(5) που αντιστοιχεί σε ενδιάμεσο κόμβο. Άρα το στοιχείο (1,1) θα πρέπει να είναι 2, το οποίο ισχύει άρα ο υπογράφος αυτός είναι έγκυρος. Αν ο υπογράφος δεν είναι έγκυρος τότε γίνεται μια αναδρομή και ξανακαλείται το next_query το οποίο κάνει την ίδια διαδικασία με τον επόμενο υπογράφο. Αν ο γράφος είναι έγκυρος τότε γίνεται highlighted στον αρχικό γράφο Parser 3 - Δημιουργία στατιστικών Τα στατιστικά κατασκευάζονται χρησιμοποιώντας τη συνάρτηση next_query. Υπολογίζονται πόσοι υπογράφοι βρέθηκαν (φυσικά συμπεριλαμβάνονται μόνο οι έγκυροι υπογράφοι), και γίνεται μια κατηγοριοποίηση ανάλογα με το πόσες φορές εμφανίζονται και τι μέγεθος έχουν. πχ. Συνολικός αριθμός υπογράφων:10 2 υπογράφοι μεγέθους 3 βρέθηκαν 2 φορές 3 υπογράφοι μεγέθους 2 βρέθηκαν 4 φορές 2 υπογράφοι μεγέθους 5 βρέθηκαν 1 φορά 3 υπογράφοι μεγέθους 2 βρέθηκαν 3 φορές Κατασκευάσαμε έναν πίνακα 100x100 όπου οι γραμμές συμβολίζουν το μέγεθος και οι στήλες τις φορές που βρέθηκαν και όλα τα στοιχεία του αρχικοποιούνται με 0. Για παράδειγμα αν το στοιχείο (2,3) είναι 4 αυτό δείχνει ότι 4 υπογράφοι μεγέθους 2 βρέθηκαν 3 φορές. Ο πίνακας αυτός γεμίζει κάνοντας parsing το αρχείο εξόδου του graphgrep, το οποίο δίνει την πληροφορία για το μέγεθος του υπογράφου και τις φορές που εμφανίζεται στον αρχικό γράφο. Άρα για κάθε έγκυρο υπογράφο αφού τρέξουμε το graphgrep με την εντολή : graphgrep m <όνομα αρχείου.dat>, διαβάζουμε το αρχείο εξόδου και αυξάνουμε το κελί του πίνακα (μέγεθος,φορές εμφάνισης).

110 Όταν ολοκληρωθεί η διαδικασία με όλους τους υπογράφους, διαβάζουμε τον πίνακα και εμφανίζουμε τα μη μηδενικά κελιά. 6.6 Παράδειγμα Έστω ότι σαν είσοδο δίνουμε το ακόλουθο αρχείο xml: <?xml version="1.0" standalone="yes"?> - <root> - <INDEXUNIT id="allartists" entity="artist"> <INFOLINK id="link1" to="artistunit" /> </INDEXUNIT> - <INDEXUNIT id="allalbums" entity="album"> <INFOLINK id="link2" to="albumunit" /> </INDEXUNIT> - <DATAUNIT id="artistunit" entity="artist"> <INCLUDE attribute="name" /> <INCLUDE attribute="photo" /> <INFOLINK id="link3" to="albumindex" /> <INFOLINK id="link4" to="reviewindex" /> </DATAUNIT> - <INDEXUNIT id="albumindex" entity="artist2album"> <INFOLINK id="link5" to="albumunit" /> </INDEXUNIT> <INDEXUNIT id="reviewindex" entity="artist2review" /> - <DATAUNIT id="albumunit" entity="album"> <INCLUDE attribute="name" /> <INCLUDE attribute="photo" /> <INFOLINK id="link6" to="supportsunit" /> </DATAUNIT> <MULTIDATAUNIT id="supportsunit" entity="support" /> - <PAGE id="allartistspage"> <UNIT id="allartists" /> </PAGE> - <PAGE id="allalbumspage"> <UNIT id="allalbums" /> </PAGE> - <PAGE id="artistspage"> <UNIT id="artistunit" /> </PAGE> - <PAGE id="albumindexpage"> <UNIT id="albumindex" /> </PAGE> - <PAGE id="albumpage"> <UNIT id="albumunit" /> <UNIT id="supportsunit" /> </PAGE> - <PAGE id="reviewindexpage"> <UNIT id="reviewindex" /> </PAGE> </root> Τα αρχεία visio που προκύπτουν είναι τα εξής:

111 Εικόνα 49 : flowchart αναπαράσταση του xml αρχείου Όπου Ρ:page, I :Index unit, D: Data unit, M: Multidata unit, c:contains, n: navigate. Εικόνα 50: αναπαράσταση του xml αρχείου με WebML στοιχεία

«Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού: Αποδοτική Αναζήτηση & Εφαρμογή Σχεδιαστικών Λύσεων και Προτύπων»

«Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού: Αποδοτική Αναζήτηση & Εφαρμογή Σχεδιαστικών Λύσεων και Προτύπων» Πανεπιστήμιο Πατρών Τμήμα Μηχανικών Η/Υ και Πληροφορικής Διπλωματική Εργασία για το Μεταπτυχιακό Δίπλωμα Ειδίκευσης στην «Επιστήμη και Τεχνολογία Υπολογιστών» «Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού:

Διαβάστε περισσότερα

Διπλωματική Εργασία για το Μεταπτυχιακό Δίπλωμα Ειδίκευσης στην «Επιστήμη και Τεχνολογία Υπολογιστών»

Διπλωματική Εργασία για το Μεταπτυχιακό Δίπλωμα Ειδίκευσης στην «Επιστήμη και Τεχνολογία Υπολογιστών» Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πολυτεχνική Σχολή Πανεπιστημίου Πατρών Διπλωματική Εργασία για το Μεταπτυχιακό Δίπλωμα Ειδίκευσης στην «Επιστήμη και Τεχνολογία Υπολογιστών» Reverse Engineering Εφαρμογών

Διαβάστε περισσότερα

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

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Μεθοδολογίες Ανάπτυξης Συστημάτων Πληροφορικής Απαντούν στα εξής ερωτήματα Ποιά βήματα θα ακολουθηθούν? Με ποιά σειρά? Ποιά τα παραδοτέα και πότε? Επομένως,

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

Διαβάστε περισσότερα

Βάσεις Δεδομένων Εισαγωγή

Βάσεις Δεδομένων Εισαγωγή Βάσεις Δεδομένων Εισαγωγή Σκοποί ενότητας Εκμάθηση Συστημάτων Διαχείρισης Βάσεων Δεδομένων Δημιουργία E-R διαγραμμάτων 2 Περιεχόμενα ενότητας Συστήματα Διαχείρισης Βάσεων Δεδομένων Διάγραμμα οντοτήτων

Διαβάστε περισσότερα

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΑΝΑΠΤΥΞΗ ΕΙΚΟΝΙΚΗΣ ΠΛΑΤΦΟΡΜΑΣ ΠΡΟΣΟΜΟΙΩΣΗΣ ΤΗΣ ΠΑΡΑΜΟΡΦΩΣΗΣ ΑΝΘΡΩΠΙΝΟΥ ΗΠΑΤΟΣ ΜΕ ΤΗ ΧΡΗΣΗ ΑΠΤΙΚΟΥ ΜΕΣΟΥ Δηµήτρης Δούνας

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων -Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a) Create

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων - Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a)

Διαβάστε περισσότερα

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων ..?????? Εργαστήριο ΒΑΣΕΙΣ????????? ΔΕΔΟΜΕΝΩΝ Βάσεων Δεδομένων?? ΙΙ Εισαγωγικό Μάθημα Βασικές Έννοιες - . Γενικά Τρόπος Διεξαγωγής Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΝΑΥΤΙΛΙΑΚΩΝ ΣΠΟΥΔΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗΝ ΝΑΥΤΙΛΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΝΑΥΤΙΛΙΑΚΩΝ ΣΠΟΥΔΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗΝ ΝΑΥΤΙΛΙΑ ΝΟΜΙΚΟ ΚΑΙ ΘΕΣΜΙΚΟ ΦΟΡΟΛΟΓΙΚΟ ΠΛΑΙΣΙΟ ΚΤΗΣΗΣ ΚΑΙ ΕΚΜΕΤΑΛΛΕΥΣΗΣ ΠΛΟΙΟΥ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ που υποβλήθηκε στο

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

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

Διαβάστε περισσότερα

Υπηρεσίες ιστού και ιδιωτικότητα: Μια προσέγγιση βασισμένη στη δημιουργία προφίλ χρήστη για προσαρμοστικούς ιστότοπους

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

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Βάσεις Δεδομένων - Γενικά Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα. Τα περιεχόμενα

Διαβάστε περισσότερα

Test Data Management in Practice

Test Data Management in Practice Problems, Concepts, and the Swisscom Test Data Organizer Do you have issues with your legal and compliance department because test environments contain sensitive data outsourcing partners must not see?

Διαβάστε περισσότερα

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE) EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 5: Component Adaptation Environment (COPE) Performing Static Analysis 1 Class Name: The fully qualified name of the specific class Type: The type of the class

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο Βάσεις Δεδομένων Εισαγωγή Ανάλυση Απαιτήσεων Φροντιστήριο 1 ο 16-10-2008 Εισαγωγή - Ορισμοί Βάση Δεδομένων είναι μία συλλογή από σχετιζόμενα αντικείμενα Ένα σύστημα διαχείρισης βάσεων δεδομένων (ΣΔΒΔ)

Διαβάστε περισσότερα

ΤΟ ΜΟΝΤΕΛΟ Οι Υποθέσεις Η Απλή Περίπτωση για λi = μi 25 = Η Γενική Περίπτωση για λi μi..35

ΤΟ ΜΟΝΤΕΛΟ Οι Υποθέσεις Η Απλή Περίπτωση για λi = μi 25 = Η Γενική Περίπτωση για λi μi..35 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΤΟΜΕΑΣ ΣΤΑΤΙΣΤΙΚΗΣ ΚΑΙ ΕΠΙΧΕΙΡΗΣΙΑΚΗΣ ΕΡΕΥΝΑΣ ΑΝΑΛΥΣΗ ΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΧΡΕΟΚΟΠΙΑΣ ΚΑΙ ΤΩΝ

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2013 - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Αρχιτεκτονική

Διαβάστε περισσότερα

Τα στοιχεία των ΠΣ στο πλαίσιο της ΔΔ Μοντέλο Δεδομένων Data Model

Τα στοιχεία των ΠΣ στο πλαίσιο της ΔΔ Μοντέλο Δεδομένων Data Model Κωνσταντίνος Ταραμπάνης Καθηγητής kat@uom.gr Τα στοιχεία των ΠΣ στο πλαίσιο της ΔΔ Μοντέλο Δεδομένων Data Model ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΙ ΚΑΙ ΔΗΜΟΣΙΑ ΔΙΟΙΚΗΣΗ - Κ. - Κ. ΤΑΡΑΜΠΑΝΗΣ 2015 2015 1/ 1 Σχέσεις

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

Τεχνολογία Ψυχαγωγικού Λογισμικού και Εικονικοί Κόσμοι Ενότητα 8η - Εικονικοί Κόσμοι και Πολιτιστικό Περιεχόμενο

Τεχνολογία Ψυχαγωγικού Λογισμικού και Εικονικοί Κόσμοι Ενότητα 8η - Εικονικοί Κόσμοι και Πολιτιστικό Περιεχόμενο Τεχνολογία Ψυχαγωγικού Λογισμικού και Εικονικοί Κόσμοι Ενότητα 8η - Εικονικοί Κόσμοι και Πολιτιστικό Περιεχόμενο Ιόνιο Πανεπιστήμιο, Τμήμα Πληροφορικής, 2015 Κωνσταντίνος Οικονόμου, Επίκουρος Καθηγητής

Διαβάστε περισσότερα

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

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων .. Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Μάθημα Βασικές Έννοιες - . Ύλη Εργαστηρίου ΒΔ Ύλη - 4 Ενότητες.1 - Σχεδιασμός Βάσης Δεδομένων.2 Δημιουργία Βάσης Δεδομένων Δημιουργία Πινάκων Εισαγωγή/Ανανέωση/Διαγραφή

Διαβάστε περισσότερα

Orchid: Integrating Schema Mapping and ETL ICDE 2008

Orchid: Integrating Schema Mapping and ETL ICDE 2008 Orchid: Integrating Schema Mapping and ETL ICDE 2008 Δομουχτσίδης Παναγιώτης Γενικά Data warehouse (DW): Είναι μία αποθήκη πληροφοριών οργανωμένη από ένα ενοποιημένο μοντέλο. Τα δεδομένα συλλέγονται από

Διαβάστε περισσότερα

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής oard Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής Πρόγραµµα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή ιατριβή Τίτλος ιατριβής Masters Thesis Title Ονοµατεπώνυµο Φοιτητή Πατρώνυµο Ανάπτυξη διαδικτυακής

Διαβάστε περισσότερα

Assalamu `alaikum wr. wb.

Assalamu `alaikum wr. wb. LUMP SUM Assalamu `alaikum wr. wb. LUMP SUM Wassalamu alaikum wr. wb. Assalamu `alaikum wr. wb. LUMP SUM Wassalamu alaikum wr. wb. LUMP SUM Lump sum lump sum lump sum. lump sum fixed price lump sum lump

Διαβάστε περισσότερα

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

Διαβάστε περισσότερα

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

þÿ ¹µ ½  ±À±³É³ À±¹ ¹Î½ º±Ä þÿ ͼ²±Ã Ä Â ³ Â Ä Å

þÿ ¹µ ½  ±À±³É³ À±¹ ¹Î½ º±Ä þÿ ͼ²±Ã Ä Â ³ Â Ä Å Neapolis University HEPHAESTUS Repository School of Law and Social Sciences http://hephaestus.nup.ac.cy Master Degree Thesis 2016 þÿ ¹µ ½  ±À±³É³ À±¹ ¹Î½ º±Ä þÿ ͼ²±Ã Ä Â ³ Â Ä Å 1 9 8 0 þÿ ¼ à ½ ÅÂ,

Διαβάστε περισσότερα

Σχεδίαση και Ανάπτυξη Ιστότοπων

Σχεδίαση και Ανάπτυξη Ιστότοπων Σχεδίαση και Ανάπτυξη Ιστότοπων Ιστορική Εξέλιξη του Παγκόσμιου Ιστού Παρουσίαση 1 η 1 Βελώνης Γεώργιος Καθηγητής Περιεχόμενα Τι είναι το Διαδίκτυο Βασικές Υπηρεσίες Διαδικτύου Προηγμένες Υπηρεσίες Διαδικτύου

Διαβάστε περισσότερα

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

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Η Αντικειμενοστρεφής Τεχνολογία Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 202-203 Περιεχόμενο του μαθήματος Η έννοια

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ. Πτυχιακή εργασία ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΓΕΩΤΕΧΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ Πτυχιακή εργασία ΠΡΟΣΔΙΟΡΙΣΜΟΣ ΔΕΙΚΤΩΝ ΚΑΤΑΝΑΛΩΣΗΣ ΕΝΕΡΓΕΙΑΣ ΣΤΑ ΑΝΤΛΙΟΣΤΑΣΙΑ ΤΟΥ ΤΜΗΜΑΤΟΣ ΑΝΑΠΤΥΞΕΩΣ ΥΔΑΤΩΝ Γεωργίου

Διαβάστε περισσότερα

Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα)

Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα) Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα) Μοντέλα, οµές (Σχήµα) και Αντιπρόσωποι (Data Models, Schema, and Instances) DBMS αρχιτεκτονική ιάφοροι τύποι γλωσσών και διεπαφές

Διαβάστε περισσότερα

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

Διαβάστε περισσότερα

Παλεπηζηήκην Πεηξαηώο Τκήκα Πιεξνθνξηθήο Πξόγξακκα Μεηαπηπρηαθώλ Σπνπδώλ «Πξνεγκέλα Σπζηήκαηα Πιεξνθνξηθήο»

Παλεπηζηήκην Πεηξαηώο Τκήκα Πιεξνθνξηθήο Πξόγξακκα Μεηαπηπρηαθώλ Σπνπδώλ «Πξνεγκέλα Σπζηήκαηα Πιεξνθνξηθήο» Παλεπηζηήκην Πεηξαηώο Τκήκα Πιεξνθνξηθήο Πξόγξακκα Μεηαπηπρηαθώλ Σπνπδώλ «Πξνεγκέλα Σπζηήκαηα Πιεξνθνξηθήο» Μεηαπηπρηαθή Γηαηξηβή Τίηινο Γηαηξηβήο Ανάπτυξη διαδικτυακού εκπαιδευτικού παιχνιδιού για τη

Διαβάστε περισσότερα

Διαχείριση Πληροφοριακών Συστημάτων

Διαχείριση Πληροφοριακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Διαχείριση Πληροφοριακών Συστημάτων Ενότητα #7: UML Χρήστος Δρόσος Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ»

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ» ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ» ΜΕΤΑΠΤΥΧΙΑΚΗ ΙΑΤΡΙΒΗ ΤΟΥ ΕΥΘΥΜΙΟΥ ΘΕΜΕΛΗ ΤΙΤΛΟΣ Ανάλυση

Διαβάστε περισσότερα

C.S. 430 Assignment 6, Sample Solutions

C.S. 430 Assignment 6, Sample Solutions C.S. 430 Assignment 6, Sample Solutions Paul Liu November 15, 2007 Note that these are sample solutions only; in many cases there were many acceptable answers. 1 Reynolds Problem 10.1 1.1 Normal-order

Διαβάστε περισσότερα

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο Πρωτόκολλα και Αρχιτεκτονική Δικτύου Για να ανταλλάξουν δεδομένα δύο σταθμοί, εκτός από την ύπαρξη διαδρομής μεταξύ

Διαβάστε περισσότερα

Πληροφορική 2. Βάσεις Δεδομένων (Databases)

Πληροφορική 2. Βάσεις Δεδομένων (Databases) Πληροφορική 2 Βάσεις Δεδομένων (Databases) 1 2 Επίπεδα αρχεία (flat files) Επίπεδο αρχείο είναι ένα αρχείο που αποτελείται από ένα σταθερό, μικρό αριθμό πεδίων. Οι εγγραφές του αρχείου μπορεί να μην ακολουθούν

Διαβάστε περισσότερα

Σχεδιασμός Βάσεων Δεδομένων

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 1 Δρ. Βασιλική Κούφη Περιεχόμενα 1. Εισαγωγή 2. Κύκλος ζωής ανάπτυξης Βάσεως Δεδομένων 3. Oracle SQL Developer Data

Διαβάστε περισσότερα

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο 08 Η γλώσσα UML I Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language

Διαβάστε περισσότερα

Εισαγωγή στη Δασική Πληροφορική

Εισαγωγή στη Δασική Πληροφορική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Εισαγωγή στη Δασική Πληροφορική Ενότητα 3: Θεωρία, Ανάλυση και Σχεδιασμός Πληροφοριακών Συστημάτων Ζαχαρούλα Ανδρεοπούλου Δασολογίας &

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός

06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός 06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αφαίρεση Abstraction "Η εννοιολογική

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

þÿ¼ ½ ±Â : ÁÌ» Â Ä Å ÃÄ ²µ þÿä Å ÃÇ»¹º Í Á³ Å

þÿ¼ ½ ±Â : ÁÌ» Â Ä Å ÃÄ ²µ þÿä Å ÃÇ»¹º Í Á³ Å Neapolis University HEPHAESTUS Repository School of Economic Sciences and Business http://hephaestus.nup.ac.cy Master Degree Thesis 2015 þÿ ½»Åà Äɽ µ½½ ¹Î½ Ä Â þÿ±¾¹»ì³ à  º±¹ Ä Â þÿ±à ĵ»µÃ¼±Ä¹ºÌÄ Ä±Â

Διαβάστε περισσότερα

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Εργαλεία CASE Computer Assisted Systems Engineering Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2011-2012 1 Εργαλεία CASE

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ Χριστοδούλου Αντρέας Λεμεσός 2014 2 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Διαβάστε περισσότερα

Επεκτεταμένο Μοντέλο Οντοτήτων-Συσχετίσεων Αντζουλάτος Γεράσιμος antzoulatos@upatras.gr Τμήμα Εφαρμογών Πληροφορικής στην Διοίκηση και Οικονομία ΤΕΙ Πατρών - Παράρτημα Αμαλιάδας 08 Νοεμβρίου 2012 Περιεχομενα

Διαβάστε περισσότερα

Έξυπνα ενεργειακά δίκτυα

Έξυπνα ενεργειακά δίκτυα Ανώτατο Εκπαιδευτικό Ίδρυµα Πειραιά Τεχνολογικού Τοµέα Τµήµα Ηλεκτρονικών Μηχανικών Τ.Ε. Πτυχιακή Εργασία Φοιτητής: Θάνος Ανδρέας ΑΜ: 42132 Φοιτητής: Τερζής Αλέξιος ΑΜ: 42564 Επιβλέπων Καθηγητής Απόστολος

Διαβάστε περισσότερα

Μοτίβα Σχεδίασης (Design Patterns)

Μοτίβα Σχεδίασης (Design Patterns) Ενότητα 6 Μοτίβα Σχεδίασης (Design Patterns) Ορισµοί βασικές έννοιες. Σηµαντικά µοτίβα σχεδίασης: Παρατηρητής (Observer). Πρόσοψη (Façade). Προσαρµογέας (Adapter). Πληρεξούσιος (Proxy). Μοναχοπαίδι (Singleton).

Διαβάστε περισσότερα

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων

Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Βάσεις Δεδομένων Επαγγελματικού Λυκείου Κεφάλαιο 4 Σχεδίαση Βάσεων Δεδομένων Εισηγητής Δελησταύρου Κωνσταντίνος Καθηγητής Πληροφορικής ΠΕ20 Μηχανικός Πληροφορικής Τ.Ε. M.Sc. στα Συστήματα Υπολογιστών Περιεχόμενα

Διαβάστε περισσότερα

þÿ ÀÌ Ä º± µä À ¹ ¼ ½

þÿ ÀÌ Ä º± µä À ¹ ¼ ½ Neapolis University HEPHAESTUS Repository School of Economic Sciences and Business http://hephaestus.nup.ac.cy Master Degree Thesis 2016 þÿ ÀÌ Ä º± µä À ¹ ¼ ½ þÿµºà±¹ µåä¹ºì ¹ ¹º ĹºÌ ÃÍÃÄ ¼± þÿãä ½ º±Ä±½µ¼

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

ΠΑΝΔΠΙΣΗΜΙΟ ΜΑΚΔΓΟΝΙΑ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΙΑΚΧΝ ΠΟΤΓΧΝ ΣΜΗΜΑΣΟ ΔΦΑΡΜΟΜΔΝΗ ΠΛΗΡΟΦΟΡΙΚΗ

ΠΑΝΔΠΙΣΗΜΙΟ ΜΑΚΔΓΟΝΙΑ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΙΑΚΧΝ ΠΟΤΓΧΝ ΣΜΗΜΑΣΟ ΔΦΑΡΜΟΜΔΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΠΑΝΔΠΙΣΗΜΙΟ ΜΑΚΔΓΟΝΙΑ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΙΑΚΧΝ ΠΟΤΓΧΝ ΣΜΗΜΑΣΟ ΔΦΑΡΜΟΜΔΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΑΝΑΠΣΤΞΗ ΓΤΝΑΜΙΚΗ ΙΣΟΔΛΙΓΑ ΓΙΑ ΣΟ ΓΔΝΙΚΟ ΚΑΣΑΣΗΜΑ ΚΡΑΣΗΗ ΓΡΔΒΔΝΧΝ ΜΔ ΣΗ ΒΟΗΘΔΙΑ PHP MYSQL Γηπισκαηηθή Δξγαζία ηνπ Υξήζηνπ

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΕΤΟΙΜΑΣΙΑ ΔΕΛΤΙΟΥ ΠΟΣΟΤΗΤΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΕΤΟΙΜΑΣΙΑ ΔΕΛΤΙΟΥ ΠΟΣΟΤΗΤΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία ΕΤΟΙΜΑΣΙΑ ΔΕΛΤΙΟΥ ΠΟΣΟΤΗΤΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ Χρύσω Κωνσταντίνου Λεμεσός 2016 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ Επιβλέπων Καθηγητής: Δρ. Νίκος Μίτλεττον Η ΣΧΕΣΗ ΤΟΥ ΜΗΤΡΙΚΟΥ ΘΗΛΑΣΜΟΥ ΜΕ ΤΗΝ ΕΜΦΑΝΙΣΗ ΣΑΚΧΑΡΩΔΗ ΔΙΑΒΗΤΗ ΤΥΠΟΥ 2 ΣΤΗΝ ΠΑΙΔΙΚΗ ΗΛΙΚΙΑ Ονοματεπώνυμο: Ιωσηφίνα

Διαβάστε περισσότερα

Πρότυπα και Τεχνολογίες Semantic Web και Web 2.0 και η εφαρμογή τους στην Ηλεκτρονική Διακυβέρνηση

Πρότυπα και Τεχνολογίες Semantic Web και Web 2.0 και η εφαρμογή τους στην Ηλεκτρονική Διακυβέρνηση Πρότυπα και Τεχνολογίες Semantic Web και Web 2.0 και η εφαρμογή τους στην Ηλεκτρονική Διακυβέρνηση Νίκος Λούτας (nlout@uom.gr) http://nikosloutas.com Υποψήφιος Διδάκτορας, Εργαστήριο Πληροφοριακών Συστημάτων,

Διαβάστε περισσότερα

þÿ ½ Á Å, ˆ»µ½± Neapolis University þÿ Á̳Á±¼¼± ¼Ìù±Â ¹ º à Â, Ç» Ÿ¹º ½ ¼¹ºÎ½ À¹ÃÄ ¼Î½ º±¹ ¹ º à  þÿ ±½µÀ¹ÃÄ ¼¹ µ À»¹Â Æ Å

þÿ ½ Á Å, ˆ»µ½± Neapolis University þÿ Á̳Á±¼¼± ¼Ìù±Â ¹ º à Â, Ç» Ÿ¹º ½ ¼¹ºÎ½ À¹ÃÄ ¼Î½ º±¹ ¹ º à  þÿ ±½µÀ¹ÃÄ ¼¹ µ À»¹Â Æ Å Neapolis University HEPHAESTUS Repository School of Economic Sciences and Business http://hephaestus.nup.ac.cy Master Degree Thesis 2016-08 þÿ µà±³³µ»¼±ä¹º ½ ÀÄž ÄÉ þÿµºà±¹ µåä¹ºî½ - ¹µÁµÍ½ à Äɽ þÿ³½îãµé½

Διαβάστε περισσότερα

Η Επίδραση των Events στην Απόδοση των Μετοχών

Η Επίδραση των Events στην Απόδοση των Μετοχών Χρηματοοικονομικά και Διοίκηση Μεταπτυχιακή διατριβή Η Επίδραση των Events στην Απόδοση των Μετοχών Άντρεα Φωτίου Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΔΙΟΙΚΗΣΗΣ

Διαβάστε περισσότερα

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

Διαβάστε περισσότερα

2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems

2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems Multiple User Interfaces MobileSoft'16, Multi-User Experience (MUX) S1: Insourcing S2: Outsourcing S3: Responsive design

Διαβάστε περισσότερα

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΟΜΕΑΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ, ΠΛΗΡΟΦΟΡΙΚΗΣ & ΙΚΤΥΩΝ Εργ. Τεχνολογίας Λογισμικού & Υπηρεσιών S 2 E Lab Π Τ Υ Χ Ι

Διαβάστε περισσότερα

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα ΕΙΣΑΓΩΓΗ ΣΤΗ UML UML Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις ιαγράµµατα Παραδείγματα Ορισμός του μοντέλου Αποτελεί µια αφηρηµένη περιγραφή ενός Φυσικού συστήµατος. Αποτελεί ένα σχέδιο για την

Διαβάστε περισσότερα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Σχολή Επικοινωνίας και Μέσων Ενημέρωσης Πτυχιακή εργασία Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Εύρος Χριστοδούλου Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΚΟΙΝΩΝΙΑΣ

Διαβάστε περισσότερα

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Βασικά θέματα Βάσεων Δεδομένων Ένα Σύστημα Βάσης Δεδομένων

Διαβάστε περισσότερα

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS CHAPTER 5 SOLVING EQUATIONS BY ITERATIVE METHODS EXERCISE 104 Page 8 1. Find the positive root of the equation x + 3x 5 = 0, correct to 3 significant figures, using the method of bisection. Let f(x) =

Διαβάστε περισσότερα

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής περιεχόμενα παρουσίασης Διαγράμματα πακέτων Διαγράμματα συστατικών Διαγράμματα παράταξης Το μοντέλο των 4+1 όψεων τεκμηρίωση αρχιτεκτονικής και UML

Διαβάστε περισσότερα

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony Ελληνικά Ι English 1/7 Δημιουργία Λογαριασμού Διαχείρισης Επιχειρηματικής Τηλεφωνίας μέσω της ιστοσελίδας

Διαβάστε περισσότερα

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android

Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Ανάπτυξη διαδικτυακής διαδραστικής εκπαιδευτικής εφαρμογής σε λειτουργικό σύστημα Android Πτυχιακή Εργασία Φοιτητής:

Διαβάστε περισσότερα

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής Εισαγωγή στις Βάσεις Δεδομένων Εισαγωγή στις Βάσεις Δεδομένων Ορισμός Βάσης Δεδομένων Σύστημα Διαχείρισης Βάσης Δεδομένων ΣΔΒΔ (DBMS) Χαρακτηριστικά προσέγγισης συστημάτων αρχειοθέτησης Χαρακτηριστικά

Διαβάστε περισσότερα

2 Composition. Invertible Mappings

2 Composition. Invertible Mappings Arkansas Tech University MATH 4033: Elementary Modern Algebra Dr. Marcel B. Finan Composition. Invertible Mappings In this section we discuss two procedures for creating new mappings from old ones, namely,

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΑΡΟΥΣΙΑΣΗ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ ΔΟΥΒΛΕΤΗΣ ΧΑΡΑΛΑΜΠΟΣ ΕΠΙΒΛΕΠΟΝΤΕΣ ΚΑΘΗΓΗΤΕΣ Μαργαρίτης Κωνσταντίνος Βακάλη

Διαβάστε περισσότερα

Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού μέσω Τεχνικών Αντίστροφης Μηχανίκευσης

Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού μέσω Τεχνικών Αντίστροφης Μηχανίκευσης Πανεπιστήμιο Πατρών Τμήμα Μηχανικών Η/Υ και Πληροφορικής Διπλωματική εργασία για το Μεταπτυχιακό Δίπλωμα Ειδίκευσης στην «Επιστήμη & Τεχνολογία Υπολογιστών» Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού μέσω

Διαβάστε περισσότερα

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

ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ ΑΥΤΟΝΟΜΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΛΟΗΓΗΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΓΩΓΗ ΥΨΗΛΗΣ ΑΝΑΛΥΣΗΣ ΟΡΘΟΦΩΤΟΓΡΑΦΙΩΝ ΓΕΩΡΓΙΚΩΝ ΕΚΤΑΣΕΩΝ Σχολή Μηχανικής & Τεχνολογίας Τμήμα Πολιτικών & Μηχανικών Γεωπληροφορικής Μεταπτυχιακή διατριβή ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ ΑΥΤΟΝΟΜΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΛΟΗΓΗΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΓΩΓΗ ΥΨΗΛΗΣ ΑΝΑΛΥΣΗΣ ΟΡΘΟΦΩΤΟΓΡΑΦΙΩΝ ΓΕΩΡΓΙΚΩΝ

Διαβάστε περισσότερα

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

ΣΤΑΤΙΚΗ ΜΗ ΓΡΑΜΜΙΚΗ ΑΝΑΛΥΣΗ ΚΑΛΩ ΙΩΤΩΝ ΚΑΤΑΣΚΕΥΩΝ 1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Πολιτικών Μηχανικών ΠΜΣ οµοστατικός Σχεδιασµός και Ανάλυση Κατασκευών Εργαστήριο Μεταλλικών Κατασκευών Μεταπτυχιακή ιπλωµατική Εργασία ΣΤΑΤΙΚΗ ΜΗ ΓΡΑΜΜΙΚΗ ΑΝΑΛΥΣΗ ΚΑΛΩ

Διαβάστε περισσότερα

Πτυχιακή Εργασία ηµιουργία Εκπαιδευτικού Παιχνιδιού σε Tablets Καλλιγάς ηµήτρης Παναγιώτης Α.Μ.: 1195 Επιβλέπων καθηγητής: ρ. Συρµακέσης Σπύρος ΑΝΤΙΡΡΙΟ 2015 Ευχαριστίες Σ αυτό το σηµείο θα ήθελα να

Διαβάστε περισσότερα

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου:

Διαβάστε περισσότερα

Κτίρια nζεβ και προσομοίωση με την χρήση του energy+

Κτίρια nζεβ και προσομοίωση με την χρήση του energy+ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ Πτυχιακή εργασία Κτίρια nζεβ και προσομοίωση με την χρήση του energy+ Μυροφόρα Ιωάννου Λεμεσός, Μάιος 2017 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Βάσεις Δεδομένων ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις Δεδομένων; Σύστημα για αποθήκευση, μετάδοση

Διαβάστε περισσότερα

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

Διαβάστε περισσότερα

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Βάσεις εδοµένων Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης v.vescoukis@cs.ntua.gr ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Συστήµατα ιαχείρισης Βάσεων

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Τεχνολογία Πολυμέσων. Ενότητα 6: Υπερκείμενο - Υπερμέσα. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τεχνολογία Πολυμέσων. Ενότητα 6: Υπερκείμενο - Υπερμέσα. Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Τεχνολογία Πολυμέσων Ενότητα 6: Υπερκείμενο - Υπερμέσα Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Keywords: Tutorials, pedagogic principles, print and digital distance learning materials, e-comet Laboratory of Hellenic Open University

Keywords: Tutorials, pedagogic principles, print and digital distance learning materials, e-comet Laboratory of Hellenic Open University Οδηγοί Εκπαιδευτικών Προδιαγραφών Έντυπου και Ψηφιακού Υλικού: Μία αναπτυξιακή δράση του Εργαστηρίου Εκπαδευτικού Υλικού και Εκπαιδευτικής Μεθοδολογίας (ΕΕΥΕΜ) του ΕΑΠ Tutorials about pedagogic principles

Διαβάστε περισσότερα

Architecture οf Integrated Ιnformation Systems (ARIS)

Architecture οf Integrated Ιnformation Systems (ARIS) Architecture οf Integrated Ιnformation Systems (ARIS) Η αρχιτεκτονική ARIS (ARchitecture οf Integrated information Systems) έχει ως στόχο της την περιγρφή όλων των όψεων ή οπτικών ενός επιχειρηματικού

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας) Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016 Γεωργία Καπιτσάκη (Λέκτορας) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα συλλογής

Διαβάστε περισσότερα

ΕΘΝΙΚΗ ΣΧΟΛΗ ΗΜΟΣΙΑΣ ΙΟΙΚΗΣΗΣ

ΕΘΝΙΚΗ ΣΧΟΛΗ ΗΜΟΣΙΑΣ ΙΟΙΚΗΣΗΣ Ε ΕΘΝΙΚΗ ΣΧΟΛΗ ΗΜΟΣΙΑΣ ΙΟΙΚΗΣΗΣ ΙE ΕΚΠΑΙ ΕΥΤΙΚΗ ΣΕΙΡΑ ΤΜΗΜΑ ΓΕΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΤΕΛΙΚΗ ΕΡΓΑΣΙΑ Θέµα: Εκπαίδευση: Μέσο ανάπτυξης του ανθρώπινου παράγοντα και εργαλείο διοικητικής µεταρρύθµισης Επιβλέπουσα:

Διαβάστε περισσότερα

Προσδιορισμός Σημαντικών Χαρακτηριστικών της Αυθόρμητης Δραστηριότητας Απομονωμένου Εγκεφαλικού Φλοιού in vitro

Προσδιορισμός Σημαντικών Χαρακτηριστικών της Αυθόρμητης Δραστηριότητας Απομονωμένου Εγκεφαλικού Φλοιού in vitro ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ "ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗΝ ΙΑΤΡΙΚΗ ΚΑΙ ΤΗ ΒΙΟΛΟΓΙΑ"

Διαβάστε περισσότερα

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

ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΕΝΟΣ ΕΝΕΡΓΕΙΑΚΑ ΑΥΤΟΝΟΜΟΥ ΝΗΣΙΟΥ ΜΕ Α.Π.Ε Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΕΝΟΣ ΕΝΕΡΓΕΙΑΚΑ ΑΥΤΟΝΟΜΟΥ ΝΗΣΙΟΥ ΜΕ Α.Π.Ε Πτυχιακή Εργασία Φοιτητής: Γεμενής Κωνσταντίνος ΑΜ: 30931 Επιβλέπων Καθηγητής Κοκκόσης Απόστολος Λέκτορας

Διαβάστε περισσότερα