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

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

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

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

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

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

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

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

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

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

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

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

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

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

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

H Γενετική Αρχιτεκτονική του Σακχαρώδους Διαβήτη Τύπου 2. Ερευνητικό Πρόγραμμα «Θαλής» Σχεδιασμός και Υλοποίηση της Διαδικτυακής Πύλης του Έργου

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

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

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

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

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

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

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

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

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

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

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

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

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

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

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

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

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

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

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

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

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

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

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

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

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

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

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων)

Βασικές Έννοιες Web Εφαρμογών

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

Τεχνολογία Λογισμικού

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

UML: Unified modelling language

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

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

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

EBSCOhost Research Databases

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Περίληψη ιπλωµατικής Εργασίας

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

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

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

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

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

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


Σύστημα διαχείρισης περιεχομένου (Content Management System)

Πληροφορική 2. Τεχνολογία Λογισμικού

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

Διαχείριση Πολιτισμικών Δεδομένων

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

Test Data Management in Practice

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Παραδοτέο Π5.3: Έντυπο και ψηφιακό υλικό (Web site) προβολής των δράσεων έργου

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο

Δείχτες Επιτυχίας και Δείχτες Επάρκειας

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Ιστορικό. *Ομάδα ανάπτυξης: Γρεασίδης Θοδωρής: 265 Κουτσαυτίκης Δημήτρης: 258 Μπούρα Βάγια: 257 Πετράκη Ελένη: 266 Φουντά Σταυρούλα: 256

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

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο -

TRAVIS TRAFFIC VIOLATION INFORMATION SYSTEM ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΗΣΗΣ ΠΑΡΑΒΑΣΕΩΝ ΦΩΤΟΕΠΙΣΗΜΑΝΣΗΣ

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

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

Οι διαδικασίες ενος CMS είναι σχεδιασμένες για να:

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

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

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

Μοντέλο Οντοτήτων-Συσχετίσεων. Η ανάγκη Διαγράμματα ΟΣ Σύνολα Οντοτήτων-Συσχετίσεων Απεικονίσεις Επεκτάσεις

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

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

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

ΑΡΧΕς ΛΕΙΤΟΥΡΓΙΑς CMS (Content Management System) ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥς ςε ΜΙΚΡΟΜΕςΑΙΕς ΕΠΙΧΕΙΡΗςΕΙς

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

Λογισμικό Open Source στις Υπηρεσίες των Βιβλιοθηκών του Πανεπιστημίου Αθηνών

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Transcript:

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

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

Επιτελική Σύνοψη Οι εφαρμογές παγκόσμιου ιστού προσφέρουν ολοένα και περισσότερες, με υψηλό βαθμό πολυπλοκότητας, υπηρεσίες σε σχέση με τους πρώτους ιστότοπους που χρησιμοποιούνταν απλά και μόνο για την προβολή πληροφοριών. Λόγω της ολοένα αυξανόμενης πολυπλοκότητας των εφαρμογών αυτών, ο σχεδιασμός, η ανάπτυξη κι η συντηρησιμότητα μιας εφαρμογής παγκόσμιου ιστού προβάλλει ως μία από τις μεγαλύτερες προκλήσεις που καλείται να αντιμετωπίσει ο σχεδιαστής της. Η ερευνητική κοινότητα προκειμένου να αντιμετωπίσει την αυξανόμενη πολυπλοκότητα του σχεδιασμού εφαρμογών παγκόσμιου ιστού έχει προτείνει ένα πλήθος προσεγγίσεων και μεθόδων βασισμένων σε μοντέλα. Η δουλειά του σχεδιαστή εφαρμογών παγκόσμιου ιστού μπορεί να απλοποιηθεί ακόμα περισσότερο με την επαναχρησιμοποίηση της εμπειρίας άλλων σχεδιαστών εφαρμογών παγκόσμιου ιστού. Η επαναχρησιμοποίηση της εμπειρίας αυτής γίνεται με τη χρήση σχεδιαστικών προτύπων που ορίζονται από πεπειραμένους σχεδιαστές. Αν κατά το σχεδιασμό μιας εφαρμογής χρησιμοποιηθεί κάποια μέθοδος μοντελοποίησης σε συνδυασμό με ένα σύνολο σχεδιαστικών προτύπων, η τελική εφαρμογή θα είναι πιο αποδοτική και ποιοτική. Πολλές φορές όμως, κατά το σχεδιασμό και την ανάπτυξη μιας εφαρμογής παγκόσμιου ιστού δε λαμβάνεται υπόψη κάποια συγκεκριμένη μεθοδολογία μοντελοποίησης και ανάπτυξης. Ένα πλήθος μεθόδων αντίστροφης μηχανίκευσης έχει αναπτυχθεί για την ανάλυση, κατανόηση και μοντελοποίηση των αρχιτεκτονικών τέτοιου είδους εφαρμογών. Κατά τη μοντελοποίηση της αρχιτεκτονικής παραδοσιακών συστημάτων λογισμικού δεν εμφανίζεται η εσωτερική δομή του λειτουργικού συστήματος και του συστήματος παραθύρων (windowing system). Αντίστοιχα και στο πεδίο εφαρμογών παγκόσμιου ιστού δεν εμφανίζεται η εσωτερική δομή του εξυπηρετητή παγκόσμιου ιστού και του φυλλομετρητή. Τα αρχιτεκτονικά διαγράμματα των εφαρμογών παγκόσμιου ιστού πρέπει να δείχνουν τα κύρια συστατικά μιας εφαρμογής τα οποία συνδέονται μεταξύ τους για να υλοποιήσουν μεγάλες και σύνθετες εφαρμογές. Κύρια συστατικά μιας εφαρμογής θεωρούνται τα αντικείμενα του παγκόσμιου ιστού, οι πίνακες της βάσης δεδομένων και τα πολυμεσικά αντικείμενα. Στα πλαίσια αυτής της διπλωματικής εργασίας, αναλύσαμε το πιο δημοφιλές σύστημα διαχείρισης περιεχομένου (Content Management Systems CMS) ανοιχτού κώδικα, το Joomla!. Συγκεκριμένα, εφαρμόσαμε αντίστροφη μηχανίκευση σε αυτό, ώστε να μπορέσουμε να μοντελοποιήσουμε την αρχιτεκτονική του. Για αυτό το σκοπό, αναπτύξαμε μια εφαρμογή που ερευνά τον HTML κώδικα όλων των σελίδων ενός ιστότοπου φτιαγμένου σε Joomla!, προκειμένου να γίνει αυτόματη εξαγωγή του μοντέλου του και όχι με το χέρι. Βασικός στόχος είναι να μπορέσουμε να αξιολογήσουμε το σχεδιασμό του μοντέλου του, αλλά και να παρέχουμε έναν αυτοματοποιημένο τρόπο για αξιολόγηση. Έτσι, θα μπορούν να προταθούν τρόποι αναδιάταξης, με στόχο τόσο την ευχρηστία όσο και την αποδοτικότητα χρήσης του συγκεκριμένου συστήματος διαχείρισης περιεχομένου. iii

Η δομή της παρούσας διπλωματικής εργασίας έχει ως εξής: Στο πρώτο κεφάλαιο παραθέτονται τα οφέλη χρήσης μοντέλων κατά το σχεδιασμό εφαρμογών παγκόσμιου ιστού, καθώς και οι βασικές απαιτήσεις που θα πρέπει να ικανοποιούν οι μέθοδοι μοντελοποίησης για την πληρέστερη μοντελοποίηση των χαρακτηριστικών των εφαρμογών παγκόσμιου ιστού. Επιπλέον, γίνεται επισκόπηση και παρουσίαση των κυριότερων μεθόδων μοντελοποίησης που έχουν προταθεί από την ερευνητική κοινότητα. Ιδιαίτερη βαρύτητα δίνεται στην παρουσίαση της γλώσσας μοντελοποίησης WebML, γιατί αποτελεί την γλώσσα μοντελοποίησης με βάση την οποία έγινε η μοντελοποίηση της δομής ενός Joomla! ιστότοπου. Τέλος, στο κεφάλαιο αυτό γίνεται σύγκριση των προτεινόμενων μεθόδων μοντελοποίησης. Στο δεύτερο κεφάλαιο παρουσιάζονται τα οφέλη χρήσης σχεδιαστικών προτύπων τόσο από άπειρους όσο και από έμπειρους σχεδιαστές και δίνεται ένας επίσημος ορισμός των σχεδιαστικών προτύπων για τον παγκόσμιο ιστό. Επιπλέον, στα πλαίσια του κεφαλαίου αυτού γίνεται παρουσίαση των προτύπων δημοσίευσης και διαχείρισης περιεχομένου που έχουν οριστεί στη WebML. Για το σχεδιασμό πολύπλοκων εφαρμογών παγκόσμιου ιστού, ναι μεν το είδος επαναχρησιμοποίησης που προσφέρουν τα σχεδιαστικά πρότυπα παγκόσμιου ιστού είναι πολύτιμο, εν τούτοις απαιτείται η επαναχρησιμοποίηση όσο το δυνατόν μεγαλύτερων σχεδιαστικών δομών. Για το λόγο αυτό γίνεται αναφορά και παρουσίαση της επαναχρησιμοποίησης που υποστηρίζεται από τη χρήση σχεδιαστικών πλαισίων ανάπτυξης εφαρμογών παγκόσμιου ιστού. Στο τρίτο κεφάλαιο αναλύεται η έννοια της αντίστροφης μηχανίκευσης. Συγκεκριμένα, παρουσιάζονται οι στόχοι της αντίστροφης μηχανίκευσης και τα διάφορα είδη αντίστροφης μηχανίκευσης λογισμικού και δεδομένων. Στη συνέχεια εμβαθύνουμε στην αντίστροφη μηχανίκευση που βασίζεται σε μοντέλα και τη χρησιμότητά της, καθώς και στην αντίστροφη μηχανίκευση εφαρμογών παγκόσμιου ιστού, που είναι τα δύο είδη αντίστροφης μηχανίκευσης που έδωσαν το έναυσμα για την παρούσα διπλωματική εργασία. Στο τέλος του κεφαλαίου γίνεται μια επισκόπηση των μεθοδολογιών και των εργαλείων αντίστροφης μηχανίκευσης που έχουν αναπτυχθεί μέχρι στιγμής. Στο τέταρτο κεφάλαιο παρουσιάζεται η εφαρμογή για την αντίστροφη μηχανίκευση και μοντελοποίηση ενός Joomla! ιστότοπου που αναπτύχθηκε στα πλαίσια της παρούσας διπλωματικής εργασίας. Συγκεκριμένα, αναλύονται τα συστατικά ενός Joomla! ιστότοπου, ο σχεδιασμός του συστήματος που υλοποιήθηκε, καθώς και η μεθοδολογία που ακολουθήθηκε, προκειμένου η εφαρμογή να μπορεί να εντοπίσει αυτά τα συστατικά μέσα από τον HTML κώδικα των σελίδων του ιστότοπου. Τέλος γίνεται μια σύνοψη των πλεονεκτημάτων και της χρησιμότητας του συστήματος και παρουσιάζονται προτάσεις μελλοντικής βελτίωσης και επέκτασης. Στο πέμπτο κεφάλαιο παρουσιάζονται οι τεχνολογίες που χρησιμοποιήθηκαν για την ανάπτυξη της εφαρμογής για την αντίστροφη μηχανίκευση και μοντελοποίηση ενός ιστότοπου, κατασκευασμένου με τη βοήθεια του Joomla!. iv

Στο έκτο κεφάλαιο παρουσιάζεται η βιβλιογραφία στην οποία βασίστηκε η συγγραφή της διπλωματικής εργασίας. 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 applications 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 modeling 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 degin and development of the web applications. A number of reverse engineering methods and tools have been proposed in order to analyze, comprehend and model the architectures of such applications. When the architecture of traditional software systems is modeled, the internal structure of the operating and windowing system does not appear. Similarly, in the field of web applications, the internal structure of the web server and browser does not appear. The architectural diagrams of web applications need to show the main components of an application, which are linked together in order to create large and complex applications. The main components of an application are the objects of the Web, the database tables and the multimedia objects. In this thesis, we analyzed the most popular open source Content Management System (CMS), Joomla!. More specifically, we applied reverse engineering to it, so that we could model its architecture. For this purpose, we developed an application which explores the HTML code of all web pages of a web site created by Joomla!, so that the extraction of its model will be done automatically and not manually. The main goal is to manage to evaluate the design of its model and to provide an automatic way for evaluation, as well. Thus, we can recommend ways to redeploy the system, so that usability and efficiency will be achieved, in the use of this content management system. v

Πίνακας Περιεχομένων 1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού... 1 1.1 Εισαγωγή... 1 1.2 Πλεονεκτήματα Χρήσης Σχεδιαστικών Μοντέλων Εφαρμογών Παγκόσμιου Ιστού 2 1.3 Απαιτήσεις Μεθόδων Μοντελοποίησης... 3 1.3.1 Επίπεδα: Περιεχόμενο, Υπερκείμενο, Παρουσίαση... 4 1.3.2 Όψεις: Δομή και Συμπεριφορά... 5 1.3.3 Φάσεις: Ανάλυση, Σχεδιασμός και Υλοποίηση... 6 1.3.4 Εξατομίκευση... 7 1.4 Μέθοδοι και Τεχνικές Μοντελοποίησης... 10 1.4.1 HDM (Hypertext Design Model)... 10 1.4.2 RMM (Relationship Management Methodology)... 11 1.4.3 OOHDM (Object-Oriented Hypermedia Design Method)... 13 1.4.4 Araneus... 15 1.4.5 HDM-Lite... 15 1.4.6 Strudel... 16 1.4.7 UML Επεκτάσεις για την Υποστήριξη Μοντελοποίησης Εφαρμογών Παγκόσμιου Ιστού... 17 1.4.8 WebML (Web Modelling Language)... 18 1.5 Σύγκριση Μεθοδολογιών... 26 1.5.1 Μοντελοποίηση Περιεχομένου... 27 1.5.2 Μοντελοποίηση Πλοήγησης... 27 1.5.3 Μοντελοποίηση Διεπαφής Χρήστη... 28 1.5.4 Μοντελοποίηση Παρουσίασης... 28 1.5.5 Μοντελοποίηση Εξατομίκευσης... 28 1.6 Συμπεράσματα... 29 2 Σχεδιαστικά Πρότυπα και Πλαίσια Ανάπτυξης Εφαρμογών Παγκόσμιου Ιστού... 30 2.1 Εισαγωγή... 30 2.2 Η προέλευση των σχεδιαστικών προτύπων... 32 vi

2.3 Παράδειγμα χρήσης σχεδιαστικών προτύπων παγκόσμιου ιστού... 34 2.4 Οφέλη και Πιθανά Προβλήματα της χρήσης σχεδιαστικών προτύπων παγκόσμιου ιστού... 35 2.5 Ορισμός σχεδιαστικών προτύπων παγκόσμιου ιστού... 37 2.6 Ταξινόμηση Σχεδιαστικών Προτύπων Παγκόσμιου Ιστού... 38 2.7 Πρότυπα στη WebML... 39 2.7.1 Πρότυπα Δημοσίευσης Περιεχομένου... 39 2.7.2 Πρότυπα Διαχείρισης Περιεχομένου... 46 2.8 Σχεδιαστικά Πλαίσια Ανάπτυξης Εφαρμογών Παγκόσμιου Ιστού... 51 2.9 Αναγνώριση Βασικών Εννοιών Πληροφορίας... 52 2.10 Αναγνώριση Σκελετών Δόμησης Δεδομένων και Σχημάτων Υπερκειμένου... 54 2.11 Συμπεράσματα... 60 3 Μοντελοποίηση Εφαρμογών με χρήση Αντίστροφης Μηχανίκευσης (Reverse Engineering)... 62 3.1 Εισαγωγή... 62 3.2 Αντίστροφη μηχανίκευση... 64 3.2.1 Αντίστροφη μηχανίκευση λογισμικού... 64 3.2.2 Εργαλεία αντίστροφης μηχανίκευσης λογισμικού... 65 3.3 Είδη αντίστροφης μηχανίκευσης λογισμικού... 66 3.3.1 Αντίστροφη μηχανίκευση κώδικα... 66 3.3.2 Αντίστροφη μηχανίκευση δεδομένων... 69 3.3.3 Εργαλεία αντίστροφης μηχανίκευσης... 71 3.3.4 Αξιολόγηση εργαλείων αντίστροφης μηχανίκευσης... 73 3.4 Αντίστροφη μηχανίκευση βασισμένη σε μοντέλα... 75 3.4.1 Εισαγωγή... 75 3.4.2 Επαρκής αντίστροφη μηχανίκευση... 76 3.4.3 «Αντίστροφη» αντίστροφη μηχανίκευση... 76 3.4.4 Αντίστροφη μηχανίκευση που βασίζεται σε μοντέλα... 77 3.5 Αντίστροφη μηχανίκευση εφαρμογών παγκόσμιου ιστού... 79 3.5.1 Εισαγωγή... 79 3.5.2 Κατηγοριοποίηση των εφαρμογών παγκόσμιου ιστού... 81 vii

3.5.3 Στόχοι της αντίστροφης μηχανίκευσης εφαρμογών παγκόσμιου ιστού... 82 3.5.4 Αναπαράσταση εφαρμογών παγκόσμιου ιστού... 83 3.5.5 Εργαλεία και μεθοδολογίες αντίστροφης μηχανίκευσης εφαρμογών παγκόσμιου ιστού... 83 3.6 Συμπεράσματα... 88 4 Ανάπτυξη Εφαρμογής για Reverse Engineering Εφαρμογών Παγκόσμιου Ιστού... 90 4.1 Εισαγωγή... 90 4.2 Λειτουργικά Συστατικά Εφαρμογής Παγκόσμιου Ιστού... 91 4.3 Αρχιτεκτονική του συστήματος... 93 4.4 Σχεδιασμός εφαρμογής... 95 4.4.1 Στοιχεία του Joomla!... 95 4.4.2 HTML κώδικας και λέξεις κλειδιά... 119 4.5 Υλοποίηση του συστήματος... 120 4.5.1 Crawling και Parsing... 120 4.5.2 Δημιουργία XML αρχείου... 121 4.5.3 Δυναμικά Templates... 124 4.6 Συμπεράσματα... 126 5 Τεχνολογίες... 129 5.1.NET Framework 4... 129 5.1.1 Common Language Runtime... 130 5.1.2.NET Framework Class Library... 131 5.1.3 Ανάπτυξη Εφαρμογών Πελάτη... 132 5.1.4 Ανάπτυξη εφαρμογών κεντρικού υπολογιστή... 133 5.2 Microsoft Visual Studio... 133 5.3 Η γλώσσα προγραμματισμού C#... 134 5.4 Html Agility Pack... 135 6 Βιβλιογραφία... 137 viii

Κατάλογος Εικόνων Εικόνα 1: Διαστάσεις Μοντελοποίησης... 4 Εικόνα 2: Σχεδιαστικός Χώρος Εξατομίκευσης... 8 Εικόνα 3: Παράδειγμα Σύνθεσης Site view με περιοχές και σελίδες... 20 Εικόνα 4: Παράδειγμα Σύνθεσης Σελίδων και Πλοήγησης με και χωρίς περιεχόμενο... 23 Εικόνα 5: Γενικό Παράδειγμα Επαναχρησιμοποίησης με χρήση Σχεδιαστικών Προτύπων... 31 Εικόνα 6: Cascaded Index Πρότυπο... 40 Εικόνα 7: Filtered Index Πρότυπο... 41 Εικόνα 8: Filtered Scrolled Index Πρότυπο... 41 Εικόνα 9: Guided Tour πρότυπο... 42 Εικόνα 10: Indexed Guided Tour Πρότυπο... 43 Εικόνα 11: Object Viewpoint... 43 Εικόνα 12: Nested Data Object... 44 Εικόνα 13: Hierarchical Index with Alternative Sub-Pages... 44 Εικόνα 14: Επαναχρησιμοποιήσιμες Δομικές Μονάδες... 45 Εικόνα 15: Πρότυπο Δημιουργίας Αντικειμένου... 46 Εικόνα 16: Πρότυπο Διαγραφής Αντικειμένου... 47 Εικόνα 17: Πρότυπο Τροποποίησης Αντικειμένου... 47 Εικόνα 18: Πρότυπο Δημιουργίας Σχέσης... 48 Εικόνα 19: Πρότυπο Διαγραφής Σχέσης... 49 Εικόνα 20: Create-Connect Πρότυπο... 50 Εικόνα 21: Cascaded Delete Πρότυπο... 51 Εικόνα 22: Σχήμα Δεδομένων που αποτελείται από βασικά υποσχήματα, υποσχήματα προσπέλασης, υποσχήματα σύνδεσης και προσωποποιημένα υποσχήματα... 54 Εικόνα 23: Σχήμα Δεδομένων (Α) και Σχήμα Υπερκειμένου (Β) για το Βασικό Σκελετό... 55 Εικόνα 24: Σχήμα Δεδομένων (Α) και Σχήμα Υπερκειμένου (Β) για το Σκελετό Προσπέλασης... 56 Εικόνα 25: Σχήμα Δεδομένων (Α) και Σχήμα Υπερκειμένου (Β) για το Σκελετό Σύνδεσης 58 Εικόνα 26: Διάγραμμα Υπερκειμένου για Διαχείριση Περιεχομένου ενός Βασικού Αντικειμένου... 59 ix

Εικόνα 27: Αναπαράσταση Χρήστη και Ομάδας στο Σχήμα Δεδομένων... 60 Εικόνα 28: Υπερκείμενο Δημιουργίας Προφίλ Χρήστη... 60 Εικόνα 29: Αντίστροφη Μηχανίκευση... 63 Εικόνα 30: Ροή Δεδομένων Ανάμεσα στα Συστατικά μιας Εφαρμογής Παγκόσμιου Ιστού... 92 Εικόνα 31: Αρχιτεκτονική της Εφαρμογής: Διασύνδεση των συστατικών μερών... 94 Εικόνα 32: Ακολουθία ενεργειών για κατασκευή μοντέλου... 94 Εικόνα 33: Μορφή μιας Joomla! σελίδας... 95 Εικόνα 34: WebML μοντέλο μιας Joomla! σελίδας... 95 Εικόνα 35: WebML μοντέλο του module Search... 97 Εικόνα 36: WebML μοντέλο του module Breadcrumbs... 97 Εικόνα 37: WebML μοντέλο του module Menu όταν υπάρχουν submenus... 98 Εικόνα 38: WebML μοντέλο του module Newsflash με σύνδεση προς το πλήρες άρθρο... 98 Εικόνα 39: WebML μοντέλο του module Latest News... 99 Εικόνα 40: WebML μοντέλο του module Archived Articles... 99 Εικόνα 41: WebML μοντέλο του module Related Articles... 100 Εικόνα 42: WebML μοντέλο του module Most Read Articles... 100 Εικόνα 43: WebML μοντέλο του Categories Module... 101 Εικόνα 44: WebML μοντέλο του Category Module... 101 Εικόνα 45: WebML μοντέλο του module Latest Users... 102 Εικόνα 46: WebML μοντέλο του module Login... 102 Εικόνα 47: WebML μοντέλο του module Random Image... 103 Εικόνα 48: WebML μοντέλο του module Banner... 103 Εικόνα 49: WebML μοντέλο του module Feed Display... 104 Εικόνα 50: WebML μοντέλο του module Footer... 104 Εικόνα 51: WebML μοντέλο του Weblinks Module... 104 Εικόνα 52: WebML μοντέλο του module Custom HTML... 105 Εικόνα 53: WebML μοντέλο του module Syndicate Feed... 105 Εικόνα 54: WebML μοντέλο του module Statistics... 106 Εικόνα 55: WebML μοντέλο του module Language Switcher... 106 Εικόνα 56: WebML μοντέλο του module Wrapper... 106 x

Εικόνα 57: WebML μοντέλο των κεντρικών εναλλακτικών υποσελίδων... 107 Εικόνα 58: WebML μοντέλο των σελίδων Single Article και Email Article... 108 Εικόνα 59: WebML μοντέλο της σελίδας Featured Blog... 109 Εικόνα 60: WebML μοντέλο της σελίδας Category Blog... 110 Εικόνα 61: WebML μοντέλο της σελίδας Category List... 111 Εικόνα 62: WebML μοντέλο της σελίδας Archived Articles... 112 Εικόνα 63: WebML μοντέλο της σελίδας Single Contact... 113 Εικόνα 64: WebML μοντέλο της σελίδας Featured Contacts... 113 Εικόνα 65: WebML μοντέλο της σελίδας Contact Category... 114 Εικόνα 66: WebML μοντέλο της σελίδας Weblinks Category... 115 Εικόνα 67: WebML μοντέλο της σελίδας Newsfeed Category... 115 Εικόνα 68: WebML μοντέλο της σελίδας List All Categories... 116 Εικόνα 69: WebML μοντέλο της σελίδας Search... 117 Εικόνα 70: WebML μοντέλο της σελίδας Search Results... 118 Εικόνα 71: WebML μοντέλο των σελίδων Login, Registration, Remind Username και Reset Password... 119 Εικόνα 72: Το γενικό πλαίσιο του.net Framework... 130 Εικόνα 73: Server Side Managed Code... 133 xi

Κατάλογος Πινάκων Πίνακας 1: RMDM Δομοστοιχεία... 11 Πίνακας 2: Βασικές Μονάδες Περιεχομένου της WebML... 22 Πίνακας 3: Παραλλαγές της Δομικής Μονάδας Ευρετηρίου... 22 Πίνακας 4: Δομοστοιχεία Παραμέτρων Περιεχομένου... 24 Πίνακας 5: Δομικές Μονάδες Λειτουργιών... 25 Πίνακας 6: Λειτουργίες Σύνδεσης και Αποσύνδεσης από το σύστημα... 25 Πίνακας 7: Σύγκριση Μεθοδολογιών... 27 xii

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού 1.1 Εισαγωγή Η ραγδαία εξάπλωση του διαδικτύου τα τελευταία χρόνια και η είσοδός του στην καθημερινότητα του ανθρώπου, δημιούργησε νέες ανάγκες και απαιτήσεις από τους χρήστες. Προκειμένου να ικανοποιηθούν αυτές οι ανάγκες, χρειάστηκε να ενοποιηθούν τα συστήματα υπερμέσων (hypermedia systems) με τα πληροφοριακά συστήματα (information systems), τα οποία αρχικά προορίζονταν για εντελώς διαφορετικούς σκοπούς. Από αυτή τη διαδικασία προέκυψαν οι εφαρμογές παγκόσμιου ιστού (web applications) που ήταν πλέον ολοκληρωμένα συστήματα λογισμικού. Οι απλοί ιστότοποι χρησιμεύουν κυρίως στο να προβάλουν και να παρουσιάζουν πληροφορίες στο χρήστη, ενώ οι εφαρμογές παγκόσμιου ιστού αποτελούν πολύπλοκα λειτουργικά περιβάλλοντα. Οι βασικότερες διαφορές τους από τις παραδοσιακές εφαρμογές υπερμέσων είναι: η δυνατότητα ενεργοποίησης λειτουργιών και συναλλαγών από τους χρήστες, οι διαφορετικές όψεις της ίδιας πληροφορίας καθώς και οι διαφορετικές λειτουργίες και συναλλαγές που προσφέρονται σε διαφορετικές ομάδες χρηστών, η δυνατότητα ανάπτυξης και μεταβολής της δομής των υπερμέσων κατά τη διάρκεια ανάπτυξης της εφαρμογής. Με λίγα λόγια, οι χρήστες μπορούν πλέον όχι μόνο να προσπελαύνουν, αλλά και να μεταβάλλουν την πληροφορία που υπάρχει αποθηκευμένη στο σύστημα, εφόσον έχουν την κατάλληλη άδεια πρόσβασης. Επίσης, ένα πλήθος διαφορετικών ομάδων χρηστών με διαφορετικές απαιτήσεις πλοήγησης και λειτουργικότητας μπορούν να προσπελαύνουν την ίδια εφαρμογή. Για το λόγο αυτό στις διάφορες κατηγορίες χρηστών παρέχονται διαφορετικές διεπαφές χρήστη όσον αφορά στο περιεχόμενο, την πλοήγηση και τη λειτουργικότητα [1]. Συμπεραίνουμε λοιπόν από τα παραπάνω ότι ο σχεδιασμός εφαρμογών παγκόσμιου ιστού είναι μία πολύπλοκη διαδικασία που απαιτεί πολύ κόπο και χρόνο, ακόμα και από έμπειρους προγραμματιστές. Απαιτεί τη δυνατότητα οργάνωσης μεγάλης ποσότητας δεδομένων, δομημένων ή ημι-δομημένων (semi-structured), με ένα μη γραμμικό τρόπο και τον καθορισμό πολλαπλών μονοπατιών πλοήγησης πάνω στα δεδομένα αυτά, καθώς και τη δυνατότητα ορισμού λειτουργικών και εξελικτικών όψεων της εφαρμογής. Υπάρχουν διάφορες τεχνολογίες ανάπτυξης για τη δημιουργία τέτοιου τύπου εφαρμογών, όπως οι Active Server Pages (ASP) της Microsoft και οι Java Server Pages (JSP) της 1

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού JavaSoft. Οι τεχνολογίες αυτές παρέχουν πλήρεις και περιεκτικές λύσεις για την εξαγωγή και το χειρισμό δυναμικού περιεχομένου από υποκείμενες βάσεις δεδομένων. Όμως, οι γρήγορες ad-hoc προσεγγίσεις προτυποποίησης που προέρχονται από τις τεχνολογίες αυτές και υιοθετούνται στην πράξη, αρκετά συχνά οδηγούν σε μη ικανοποιητικά και ανεπαρκή αποτελέσματα. Παράγονται για παράδειγμα εφαρμογές που έχουν χαμηλή συντηρησιμότητα και επεκτασιμότητα [2], [3]. Για να αντιμετωπίσει αυτό το πρόβλημα και να γίνει αποτελεσματικότερος ο σχεδιασμός και η ανάπτυξη εφαρμογών παγκόσμιου ιστού, έχουν προταθεί αρκετές προσεγγίσεις που βασίζονται σε μοντέλα. Ένα σχεδιαστικό μοντέλο είναι ουσιαστικά ένα σύνολο δομοστοιχείων το οποίο επιτρέπει στους σχεδιαστές να περιγράψουν τα χαρακτηριστικά μιας εφαρμογής σε ένα εννοιολογικό επίπεδο χωρίς να λαμβάνονται υπόψη λεπτομέρειες που αφορούν στην υλοποίηση. Στόχος των προσεγγίσεων αυτών είναι να απλοποιήσουν τη διαδικασία σχεδιασμού και ανάπτυξης εφαρμογών παγκόσμιου ιστού, επιτρέποντας το σχεδιασμό τους σε ένα υψηλό επίπεδο αφαίρεσης και κάνοντας εφικτή την αυτόματη ή ημιαυτόματη παραγωγή υλοποιήσεων από υψηλού επιπέδου προδιαγραφές [4], [2], [5], [6]. Στη συνέχεια του κεφαλαίου συζητούνται τα πλεονεκτήματα χρήσης σχεδιαστικών μοντέλων, καθώς και οι βασικές απαιτήσεις που θα πρέπει να ικανοποιούν οι μέθοδοι μοντελοποίησης για την πληρέστερη μοντελοποίηση των χαρακτηριστικών των εφαρμογών παγκόσμιου ιστού. Επιπλέον, γίνεται μία γρήγορη επισκόπηση και παρουσίαση των κυριότερων μεθόδων μοντελοποίησης που έχουν προταθεί από την ερευνητική κοινότητα. Τέλος, γίνεται σύγκριση των προτεινόμενων μεθόδων μοντελοποίησης. 1.2 Πλεονεκτήματα Χρήσης Σχεδιαστικών Μοντέλων Εφαρμογών Παγκόσμιου Ιστού Ένα σχεδιαστικό μοντέλο, όπως αναφέρθηκε και στην εισαγωγή, είναι ένα σύνολο δομοστοιχείων τα οποία επιτρέπουν στους σχεδιαστές την περιγραφή των χαρακτηριστικών μιας εφαρμογής παγκόσμιου ιστού σε εννοιολογικό επίπεδο χωρίς να λαμβάνονται υπόψη λεπτομέρειες που αφορούν την υλοποίηση. Η χρήση σχεδιαστικών μοντέλων για το σχεδιασμό εφαρμογών παγκόσμιου ιστού παρέχει ένα πλήθος πλεονεκτημάτων. Ορισμένα από τα πλεονεκτήματα αυτά είναι τα ακόλουθα [7]: Βελτίωση Επικοινωνίας: Ένα σχεδιαστικό μοντέλο παρέχει μία γλώσσα. Ο αναλυτής της εφαρμογής χρησιμοποιώντας αυτή τη γλώσσα μπορεί να καθορίσει την προς ανάπτυξη εφαρμογή. Μ αυτό τον τρόπο, διευκολύνεται η επικοινωνία μεταξύ του αναλυτή και του τελικού χρήστη, του αναλυτή και του διαχειριστή συστήματος και μεταξύ του διαχειριστή συστήματος και του προγραμματιστή. 2

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού Διαχείριση Πολυπλοκότητας: Οι εφαρμογές παγκόσμιου ιστού μπορεί να γίνουν πολύ πολύπλοκες, ανάλογα με τη λειτουργικότητα και τις υπηρεσίες που παρέχουν. Με τη χρήση μοντέλων, τα συστατικά μιας δεδομένης εφαρμογής μπορούν να αναπαρασταθούν από διαφορετικά μεν, αλλά συνεπή μοντέλα. Ανάπτυξη σχεδιαστικών μεθοδολογιών: Οι δημιουργοί των εφαρμογών υπερκειμένου μπορούν να χρησιμοποιήσουν το πλαίσιο ανάπτυξης που παρέχουν τα σχεδιαστικά μοντέλα, προκειμένου να αναπτύξουν, να αναλύσουν και να συγκρίνουν μεθοδολογίες σε ένα υψηλό επίπεδο αφαίρεσης, χωρίς να δίνουν σημασία στα λεπτομερή χαρακτηριστικά των δομοστοιχείων πληροφορίας ή στους διάφορους τρόπους παρουσίασης τους. Καλύτερη κατανόηση της αρχιτεκτονικής: Μοντελοποιώντας την εφαρμογή, οι προγραμματιστές έχουν τη δυνατότητα να χωρίσουν το σχεδιασμό της σε διακριτά και ανεξάρτητα επίπεδα. Με τον τρόπο αυτό, οι προγραμματιστές έχουν μια ξεκάθαρη εικόνα για τα δομοστοιχεία που απαρτίζουν την εφαρμογή. Επαναχρησιμοποίηση: Σε περίπτωση που οι σχεδιαστές μιας εφαρμογής παγκόσμιου ιστού έχουν στη διάθεσή τους αναπτυγμένες εφαρμογές με χρήση μοντέλων, μπορούν να επαναχρησιμοποιήσουν το βασικό σκελετό της εφαρμογής, εφόσον η σημασιολογία των δύο εφαρμογών είναι παρόμοια. Παροχή συνεπών και προβλέψιμων περιβαλλόντων: Τα εργαλεία καθορισμού δομών υπερκειμένου βοηθούν τους προγραμματιστές να αποφύγουν ασυνέπειες και λάθη. Οι εφαρμογές παγκόσμιου ιστού που έχουν αναπτυχθεί με βάση κάποιο μοντέλο αναπαρίστανται από πολύ συνεπείς και αναμενόμενες δομές αναπαράστασης. Με τον τρόπο αυτό, και τα περιβάλλοντα πλοήγησης που έχουν αναπτυχθεί με χρήση μοντέλων θα είναι αναμενόμενα, επιτρέποντας στους τελικούς χρήστες να πλοηγούνται ευκολότερα στην εφαρμογή και να μην αποπροσανατολίζονται [8]. Χρήση Από Σχεδιαστικά Εργαλεία: Τα σχεδιαστικά μοντέλα είναι η βάση για την ανάπτυξη Σχεδιαστικών Εργαλείων (Design Tools) [9]. Τα σχεδιαστικά εργαλεία υποστηρίζουν μία συστηματική και δομημένη διαδικασία ανάπτυξης. Επιπλέον, επιτρέπουν στο χρήστη να εργάζεται στο επίπεδο αφαίρεσης που είναι πιο κοντά στο πεδίο της εφαρμογής και παρέχουν συστηματική διαδικασία μετάφρασης στο επίπεδο υλοποίησης. Βελτίωση Συντηρησιμότητας και Ορθότητας του συστήματος: Η συντηρησιμότητα μιας εφαρμογής παγκόσμιου ιστού είναι ευκολότερη, όταν ο προγραμματιστής γνωρίζει τα δομοστοιχεία από τα οποία αποτελείται η δεδομένη εφαρμογή. Επίσης, η συνέπεια μεταξύ του μοντέλου και της τελικής εφαρμογής είναι δεδομένη. Οπότε το τελικό σύστημα δε θα έχει ασυνέπειες και λάθη. 1.3 Απαιτήσεις Μεθόδων Μοντελοποίησης Τα σχεδιαστικά μοντέλα θα πρέπει να ικανοποιούν μία σειρά από απαιτήσεις [10], [5] που προέρχονται κατά κύριο λόγο από το συνδυασμό των απαιτήσεων που ορίζονται στα [2], 3

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού [11], [12] και [4]. Ο Schwinger στη διδακτορική του διατριβή [13] κατηγοριοποιεί το πλαίσιο αυτό των απαιτήσεων με βάση τρεις ορθογώνιες διαστάσεις, τα επίπεδα, τις όψεις και τις φάσεις μοντελοποίησης μιας εφαρμογής παγκόσμιου ιστού (Εικόνα 1). Στη συνέχεια παρουσιάζεται πιο αναλυτικά η συγκεκριμένη προσέγγιση. Εικόνα 1: Διαστάσεις Μοντελοποίησης 1.3.1 Επίπεδα: Περιεχόμενο, Υπερκείμενο, Παρουσίαση Η πρώτη διάσταση μοντελοποίησης εφαρμογών παγκόσμιου ιστού αποτελείται από τρία διαφορετικά επίπεδα: το επίπεδο περιεχομένου, το επίπεδο υπερκειμένου και το επίπεδο παρουσίασης [14]. Το επίπεδο περιεχομένου αναφέρεται στα δεδομένα που χρησιμοποιούνται από την εφαρμογή παγκόσμιου ιστού. Συνήθως η διαχείριση των δεδομένων γίνεται με χρήση συστημάτων βάσεων δεδομένων. Το επίπεδο υπερκειμένου, το οποίο αποτελείται από το επίπεδο σύνθεσης και το επίπεδο πλοήγησης, ασχολείται με τη λογική σύνθεση των ιστοσελίδων και τη δομή της πλοήγησης. Τέλος, το επίπεδο παρουσίασης ασχολείται με την απεικόνιση του επιπέδου υπερκειμένου, όπως την εμφάνιση (layout) των σελίδων και την αλληλεπίδραση με το χρήστη [15]. Οι απαιτήσεις μιας εφαρμογής παγκόσμιου ιστού σε σχέση με τη συγκεκριμένη διάσταση είναι οι εξής: Διαχωρισμός μεταξύ επιπέδων και Σαφής Αντιστοίχιση. Μια κύρια απαίτηση για τη μοντελοποίηση εφαρμογών παγκόσμιου ιστού είναι ο ξεκάθαρος διαχωρισμός μεταξύ των τριών επιπέδων, κάθε ένα από τα οποία εξετάζει διαφορετική όψη των εφαρμογών παγκόσμιου ιστού. Αυτό επιτυγχάνεται δηλώνοντας ρητά τις αλληλεξαρτήσεις, όπως για παράδειγμα την ξεκάθαρη αντιστοίχηση μεταξύ των επιπέδων. Με αυτό τον τρόπο, διευκολύνεται η ανάπτυξη του μοντέλου και η επαναχρησιμοποίησή του, μειώνεται η πολυπλοκότητα και βελτιώνεται η ευελιξία [14]. Για παράδειγμα, για το ίδιο επίπεδο υπερκειμένου, ανάλογα με τα χαρακτηριστικά του φυλλομετρητή ή με τον τύπο του χρήστη, καθίσταται δυνατή η παροχή διαφορετικών αναπαραστάσεων. Ευέλικτες Δυνατότητες Μοντελοποίησης. Οι δυνατότητες αντιστοίχησης πρέπει να είναι όσο το δυνατόν πιο ευέλικτες, προκειμένου να ικανοποιηθούν οι 4

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού διάφοροι στόχοι που έχουν τεθεί κατά το σχεδιασμό καθενός από τα επίπεδα. Για παράδειγμα, προκειμένου το browsing να γίνει πιο αποδοτικό, η ίδια πληροφορία μπορεί να εμφανίζεται σε περισσότερα του ενός έγγραφα, έτσι ώστε ο χρήστης να μπορεί να πλοηγείται σε αυτή, με χρήση διαφορετικών μονοπατιών προσπέλασης. Η ύπαρξη της ίδιας πληροφορίας σε πολλά έγγραφα οδηγεί σε καταστάσεις πλεονασμού (redundancy) και επανάληψης. Στο επίπεδο περιεχομένου ο πλεονασμός εξαλείφεται με τη χρήση τεχνικών κανονικοποίησης (normalization techniques), για την αποφυγή ασυνεπειών και προβλημάτων στην ενημέρωση της πληροφορίας. Η ύπαρξη ευέλικτων δυνατοτήτων μοντελοποίησης εξασφαλίζει την παραγωγή του ενός επιπέδου από το άλλο, παρά τις διαφορές αυτές. Καλό θα είναι επίσης, η μέθοδος μοντελοποίησης να υποστηρίζει κάποιο είδος προκαθορισμένης αντιστοίχισης, η οποία θα μπορεί να διαμορφωθεί και να ρυθμιστεί από το σχεδιαστή. Bottom-Up και Top-Down Σχεδιασμός. Συνήθως οι σχεδιαστές κατά τη μοντελοποίηση μιας εφαρμογής παγκόσμιου ιστού ξεκινούν να μοντελοποιούν πρώτα το επίπεδο περιεχομένου και στη συνέχεια παράγουν τα υπόλοιπα επίπεδα ανάλογα. Αυτού του είδους η μοντελοποίηση ονομάζεται από-κάτω-προς-τα-πάνω. Καλό θα είναι η μοντελοποίηση να μην πρέπει αναγκαστικά και μόνο να ακολουθεί από κάτω προς τα πάνω σχεδιασμό. Η μέθοδος μοντελοποίησης θα πρέπει να επιτρέπει στους σχεδιαστές να μοντελοποιήσουν το σχεδιασμό της εφαρμογής και από-πάνω-προς-τα-κάτω, δηλαδή το επίπεδο περιεχομένου να μπορεί να παραχθεί από τα άλλα επίπεδα [16]. Ο από-κάτω-προς-τα-πάνω σχεδιασμός απαιτείται όταν για παράδειγμα η ήδη υπάρχουσα πληροφορία μιας βάσης δεδομένων πρέπει να μεταφερθεί στον παγκόσμιο ιστό, ενώ ο από-πάνω-προς-τακάτω σχεδιασμός είναι χρήσιμος στην περίπτωση που το περιεχόμενο υπαρχουσών ιστοσελίδων πρέπει να αποθηκευτεί σε μια βάση δεδομένων. 1.3.2 Όψεις: Δομή και Συμπεριφορά Η δεύτερη διάσταση αποτελείται από τις όψεις της δομής και της συμπεριφοράς. Οι όψεις αυτές είναι ορθογώνιες στα τρία επίπεδα της πρώτης διάστασης. Όσον αφορά στο επίπεδο περιεχομένου, το πεδίο της εφαρμογής πρέπει να δομηθεί με χρήση πρότυπων μηχανισμών αφαίρεσης, όπως η ταξινόμηση, η ομαδοποίηση και η γενίκευση. Εκτός από τη δόμηση του πεδίου, πρέπει επίσης να μοντελοποιηθεί και η όψη της συμπεριφοράς, λαμβάνοντας υπόψη τη λογική του πεδίου της εφαρμογής. Όμοια, στο επίπεδο υπερκειμένου πρέπει να μοντελοποιηθεί η δομή που αφορά τη σύνθεση των σελίδων, καθώς και τις σχέσεις πλοήγησης ανάμεσά τους, όπως επίσης πρέπει να μοντελοποιηθεί και η συμπεριφορά της εφαρμογής, για παράδειγμα να υπολογιστεί και να βρεθεί το άκρο ενός συγκεκριμένου συνδέσμου κατά το χρόνο εκτέλεσης. Όσον αφορά στην όψη της δομής, στο επίπεδο παρουσίασης πρέπει να μοντελοποιηθούν τα αντικείμενα της διεπαφής χρήστη και η ιεραρχική σύνθεσή τους. Η όψη της συμπεριφοράς εμπεριέχει τη μοντελοποίηση των ενεργειών που θα εκτελεστούν κατά την εισαγωγή δεδομένων 5

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού από το χρήστη. Για παράδειγμα πρέπει να μοντελοποιηθεί το τι θα συμβεί κατά το πάτημα ενός κουμπιού ή πως θα αλληλεπιδρούν και θα συγχρονίζονται τα αντικείμενα της διεπαφής χρήστη. Οι απαιτήσεις μιας εφαρμογής παγκόσμιου ιστού σε σχέση με τη συγκεκριμένη διάσταση είναι οι εξής: Φορμαλισμός Μοντελοποίησης (modeling formalism) για τη Δομή και τη Συμπεριφορά. Απαιτείται η δημιουργία ενός φορμαλισμού μοντελοποίησης που θα λαμβάνει υπόψη του τις ιδιαιτερότητες τόσο της δομής, όσο και της συμπεριφοράς και των τριών επιπέδων. Προκειμένου να υπάρχει μία ομοιόμορφη αντιστοίχηση μεταξύ των επιπέδων, καλό είναι η δομή και η συμπεριφορά τους να αναπαρασταθούν με βάση ένα μόνο ομοιόμορφο βασικό φορμαλισμό μοντελοποίησης και να μην επιλεγούν διαφορετικοί φορμαλισμοί μοντελοποίησης για καθένα από αυτά. Ο βασικός αυτός φορμαλισμός μοντελοποίησης θα προσαρμόζεται ανάλογα με τις ιδιαιτερότητες κάθε επιπέδου. Για τη μοντελοποίηση τόσο της δομής όσο και της συμπεριφοράς καθενός από τα τρία επίπεδα καλό είναι να χρησιμοποιηθεί μια αντικειμενοστρεφής τεχνική μοντελοποίησης [17]. Σχεδιαστικά Πρότυπα (Design Patterns): Μία επίσης σημαντική απαίτηση είναι η μέθοδος μοντελοποίησης να υποστηρίζει σχεδιαστικά πρότυπα σε όλα τα επίπεδα. Με τον τρόπο αυτό διευκολύνεται η επαναχρησιμοποίηση τμημάτων της δομής και της συμπεριφοράς των εφαρμογών παγκόσμιου ιστού. Στο [18] περιγράφονται πάνω από 50 σχεδιαστικά πρότυπα, τα περισσότερα από τα οποία αφορούν την πλοήγηση στο επίπεδο υπερκειμένου. Παραδείγματα σχεδιαστικών προτύπων πλοήγησης για τη μεταφορά δεδομένων είναι οι κατευθυνόμενες περιηγήσεις, μέσω των οποίων υποστηρίζεται η γραμμική πλοήγηση μεταξύ των σελίδων και τα ευρετήρια, τα οποία επιτρέπουν την πλοήγηση από το γενικό ευρετήριο στα επιμέρους μέλη του και αντίστροφα [19]. 1.3.3 Φάσεις: Ανάλυση, Σχεδιασμός και Υλοποίηση Η τρίτη διάσταση μοντελοποίησης εφαρμογών παγκόσμιου ιστού ορίζει τις διάφορες φάσεις του κύκλου ζωής ενός συστήματος από την ανάλυση απαιτήσεων έως την υλοποίηση της εφαρμογής. Η διάσταση αυτή είναι ορθογώνια ως προς τις δύο προηγούμενες. H δομή και η συμπεριφορά του περιεχομένου, η πλοήγηση και η παρουσίαση πρέπει να εξετάζονται σε κάθε φάση της διαδικασίας ανάπτυξης. Γενικά, η ερευνητική κοινότητα δεν έχει προτείνει ένα συγκεκριμένο και ομόφωνα αποδεκτό γενικό μοντέλο για τον κύκλο ζωής ανάπτυξης μιας εφαρμογής παγκόσμιου ιστού. Οι γρήγορες τεχνολογικές αλλαγές απαιτούν ο κύκλος ζωής μιας εφαρμογής παγκόσμιου ιστού να αποτελείται από περισσότερες και μικρότερης διάρκειας επαναλήψεις (iterations) από ότι τα συστήματα λογισμικού άλλων πεδίων. Η ανάγκη, λοιπόν, για πρωτοτυποποίηση και ο εντατικός έλεγχος μιας εφαρμογής παγκόσμιου ιστού είναι απαραίτητα. 6

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού 1.3.4 Εξατομίκευση Μία άλλη διάσταση που πρέπει να ληφθεί υπόψη για τη μοντελοποίηση εφαρμογών παγκόσμιου ιστού είναι η διάσταση της εξατομίκευσης. Προκειμένου να οριστεί ο σχεδιαστικός χώρος της εξατομίκευσης είναι χρήσιμο να γίνει μία ιστορική αναδρομή [10]. Ο σχεδιασμός της εξατομίκευσης μιας εφαρμογής παγκόσμιου ιστού άρχισε να προβληματίζει τους σχεδιαστές από τότε που ο τελικός χρήστης έγινε το επίκεντρο στο σχεδιασμό εφαρμογών παγκόσμιου ιστού. Η κοινότητα των διεπαφών χρήστη (user interface community) εξετάζει αρκετό καιρό θέματα που αφορούν την εξατομίκευση. Καρπός των ερευνών της κοινότητας αυτής είναι οι προσαρμοστικές διεπαφές χρήστη (adaptive user interfaces) [20]. Οι προσαρμοστικές διεπαφές χρήστη σχεδιάζονται προκειμένου να διαμορφώνουν την αλληλεπιδραστική συμπεριφορά ενός συστήματος λαμβάνοντας υπόψη τους τόσο τις ατομικές ανάγκες των χρηστών όσο και τις μεταβαλλόμενες συνθήκες ενός περιβάλλοντος εφαρμογής. Η πιο γνωστή προσέγγιση διεπαφών χρήστη που περιέχει, κατά το μεγαλύτερο ποσοστό, προσαρμοστικά χαρακτηριστικά είναι οι έξυπνες ή συμβουλευτικές διεπαφές χρήστη (intelligent or advisory user interfaces) [21]. Μια άλλη περιοχή που ασχολείται με την εξατομίκευση, δίνοντας όμως μεγαλύτερη έμφαση στην προσαρμογή του περιεχομένου της εφαρμογής, είναι τα συστήματα φιλτραρίσματος πληροφορίας και παροχής συστάσεων (information filtering and recommender system) [22]. Στόχος των συστημάτων αυτών είναι η εξέταση και ανάλυση ενός μεγάλου πλήθους δυναμικά παραγόμενης πληροφορίας κειμένου και η παρουσίαση στο χρήστη της πληροφορίας εκείνης που πιθανόν να ικανοποιεί τις απαιτήσεις του. Η εμφάνιση του υπερκειμένου δημιούργησε την ανάγκη ύπαρξης εναλλακτικών μονοπατιών πρόσβασης στην πληροφορία, όπως για παράδειγμα διαφορετικών δομών πλοήγησης. Η ανάγκη αυτή οδήγησε σε μια άλλη κατεύθυνση έρευνας, το προσαρμοστικό υπερκείμενο και τα υπερμέσα (adaptive hypertext and hypermedia) [23]. Τέλος, με τη διάδοση των φορητών υπολογιστών και εφαρμογών παγκόσμιου ιστού για κινητές συσκευές (mobile computing and mobile web applicatons), κατά τη σχεδίαση εφαρμογών παγκόσμιου ιστού, πρέπει να λαμβάνονται υπ όψη όχι μόνο οι προτιμήσεις του χρήστη, αλλά και το περιβάλλον της κινητής συσκευής, για παράδειγμα το μέρος και η τοποθεσία που βρίσκεται η κινητή συσκευή, προκειμένου να προσαρμοστεί η εφαρμογή ανάλογα [24]. Στις παραπάνω προσεγγίσεις η έννοια της εξατομίκευσης χρησιμοποιείται αποκλειστικά και μόνο με ένα προσανατολισμένο στην υλοποίηση (implementation oriented) τρόπο. Αναπαριστούν όμως μια ορθή βάση για την παραγωγή του σχεδιαστικού χώρου της εξατομίκευσης στο επίπεδο μοντελοποίησης. Ο σχεδιαστικός χώρος της εξατομίκευσης μπορεί να χαρακτηριστεί από τρεις ορθογώνιες διαστάσεις: το είδος του πλαισίου εφαρμογής, το μέγεθος της προσαρμοστικότητας και το βαθμό εξατομίκευσης (Εικόνα 2). 7

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού Εικόνα 2: Σχεδιαστικός Χώρος Εξατομίκευσης 1.3.4.1 Είδος Πλαισίου Εφαρμογής (Kind Of Context) Η πρώτη διάσταση της εξατομίκευσης καλύπτει το είδος του πλαισίου της εφαρμογής παγκόσμιου ιστού που πρόκειται να μοντελοποιηθεί. Συγκεκριμένα το είδος του πλαισίου εκφράζει το περιβάλλον της εφαρμογής. Η πλειοψηφία των προσεγγίσεων, όπως οι [3], [25], [26], [27] και [10] εξετάζουν το θέμα της εξατομίκευσης (personalization) από την άποψη του πλαισίου χρήστη (user context). Σε αυτή την περίπτωση εξετάζονται τα χαρακτηριστικά και οι προτιμήσεις σχετικών μεταξύ τους χρηστών και γίνονται υποθέσεις και προτάσεις για την επιλογή εξατομικευμένων υπηρεσιών [28]. Ένας επίσης σημαντικός αριθμός προσεγγίσεων λαμβάνει υπόψη τις ιδιότητες των συσκευών και του δικτύου χρησιμοποιώντας το πλαίσιο συσκευής (device context) και το πλαίσιο δικτύου (network context) [26], [29]. Συνήθως, το πλαίσιο δικτύου και το πλαίσιο συσκευής λαμβάνονται υπόψη σε συνδυασμό και όχι ξεχωριστά. Αυτό είναι λογικό, αν αναλογιστεί κανείς ότι και οι κινητές συσκευές χρησιμοποιούν ασύρματες συνδέσεις, οι οποίες εμπεριέχουν ορισμένους από τους περιορισμούς του δικτύου. Στο [30] για παράδειγμα γίνεται διαχωρισμός μεταξύ τριών όψεων των παραλλαγών χρήστη (client variations). Οι παραλλαγές αυτές είναι οι εξής: παραλλαγές δικτύου, όπως είναι το εύρος ζώνης και η λανθάνουσα καθυστέρηση (latency), παραλλαγές υλικού, όπως το μέγεθος της οθόνης, και τέλος παραλλαγές μνήμης και λογισμικού, οι οποίες περιλαμβάνουν και τους τύπους δεδομένων που μπορεί να μεταχειριστεί ο πελάτης. Στο [31] εισάγεται επιπλέον η έννοια του πλαισίου τοποθεσίας (location context), το οποίο περιλαμβάνει τις φυσικές και λογικές τοποθεσίες (π.χ., στο σπίτι σε αντίθεση με το γραφείο). Εντούτοις, μόνο ένα μικρό μέρος των προσεγγίσεων που εξετάστηκαν ασχολούνται ρητά με το πλαίσιο τοποθεσίας [24]. Αυτό συμβαίνει τόσο εξαιτίας τεχνικών ελλείψεων, όσο και εξαιτίας έλλειψης νόμιμων ρυθμίσεων και κανονισμών. Όμοια, στη βιβλιογραφία σπάνια λαμβάνεται υπόψη το πλαίσιο χρόνου (time context), μέσω του οποίου γίνεται εξατομίκευση με βάση το χρόνο προσπέλασης μιας συγκεκριμένης υπηρεσίας. Ανεξάρτητα από το είδος του, το πλαίσιο της εφαρμογής μπορεί να διαχωριστεί σε ένα 8

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού αμετάβλητο μέρος, το οποίο διαμορφώνεται ελέγχοντας το περιβάλλον της εφαρμογής (π.χ., τον τύπο της συσκευής που χρησιμοποιείται ή ένα αναγνωριστικό του κελιού το οποίο φανερώνει την τρέχουσα τοποθεσία της συσκευής κατά την προσπέλαση της εφαρμογής) και ένα μεταβλητό μέρος το οποίο μπορεί να εισαχθεί από ένα χρήστη (π.χ., οι προτιμήσεις του), ένα πωλητή συσκευών (π.χ., τα χαρακτηριστικά μιας συσκευής) ή ένα σχεδιαστή (π.χ., χάρτες δρόμων). Το μεταβλητό μέρος ονομάζεται επίσης και τρέχον πλαίσιο της εφαρμογής, και το αμετάβλητο μέρος, σύμφωνα με τη βιβλιογραφία, καλείται προφίλ [32]. 1.3.4.2 Μέγεθος Προσαρμοστικότητας (Granularity of Adaptation) Η δεύτερη διάσταση υποδηλώνει το μέγεθος της προσαρμοστικότητας (granularity of adaptation), η οποία κυμαίνεται από μικροπροσαρμοστικότητα έως μακροπροσαρμοστικότητα. Η μικροπροσαρμοστικότητα εξετάζει τις πολύ μικρές προσαρμογές, όπως είναι για παράδειγμα η απενεργοποίηση ενός συνδέσμου μιας σελίδας, ή ο καθορισμός της ιδιότητας μέλους ενός αντικείμενου σε μία κλάση. Η μακροπροσαρμοστικότητα δηλώνει ότι ανάλογα με το πλαίσιο της εφαρμογής μπορούν να προσαρμοστούν σχετικά μεγάλα τμήματα της εφαρμογής (π.χ., να χρησιμοποιηθεί μία απλή bullet list, αντί για ένα indexed guided tour). Αντικείμενο προσαρμοστικότητας μπορεί να αποτελέσει κάθε ένα από τα επίπεδα μιας εφαρμογής παγκόσμιου ιστού, που ορίστηκαν προηγουμένως. Πρέπει να σημειωθεί ότι δεν υπάρχει σαφής διαχωρισμός των ορίων της μικροπροσαρμοστικότητας και της μακροπροσαρμοστικότητας. Στην πιο ακραία περίπτωση, η μακροπροσαρμοστικότητα, ανάλογα με το πλαίσιο της εφαρμογής, περιλαμβάνει την αντικατάσταση μιας ολόκληρης εφαρμογής που υλοποιεί μια συγκεκριμένη υπηρεσία με μία άλλη. Η ακραία αυτή περίπτωση μακροεξατομίκευσης συναντάται συνήθως σε συνδυασμό με το στατικό πλαίσιο εφαρμογής και τη στατική προσαρμογή (ο ορισμός τους δίνεται παρακάτω). 1.3.4.3 Βαθμός Εξατομίκευσης (Degree of Customization) Η τρίτη διάσταση, ο βαθμός εξατομίκευσης, εκφράζει το γεγονός ότι τόσο το πλαίσιο της εφαρμογής παγκόσμιου ιστού όσο και η προσαρμοστικότητα μπορούν να είναι είτε στατικά, δηλαδή προκαθορισμένα, είτε δυναμικά, να καθορίζονται δηλαδή κατά τη διάρκεια του χρόνου εκτέλεσης. Παράδειγμα στατικού πλαισίου εφαρμογής και στατικής προσαρμοστικότητας είναι η επιλογή μιας προκαθορισμένης έκδοσης μιας εφαρμογής ανάλογα με τη συσκευή που χρησιμοποιείται για την προσπέλασή της. Να υπάρχει δηλαδή, διαφορετική έκδοση της εφαρμογής σε περίπτωση που προσπελαύνεται από μία κινητή συσκευή και διαφορετική έκδοση σε περίπτωση που η εφαρμογή προσπελαύνεται από ένα προσωπικό υπολογιστή. Παράδειγμα πλήρους δυναμικής περίπτωσης είναι η προσαρμογή της ανάλυσης μιας εικόνας κατά το χρόνο εκτέλεσης, εξ αιτίας κάποιας αλλαγής στο εύρος ζώνης. Οι εφαρμογές που υποστηρίζουν μόνο στατικά πλαίσια εφαρμογής ή και στατική προσαρμοστικότητα συνήθως ονομάζονται προσαρμόσιμες, ενώ οι εφαρμογές που υποστηρίζουν και δυναμικά πλαίσια εφαρμογής και δυναμική προσαρμοστικότητα θεωρούνται προσαρμοστικές [27]. 9

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού 1.4 Μέθοδοι και Τεχνικές Μοντελοποίησης Με βάση τις απαιτήσεις μοντελοποίησης που προαναφέρθηκαν έχει αναπτυχθεί και προταθεί από την ερευνητική κοινότητα ένα πλήθος μεθόδων, μεθοδολογιών και τεχνικών μοντελοποίησης των εφαρμογών παγκόσμιου ιστού. Οι εννοιολογικές προσεγγίσεις μοντελοποίησης του παγκόσμιου ιστού παρέχουν ένα υψηλό βαθμό αφαίρεσης στη διαδικασία του σχεδιασμού και της ανάπτυξης των εφαρμογών παγκόσμιου ιστού. Οι μεθοδολογικές προσεγγίσεις συνήθως: χωρίζουν το σχεδιασμό των εφαρμογών παγκόσμιου ιστού σε διαφορετικές διαστάσεις, οργανώνουν τις δραστηριότητες ανάπτυξης σε μία δομημένη διαδικασία και παρέχουν εργαλεία μεταβλητού επιπέδου αυτοματοποίησης [4]. Στη συνέχεια παρουσιάζονται τα πιο αντιπροσωπευτικά δείγματα μεθόδων μοντελοποίησης εφαρμογών παγκόσμιου ιστού. Ιδιαίτερη αναφορά και εκτενέστερη παρουσίαση γίνεται στη WebML, λόγω του ότι πρόκειται να αποτελέσει τη μέθοδο μοντελοποίησης που χρησιμοποιείται στις τεχνικές που παρουσιάζονται στα επόμενα κεφάλαια. 1.4.1 HDM (Hypertext Design Model) Η HDM [7] είναι μία από τις πρώτες σχεδιαστικές μεθόδους που προτάθηκαν για το σχεδιασμό εφαρμογών υπερκειμένου. Βασίζεται στο μοντέλο Οντοτήτων-Συσχετίσεων (Entity-Relationship model) και επεκτείνει την έννοια της οντότητας. Οι HDM οντότητες έχουν μία εσωτερική δομή. Κάθε οντότητα είναι συσχετισμένη με πληροφορία που αφορά τον τρόπο πλοήγησής της και τον τρόπο με τον οποίο μπορεί να οπτικοποιηθεί η πληροφορία που περιέχει. Μία οντότητα είναι μία ιεραρχία συστατικών, τα οποία αποτελούνται από δομοστοιχεία. Κάθε δομοστοιχείο παρουσιάζει την πληροφορία του συστατικού με βάση μια συγκεκριμένη προοπτική (perspective). H προοπτική περιγράφει την έννοια της ύπαρξης διαφορετικών αναπαραστάσεων για το ίδιο περιεχόμενο. Τα δομοστοιχεία είναι τα μικρότερα κομμάτια πληροφορίας που μπορούν να οπτικοποιηθούν σε μία HDM εφαρμογή. Οι διάφορες HDM δομές πληροφορίας αλληλοσυνδέονται με χρήση συνδέσμων, οι οποίοι κατηγοριοποιούνται σε: δομικούς συνδέσμους, οι οποίοι συνδέουν συστατικά που ανήκουν στην ίδια οντότητα, συνδέσμους προοπτικής, οι οποίοι συνδέουν διαφορετικά δομοστοιχεία που αντιστοιχούν στο ίδιο συστατικό, συνδέσμους εφαρμογής, οι οποίοι ορίζονται από το σχεδιαστή και συνδέουν συστατικά και οντότητες. Στην HDM υπάρχουν δύο διαφορετικές ομάδες οντοτήτων. Οι οντότητες της εφαρμογής, που περιγράφηκαν προηγουμένως, και τα περιγράμματα (outlines), που επιτρέπουν την πρόσβαση και τη δυνατότητα εντοπισμού και επιλογής των οντοτήτων εφαρμογής. Τα 10

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού περιγράμματα αυτά ή οι δομές προσπέλασης είναι ταξινομημένα δέντρα συστατικών. Οι οντότητες της εφαρμογής συνθέτουν το hyperbase. Η HDM επιτρέπει την περιγραφή συνολικών κλάσεων στοιχείων δεδομένων και δομών πλοήγησης των εφαρμογών υπερκειμένου. Για τη μοντελοποίηση μιας εφαρμογής υπερκειμένου διακρίνονται δύο επίπεδα. Το πρώτο επίπεδο είναι το επίπεδο υπερβάσης (hyperbase layer), το οποίο αναπαριστά το περιεχόμενο της εφαρμογής και το δεύτερο είναι το επίπεδο προσπέλασης (access layer), το οποίο παρέχει ευκολίες πλοήγησης. Με χρήση της έννοιας της προοπτικής, η οποία όπως προαναφέρθηκε περιγράφει διαφορετικές αναπαραστάσεις για το ίδιο περιεχόμενο, η HDM έχει τη δυνατότητα προσαρμογής στις απαιτήσεις του πελάτη. Για παράδειγμα, το ίδιο περιεχόμενο μπορεί να έχει διαφορετικές γλωσσικές προοπτικές, π.χ. Αγγλικά και Γαλλικά. Τίποτα όμως δεν είναι προκαθορισμένο και ο σχεδιαστής είναι εκείνος που αποφασίζει πώς θα χρησιμοποιήσει την προοπτική για την προβολή πληροφορίας με διαφορετικούς τρόπους. Για το σχεδιασμό και την ανάπτυξη ιστοσελίδων με βάση την HDM έχει υλοποιηθεί το Jweb εργαλείο [33]. 1.4.2 RMM (Relationship Management Methodology) Η RMM [34] είναι μία μεθοδολογία για το σχεδιασμό και την κατασκευή εφαρμογών υπερμέσων, η οποία ενσωματώνει τις σχεδιαστικές έννοιες της HDM σε μία δομημένη μεθοδολογία. Βασικό στοιχείο της RMM μεθοδολογίας είναι το μοντέλο δεδομένων της, το Relationship Management Data Model (RMDM), τα δομοστοιχεία του οποίου φαίνονται στον Πίνακας 1. Πίνακας 1: RMDM Δομοστοιχεία Το RMDM παρέχει μία γλώσσα για την περιγραφή των αντικειμένων πληροφορίας και των μηχανισμών πλοήγησης σε εφαρμογές υπερμέσων. Το μοντέλο αυτό βασίζεται στο μοντέλο οντοτήτων συσχετίσεων και στην HDM. Οι οντότητες (entities) και τα 11

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού κατηγορήματά (attributes) τους αναπαριστούν αφηρημένα ή συγκεκριμένα αντικείμενα και οι συσχετίσεις, οι οποίες μπορεί να είναι ένα-προς-ένα (one-to-one), ένα-προςπολλα (one-to-many) και πολλά-προς-πολλά (many-to-many), αναπαριστούν σχέσεις μεταξύ των οντοτήτων. Τα κατηγορήματα των οντοτήτων ομαδοποιούνται σε slices ανάλογα με τη φύση της πληροφορίας που περιέχουν. Για την πλοήγηση στο RMDM έχουν οριστεί έξι δομοστοιχεία προσπέλασης. Για τον καθορισμό της προσπέλασης των sclices μιας οντότητας χρησιμοποιούνται σύνδεσμοι μονής και διπλής κατεύθυνσης. Οι πιο σημαντικές δομές πλοήγησης που υποστηρίζονται από το RMDM είναι: τα ευρετήρια, τα οποία παρουσιάζουν μία λίστα των στιγμιότυπων των οντοτήτων και παρέχουν απευθείας πρόσβαση σε κάθε αντικείμενο της λίστας, οι κατευθυνόμενες περιηγήσεις, οι οποίες υλοποιούν ένα γραμμικό μονοπάτι σε μία συλλογή αντικειμένων, επιτρέποντας στο χρήστη να κινείται εμπρός ή πίσω στο μονοπάτι και οι ομαδοποιήσεις, οι οποίες παρέχουν ένα μηχανισμό τύπου μενού, ο οποίος επιτρέπει την πρόσβαση σε άλλα τμήματα της εφαρμογής. Ο σχεδιασμός και η δημιουργία εφαρμογών υπερμέσων με χρήση της RMM αποτελείται από τα παρακάτω επτά βήματα: E-R Σχεδιασμός: Στο βήμα αυτό το πεδίο πληροφοριών της εφαρμογής αναπαρίσταται μέσω ενός διαγράμματος οντοτήτων συσχετίσεων. Σχεδιασμός slices: Στο βήμα αυτό καθορίζεται ο τρόπος με τον οποίο η πληροφορία των επιλεγμένων οντοτήτων θα παρουσιαστεί στο χρήστη. Τα διάφορα κατηγορήματα της οντότητας ομαδοποιούνται σε slices, τα οποία οργανώνονται σε ένα δίκτυο υπερκειμένου. Σχεδιασμός πλοήγησης: Ο σχεδιαστής, στο βήμα αυτό, σχεδιάζει τα μονοπάτια που θα επιτρέψουν στο χρήστη την πλοήγηση στο υπερκείμενο. Αρχικά, σχεδιάζεται η πλοήγηση μεταξύ οντοτήτων που συσχετίζονται μέσω μιας συσχέτισης. Στη συνέχεια, ο σχεδιαστής σχεδιάζει υψηλού επιπέδου δομές πρόσβασης, ομαδοποιώντας αντικείμενα ενδιαφέροντος. Ο σχεδιασμός μπορεί να γίνει είτε από κάτω προς τα πάνω (bottom-up προσέγγιση), ξεκινώντας πρώτα από κάθε οντότητα και στη συνέχεια πηγαίνοντας σε πιο γενικές δομές προσπέλασης, είτε από πάνω προς τα κάτω (top-down προσέγγιση). Σχεδιασμός μετατροπής πρωτοκόλλου: Χρησιμοποιείται ένα σύνολο από κανόνες μετατροπής, προκειμένου να μετατραπεί κάθε αντικείμενο του RMDM διαγράμματος σε αντικείμενα της πραγματικής πλατφόρμας. Σχεδιασμός του περιβάλλοντος διεπαφής: Ο σχεδιαστής ορίζει τον τρόπο οπτικής παρουσίασης κάθε αντικειμένου του RMDM διαγράμματος που δημιουργήθηκε μετά το σχεδιασμό της πλοήγησης. Σχεδιασμός της συμπεριφοράς κατά το χρόνο εκτέλεσης (run-time behavior design): Στο βήμα αυτό, ο σχεδιαστής αποφασίζει και ορίζει τον τρόπο με τον οποίο θα υλοποιηθεί η λειτουργικότητα της εφαρμογής. 12

1 Μοντελοποίηση Εφαρμογών Παγκόσμιου Ιστού Έλεγχος και Εκτίμηση: Στο στάδιο αυτό, όπως και στα παραδοσιακά συστήματα λογισμικού, ελέγχεται αν το τελικό προϊόν εκτελεί σωστά τις λειτουργίες για τις οποίες προοριζόταν. Στις εφαρμογές υπερμέσων, όλα τα μονοπάτια πλοήγησης πρέπει να εξεταστούν διεξοδικά. Ο σχεδιασμός και η ανάπτυξη εφαρμογών παγκόσμιου ιστού με χρήση της RMM υποστηρίζεται από ένα εργαλείο, το Relationship Management Case Tool (RMCase) [35]. Το εργαλείο αυτό υποστηρίζει τα στάδια της RMM μεθοδολογίας, αναπτύσσοντας, για κάθε στάδιο, ένα περιβάλλον. Τα σχεδιαστικά αντικείμενα της RMM διαμοιράζονται στα περιβάλλοντα που δημιουργούνται. Δίνεται η δυνατότητα πλοήγησης με στόχο τη μετάβαση από περιβάλλον σε περιβάλλον. 1.4.3 OOHDM (Object-Oriented Hypermedia Design Method) H OOHDM, που αναπτύχθηκε από τους Rossi και Schwabe [36], χρησιμοποιεί μια αντικειμενοστρεφή προσέγγιση για το σχεδιασμό εφαρμογών παγκόσμιου ιστού. Η ανάπτυξη εφαρμογών στην OOHDM ακολουθεί μία διαδικασία τεσσάρων βημάτων: Εννοιολογικός Σχεδιασμός: Στο στάδιο αυτό, το εννοιολογικό μοντέλο της εφαρμογής αναπαρίσταται με ένα class diagram. Συγκεκριμένα, χρησιμοποιούνται αντικειμενοστρεφείς αρχές μοντελοποίησης για την αναπαράσταση των μοντέλων του πεδίου. Τα αντικείμενα, οι σχέσεις και η επιδιωκόμενη λειτουργικότητα της εφαρμογής αναπαρίστανται με χρήση κλάσεων και σχέσεων. Οι κλάσεις χρησιμοποιούνται για την παραγωγή κόμβων σελίδων και οι σχέσεις χρησιμοποιούνται για την παραγωγή συνδέσμων στη φάση του σχεδιασμού πλοήγησης. Σχεδιασμός Πλοήγησης: Στη φάση αυτή, θεωρούμε ότι οι εφαρμογές παγκόσμιου ιστού είναι εφαρμογές υπερμέσων που έχουν χτιστεί πάνω στο εννοιολογικό μοντέλο. Τα αντικείμενα στα οποία ο χρήστης πλοηγείται δεν είναι τα εννοιολογικά αντικείμενα, αλλά άλλου είδους αντικείμενα τα οποία έχουν δημιουργηθεί από ένα ή περισσότερα εννοιολογικά αντικείμενα. Ο χρήστης πλοηγείται στα διάφορα αντικείμενα μέσω συνδέσμων, πολλοί από τους οποίους δεν παράγονται απευθείας από τις εννοιολογικές σχέσεις. Η OOHDM υποστηρίζει το σχεδιασμό της πλοήγησης σε μεγάλο εύρος. Για κάθε προφίλ χρήστη δίνεται η δυνατότητα ορισμού διαφορετικής δομής πλοήγησης, η οποία απεικονίζει τα αντικείμενα και τις σχέσεις του εννοιολογικού σχήματος, ανάλογα με τις λειτουργίες που μπορεί κάθε φορά να εκτελεί ο συγκεκριμένος τύπος χρήστη. Η δομή της κλάσης πλοήγησης της εφαρμογής παγκόσμιου ιστού καθορίζεται από ένα σχήμα που περιέχει κλάσεις πλοήγησης. Στην OOHDM, έχει οριστεί ένα σύνολο από κλάσεις πλοήγησης, όπως κόμβοι, σύνδεσμοι, ευρετήρια και δομές προσπέλασης. Οι κόμβοι αναπαριστούν λογικές όψεις των κλάσεων που έχουν οριστεί στο πεδίο του μοντέλου δεδομένων. Οι κόμβοι συνδέονται μέσω συνδέσμων, για τη διευκόλυνση της πλοήγησης. Οι δομές προσπέλασης, όπως για 13