Πηπρηαθή Δξγαζία ΣΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗ. Αλάπηπμε εθπαηδεπηηθήο εθαξκνγήο «Σαμηδησηηθφ γξαθείν» κε ηε κεζνδνινγία RUP ΑΛΔΞΑΝΡΔΙΟ Σ.Δ.Ι.

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

Download "Πηπρηαθή Δξγαζία ΣΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗ. Αλάπηπμε εθπαηδεπηηθήο εθαξκνγήο «Σαμηδησηηθφ γξαθείν» κε ηε κεζνδνινγία RUP ΑΛΔΞΑΝΡΔΙΟ Σ.Δ.Ι."

Transcript

1 ΑΛΔΞΑΝΡΔΙΟ Σ.Δ.Ι. ΘΔΑΛΟΝΙΚΗ ΧΟΛΗ ΣΔΧΝΟΛΟΓΩΝ ΔΦΑΡΜΟΦΩΝ ΣΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗ Πηπρηαθή Δξγαζία Αλάπηπμε εθπαηδεπηηθήο εθαξκνγήο «Σαμηδησηηθφ γξαθείν» κε ηε κεζνδνινγία RUP Ναηαλία Παραηζικίδοσ Επιβλέπων καθηγηηής: κος Δεληγιάννης Ιγνάηιος Θεζζαλονίκη

2 Πρόλογοσ Σν βηβιίν απηφ παξνπζηάδεη ηελ αλάπηπμε κίαο εθπαηδεπηηθήο εθαξκνγήο «Online Σνπξηζηηθφ Γξαθείν» κε ηε βνήζεηα ηεο κεζνδνινγίαο ICONIX. Παξνπζηάδεηαη βήκα-βήκα ε πνξεία πνπ αθνινπζήζεθε γηα ηελ αλάπηπμε ηεο εθπαηδεπηηθήο απηήο εθαξκνγήο ψζηε λα απνηειέζεη έλα εγρεηξίδην γηα ηνπο ελδηαθεξφκελνπο θνηηεηέο πνπ ζέινπλ λα αζρνιεζνχλ κε ηελ αλάπηπμε ινγηζκηθνχ. Μέζα ζηηο ελφηεηεο ηνπ βηβιίνπ ζα βξεη θαλείο θαη ρξήζηκεο πιεξνθνξίεο γηα ηηο κεζνδνινγίεο θαη ηηο ηερλνινγίεο πνπ ρξεζηκνπνηήζεθαλ. Η ζπκκεηνρή ζηελ αλάπηπμε κίαο πιήξεο εθαξκνγήο ινγηζκηθνχ κε γνήηεπε πάληα, φζν δχζθνιν θαη αλ θαηλφηαλ. Η ηδέα ηεο δεκηνπξγίαο ελφο έξγνπ θαη ε αηνκηθή πξνζπάζεηα γηα ηελ νινθιήξσζή ηνπ ζνπ δίλεη ηε δπλαηφηεηα λα δεηο, λα δνθηκάζεηο θαη λα απνξξίςεηο δηαθνξεηηθέο κεζφδνπο κέρξη λα θαηαιήμεηο ζηηο θαηάιιειεο πνπ ζα ζπλδπαζηνχλ γηα ηελ επίηεπμε ηνπ έξγνπ. Σν έξγν «Σνπξηζηηθφ Γξαθείν» ήηαλ ε ηέιεηα επηινγή σο ζέκα γηα ηελ εθπφλεζε ηεο πηπρηαθήο κνπ εξγαζίαο, έλα ζεκείν ελεξγνπνίεζεο πνπ κνπ έδεημε πφζν καθξηά κπνξψ λα θηάζσ, ζηεξηδφκελε ζηηο δηθέο κνπ δπλάκεηο θαη γλψζεηο πνπ απέθηεζα θαζ φιε ηε δηάξθεηα ηεο ηξηηνβάζκηαο εθπαίδεπζήο κνπ. Ήηαλ έλα πξνζσπηθφ ζηνίρεκα θαη ηελ ίδηα ζηηγκή κία επραξίζηεζε λα βιέπσ ηα πξφρεηξα ζρέδηά κνπ λα βειηηψλνληαη κεηά απφ θάζε επαλάιεςε ηειηθά λα θαηαιήγνπλ ζε γξακκέο θψδηθα πνπ πινπνηεί ην ζχζηεκα «Online Σνπξηζηηθφ Γξαθείν». Σελ. 2 από 128

3 Περύληψη Η πηπρηαθή εξγαζία «Αλάπηπμε εθπαηδεπηηθήο εθαξκνγήο Σνπξηζηηθφ Γξαθείν κε ηε ρξήζε ηεο κεζνδνινγία RUP» έρεη σο ζηφρν λα αλαπαξαζηήζεη ηε δηαδηθαζία αλάπηπμεο ινγηζκηθνχ κίαο εθαξκνγήο θαη λα πξνζνκνηάζεη ηε δηαδηθαζία απηή κε ηηο αλάινγεο ελέξγεηεο πνπ ιακβάλνπλ ρψξα κέζα ζε κία νκάδα αλάπηπμεο ινγηζκηθνχ. Δίλαη έλα πιήξεο εγρεηξίδην πνπ παξνπζηάδεη κία αζαθήο πεξηγξαθή ζπζηήκαηνο θάησ απφ ηηο θαηάιιειεο ελέξγεηεο θαη ην ζπληνληζκφ ζπγθεθξηκέλσλ βεκάησλ κπνξεί λα κεηακνξθσζεί ζε έλα πιήξεο θαη ιεηηνπξγηθφ ινγηζκηθφ πνπ πεξηιακβάλεη ηερλνινγίεο αηρκήο θαη είλαη παξάιιεια απνδνηηθφ απφ πιεπξάο ρξφλνπ θαη θφζηνπο. Μέζσ ηεο εθπφλεζεο ηεο ζπγθεθξηκέλεο πηπρηαθήο εξγαζίαο δείρλνπκε φηη είλαη εθηθηφ ζηεξηδφκελε ζηηο δηθέο καο δπλάκεηο θαη γλψζεηο λα θέξνπκε εηο πέξαο ην δχζθνιν έξγν ηεο αλάπηπμεο ελφο ινγηζκηθνχ γηα έλα ζχζηεκα. Ο αλαγλψζηεο δε ρξεηάδεηαη λα είλαη πιήξεο γλψζηεο ηεο κεζνδνινγίαο θαη ησλ ηερλνινγηψλ πνπ αλαπηχζζνληαη ζε απηφ ην βηβιίν θαζψο γίλεηαη εθηελήο πεξηγξαθή θαη ησλ κεζφδσλ αιιά θαη ησλ ηερλνινγηψλ απηψλ. Πξέπεη φκσο λα είλαη γλψζηεο ηνπ γεληθνχ αληηθεηκέλνπ ηεο Πιεξνθνξηθήο θαη λα γλσξίδεη ηεο βαζηθέο αξρέο ηεο αλάιπζεο θαη ηνπ πξνγξακκαηηζκνχ. Σελ. 3 από 128

4 Abstract The dissertation "Development of an Educational application Travel Agent using the methodology RUP» aims to simulate the process of developing a software application and to simulate this process with similar processes which take place in a software development team. It is a complete guide presenting how an ambiguous system description under the appropriate action and the coordination of specific steps can be transformed into fully functional software that includes advanced technologies and is also cost and time efficient. The development of this dissertation shows that it is possible to complete with success the difficult task of implementing a software development system based on our own strengths and knowledge. The reader might not be fully aware of the methodology and technologies developed in this book, while an extensive description of the methods and technologies are presented. But he/she must be aware of the general subject of IT and have appropriate knowledge on the basic principles of analysis and programming. Σελ. 4 από 128

5 Ευχαριςτύεσ Πξσηίζησο ζα ήζεια λα επραξηζηήζσ φινπο ηνπ θαζεγεηέο ηνπ Σκήκαηνο Πιεξνθνξηθήο, ηνπ Αιεμάλδξεηνπ Σερλνινγηθνχ Δθπαηδεπηηθνχ Ιδξχκαηνο Θεζζαινλίθεο πνπ πξνζπάζεζαλ αλ κεηαιακπαδεχζνπλ ηηο γλψζεηο ηνπο ζε εκάο ηνπο θνηηεηέο θαη κνπ δίδαμαλ λα αγαπψ ηνλ ηνκέα ηεο Πιεξνθνξηθήο θαη λα ζπλερίζσ λα δνπιεχσ πάλσ ζε απηφλ. Κπξίσο ζα ήζεια λα επραξηζηήζσ ηνλ επηβιέπσλ θαζεγεηή ηεο πηπρηαθήο κνπ, ηνλ θχξην Γειεγηάλλε Ιγλάηην, πνπ κνπ έδσζε ηελ επθαηξία λα εξγαζηψ ζηνλ ηνκέα αλάπηπμεο ινγηζκηθνχ κέζσ ηεο ζπγθεθξηκέλεο πηπρηαθήο εξγαζίαο θαη ηνλ θχξην Γηακαληάξα πνπ ππήξμε πνιχηηκνο δάζθαινο ζηελ πνξεία κνπ ζην ηκήκα θαη πνπ κε ηελ πνιχηηκε βνήζεηά ηνπ ζα κπνξέζσ λα ζπλερίζσ ηηο ζπνπδέο ζηελ Πιεξνθνξηθή. Σέινο ζα ήζεια λα επραξηζηήζσ ηελ νηθνγέλεηά κνπ θαη ηνπο θνληηλνχο κνπ θίινπο πνπ ζηεξίδνπλ θάζε κνπ επηινγή θαη είλαη πάληνηε αξσγή θάζε κνπ πξνζπάζεηαο. Έλα κεγάιν επραξηζηψ ζε φινπο. Σελ. 5 από 128

6 Ευρετόριο Περιεχομϋνων Πξφινγνο... 2 Πεξίιεςε... 3 Abstract... 4 Δπραξηζηίεο... 5 Πίλαθαο Πεξηερνκέλσλ... 6 Δηζαγσγή Κεθάιαην 1: Δηζαγσγή ζηελ πιαηθφξκα J2EE Αρχιτεκτονικι πολλαπλϊν βακμίδων και θ πλατφόρμα J2EE Επιςκόπθςθ Πλατφόρμασ J2EE Επιςκόπθςθ Τεχνολογιϊν J2EE J2EE Τεχνολογίεσ Στοιχείων Εφαρμογϊν Υπθρεςίεσ J2EE Υπθρεςίεσ J2SE Κοντζινερ (Containers) Βακμίδα Παρουςίαςθσ (Presentation Tier) Επιχειρθςιακι Βακμίδα (Business Tier) Βακμίδα Ζνταξθ (Integration Tier) Διαμορφϊςεισ εγκατάςταςθσ J2EE Web-κεντρικι διαμόρφωςθ εγκατάςταςθσ Συνιςτάμενεσ Τεχνολογίεσ J2EE Java servlets JavaServer Pages Κλάςθ Bean Περίλθψθ Κεθάιαην 2: Μεζνδνινγία RUP Βζλτιςτεσ πρακτικζσ Τα κεμζλια τθσ RUP Δομικά ςτοιχεία RUP Επαναλιψεισ (Iterations) Τζςςερισ φάςεισ του κφκλου ηωισ του ζργου Φάςθ Ζναρξθσ (Inception) Φάςθ Επιμζλειασ (Elaboration) Φάςθ Καταςκευισ (Construction) Σελ. 6 από 128

7 2.3.4 Φάςθ Μετάβαςθσ (Transition) H RUP ωσ πλαίςιο διαδικαςίασ Περίλθψθ Κεθάιαην 3: Δηζαγσγή ζηε κεζνδνινγία ICONIX Λίγα λόγια για τθ μζκοδο ICONIX Μζκοδοσ ICONIX ςτθ Θεωρία Επιςκόπθςθ: Μετάβαςθ από τισ περιπτϊςεισ χριςθσ ςτον κϊδικα Απαιτιςεισ (Requirements) Ανάλυςθ/ Προκαταρκτικι Μελζτθ (Preliminary Design) Λεπτομερισ Σχεδιαςμόσ (Detailed Design) Υλοποίθςθ (Implementation) Χριςθ τθσ ICONIX για τθν ανάπτυξθ τθσ εφαρμογισ μασ Ανάλυςθ Παράλυςθ (Analysis Paralysis) Περίλθψθ Κεθάιαην 4: Domain Modeling Τι είναι το domain modeling; Γιατί να ξεκινιςουμε από το domain model αντί των περιπτϊςεων χριςθσ Οδθγίεσ Μοντελοποίθςθσ Domain Model ςτθν πράξθ Περίλθψθ Κεθάιαην 5: Μνληεινπνίεζε Πεξηπηψζεσλ Υξήζεο Γιατί χρειαηόμαςτε τισ περιπτϊςεισ χριςεισ πζραν των λειτουργικϊν απαιτιςεων; Οδθγίεσ Μοντελοποίθςθσ περιπτϊςεων χριςθσ Πακζτα Περιπτϊςεων χριςθσ Σχζςεισ (Relationships) Περιπτϊςεισ χριςθσ ςτθν πράξθ Περίλθψθ Κεθάιαην 6: Δπαλεμέηαζε Απαηηήζεσλ (Requirements Review) Οδθγίεσ Επανεξζταςθσ απαιτιςεων Επανεξζταςθ απαιτιςεων ςτθν πράξθ Περίλθψθ Κεθάιαην 7: Αλάιπζε Δπξσζηίαο Που τοποκετείται το Διάγραμμα Ευρωςτίασ ςτθ διαδικαςία Σελ. 7 από 128

8 7.2 Ανατομία ενόσ Διαγράμματοσ Ευρωςτίασ Οδθγίεσ Ανάλυςθσ Ευρωςτίασ Πϊσ πραγματοποιοφμε ανάλυςθ ευρωςτίασ; Διάγραμμα ευρωςτίασ ςτθν πράξθ Ενθμζρωςθ του ςτατικοφ domain model μασ Περίλθψθ Κεθάιαην 8: Πξνθαηαξθηηθή Δπηζθφπεζε ρεδηαζκνχ (Preliminary Design Review, PDR) Οδθγίεσ Προκαταρκτικισ Επιςκόπθςθσ Σχεδιαςμοφ Προκαταρκτικι Επιςκόπθςθ Σχεδιαςμοφ ςτθν πράξθ Περίλθψθ Κεθάιαην 9: Σερληθή Αξρηηεθηνληθή (Technical Architecture, TA) Τι είναι θ τεχνικι αρχιτεκτονικι; Οδθγίεσ Τεχνικισ Αρχιτεκτονικισ Τεχνικι Αρχιτεκτονικι ςτθν πράξθ Διακομιςτισ (Server) Χρθςιμοποίθςθ του Netbeans για τθν ανάπτυξθ τθσ εφαρμογισ Χρθςιμοποίθςθ του JQUERY Χριςθ τθσ PostgreSQL ωσ βάςθ δεδομζνων Περίλθψθ Κεθάιαην 10: Γηαγξάκκαηα Αθνινπζίαο (Sequence Diagrams) Διαγράμματα Ακολουκίασ και λεπτομερείσ αντικειμενοςτραφισ ςχεδιαςμόσ (objectoriented design, OOD) Σθμειογραφία Διαγράμματοσ Ακολουκίασ Οδθγίεσ Διαγραμμάτων Ακολουκίασ Διαγράμματα Ακολουκίασ ςτθν πράξθ Περίλθψθ Κεθάιαην 11: Κξίζηκε Δπηζθφπεζε ρεδηαζκνχ (Critical Design Overview, CDR) Οδθγίεσ για τθν Κρίςιμθ Επιςκόπθςθ Σχεδιαςμοφ Χρθςιμοποίθςθ του Διαγράμματοσ Κλάςεωσ για τον εντοπιςμό ςφαλμάτων ςτα Διαγράμματα Ακολουκίασ Περίλθψθ Σελ. 8 από 128

9 Κεθάιαην 12: Τινπνίεζε (Πσο κνηάδεη ην ζχζηεκά καο) Κράτθςθ Δωματίου Περίλθψθ πκπεξάζκαηα θαη Πξνηάζεηο Βηβιηνγξαθία Αλαθνξέο Διαδικτυακοί Τόποι Βιβλία Παξάξηεκα Α : Πεξηγξαθή ζπζηήκαηνο Όλεηξν Παξάξηεκα Β : Λίζηα Domain Objects απφ ηελ αξρηθή πεξηγξαθή ζπζηήκαηνο 124 Οδεγφο ρξήζεο ινγηζκηθνχ Σελ. 9 από 128

10 Ευρετόριο Πινϊκων και Σχημϊτων ρήκα 1.1 Αξρηηεθηνληθή 3σλ βαζκίδσλ 13 ρήκα 1.2 Η πιαηθόξκα J2EE θαη νη ηερλνινγίεο 15 ρήκα 1.3 Πεξίιεςε ησλ ηερλνινγηώλ J2EE 15 ρήκα 1.4 Κνληέηλεξ EJB 18 ρήκα 1.5 Web-θεληξηθή δηακόξθσζε εγθαηάζηαζεο 21 ρήκα 1.6 Έμνδνο από έλα JSP ζε έλαλ browser 26 ρήκα 2.1 Γηαζηάζεηο ρξόλνπ θαη πεξηερνκέλνπ ηεο RUP 32 Πίλαθαο 1. 1 Κιάδνη RUP 35 ρήκα 2.2 Έλαο επαλαιεπηηθόο θύθινο δσήο 36 ρήκα 3.1 Μέζνδνο ICONIX Μέζνδνο ICONIX ζε ιεπηνκεξεηαθή ξνή εξγαζίαο 41 ρήκα 4.1 Μέζνδνο ICONIX ζε ιεπηνκεξεηαθή ξνή εξγαζίαο (Domain Modeling) 48 ρήκα 4.2 Domain Model ηνπ ζπζηήκαηνο Όλεηξν 57 ρήκα 5.1 Μέζνδνο ICONIX ζε ιεπηνκεξεηαθή ξνή εξγαζίαο (Use Case Modeling) 58 ρήκα 5.2 Γηάγξακκα πεξηπηώζεσο ρξήζεο Πιεξσκή 61 ρήκα 5.3 Αλαηνκία ελόο ζελαξίνπ πεξηπηώζεσο ρξήζεο 62 ρήκα 5.4 Παθέην νκάδαο Πιεξσκή 65 ρήκα 5.5 Μαθέηα Οζόλεο Κξάηεζε Αεξνπνξηθνύ Δηζηηεξίνπ - Κξηηήξηα Χξήζηε 69 ρήκα 5.6 Γηάγξακκα Πεξηπηώζεσλ Χξήζεο - Κξάηεζε 70 ρήκα 7.1 Μέζνδνο ICONIX ζε ιεπηνκεξεηαθή ξνή εξγαζίαο (Robustness Analysis) 75 ρήκα 7.2 Γεθύξσζε ηνπ ράζκαηνο κεηαμύ ηνπ ηη θαη ηνπ πσο 76 ρήκα 7.3 ύκβνια Αλάιπζεο Δπξσζηίαο 77 ρήκα 7.4 Γηάγξακκα Δπξσζηίαο Δπηινγή ραξαθηεξηζηηθώλ θξάηεζεο δσκαηίνπ 83 ρήκα 8.1 Μεζνδνινγία ICONIX ζε ιεπηνκεξεηαθή ξνή εξγαζίαο (PDR) 84 ρήκα 9.1 Μεζνδνινγία ICONIX ζε ιεπηνκεξεηαθή ξνή εξγαζίαο (technical architecture) 89 ρήκα 10.1 Μεζνδνινγία ICONIX ιεπηνκεξεηαθή ξνή εξγαζίαο (Sequence Diagram) 95 ρήκα 10.2 εκεηνγξαθία Γηαγξακκάησλ Αθνινπζίαο 96 ρήκα 10.3 Γηάγξακκα Αθνινπζίαο Έθδνζε Πηζηνπνηεηηθνύ Κξάηεζεο 102 ρήκα 10.4 Γηάγξακκα Κιάζεο (Class Diagram) 103 ρήκα 11.1 Μεζνδνινγία ICONIX ζε ιεπηνκεξεηαθή ξνή εξγαζίαο (CDR) 104 ρήκα 12.1 Δπηινγή ραξαθηεξηζηηθώλ θξάηεζεο δσκαηίνπ 109 ρήκα 12.2 Γηαζέζηκα δσκάηηα ζε μελνδνρεηαθή κνλάδα 110 ρήκα 12.3 Δηζαγσγή ζηνηρείσλ ζπκκεηερόλησλ ζηελ θξάηεζε 111 ρήκα 12.4 Δηζαγσγή ζηνηρείσλ Χξήζηε-Πειάηε πνπ εθηειεί ηελ Κξάηεζε θαη ζηνηρείσλ Πιεξσκήο 112 ρήκα 12.5 Δηζαγσγή ζηνηρείσλ εηαηξίαο θαη ζηνηρείσλ Πιεξσκήο 113 ρήκα 12.6 Δπηβεβαίσζε Κξάηεζεο 114 ρήκα 12.7 ειίδα Σηκνιόγην 115 Σελ. 10 από 128

11 Ειςαγωγό Η ζπγθεθξηκέλε πηπρηαθή εξγαζία αζρνιείηαη κε ηελ αλάπηπμε ινγηζκηθνχ, ρξεζηκνπνηψληαο κεζφδνπο, ηερληθέο θαη ηερλνινγίεο γηα ηελ επίηεπμε ηνπ ζηφρνπ. Η αλάπηπμε ινγηζκηθνχ είλαη κία δχζθνιε θαη αξθεηέο θνξέο επίπνλε δηαδηθαζία πνπ επηβάιιεη ην ζπληνληζκφ ελεξγεηψλ θαη ηε ρξήζε κεζνδνινγηψλ αλάπηπμεο γηα ηελ επίηεπμε ηνπ επηζπκεηνχ απνηειέζκαηνο. Απηέο αθξηβψο ηηο ελέξγεηεο θαη ηηο απνθάζεηο πνπ πάξζεθαλ, θαηά ηε δηάξθεηα ηεο εθπφλεζεο ηνπ έξγνπ, παξνπζηάδνπκε ζηε ζπγθεθξηκέλε πηπρηαθή εξγαζία. Σν «Online Σνπξηζηηθφ Γξαθείν» είλαη έλα αληηπξνζσπεπηηθφ παξάδεηγκα αλάπηπμεο ινγηζκηθνχ θαη πεξηθιείεη φιεο ηηο θάζεηο θαη ηα πξνβιήκαηα παξφκνησλ έξγσλ. Δίλαη έλα παξάδεηγκα πνπ εχθνια ρξεζηκνπνηείηαη ζαλ εθπαηδεπηηθή εθαξκνγή ζηα πιαίζηα ηεο εθκάζεζεο αλάπηπμεο ινγηζκηθνχ, απνηειεί φκσο θαη απφ κφλν ηνπ κία δπλαηή θαη ηζρπξή εθαξκνγή ηνπ ζχγρξνλνπ θφζκνπ ησλ ινγηζκηθψλ, κε πνιιέο παξφκνηεο εθαξκνγέο λα θαηαθιχδνπλ ην δηαδηθηπαθφ ρψξν, φπνπ νη απαηηήζεηο είλαη απμεκέλεο. Η πηπρηαθή απηή παξνπζηάδεη κία πξνζπάζεηα αλάπηπμεο ινγηζκηθνχ απφ έλαλ θνηηεηή, κε ηε βνήζεηα ησλ κεζφδσλ θαη ησλ γλψζεσλ ησλ ηερλνινγηψλ πνπ απνθηήζεθαλ θαηά ηε ηεηξαεηή θνίηεζή ηνπ ζην Σκήκα Πιεξνθνξηθήο, ηνπ Α.Σ.Δ.Ι.Θ. Αλαπηχρζεθαλ θαη ζρνιηάζηεθαλ κεζνδνινγίεο πνπ δηδάρζεθαλ ζην ηκήκα φπσο ε RUP θαη ε ICONIX κεζνδνινγίεο, HTML θαη CSS αλάπηπμε θψδηθα, αιιά ζπλάκα πξνζηέζεθαλ θαη ηεθκεξηψζεθαλ λέεο γλψζεηο πάλσ ζηελ αλάπηπμε ινγηζκηθνχ, φπσο ζειίδεο JSP θαη servlets. Απψηεξνο ζηφρνο είλαη λα κεηξήζνπκε ηηο δπλάκεηο καο ζε έλα έξγν, παξφκνην κε απηά πνπ ππάξρνπλ θαη αλαπηχζζνληαη ζηελ ζεκεξηλή αγνξά εξγαζίαο θαη λα θεξδίζνπκε γλψζεηο θαη εκπεηξίεο πάλσ ζε έλα κεγάιν ηκήκα ηεο Πιεξνθνξηθήο, ηελ αλάπηπμε ινγηζκηθνχ. Σα θεθάιαηα πνπ αθνινπζνχλ πεξηγξάθνπλ κε ηε ζεηξά ηελ κεζνδνινγία RUP, ηα βαζηθά ζηνηρεία θαη ηα βήκαηα πνπ νξίδεη. Σε κεζνδνινγία ICONIX, ηα βαζηθά ηεο κέξε θαη ηα βήκαηα πνπ νξίδεη, ζχγθξηζε κεηαμχ ησλ δχν παξαπάλσ ηερλνινγηψλ θαη θπξηάξρεζε ηεο ICONIX γηα ηελ πινπνίεζε ηεο εθπαηδεπηηθήο καο Σελ. 11 από 128

12 εθαξκνγήο. Αλαιπηηθά βήκαηα πινπνίεζεο ηεο εθαξκνγήο κε ηε βνήζεηα ηεο κεζφδνπ ICONIX απφ ηελ αλάιπζε ησλ πεξηπηψζεσλ ρξήζεο κέρξη ην ζρεδηαζκφ θαη ηελ πινπνίεζε ηνπ θψδηθα. Η αλάπηπμε ηεο κεζνδνινγίαο ICONIX γίλεηαη κε ηε βνήζεηα πξνζδηνξηζκνχ ζπγθεθξηκέλσλ νδεγηψλ, φπνπ ε ρξήζε ηνπο καο παξέρεη ζσζηή, νινθιεξσκέλε θαη εκπεξηζηαησκέλε πινπνίεζε ηνπ έξγνπ. Όια ηα παξαπάλσ βήκαηα παξνπζηάδνληαη κε αλαιπηηθέο νδεγίεο θαη πεξηγξαθηθέο εηθφλεο, πνιιέο απφ ηηο νπνίεο είλαη εηθφλεο θαη δηαγξάκκαηα ηνπ ίδηνπ ηνπ ζπζηήκαηνο πνπ αλαπηχρζεθε. Σέινο παξέρνληαη νδεγίεο ρξήζεο ηνπ ινγηζκηθνχ πνπ ζπλνδεχεη ηελ πηπρηαθή εξγαζία. ην ινγηζκηθφ, πνπ βξίζθεηαη ζε cd ζην ηέινο ηνπ βηβιίνπ, παξέρεηαη πιήξεο αλάπηπμε ησλ δηαγξακκάησλ ηνπ έξγνπ καο, θαζψο θαη ηα θαηάιιεια αξρεία πνπ πεξηέρνπλ ηελ πινπνίεζε ηεο εθαξκνγήο καο ζε JSP θαη servlets. Σελ. 12 από 128

13 Κεφϊλαιο 1: Ειςαγωγό ςτην πλατφόρμα J2EE Σν θεθάιαην απηφ παξέρεη κία εηζαγσγή ζηελ πιαηθφξκα Java 2 Platform, Enterprise Edition (J2EE πιαηθφξκα) ζηνηρεία ηεο νπνίαο ρξεζηκνπνηήζεθαλ γηα ηελ αλάπηπμε απηήο ηεο εθαξκνγήο. Η πιαηθφξκα J2EE πεξηιακβάλεη αξθεηά ζηνηρεία θαη ηερλνινγίεο θαη εθηείλεηαη ζε έλα επξχ θάζκα επηρεηξεζηαθψλ ζπζηεκάησλ, πνπ δελ αθνξνχλ ηνπο ζθνπνχο απηνχ ηνπ βηβιίνπ. Δκείο ζα ζέζνπκε ηα βαζηθά ραξαθηεξηζηηθά θαη ζα αλαιχζνπκε κφλν ηα ζηνηρεία πνπ ρξεζηκνπνηήζεθαλ γηα ηελ αλάπηπμε ηνπ ζπζηήκαηφο καο, ην «Online Σνπξηζηηθφ Γξαθείν». 1.1 Αρχιτεκτονικό πολλαπλών βαθμύδων και η πλατφόρμα J2EE Δίλαη γλσζηφ εδψ θαη αξθεηφ θαηξφ φηη ε θαιχηεξε πξνζέγγηζε γηα ηελ αλάπηπμε ησλ ζπζηεκάησλ είλαη ε θαηαλνκή ησλ επζπλψλ ηνπο ζε δηάθνξεο βαζκίδεο 1, κε απνηέιεζκα θνηλέο αξρηηεθηνληθέο κνξθέο γλσζηέο σο αξρηηεθηνληθέο πνιιαπιψλ βαζκίδσλ (multitier architectures). Έλα παξάδεηγκα κηαο αξρηηεθηνληθήο πνιιαπιψλ βαζκίδσλ είλαη ε 3 σλ βαζκίδσλ δνκή πνπ θαίλεηαη ζην ρήκα 1.1. Η βαζκίδα ηεο παξνπζίαζεο (presentation tier) είλαη ππεχζπλε γηα ηε δηαρείξηζε ησλ αιιειεπηδξάζεσλ κε ηνλ ηειηθφ ρξήζηε. Η επηρεηξεζηαθή βαζκίδα (business tier) είλαη ππεχζπλε γηα ηελ εθηέιεζε νπνηαζδήπνηε επηρεηξεκαηηθήο επεμεξγαζίαο. Η βαζκίδα ηεο ελζσκάησζεο είλαη ππεχζπλε γηα ηελ πξφζβαζε ζηε δηαρείξηζε ησλ πφξσλ, ζπκπεξηιακβαλνκέλσλ ησλ βάζεσλ δεδνκέλσλ θαη ησλ εμσηεξηθψλ ζπζηεκάησλ. Οη ελ ιφγσ δηαίξεζε επηηξέπεη ζην πεξηερφκελν ηεο θάζε βαζκίδαο λα αλαπηπρζεί θαη λα αιιάμεη αλεμάξηεηα. χιμα 1.1 Αρχιτεκτονικι 3ων βακμίδων 1 Μία βακμίδα είναι ζνα αρχιτεκτονικό ςτρϊμα που ζχει ςυγκεκριμζνθ ευκφνθ. Σελ. 13 από 128

14 Απφ ηζηνξηθή άπνςε, ε ηερλνινγία ησλ βάζεσλ δεδνκέλσλ ηεο βαζκίδαο ελζσκάησζεο, ήηαλ ε πξψηε πνπ σξίκαζε, κε απνηέιεζκα ηηο ηζρπξέο ζρεζηαθέο βάζεηο δεδνκέλσλ 2. Οη ηερλνινγίεο ζηε βαζκίδα ηεο παξνπζίαζεο θαη ηελ επηρεηξεζηαθή βαζκίδα σξίκαζαλ αξγφηεξα, κε απνηέιεζκα ηα πιαίζηα δηεπαθήο ρξήζηε θαη ηηο νζφλεο ζπλαιιαγήο θαη επεμεξγαζίαο (transaction-processing monitors), αληίζηνηρα. Έηζη, ζπλνπηηθά, ε J2EE πιαηθφξκα ζεσξείηαη θαιχηεξα σο έλα ζχλνιν ηερλνινγηψλ γηα ηελ αλάπηπμε θαη ηελ εγθαηάζηαζε εηαηξηθψλ ζπζηεκάησλ πνιιαπιψλ βαζκίδσλ. Ωο εθ ηνχηνπ, πεξηέρεη έλα αλακελφκελν ζχλνιν ππεξεζηψλ (ηφζν αλακελφκελν, ζηελ πξαγκαηηθφηεηα, πνπ ε πξσηνβνπιία ηεο Microsoft NET, παξέρεη έλα ζρεδφλ παλνκνηφηππν ζχλνιν). Έρνπκε εηζαγάγεη ηηο ηερλνινγίεο απηέο ζηελ επφκελε ελφηεηα. Η πιαηθφξκα J2EE έρεη επίζεο ην επηζπκεηφ ραξαθηεξηζηηθφ φηη είλαη κηα αλνηθηή πξνδηαγξαθή. Τπάξρνπλ πνιιέο εκπνξηθέο θαη αλνηθηνχ θψδηθα πινπνηήζεηο ηεο πξνδηαγξαθήο. Μηα δσξεάλ εθαξκνγή ηεο J2EE πιαηθφξκαο είλαη επίζεο δηαζέζηκε. 1.2 Επιςκόπηςη Πλατφόρμασ J2EE Αο μεθηλήζνπκε ζέηνληαο ηηο ηερλνινγίεο J2EE καδί ψζηε λα δείμνπκε ην πιαίζην κέζα ζην νπνίν ιεηηνπξγνχλ, θαζψο θαη ηηο κεηαμχ ηνπο ζρέζεηο. Σν ρήκα 1.2 ηνπνζεηεί θάζε κία απφ ηηο ηερλνινγίεο φζνλ αθνξά ηηο βαζκίδεο πνπ ζπδεηήζακε λσξίηεξα. Γείρλεη επίζεο ηε θπζηθή ζέζε ηνπ θαζελφο απφ ηα ζηνηρεία απφ ηελ άπνςε ηνπ πειάηε θαη ηνπ δηαθνκηζηή. Οη ιεπηνκέξεηεο πνπ πεξηέρνληαη ζην ρήκα είλαη 1.2 αλαθέξνληαη αξγφηεξα ζε απηφ ην θεθάιαην. Αλ θαη δελ θαίλεηαη ζην ρήκα 1.2, αμίδεη επίζεο λα αλαθεξζεί φηη φια ηα θνληέηλεξ ρξεζηκνπνηνχλ ξεηά κηα Java Virtual Machine (JVM) θαηά ηελ εθηέιεζε νπνηνπζδήπνηε κεηαγισηηηζκέλνπ θψδηθα ζε Java. 2 Η ίδρυςθ τθσ τεχνολογίασ των ςχεςιακϊν βάςεων δεδομζνων δθμιουργικθκε πάνω από δφο δεκαετίεσ πριν. Σελ. 14 από 128

15 χιμα 1.2 Η πλατφόρμα J2EE και οι τεχνολογίεσ Επιςκόπηςη Τεχνολογιών J2EE Μία πεξίιεςε ησλ δηάθνξσλ ηερλνινγηψλ J2EE θαίλεηαη ζην ρήκα 1.3. χιμα 1.3 Περίλθψθ των τεχνολογιϊν J2EE Σελ. 15 από 128

16 J2EE Τεχνολογίεσ Στοιχείων Εφαρμογών Οη ηερλνινγίεο ζηνηρείσλ εθαξκνγψλ είλαη απηέο πνπ ρξεζηκνπνηνχκε γηα λα νηθνδνκήζνπκε ηα ζηνηρεία ηεο ιχζεο. Οη ηερλνινγίεο απηέο πεξηιακβάλνπλ ηα Applets, ηνπο Application clients, ηα Java servlets (servlets), ηα JavaServer Pages (JSPs), ηα Enterprise JavaBeans (EJBs). Δλδεηθηηθά αλαιχνπκε ηηο ηξεηο ηειεπηαίεο ηερλνινγίεο νη νπνίεο ρξεζηκνπνηήζεθαλ γηα ηε δεκηνπξγία ηνπ ζπζηήκαηφο καο. Java servlets ( servlets ). Έλα servlet νξίδεη πψο έλα αίηεκα (request) απφ ηνλ πειάηε ζα επεμεξγαζηεί θαη πψο δεκηνπξγείηαη κία απάληεζε (response). JavaServer Pages (JSPs). Έλα JSP είλαη έλα έγγξαθν θεηκέλνπ πνπ, φπσο έλα servlet, πεξηγξάθεη πψο κηα αίηεζε ππνβάιιεηαη ζε επεμεξγαζία θαη κηα απάληεζε δεκηνπξγείηαη. Σα JSPs παξέρνπλ κηα ελαιιαθηηθή ιχζε γηα servlets φηαλ απαηηείηαη ε δεκηνπξγία δειψζεσλ ζε κία γιψζζα ζήκαλζεο (φπσο HTML). Enterprise JavaBeans (EJBs). Έλα EJB είλαη ππεχζπλν γηα ηελ εθαξκνγή κηαο πηπρήο ηεο επηρεηξεκαηηθήο ινγηθήο κηαο εθαξκνγήο J2EE Υπηρεςίεσ J2EE Οη ππεξεζίεο J2EE, φπσο δείρλεη θαη ην φλνκά ηνπο, είλαη ππεξεζίεο πνπ δηαηίζεληαη απφ ηελ πιαηθφξκα J2EE. Οη ππεξεζίεο απηέο επηγξακκαηηθά είλαη νη εμήο: Βηβιηνζήθε Java (Java Api) γηα αλάιπζε (parsing) XML (JAXP), Java Message Services (JMS), Java Authentication θαη Service Authorization (JAA), Java Transaction API (JTA), J2EE Connector Architecture (JCA), Java DataBase Connectivity (JDBC) θαη Βηβιηνζήθε JavaMail (JavaMail API). Οη δχν ηειεπηαίεο παξνπζηάδνληαη παξαθάησ θαζψο ρξεζηκνπνηήζεθαλ εθηελψο γηα ηελ αλάπηπμε ηεο εθαξκνγήο καο. Java DataBase Connectivity (JDBC). H JDBC παξέρεη πξφζβαζε κέζσ πξνγξακκαηηζκνχ ζε κηα ζρεζηαθή βάζε δεδνκέλσλ. Σελ. 16 από 128

17 Βηβιηνζήθε JavaMail (JavaMail API). Η βηβιηνζήθε JavaMail επηηξέπεη ζηα ζηνηρεία ηεο εθαξκνγήο λα ζηέιλνπλ mail ρξεζηκνπνηψληαο έλα ηππνπνηεκέλν interface. Σππηθέο εθαξκνγέο ηεο δηεπαθήο JavaMail API ζε κηα ζεηξά πξσηνθφιισλ θαη πξνδηαγξαθψλ, φπσο ην Simple Mail Transfer Protocol (SMTP), Multipurpose Internet Mail Extensions (MIME) θαη ην Post Office Protocol 3 (POP3) Υπηρεςίεσ J2SE Η πιαηθφξκα J2EE εμαξηάηαη απφ ηηο ππεξεζίεο πνπ παξέρνληαη απφ ηελ Java 2 Platform, Standard Edition (J2SE). Οη J2SE ππεξεζίεο πεξηιακβάλνπλ ππνζηήξημε γηα ηηο ζπιινγέο, ηε δηεζλνπνίεζε (ππνζηήξημε γηα πνιιέο αλζξψπηλεο γιψζζεο), ηελ είζνδν / έμνδν, ηα Java Archive (JAR) αξρεία, ηηο δηεπαθέο ρξεζηψλ, ηα καζεκαηηθά, ηε δηθηχσζε, ηε θσδηθνπνίεζε αληηθεηκέλσλ, ηελ απνκαθξπζκέλε κέζνδν επίθιεζεο (Remote Method Invocation, RMI), ηελ αζθάιεηα θαη ηνλ ήρν. Οη J2SE ηερλνινγίεο είλαη επηγξακκαηηθά νη αθφινπζεο: Βηβιηνζήθε Hypertext Transfer Protocol (HTTP API), Βηβιηνζήθε HTTPS (HTTPS API), Remote Method Invocation over Internet Inter-Orb Protocol (RMI-IIOP), Java Naming and Directory Interface (JNDI) Κοντϋινερ (Containers) Η έλλνηα ηνπ θνληέηλεξ έρεη θεληξηθή ζεκαζία ζηελ πιαηθφξκα J2EE. Έλα θνληέηλεξ παξέρεη ππνζηήξημε θαηά ην ρξφλν εθηέιεζεο (runtime) γηα ηα ζηνηρεία ηεο εθαξκνγήο (φπσο JSPs, servlets, ή EJBs) πνπ εθηεινχληαη κέζα ζε απηήλ. Γηα παξάδεηγκα, έλα θνληέηλεξ EJB παξέρεη ηε δηαρείξηζε ηνπ θχθινπ δσήο ηνπ ζηνηρείνπ (κε ηε δεκηνπξγία θαη ηελ απνκάθξπλζε ησλ ζηνηρείσλ ηεο αίηεζεο, φπσο απαηηείηαη), ηε δηαρείξηζε ζπλαιιαγήο, ηελ αζθάιεηα θαη ηε ζπλερήο ππνζηήξημε ησλ EJBs πνπ εθηεινχληαη εληφο απηνχ. Σν γεγνλφο φηη έλα ζηνηρείν εθηειείηαη κέζα ζε έλα θνληέηλεξ ραξαθηεξίδεηαη απφ δηαθάλεηα ζηνπο πειάηεο ηεο. Γηα παξάδεηγκα, ζην ρήκα 1.4 ππάξρεη έλαο πειάηεο πνπ αιιειεπηδξά κε έλα EJB. Σν αίηεκα ηνπ πειάηε ρεηξίδεηαη απφ ην θνληέηλεξ EJB πνπ πεξηέρεη ην EJB, θαη φρη άκεζα απφ ην ίδην ην EJB. Σελ. 17 από 128

18 χιμα 1.4 Κοντζινερ EJB Τπάξρεη κία ζχκβαζε δηπιήο θαηεχζπλζεο κεηαμχ ελφο θνληέηλεξ θαη ελφο ζηνηρείνπ εθαξκνγήο. Απφ ηελ πιεπξά ηνπ θνληέηλεξ, ην ζηνηρείν ηεο εθαξκνγήο πξέπεη λα αληαπνθξίλνληαη ζε νξηζκέλεο δηαζπλδέζεηο, έηζη ψζηε ην θνληέηλεξ λα κπνξεί λα δηαρεηξηζηεί ην ζηνηρείν θαηάιιεια. Γηα παξάδεηγκα, έλα EJB πξέπεη λα παξέρεη ελέξγεηεο γηα ηε ζηήξημε ηεο απνκάθξπλζήο ηνπ απφ ηε κλήκε (γλσζηή σο «παζεηηθνπνίεζε» ( passivation )). Απφ ηελ πιεπξά ηνπ ζηνηρείνπ ηεο εθαξκνγήο, ην θνληέηλεξ πξέπεη λα παξέρεη νξηζκέλεο ππεξεζίεο δηαζέζηκεο ζην ζηνηρείν. Γηα παξάδεηγκα, έλα θνληέηλεξ EJB πξέπεη λα παξέρεη ηε βηβιηνζήθε Java DataBase Connectivity (JDBC). Όπσο θαίλεηαη θαη ζην ρήκα 1.2, ππάξρνπλ ηέζζεξηο ηχπνη θνληέηλεξ. Κνληέηλεξ κίαο κηθξνεθαξκνγήο (applet), ην νπνίν παξέρεη ηηο ππεξεζίεο πνπ απαηηνχληαη απφ ηηο κηθξνεθαξκνγέο ηεο Java. Κνληέηλεξ ελφο application client, ην νπνίν παξέρεη ππεξεζίεο πνπ απαηηνχληαη απφ ηνπο application client ηεο Java. Κνληέηλεξ δηαδηθηχνπ (Web), ην νπνίν παξέρεη ππεξεζίεο ζε JSPs θαη servlets. Κνληέηλεξ EJB, ην νπνίν παξέρεη ππεξεζίεο ζε EJBs Βαθμύδα Παρουςύαςησ (Presentation Tier) Η βαζκίδα ηεο παξνπζίαζεο πεξηιακβάλεη ζηνηρεία πνπ βξίζθνληαη ηφζν ζηνλ πειάηε φζν θαη ζηνλ δηαθνκηζηή. Σελ. 18 από 128

19 Σα ζηνηρεία πξνγξάκκαηνο-πειάηε είλαη ππεχζπλα γηα ηελ απφδνζε ηεο δηεπαθήο ηνπ ρξήζηε θαη γηα ην ρεηξηζκφ ησλ αιιειεπηδξάζεσλ ησλ ρξεζηψλ. ην ρήκα 1.2, βιέπνπκε ηξεηο πειάηεο (clients), φπνπ θαζέλαο εθηειείηαη ζηε δηθή ηνπ κεραλή. Ο πξψηνο πειάηεο επεμεξγάδεηαη κηα γιψζζα ζήκαλζεο. Παξαδείγκαηα ηέηνησλ πειαηψλ πεξηιακβάλνπλ έλα πξφγξακκα πεξηήγεζεο Web πνπ επεμεξγάδεηαη HTML, έλα ελεκεξσκέλν γηα XML κεράλεκα πνπ επεμεξγάδεηαη XML, θαη κία ζπζθεπή Wireless Access Protocol (WAP) φπσο έλα θηλεηφ ηειέθσλν, πνπ ρεηξίδεηαη Wireless Markup Language (WML). Ο δεχηεξνο πειάηεο ζηεγάδεη έλα applet θνληέηλεξ πνπ ππνζηεξίδεη ηελ εθηέιεζε κηθξνεθαξκνγψλ. Μηα κηθξνεθαξκνγή είλαη έλα πξφγξακκα ζε Java πνπ πεξηέρεη θαηά θαλφλα θάπνηα κνξθή παξνρήο πςειήο απφδνζεο δηεπαθήο ρξήζηε. Ο ηξίηνο πειάηεο ζηεγάδεη έλα application client θνληέηλεξ πνπ ππνζηεξίδεη ηελ εθηέιεζε ελφο J2EE application client. Έλα J2EE application client είλαη κηα απηφλνκε εθαξκνγή ηεο Java ε νπνία ηππηθά παξέρεη πξφζβαζε ζε ζηνηρεία ζηελ επηρεηξεζηαθή βαζκίδα θαη ηε βαζκίδα έληαμεο. Γηα παξάδεηγκα, έλα application client κπνξεί λα ρξεζηκνπνηεζεί ψζηε λα παξέρεη κία δηνηθεηηθή δηεπαθή (administrative interface) ζε εθαξκνγή J2EE. Σα ζηνηρεία ζηελ πιεπξά ηνπ δηαθνκηζηή είλαη ππεχζπλα γηα ηελ επεμεξγαζία αηηήζεσλ (requests) ζηελ πιεπξά ηνπ πειάηε θαη ηελ παξνρή θαηάιιεισλ απαληήζεσλ (responses). Η απάληεζε ζπλήζσο παξαδίδεηαη ζηνλ πειάηε κε ηε κνξθή κηαο γιψζζαο ζήκαλζεο, φπσο HTML, XML ή WML. Η απάληεζε είλαη ζπρλά εμαξηψκελε απφ ηα δεδνκέλα πνπ θαηέρεη έλα EJB ή έλα πιεξνθνξηαθφ ζχζηεκα επηρείξεζεο (Enterprise Information System, EIS), φπσο έλα θεληξηθφ ζχζηεκα επεμεξγαζίαο ζπλαιιαγψλ ή κηα βάζε δεδνκέλσλ πνπ θιεξνλνκείηε. Ωο εθ ηνχηνπ, ηα ζηνηρεία εθαξκνγήο ηεο βαζκίδαο παξνπζίαζε ζηνλ δηαθνκηζηή (ηα JSPs θαη servlets) αιιειεπηδξνχλ κε ηα ζηνηρεία ζηελ επηρεηξεζηαθή βαζκίδα ή άκεζα κε ηελ βαζκίδα έληαμεο. Σα ζηνηρεία απηά κπνξνχλ επίζεο λα είλαη ππεχζπλα γηα κέξνο ηεο δηαρείξηζεο ζπλεδξηψλ ρξήζηε, ηεο επηθχξσζεο δεδνκέλσλ θαη ησλ εθαξκνγψλ ινγηθνχ ειέγρνπ. Σελ. 19 από 128

20 1.2.4 Επιχειρηςιακό Βαθμύδα (Business Tier) Η επηρεηξεζηαθή βαζκίδα είλαη ππεχζπλε γηα ηελ επηρεηξεκαηηθή ινγηθή ηεο εθαξκνγήο. ηελ πην ζπλεζηζκέλε πεξίπησζε, ηα ζηνηρεία ηεο επηρεηξεζηαθήο βαζκίδαο (EJBs) παξέρνπλ ππεξεζίεο επηρεηξεκαηηθήο ινγηθήο ζηα ζηνηρεία εθαξκνγήο ηεο βαζκίδαο παξνπζίαζεο ζηελ πιεπξά ηνπ δηαθνκηζηή. Ωζηφζν, κπνξνχλ επίζεο λα παξέρνπλ ππεξεζίεο ζε απηφλνκεο εθαξκνγέο πειάηε Java. Σα EJBs θαη EJB θνληέηλεξ έρνπλ ζρεδηαζηεί γηα λα απινπνηήζνπλ ηελ επηθνηλσλία κεηαμχ ηεο βαζκίδαο παξνπζίαζε θαη ηεο βαζκίδαο έληαμε Βαθμύδα Ένταξη (Integration Tier) Η βαζκίδα έληαμε είλαη ππεχζπλε γηα ηελ παξνρή πξφζβαζεο ζε EIS πφξνπο. Σν ρήκα 1.2 πξνζδηνξίδεη ζπγθεθξηκέλνπο ηχπνπο πφξσλ EIS, ζπκπεξηιακβαλνκέλεο κηαο ζρεζηαθήο βάζεο δεδνκέλσλ, ελφο δηαθνκηζηή ειεθηξνληθνχ ηαρπδξνκείνπ, κίαο ππεξεζίαο θαηαιφγνπ, κίαο νπξάο κελπκάησλ, κίαο εθαξκνγήο ζε Java θαη ελφο δηαθνκηζηή CORBA. Έρνπκε επηζεκάλεη θάζε ζχλδεζε ζε έλα πφξν EIS κε ηελ ηερλνινγία πνπ ρξεζηκνπνηείηαη γηα ηελ πξφζβαζε απηνχ ηνπ πφξνπ. Γηα παξάδεηγκα, ην JDBC ρξεζηκνπνηείηαη γηα ηελ πξφζβαζε ζε κηα ζρεζηαθή βάζε δεδνκέλσλ Διαμορφώςεισ εγκατϊςταςησ J2EE Μία δηακφξθσζε εγθαηάζηαζεο είλαη κηα ραξηνγξάθεζε ησλ ιεηηνπξγηψλ ηεο εθαξκνγήο ζηα ζηνηρεία ηεο θαη ζηε ζπλέρεηα ζηα θνληέηλεξ J2EE θαη ζηηο ππεξεζίεο. Με άιια ιφγηα, είλαη έλαο ηξφπνο γηα ηελ νξγάλσζε θαη ηε δηαλνκή ηεο ιεηηνπξγηθφηεηαο ηεο εθαξκνγή κεηαμχ ησλ βαζκίδσλ, ησλ θνληέηλεξ θαη ησλ ζηνηρείσλ. Αλ θαη ππάξρνπλ δηάθνξεο δηακνξθψζεηο εγθαηάζηαζεο, ππάξρνπλ κεξηθέο θνηλέο δνκέο. Δκείο ελ ζπληνκία ζα εμεηάζνπκε ηε δηακφξθσζε εγθαηάζηαζεο ησλ web εθαξκνγψλ θαη ζα παξαιείςνπκε ηηο ππφινηπεο θαζψο ν ζθνπφο απηνχ ηνπ βηβιίνπ δελ είλαη λα παξνπζηάζεη εθηελψο ηηο δηακνξθψζεηο εγθαηάζηαζεο ηεο πιαηθφξκαο J2EE αιιά ηα βαζηθά ηεο ζηνηρεία θαη ηα ζηνηρεία πνπ ρξεζηκνπνηήζεθαλ γηα ηελ αλάπηπμε ηεο δηαδηθηπαθήο εθαξκνγήο καο. Σελ. 20 από 128

21 Web-κεντρική διαμόρφωςη εγκατάςταςησ ηε Web-θεληξηθή δηακφξθσζε εγθαηάζηαζεο, πνπ θαίλεηαη ζην ρήκα 1.5, έλα Web θνληέηλεξ θάζεηαη κεηαμχ ηνπ πειάηε θαη ησλ πφξσλ EIS, θαη δελ ππάξρεη θνληέηλεξ EJB. Σφζν ε ινγηθή ηεο παξνπζίαζεο θαη ηεο επηρεηξεκαηηθήο ινγηθήο αληηκεησπίδνληαη απφ ζηνηρεία ηνπ Web θνληέηλεξ. Μηα Web-θεληξηθή δηακφξθσζε εγθαηάζηαζεο ζπλήζσο θαηαιήγεη ζε κηα έκθαζε ζηελ εκθάληζε θαη ηελ αίζζεζε ηεο εθαξκνγήο (look and feel), κε ιηγφηεξε έκθαζε ζηε ζηήξημε ηεο επηρεηξεκαηηθήο ινγηθήο. χιμα 1.5 Web-κεντρικι διαμόρφωςθ εγκατάςταςθσ Απηή ε δηακφξθσζε παξέρεη κηα ζεηξά απφ νθέιε. Οη πειάηεο δελ επεξεάδνληαη απφ αιιαγέο ζηνπο πφξνπο EIS, δεδνκέλνπ φηη νη πειάηεο δελ έρνπλ άκεζε πξφζβαζε ζε απηνχο ηνπο πφξνπο (εθηφο θαη αλ, γηα παξάδεηγκα, ε έθηαζε ησλ αιιαγψλ απαηηεί πξφζζεηεο πιεξνθνξίεο πνπ πξέπεη λα παξέρνληαη απφ ηνλ πειάηε). Δίλαη επίζεο επθνιφηεξν λα αλαδηαηάμεη ην ζχλνιν ηεο εθαξκνγήο, δεδνκέλνπ φηη φιε ε ινγηθή ηεο εθαξκνγήο βξίζθεηαη ζην δηαθνκηζηή. Ωζηφζν, αλ θαη ε ρξήζε ησλ EJBs κεξηθέο θνξέο ζεσξείηαη φηη είλαη ππεξβνιηθή, ε παξάιεηςε ησλ EJBs έρεη σο απνηέιεζκα ζε νξηζκέλα κεηνλεθηήκαηα. πγθεθξηκέλα, απηή ε ξχζκηζε δελ ελζαξξχλεη κηα ζαθή θαηαλνκή ησλ αξκνδηνηήησλ κεηαμχ ηεο ινγηθήο ηεο παξνπζίαζεο θαη ηεο επηρεηξεκαηηθήο ινγηθήο, κε απνηέιεζκα ζηελά ζπλδεδεκέλα ζηνηρεία ηα νπνία εκπνδίδνπλ ηελ εμέιημε ηεο εθαξκνγήο θαη ηε δηαηήξεζή ηεο. Δπίζεο, απφ ηελ άπνςε ηεο θιηκάθσζεο, είλαη επζχλε ηνπ πξνγξακκαηηζηή λα εμαζθαιίζεη ηελ Σελ. 21 από 128

22 απνηειεζκαηηθή ρξήζε ησλ πεξηνξηζκέλσλ πφξσλ, φπσο νη ζπλδέζεηο κε βάζεηο δεδνκέλσλ. Γηα λα ζπλνςίζνπκε, ππάξρεη κηα ζεηξά απφ ξπζκίζεηο εγθαηάζηαζεο, ε θαζεκία κε ηα πιενλεθηήκαηα θαη ηα κεηνλεθηήκαηά ηεο. Έλαο απφ ηνπο ζηφρνπο ηεο J2EE πιαηθφξκαο είλαη λα είλαη αξθεηά επέιηθηε ψζηε λα ππνζηεξίδεη ηηο νπνηεζδήπνηε ξπζκίζεηο πνπ ηαηξηάδνπλ θαιχηεξα ζε έλαλ νξγαληζκφ, θαζψο αληηκεησπίδεη ηα πξνβιήκαηα ηεο εγθαηάζηαζεο. 1.3 Συνιςτϊμενεσ Τεχνολογύεσ J2EE Αο ξίμνπκε ηψξα κία πην πξνζεθηηθή καηηά ζηηο ζπληζηάκελεο ηερλνινγίεο εθαξκνγψλ J2EE πνπ ρξεζηκνπνηνχληαη δηεμνδηθά ζην ζχζηεκά καο Java servlets Έλα servlet είλαη κηα θιάζε Java πνπ ρξεζηκνπνηείηαη γηα ηελ εθαξκνγή ηεο ινγηθήο ηεο παξνπζίαζεο ζην δηαθνκηζηή. Έλα servlet θαζνξίδεη ηνλ ηξφπν κε ηνλ νπνίν ε αίηεζε (request) ηνπ πειάηε επεμεξγάδεηαη θαη ηνλ ηξφπν κε ηνλ νπνίν κηα απάληεζε δεκηνπξγείηαη. Σα Servlets ζπρλά είλαη απεπζείαο πξνζβάζηκα απφ έλα κεράλεκα πειάηε, φπσο έλα πξφγξακκα πεξηήγεζεο Web, είηε ρξεζηκνπνηψληαο έλα URL ή κέζσ ηεο ρξήζεο κίαο θφξκαο HTML, φπσο θαίλεηαη ζην παξαθάησ απφζπαζκα HTML. Όηαλ ε θφξκα πνπ εθπξνζσπείηαη απφ ηνλ θψδηθα HTML, ππνβάιιεηαη ζην δηαθνκηζηή Web γηα ηελ επεμεξγαζία, ν δηαθνκηζηήο Web εληνπίδεη ηα servlets, κε βάζε ην φλνκα πνπ θαζνξίδεηαη ζην ραξαθηεξηζηηθφ action ηεο θφξκαο, πξνζδηνξίδεη ηελ θαηάιιειε κέζνδν servlet, κε βάζε ην ραξαθηεξηζηηθφ method ηεο θφξκαο, θαηαζθεπάδεη ηε ζρεηηθή αίηεζε θαη επηθαιείηαη ηε κέζνδν servlet, πεξλψληαο ηελ αίηεζε σο φξηζκα. <html> <body> <form method=post action="/reservation/main">... </form> </body> </html> Σελ. 22 από 128

23 Σν θνκκάηη θψδηθα πνπ βξίζθεηαη παξαθάησ είλαη απφ ηνλ πεγαίν θψδηθα ηνπ servlet πνπ ρξεζηκνπνηήζεθε ζην παξαπάλσ παξάδεηγκα. Ο θψδηθαο απηφο δείρλεη πηπρέο ηεο πινπνίεζεο ηεο κεζφδνπ dopost πνπ επηθαιείηαη ν δηαθνκηζηήο Web φηαλ ε θφξκα HTML έρεη ππνβιεζεί. Απηή ε κέζνδνο παίξλεη δχν παξακέηξνπο. Η πξψηε παξάκεηξνο είλαη έλα HttpServletRequest, ην νπνίν παξέρεη ην πεξηερφκελν ηεο αίηεζεο. Η δεχηεξε παξάκεηξνο είλαη έλα HttpServletResponse, ην νπνίν ρξεζηκνπνηείηαη γηα λα επηζηξέςεη ηελ απάληεζε. Καηά ηελ εθαξκνγή ηεο απαηηνχκελεο ινγηθήο ηεο παξνπζίαζεο, έλα servlet αιιειεπηδξά ζπλήζσο κε άιια servlets, EJBs θαη JSPs. import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class PresentationRequestController extends HttpServlet { public void dopost(httpservletrequest req, HttpServletResponse resp) throws ServletException, IOException {... } } πρλά είλαη απαξαίηεην γηα έλα servlet λα παξάγεη έμνδν πνπ κπνξεί λα εξκελεπζεί ζην κεράλεκα ηνπ πειάηε, φπσο ε HTML (εάλ απηή είλαη ε αλακελφκελε παξαγσγή). Απηφ απαηηεί ηε ζχληαμε ηεο dopost κεζφδνπ, ψζηε λα ηνπνζεηεί ηελ HTML ζην αληηθείκελν HttpServletResponse. Ωζηφζν, φηαλ πξφθεηηαη γηα ηελ εκθάληζε κίαο ηζηνζειίδαο, ε πιαηθφξκα J2EE πξνζθέξεη κηα ελαιιαθηηθή ηερλνινγία, ηα JavaServer Pages (JSP), γηα λα εξκελεπζεί ε απαηηνχκελε ε γιψζζα ζήκαλζεο JavaServer Pages Έλα JSP είλαη έλα έγγξαθν θεηκέλνπ πνπ, φπσο έλα servlet, πεξηγξάθεη πψο κηα αίηεζε επεμεξγάδεηαη θαη κηα απάληεζε δεκηνπξγείηαη. Έλα JSP ζπρλά Σελ. 23 από 128

24 πξνζπειαχλεηαη απεπζείαο απφ ην κεράλεκα ηνπ πειάηε, φπσο έλα πξφγξακκα πεξηήγεζεο Web, ρξεζηκνπνηψληαο κηα δηεχζπλζε URL. Γηα παξάδεηγκα, πξνζπειάδνληαο ην URL έρεη σο απνηέιεζκα ζην δηαθνκηζηή Web λα εθηειείηαη ην αξρείν PassengerInfo.jsp θαη λα επηζηξέθεηαη ε απάληεζε πνπ παξάγεηαη απφ απηφ ην JSP. Έλαο ηξφπνο γηα λα θαηαιάβνπκε ηα JSPs είλαη φηη παξέρνπλ κηα ελαιιαθηηθή ιχζε γηα servlets γηα ηε δεκηνπξγία δειψζεσλ ζε κηα γιψζζα ζήκαλζεο. Δζσηεξηθά, ν δηαθνκηζηήο Web απηφκαηα κεηαγισηηίδεη ηα JSPs ζε servlets πξηλ εθηειεζζνχλ. Απηφ ζέηεη ην εξψηεκα ηνπ πφηε λα ρξεζηκνπνηνχληαη ηα servlets θαη πφηε λα ρξεζηκνπνηνχληαη ηα JSPs, αθνχ κπνξνχλ λα παξέρνπλ παξφκνηεο ιεηηνπξγηθέο δπλαηφηεηεο. Απηή είλαη κία απφθαζε ζρεδηαζκνχ θαη εμαξηάηαη απφ ηελ εθάζηνηε εθαξκνγή. Σν πεξηερφκελν ελφο απινχ αξρείνπ JSP πνπ επηζηξέθεη ηελ εκεξνκελία πνπ ζρεηίδεηαη κε ην κεράλεκα ζην νπνίν ν δηαθνκηζηήο Web εθηειείηαη, θαίλεηαη παξαθάησ. Μπνξνχκε λα δνχκε φηη ε JSP πεξηέρεη δχν ηχπνπο δειψζεσλ. Ο πξψηνο ηχπνο δήισζεο είλαη κηα γιψζζα ζήκαλζεο πνπ επηζηξέθεηαη ζηελ απάληεζε. ην παξάδεηγκα, ε γιψζζα ζήκαλζεο είλαη ε HTML. Ο δεχηεξνο ηχπνο δήισζεο είλαη κηα γιψζζα εληνιψλ πνπ ππνζηεξίδεη ηε δεκηνπξγία δπλακηθνχ πεξηερνκέλνπ, φηαλ ην αξρείν JSP εθηειείηαη. ην παξάδεηγκα, ην θείκελν newdate().tostring() είλαη κηα εληνιή πνπ ζα δεκηνπξγήζεη έλα λέν αληηθείκελν Java Date, θαη ζα επηζηξέςεη ηελ ηξέρνπζα ηηκή σο string. Όιεο νη δειψζεηο εληνιψλ εζσθιείνληαη κέζα ζε "<%...%>" δεπγάξηα. Η import="java.util.date" ζπκπεξηιακβάλεηαη γηα λα δειψζεη ηε ζέζε ηεο θιάζεο Date. import="java.util.date"%> <html> <body> <h2>web server information</h2> <table border=1> <tr> <td>date:</td> <td><%= new Date().toString()%></td> Σελ. 24 από 128

25 </tr> </table> </body> </html> Όηαλ απηφ ην αξρείν JSP εθηειείηαη απφ ην δηαθνκηζηή Web, παξάγεη έμνδν παξφκνηα κε απηφ πνπ θαίλεηαη παξαθάησ. Όιεο νη δειψζεηο HTML ηνπνζεηνχληαη ζηελ απάληεζε σο έρεη. Ωζηφζν, νη δειψζεηο εληνιψλ ζην αξρηθφ αξρείν JSP εθηειέζηεθαλ θαη ηα απνηειέζκαηα πεξηιακβάλνληαη ζηελ απάληεζε. Πην ζπγθεθξηκέλα, κπνξνχκε λα δνχκε φηη ε εθηέιεζε ηεο δήισζεο newdate().tostring() παξάγεη ηελ ηηκή "Σεη Μαξ 03 17:02:50 GMT +00: ". <html> <body> <h2>web server information</h2> <table border=1> <tr> <td>date:</td> <td>wed Mar 03 17:02:50 GMT+00: </td> </tr> </table> </body> </html> Όηαλ εξκελεπζεί, απηφ ην HTML παξάγεη ην απνηέιεζκα πνπ θαίλεηαη ζην ρήκα 1.6. Σελ. 25 από 128

26 χιμα 1.6 Ζξοδοσ από ζνα JSP ςε ζναν browser Η ηερλνινγία JSP ελζαξξχλεη κία ζχκβαζε γηα πεξηβάιινληα εξγαζίαο πνπ βαζίδεηαη κεηαμχ ηνπ παξφρνπ ησλ ζειίδσλ JSP θαη νπνηνλδήπνηε ζηνηρείσλ εθαξκνγήο πνπ ρξεζηκνπνηνχληαη απφ ηηο ζειίδεο JSP (πνπ κπνξεί λα είλαη EJBs, θαζψο θαη απιέο θιάζεηο Java, φπσο ε θιάζε ηεο εκεξνκελίαο πνπ ρξεζηκνπνηείηαη ζην παξαπάλσ παξάδεηγκα) Κλϊςη Bean Έλα θνκκάηη θψδηθα κηαο θιάζεο bean γηα ην UserAccount EJB παξνπζηάδεηαη παξαθάησ. import javax.util.*; import javax.ejb.*;... public abstract class UserAccountBean implements EntityBean { // Instance variables Σελ. 26 από 128

27 private String password;... // Business operations public void setpassword(string password) { this.password = password; } public String getpassword() { return password; }... // Container operations public void ejbcreate() throws CreateException {... } public void ejbremove() {... } public void ejbactivate() {... } public void ejbpassivate() {... }... } Σν παξάδεηγκα απηφ έρεη δηαηεξεζεί ζθνπίκσο απιφ γηα λα καο βνεζήζεη λα επηθεληξσζνχκε ζε ζπγθεθξηκέλα ραξαθηεξηζηηθά EJB. Μπνξνχκε λα δνχκε φηη ε θιάζε bean πεξηέρεη κεηαβιεηέο ζηηγκηφηππσλ πνπ αληηπξνζσπεχνπλ ηελ θαηάζηαζε ησλ αληηθεηκέλσλ πνπ πινπνηνχληαη απφ ην EJB. Μπνξνχκε επίζεο λα δνχκε φηη ε θιάζε bean πινπνηεί ηηο επηρεηξεκαηηθέο ιεηηνπξγίεο πνπ νξίδνληαη ζην remote interface (ή local interface), φπσο setpassword. Σέινο, κπνξνχκε λα δνχκε φηη ε θιάζε bean πινπνηεί ιεηηνπξγίεο πνπ απαηηνχληαη σο κέξνο ηεο ακθίδξνκεο ζχκβαζεο κεηαμχ ησλ bean θαη ηνπ θνληέηλεξ. Γηα παξάδεηγκα, φηαλ έλαο πειάηεο επηθαιείηαη ηε ιεηηνπξγία δεκηνπξγίαο ζην home interface (ή local home interface), απηφ ηειηθά έρεη σο απνηέιεζκα λα θαιεί ν θνληέηλεξ ηελ ejbcreate κέζνδν ηεο θιάζεο bean. 1.4 Περύληψη ε απηφ ην θεθάιαην παξείρακε κία ζχληνκε πεξηγξαθή ηεο πιαηθφξκαο J2EE. Σελ. 27 από 128

28 Αλ θαη ε J2EE πιαηθφξκα παξέρεη έλα θαιφ ζεκείν εθθίλεζεο γηα ηελ αλάπηπμε ζπζηεκάησλ επηρεηξήζεσλ, παξέρεη κφλν έλα κέξνο ηεο ιχζεο πνπ απαηηείηαη. Δηδηθφηεξα, ε πιαηθφξκα J2EE δελ παξέρεη κηα νινθιεξσκέλε ιχζε απφ ηε ζηηγκή πνπ ρξεηάδεηαη αθφκα λα θαζνξίζνπκε ηε ινγηθή ηεο εθαξκνγήο πνπ εθηειεί ηε ρξήζε ηεο J2EE πιαηθφξκαο. Η J2EE είλαη επίζεο κηα πεξίπινθε πιαηθφξκα θαη πξέπεη λα αλαδεηήζνπκε ηξφπνπο γηα ηελ απινπνίεζε ηεο αληίιεςεο ησλ πξνγξακκαηηζηψλ γηα ηελ απηέο ηηο πνιππινθφηεηεο. Πξνηνχ αλαιχζνπκε ηα ζηάδηα πινπνίεζεο ηεο εθαξκνγήο καο, ζην επφκελν θεθάιαην ζα αλαιχζνπκε ηελ κεζνδνινγία RUP, ηα νθέιε ηεο θαη ζηελ ζπλέρεηα ζα παξνπζηάζνπκε ηελ κεζνδνινγία ICONIX θαη ηελ ζχγθξηζή ηνπο ψζηε λα θαηαιήμνπκε ζηε κεζνδνινγία ICONIX. Δίλαη ζεκαληηθφ λα κειεηήζνπκε ηε κεζνδνινγία RUP θαζψο καο παξέρεη έλα πιήξεο πιαίζην ζηήξημεο θαη βνήζεηαο γηα λα μεθηλήζνπκε έλα κεγάιν ζχζηεκα ινγηζκηθνχ θαζψο θαη ε ζχγθξηζή ηεο κε ηε κεζνδνινγία ICONIX, πνπ ηειηθά ρξεζηκνπνηήζεθε, είλαη πνιχηηκε. Σελ. 28 από 128

29 Κεφϊλαιο 2: Μεθοδολογύα RUP Ο ζθνπφο απηνχ ηνπ θεθαιαίνπ είλαη λα παξνπζηάζεη ηελ Δπαλαιεπηηθή Δλνπνηεκέλε Γηαδηθαζία RUP (Rational Unified Process), έλα πιαίζην (framework) κεζφδνπ γηα ηελ αλάπηπμε ινγηζκηθνχ. Ξεθηλάκε αλαιχνληαο ηηο βέιηηζηεο πξαθηηθέο πνπ απνηεινχλ ην ζεκέιην ηεο RUP. Έπεηηα ζπλερίδνπκε πεξηγξάθνληαο ηηο βαζηθέο έλλνηεο θαη ηελ γεληθή αξρηηεθηνληθή ηεο RUP θαη θιείλνπκε κε ηελ ρξήζε ηεο RUP σο πιαίζην κεζφδνπ γηα ηελ αλάπηπμε κίαο εμαηνκηθεπκέλεο δηαδηθαζίαο. 2.1 Βϋλτιςτεσ πρακτικϋσ Τα θεμϋλια τησ RUP Η RUP (Rational Unified Process) είλαη έλα επαλαιεπηηθφ πιαίζην αλάπηπμεο ινγηζκηθνχ πνπ δεκηνπξγήζεθε απφ ηε Rational Software Corporations, ηκήκα ηεο IBM απφ ην Η RUP δελ είλαη κία απιή, απηή, θαλνληζηηθή κέζνδνο, αιιά πην πνιχ έλα πξνζαξκφζηκν πιαίζην κεζφδνπ, πνπ πξννξίδεηαη γηα πξνζαξκνγή απφ εηαηξίεο θαη νκάδεο αλάπηπμεο ινγηζκηθνχ, πνπ ζα επηιέμνπλ ηα θαηάιιεια ζηνηρεία ηεο κεζνδνινγίαο πνπ ηθαλνπνηνχλ ηηο αλάγθεο ηνπο. Ο ζηφρνο ηεο είλαη λα δηαζθαιίζεη ηελ παξαγσγή πςειήο πνηφηεηαο ινγηζκηθνχ πνπ αληαπνθξίλεηαη ζηηο αλάγθεο ησλ ηειηθψλ ρξεζηψλ ηεο, κέζα ζηα πιαίζηα ελφο πξνβιέςηκνπ ρξνλνδηαγξάκκαηνο θαη πξνυπνινγηζκνχ («θαιχηεξν ινγηζκηθφ γξεγνξφηεξα», better software faster ). Οη βέιηηζηεο πξαθηηθέο είλαη έλα ζχλνιν εκπνξηθά δνθηκαζκέλσλ πξνζεγγίζεσλ γηα ηελ αλάπηπμε ινγηζκηθνχ. Όηαλ ρξεζηκνπνηνχληαη ζε ζπλδπαζκφ, εμαζθαιίδνπλ ηελ επηηπρία ελφο έξγνπ αλάπηπμεο ινγηζκηθνχ ρηππψληαο ζηα γελεζηνπξγά αίηηα ησλ ηππηθψλ πξνβιεκάησλ αλάπηπμεο ινγηζκηθνχ. Απηέο νη πξαθηηθέο είλαη νη παξαθάησ: Δπαλαιεπηηθή αλάπηπμε. Η ιεηηνπξγηθφηεηα ηνπ ζπζηήκαηνο πξέπεη λα δίλεηε ζε κία δηαδνρηθή ζεηξά εθδφζεσλ (releases) ηνπ πξνγξάκκαηνο ζηηο νπνίεο απμάλεηαη ε πιεξφηεηα ηνπ, φπνπ θάζε έθδνζε είλαη ην απνηέιεζκα κηαο επαλάιεςεο. Η επηινγή ησλ απαηηήζεσλ (requirements) πνπ απεπζχλνληαη ζε θάζε επαλάιεςε Σελ. 29 από 128

30 είλαη ζπλπθαζκέλε κε ην κεηξηαζκφ ησλ θηλδχλσλ ηνπ έξγνπ, κε ηνπο πην ζεκαληηθνχο θηλδχλνπο λα αληηκεησπίδνληαη πξψηνη. Γηαρείξηζε απαηηήζεσλ. Υξεζηκνπνίεζε κίαο ζπζηεκαηηθήο πξνζέγγηζεο γηα ηελ εθκαίεπζε θαη ηελ θαηαγξαθή ησλ απαηηήζεσλ ηνπ ζπζηήκαηνο θαη ζηε ζπλέρεηα ηε δηαρείξηζε αιιαγψλ ζηηο απαηηήζεηο, θπξίσο αμηνινγψληαο ηνλ αληίθηππν ησλ αιιαγψλ απηψλ ζην ππφινηπν ζχζηεκα. Η απνηειεζκαηηθή δηαρείξηζε ησλ απαηηήζεσλ πξνυπνζέηεη ηε δηαηήξεζε ζαθνχο δήισζεο ησλ απαηηήζεσλ, θαζψο θαη ηεο ηρλειαζηκφηεηαο απφ ηηο απαηηήζεηο ζηα άιια αληηθείκελα (artifacts) ηνπ έξγνπ. Χξήζε ηνπ θαηαθεξκαηηζκνύ. Γφκεζε ηεο αξρηηεθηνληθήο ηνπ ινγηζκηθνχ ρξεζηκνπνηψληαο επηκέξνπο ηκήκαηα (θαηαθεξκαηηζκφο πξνβιήκαηνο ζε επηκέξνπο κηθξφηεξα θαη επθνιφηεξα). Η ρξήζε επηκέξνπο ηκεκάησλ ζηελ αλάπηπμε ινγηζκηθνχ ζπκβάιεη ζηε κείσζε ηεο πνιππινθφηεηαο ηνπ πξνβιήκαηνο θαη νδεγεί ζε κία αξρηηεθηνληθή πην ηζρπξή θαη αλζεθηηθή, πνπ παξέρεη ηε δπλαηφηεηα ηεο επαλαρξεζηκνπνίεζεο ησλ επηκέξνπο ηκεκάησλ πνπ ζπλζέηνπλ ηελ αξρηηεθηνληθή. Δπίζεο πξνσζεί ηελ δπλαηφηεηα λα δνθηκάδνληαη ηα επηκέξνπο ηκήκαηα ηνπ ινγηζκηθνχ γηα ηελ απνηειεζκαηηθφηεηά ηνπο πξηλ εληαρζνχλ ζην θπξίσο ζχζηεκα. Οπηηθή κνληεινπνίεζε. Γεκηνπξγία κηαο ζεηξάο νπηηθνπνηεκέλσλ κνληέισλ, θαζέλα απφ ηα νπνία ππνγξακκίδεη ζπγθεθξηκέλεο ιεπηνκέξεηεο θαη ζηνηρεία ηνπ ζπζηήκαηνο θαη αγλνεί-θηιηξάξεη άιια. Σα κνληέια απηά βνεζνχλ ζηελ θαιχηεξε θαηαλφεζε ηνπ ζπζηήκαηνο πνπ αλαπηχζζεηαη θαη παξέρνπλ έλα κεραληζκφ επηθνηλσλίαο κεηαμχ ησλ δηαθνξεηηθψλ κειψλ ηεο νκάδαο (ζρεδηαζηέο, πξνγξακκαηηζηέο, testers θηι.). Η ρξεζηκνπνίεζε δηαγξακκάησλ γηα ηελ αλαπαξάζηαζε φισλ ησλ επηκέξνπο ηκεκάησλ ηνπ ζπζηήκαηνο, ησλ ρξεζηψλ θαη ηελ αιιειεπίδξαζή ηνπο ζε γιψζζα UML (Unified Modeling Language), απνηειεί έλα ρξήζηκν εξγαιείν γηα ηελ επίηεπμε ηεο πξαθηηθήο απηήο. Σελ. 30 από 128

31 πλερήο έιεγρνο ηεο πνηόηεηαο. πλερήο αμηνιφγεζε ηεο πνηφηεηαο ηνπ ζπζηήκαηνο κε ηηο ιεηηνπξγηθέο (functional) θαη κε ιεηηνπξγηθέο (non-functional) απαηηήζεηο ηνπ. Δθηέιεζε δνθηκψλ (testing) σο κέξνο ηεο θάζε επαλάιεςεο. Δίλαη ιηγφηεξν δαπαλεξή ε δηφξζσζε ειιείςεσλ πνπ δηαπηζηψζεθαλ ζηα πξψηα ζηάδηα ηεο αλάπηπμεο ηνπ θχθινπ δσήο ηνπ ινγηζκηθνχ απφ ηελ δηφξζσζή ηνπο ζε επφκελα ζηάδηα. Γηαρείξηζε αιιαγώλ. Καζηέξσζε κίαο πεηζαξρεκέλεο θαη ειεγρφκελεο πξνζέγγηζεο ζηε δηαρείξηζε αιιαγψλ ζε κεηαβαιιφκελεο απαηηήζεηο, ηερλνινγία, πφξνπο, πξντφληα, πιαηθφξκεο θαη νχησ θαζεμήο. Έιεγρνο ζην πσο εηζάγνληαη νη αιιαγέο ζηα αληηθείκελα (artifacts) ηνπ έξγνπ, πνηνο εηζάγεη ηηο αιιαγέο θαη πφηε πξέπεη λα εηζάγνληαη. Παξνρή ελφο κέζνπ γηα ηνλ απνηειεζκαηηθφ ζπγρξνληζκφ ησλ αιιαγψλ κεηαμχ ησλ επηκέξνπο νκάδσλ αλάπηπμεο ηνπ ινγηζκηθνχ, ησλ δηαθνξεηηθψλ εθδφζεσλ ηνπ ινγηζκηθνχ, ησλ πιαηθφξκσλ θαη νχησ θαζεμήο. Απηέο νη πξαθηηθέο είλαη απνηέιεζκα εκπεηξηψλ ηεο Rational Software, ε νπνία εμαγνξάζηεθε απφ ηελ IBM ην 2003, ζηελ αλάπηπμε πξντφλησλ ινγηζκηθνχ καδί κε ηηο εκπεηξίεο ησλ πειαηψλ ηνπο. Η εθαξκνγή απηψλ ησλ βέιηηζησλ πξαθηηθψλ ζέηεη κία εηαηξία αλάπηπμεο ινγηζκηθνχ ζε ζέζε λα παξέρεη πςειήο πνηφηεηαο ινγηζκηθφ κε ηε βνήζεηα ελφο επαλαιακβαλφκελνπ θαη πξνβιέςηκνπ ηξφπνπ. 2.2 Δομικϊ ςτοιχεύα RUP Η RUP βαζίδεηαη ζε έλα ζχλνιν δνκηθψλ ζηνηρείσλ ηα νπνία πεξηγξάθνπλ ηη ζα παξαρζεί, ηηο απαξαίηεηεο δεμηφηεηεο πνπ απαηηνχληαη θαη εμήγεζε βήκα πξνο βήκα πσο ζα επηηεπρζνχλ νη ζπγθεθξηκέλνη ζηφρνη αλάπηπμεο ηεο εθαξκνγήο. Σα θχξηα δνκηθά ζηνηρεία είλαη ηα εμήο: Ρφινη (πνηφο) Έλαο ξφινο θαζνξίδεη έλα ζχλνιν ζρεηηθψλ αξκνδηνηήησλ, δεμηνηήησλ θαη επζπλψλ. Σελ. 31 από 128

32 Αληηθείκελα (artifacts) (ηη) Σα αληηθείκελα αληηπξνζσπεχνπλ θάηη πνπ πξνθχπηεη απφ κία εξγαζία, ζπκπεξηιακβαλνκέλσλ θαη φισλ ησλ εγγξάθσλ θαη ησλ κνληέισλ πνπ παξάγνληαη θαηά ηε δηάξθεηα ηεο εξγαζίαο κέζσ ηεο δηαδηθαζίαο RUP. Καζήθνληα (πσο) Έλα θαζήθνλ πεξηγξάθεη κία κνλάδα εξγαζίαο πνπ αλαηίζεηαη ζε έλα ξφιν θαη παξέρεη έλα νπζηαζηηθφ απνηέιεζκα. Φάζεηο, επαλαιήςεηο, θιάδνη-ηνκείο θαη ιεπηνκέξεηεο ξνήο εξγαζίαο (workflow details) (πφηε) H RUP κπνξεί λα πεξηγξαθεί θαη αλαπαξαζηαζεί κε ηε βνήζεηα δχν δηαζηάζεσλ: ηνπ ρξόλνπ θαη ηνπ πεξηερνκέλνπ. Σν ρήκα 2.1 καο παξνπζηάδεη κία γξαθηθή αλαπαξάζηαζε ησλ δηαζηάζεσλ απηψλ. Ο νξηδφληηνο άμνλαο αλαπαξηζηά ηνλ ρξφλν θαη παξνπζηάδεη ηηο πηπρέο ηνπ θχθινπ δσήο ηεο δηαδηθαζίαο αλάπηπμεο ινγηζκηθνχ. Η δηάζηαζε απηή πεξηγξάθεηαη ζε ζρέζε κε ηηο θάζεηο (phases) θαη ηηο επαλαιήςεηο (iterations). Ο θάζεηνο άμνλαο παξνπζηάδεη ην πεξηερφκελν θαη δείρλεη ηνπο θιάδνπο-ηνκείο (disciplines),πνπ νκαδνπνηνχλ ινγηθά ηε δηαδηθαζία ηνπ πεξηερνκέλνπ. χιμα 2.1 Διαςτάςεισ χρόνου και περιεχομζνου τθσ RUP Σελ. 32 από 128

33 Όπσο δείρλνπλ ηα «ζακαξάθηα» ζην ρήκα 2.1, ε ζρεηηθή έκθαζε ησλ θιάδσλ (disciplines) αιιάδεη θαηά ηελ δηάξθεηα δσήο ηνπ έξγνπ. Γηα παξάδεηγκα, ζηηο αξρηθέο επαλαιήςεηο ν πεξηζζφηεξνο ρξφλνο δαπαλάηαη γηα ηηο απαηηήζεηο ηνπ ζπζηήκαηνο, θαζψο ζε κεηαγελέζηεξεο επαλαιήςεηο πεξηζζφηεξνο ρξφλνο δαπαλάηαη ζηελ πινπνίεζε ηεο εθαξκνγήο. Πξέπεη λα ζπκφκαζηε, σζηφζν, φηη θάζε θιάδνο πξέπεη λα ιακβάλεηαη ππφςηλ ζε θάζε επαλάιεςε. ε θάζε επαλάιεςε ηα θαζήθνληα θαηεγνξηνπνηνχληαη ζε ελλέα θιάδνποηνκείο (disciplines). Έλαο θιάδνο είλαη κία ζπιινγή απφ δξαζηεξηφηεηεο πνπ ζρεηίδνληαη κε έλα κεγάιν «ηνκέα ελδηαθέξνληνο» ζην πιαίζην ηνπ ζπλνιηθνχ έξγνπ. Οη θιάδνη νκαδνπνηνχλ ηηο δξαζηεξηφηεηεο ινγηθά. Όπσο δείρλνπκε ζηελ εηθφλα 2.1 ε RUP είλαη νξγαλσκέλε γχξσ απφ 9 θιάδνπο. Ο πίλαθαο 2.1 παξέρεη κία ζχληνκε πεξηγξαθή απηψλ ησλ θιάδσλ. Κιάδνη RUP χληνκε πεξηγξαθή Μνληεινπνίεζε Δπηρείξεζεο (Business Modeling) Ο ζθνπφο ηεο Μνληεινπνίεζεο Δπηρείξεζεο είλαη: Καηαλφεζε ηεο δνκήο θαη ηεο δπλακηθήο ηεο εηαηξίαο γηα ηελ νπνία αλαπηχζζεηαη ην ζχζηεκα. Καηαλφεζε ησλ ππαξρφλησλ πξνβιεκάησλ ηεο εηαηξίαο θαη εληνπηζκφο πηζαλήο βειηίσζεο. Δπηβεβαίσζε φηη νη πειάηεο, νη ηειηθνί ρξήζηεο θαη νη πξνγξακκαηηζηέο έρνπλ θνηλή αληίιεςε ηνπ ζηφρνπ. Άληιεζε ησλ απαηηήζεσλ ηνπ ζπζηήκαηνο. Απαηηήζεηο (Requirements) Ο ζθνπφο ησλ Απαηηήζεσλ είλαη: Καζηέξσζε θαη δηαηήξεζε κίαο ζπκθσλίαο κεηαμχ ησλ πειαηψλ θαη ησλ άιισλ ελδηαθεξφκελσλ κειψλ ζρεηηθά κε ην ζχζηεκα πνπ ζα πινπνηήζνπλ. Παξνρή κίαο θαιχηεξεο θαηαλφεζεο ηνπ ζπζηήκαηνο ζηνπο πξνγξακκαηηζηέο. Καζνξηζκφο ησλ νξίσλ πνπ νξηνζεηνχλ ην ζχζηεκα. Σελ. 33 από 128

34 Παξνρή κίαο βάζεο γηα ηνλ θαζνξηζκφ ησλ ηερληθψλ πεξηερνκέλσλ ησλ επαλαιήςεσλ. Παξνρή κίαο βάζεο γηα ηελ εθηίκεζε ηνπ θφζηνπο θαη ηνπ ρξφλνπ γηα ηελ αλάπηπμε ηνπ ζπζηήκαηνο. Αλάιπζε θαη ρεδηαζκφο (Analysis and Design) Τινπνίεζε (Implementation) Έιεγρνο (Test) Δγθαηάζηαζε (Deployment) Ο ζθνπφο ηεο Αλάιπζεο θαη ηνπ ρεδηαζκνχ είλαη: Μεηαηξνπή ησλ απαηηήζεσλ ζε ζρεδηαζκφ ηνπ κειινληηθνχ ζπζηήκαηνο. Αλάπηπμε κηαο εχξσζηεο αξρηηεθηνληθήο γηα ην ζχζηεκα. Πξνζαξκνγή ηνπ ζρεδηαζκνχ ψζηε λα ηαηξηάδεη κε ην πεξηβάιινλ ηεο εθαξκνγήο. Ο ζθνπφο ηεο Τινπνίεζεο είλαη: Οξηζκφο ηεο νξγάλσζεο ηεο πινπνίεζεο. Τινπνίεζε ησλ ζηνηρείσλ ζρεδίαζεο. Έιεγρνο θάζε νκάδαο πινπνίεζεο. Δλζσκάησζε ησλ απνηειεζκάησλ πνπ παξάγνληαη απφ κεκνλσκέλεο νκάδεο πινπνίεζεο, ζην ηειηθφ εθηειέζηκν ζχζηεκα. Ο ζθνπφο ηνπ Διέγρνπ είλαη: Δχξεζε θαη θαηαγξαθή ησλ ειαηησκάησλ ζηελ πνηφηεηα ινγηζκηθνχ. Παξνρή γεληθψλ ζπκβνπιψλ ζρεηηθά κε ηελ ζεσξνχκελε πνηφηεηα ινγηζκηθνχ. Απφδεημε ηεο εγθπξφηεηαο ησλ ππνζέζεσλ πνπ έγηλαλ θαηά ηνλ ζρεδηαζκφ θαη ηελ θαηαγξαθή απαηηήζεσλ κέζσ επίδεημεο. Δπηθχξσζε φηη ην ινγηζκηθφ ιεηηνπξγεί φπσο είρε ζρεδηαζηεί. Δπηθχξσζε φηη νη ιεηηνπξγίεο ησλ πξντφλησλ ινγηζκηθνχ ιεηηνπξγνχλ φπσο απαηηείηαη (δειαδή νη απαηηήζεηο έρνπλ πινπνηεζεί ζσζηά). Ο ζθνπφο ηεο Δγθαηάζηαζεο είλαη: Δπηβεβαίσζε φηη ην πξντφλ ινγηζκηθνχ είλαη δηαζέζηκν ζε φινπο ηνπο ηειηθνχο ρξήζηεο. Σελ. 34 από 128

35 Γηακφξθσζε θαη Γηαρείξηζε Αιιαγψλ (Configuration and Change Management) Γηαρείξηζε Έξγνπ (Project Management) Ο ζθνπφο ηεο Γηακφξθσζεο θαη Γηαρείξηζεο Αιιαγψλ είλαη: Πξνζδηνξηζκφο ησλ ζηνηρείσλ δηακφξθσζεο 3. Πεξηνξηζκφο ησλ αιιαγψλ ζε απηά ηα ζηνηρεία. Έιεγρνο ησλ αιιαγψλ πνπ έγηλαλ ζε απηά ηα ζηνηρεία. Καζνξηζκφο θαη δηαρείξηζε ησλ δηακνξθψζεσλ 4 ησλ ελ ιφγσ αληηθεηκέλσλ. Ο ζθνπφο ηεο Γηαρείξηζεο έξγνπ είλαη: Γηαρείξηζε ελφο εληαηηθνχ έξγνπ ρεδίαζε, ζηειέρσζε, εθηέιεζε θαη παξαθνινχζεζε ηνπ έξγνπ. Γηαρείξηζε θηλδχλσλ. Πεξηβάιινλ (Environment) Πίνακασ 1. 1 Κλάδοι RUP Ο ζθνπφο ηνπ Πεξηβάιινληνο είλαη: Παξνρή ζηελ νξγάλσζε αλάπηπμεο ηνπ ινγηζκηθνχ ελφο πεξηβάιινληνο αλάπηπμεο ινγηζκηθνχ, πνπ πεξηιακβάλεη δηαδηθαζίεο θαη εξγαιεία, πνπ ζα ζηεξίμνπλ ηελ νκάδα νξγάλσζεο. Απηφ πεξηιακβάλεη ηε δηακφξθσζε ηεο δηαδηθαζίαο γηα έλα ζπγθεθξηκέλν έξγν, θαζψο θαη ηελ αλάπηπμε θαηεπζπληήξησλ γξακκψλ γηα ηελ ππνζηήξημε ηνπ έξγνπ Επαναλόψεισ (Iterations) Η επαλαιεπηηθή αλάπηπμε απνηειεί έλα βαζηθφ ραξαθηεξηζηηθφ ησλ επηηπρεκέλσλ έξγσλ αλάπηπμεο ινγηζκηθνχ. Μέζα ζε κηα επαλαιεπηηθή αλάπηπμε ηνπ θχθινπ δσήο ηνπ ινγηζκηθνχ, αξθεηά πεξάζκαηα πξαγκαηνπνηνχληαη ζε θαζέλαλ απφ ηνπο θιάδνπο. Κάζε πέξαζκα νλνκάδεηαη επαλάιεςε. Μηα επαλάιεςε είλαη κηα επδηάθξηηε, ρξνληθά ππνινγηζκέλε αθνινπζία 3 Στοιχεία διαμόρφωςθσ (configuration items) είναι τα ςτοιχεία που ζχουν τεκεί υπό τον ζλεγχο τθσ διαχείριςθσ διαμορφϊςεων. Τα ςτοιχεία διαμόρφωςθσ αποδίδονται ατομικά και ωσ εκ τοφτου μποροφν να προςδιοριςτοφν μονοςιμαντα ςε μία δεδομζνθ χρονικι ςτιγμι. Τα ςτοιχεία διαμόρφωςθσ είναι μζροσ μιασ Διαμόρφωςθσ. 4 Διαμόρφωςθ είναι ζνα ςφνολο από Στοιχεία διαμορφϊςεωσ που κακορίηουν μία ςυγκεκριμζνθ ζκδοςθ ενόσ ςυςτιματοσ ι μζροσ του ςυςτιματοσ. Σελ. 35 από 128

36 δξαζηεξηνηήησλ πνπ θαηαιήγεη ζηελ έθδνζε (εζσηεξηθά ή εμσηεξηθά) ελφο εθηειέζηκνπ πξντφληνο. Καζψο ην έξγν πξνρσξά, νη εθδφζεηο εμειίζζνληαη απφ έλα ππνζχλνιν ηνπ ηειηθνχ πξντφληνο ζην ηειηθφ ζχζηεκα. Μηα επαλαιεπηηθή δηαδηθαζία αλάπηπμεο είλαη παξφκνηα κε ην «αλαπηπζζφκελν» ινγηζκηθφ, φπνπ ην ηειηθφ πξντφλ σξηκάδεη κε ην ρξφλν. Κάζε επαλάιεςε θαηαιήγεη ζε κηα θαιχηεξε θαηαλφεζε ησλ απαηηήζεσλ, κηα πην εχξσζηε αξρηηεθηνληθή, έλα πην έκπεηξν νξγαληζκφ αλάπηπμεο θαη κηα πην πιήξε εθαξκνγή. Σν ρήκα 2.2 δείρλεη πσο ην επίθεληξν ηνπ έξγνπ κεηαηνπίδεηαη ζε φιε ηε δηάξθεηα ησλ δηαδνρηθψλ επαλαιήςεσλ. Σν κέγεζνο ησλ θνπηηψλ ζε θαζεκία απφ ηηο δξαζηεξηφηεηεο δείρλεη ην ζρεηηθφ ρξφλνπ πνπ δαπαλάηαη γηα λα εθηειεζηνχλ νη δξαζηεξηφηεηεο ζε θάζε θιάδν. Κάζε θιάδνο εκθαλίδεηαη ζε θάζε επαλάιεςε, αιιά ε ζρεηηθή έκθαζε κεηαηνπίδεηαη θαζψο ην έξγν πξνρσξάεη απφ ηηο Απαηηήζεηο, ζηελ Αλάιπζε θαη ην ρεδηαζκφ, ζηελ Τινπνίεζε, ζηνλ Έιεγρν θαη ηέινο ζηελ Δγθαηάζηαζε. χιμα 2.2 Ζνασ επαναλθπτικόσ κφκλοσ ηωισ Ο παξαθάησ θαηάινγνο παξνπζηάδεη κεξηθά ζεκαληηθά ραξαθηεξηζηηθά κία επηηπρεκέλεο επαλάιεςεο. Η επαλάιεςε πξέπεη λα έρεη ζαθή θξηηήξηα αμηνιφγεζεο. Η επαλάιεςε έρεη κία ζρεδηαζκέλε δπλαηφηεηα πνπ κπνξεί λα εμαθξηβσζεί. Σελ. 36 από 128

37 Η επαλάιεςε νινθιεξψλεηαη κε έλα κηθξφ νξφζεκν, φπνπ ην απνηέιεζκα ηεο επαλάιεςεο εθηηκάηαη ζε ζρέζε κε ηα αληηθεηκεληθά θξηηήξηα επηηπρίαο απηήο ηεο ζπγθεθξηκέλεο επαλάιεςεο. Καηά ηε δηάξθεηα ηεο επαλάιεςεο, ηα αληηθείκελα ελεκεξψλνληαη (αληηθείκελα εμειίζζνληαη κε ην ζχζηεκα). Καηά ηε δηάξθεηα ηεο επαλάιεςεο, ην ζχζηεκα είλαη νινθιεξσκέλν θαη δνθηκαζκέλν. 2.3 Τϋςςερισ φϊςεισ του κύκλου ζωόσ του ϋργου Η RUP έρεη θαζνξίζεη ηνλ θχθιν δσήο ηνπ έξγνπ πνπ απνηειείηαη απφ ηέζζεξηο θάζεηο. Οη θάζεηο απηέο επηηξέπνπλ ζηελ δηαδηθαζία λα παξνπζηαζηεί ζε πςειφ επίπεδν κε παξφκνην ηξφπν κε έλα έξγν ηχπνπ «θαηαξξάθηε» ( waterfall ), αλ θαη ζηελ νπζία ην θιεηδί ηεο δηαδηθαζίαο έγθεηηαη ζηηο επαλαιήςεηο ηεο αλάπηπμεο πνπ βξίζθνληαη κέζα ζε φιεο ηηο θάζεηο. Δπίζεο, θάζε θάζε έρεη βαζηθφ ζηφρν θαη νξφζεκν ζην ηέινο πνπ ππνδειψλεη φηη ζηφρνο έρεη επηηεπρζεί Φϊςη Έναρξησ (Inception) Ο πξσηαξρηθφο ζηφρνο είλαη λα εμεηάζνπκε ην ζχζηεκα θαηάιιεια σο βάζε γηα ηελ επηθχξσζε ηεο αξρηθήο θνζηνιφγεζεο θαη ηνπ πξνυπνινγηζκνχ. ε απηή ηε θάζε εγθαζίζηαηαη ην επηρεηξεκαηηθφ ελδηαθέξνλ πνπ πεξηιακβάλεη ην πιαίζην ησλ επηρεηξήζεσλ, παξάγνληεο επηηπρίαο (αλακελφκελα έζνδα, ε αλαγλψξηζε ηεο αγνξάο, θ.ιπ.), θαζψο θαη νηθνλνκηθέο πξνβιέςεηο. Γηα ηελ νινθιήξσζε ηνπ επηρεηξεκαηηθνχ ελδηαθέξνληνο δεκηνπξγνχληαη έλα βαζηθφ κνληέιν πεξίπησζεο ρξήζεο, ην ζρέδην ηνπ έξγνπ, ε αξρηθή εθηίκεζε ησλ θηλδχλσλ θαη ε πεξηγξαθή ηνπ έξγνπ (νη θεληξηθέο απαηηήζεηο ηνπ έξγνπ, νη πεξηνξηζκνί θαη ηα βαζηθά ραξαθηεξηζηηθά ηνπ). Μεηά ηελ νινθιήξσζε ησλ παξαπάλσ, ην έξγν ειέγρεηαη κε βάζε ηα αθφινπζα θξηηήξηα: χκπησζε ησλ ελδηαθεξνκέλσλ κεξψλ ζρεηηθά κε ηνλ νξηζκφ ηνπ πεδίνπ εθαξκνγήο θαη ηηο εθηηκήζεηο ηνπ θφζηνπο θαη ηνπ ρξνλνδηαγξάκκαηνο. Καηαλφεζε απαηηήζεσλ, φπσο απνδεηθλχεηαη απφ ηελ πηζηφηεηα ησλ πξσηνγελψλ πεξηπηψζεσλ ρξήζεο. Σελ. 37 από 128

38 Αμηνπηζηία ησλ εθηηκήζεσλ ηνπ θφζηνπο θαη ηνπ ρξνλνδηαγξάκκαηνο, ησλ πξνηεξαηνηήησλ, ησλ θηλδχλσλ θαη ηεο αλαπηπμηαθήο δηαδηθαζίαο. Βάζνο θαη εχξνο θάζε αξρηηεθηνληθνχ πξνηχπνπ πνπ αλαπηχρζεθε. Καζηέξσζε κηαο βάζεο απφ ηελ νπνία ζπγθξίλνπκε ηηο πξαγκαηηθέο δαπάλεο ζε ζρέζε κε ηηο πξνγξακκαηηζκέλεο δαπάλεο. Δάλ ην ζρέδην δελ πεξάζεη ην νξφζεκν απηφ, ην νπνίν νλνκάδεηαη αληηθεηκεληθφ νξφζεκν ηνπ θχθινπ δσήο, κπνξεί είηε λα αθπξσζεί ή λα επαλαιεθζεί αθνχ επαλαζρεδηαζηεί γηα λα αληαπνθξηζεί θαιχηεξα ζηα θξηηήξηα Φϊςη Επιμϋλειασ (Elaboration) Ο πξσηαξρηθφο ζηφρνο είλαη ε άκβιπλζε ησλ θχξησλ ζηνηρείσλ θηλδχλνπ πνπ πξνζδηνξίδνληαη απφ ηελ αλάιπζε έσο ην ηέινο ηεο θάζεο απηήο. Η θάζε ηεο επηκέιεηαο είλαη, φηαλ ην έξγν αξρίδεη λα παίξλεη κνξθή. ε απηή ηε θάζε έρνπκε ηε domain αλάιπζε θαη ε αξρηηεθηνληθή ηνπ ζρεδίνπ παίξλεη ηε βαζηθή κνξθή ηεο. Η θάζε απηή πξέπεη λα πεξάζεη ην νξφζεκν ηνπ θχθινπ δσήο ηεο αξρηηεθηνληθήο πνπ αληαπνθξίλεηαη ζηα παξαθάησ παξαδνηέα: Έλα κνληέιν πεξίπησζεο ρξήζεο (use case model) ζην νπνίν νη πεξηπηψζεηο ρξήζεο θαη νη ραξαθηήξεο (actors) έρνπλ πξνζδηνξηζηεί θαη νη πεξηζζφηεξεο πεξηγξαθέο πεξηπηψζεσλ ρξήζεο έρνπλ αλαπηπρζεί. Σν κνληέιν ηεο πεξίπησζεο ρξήζεο ζα πξέπεη λα νινθιεξσζεί θαηά 80%. Μία πεξηγξαθή ηεο αξρηηεθηνληθήο ηνπ ινγηζκηθνχ ζε κία δηαδηθαζία αλάπηπμεο ζπζηεκάησλ ινγηζκηθνχ. Μία εθηειέζηκε αξρηηεθηνληθή πνπ πξαγκαηνπνηεί αξρηηεθηνληθά ζεκαληηθέο πεξηπηψζεηο ρξήζεο. Δπηρεηξεζηαθέο ππνζέζεηο θαη θαηάινγνο θηλδχλσλ πνπ αλαζεσξνχληαη. Έλα ζρέδην αλάπηπμεο ηνπ ζπλφινπ ηνπ έξγνπ. Πξσηφηππα πνπ κεηξηάδνπλ εκθαλψο θάζε πξνζδηνξηζκέλν ηερληθφ θίλδπλν. Σελ. 38 από 128

39 Δάλ ην ζρέδην δελ κπνξεί λα πεξάζεη απηφ ην νξφζεκν, ππάξρεη αθφκε ρξφλνο γηα λα κπνξέζεη λα αθπξσζεί ή λα επαλαζρεδηαζηεί. Ωζηφζν, κεηά ηε ιήμε απηήο ηεο θάζεο, ην έξγν κεηαβαίλεη ζε κία πςεινχ θηλδχλνπ ιεηηνπξγία φπνπ νη αιιαγέο είλαη πνιχ πην δχζθνιεο θαη επηδήκηεο φηαλ γίλνληαη. Η βαζηθή domain αλάιπζε γηα ηελ επηκέιεηα είλαη ε αξρηηεθηνληθή ηνπ ζπζηήκαηνο Φϊςη Καταςκευόσ (Construction) Ο πξσηαξρηθφο ζηφρνο είλαη ε δεκηνπξγία ηνπ ζπζηήκαηνο ινγηζκηθνχ. ε απηή ηε θάζε, ην θχξην ελδηαθέξνλ επηθεληξψλεηαη ζηελ αλάπηπμε ησλ ζηνηρείσλ (components) θαη ησλ άιισλ ραξαθηεξηζηηθψλ ηνπ ζπζηήκαηνο. Απηή είλαη ε θάζε ζηελ νπνία ιακβάλεη ρψξα ην κεγαιχηεξν κέξνο ηεο θσδηθνπνίεζεο. ε κεγάια έξγα, αξθεηέο επαλαιήςεηο θαηαζθεπήο κπνξεί λα αλαπηπρζνχλ ζε κηα πξνζπάζεηα λα δηαηξεζνχλ νη πεξηπηψζεηο ρξήζεο ζε δηαρεηξίζηκα ηκήκαηα πνπ παξάγνπλ απνδεδεηγκέλα πξσηφηππα. Η θάζε απηή παξάγεη ηελ πξψηε εμσηεξηθή έθδνζε ηνπ ινγηζκηθνχ. Σν ζπκπέξαζκα ηεο ραξαθηεξίδεηαη απφ ην νξφζεκν ηεο αξρηθήο επηρεηξεζηαθήο δπλαηφηεηαο Φϊςη Μετϊβαςησ (Transition) Ο πξσηαξρηθφο ζηφρνο είλαη «δηέιεπζε» ηνπ ζπζηήκαηνο απφ ηελ αλάπηπμε ζηελ παξαγσγή, ηε δηάζεζή ηνπ θαη ηελ θαηαλφεζε ηνπ απφ ηνλ ηειηθφ ρξήζηε. Οη δξαζηεξηφηεηεο ηεο θάζεο απηήο πεξηιακβάλνπλ ηελ θαηάξηηζε ησλ ηειηθψλ ρξεζηψλ θαη ζπληεξεηψλ θαη δνθηκέο beta ηνπ ζπζηήκαηνο γηα λα επηθπξσζεί 2.4 H RUP ωσ πλαύςιο διαδικαςύασ Η RUP είλαη πεξηεθηηθή θαη πιήξεο. Παξέρεη ιεπηνκεξή βήκαηα δξαζηεξηνηήησλ, αληηθεηκέλσλ, πξνηχπσλ, θαηεπζπληήξησλ γξακκψλ, ειέγρσλ, θαη παξαδεηγκάησλ. Ωζηφζν, ε ζθνπηά «έλα κέγεζνο γηα φινπο» δελ ηζρχεη ζε κία δηαδηθαζία αλάπηπμεο ινγηζκηθνχ. Έηζη, ε RUP ζρεδηάζηεθε ζαλ πιαίζην Σελ. 39 από 128

40 δηαδηθαζίαο απφ ην νπνίν ζα κπνξνχζαλ λα πξνθχςνπλ πξνζαξκνζκέλεο δηαδηθαζίεο ζχκθσλα κε ηηο εθάζηνηε απαηηήζεηο ηνπ ζπζηήκαηνο πινπνίεζεο. ηελ πξαγκαηηθφηεηα, εθηφο απφ θαζνδήγεζε αλάπηπμεο ινγηζκηθνχ, ε RUP πεξηέρεη δηαδηθαζία θαζνδήγεζεο πξνζαξκνγήο. Με άιια ιφγηα, ε RUP πεξηέρεη ιεπηνκεξείο πιεξνθνξίεο γηα ην πψο πξέπεη λα πξνζαξκνζηεί ε RUP γηα έλα ζπγθεθξηκέλν έξγν, είδνο ιχζεο ή νξγαληζκφ. Η δηαδηθαζία θαζνδήγεζεο πξνζαξκνγήο παξέρεηαη απφ ηνλ θιάδν Πεξηβάιινλ ηεο RUP. 2.5 Περύληψη ην θεθάιαην απηφ παξείρακε κηα ζχληνκε εηζαγσγή γηα ηελ Δπαλαιεπηηθή Δλνπνηεκέλε Γηαδηθαζία (Rational Unified Process, RUP), ζπκπεξηιακβαλνκέλεο ηεο κεραληθήο ινγηζκηθνχ βέιηηζησλ πξαθηηθψλ απφ ηηο νπνίεο πξνέξρεηαη, ηηο βαζηθέο έλλνηεο πνπ ρξεζηκνπνηνχληαη γηα ηελ πεξηγξαθή ηεο θαη ηελ ππνζηήξημε πνπ παξέρεηαη γηα ηελ πξνζαξκνγή ζε απηή. Δλ νιίγνηο, ε RUP ζπιιακβάλεη ηελ αλάπηπμε ινγηζκηθνχ βέιηηζησλ πξαθηηθψλ ζε κηα κνξθή πνπ κπνξεί λα πξνζαξκνζηεί γηα έλα επξχ θάζκα ζθνπψλ. ην επφκελν θεθάιαην αλαιχνπκε ηε κεζνδνινγία ICONIX θαη ηα πιενλεθηήκαηα πνπ παξνπζηάδεη έλαληη ηεο RUP, θαζψο θαη ην ιφγσ πνπ ηειηθά επηιέρηεθε γηα ηελ αλάπηπμε ηεο εθπαηδεπηηθήο καο εθαξκνγήο «Online Σνπξηζηηθφ Γξαθείν». Σελ. 40 από 128

41 Κεφϊλαιο 3: Ειςαγωγό ςτη μεθοδολογύα ICONIX χιμα 3.1 Μζκοδοσ ICONIX Μζκοδοσ ICONIX ςε λεπτομερειακι ροι εργαςίασ Θεσξεηηθά, θάζε πηπρή ηεο UML είλαη δπλεηηθά ρξήζηκε, αιιά ζηελ πξάμε, πνηέ δελ ππάξρεη αξθεηφο ρξφλνο γηα λα γίλεη ε κνληεινπνίεζε, ε αλάιπζε, θαη ν ζρεδηαζκφο. Πάληα ππάξρεη πίεζε απφ ηε δηνίθεζε γηα κεηάβαζε ζε θψδηθα, γηα λα μεθηλήζεη ε θσδηθνπνίεζε πξφσξα επεηδή ε πξφνδνο ησλ έξγσλ ινγηζκηθνχ ηείλεη λα κεηξάηαη κε ην πφζν θψδηθαο έρεη γξαθηεί. Η κεζνδνινγία ICONIX, φπσο θαίλεηαη θαη ζην ρήκα 3.1 παξαπάλσ, είλαη κηα κηληκαιηζηηθή, εμειηγκέλε πξνζέγγηζε πνπ εζηηάδεη ζε εθείλε ηελ πεξηνρή πνπ βξίζθεηαη αλάκεζα ζηηο πεξηπηψζεηο ρξήζεο θαη ηνλ θψδηθα. Έκθαζε δίλεηαη ζην ηη πξέπεη λα ζπκβεί ζε εθείλν ην ζεκείν ηνπ θχθινπ δσήο φπνπ μεθηλάκε: έρνπκε μεθηλήζεη κε νξηζκέλεο πεξηπηψζεηο ρξήζεο θαη ηψξα ζα πξέπεη λα θάλνπκε θαιή αλάιπζε θαη ζρεδηαζκφ. ην θεθάιαην απηφ πεξηγξάθνπκε ηηο βαζηθέο αξρέο ηεο κεζνδνινγίαο ICONIX, ηε κεζνδνινγία πνπ ηειηθά ρξεζηκνπνηήζεθε γηα ηελ αλάπηπμε ηεο εθαξκνγήο «Online Σνπξηζηηθφ Γξαθείν». 3.1 Λύγα λόγια για τη μϋθοδο ICONIX H ICONIX είλαη κία κεζνδνινγία αλάπηπμεο ινγηζκηθνχ πνπ πξνυπάξρεη ηεο RUP, ηνπ Extreme Programming (XP) θαη ηεο Agile αλάπηπμεο ινγηζκηθνχ. Όπσο Σελ. 41 από 128

42 θαη ε RUP, ε κεζνδνινγία ICONIX είλαη UML, Use Case-driven αιιά πην ειαθξηά απφ ηελ RUP. Απηφ πνπ μερσξίδεη ηε κεζνδνινγία ICONIX είλαη φηη ρξεζηκνπνηεί ηα δηαγξάκκαηα επξσζηίαο (robustness diagrams) ηεο UML, κία κέζνδν γεθχξσζεο ηνπ θελνχ κεηαμχ ηεο αλάιπζεο θαη ηνπ ζρεδηαζκνχ. Η αλάιπζε επξσζηίαο πεξηνξίδεη ηελ αζάθεηα ζηηο πεξηγξαθέο πεξηπηψζεσλ ρξήζηε, εμαζθαιίδνληαο φηη έρνπλ ζπληαρζεί ζην πιαίζην ελφο ζπλνδεπηηθνχ domain model. Η δηαδηθαζία απηή θαζηζηά ηηο πεξηπηψζεηο ρξήζεο πνιχ πην εχθνιεο ζην ζρεδηαζκφ, ηνλ έιεγρν θαη ηελ εθηίκεζε. Οπζηαζηηθά ε κεζνδνινγία ICONIX ρξεζηκνπνηεί ηνλ «ινγηθφ» ππξήλα ηεο αλάιπζεο θαη ηνπ ζρεδηαζκνχ ηεο δηαδηθαζίαο κνληεινπνίεζεο. Ωζηφζν, ε κεζνδνινγία κπνξεί λα ρξεζηκνπνηεζεί ρσξίο κεγάιε πξνζαξκνγή ζε έξγα πνπ αθνινπζνχλ δηαθνξεηηθή πνξεία δηαρείξηζεο. 3.2 Μϋθοδοσ ICONIX ςτη Θεωρύα ηελ ελφηεηα απηή παξέρνπκε κηα επηζθφπεζε ηεο κεζνδνινγίαο ICONIX, δείρλνληαο πσο φιεο νη δξαζηεξηφηεηεο ηαηξηάδνπλ κεηαμχ ηνπο. Θα μεθηλήζνπκε κε κηα άπνςε πςεινχ επηπέδνπ - κηα ζπλνιηθή εηθφλα ηεο επηζθφπεζεο - θαη ζηε ζπλέρεηα ζα εμεηάζνπκε θάζε δξαζηεξηφηεηα κε πεξηζζφηεξεο ιεπηνκέξεηεο. Καζψο πεξπαηάηε κέζα απφ ηελ επηζθφπεζε, κπνξνχκε λα αλαπέκπνπκε ζην ρήκα 3.1, ψζηε λα βιέπνπκε πψο ην θάζε κέξνο εληάζζεηαη ζηε ζπλνιηθή δηαδηθαζία Επιςκόπηςη: Μετϊβαςη από τισ περιπτώςεισ χρόςησ ςτον κώδικα Σν δηάγξακκα ζηελ αξρή απηνχ ηνπ θεθαιαίνπ παξέρεη κηα επηζθφπεζε ηεο κεζνδνινγίαο ICONIΥ. Όπσο βιέπνπκε απφ ην δηάγξακκα, ε κεζνδνινγία ICONIX ρσξίδεηαη ζε δπλακηθέο θαη ζηαηηθέο ξνέο εξγαζίαο, νη νπνίεο είλαη ηδηαίηεξα επαλαιεπηηθέο: κπνξεί λα ρξεηαζηεί λα γίλεη ρξήζε ηεο κεζνδνινγίαο ICONIX, γηα κηα κηθξή παξηίδα ησλ πεξηπηψζεσλ ρξήζεο (ίζσο ρξήζε ζε κεξηθά παθέηα φπνπ δελ πεξηιακβάλνπλ κεγάιε ιεηηνπξγηθφηεηα δεδνκέλνπ φηη θάζε πεξίπησζε ρξήζεο απνηειείηαη απφ δχν παξαγξάθνπο), πεξλψληαο απφ φιε ηε Σελ. 42 από 128

43 δηαδξνκή κέρξη ηνλ πεγαίν θψδηθα θαη ηηο κνλάδεο ειέγρνπ. Γηα ην ιφγν απηφ, ε κεζνδνινγία ICONIX είλαη θαηάιιειε γηα επέιηθηα (agile) έξγα, φπνπ ε άκεζε αλαηξνθνδφηεζε είλαη αλαγθαία ζε παξάγνληεο φπσο νη απαηηήζεηο, ν ζρεδηαζκφο θαη νη εθηηκήζεηο. Αο δνχκε ηα βήκαηα απφ ηα νπνία απαξηίδεηαη ε πινπνίεζε ηνπ πξνγξάκκαηνο καο. (Αλαιπηηθή πεξηγξαθή θαη παξαδείγκαηα δίλνληαη ζηα επφκελα θεθάιαηα). Όπσο θαη κε θάζε έξγν, ζε θάπνην ζηάδην ζηελ αξρή μεθηλάκε ηελ εμεξεχλεζε θαη ηνλ θαζνξηζκφ ησλ απαηηήζεσλ. εκεηψζηε φηη ζε θάζε ζηάδην ππάξρεη έλαο βαζκφο παξαιιειηζκνχ, έηζη ψζηε φιεο νη δξαζηεξηφηεηεο θαηά ηε θάζε θαζνξηζκνχ απαηηήζεσλ επηθαιχπηνληαη θαη ζηξψλνληαη κέρξη λα είλαη πιήξσο έηνηκεο Απαιτήςεισ (Requirements) Τπάξρνπλ ηέζζεξα βήκαηα πνπ αθνινπζνχληαη θαηά ηε δηάξθεηα ηεο ελφηεηαο απαηηήζεηο. i. Λεηηνπξγηθέο απαηηήζεηο(functional requirements). Οξίδνπκε ηη ζα πξέπεη λα θάλεη ην ζχζηεκα καο. Αλάινγα κε ηνλ ηξφπν πνπ είλαη νξγαλσκέλν ην ζχζηεκά καο είηε ζα πξέπεη λα ζπκκεηέρνπκε ζηε δεκηνπξγία-εμεχξεζε ησλ ιεηηνπξγηθψλ απαηηήζεσλ ή νη απαηηήζεηο ζα εθδίδνληαη απφ ηνλ πειάηε ή κία νκάδα αλαιπηψλ επηρεηξήζεσλ. ii. Domain κνληεινπνίεζε (Domain modeling). Καηαλφεζε ησλ πξνβιεκάησλ κε μεθάζαξν ηξφπν. iii. Απαηηήζεηο ζπκπεξηθνξάο (behavioral requirements). Καζνξίδνπκε ην πψο ν ρξήζηεο θαη ην ζχζηεκα ζα αιιειεπηδξνχλ (δειαδή γξάθνπκε ηηο πξψηεο πξφρεηξεο πεξηπηψζεηο ρξήζεο). Δπίζεο μεθηλάκε κε έλα πξσηφηππν ηνπ γξαθηθνχ πεξηβάιινληνο θαη εληνπίδνπκε φιεο ηηο πεξηπηψζεηο ρξήζεο πνπ ζα πινπνηήζνπκε, ή ηνπιάρηζηνλ θαηαιήγνπκε ζε κία πξψηε ιίζηα κε πεξηπηψζεηο ρξήζεο, φπνπ ινγηθά ζα Σελ. 43 από 128

44 πεξηκέλνπκε λα αιιάμνπλ φζν αλαιχνπκε ηηο απαηηήζεηο ζε κεγαιχηεξν βάζνο. iv. Οξόζεκν 1: Δπαλεμέηαζε απαηηήζεσλ (Requirements Review). Βεβαησλφκαζηε φηη ην θείκελν πνπ αθνξά ηηο πεξηπηψζεηο ρξήζεο ηαηξηάδεη κε ηηο πξνζδνθίεο ηνπ πειάηε. εκεηψλεηε, φηη ελδέρεηαη λα ρξεηαζηεί επαλεμέηαζε ησλ πεξηπηψζεσλ ρξήζεο ζε κηθξφηεξεο παξηίδεο. ηε ζπλέρεηα ζε θάζε επαλάιεςε (ησλ κηθξφηεξσλ παξηίδσλ πεξηπηψζεσλ ρξήζεο) θάλνπκε ηα αθφινπζα Ανάλυςη/ Προκαταρκτική Μελέτη (Preliminary Design) i. Αλάιπζε Δπξσζηίαο(Robustness Analysis). ρεδηαζκφο ελφο δηαγξάκκαηνο επξσζηίαο (robustness diagram) (κηα «εηθφλα αληηθεηκέλνπ» απφ ηα βήκαηα κίαο πεξίπησζεο ρξήζεο), αλαζπληάζζνληαο ην θείκελν ηεο πεξίπησζεο ρξήζεο θαζψο πξνρσξάκε. ii. Δλεκέξσζε ηνπ κνληέινπ domain θαζψο γξάθνπκε ηελ πεξίπησζε ρξήζεο θαη κε βάζε ην δηάγξακκα επξσζηίαο. Δδψ αλαθαιχπηνπκε θιάζεηο πνπ ιείπνπλ, δηνξζψλνπκε αζάθεηεο, θαη πξνζζέηνπκε ραξαθηεξηζηηθά ζηα domain αληηθείκελα (objects) (π.ρ., δηαπηζηψλνπκε φηη έλα αληηθείκελν Ξελνδνρείν έρεη έλα φλνκα, δηεχζπλζε, πεξηγξαθή, θ.ιπ.). iii. Ολνκάδνπκε φιεο ηηο ινγηθέο ιεηηνπξγίεο ηνπ ινγηζκηθνχ (ειεγθηέο, controllers) πνπ ρξεηάδνληαη γηα ηε ιεηηνπξγία ηεο πεξίπησζεο ρξήζεο. iv. Αλαζχληαμε ησλ πξψησλ πξφρεηξσλ πεξηπηψζεσλ ρξήζεο. v. Οξόζεκν 2: Πξνθαηαξθηηθή Δπηζθόπεζε ρεδηαζκνύ (Preliminary Design Review, PDR) Λεπτομερήσ Σχεδιαςμόσ (Detailed Design) i. Γηαγξάκκαηα Αθνινπζίαο (Sequence Diagrams). ρεδηαζκφο ελφο δηαγξάκκαηνο αθνινπζίαο (έλα δηάγξακκα αθνινπζίαο γηα θάζε πεξίπησζε ρξήζεο) γηα λα δείμνπκε κε ιεπηνκέξεηα πψο ζα Σελ. 44 από 128

45 ii. iii. iv. πινπνηήζνπκε ηελ πεξίπησζε ρξήζεο. Η πξσηαξρηθή ιεηηνπξγία ησλ δηαγξακκάησλ αθνινπζίαο είλαη λα θαηαλεκεζεί ε ζπκπεξηθνξά ζηηο θιάζεηο καο. Δλεκέξσζε ηνπ domain model θαζψο ζρεδηάδνπκε ην δηάγξακκα αθνινπζίαο θαη πξνζζέηνπκε κεζφδνπο ζηα domain objects. Απφ απηφ ην ζηάδην, ηα domain objects είλαη πξαγκαηηθέο domain θιάζεηο, ή νληφηεηεο, θαη ην domain model πξέπεη λα γίλεη γξήγνξα έλα ζηαηηθφ κνληέιν, ή δηάγξακκα θιάζεο - έλα θξίζηκν κέξνο ηνπ ιεπηνκεξνχο ζρεδηαζκνχ ζαο. Καζαξηζκόο ηνπ ζηαηηθνύ κνληέινπ. Οξόζεκν 3: Κξίζηκε Δπηζθόπεζε ρεδηαζκνύ (Critical Design Review, CDR) Υλοποίηςη (Implementation) i. Κσδηθνπνίεζε/έιεγρνο κνλάδσλ (unit testing). Γξάθνπκε ηνλ θψδηθα θαη ηηο κνλάδεο ειέγρνπ. (Ή, αλάινγα κε ηηο πξνηηκήζεηο καο, γξάθνπκε ηηο κνλάδεο ειέγρνπ θαη έπεηηα ηνλ θψδηθα). ii. Οινθιήξσζε θαη έιεγρνο ζελαξίνπ. Βαζίδνπκε ηνπο ειέγρνπο νινθιήξσζεο πάλσ ζηηο πεξηπηψζεηο ρξήζεο, ψζηε λα ειέγρνπκε ηφζν ην βαζηθφ ζελάξην φζν θαη ηα ελαιιαθηηθά. iii. Δθηεινχκε επαλεμέηαζε ηνπ θψδηθα θαη κία ελεκέξσζε ηνπ κνληέινπ γηα λα εηνηκαζηνχκε γηα ηνλ επφκελν θχθιν αλάπηπμεο. 3.3 Χρόςη τησ ICONIX για την ανϊπτυξη τησ εφαρμογόσ μασ ηελ εθπαηδεπηηθή εθαξκνγή «Online Σνπξηζηηθφ Γξαθείν» πνπ αλαπηχμακε ρξεζηκνπνηήζακε ηε κέζνδν ICONIX έλαληη ηεο RUP γηα ηνπο θάησζη ιφγνπο: Η κεζνδνινγία ICONIX είλαη πην «ειαθξηά» ζαλ κέζνδνο απ φηη ηελ RUP. Η ICONIX ρξεζηκνπνηεί κφλν ηέζζεξα δηαγξάκκαηα ηεο UML ζε κία ζχληνκε δηαδηθαζία πνπ θηάλεη ακέζσο απφ ηηο απαηηήζεηο ζηνλ θψδηθα. Δπνκέλσο θιηκαθψλεηαη γξεγνξφηεξα απφ ηελ RUP. Σελ. 45 από 128

46 Η ICONIX κεζνδνινγία ρξεζηκνπνηεί ηζρπξνχο θαλφλεο ζηε δηάξθεηα ηεο ζπιινγήο θαη αλαθάιπςεο απαηηήζεσλ, ψζηε ην ζχζηεκα λα βαζίδεηαη απφ ηελ αξρή ζε ζαθήο θαη μεθάζαξεο απαηηήζεηο πνπ είλαη πινπνηήζηκεο θαη δελ ζέηνπλ ζε θίλδπλν ηελ κεηέπεηηα πνξεία ηεο εθαξκνγήο (π.ρ. ε δηαπίζησζε φηη ηειηθά νη πειάηεο ζέιαλε θάηη άιιν θαη νη πξνγξακκαηηζηέο ιφγσ ιαλζαζκέλσλ θαη ειιηπψλ απαηηήζεσλ απέδσζαλ ιαλζαζκέλε ιεηηνπξγηθφηεηα ζην ζχζηεκα). Η κεζνδνινγία ICONIX παξέρεη επαξθή ηεθκεξίσζε απαηηήζεσλ θαη ζρεδηαζκνχ ψζηε λα απνθεχγεηαη ε γλσζηή πεξίπησζε ηεο παξάιπζεο απφ αλάιπζε (analysis paralysis) (αλαθέξεηαη ιεπηνκεξψο παξαθάησ). Σα δηαγξάκκαηα επξσζηίαο πνπ ρξεζηκνπνηεί ε κεζνδνινγία ICONIX γηα ηελ κεηάβαζε απφ ηελ αλάιπζε ζην ζρεδηαζκφ είλαη ηα πην θαηάιιεια απφ νπνηαδήπνηε άιια δηαγξάκκαηα. Η ICONIX είλαη πην επέιηθηε θαη απνηειεζκαηηθή ζε κηθξέο εθαξκνγέο, πνπ νη απαηηήζεηο είλαη ζρεηηθά μεθάζαξεο απφ ηελ αξρή θαη είλαη πιήξσο απνηειεζκαηηθή θαη ηδαληθή ζε εθπαηδεπηηθέο εθαξκνγέο φπσο ε δηθή καο. Η κεζνδνινγία RUP απφ ηελ άιιε πιεπξά, είλαη ηδαληθή ζε κεγάιεο θαη πνιχπινθεο εθαξκνγέο φπνπ δίλεη ηε δπλαηφηεηα ηεο πξνζαξκνγήο αλάινγα κε ην εθάζηνηε ζχζηεκα. Δπίζεο ε RUP αλ θαη πεξηζζφηεξν πνιχπινθε ζαλ δηαδηθαζία εγγπάηαη έλα ζσζηφ ζρεδηαζκφ ηεο εθαξκνγήο καο, φπνπ είλαη πην εχθνια λα αλαδηακνξθσζεί αλά πάζα ζηηγκή. 3.4 Ανϊλυςη Παρϊλυςη (Analysis Paralysis) Ο φξνο «αλάιπζε παξάιπζε» ή «παξάιπζε ηεο αλάιπζεο" αλαθέξεηαη ζε ππεξ-αλάιπζε (ή παξαπάλσ ζθέςεηο) κηαο θαηάζηαζεο, έηζη ψζηε κηα απφθαζε ή ελέξγεηα δελ ιακβάλεηαη πνηέ, παξαιχνληαο ην απνηέιεζκα. Μία απφθαζε κπνξεί λα ζεσξεζεί σο ππεξβνιηθά πεξίπινθε, κε πάξα πνιιέο ιεπηνκεξείο επηινγέο, έηζη ψζηε ε επηινγή δελ πξαγκαηνπνηείηαη πνηέ, αληί λα δνθηκαζηεί θάηη θαη λα αιιάμεη αλ ην πξφβιεκα είλαη ζεκαληηθφ. Έλα άηνκν κπνξεί λα επηδηψθεη ηε βέιηηζηε ή "ηέιεηα" αξρηθή ιχζε, θαη λα θνβάηαη λα αλαιάβεη νπνηαδήπνηε Σελ. 46 από 128

47 απφθαζε πνπ ζα κπνξνχζε λα νδεγήζεη ζε ιαλζαζκέλα απνηειέζκαηα, φζν βξίζθεηαη ζην δξφκν γηα κία θαιχηεξε ιχζε. ηελ αλάπηπμε ινγηζκηθνχ, ε αλάιπζε παξάιπζε εθδειψλεηαη ζπλήζσο κε ππεξβνιηθά κεγάιεο θάζεηο ζρεδηαζκνχ ηνπ έξγνπ, ηεο ζπιινγήο απαηηήζεσλ, ηνπ ζρεδηαζκνχ ηνπ πξνγξάκκαηνο θαη ηεο κνληεινπνίεζεο δεδνκέλσλ, κε ηε δεκηνπξγία κηθξήο ή θαζφινπ πξφζζεηεο αμίαο απφ απηά ηα βήκαηα. Όηαλ επεθηαζνχλ ππεξβνιηθά ζην ρξνληθφ πιαίζην, ηέηνηεο δηαδηθαζίεο έρνπλ ηελ ηάζε λα ηνλίδνπλ ηελ νξγαλσηηθή (δειαδή, γξαθεηνθξαηηθή) πηπρή ηνπ ινγηζκηθνχ, ελψ απνθιίλνπλ απφ ηε ιεηηνπξγηθή πηπρή ηνπ (δεκηνπξγία πξνζηηζέκελεο αμίαο). Η αλάιπζε παξάιπζε ζπρλά ζπκβαίλεη ιφγσ ηεο έιιεηςεο εκπεηξίαο εθ κέξνπο ησλ αλαιπηψλ επηρεηξεκαηηθψλ ζπζηεκάησλ, ησλ δηαρεηξηζηψλ έξγσλ ή ησλ πξνγξακκαηηζηψλ, θαζψο θαη ηεο έιιεηςεο κηαο απζηεξήο θαη ηππηθήο νξγαλσηηθήο θνπιηνχξαο. Η αλάιπζε παξάιπζε είλαη έλα παξάδεηγκα ελφο αληη-πξφηππν. Οη επέιηθηεο θαη γξήγνξεο (agile) κεζνδνινγίεο αλάπηπμεο ινγηζκηθνχ επηδηψθνπλ λα απνθεπρζεί ε παξάιπζε ηεο αλάιπζε κε ηελ πξνψζεζε ελφο επαλαιεπηηθνχ θχθινπ εξγαζηψλ πνπ δίλεη έκθαζε ζηελ εξγαζία ησλ πξντφλησλ πάλσ απφ ηηο πξνδηαγξαθέο ηνπ πξντφληνο. 3.5 Περύληψη ε απηφ ην θεθάιαην αλαθεξζήθακε πεξηιεπηηθά ζηε κέζνδν ICONIX, ζηα βήκαηα πνπ ηελ απαξηίδνπλ θαη αλαθέξακε γηαηί επηιέμακε ηειηθά απηή ηε κέζνδν γηα ηελ αλάπηπμε ηνπ πξνγξάκκαηφο καο ζπγθξηηηθά κε ηελ RUP κεζνδνινγία. ηα επφκελα θεθάιαηα αθνινπζεί αλαιπηηθή αλαθνξά ησλ βεκάησλ ηεο κεζφδνπ ICONIX θαη παξαδείγκαηα απφ ηελ εθαξκνγή «Online Σνπξηζηηθφ Γξαθείν» πνπ αλαπηχμακε. Σελ. 47 από 128

48 Κεφϊλαιο 4: Domain Modeling χιμα 4.1 Μζκοδοσ ICONIX ςε λεπτομερειακι ροι εργαςίασ (Domain Modeling) ε φια ζρεδφλ ηα έξγα (projects) ηεο πιεξνθνξηθήο, ην πξφβιεκα ηεο πξνβιεκαηηθήο επηθνηλσλίαο είλαη αλεμέιεγθην, αιιά ζπάληα παξαηεξείηαη, επεηδή φινη λνκίδνπλ φηη κηινχλ ηελ ίδηα γιψζζα. Απηφ φκσο δελ ηζρχεη. Σν έλα άηνκν ιέεη "θξηηηθή βηβιίνπ" θαη άιια άηνκα ην εξκελεχνπλ απηφ σο έλλνηα «ζπληαθηηθή αλαζθφπεζε» (κηα θξηηηθή πνπ γξάθηεθε απφ κηα εθδνηηθή νκάδα), ελψ άιινη κπνξεί λα ην εξκελεχζνπλ ππφ ηελ έλλνηα ηεο «αμηνιφγεζεο ηνπ πειάηε» (κηα θξηηηθή πνπ γξάθηεθε απφ έλαλ πειάηε θαη δεκνζηεχηεθε ζην site). Σα απνηειέζκαηα κπνξεί λα είλαη - θαη ζπρλά είλαη - θαηαζηξνθηθά δεδνκέλνπ φηη ην ζχζηεκα αλαπηχζζεηαη αλάινγα κε ηελ εξκελεία πνπ δίλεη ν θαζέλαο ζηηο δηαθνξεηηθέο απαηηήζεηο θαη ην ζρεδηαζκφ. Σν domain model είλαη έλα δσληαλφ αληηθείκελν θαη έλα αληηθείκελν ζπλεξγαζίαο. Βειηηψλεηαη θαη αλαπξνζαξκφδεηαη ζε φιε ηε δηάξθεηα ηνπ έξγνπ, ψζηε λα αληηθαηνπηξίδεη πάληα ηελ ηξέρνπζα αληίιεςε ηνπ ρψξνπ ηνπ πξνβιήκαηνο. Σελ. 48 από 128

49 ε απηφ ην θεθάιαην ζα εμεηάζνπκε ην domain modeling, ην νπνίν απνζθνπεί ζηελ επίιπζε ηνπ πξνβιήκαηνο ηεο πξνβιεκαηηθήο επηθνηλσλίαο ζηα έξγα κε ηε ζέζπηζε ελφο θνηλνχ ιεμηινγίνπ πνπ ραξηνγξαθεί ην ρψξν ηνπ πξνβιήκαηνο. 4.1 Τι εύναι το domain modeling; Όπσο κφιηο αλαθέξακε, έλα domain model είλαη, ζηελ νπζία, έλα γισζζάξη ηνπ έξγνπ: έλα «δσληαλφ» ιεμηθφ φισλ ησλ φξσλ πνπ ρξεζηκνπνηνχληαη ζην έξγν καο. Όκσο, έλα domain model είλαη θαιχηεξν απφ έλα γισζζάξη ηνπ έξγνπ, γηαηί δείρλεη γξαθηθά πψο φινη απηνί νη δηαθνξεηηθνί φξνη ζρεηίδνληαη κεηαμχ ηνπο. ηελ πξάμε πξφθεηηαη γηα έλα απινπνηεκέλν δηάγξακκα θιάζεο (class diagram), κε γξακκέο πνπ ζχξνληαη κεηαμχ ησλ δηαθφξσλ θαηεγνξηψλ (αληηθείκελα domain) γηα λα δείμεη ηε κεηαμχ ηνπο ζπζρέηηζε. Σν κνληέιν domain δείρλεη ηηο ζρέζεηο ηεο ζπλάζξνηζεο (aggregation) θαη ηεο γελίθεπζεο (generalization) (έρεη-έλα θαη είλαηέλα ζρέζεηο) κεηαμχ ησλ domain θιάζεσλ. 4.2 Γιατύ να ξεκινόςουμε από το domain model αντύ των περιπτώςεων χρόςησ Βνεζάεη λα θάλνπκε έλα γξήγνξν πέξαζκα απφ ην domain model ζηελ αξρή ηνπ έξγνπ καο. Όηαλ γξάθνπκε πεξηπηψζεηο ρξήζεο, είλαη δειεαζηηθφ λα ηηο γξάςνπκε αθεξεκέλεο, πςεινχ επηπέδνπ, αφξηζηεο θαη αζαθείο. ηελ πξαγκαηηθφηεηα, ην θείκελφ ησλ πεξηπηψζεσλ ρξήζεο ζα πξέπεη λα ζηεξίδεηαη ζηελ πξαγκαηηθφηεηα, θαη ζα πξέπεη λα είλαη πνιχ θνληά ζην ζχζηεκα πνπ ζα ζρεδηάζνπκε. Με άιια ιφγηα, νη πεξηπηψζεηο ρξήζεο ζα πξέπεη λα γξάθνληαη ζηα πιαίζηα ηνπ κνληέινπ αληηθεηκέλσλ (object model) (δειαδή, ην θείκελν ησλ πεξηπηψζεσλ ρξήζεο πξέπεη λα αλαθέξεηαη ζηα domain objects κε ην φλνκά ηνπο). Με ηνλ ηξφπν απηφ, ζα είκαζηε ζε ζέζε λα ζπλδέζνπκε καδί ηα ζηαηηθά θαη δπλακηθά κέξε ηνπ κνληέινπ, ην νπνίν είλαη δσηηθήο ζεκαζίαο εάλ ζέινπκε ε πξνζπάζεηα ηεο αλάιπζεο θαη ηνπ ζρεδηαζκνχ λα πξνσζείηε απφ ηηο πεξηπηψζεηο ρξήζεο καο. Έηζη πξνηνχ λα γξάςνπκε ηηο πεξηπηψζεηο ρξήζεο καο, πξέπεη λα θαηαιήμνπκε ζε κηα πξψηε πξνζπάζεηα δεκηνπξγίαο ηνπ domain model. Σν Σελ. 49 από 128

50 domain model απνηειεί ην ζεκέιην ηνπ ζηαηηθνχ κέξνπο ηνπ κνληέινπ καο, ελψ νη πεξηπηψζεηο ρξήζεο είλαη ην ζεκέιην ηνπ δπλακηθνχ κέξνπο. Σν ζηαηηθφ ηκήκα πεξηγξάθεη ηε δηάξζξσζε, ελψ ην δπλακηθφ κέξνο πεξηγξάθεη ηε ζπκπεξηθνξά. 4.3 Οδηγύεσ Μοντελοπούηςησ Οη αξρέο πνπ αλαπηχρζεθαλ ζε απηφ ην θεθάιαην ζπλνςίδνληαη ζε κία ιίζηα κε νδεγίεο. 1. Δζηίαζε ζε πξαγκαηηθά Αληηθείκελα. Καηά ηε δεκηνπξγία ελφο domain model, πξέπεη λα επηθεληξσζνχκε ζηνλ πξαγκαηηθφ θφζκν ησλ αληηθεηκέλσλ κέζα ζηα πιαίζηα ηνπ ρψξνπ πξνβιήκαηνο. Πξνζπαζνχκε λα νξγαλψζνπκε ηελ αξρηηεθηνληθή ινγηζκηθνχ καο γχξσ απφ ην πψο κνηάδεη ν πξαγκαηηθφο θφζκνο. Ο πξαγκαηηθφο θφζκνο έρεη ηελ ηάζε λα αιιάδεη ιηγφηεξν ζπρλά απφ ηηο απαηηήζεηο ηνπ ινγηζκηθνχ. 2. Χξεζηκνπνίεζε ησλ ρέζεσλ Γελίθεπζεο (Δίλαη-έλα) θαη πλάζξνηζεο (Έρεη-έλα). Καηά ηε δηάξθεηα ηνπ ρξφλνπ, ζα ζπκπιεξψλνπκε ην domain κνληέιν καο κε λέεο θιάζεηο domain, φπσο θαη φηαλ ηηο εληνπίδνπκε. Θα παξαηεξήζνπκε επίζεο φηη ππάξρνπλ ζρέζεηο (ή ηηο ελψζεηο) κεηαμχ ηνπο-γηα παξάδεηγκα, κηα θξηηηθή Ξελνδνρείνπ αλήθεη ζε έλα Ξελνδνρείν θαη κηα Δληνιή Αγνξάο θαη νη Πηζησηηθέο Κάξηεο είλαη θαη νη δχν απφ ην ίδην είδνο, αθνχ θαη νη δχν είλαη Σξφπνη Πιεξσκψλ. Η πξψηε ζρέζε (Κξηηηθή Ξελνδνρείνπ Ξελνδνρείν) νλνκάδεηαη ζπλάζξνηζε (aggregation) (έρεη-έλα, γηαηί έλα Ξελνδνρείν έρεη κία Κξηηηθή Ξελνδνρείνπ). Η δεχηεξε ζρέζε νλνκάδεηαη γελίθεπζε (generalization) (είλαη-έλα, γηαηί ε Δληνιή Αγνξάο θαη ε Πηζησηηθή Κάξηα είλαη θαη νη δχν Σχπνη Πιεξσκήο). Απηέο νη δχν θαη ε απιή ζρέζε είλαη νη πην θνηλέο ζρέζεηο πνπ ζα ρξεζηκνπνηήζνπκε ζην domain κνληέιν καο. 3. Θέηνπκε ρξνληθό όξην κεξηθώλ νξώλ ζηε κνληεινπνίεζε ηνπ αξρηθνύ domain model. πλίζηαηαη ε θαζηέξσζε ρξνληθνχ νξίνπ γηα ηελ θαηαζθεπή ηνπ αξρηθνχ domain model. Μεξηθέο ψξεο είλαη φζεο ρξεηαδφκαζηε. Γελ ρξεηάδεηαη λα γίλεη ηέιεην έηζη θαη αιιηψο, γη απηφ Σελ. 50 από 128

51 ζπλίζηαηαη λα γίλεηαη γξήγνξα θαη πεξηκέλνπκε φηη ζα ην δηνξζψζνπκε ζηε ζπλέρεηα. Θα αλαθαιχςνπκε αληηθείκελα πνπ ιείπνπλ θαζψο ζα δνπιεχνπκε ηηο πεξηπηψζεηο ρξήζεο θαη ηα δηαγξάκκαηα επξσζηίαο. 4. Οξγαλώλνπκε ηηο θιάζεηο καο γύξσ από θύξηεο Αθαηξέζεηο (Abstractions) ζην ρώξν ηνπ πξνβιήκαηνο. Δίλαη γεληθά ζσζηή πξαθηηθή λα νξγαλψλνπκε ηηο θιάζεηο καο γχξσ απφ θχξηεο αθαηξεηηθέο ελφηεηεο ζην ρψξν ηνπ πξνβιήκαηνο. Πξέπεη λα ζπκφκαζηε φηη ην domain model είλαη ην πξψην δηάγξακκα θιάζεο πνπ γίλεηαη ην ζεκέιην ηεο αξρηηεθηνληθήο ινγηζκηθνχ καο. Απηφ θάλεη ην κνληέιν πην αλζεθηηθφ ζηελ αληηκεηψπηζε ησλ αιιαγψλ. Οξγαλψλνληαο ηελ αξρηηεθηνληθή γχξσ απφ αθαηξέζεηο ηνπ πξαγκαηηθνχ θφζκνπ θάλεη ην κνληέιν πην αλζεθηηθφ ζηελ αληηκεηψπηζε ησλ κεηαβαιιφκελσλ απαηηήζεσλ, θαζψο νη απαηηήζεηο ζπλήζσο αιιάδνπλ ζπρλφηεξα απφ φ, ηη ζηνλ πξαγκαηηθφ θφζκν. 5. Γελ πξέπεη λα κπεξδεύνπκε ην Domain Model κε ην Data Model. Αθφκα θη αλ ηα δηαγξάκκαηα κπνξεί λα κνηάδνπλ, πξέπεη λα ζπκφκαζηε φηη απηφ πνπ κπνξεί λα είλαη κία θαιή πξαθηηθή ζε έλα κνληέιν δεδνκέλσλ (data model) είλαη πηζαλφ λα κελ είλαη θαιή πξαθηηθή ζε έλα δηάγξακκα θιάζεο (class diagram) (θαη αληηζηξφθσο). Οη θιάζεηο είλαη κηθξέο θαη νη πίλαθεο κεγάινη. Έλαο πίλαθαο ζε κηα ζρεζηαθή βάζε δεδνκέλσλ ζρεηίδεηαη ζπρλά κε κηα ζεηξά απφ πξάγκαηα. Αληίζεηα, νη θιάζεηο είλαη θαιχηεξα ζρεδηαζκέλεο αλ απνηεινχλ ζρεηηθά κηθξά παθέηα δεδνκέλσλ θαη ζπκπεξηθνξάο. ε έλα δηάγξακκα θιάζεο, είλαη πηζαλφ φηη ζα έρνπκε κηα θιάζε πνπ δηαρεηξίδεηαη έλαλ πίλαθα βάζεο δεδνκέλσλ θαη κπνξεί λα βξνχκε θαη θάπνηα θιάζε TableManager. Ο ζθνπφο απηψλ ησλ θιάζεσλ ηχπνπ TableManager είλαη λα απνθξχπηνπλ ηηο ιεπηνκέξεηεο ηνπ ζπζηήκαηνο δηαρείξηζεο βάζεο δεδνκέλσλ (DBMS) απφ ηνλ ππφινηπν θψδηθα. 6. Γελ πξέπεη λα κπεξδεύνπκε έλα αληηθείκελν κε έλα πίλαθα βάζεο. Έλα αληηθείκελν αληηπξνζσπεχεη έλα κφλν παξάδεηγκα απφ θάηη. Έλαο πίλαθαο δεδνκέλσλ απνηειεί κηα ζπιινγή απφ ηα Σελ. 51 από 128

52 πξάγκαηα. Γελ ρξεηάδεηαη λα είκαζηε ηφζν θπξηνιεθηηθνί φπσο ζηνλ θφζκν ηνπ Enterprise JavaBeans (EJB), φπνπ κία νληφηεηα bean αληηπξνζσπεχεη, ζπλήζσο, κηα νιφθιεξε γξακκή ζε έλα πίλαθα. Οη θιάζεηο domain είλαη παξφκνηεο. Αλ πνχκε κία θιάζε Ξελνδνρείν, ηφηε δελ ζεκαίλεη έλαο πίλαθαο Ξελνδνρείν - ελλνείηε έλα κφλν Ξελνδνρείν. Οη ζηήιεο ζε έλα πίλαθα γεληθά παξνπζηάδνληαη ζαλ νξίζκαηα (attributes) ζε κία θιάζε. Όκσο, ζπλήζσο νη πίλαθεο ζε κία βάζε πεξηιακβάλνπλ πεξηζζφηεξεο ζηήιεο απφ ηα νξίζκαηα κία θιάζεο (γηα παξάδεηγκα, νη πίλαθεο ζπλήζσο έρνπλ μέλα θιεηδηά). Έηζη ππάξρεη πεξίπησζε λα κελ ππάξρεη έλα-πξνο-έλα ζρέζε κεηαμχ ησλ ζηειψλ ελφο πίλαθα θαη ηεο αληίζηνηρεο θιάζεο ζηνλ θψδηθα. 7. Χξεζηκνπνίεζε ηνπ domain κνληέινπ σο γισζζάξη γηα ην έξγν καο. Αλ νη αζαθείο απαηηήζεηο είλαη ν ερζξφο, ην domain κνληέιν είλαη ε πξψηε γξακκή άκπλαο. Αζαθήο ρξήζε ησλ νλνκάησλ απφ "εηδηθνχο ζεκάησλ" είλαη πνιχ ζπρλφ θαη επηβιαβέο θαηλφκελν. Σν domain κνληέιν ζα πξέπεη λα ρξεζηκεχζεη σο έλα γισζζάξη ηνπ έξγνπ πνπ βνεζά λα εμαζθαιηζηεί ε ζπλεπήο ρξήζε ησλ φξσλ θαηά ηελ πεξηγξαθή ηνπ ρψξνπ πξνβιεκάησλ. Υξεζηκνπνηψληαο ην domain model σο έλα γισζζάξην ηνπ έξγνπ είλαη ην πξψην βήκα πξνο ηελ απνζαθήληζε ηνπ κνληέινπ καο. 8. Γξάθνπκε ην domain model πξηλ ηηο πεξηπηώζεηο ρξήζεο. Δπεηδή ρξεζηκνπνηνχκε ην domain model γηα λα απνζαθελίζνπκε ηα πξνβιήκαηα ησλ domain αθαηξέζεσλ ζα ήηαλ θνπηφ λα γξάςνπκε πξψηα ηηο ιεπηνκεξείο πεξηπηψζεηο ρξήζεο ρξεζηκνπνηψληαο αζαθείο φξνπο γηα λα πεξηγξάςνπκε ηηο domain θιάζεηο. Έηζη είλαη θαιχηεξν λα μνδέςνπκε κεξηθέο ψξεο μεθηλψληαο απφ ην domain model. Σν λα γξάςνπκε ηηο πεξηπηψζεηο ρξήζεο ρσξίο έλα κνληέιν domain λα ελψλεη ηα πάληα κεηαμχ ηνπο απνζεθεχεη πνιιά πξνβιήκαηα γηα αξγφηεξα. 9. Γελ πεξηκέλνπκε ην ηειηθό Γηάγξακκα Κιάζεο (Class Diagram) λα κνηάδεη κε ην Domain Μνληέιν. Σα δηαγξάκκαηα θιάζεο ζα γίλνπλ πνιχ πην ιεπηνκεξή απφ ην κνληέιν domain, φπσο ν Σελ. 52 από 128

53 ζρεδηαζκφο πξνρσξάεη, ην domain κνληέιν ζθφπηκα δηαηεξείηαη αξθεηά απιφ. Καζψο ζρεδηάδνπκε (ρξεζηκνπνηψληαο δηαγξάκκαηα αθνινπζίαο), ν ιεπηνκεξήο ζρεδηαζκφο πξνζζέηεη γηα παξάδεηγκα βνεζνχο GUI, constructor θιάζεηο θαη ππνδνκήο πξνζηίζεηαη ζην δηάγξακκα θιάζεο, θαζψο ην δηάγξακκα ηνπ domain κνληέινπ ζα είλαη ζρεδφλ ζίγνπξα ρσξηζκέλν ζε πνιιά ιεπηνκεξή δηαγξάκκαηα θιάζεσλ. Ωζηφζν, ζα πξέπεη αθφκε λα είλαη δπλαηφλ λα εληνπίζνπκε ηηο πεξηζζφηεξεο θιάζεηο ηνπ δηαγξάκκαηνο θιάζεο ζην domain κνληέιν. 10. Γελ ηνπνζεηνύκε νζόλεο θαη άιιεο GUI θιάζεηο ζην Domain κνληέιν. Κάλνληάο ην κπνξεί αλ αλνίμνπλ νη αζθνί ηνπ Αηφινπ ζε έλα θνξεζκέλν domain model πνπ πεξηιακβάλεη πνιιέο ιεπηνκέξεηεο πινπνίεζεο. Κιάζεηο απφδνζεο βειηηζηνπνίεζεο θαη βνεζεηηθέο θιάζεηο ζα πξέπεη λα ιείπνπλ επίζεο απφ ην domain model. Πξέπεη λα πεξηιακβάλεη κφλν θιάζεηο πνπ αλαθέξνληαη ζην ρψξν ηνπ πξνβιήκαηνο. 4.4 Domain Model ςτην πρϊξη ηε ζπλέρεηα ζα δνχκε ηα βήκαηα πνπ αθνινπζήζακε, ζχκθσλα κε ηηο παξαπάλσ νδεγίεο, γηα ηελ αλάπηπμε ηεο εθαξκνγήο καο «Online Σνπξηζηηθφ Γξαθείν». Καζψο ζρεδηάδνπκε ην domain model, κία θαιή πεγή domain θιάζεσλ είλαη ην θείκελν ησλ απαηηήζεσλ ηνπ ζπζηήκαηνο απαηηήζεηο πνπ είλαη ζπλήζσο γξακκέλεο σο εμήο «ην ζχζηεκα πξέπεη λα θάλεη απηφ, ην ζχζηεκα δελ πξέπεη λα θάλεη εθείλν». Δίλαη ρξήζηκν λα αληρλεχζνπκε ζην θείκελν απηφ ηα αληηθείκελα θαη ηηο θξάζεηο αληηθεηκέλσλ. Αξγφηεξα ζα ξαθηλάξνπκε απηέο ηηο θιάζεηο δεκηνπξγψληαο ην domain model. Έρνληαο απηά ζην λνπ καο πξνρσξάκε ζηελ εθκαίεπζε αληηθεηκέλσλ απφ έλα απφζπαζκα ηεο πεξηγξαθήο ηνπ ζπζηήκαηνο Όλεηξν. Σν ζχζηεκα Όλεηξν πεξηγξάθεη ηελ εθπαηδεπηηθή καο εθαξκνγή «Online Σνπξηζηηθφ Γξαθείν» θαη ην απφζπαζκα πνπ βιέπνπκε παξαθάησ είλαη ε πεξηγξαθή ηεο θξάηεζεο δσκαηίνπ Σελ. 53 από 128

54 ζε μελνδνρεηαθή κνλάδα. Οιφθιεξε ε πεξηγξαθή ζπζηήκαηνο κπνξείηε λα ηελ βξείηε ζην Παξάξηεκα Α. - Ο ρξήζηεο-πειάηεο εηζάγεη ηνλ πξννξηζκφ πνπ ζέιεη λα θάλεη θξάηεζε δσκαηίνπ θαζψο θαη ηελ εκεξνκελία άθημεο θαη αλαρψξεζεο. Καηφπηλ επηιέγεηαη ν αξηζκφο δσκαηίσλ πνπ ζέιεη λα θάλεη θξάηεζε θαζψο θαη πφζνη ελήιηθεο, αιιά θαη παηδηά, αλ ππάξρνπλ, ζα θηινμελεζνχλ ζε θάζε έλα δσκάηην. - Σν ζχζηεκα ζα δψζεη απνηειέζκαηα ζχκθσλα κε ηηο πξνηηκήζεηο ηνπ ρξήζηε θαη ζα εκθαλίζεη ηα αληίζηνηρα μελνδνρεία ηαμηλνκεκέλα κε βάζε ηελ ηηκή, γξάθνληαο ηνλ ηχπν ηνπ/σλ δσκαηίνπ/σλ θαη ηελ ηηκή. Δπηπιένλ ν ρξήζηεο κπνξεί λα επηιέμεη αλ ζέιεη παξνρή κφλν πξσηλνχ ή εκηδηαηξνθήο(παξνρή πξσηλνχ θαη κεζεκεξηαλνχ) ή πιήξεο δηαηξνθή (πξσηλφ, κεζεκεξηαλφ θαη βξαδηλφ) κε δηαθνξά ζηε ηηκή πνπ ζα αλαγξάθεηαη. Ο ρξήζηεο-πειάηεο επηιέγεη ην/ηα επηζπκεηφ/ηά δσκάηην/α θαη θάλεη θιηθ ζην θνπκπί Κξάηεζε. - ηε ζπλέρεηα ν ρξήζηεο-πειάηεο ζα πξέπεη λα εηζάγεη ηα ζηνηρεία ηνπ θάζε επηζθέπηε ζε θάζε δσκάηην, φπσο αλαγξάθνληαη ζηα επίζεκα έγγξαθα ηνπ θαζελφο, ψζηε λα κπνξέζνπλ λα εθδνζεί ε αθξηβήο θξάηεζε ηνπ μελνδνρείνπ. - ηε ζπλέρεηα, εκθαλίδεηαη ε θαξηέια θξάηεζε ζηελ νπνία ν ρξήζηεοπειάηεο πξέπεη λα ζπκπιεξψζεη θάπνηα πξνζσπηθά ηνπ ζηνηρεία γηα λα ζεσξείηαη έγθπξε ε θξάηεζε. Σα ζηνηρεία πνπ πξέπεη λα ζπκπιεξψζεη είλαη ην νλνκαηεπψλπκν, κε ιαηηληθνχο ραξαθηήξεο, ηνπ αηφκνπ πνπ ζπκκεηέρεη ζηελ θξάηεζε θαη ην γέλνο ηνπ, άλδξαο ή γπλαίθα. Δπηπιένλ ην νλνκαηεπψλπκν θαη ηα ζηνηρεία ηεο δηεχζπλζεο ηνπ αηφκνπ πνπ δηεμάγεη ηελ θξάηεζε θαζψο θαη έλαο αξηζκφο ηειεθψλνπ θαη κία δηεχζπλζε . Σέινο ηα ζηνηρεία ηεο πηζησηηθήο θάξηαο κε ηελ νπνία ζα γίλεη πιεξσκή φπσο ηχπνο, νλνκαηεπψλπκν θαηφρνπ, αξηζκφο θάξηαο θαη CVC/CVV θαη εκεξνκελία ιήμεο ηεο θάξηαο. πιιέγνληαη αθφκα θαη θάπνηα πξφζζεηα ζηνηρεία (φπσο αλ ν πειάηεο επηζπκεί ηηκνιφγην θαη επίζεο ελεκεξψλεηαη γηα ηελ πνιηηηθή ηεο αθχξσζεο ηεο Σελ. 54 από 128

55 θξάηεζεο), ηα νπνία φκσο δελ είλαη ππνρξεσηηθά γηα ηελ δηεμαγσγή κίαο επηηπρήο θξάηεζεο. - Σέινο επηβεβαηψλνληαη ηα ζηνηρεία απφ ην ζχζηεκα ηεο ηξάπεδαο, θαηαρσξείηαη ε θξάηεζε ζην ζχζηεκά καο, αλ είλαη έγθπξε, θαη εκθαλίδνπκε ην πηζηνπνηεηηθφ ηεο θξάηεζεο θαη ηαπηφρξνλα ζηέιλεηαη θαη ζηνλ πειάηε κε mail ζηε δηεχζπλζε ηνπ ειεθηξνληθνχ ηαρπδξνκείνπ πνπ έρεη νξίζεη. Οη θξαηήζεηο θαηαγξάθνληαη ζε κία ιίζηα θξαηήζεσλ ζηε βάζε δεδνκέλσλ ηνπ ζπζηήκαηνο. Επιπλέον περιοριζμοί (Requirement constraints): - Ο αξηζκφο ησλ δσκαηίσλ πνπ κπνξεί λα εηζάγεη ν θάζε ρξήζηεο γηα θάζε θξάηεζε είλαη ην πνιχ 4. Δπίζεο ν αξηζκφο ησλ αηφκσλ πνπ κπνξεί λα θηινμελεζνχλ ζε έλα δσκάηην είλαη ην πνιχ 4. - Σα ππνρξεσηηθά πεδία ζπκπιήξσζεο ζηελ online θφξκα πξνζσπηθψλ ζηνηρείσλ ηνπ πειάηε πξέπεη λα είλαη επδηάθξηηα. - Ο ρξήζηεο-πειάηεο δελ κπνξεί λα εηζάγεη κε έγθπξα ζηνηρεία ζηηο θφξκεο. Πξέπεη λα γίλεηαη έιεγρνο ησλ πεδίσλ πξηλ ηε θαηαρψξεζή ηνπο. Απηέο νη απαηηήζεηο είλαη πινχζηα πεγή domain θιάζεσλ. Σα ζηνηρεία πνπ έρνπλ επηζεκαλζεί ηα ηνπνζεηνχκε ζε κία ιίζηα φπνπ δηαγξάθνπκε ηηο δηπινεγγξαθέο: ππάξρεη αξθεηφ θνκκάηη επηθάιπςεο ζηε ιίζηα πνπ δεκηνπξγήζεθε. Παξφκνηνη φξνη ρξεζηκνπνηνχληαη γηα ην ίδην πξάγκα. Αιιά απηφ απνηειεί θαη ην θπξίσο φθεινο ηνπ domain modeling, εληνπίδνπκε θαη εμαιείθνπκε απηέο ηηο δηπινεγγξαθέο ζηελ αξρή ηνπ έξγνπ. Η νινθιεξσκέλε ιίζηα ησλ αληηθεηκέλσλ βξίζθεηαη ζην Παξάξηεκα Β. Αθνχ νινθιεξψζνπκε ην ξαθηλάξηζκα ηεο ιίζηαο καο, πξνρσξάκε ζην ζρεδηαζκφ ηνπ domain model καο, ηνπνζεηνχκε φιεο καο ηηο θιάζεηο θαη ζρεδηάδνπκε ηηο κεηαμχ ηνπο ζρέζεηο, ζηηο νπνίεο πξέπεη λα θαζνξίζνπκε ηηο ζρέζεηο γελίθεπζεο θαη ηε ζπλάζξνηζεο. Μία ρξήζηκε ηερληθή είλαη λα δηαβάζνπκε ηηο απαηηήζεηο απφ ηελ αξρή ρξεζηκνπνηψληαο ηηο ιέμεηο έρεη έλα θαη είλαη έλα. Γηα παξάδεηγκα ην Αεξνδξφκην έρεη κία Αεξνπνξηθή Δηαηξία ελψ ε Πιεξσκή κε Κάξηα είλαη κία Πιεξσκή. Σελ. 55 από 128

56 ην ζρήκα 4.2 θαίλεηαη ην domain model ηνπ ζπζηήκαηνο Όλεηξν. 4.5 Περύληψη ην θεθάιαην απηφ πεξηγξάθεηαη αλαιπηηθά ε πξψηε κεγάιε θάζε ηεο ICONIX δηαδηθαζίαο. Η Domain κνληεινπνίεζε απνηειεί ηε βάζε γηα ηε ζπλνιηθή δξαζηεξηφηεηα κνληεινπνίεζεο αληηθεηκέλσλ. Όπσο ζα δνχκε ζην επφκελν θεθάιαην, νη πεξηπηψζεηο ρξήζεο είλαη γξακκέλεο ζην πιαίζην ηνπ domain κνληέινπ, θαη (φπσο ζα δνχκε ζην Κεθάιαην 7) ε αλάιπζε επξσζηίαο βνεζάεη ζην δέζηκν ηνπ domain model θαη ησλ πεξηπηψζεσλ ρξήζεο ψζηε λα έξζνπλ πην θνληά. Σελ. 56 από 128

57 χιμα 4.2 Domain Model του ςυςτιματοσ Όνειρο Σελ. 57 από 128

58 Κεφϊλαιο 5: Μοντελοπούηςη Περιπτώςεων Χρόςησ χιμα 5.1 Μζκοδοσ ICONIX ςε λεπτομερειακι ροι εργαςίασ (Use Case Modeling) Έρνληαο έλα αξρηθφ domain κνληέιν, είλαη θαηξφο λα αξρίζνπκε ηηο πεξηπηψζεηο ρξήζεο. Οη πεξηπηψζεηο ρξήζεο καο δίλνπλ έλα δνκεκέλν ηξφπν λα αληηιεθζνχκε ηηο απαηηήζεηο ζπκπεξηθνξάο (behavioral requirements) ηνπ ζπζηήκαηνο, έηζη ψζηε λα κπνξέζνπκε λα δεκηνπξγήζνπκε ινγηθά έλα ζρέδην απφ απηέο. Θα καο βνεζήζεη λα απαληήζνπκε ζε νξηζκέλα ζεκειηψδε εξσηήκαηα: Ση πξνζπαζνχλ λα θάλνπλ νη ρξήζηεο ηνπ ζπζηήκαηνο; Πνηα είλαη ε εκπεηξία ηνπ ρξήζηε; Έλα εθπιεθηηθά κεγάιν κέξνο ηνπ ηη θάλεη ην ινγηζκηθφ ππαγνξεχεηαη απφ ηνλ ηξφπν κε ηνλ νπνίν νη ρξήζηεο πξέπεη λα αιιειεπηδξνχλ κε απηφ. 5.1 Γιατύ χρειαζόμαςτε τισ περιπτώςεισ χρόςεισ πϋραν των λειτουργικών απαιτόςεων; Οη ιεηηνπξγηθέο απαηηήζεηο (functional requirements) ηείλνπλ λα είλαη έλα κείγκα πςεινχ θαη ρακεινχ επηπέδνπ απαηηήζεσλ, νπζηαζηηθά έλα ξεχκα ηεο ζπλεηδεηνπνίεζεο απφ ηνπο δηαρεηξηζηέο, πειάηεο θαη ηελ νκάδα κάξθεηηλγθ, πνπ Σελ. 58 από 128

59 ζπιιακβάλεηαη ζε ζεηξηαθή κνξθή θαη ηνπνζεηείηαη ζε έλα έγγξαθν ηνπ Word. Όρη φηη ππάξρεη θάηη ιάζνο κε απηφ, είλαη απιψο ην πξψην, πξφσξν βήκα ζην δξφκν γηα λα πάξνπκε έλα νξηζηηθνπνηεκέλν, ζαθή, μεθάζαξν ζχλνιν απαηηήζεσλ ζπκπεξηθνξάο απφ ην νπνίν κπνξνχκε λα δεκηνπξγήζνπκε ξεαιηζηηθά έλα ζρέδην. Οη Λεηηνπξγηθέο πξνδηαγξαθέο είλαη κελ ζεκαληηθέο, θπζηθά. Αιιά ην λα ζρεδηάδνπκε, θσδηθνπνηνχκε, ή εθηηκνχκε, απεπζείαο απφ κηα ιεηηνπξγηθή πξνδηαγξαθή είλαη ζαλ λα παίδνπλ έλα ζπλαξπαζηηθφ παηρλίδη "δηάιεμε έλαλ ηπραίν αξηζκφ." Θα ρξεηαζηεί λα θάλνπκε θάπνηα δηεξεπλεηηθή εξγαζία γηα λα εμνκαιχλνπκε ηνπο φξνπο. Η κνληεινπνίεζε ησλ πεξηπηψζεσλ ρξήζεο θαη ε πξνθαηαξθηηθή κειέηε κεηά, καο νδεγνχλ εθεί. 5.2 Οδηγύεσ Μοντελοπούηςησ περιπτώςεων χρόςησ Οη αξρέο πνπ αλαιχνληαη ζε απηφ ην θεθάιαην ζπλνςίδνληαη ζε κία ιίζηα κε νδεγίεο. Απηέο νη θαηεπζπληήξηεο γξακκέο κπνξνχλ κε ηελ ζεηξά ηνπο λα ζπλνςηζηνχλ ζε κία θξάζε: Πεξηγξάθνπκε ηε ρξήζε ηνπ ζπζηήκαηνο ζην πιαίζην ηνπ κνληέινπ αληηθεηκέλνπ (object model). Σα ζεκεία απφ ην 1 έσο ην 6 πεξηγξάθνπλ ηε ρξήζε ηνπ ζπζηήκαηνο, ελψ απφ ην 7 έσο ην 10 αζρνινχληαη κε ηελ ηνπνζέηεζε ηεο ρξήζεο ηνπ ζπζηήκαηνο ζην πιαίζην ηνπ κνληέινπ αληηθεηκέλνπ. 1. Αθνινπζνύκε ηνλ θαλόλα ησλ δύν παξαγξάθσλ. Κάζε πεξίπησζε ρξήζεο ζα πξέπεη λα ρσξά άλεηα ζε δχν παξαγξάθνπο, ζπκπεξηιακβαλνκέλσλ ηφζν ηνπ βαζηθνχ ζελαξίνπ θαη ησλ ελαιιαθηηθψλ ζελαξίσλ. Οηηδήπνηε πνιχ πεξηζζφηεξν απφ δχν παξαγξάθνπο, ζα νδεγήζεη ζε αθαηαλφεηα δηαγξάκκαηα αθνινπζίαο. Δάλ ε πεξίπησζε ρξήζεο πεγαίλεη πάλσ απφ δχν παξαγξάθνπο, ζα πξέπεη πηζαλψο λα δηαηξεζεί ζε δχν ή πεξηζζφηεξεο μερσξηζηέο πεξηπηψζεηο ρξήζεο. Σελ. 59 από 128

60 2. Οξγαλώλνπκε ηηο πεξηπηώζεηο ρξήζεο καο κε ξόινπο (actors) θαη δηαγξάκκαηα πεξηπηώζεσλ ρξήζεο. Έλα δηάγξακκα πεξηπηψζεσο ρξήζεο δείρλεη πιήζνο πεξηπηψζεσλ ρξήζεο. Πξφθεηηαη γηα κηα επηζθφπεζε κηαο ζπζρεηηδφκελεο νκάδαο πεξηπηψζεσλ ρξήζεο. Σν θείκελν ζε θάζε νβάι είλαη ν ηίηινο ηεο πεξίπησζεο ρξήζεο. Γηα παξάδεηγκα ην ζρήκα 5.2 δείρλεη έλα παξάδεηγκα δηαγξάκκαηνο πεξηπηψζεσο ρξήζεο πνπ αλαπαξηζηά ηελ ινγηθή νκάδα Πιεξσκή ηνπ ζπζηήκαηνο «Online Σνπξηζηηθφ Γξαθείν». Έλαο ραξαθηήξαο (actor) αληηπξνζσπεχεηαη ζην δηάγξακκα σο αλζξσπάθη ζθαξίθεκα (stick figure) θαη είλαη αλάινγνο κε έλα «ξφιν» πνπ νη ρξήζηεο κπνξνχλ λα παίμνπλ. Μεξηθέο θνξέο ν ραξαθηήξαο νλνκάδεηαη απιψο "Υξήζηεο", αιιά δίλεηαη ζπρλά έλα ζπγθεθξηκέλν φλνκα ξφινπ. Ο ρξήζηεο (ραξαθηήξαο) είλαη εθηφο ηνπ ζπζηήκαηνο, απηφο ή απηή είλαη ζηελ "εμσηεξηθή" πιεπξά, ελψ ην ζχζηεκα βξίζθεηαη ζην «εζσηεξηθφ». Οη ραξαθηήξεο κπνξεί λα αληηπξνζσπεχνπλ κε αλζξψπηλα εμσηεξηθά ζπζηήκαηα θαζψο θαη αλζξψπνπο. Μηα έλσζε απφ ηνλ ραξαθηήξα ζε κία πεξίπησζε ρξήζεο ζεκαίλεη φηη απηφο ν ραξαθηήξαο είλαη πνπ εθηειεί απηή ηελ πεξίπησζε ρξήζεο. Η έλσζε κπνξεί λα ζεκαίλεη επίζεο επζχλεο. Μπνξνχκε λα έρνπκε πεξηζζφηεξνπο απφ έλαλ ραξαθηήξεο λα δείρλνπλ ζε κία πεξίπησζε ρξήζεο πνπ ζεκαίλεη φηη ε πεξίπησζε ρξήζεο ζπλδέεηαη κε πεξηζζφηεξνπο απφ έλαλ ξφινπο. Οκνίσο έλαο ρξήζηεο κπνξεί λα δηαζέηεη πνιιαπινχο ξφινπο, γηα παξάδεηγκα ν ίδηνο ρξήζηεο κπνξεί λα είλαη Ξελνδνρνυπάιιεινο θαη Γηαρεηξηζηήο ηνπ ζπζηήκαηνο. Σελ. 60 από 128

61 χιμα 5.2 Διάγραμμα περιπτϊςεωσ χριςθσ Πλθρωμι 3. Γξάθνπκε ηηο πεξηπηώζεηο ρξήζεο ζε ελεξγεηηθή θσλή. Ο φξνο έρεη λα θάλεη κε ηελ ζθνπηά απφ ηελ νπνία γξάθνπκε ηελ πξφηαζε. Όηαλ γξάθνπκε ζε παζεηηθή θσλή, πεξηγξάθνπκε ην ζχζηεκα ρσξίο λα δίλνπκε έκθαζε ζπλήζσο δελ αλαθέξεηαη θαζφινπ ζην πνηφο ή ηη εθηειεί ηηο ελέξγεηεο. Γηα παξάδεηγκα : Η δσναηόηηηα ασηή παρέτεηαι ζηοσς τρήζηες για ειζαγωγή ζηο ζύζηημα, τρηζιμοποιώνηας ένα κωδικό πρόζβαζης. Απφ ηελ πξφηαζε θαίλεηαη φηη ε δπλαηφηεηα έρεη ήδε δνζεί ζηνπο ρξήζηεο, νπφηε δε ρξεηάδεηαη λα αλεζπρνχκε γηα απηήλ. Γπζηπρψο απηή κπνξεί λα είλαη ή λα κελ είλαη ε ππφζεζε (κπνξεί λα ρξεηάδεηαη λα δεκηνπξγήζνπκε απηή ηε δπλαηφηεηα). Σν πξφβιεκα κε ηελ παζεηηθή θσλή είλαη φηη θξχβεη ηνπο ραξαθηήξεο θαη, πην ζεκαληηθφ, ηηο ιεηηνπξγίεο ηνπ ινγηζκηθνχ. Η θξάζε πνπ ρξεζηκνπνηήζακε ζην παξάδεηγκα αθνχγεηαη επίζεο ζαλ κία ιεηηνπξγηθή απαίηεζε. Η παζεηηθή θσλή είλαη ζπρλά αζαθήο θαη ζηεξείηαη ελέξγεηαο. Η ελεξγεηηθή θσλή θαζηζηά ζαθέο ην πνηνο θάλεη ηη. Δδψ είλαη έλα παξάδεηγκα πεξηπηψζεσο ρξήζεο ζε ελεξγεηηθή θσλή: Ο τρήζηης ειζάγει ηο όνομα και ηον κωδικό πρόζβαζης και παηάει ηο κοσμπί Σύνδεζη. 4. Γξάθνπκε ηηο πεξηπηώζεηο ρξήζεο ρξεζηκνπνηώληαο κία ξνή Γεγνλόο/Απάληεζε. Μηα πεξίπησζε ρξήζεο ζπρλά ελεξγνπνηείηαη απφ ην γεγνλφο πνπ μεθίλεζε έλαο ρξήζηεο θαη ζην νπνίν ην ζχζηεκα Σελ. 61 από 128

62 πξέπεη λα αληαπνθξηζεί. Ωζηφζν, κπνξεί επίζεο λα πξνθιεζεί απφ έλα ζχζηεκα πνπ έρεη μεθηλήζεη έλα γεγνλφο κε ην νπνίν ν ρξήζηεο αιιειεπηδξά. Αιιά ζε θάζε πεξίπησζε, ε πεξίπησζε ρξήζεο αθνινπζεί ηελ ξνή γεγνλφο/απάληεζε (βιέπε ζρήκα 5.3). χιμα 5.3 Ανατομία ενόσ ςεναρίου περιπτϊςεωσ χριςθσ 5. Χξεζηκνπνηνύκε Storyboards, Πξσηόηππα GUI θαη καθέηεο Οζνλώλ. Σα Storyboards, ηα GUI πξσηφηππα, θαη νη καθέηεο νζνλψλ είλαη ζπρλά πνιχ ρξήζηκα νπηηθά βνεζήκαηα φηαλ γξάθνπκε κία πεξίπησζε ρξήζεο. Αλ βαζίζνπκε ηελ πεξίπησζε ρξήζεο ζε έλα πξσηφηππν GUI, γηα παξάδεηγκα, είλαη ζεκαληηθφ λα ζπκπεξηιεθζνχλ φια ηα θνπκπηά θαη ηα κελνχ πνπ ν ρξήζηεο κπνξεί λα αγγίμεη ψζηε λα δεκηνπξγήζεη γεγνλφηα, κέζα ζηελ πεξίπησζε ρξήζεο. 6. Θπκόκαζηε όηη ε πεξίπησζε ρξήζεο είλαη πξαγκαηηθά κία πξνδηαγξαθή ζπκπεξηθνξάο θαηά ηνλ ρξόλν εθηέιεζεο. Με ηε κεζνδνινγία ICONIX, ν ζρεδηαζκφο νδεγείηαη απφ ηηο πεξηπηψζεηο ρξήζεο. ηελ πξάμε, απηφ ζεκαίλεη φηη ζρεδηάδνπκε έλα δηάγξακκα αθνινπζίαο γηα θάζε πεξίπησζε ρξήζεο ζηελ ηξέρνπζα έθδνζε. Σν δηάγξακκα αθνινπζίαο δείρλεη κε κεγάιε ιεπηνκέξεηα πψο παξαδείγκαηα αληηθεηκέλσλ ζπλεξγάδνληαη απφ θνηλνχ θαηά ην ρξφλν εθηέιεζεο ψζηε λα νινθιεξσζεί ε ζπκπεξηθνξά ηεο πεξίπησζεο ρξήζεο. Ωο εθ ηνχηνπ, ην θείκελν ηεο πεξίπησζεο ρξήζεο ζα Σελ. 62 από 128

63 ρξεζηκεχζεη σο πξνδηαγξαθή ζρεηηθά κε ηε ζπκπεξηθνξά ρξφλνπ εθηέιεζεο πνπ θαίλεηαη ζηα δηαγξάκκαηα αθνινπζίαο. 7. Γξάθνπκε ηηο πεξηπηώζεηο ρξήζεο καο ζην πιαίζην ηνπ Μνληέινπ Αληηθεηκέλσλ (Object Model). Γελ κπνξνχκε λα δεκηνπξγήζνπκε αληηθεηκελνζηξαθή ζρέδηα απφ ηηο πεξηπηψζεηο ρξήζεο αλ δελ ζρεηίζνπκε ηηο πεξηπηψζεηο ρξήζεηο κε ηα αληηθείκελα. ηελ πξάμε, απηφ ζεκαίλεη φηη ζα πξέπεη λα αλαθέξνπκε ηηο domain θιάζεηο πνπ ζπκκεηέρνπλ ζηελ πεξίπησζε ρξήζεο, θαη ζα πξέπεη λα νλνκάζνπκε ηηο νζφλεο καο θαη ηα άιια boundary objects ξεηά ζην θείκελν ησλ πεξηπηψζεσλ ρξήζεο. Γηαθνξεηηθά, νη απαηηήζεηο ζπκπεξηθνξάο καο ζα είλαη πιήξσο απνζπλδεδεκέλεο απφ ην κνληέιν αληηθεηκέλνπ καο, θαη δελ ζα είκαζηε ζε ζέζε λα πάξνπκε ηα ζρέδηα απφ ηηο πεξηπηψζεηο ρξήζεο. 8. Γξάθνπκε ηηο πεξηπηώζεηο ρξήζεο ρξεζηκνπνηώληαο πξνηάζεηο πνπ έρνπλ ηε δνκή Αληηθείκελν-Ρήκα-Αληηθείκελν: είλαη πνιχ πην εχθνιν λα ζρεδηάζνπκε έλαλ αληηθεηκελνζηξαθή ζρεδηαζκφ απφ πξνηάζεηο πνπ παξνπζηάδνπλ απηή ηε δνκή. Σν θείκελν ησλ πεξηπηψζεσλ ρξήζεο καο ηειηθά ζα βξίζθεηαη ζην πιαίζην ηνπ δηαγξάκκαηνο αθνινπζίαο. Καη ηα δηαγξάκκαηα αθνινπζίαο πξνζαλαηνιίδνληαη ζεκειησδψο γχξσ απφ ηα νπζηαζηηθά θαη ηα ξήκαηα: Σα νπζηαζηηθά είλαη νη πεξηπηψζεηο ρξήζεηο. Απηά ζπλήζσο είηε πξνέξρνληαη απφ ην domain κνληέιν (νληφηεηεο) ή είλαη boundary/ GUI αληηθείκελα. Σα ξήκαηα είλαη ηα κελχκαηα κεηαμχ ησλ αληηθεηκέλσλ. Απηά αληηπξνζσπεχνπλ ηηο ιεηηνπξγίεο ηνπ ινγηζκηθνχ. 9. Αλαθέξνπκε ηηο domain θιάζεηο κε ην όλνκά ηνπο. Θπκφκαζηε απφ ην πξνεγνχκελν θεθάιαην φηη ην domain κνληέιν ρξεζηκεχεη σο έλα γισζζάξη ηνπ έξγνπ πνπ βνεζά λα εμαζθαιηζηεί ε ζπλεπήο ρξήζε ησλ φξσλ θαηά ηελ πεξηγξαθή ηνπ ρψξνπ πξνβιήκαηνο. Όηαλ πξνζπαζνχκε λα νδεγήζνπκε έλα αληηθεηκελνζηξαθή ζρεδηαζκφ απφ ηηο πεξηπηψζεηο ρξήζεο, είλαη εμαηξεηηθά ζεκαληηθφ νη πεξηπηψζεηο Σελ. 63 από 128

64 ρξήζεο λα ζρεηίδνληαη κε ηα αληηθείκελα. Πξέπεη λα ζθεθηνχκε ην: πψο κπνξνχκε λα νδεγήζνπκε έλα κνληέιν αληηθεηκέλνπ (object model) απφ ηηο πεξηπηψζεηο ρξήζεο, εθφζνλ νη πεξηπηψζεηο ρξήζεο δελ ζρεηίδνληαη κε ηα αληηθείκελα; Η ζχληνκε απάληεζε είλαη δελ κπνξνχκε. Σελ ίδηα ζηηγκή, δελ έρνπκε πιήξε γλψζε ηνπ ηειηθνχ κνληέινπ αληηθεηκέλσλ, φηαλ αξρίδνπκε λα γξάθνπκε πεξηπηψζεηο ρξήζεο. Απηφ πνπ γλσξίδνπκε ζε εθείλν ην ρξνληθφ ζεκείν είλαη κηα πξνθαηαξθηηθή έθδνζε ηνπ κνληέινπ αληηθεηκέλσλ πνπ πεξηγξάθεη ην πξφβιεκα κε μεθάζαξν ηξφπν-δειαδή, ην domain κνληέιν. Έηζη, πξέπεη λα ζπλδέζνπκε ηηο πεξηπηψζεηο ρξήζεο κε ηα domain αληηθείκελα. ηελ πξάμε, απηφ ζεκαίλεη αλαθνξά ησλ domain αληηθεηκέλσλ κε ην φλνκά ηνπο ζην θείκελν ησλ πεξηπηψζεσλ ρξήζεο. 10. Αλαθέξνπκε ηηο Boundary θιάζεηο κε ην όλνκά ηνπο. Γεδνκέλνπ φηη είκαζηε ζε κηα απνζηνιή φπνπ γξάθνπκε ζαθείο απαηηήζεηο ζπκπεξηθνξάο, θαη νη απαηηήζεηο ζπκπεξηθνξάο ζρεδφλ πάληα πεξηιακβάλνπλ ην πεξηβάιινλ εξγαζίαο ηνπ ρξήζηε, είλαη κηα θαιή ηδέα λα κελ γξάςνπκε αφξηζηεο θαη δηθνξνχκελεο θξάζεηο φπσο "Σν ζχζηεκα εκθαλίδεη κηα ζειίδα" ζηηο πεξηπηψζεηο ρξήζεο καο. Αληηζέησο, πξέπεη λα νλνκάζνπκε ηηο νζφλεο καο ξεηά-γηα παξάδεηγκα, "Σν ζχζηεκα εκθαλίδεη ηε ζειίδα Checkout." 5.3 Πακϋτα Περιπτώςεων χρόςησ Πξηλ μεθηλήζνπκε λα γξάθνπκε ηηο πεξηπηψζεηο ρξήζεο καο ζα πξέπεη λα βξνχκε έλα ηξφπν λα ηηο νκαδνπνηήζνπκε ζε ινγηθέο νκάδεο. Δπηπρψο, ε UML καο παξέρεη έλα κεραληζκφ παθέησλ, ην νπνίν είλαη έλαο ηξφπνο γηα ηελ νκαδνπνίεζε ζρεηηδφκελσλ ζηνηρείσλ (π.ρ., θιάζεσλ, δηαγξακκάησλ, ή πεξηπηψζεσλ ρξήζεο). Σα παθέηα είλαη βαζηθά ηεξαξρεκέλα θνληέηλεξ πνπ κπνξεί λα πεξηέρνπλ ζρεδφλ νπνηαδήπνηε θαηαζθεπή UML, ζπκπεξηιακβαλνκέλσλ θαη άιισλ θνληέηλεξ. Σα UML παθέηα δελ είλαη απνιχησο αλφκνηα απφ ηα Java παθέηα, ζην κέηξν πνπ επηηξέπνπλ λα δηαηξέζνπκε ηελ εξγαζία καο ζε κεγάιν βαζκφ ζε δηάθνξνπο ηνκείο. Σελ. 64 από 128

65 Έλα ηέηνην παθέην θαίλεηαη ζην ρήκα 5.4. Πεξηζζφηεξα παθέηα πεξηπηψζεσλ ρξήζεο ππάξρνπλ ζην Παξάξηεκα Γ. χιμα 5.4 Πακζτο ομάδασ Πλθρωμι 5.4 Σχϋςεισ (Relationships) Σα δηαγξάκκαηα πεξηπηψζεσλ ρξήζεο ρξεζηκνπνηνχλ ηεζζάξσλ ηχπνπ ζρέζεηο γηα λα ελψζνπλ-ζπζρεηίζνπλ ηηο πεξηπηψζεηο ρξήζεο κεηαμχ ηνπο. Οη ηέζζεξηο απηέο ζρέζεηο είλαη νη εμήο: Include. ε κηα κνξθή αιιειεπίδξαζεο, κηα δεδνκέλε πεξίπησζε ρξήζεο κπνξεί λα πεξηιακβάλεη κηα άιιε. Η Include είλαη κηα θαηεπζπλφκελε ζρέζε κεηαμχ δχν πεξηπηψζεσλ ρξήζεο, πξάγκα πνπ ζεκαίλεη φηη ε ζπκπεξηθνξά ηεο πεξίπησζεο ρξήζεο πνπ ζπκπεξηιακβάλεηαη, εηζάγεηαη ζηε ζπκπεξηθνξά ηεο πεξίπησζεο ρξήζεο πνπ ηελ πεξηιακβάλεη. Η πεξίπησζε ρξήζεο πνπ ζπκπεξηιακβάλεηαη ζπρλά εμαξηάηαη απφ ηελ έθβαζε ηεο πεξίπησζεο ρξήζεο πνπ πεξηιακβάλεη. Απηφ είλαη ρξήζηκν γηα ηελ εμαγσγή πξαγκαηηθά θνηλψλ ζπκπεξηθνξψλ απφ πνιιαπιέο πεξηπηψζεηο ρξήζεο ζε κηα εληαία πεξηγξαθή. Ο ζπκβνιηζκφο είλαη έλα δηαθεθνκκέλν βέινο απφ απηήλ πνπ ζπκπεξηιακβάλεη ζε απηήλ πνπ Σελ. 65 από 128

66 πεξηιακβάλεηαη, κε ηελ εηηθέηα "«includes»". Γελ ππάξρνπλ παξάκεηξνη ή ηηκέο επηζηξνθήο. Extend. ε κηα άιιε κνξθή αιιειεπίδξαζεο, κηα ζπγθεθξηκέλε πεξίπησζε ρξήζεο (ε επέθηαζε) κπνξεί λα επεθηείλεη κία άιιε. Η ζρέζε δείρλεη φηη ε ζπκπεξηθνξά ηεο πεξίπησζεο ρξήζε πνπ επεθηείλεηαη κπνξεί λα εηζαρζεί ζηελ εθηεηακέλε πεξίπησζε ρξήζεο ππφ νξηζκέλεο πξνυπνζέζεηο. Ο ζπκβνιηζκφο είλαη έλα δηαθεθνκκέλν βέινο απφ ηελ πεξίπησζε ρξήζεο πνπ εθηείλεηαη πξνο ηελ εθηεηακέλε πεξίπησζε ρξήζεο, κε ηελ εηηθέηα "«extends»". εκεηψζεηο θαη πεξηνξηζκνί κπνξεί λα ζρεηίδνληαη κε απηή ηε ζρέζε γηα ηελ αλάδεημε ησλ φξσλ ππφ ηνπο νπνίνπο απηή ε ζπκπεξηθνξά ζα εθηειεζηεί. Οη ζρεδηαζηέο κνληέισλ ρξεζηκνπνηνχλ ηελ ζρέζε «επέθηαζε» γηα λα δείμνπλ πεξηπηψζεηο ρξήζεο πνπ είλαη «πξναηξεηηθέο» ζε ζρέζε κε ηελ βαζηθή πεξίπησζε ρξήζεο. Αλάινγα κε ηελ πξνζέγγηζε ησλ ζρεδηαζηηθψλ κνληέισλ ην "πξναηξεηηθφ" κπνξεί λα ζεκαίλεη "φρη δπλεηηθά εθηειέζηκν ζηελ βαζηθή πεξίπησζε ρξήζεο" ή κπνξεί λα ζεκαίλεη "δελ απαηηείηαη γηα ηελ επίηεπμε ηνπ βαζηθνχ ζηφρνπ ηεο πεξίπησζεο ρξήζεο". Generalization (Γελίθεπζε). ηελ ηξίηε κνξθή ηεο ζρέζεο κεηαμχ ησλ πεξηπηψζεσλ ρξήζεο, ππάξρεη ε ζρέζε γελίθεπζε / εμεηδίθεπζε. Μηα ζπγθεθξηκέλε πεξίπησζε ρξήζεο ελδέρεηαη λα έρεη θνηλέο ζπκπεξηθνξέο, απαηηήζεηο, πεξηνξηζκνχο θαη ππνζέζεηο κε κηα πην γεληθή πεξίπησζε ρξήζεο. ηελ πεξίπησζε απηή, ηα πεξηγξάθνπκε κηα θνξά, θαη ζα ηα αληηκεησπίζνπκε κε ηνλ ίδην ηξφπν, πεξηγξάθνληαο ηηο ελδερφκελεο δηαθνξέο ζηε εμεηδηθεπκέλεο πεξηπηψζεηο. Ο ζπκβνιηζκφο είλαη κηα ζηαζεξή γξακκή πνπ ιήγεη ζε έλα θνίιν ηξίγσλν πνπ μεθηλά απφ ηελ εμεηδηθεπκέλε ζηελ πην γεληθή πεξίπησζε ρξήζεο. Associations (πζρέηηζε). Οη ζπζρεηίζεηο κεηαμχ ησλ ραξαθηήξσλ θαη ησλ πεξηπηψζεσλ ρξήζεο αλαθέξνληαη ζηα δηαγξάκκαηα πεξηπηψζεσλ ρξήζεο κε ζπκπαγείο γξακκέο. Η ζπζρέηηζε ππάξρεη θάζε θνξά πνπ έλαο ραξαθηήξαο αζρνιείηαη κε κηα αιιειεπίδξαζε Σελ. 66 από 128

67 πνπ πεξηγξάθεηαη απφ ηελ πεξίπησζε ρξήζεο. Οη ζπζρεηίζεηο κνληεινπνηνχληαη σο γξακκέο πνπ ζπλδένπλ ηηο πεξηπηψζεηο ρξήζεο θαη ηνπο ραξαθηήξεο κεηαμχ ηνπο, κε πξναηξεηηθή αηρκή βέινπο ζην έλα άθξν ηεο γξακκήο. Σν βέινο ρξεζηκνπνηείηαη ζπρλά γηα λα δείμεη ηελ θαηεχζπλζε ηεο αξρηθήο επίθιεζε ηεο ζρέζεο ή λα αλαθέξεη ηνλ θχξην ραξαθηήξα ζηελ πεξίπησζε ρξήζεο. Οη αηρκέο βειψλ ζπλεπάγνληαη ηνλ έιεγρν ηεο ξνήο θαη δελ πξέπεη λα ζπγρένληαη κε ξνέο δεδνκέλσλ. 5.5 Περιπτώςεισ χρόςησ ςτην πρϊξη Παξαθάησ βιέπνπκε έλα παξάδεηγκα πεξίπησζεο ρξήζεο. Δίλαη ε πεξίπησζε ρξήζεο Δπηινγή ραξαθηεξηζηηθψλ θξάηεζεο δσκαηίνπ ηνπ παθέηνπ Κξάηεζε. (Πεξηζζφηεξα δηαγξάκκαηα πεξηπηψζεσλ ρξήζεο κπνξείηε λα βξείηε ζην cd πνπ ζπλνδεχεη ην παξφλ βηβιίν θαη βξίζθεηαη ζηε ηειεπηαία ζειίδα ηνπ βηβιίνπ). Identifier 10 Author Date Brief Description natalia Aug 25, :35:41 PM Ο Υξήζηεο-Πειάηεο επηιέγεη ηνλ πξννξηζκφ, ηνλ αξηζκφ ησλ δσκαηίσλ θαη αηφκσλ ζε θάζε δσκάηην θαη παηάεη ην θνπκπί Αλαδήηεζε. Σν ζχζηεκα εκθαλίδεη ηελ θαξηέια Γηαζέζηκα μελνδνρεία. Preconditions Ο Υξήζηεο-Πειάηεο έρεη επηιέμεη ηελ θαξηέια Ξελνδνρεία. Flow of Events Actor Input Ο Υξήζηεο-Πειάηεο επηιέγεη απφ ην θεληξηθφ κελνχ ηελ θαξηέια Ξελνδνρεία. Ο Υξήζηεο-Πειάηεο εηζάγεη ηα θξηηήξηα αλαδήηεζεο ηνπ επηζπκεηνχ μελνδνρείνπ-δσκαηίνπ (ηνλ Πξννξηζκφ, ηηο Ηκ.Άθημεο θαη Αλαρψξεζεο, ηνλ αξηζκφ Γσκαηίσλ θαη ηνπο αξηζκνχο ησλ ελειίθσλ θαη παηδηψλ πνπ ζα δηακέλνπλ System Response Σν ζχζηεκα αλαθηά ηηο πξνηεηλφκελεο πφιεηο πξνο πξννξηζκφ απφ ηνλ θαηάινγν ησλ Ξελνδνρείσλ. Σν ζχζηεκα εκθαλίδεη ηελ θαξηέια Ξελνδνρεία. Σελ. 67 από 128

68 5 6 7 ζε θάζε δσκάηην. Ο Υξήζηεο-Πειάηεο παηάεη ην θνπκπί Αλαδήηεζε. Σν ζχζηεκα αλαδεηά ηα δηαζέζηκα Ξελνδνρεία- Γσκάηηα ζηε Βάζε Γεδνκέλσλ ζχκθσλα κε ηηο πξνηηκήζεηο ηνπ Υξήζηε- Πειάηε. Σν ζχζηεκα εκθαλίδεη ηελ θαξηέια Γηαζέζηκα Γσκάηηα, ηαμηλνκεκέλα θαηά ηηκή θαη αιθαβεηηθά. Alternative Event (α) 1 2 Actor Input 2(α)-Ο Υξήζηεο-Πειάηεο εηζάγεη ιάζνο ην φλνκα ηνπ Πξννξηζκνχ. System Response Σν ζχζηεκα ελεκεξψλεη ην Υξήζηε-Πειάηε φηη ε επηινγή πνπ έθαλε είλαη ιαλζαζκέλε κε ηελ εκθάληζε ηνπ κελχκαηνο Αλχπαξθηνο Πξννξηζκφο. Actor Input System Response Alternative Event (β) 1 2 7(β)-Γελ ππάξρνπλ δηαζέζηκα Γσκάηηα ζχκθσλα κε ηηο πξνηηκήζεηο ηνπ Υξήζηε-Πειάηε. Σν ζχζηεκα εκθαλίδεη ην κήλπκα "Γε βξέζεθαλ Απνηειέζκαηα". Δπίζεο δεκηνπξγνχκε καθέηεο νζνλψλ θαη πξσηφηππα ψζηε λα έρνπκε κία πιήξε εηθφλα ηνπ πσο ζα θαίλεηαη ην ζχζηεκα. ην ρήκα 5.5 δείρλεηαη ε ζειίδα Κξάηεζε Αεξνπνξηθνχ Δηζηηεξίνπ Κξηηήξηα Υξήζηε πνπ είλαη θαη ε Αξρηθή ειίδα ηνπ site. Δπίζεο ζην ρήκα 5.6 παξνπζηάδεηαη ην δηάγξακκα πεξηπηψζεσλ ρξήζεο γηα ηελ ελλνηνινγηθή ελφηεηα Κξάηεζε. Σελ. 68 από 128

69 χιμα 5.5 Μακζτα Οκόνθσ Κράτθςθ Αεροπορικοφ Ειςιτθρίου - Κριτιρια Χριςτθ 5.6 Περύληψη ε απηφ ην θεθάιαην, θαιχςακε ιεπηνκεξψο πψο γξάθνπκε ηηο πεξηπηψζεηο ρξήζεο πνπ ρξεζηκνπνηήζεθαλ ζηνλ ζρεδηαζκφ ηνπ ινγηζκηθνχ καο. ην Οξφζεκν 1, ζα έρνπκε γξάςεη ηελ πξψηε πξφρεηξε έθδνζε ησλ πεξηπηψζεσλ ρξήζεο καο, έρνληαο ξσηήζεη εθηελψο ηνπο πειάηεο, ηνπο ηειηθνχο ρξήζηεο θαη φια ηα ελδηαθεξφκελα κέιε ψζηε λα εθκαηεχζνπκε φζεο πεξηζζφηεξεο πιεξνθνξίεο κπνξνχκε απφ απηνχο γηα ην πψο ην λέν ζχζηεκα ζα πξέπεη λα ζπκπεξηθέξεηαη. Όκσο ν ξφινο ηνπ πειάηε δελ ηειεηψλεη εθεί. ην επφκελν θεθάιαην, ζα θαιχςεη ηηο αλάγθεο ηνπ ζηαδίνπ ηεο επαλεμέηαζεο, ζην νπνίν ζα εμαζθαιίδνπκε φηη ην domain model θαη νη πεξηπηψζεηο ρξήζεο ζπλεξγάδνληαη γηα ηελ αληηκεηψπηζε ησλ απαηηήζεσλ ηνπ πειάηε. Σελ. 69 από 128

70 χιμα 5.6 Διάγραμμα Περιπτϊςεων Χριςθσ - Κράτθςθ Σελ. 70 από 128

71 Κεφϊλαιο 6: Επανεξϋταςη Απαιτόςεων (Requirements Review) Η επαλεμέηαζε απαηηήζεσλ δηαζθαιίδεη φηη ην ζχζηεκα πνπ πεξηγξάθεηαη πξαγκαηηθά ηαηξηάδεη κε ηηο απαηηήζεηο. Δίλαη κηα ζπλεξγαηηθή επαλεμέηαζε απαηηήζεσλ πνπ πεξηιακβάλεη ηνλ εθπξφζσπν ηνπ πειάηε (-σλ), ηνπο ηειηθνχο ρξήζηεο (δειαδή ηνπο αλζξψπνπο πνπ πξάγκαηη ζα ρξεζηκνπνηήζνπλ ην ζχζηεκα, ή πνπ ρξεζηκνπνηνχλ ην ηξέρνλ ζχζηεκα πνπ αληηθαζίζηαηαη), θαη ησλ αλζξψπσλ ηνπ εκπνξίνπ. Καηά βάζε, φινη νη ζπκκεηέρνληεο ζην έξγν πνπ έρνπλ έλλνκν ζπκθέξνλ γηα ηελ εμαζθάιηζε ησλ απαηηήζεσλ ηξνθνδνηνχλ ηελ άπνςή ηνπο γηα ην ζχζηεκα. ην θεθάιαην απηφ, παξέρνπκε κηα επηζθφπεζε ηνπ ζηαδίνπ επαλεμέηαζεο απαηηήζεσλ. 6.1 Οδηγύεσ Επανεξϋταςησ απαιτόςεων Οη ζπκβνπιέο πνπ δίλνληαη ζε απηφ ην θεθάιαην ζπλνςίδνληαη ζηελ παξαθάησ ιίζηα. 1. Βεβαησλόκαζηε όηη ην domain model θαιύπηεη ηα domain πξνβιήκαηα. ηνρεχνπκε ζε έλα δηάγξακκα domain model πνπ έρεη ηηο πην ζεκαληηθέο αθαηξέζεηο (abstractions) ηνπ domain πξνβιήκαηνο. Όια ηα θνπηηά γηα απηφ ην δηάγξακκα έρνπλ ζαθείο νλφκαηα πνπ νη ρξήζηεο ηνπ ζπζηήκαηνο κπνξνχλ λα ζπζρεηίζνπλ. Καη ην δηάγξακκα απηφ πξέπεη λα γίλεη γξήγνξα. Πεξηζζφηεξεο ιεπηνκέξεηεο ζα απνθαιπθζνχλ θαζψο αλαιχνπκε ηηο πεξηπηψζεηο ρξήζεηο. 2. Γείρλνπκε ηηο ζρέζεηο Γελίθεπζεο (Generalization) θαη πλάζξνηζεο (Aggregation). Απηέο νη ζρέζεηο γελίθεπζε (είλαη-έλα) θαη ζπλάζξνηζε (έρεη-έλα) πξνρσξνχλ αξθεηά πξνο ηελ πξαγκαηνπνίεζε ηνπ δηαγξάκκαηνο θαη εηδηθά ζε αληίζεζε κε ηελ αζάθεηα. 3. Πεξηγξάθνπκε ηόζν ηα Βαζηθά όζν θαη ηα Δλαιιαθηηθά ελάξηα ζε ελεξγεηηθή θσλή. Σν γλσξίδνπκε ήδε, αιιά νη πεξηπηψζεηο ρξήζεο πεξηγξάθνπλ πψο νη ρξήζηεο ρξεζηκνπνηνχλ ην ζχζηεκα, ζε Σελ. 71 από 128

72 ρξφλν ελεζηψηα ελεξγεηηθήο θσλήο, θαη πξέπεη λα πεξηιακβάλεη ηφζν ηηο ζπλήζεηο (ειηφινπζηε εκέξα, sunny day) ρξήζεηο θαζψο θαη ηηο ιηγφηεξν ηππηθέο (βξνρεξή κέξα, rainy day) ρξήζεηο. 4. Γελ αλακεηγλύνπκε ηηο ιεηηνπξγηθέο απαηηήζεηο ζην θείκελν ησλ πεξηπηώζεσλ ρξήζεο. Οη ιεηηνπξγηθέο απαηηήζεηο είλαη παζεηηθή θσλή, απαηηήζεηο ηχπνπ "ζα πξέπεη" (π.ρ., "Σν ζχζηεκα ζα πξέπεη θάλεη απηφ»). Έλα θνηλφ ιάζνο είλαη λα ζπκπεξηιεθζνχλ απηέο ζηηο πεξηγξαθέο πεξηπηψζεσλ ρξήζεο. Αλη' απηνχ, νη ιεηηνπξγηθέο απαηηήζεηο πξέπεη λα δηαηεξνχληαη ρσξηζηά θαη λα "θαηαλεκεζνχλ" ζηηο πεξηπηψζεηο ρξήζεο. Γειαδή, νη πεξηπηψζεηο ρξήζεο πιεξνχλ ηηο ιεηηνπξγηθέο απαηηήζεηο, αιιά θαη νη απαηηήζεηο «ζα» παζεηηθήο θσλήο δελ ζπλζέηνπλ ηηο πεξηπηψζεηο ρξήζεο. Κξαηάκε ηηο πεξηπηψζεηο ρξήζεο πνπ επηθεληξψλνληαη ζηελ ρξήζε ηνπ ζπζηήκαηνο (ελεξγεηηθή θσλή). 5. Οξγαλώλνπκε ηηο πεξηπηώζεηο ρξήζεο ζε παθέηα. Μπνξνχκε λα νξγαλψζνπκε ηηο πεξηπηψζεηο ρξήζεο ζε ιεηηνπξγηθά ζπλαθείο ηνκείο (ππνζπζηήκαηα). Μία ρξήζηκε ζηξαηεγηθή είλαη λα πξνζδηνξηζηνχλ φιεο ηηο πεξηπηψζεηο ρξήζεο κέζα ζε έλα ιεηηνπξγηθφ ρψξν ζην δηάγξακκα πεξηπηψζεσλ ρξήζεο. 6. Γξάθνπκε ηηο πεξηπηώζεηο ρξήζεο ζην πιαίζην ηνπ Μνληέινπ αληηθεηκέλσλ. Με κεγάιε δηαθνξά ν πην απνηειεζκαηηθφο ηξφπνο γηα λα ζηεξίμνπκε ηηο πεξηπηψζεηο ρξήζεο ζην domain model είλαη λα θηηάμνπκε πξψηα ην domain model, θαη λα γξάςνπκε ηηο πεξηπηψζεηο ρξήζεο ψζηε λα αλαθέξνληαη ξεηά ζηα domain αληηθείκελα κε ην φλνκα ηνπο. Μεγάιν κέξνο ηεο αζάθεηαο ζηηο πεξηπηψζεηο ρξήζεο απνξξέεη απφ ην γεγνλφο φηη ζπρλά είλαη γξακκέλεο κε "φξνπο ρξήζηε" ρσξίο λα αλαθέξνληαη ξεηά θαη κε αθξίβεηα ζηα ηδηαίηεξα "ζηνηρεία ηνπ domain πξνβιήκαηνο» πνπ επεξεάδνληαη απφ ην δεηνχκελν ζελάξην. Έηζη ην πξψην βήκα γηα ηελ απνζαθήληζε ηνπ θεηκέλνπ ησλ πεξηπηψζεσλ ρξήζεο είλαη λα θάλνπκε απηφ ην θείκελν λα αλαθέξεηαη ξεηά ζηα θαηάιιεια domain αληηθείκελα. Σελ. 72 από 128

73 7. Βάδνπκε ηηο πεξηπηώζεηο ρξήζεο ζην πιαίζην ηνπ πεξηβάιινληνο ηνπ ρξήζηε. Γηα λα βαζίζνπκε ηηο πεξηπηψζεηο ρξήζε καο ζην πεξηβάιινλ εξγαζίαο ηνπ ρξήζηε, νλνκάδνπκε ηηο νζφλεο πνπ ζα ζπκκεηάζρνπλ ζηελ πεξίπησζε ρξήζεο, θαη λα ρξεζηκνπνηνχκε απηά ηα νλφκαηα ζην θείκελν ησλ πεξηπηψζεσλ ρξήζεο. Οη πεξηπηψζεηο ρξήζεο πξαγκαηηθά έρνπλ αλάγθε λα ζπλδένληαη φρη κφλν ην κνληέιν αληηθεηκέλνπ, αιιά θαη ην πξφηππν GUI κε ηηο αθεγεκαηηθέο πεξηγξαθέο ζπκπεξηθνξάο. ε πξαθηηθφ επίπεδν, απηφ ζπλήζσο ζεκαίλεη φηη ζα πξέπεη λα νλνκάζνπκε ηηο νζφλεο καο ξεηά θαη λα ρξεζηκνπνηήζνπκε απηά ηα νλφκαηα ζην θείκελν ηεο πεξίπησζεο ρξήζεο. 8. Χξεζηκνπνηνύκε Storyboards, καθέηεο νζνλώλ θαη GUI πξσηόηππα. Βεβαησλφκαζηε φηη φιε ε ζπκπεξηθνξά ηνπ ρξήζηε (π.ρ., ηα θνπκπηά πνπ κπνξνχλ λα θάλνπλ θιηθ, ηα κελνχ απφ ηα νπνία κπνξνχλ λα επηιέμνπλ) πξννξίδεηαη γηα ηηο πεξηπηψζεηο ρξήζεο. Απηέο νη καθέηεο δελ ρξεηάδεηαη λα είλαη απεηθνλίζεηο πςειήο πηζηφηεηαο κε θηλνχκελα θνπκπηά ("ην θαιχηεξν είλαη ερζξφο ηνπ θαινχ"). Πξέπεη λα είλαη απιέο, ζαθήο εηθφλεο πνπ εζηηάδνπλ πνηα ζπκπεξηθνξά ηνπ ζπζηήκαηνο ελεξγνπνηείηαη απφ ην ρξήζηε θαη πξέπεη λα είλαη γξήγνξεο ζηε δεκηνπξγία. 9. Δπαλεμέηαζε ησλ απαηηήζεσλ ζπκπεξηθνξάο κε ηνπο θαηάιιεινπο αλζξώπνπο. Δπαλεμέηαζε ησλ πεξηπηψζεσλ ρξήζεο, domain model, θαζψο θαη ησλ πξσηνηχπσλ, καθεηψλ/gui νζνλψλ κε ηνπο ηειηθνχο ρξήζηεο, ηα ελδηαθεξφκελα κέξε θαη ηνπο αλζξψπνπο ηνπ εκπνξίνπ, ζε ζπλδπαζκφ κε πην ηερληθά κέιε ηνπ πξνζσπηθνχ καο. Βεβαησλφκαζηε φηη νη απαηηήζεηο γίλνληαη θαιά θαηαλνεηέο θαη έρνπλ ζπκθσλεζεί απφ φια ηα κέξε πξηλ πξνρσξήζνπκε πξνο ηελ θαηεχζπλζε ηνπ ζρεδηαζκνχ. Ο ζηφρνο ηεο επαλεμέηαζεο ησλ απαηηήζεψλ καο είλαη ε επίηεπμε ηεο βαζηθήο ζπκθσλίαο κεηαμχ φισλ ησλ κεξψλ φηη νη πεξηπηψζεηο ρξήζεο απνηππψλνπλ ηε ζπκπεξηθνξά ησλ απαηηήζεσλ ηνπ ζπζηήκαηνο. Καη πξνθεηκέλνπ λα επηηεπρζεί ν Σελ. 73 από 128

74 ζηφρνο απηφο, ζα πξέπεη λα εμαζθαιηζζεί φηη ε απαηηνχκελε ζπκπεξηθνξά ηνπ ζπζηήκαηνο είλαη ζαθψο θαηαλνεηή απφ φινπο. 6.2 Επανεξϋταςη απαιτόςεων ςτην πρϊξη ην Οξφζεκν 1 επαλαιακβάλνπκε ηηο νδεγίεο πνπ κάζακε ζε απηφ ην θεθάιαην, αιιά θαζψο θαη ζην πξνεγνχκελν ξαθηλάξνληαο ην domain model καο, ηα δηαγξάκκαηα πεξηπηψζεσλ ρξήζεο θαη ηηο ίδηεο ηηο πεξηπηψζεηο ρξήζεηο κέρξη αλ είκαζηε ζίγνπξνη φηη αθνινπζνχληαη φινη νη θαλφλεο. Καζψο αιιάδνπκε ζηνηρεία ζηηο πεξηπηψζεηο ρξήζεο καο δε μερλάκε λα αλαλεψλνπκε θαη ην domain model ψζηε λα αθνινπζεί πηζηά ηηο πεξηπηψζεηο ρξήζεο, θαη ην αληίζηξνθν. Δπίζεο ηειεηνπνηνχκε ηα storyboards, ηα πξσηφηππα θαη ηηο καθέηεο νζνλψλ. 6.3 Περύληψη ε απηφ ην θεθάιαην, θαιχςακε ην νξφζεκν ηεο επαλεμέηαζε ησλ απαηηήζεσλ. Δίλαη έλα ζεκαληηθφ βήκα δηφηη εμαζθαιίδεη φηη νη απαηηήζεηο είλαη επαξθψο θαηαλνεηέο ηφζν απφ ηελ νκάδα αλάπηπμεο φζν θαη απφ ηνλ πειάηε / ηνπο ρξήζηεο / ηνπο ζπκκεηέρνληεο ζην έξγν. ην επφκελν θεθάιαην, ζα μεθηλήζνπκε ηνλ πξνθαηαξθηηθφ ζρεδηαζκφ, έλα βήκα ην νπνίν παξέρεη εληαηηθή αλάδξαζε ζηηο πεξηπηψζεηο ρξήζεο θαη ζην domain κνληέιν θαη νπζηαζηηθά απνηειεί ηελ γέθπξα αλάκεζα ζηελ αλάιπζε θαη ην ζρεδηαζκφ. Σελ. 74 από 128

75 Κεφϊλαιο 7: Ανϊλυςη Ευρωςτύασ χιμα 7.1 Μζκοδοσ ICONIX ςε λεπτομερειακι ροι εργαςίασ (Robustness Analysis) Γηα λα πάξνπκε απφ ηηο πεξηπηψζεηο ρξήζεο ην ιεπηνκεξή ζρεδηαζκφ (θαη ζηε ζπλέρεηα ηνλ θψδηθα), ζα πξέπεη λα ζπλδέζνπκε ηηο πεξηπηψζεηο ρξήζεο κε αληηθείκελα. Η ηερληθή πνπ πεξηγξάθεηαη ζε απηφ ην θεθάιαην, ε αλάιπζε επξσζηίαο, καο βνεζά ζην λα γεθπξψζνπκε ην ράζκα απφ ηελ αλάιπζε πξνο ην ζρεδηαζκφ, θάλνληαο αθξηβψο απηφ. Με ιίγα ιφγηα, είλαη έλαο ηξφπνο αλάιπζεο ηνπ θεηκέλνπ ησλ πεξηπηψζεσλ ρξήζεο θαη πξνζδηνξηζκνχ ελφο πξψηνπ ζπλφινπ αληηθεηκέλσλ γηα θάζε πεξίπησζε ρξήζεο. Απηά θαηαηάζζνληαη ζε boundary objects, entity objects θαη controllers (πνπ ζπρλά είλαη πεξηζζφηεξν ιεηηνπξγίεο παξά αληηθείκελα). Έλα δηάγξακκα επξσζηίαο είλαη κηα εηθφλα αληηθεηκέλσλ κηαο πεξίπησζεο ρξήζεο. Σν δηάγξακκα επξσζηίαο θαη ην θείκελν ηεο πεξίπησζεο ρξήζεο πξέπεη λα ηαηξηάδνπλ απφιπηα, έηζη ην δηάγξακκα επξσζηία καο πηέδεη λα ζπλδέζνπκε ην θείκελν ηεο πεξίπησζεο ρξήζεο κε ηα αληηθείκελα. Απηφ καο επηηξέπεη λα παίξλνπκε αληηθεηκελνζηξαθή ζρέδηα απφ ηηο πεξηπηψζεηο ρξήζεο, θαη απηφ είλαη πξαγκαηηθά ε «καγεία» ηεο αλάιπζεο επξσζηίαο. Σελ. 75 από 128

76 ρεδηάδνληαο έλα δηάγξακκα επξσζηίαο εμαζθαιίδνπκε φηη ε πεξίπησζε ρξήζεο είλαη γξακκέλε ζηα πιαίζηα ηνπ domain κνληέινπ, δειαδή φινη νη φξνη (νπζηαζηηθά θαη νλνκαηηθέο θξάζεηο) πνπ βξίζθνληαη ζην domain κνληέιν ζα πξέπεη λα ρξεζηκνπνηνχληαη επίζεο άκεζα ζην θείκελφ ησλ πεξηπηψζεσλ ρξήζεο καο. 7.1 Που τοποθετεύται το Διϊγραμμα Ευρωςτύασ ςτη διαδικαςύα Κνηηάδνληαο ρήκα 7.2, ε αλάιπζε επξσζηίαο πξαγκαηνπνηείηαη ζην ζθνηεηλφ κέζν έδαθνο αλάκεζα ζηελ αλάιπζε θαη ην ζρεδηαζκφ. Αλ ζεσξήζνπκε φηη ε αλάιπζε (δειαδή, νη πεξηπηψζεηο ρξήζεο) είλαη ην «ηη» θαη ν ζρεδηαζκφο ην «πψο», ηφηε ε αλάιπζε επξσζηίαο είλαη πξαγκαηηθά έλα πξνθαηαξθηηθφ ζρέδην. Καηά ηε δηάξθεηα απηήο ηεο θάζεο, ζα αξρίζνπκε λα θάλνπκε θάπνηεο πξνθαηαξθηηθέο ππνζέζεηο ζρεηηθά κε ην ζρέδηφ καο, θαη αξρίδνπκε λα ζθεθηφκαζηε γηα ηελ ηερληθή δνκή θαη λα ζθεθηφκαζηε κέζσ ησλ δηαθφξσλ πηζαλψλ ζηξαηεγηθψλ ζρεδηαζκνχ. Έηζη είλαη κέξνο ηεο αλάιπζε θαη κέξνο ηνπ ζρεδηαζκνχ. Δίλαη επίζεο κηα ζεκαληηθή ηερληθή γηα λα αθαηξέζνπκε ηελ αζάθεηα απφ ην θείκελν πνπ αθνξά ηε πεξίπησζε ρξήζεο καο. χιμα 7.2 Γεφφρωςθ του χάςματοσ μεταξφ του τι και του πωσ 7.2 Ανατομύα ενόσ Διαγρϊμματοσ Ευρωςτύασ Έλα δηάγξακκα επξσζηία είλαη θάπσο έλα πβξίδην κεηαμχ ελφο δηαγξάκκαηνο θιάζεο θαη ελφο δηαγξάκκαηνο δξαζηεξηφηεηαο. Δίλαη κηα εηθνλνγξαθηθή αλαπαξάζηαζε ηεο ζπκπεξηθνξάο πνπ πεξηγξάθεηαη απφ ηελ πεξίπησζε ρξήζεο, παξνπζηάδνληαο ηφζν ηηο θιάζεηο πνπ ζπκκεηέρνπλ φζν θαη ηε ζπκπεξηθνξά ηνπ ινγηζκηθνχ, αλ θαη απνθεχγεηε ζθνπίκσο λα απεηθνληζηεί πνηά θιάζε είλαη Σελ. 76 από 128

77 ππεχζπλε γηα πνηά θνκκάηηα ζπκπεξηθνξάο. Κάζε θιάζε εθπξνζσπείηαη απφ έλα γξαθηθφ εηθνλίδην ζηεξεφηππν (βιέπε ρήκα 7.3). Ωζηφζν, έλα δηάγξακκα επξσζηίαο κνηάδεη πεξηζζφηεξν ζε έλα δηάγξακκα δξαζηεξηφηεηαο (ή έλα δηάγξακκα ξνήο), κε ηελ έλλνηα φηη ην έλα αληηθείκελν "κηιά" ζην επφκελν αληηθείκελν. Απηή ε ξνή ηεο δξάζεο αληηπξνζσπεχεηαη απφ κηα γξακκή κεηαμχ ησλ δχν αληηθεηκέλσλ πνπ κηιάλε ην έλα ζην άιιν. Τπάξρεη κηα άκεζε ζπζρέηηζε έλα πξνο έλα κεηαμχ ηεο ξνή ηεο δξάζεο ζην δηάγξακκα επξσζηίαο θαη ηα βήκαηα πνπ πεξηγξάθνληαη ζην θείκελν ηεο πεξίπησζε ρξήζεο. χιμα 7.3 φμβολα Ανάλυςθσ Ευρωςτίασ Σα ηξία ζηεξεφηππα θιάζεο πνπ θαίλνληαη ζην ρήκα 7.3 είλαη ηα εμήο: Boundary objects. Η "δηαζχλδεζε" κεηαμχ ηνπ ζπζηήκαηνο θαη ηνπ έμσ θφζκνπ (δείηε πίζσ ζην ρήκα 7.3). Σα boundary objects είλαη ζπλήζσο νζφλεο ή ηζηνζειίδεο (δειαδή, ην ζηξψκα παξνπζίαζεο κε ην νπνίν αιιειεπηδξά ν ραξαθηήξαο). Entity objects. Κιάζεηο απφ ην κνληέιν domain. Controllers. Η «θφιια» κεηαμχ ησλ boundary θαη ηνλ entity objects. Δίλαη ρξήζηκν λα ζθεθηφκαζηε ηα boundary objects θαη entity objects σο νπζηαζηηθά, θαη ηνπο controllers σο ξήκαηα. Αθνινπζνχκε ηνπο παξαθάησ θαλφλεο θαηά ην ζρεδηαζκφ ησλ δηαγξακκάησλ επξσζηία καο: Σα νπζηαζηηθά κπνξνχλ λα κηινχλ ζε ξήκαηα (θαη ην αληίζηξνθν). Σα νπζηαζηηθά δε κπνξνχλ λα κηινχλ κε άιια νπζηαζηηθά. Σελ. 77 από 128

78 Σα ξήκαηα κπνξνχλ λα κηινχλ κε άιια ξήκαηα. Οη θαλφλεο απηνί βνεζνχλ ζην λα επηβάινπλ έλα ζρέδην νπζηαζηηθφ-ξήκανπζηαζηηθφ ζην θείκελν ησλ πεξηπηψζεσλ ρξήζεο καο. Αλ ην θείκελφ ησλ πεξηπηψζεσλ ρξήζεο καο αθνινπζεί απηφ ην πξφηππν, ηα δηαγξάκκαηα επξσζηίαο είλαη παλεχθνια ζην λα ζρεδηαζηνχλ. Η αλάιπζε επξσζηίαο παξέρεη έλα ινγηθφ έιεγρν ησλ πεξηπηψζεσλ ρξήζεο. 7.3 Οδηγύεσ Ανϊλυςησ Ευρωςτύασ ηελ ελφηεηα απηή, πεξηγξάθεηαη ε ζεσξία πίζσ απφ ηελ αλάιπζε επξσζηίαο, δηαλζίδνληάο ηε κε παξαδείγκαηα απφ ην έξγν ηνπ Γηαδηθηπαθνχ Σνπξηζηηθνχ Γξαθείνπ. Θα μεθηλήζνπκε κε ηηο πξψηεο θαηεπζπληήξηεο γξακκέο γηα ηελ αλάιπζε επξσζηίαο καο. 1. Θέηνπκε ην θείκελν ηεο πεξίπησζεο ρξήζεο καο δίπια από ην δηάγξακκα επξσζηίαο πνπ ζα δεκηνπξγήζνπκε. Με απηφλ ηνλ ηξφπν βνεζάκε πξαγκαηηθά ζην λα εληζρχζνπκε ην γεγνλφο φηη ζρεδηάδνπκε κία εηθφλα αληηθεηκέλσλ απφ ηα γεγνλφηα πνπ πεξηγξάθνληαη ζηελ πεξίπησζε ρξήζεο. Δπηπιένλ, ζα δνπιεχνπκε ηελ πεξίπησζε ρξήζεο κηα πξφηαζε ηε θνξά θαζψο ζα ζρεδηάδνπκε ην δηάγξακκα, έηζη είλαη βνιηθφ λα έρνπκε ην θείκελν απφ θνληά. Δπεηδή ην δηάγξακκα επξσζηίαο είλαη νπζηαζηηθά κηα αλαπαξάζηαζε κε εηθφλεο ηεο πεξίπησζεο ρξήζεο, βνεζά λα έρνπκε ην θείκελν ζε έλα ζεκείσκα ζην δηάγξακκα: είλαη δχν δηαθνξεηηθέο φςεηο ηνπ ίδηνπ πξάγκαηνο, έηζη ζα πξέπεη λα είκαζηε ζε ζέζε λα «πεξπαηήζνπκε» κέζα ζην θείκελν θαη λα ην εληνπίζνπκε ζην δηάγξακκα (θαη αληίζηξνθα). 2. Παίξλνπκε ηηο θιάζεηο νληνηήησλ (entity classes) από ην domain model θαη πξνζζέηνπκε όζεο ιείπνπλ. Οη πεξηζζφηεξεο απφ ηηο νληφηεηεο ζην δηάγξακκα επξσζηίαο καο ζα πξνέιζνπλ απφ ην κνληέιν domain. Ωζηφζν, απφ ηε ζηηγκή πνπ ζέζακε φξην ρξφλνπ ζηελ αξρηθή πξνζπάζεηα κνληεινπνίεζεο ηνπ domain model ζε κεξηθέο ψξεο, είλαη θπζηθφ λα αλακέλνπκε φηη ίζσο λα ιείπνπλ Σελ. 78 από 128

79 νξηζκέλεο domain θιάζεηο. Όηαλ είκαζηε ζηε δηάξθεηα ηεο ζχληαμεο δηαγξακκάησλ επξσζηίαο θαη ζπκβεί απηφ, θξνληίδνπκε λα πξνζζέηνπκε ηηο θιάζεηο πνπ ιείπνπλ ζην domain κνληέιν. Η κεζνδνινγία ICONIX ππνζέηεη φηη ην αξρηθφ domain κνληέιν καο ζα είλαη ειιηπήο θαη αλακέλεη φηη ιείπνπλ αληηθείκελα ηα νπνία ζα αλαθαιχπηνληαη θαηά ηελ αλάιπζε επξσζηίαο. ην βηβιίν απηφ, αλαθεξφκαζηε ζε απηή ηε δηαδηθαζία σο αλαθάιπςε αληηθεηκέλσλ. 3. Γηνξζώλνπκε ηελ πεξίπησζε ρξήζεο θαζώο ζρεδηάδνπκε ην Γηάγξακκα Δπξσζηίαο. Η πείξα έρεη δείμεη φηη ε πξψηε πξνζπάζεηα εγγξαθήο ησλ πεξηπηψζεσλ ρξήζεο έρνπλ ηελ ηάζε λα παξνπζηάδνπλ ηα αθφινπζα ραξαθηεξηζηηθά: είλαη ζπλήζσο αζαθείο, δηθνξνχκελεο, ειιηπείο θαη εζθαικέλεο. Η θαηάξγεζε ηεο αζάθεηαο απφ ηηο πεξηπηψζεηο ρξήζεο είλαη έλαο απφ ηνπο βαζηθνχο ζθνπνχο απηήο ηεο ηερληθήο. Η «καγεία» ηεο ηερληθήο απηήο είλαη ζηελ πξαγκαηηθφηεηα ε ζθιεξή δνπιεηά: ζρεδηάδνληαο έλα δηάγξακκα επξσζηίαο καο αλαγθάδεη λα δνπιέςνπκε ηελ πεξίπησζε ρξήζεο παίξλνληαο κία θξάζε ηε θνξά. Απηή ε απιή πξάμε ζρεδφλ πάληα θέξλεη ζηελ επηθάλεηα ηα ιάζε ζην θείκελν ηεο πξψηεο πξνζπάζεηαο πεξίπησζεο ρξήζεο, έηζη είλαη ζεκαληηθφ λα μαλαγξάςνπκε ηελ πεξίπησζε ρξήζεο, παξάιιεια κε ην ζρεδηαζκφ ηνπ δηαγξάκκαηνο επξσζηίαο. 4. Κάληε έλα boundary object γηα θάζε νζόλε/ζειίδα. ρεδηάδνληαο έλα δηάγξακκα επξσζηίαο κπνξνχκε λα επηβάιινπκε ζαθείο νλνκαηνινγία. Αλ, γηα παξάδεηγκα, βξνχκε έλα boundary object ζην δηάγξακκα επξσζηίαο λα έρεη φλνκα ηζηνζειίδα, ζηακαηάκε θαη πξνζπαζνχκε λα ηνπ δψζνπκε έλα πξαγκαηηθφ φλνκα, φπσο ειίδα ηνηρεία Πειάηε. 5. Οη Controllers είλαη ηππηθά ινγηθέο ιεηηνπξγίεο ινγηζκηθνύ. Δίλαη δπλαηφ λα έρνπκε control θιάζεηο ζην ζρεδηαζκφ καο (π.ρ., θιάζεηο manager) θαη κπνξνχλ λα αληηπξνζσπεπηνχλ σο controllers ζην δηάγξακκα επξσζηίαο. Ωζηφζν, δελ είλαη απφιπην φηη θάζε controller ζε έλα δηάγξακκα επξσζηίαο ζα απνηειέζεη κηα πξαγκαηηθή θιάζε Σελ. 79 από 128

80 ειέγρνπ. ε πνιιέο πεξηπηψζεηο, ν controller ζε έλα δηάγξακκα επξσζηίαο απιψο ρξεζηκνπνηείηαη σο ζχκβνιν θξάηεζεο ζέζεο γηα κηα ιεηηνπξγία ηνπ ινγηζκηθνχ. Η θαηάρξεζε ησλ θιάζεσλ controller (π.ρ. έλαο controller γηα θάζε πεξίπησζε ρξήζεο) ζε έλα δηάγξακκα επξσζηίαο κπνξεί λα καο νδεγήζεη πίζσ ζηελ ιεηηνπξγηθή απνζχλζεζε, έηζη νη controller θιάζεηο ζα πξέπεη λα ρξεζηκνπνηνχληαη κε θεηδψ. Η παξνπζίαζε ελφο ζπλδπαζκνχ αληηθεηκέλσλ θαη ησλ ιεηηνπξγηψλ ηνπο είλαη έλαο απφ ηνπο ηξφπνπο κε ηνλ νπνίν έλα δηάγξακκα επξσζηίαο δηαθέξεη νπζηαζηηθά απφ έλα δηάγξακκα ζπλεξγαζίαο. 6. Γελ αλεζπρνύκε γηα ηελ θαηεύζπλζε ησλ βειώλ ζε έλα Γηάγξακκα Δπξσζηίαο. Θπκφκαζηε φηη ην δηάγξακκα επξσζηίαο έρεη δχν ζηφρνπο: Να καο αλαγθάζεη λα απνζαθελίζνπκε ηα θείκελα ησλ πεξηπηψζεσλ ρξήζεο. Να καο βνεζήζεη λα βξνχκε ηα αληηθείκελα πνπ ιείπνπλ απφ ην domain model καο. Σν πνηα θαηεχζπλζε ζα πάξνπλ ηα βέιε δελ πξνζδίδεη ηίπνηα ζηνπο παξαπάλσ ζηφρνπο. 7. Γείρλνπκε Δπηθαινύκελεο (Invoked) πεξηπηώζεηο ρξήζεο ζην Γηάγξακκα Δπξσζηίαο. Μπνξνχκε λα κεηαθέξνπκε κία πεξίπησζε ρξήζεο ζε έλα δηάγξακκα επξσζηίαο αλ γίλεηαη επίθιεζε απφ ηελ πεξίπησζε ρξήζεο γνλέα. Δίλαη ν απινχζηεξνο ηξφπνο γηα λα δείμνπκε κηα πεξίπησζε επηθαιείηαη απφ κία άιιε ζε έλα δηάγξακκα επξσζηίαο. 8. Σν Γηάγξακκα Δπξσζηίαο αλαπαξηζηά έλα πξνθαηαξθηηθό ζρέδην ησλ πεξηπηώζεσλ ρξήζεο. Δδψ είλαη κεξηθέο ζεκειηψδεηο αιήζεηεο ζρεηηθά κε ηελ αλάπηπμε ηνπ ζπζηήκαηνο: Δίλαη κηα θαιή ηδέα λα αληηιακβαλφκαζηε πιήξσο ηηο απαηηήζεηο πξηλ πξνρσξήζνπκε ζην ζρεδηαζκφ. Σελ. 80 από 128

81 Δίλαη ζπρλά αδχλαην λα θαηαλνήζνπκε πιήξσο ηηο απαηηήζεηο ρσξίο λα θάλνπκε θάπνηα δηεξεπλεηηθή ζρεδίαζε. Απηέο νη δχν θαηαζηάζεηο κπνξεί λα θαίλνληαη αληηθαηηθέο, αιιά ε ιχζε είλαη πνιχ απιή: κπνξνχκε λα θάλνπκε κηα πξνθαηαξθηηθή κειέηε κε ζθνπφ ηελ επηθχξσζε ηεο ζπκπεξηθνξάο ησλ απαηηήζεσλ, πξηλ απφ ηνλ πξαγκαηηθφ ζρεδηαζκφ, ν νπνίνο ζα καο νδεγήζεη ζηνλ θψδηθα. Σν δηάγξακκα επξσζηίαο αληηπξνζσπεχεη ηα ζρέδηα κειέηεο, ελψ ν πξαγκαηηθφο ζρεδηαζκφο εκθαλίδεηαη ζηα δηαγξάκκαηα αθνινπζίαο. 9. Σα αληηθείκελα ζην Γηάγξακκα Δπξσζηίαο ζα πάξνπλ κνξθή ζην ιεπηνκεξή ζρεδηαζκό. Κιάζεηο boundary θαη entity ζην δηάγξακκα επξσζηίαο ζα κεηακνξθσζνχλ γεληθά ζε ζηηγκηφηππα αληηθεηκέλσλ ζην δηάγξακκα αθνινπζίαο, θαζψο νη controllers ζα γίλνπλ κελχκαηα. Λακβάλνπκε ππφςε φηη ηφζν ηα boundary αληηθείκελα φζν θαη ηα entity αληηθείκελα είλαη νπζηαζηηθά, θαη φηη νη controllers είλαη ξήκαηα (δειαδή, κηα δξάζε πνπ εθηειείηαη ζε έλα αληηθείκελν). Ωο εθ ηνχηνπ, είλαη ινγηθφ φηη νη controllers (ελεξγεηψλ) ζα γίλνπλ κέζνδνη ζηηο θιάζεηο boundary θαη entity αληίζηνηρα. 7.4 Πώσ πραγματοποιούμε ανϊλυςη ευρωςτύασ; Δθηεινχκε αλάιπζε επξσζηίαο γηα κία πεξίπησζε ρξήζεο ελεξγψληαο κέζσ ηνπ θεηκέλνπ πεξίπησζεο ρξήζεο, κία θξάζε θάζε θνξά, θαη ζρεδηάδνληαο ηνλ/ηνπο ραξαθηήξα(-εο), ηα θαηάιιεια boundary θαη entity αληηθείκελα θαη ηνπο controllers, θαζψο θαη ηηο ζπλδέζεηο κεηαμχ ησλ δηαθφξσλ ζηνηρείσλ ηνπ δηαγξάκκαηνο. Θα πξέπεη λα εγθαηαζηήζνπκε ην βαζηθφ ζελάξην θαη φια ηα ελαιιαθηηθά ζελάξηα ζε έλα δηάγξακκα. 7.5 Διϊγραμμα ευρωςτύασ ςτην πρϊξη Παξαθάησ, ζην ρήκα 7.4, παξνπζηάδνπκε ην δηάγξακκα επξσζηίαο γηα ηελ πεξίπησζε ρξήζεο Δπηινγή ραξαθηεξηζηηθψλ θξάηεζεο δσκαηίνπ. (Πεξηζζφηεξα Σελ. 81 από 128

82 δηαγξάκκαηα επξσζηίαο γηα φιεο ηηο πεξηπηψζεηο ρξήζεο ηνπ ζπζηήκαηφο καο ζα βξείηε ζην ζπλνδεπηηθφ cd πνπ βξίζθεηαη ζηελ ηειεπηαία ζειίδα ηνπ βηβιίνπ). 7.6 Ενημϋρωςη του ςτατικού domain model μασ Καηά ηε ζχληαμε ησλ δηαγξακκάησλ επξσζηίαο, είλαη κηα θαιή ηδέα λα ελεκεξψλνπκε ζηαδηαθά ην domain κνληέιν καο, θαζψο πξνρσξάκε. Θα αλαθαιχςνπκε ζρεδφλ αλαπφθεπθηα λέεο θιάζεηο domain. Θα πξνζδηνξίδεη επίζεο ηα ραξαθηεξηζηηθά πνπ πξέπεη λα πξνζηεζνχλ ζηηο θιάζεηο απηέο. Απηφ φιν πξέπεη λα γίλεη ζην domain model (γλσζηφ θαη σο αλάιπζε ζε επίπεδν ζηαηηθνχ κνληέινπ), θαη είλαη θαιχηεξν λα ην θάλνπκε ηψξα, πνπ κφιηο εληνπίζακε απηέο ηηο αιιαγέο ή ηα λέα ζηνηρεία, πξηλ μεραζηνχλ. Σα λέα ραξαθηεξηζηηθά είλαη δπλαηφλ λα αλαθαιπθζνχλ απφ ην θείκελν ησλ πεξηπηψζεσλ ρξήζεο, είηε απφ ηα πξσηφηππα GUI, ή αθφκε θαη απφ ηηο ιεηηνπξγηθέο απαηηήζεηο. 7.7 Περύληψη ην θεθάιαην απηφ, πεξάζακε απφ ηελ αλάιπζε ζην ζρεδηαζκφ, ρξεζηκνπνηψληαο έλα απφ ηα πην ρξήζηκα θαη αθφκε πην θαιά θπιαγκέλα κπζηηθά ηεο βηνκεραλίαο: ηελ αλάιπζε επξσζηίαο. Έηζη εξρφκαζηε ζην Οξφζεκν 2: Πξνθαηαξθηηθή Δπηζθφπεζε ρεδηαζκνχ (Preliminary Design Review, PDR) πνπ θαιχπηεηαη ζην επφκελν θεθάιαην. Σελ. 82 από 128

83 χιμα 7.4 Διάγραμμα Ευρωςτίασ Επιλογι χαρακτθριςτικϊν κράτθςθσ δωματίου Σελ. 83 από 128

84 Κεφϊλαιο 8: Προκαταρκτικό Επιςκόπηςη Σχεδιαςμού (Preliminary Design Review, PDR) χιμα 8.1 Μεκοδολογία ICONIX ςε λεπτομερειακι ροι εργαςίασ (PDR) Η Πξνθαηαξθηηθή Δπηζθφπεζε ρεδηαζκνχ καο βνεζά λα βεβαησζνχκε φηη ηα δηαγξάκκαηα επξσζηίαο, ην domain κνληέιν, θαζψο θαη ην θείκελν πνπ αθνξά ηηο πεξηπηψζεηο ρξήζεο ηαηξηάδνπλ φια κεηαμχ ηνπο. Η επηζθφπεζε απηή είλαη ε «πχιε» κεηαμχ ηνπ πξνθαηαξθηηθνχ ζρεδηαζκνχ θαη ησλ ιεπηνκεξψλ ζηαδίσλ ζρεδηαζκνχ, γηα θάζε παθέην πεξηπηψζεσλ ρξήζεο. 8.1 Οδηγύεσ Προκαταρκτικόσ Επιςκόπηςησ Σχεδιαςμού Οη αξρέο πνπ δίλνληαη ζε απηφ ην θεθάιαην ζπλνςίδνληαη ζηελ παξαθάησ ιίζηα. 1. Χξεζηκνπνηνύκε ηνλ επηζεκαληή γηα λα ειέγμνπκε όηη ην θείκελν ηεο πεξίπησζεο ρξήζεο ηαηξηάδεη κε ην δηάγξακκα επξσζηίαο. Μεξηθέο θνξέο ζθεθηφκαζηε φηη πξέπεη λα αλαθέξνπκε κφλν ηε βαζηθή πνξεία δξάζεο ζε έλα δηάγξακκα επξσζηίαο, ή φηη πξέπεη λα θάλνπκε έλα μερσξηζηφ δηάγξακκα γηα θάζε ελαιιαθηηθή πνξεία. Αιιά είλαη θαιχηεξα λα δνχκε νιφθιεξε ηελ πεξίπησζε ρξήζεο (βαζηθφ Σελ. 84 από 128

85 ζελάξην, αιιά θαη φια ηα ελαιιαθηηθά ζελάξηα) ζε έλα εληαίν δηάγξακκα επξσζηίαο. Αλ ην δηάγξακκα γίλεηαη πάξα πνιχ κεγάιν (ή αλ δηαπηζηψζνπκε φηη ηα ελαιιαθηηθά έρνπλ ηα δηθά ηνπο ελαιιαθηηθά ζελάξηα), ηφηε είλαη ζίγνπξε ε θαηάηκεζε ηεο πεξίπησζεο ρξήζεο. Αλ επηζεκάλνπκε κία θξάζε ζην θείκελν ησλ πεξηπηψζεσλ ρξήζεο θαη επηζεκάλνπκε θαη ηνλ αληηθαηνπηξηζκφ ηεο θξάζεο ζην δηάγξακκα επξσζηίαο, κέρξη λα ηειεηψζεη φιε ε πεξίπησζε ρξήζεο (βαζηθφ θαη ελαιιαθηηθά ζελάξηα) ηφηε ην δηάγξακκά καο είλαη ζσζηφ θαη ην ίδην θαη ε πεξίπησζε ρξήζεο καο. Αλ φκσο βξνχκε φηη δελ ηαηξηάδνπλ ηφηε πξέπεη λα ην δηνξζψζνπκε. 2. Βεβαησλόκαζηε όηη όιεο νη νληόηεηεο εκθαλίδνληαη ζην αλαλεσκέλν domain model. Η αλαθάιπςή αληηθεηκέλσλ είλαη έλαο απφ ηνπο πξσηαξρηθνχο ζθνπνχο ηεο αλάιπζεο επξσζηίαο, δελ έρεη λφεκα λα αλαθαιχςνπκε λέα αληηθείκελα ζηα ζρεηηθά δηαγξάκκαηα επξσζηία καο θαη λα κελ ηα πξνζζέζνπκε ζην κνληέιν θιάζεο (class model) καο (ην νπνίν εμειίζζεηαη απφ ην κνληέιν domain). 3. Βεβαησλόκαζηε όηη κπνξνύκε λα εληνπίζνπκε ηε ξνή δεδνκέλσλ κεηαμύ ησλ θιάζεσλ θαη ησλ νζνλώλ. Η πεξίπησζε ρξήζεο καο πνιχ πηζαλφ λα πεξηιακβάλεη ρξήζηεο πνπ θαζνξίδνπλ ηηο πιεξνθνξίεο ρξεζηκνπνηψληαο ηηο νζφλεο ηνπ ζπζηήκαηνο. Σα δεδνκέλα απηά πξέπεη λα βξνπλ ην δξφκνο πξνο ηηο θιάζεηο νληνηήησλ, νη νπνίεο θαηέρνπλ ηηο αμίεο πνπ είλαη εγγεγξακκέλεο σο ηδηφηεηεο. Φπζηθά, απηφ ιεηηνπξγεί επίζεο θαη κε ηνλ άιιν ηξφπν: νη ηηκέο απφ ηηο θιάζεηο νληνηήησλ ζα εκθαλίδνληαη ζηηο νζφλεο. 4. Γελ πξέπεη λα μεράζνπκε ηα ελαιιαθηηθά ζελάξηα θαη ηελ ζπκπεξηθνξά ηνπο. Σν έρνπκε μαλαεπηζεκάλεη αιιά είλαη ην πην ζεκαληηθφ. Δίλαη ε ηειεπηαία καο επθαηξία γηα λα εληνπίζνπκε ηα ελαιιαθηηθά ζελάξηα ηα νπνία είλαη πνιχ ζεκαληηθά ζηελ κεηέπεηηα πνξεία ηεο αλάπηπμεο ηνπ ζπζηήκαηφο καο. Σν λα μερλάκε ηα ελαιιαθηηθά ζελάξηα είλαη κία κεγάιε αζηνρία ζηελ αλάπηπμε ινγηζκηθνχ. Γηα θάζε ελαιιαθηηθφ ζελάξην, θπζηθά, βεβαησλφκαζηε φηη ε ζπκπεξηθνξά ηνπ ζπζηήκαηνο σο απάληεζε ζηελ θαηάζηαζε πνπ Σελ. 85 από 128

86 πξνθαιεί είλαη πιήξσο εκπεξηζηαησκέλε. Σν λα πξνζδηνξίζνπκε φηη κηα ελαιιαθηηθή πνξεία κπνξεί λα ζπκβεί είλαη αλαγθαίν, αιιά δελ επαξθεί γηα ηελ νινθιήξσζε ηεο πεξίπησζεο ρξήζεο καο. Δθηφο απφ ηελ θαηαρψξηζε ησλ ελαιιαθηηθψλ ζελαξίσλ, είλαη δσηηθήο ζεκαζίαο λα πεξηγξάςνπκε ιεπηνκεξψο ηελ αθξηβή ζπκπεξηθνξά (ηνπ ρξήζηε θαη ηνπ ζπζηήκαηνο), ηνπ ηξφπνπ κε ηνλ νπνίν ην ελαιιαθηηθφ ζελάξην ζα ρεηξηζηεί απφ ην ζχζηεκα. 5. Βεβαησλόκαζηε όηη θάζε πεξίπησζε ρξήζεο θαιύπηεη θαη ηηο δύν πιεπξέο ηνπ δηαιόγνπ ρξήζηεο/ζύζηεκα. Έλα απφ ηα πην ζπλεζηζκέλα ιάζε, είλαη φηη γξάθνληαη απιά κφλν ηα βήκαηα πνπ αθνινπζεί ν ρξήζηεο. Απηή ε ιαλζαζκέλε δηαδηθαζία αγλνεί έλα ζεκειησδψο ζεκαληηθφ ζεκείν: ζηηο πεξηζζφηεξεο πεξηπηψζεηο, ν ζηφρνο είλαη λα θαηαλνεζεί πιήξσο θαη λα θαζνξηζηεί ε ζπκπεξηθνξά ηνπ ινγηζκηθνχ ηνπ ζπζηήκαηνο. Αλ γξάςνπκε κφλν ηηο ελέξγεηεο ησλ ρξεζηψλ θαη αγλνήζνπκε ηε ζπκπεξηθνξά ηνπ ζπζηήκαηνο, δελ θάλνπκε κεγάιε πξφνδν πξνο ηνλ ζηφρν ηνπ θαζνξηζκνχ ηεο ζπκπεξηθνξάο ηνπ ινγηζκηθνχ. 6. Βεβαησλόκαζηε όηη δελ έρνπκε παξαβηάζεη ηνπο θαλνληζκνύο ζύληαμεο ηεο αλάιπζεο επξσζηίαο. Καζ φιε ηε δηάξθεηα ηεο επηζθφπεζεο πξέπεη λα έρνπκε ζην λνπ καο ηηο εμήο πεξηπηψζεηο: Οη ραξαθηήξεο ζπλδένληαη κφλν κε boundary objects. Γελ ππάξρεη επηθνηλσλία νπζηαζηηθφ-νπζηαζηηθφ, κεηαμχ boundary/entity, boundary/boundary, ή entity/entity αληηθεηκέλσλ ρσξίο controllers κεηαμχ ηνπο. Οη controllers εθπξνζσπνχλ ηελ ζπκπεξηθνξά ηνπ ζπζηήκαηνο, έηζη ζα ήηαλ πνιχ θαθφ λα ηνπο αθήζνπκε έμσ. 7. Βεβαησλόκαζηε όηη νη πεξηπηώζεηο ρξήζεο είλαη ζην πιαίζην ηόζν ηνπ κνληέινπ αληηθεηκέλσλ όζν θαη ηνπ GUI. Η καγεία ηνπ επηπέδνπ αθαίξεζεο πνπ κφιηο πεξηγξάςακε επηηπγράλεηαη εχθνια κε ηελ ηνπνζέηεζε ηεο πεξίπησζε ρξήζεο ζην πιαίζην ηνπ κνληέινπ αληηθεηκέλνπ θαη ηνπ GUI. ηελ πξάμε, απηφ ζεκαίλεη φηη έρνπκε νλνκαηίζεη ηηο νζφλεο καο θαη ηηο domain θιάζεηο καο. Η επίιπζε ηεο Σελ. 86 από 128

87 αζάθεηαο ησλ νλνκάησλ ζηε ρξήζε ησλ domain αληηθεηκέλσλ θαη ησλ νζνλψλ ιχλεη πνιιά πξνβιήκαηα. Οη πεξηπηψζεηο ρξήζεο ζε απηφ ην επίπεδν πξέπεη επίζεο λα είλαη ζην πιαίζην ηεο (εμειηζζφκελεο) ηερληθήο αξρηηεθηνληθήο ηνπ ζπζηήκαηνο, αιιά δελ πξέπεη λα πεξλνχλ ζην ιεπηνκεξή ζρεδηαζκφ. 8. Γελ πξέπεη λα παξαζπξζνύκε ζε ιεπηνκεξή ζρεδηαζκό. Πξέπεη λα ζπκφκαζηε φηη ην δηάγξακκα επξσζηίαο αληηπξνζσπεχεη κηα εμηδαληθεπκέλε, πξνθαηαξθηηθή κειέηε, φρη ηνλ «πξαγκαηηθφ ζρεδηαζκφ ηνπ ινγηζκηθνχ". ηελ πξάμε, απηφ ζεκαίλεη φηη νη απνθάζεηο πνπ ζρεηίδνληαη κε ηελ θαηαλνκή ηεο ζπκπεξηθνξάο κεηαμχ ησλ θιάζεσλ δελ πξέπεη λα γίλνληαη ζηα δηαγξάκκαηα επξσζηίαο. Οη απνθάζεηο απηέο θαιχηεξα αλαβάιινληαη κέρξη ην ζρεδηαζκφ ησλ δηαγξακκάησλ αθνινπζίαο. Η ICONIX δηαδηθαζία αθνινπζεί ηελ πξνζέγγηζε δχν πεξαζκάησλ γηα λα θηάζνπκε ζην ιεπηνκεξή ζρεδηαζκφ. ην πξψην πέξαζκα, ζθφπηκα αγλνεί "πνηνο θάλεη ηη» θαη επηθεληξψλεηαη ζηνλ εληνπηζκφ αληηθεηκέλσλ, ζηελ νλνκαζία νζνλψλ θαη ηε ζαθή πεξηγξαθή ηεο ζπκπεξηθνξάο. Μφιηο γίλεη απηφ ζσζηά (θαη ην έρνπκε επαιεζεχζεη ζηε δηάξθεηα ηνπ PDR), είκαζηε έηνηκνη λα αλαιάβνπκε ην πξφβιεκα ηεο εθρψξεζεο ζπκπεξηθνξάο (δειαδή, πψο νη κέζνδνη θαηαλέκνληαη κεηαμχ ησλ θιάζεσλ) θαηά ηε δηάξθεηα ηνπ ιεπηνκεξνχο ζρεδηαζκνχ. 8.2 Προκαταρκτικό Επιςκόπηςη Σχεδιαςμού ςτην πρϊξη Έρνληαο θαηαλνήζεη ηα βήκαηα ησλ δχν ηειεπηαίσλ θεθαιαίσλ πεξλάκε επαλαιεπηηθά απφ φιεο ηηο πεξηπηψζεηο ρξήζεο ηα δηαγξάκκαηα επξσζηίαο θαη ην domain κνληέιν θαη ειέγρνπκε αλ αθνινπζνχλ ηα βήκαηα απηά θαη επηκεινχκαζηε ηπρφλ δηνξζψζεηο. Δίλαη πνιχ ζεκαληηθφ λα είλαη φια ζσζηά πξηλ πξνρσξήζνπκε ζην ζρεδηαζκφ γη απηφ ην ιφγν ηνλίζηεθαλ νη παξαπάλσ νδεγίεο ζε απηφ ην θεθάιαην. Όηαλ θηάζνπκε ζην ζρεδηαζκφ ζα είλαη πιένλ αξγά λα δηνξζψζνπκε ηα πξνβιήκαηα θαη σο απνηέιεζκα ην ζχζηεκά καο ζα πάξεη ιάζνο ηξνπή, ην νπνίν είλαη ηφζν επηθίλδπλν φζν θαη δεκηνγφλν νηθνλνκηθά. Σελ. 87 από 128

88 8.3 Περύληψη ην θεθάιαην απηφ, θαιχςακε ην νξφζεκν Πξνθαηαξθηηθή Δπηζθφπεζε ρεδηαζκνχ (Preliminary Design Review, PDR). Απηφ ην βήκα πεξηιακβάλεη ηε δηαζθάιηζε φηη ηα δηαγξάκκαηα επξσζηίαο θαη ην θείκελν ησλ πεξηπηψζεσλ ρξήζεο ηαηξηάδνπλ κεηαμχ ηνπο θαη φηη θαη ηα δχν είλαη πιήξεηο θαη εθπξνζσπνχλ νξζά ηελ επηζπκεηή ζπκπεξηθνξά ηνπ ζπζηήκαηνο. Μφιηο ην PDR είλαη πιήξεο, είκαζηε έηνηκνη λα πξνρσξήζνπκε ζε ιεπηνκεξή ζρεδηαζκφ, πνπ θαιχπηνπκε ζην θεθάιαην 10. Η ηερληθή αξρηηεθηνληθή (technical architecture, TA) είλαη επίζεο έλα ζεκαληηθφ βήκα. Η δηαηχπσζε ηνπ TA αξρίδεη θαηά ηε δηάξθεηα ηεο αλάιπζεο επξσζηίαο, αιιά πξαγκαηηθά μεθηλά κε πςειή ηαρχηεηα ιίγν πξηλ απφ ην ιεπηνκεξή ζρεδηαζκφ. Έρνπκε θαιχςεη ην TA ζην θεθάιαην 9. Σελ. 88 από 128

89 Κεφϊλαιο 9: Τεχνικό Αρχιτεκτονικό (Technical Architecture, TA) χιμα 9.1 Μεκοδολογία ICONIX ςε λεπτομερειακι ροι εργαςίασ (technical architecture) Ο ζθνπφο ηεο ηερληθήο αξρηηεθηνληθήο (ΣΑ) είλαη λα πάξνπκε κηα γεληθή ηδέα γηα ην ζχζηεκα πνπ ζα αλαπηχμνπκε. Θα είλαη έλα web-based ζχζηεκα; Ή έλα ζχζηεκα πινχζην ζε πειάηεο ζε VB. NET ή Java Swing; Μήπσο πξέπεη λα ρξεζηκνπνηήζνπκε έλα ζπγθεθξηκέλν πιαίζην εθαξκνγήο; Γελ ππάξρεη ηππνπνηεκέλε ζεκεηνγξαθία ή κνξθφηππν γηα ηελ ηεθκεξίσζε ηεο ΣΑ. Σν βάζνο θαη ε κνξθή ηεο ηερληθήο αξρηηεθηνληθήο θαη ησλ ζπκβάζεσλ γηα ηε δεκηνπξγία ηεο πνηθίιινπλ ζε κεγάιν βαζκφ απφ εηαηξία ζε εηαηξία. ην θεθάιαην απηφ, αλαιχνπκε ηηο ηερλνινγίεο, πνπ απνθαζίζακε ζε απηφ ην ζηάδην, λα ρξεζηκνπνηήζνπκε ζην ζχζηεκά καο, ην Γηαδηθηπαθφ Σνπξηζηηθφ Γξαθείν. 9.1 Τι εύναι η τεχνικό αρχιτεκτονικό; Η ηερληθή αξρηηεθηνληθή (πνπ αλαθέξεηαη επίζεο σο αξρηηεθηνληθή ηνπ ζπζηήκαηνο θαη αξρηηεθηνληθή ινγηζκηθνχ) γεληθά πεξηγξάθεη ην ζχζηεκα πνπ ζθνπεχνπκε λα ρηίζνπκε απφ ηελ άπνςε ηεο δνκήο. Η αξρηηεθηνληθή είλαη Σελ. 89 από 128

90 θηηαγκέλε γηα λα ηθαλνπνηήζεη ηηο απαηηήζεηο ησλ επηρεηξήζεσλ θαη ην επίπεδν ππεξεζηψλ ηνπ ζπζηήκαηνο πνπ πξφθεηηαη λα ρηίζνπκε. Η αξρηηεθηνληθή πεξηιακβάλεη (αιιά δελ πεξηνξίδεηαη ζε απηά) ηελ ηνπνινγία ηνπ ζπζηήκαηνο (νη θφκβνη server, θπζηθή ηνπνζεζία ζην δίθηπν, ηελ επηινγή ηνπ δηαθνκηζηή εθαξκνγψλ, θ.ιπ.). Έλα θαιφ ΣΑ ζα πξέπεη λα βαζίδεηαη ζε δηεμνδηθή αλάιπζε ησλ εκπιεθφκελσλ "αξηζκψλ", δειαδή, ηνλ αξηζκφ ησλ αλζξψπσλ πνπ ζα ρξεζηκνπνηνχλ ην ζχζηεκα αλά πάζα ζηηγκή, αλ ππάξρνπλ ψξεο αηρκήο (θαη πφηε είλαη απηέο), ηνλ αξηζκφ ησλ ζπλαιιαγψλ αλά ιεπηφ, ηα θξηηήξηα failover, θαη νχησ θαζεμήο. Οη αξηζκνί απηνί ζα δηαδξακαηίζνπλ έλαλ ηεξάζηην ξφιν ζηελ απφθαζε γηα ην είδνο ηνπ server εθαξκνγψλ (ή web server) πνπ ζα πξέπεη λα ρξεζηκνπνηεζεί, πφζεο άδεηεο ζα αγνξαζηνχλ θαη ηερλνινγίεο server θαη client ζα πξέπεη λα ρξεζηκνπνηεζνχλ. 9.2 Οδηγύεσ Τεχνικόσ Αρχιτεκτονικόσ Οη αξρέο πνπ ζα ζπδεηεζνχλ ζε απηφ ην θεθάιαην ζπλνςίδνληαη παξαθάησ ζε κεξηθέο νδεγίεο. 1. Ξερσξίδνπκε ηηο ιεηηνπξγηθέο αξρηηεθηνληθέο, ηηο αξρηηεθηνληθέο δεδνκέλσλ θαη ηνπ ζπζηήκαηνο. Οη αξρηηεθηνληθέο γεληθά θαιχπηνπλ ηξεηο πεξηνρέο: Σν κνληέιν αλάπηπμεο (δηαθνκηζηέο δηθηχνπ θαη εθαξκνγήο, θαη πψο ηαηξηάδνπλ κεηαμχ ηνπο, ηνπνινγία ηνπ ζπζηήκαηνο, πξνγξάκκαηα πεξηήγεζεο ζην Web πνπ ππνζηεξίδνληαη θιπ.). Σν package/component model (δηαρσξηζκφο ησλ πξνβιεκαηηζκψλ ζε δηαθνξεηηθά παθέηα). Σν κνληέιν δεδνκέλσλ. 2. Βαζίδνπκε ηελ αξρηηεθηνληθή ζηηο απαηηήζεηο. Δίλαη δειεαζηηθφ λα βαζίζνπκε ηελ αξρηηεθηνληθή ζηελ ηειεπηαία ιέμε ηεο ηερλνινγίαο, αληί λα αθνχκε ηη πξνζηάδνπλ νη απαηηήζεηο θαη λα ιάβνπκε κηα αληηθεηκεληθή απφθαζε πνπ βαζίδεηαη ζε φηη ρξεηάδεηαη. Σα δεηήκαηα πξνυπνινγηζκνχ είλαη επίζεο ζεκαληηθά. Αλ απνθαζίζνπκε γηα Σελ. 90 από 128

91 παξάδεηγκα φηη, απφ ηερληθήο άπνςε, ν θαιχηεξνο server γηα ην έξγν είλαη ν «BankBreaker 8,0 Service Pack 12," είλαη ηθαλφο ν πξνυπνινγηζκφο λα ζηεξίμεη κία ηέηνηα αγνξά; Τπάξρνπλ θζελφηεξεο (θαη πην ηζρπξέο) ελαιιαθηηθέο ιχζεηο πνπ ηαηξηάδνπλ κε ηηο απαηηήζεηο εμίζνπ θαιά; 3. Δμεηάδνπκε ηνπο παξάγνληεο απφ άπνςε επεθηαζηκόηεηαο, αζθάιεηαο θαη δηαζεζηκόηεηαο. 4. Δμεηάδνπκε ηελ δηεζλνπνίεζε θαη ηελ ηνπηθή πξνζαξκνγή. 5. Θέηνπκε «δύζθνια» εξσηήκαηα ζε όια ηα άηνκα πνπ ζπκκεηέρνπλ. Δξσηήκαηα ζρεηηθά κε δεηήκαηα φπσο ε αζθάιεηα, ν έιεγρνο, ε θνξεηφηεηα θαη ε επεθηαζηκφηεηα ζα πξέπεη λα απαληεζνχλ ηψξα, φρη έμη κήλεο κεηά ην έξγν. 6. Δμεηάδνπκε ηε δπλαηόηεηα δνθηκώλ (testability). 7. Δμεηάδνπκε κε πνηα εμσηεξηθά ζπζηήκαηα ζα ππάξρεη δηαζύλδεζε. Οξγαλψλνπκε ηηο απαηηήζεηο γηα νηηδήπνηε αθνξά ηηο ζπγρξνληζκέλεο ή αζχγρξνλεο εμσηεξηθέο αιιειεπηδξάζεηο ηνπ ζπζηήκαηνο. Γηα ζχγρξνλα ζπζηήκαηα, ζθεθηφκαζηε εμσηεξηθή δηαζεζηκφηεηα ηνπ ζπζηήκαηνο. Δίλαη κηα απαίηεζε ην ζχζηεκά καο λα κε κπνξεί λα ιεηηνπξγήζεη ρσξίο ην άιιν ζχζηεκα; 9.3 Τεχνικό Αρχιτεκτονικό ςτην πρϊξη ε απηήλ ηελ ελφηεηα ζα πεξηγξάςνπκε ηηο αξρηηεθηνληθέο πνπ ρξεζηκνπνηήζεθαλ γηα ηελ αλάπηπμε ηνπ ζπζηήκαηνο καο θαη είραλ νξγαλσζεί θαη απνθαζηζηεί ζε απηφ ην ζεκείν ηεο αλάπηπμεο ηνπ έξγνπ καο, δειαδή ιίγν κεηά ηελ πξνθαηαξθηηθή επηζθφπεζε ζρεδηαζκνχ θαη ηεο νινθιήξσζεο ησλ δηαγξακκάησλ επξσζηίαο, ηνπ domain model θαη ιίγν πξηλ ην ζρεδηαζκφ ησλ δηαγξακκάησλ αθνινπζίαο. Σελ. 91 από 128

92 9.3.1 Διακομιςτόσ (Server) Καζψο απνθαζίζακε φηη ε εθαξκνγή καο ζα είλαη δηαδηθηπαθή έπξεπε λα απνθαζίζνπκε θαη ηνλ θαηάιιειν web server πνπ ζα ζηήξηδε ηελ εθαξκνγή απηή θαη ζα είλαη ππεχζπλνο γηα ηελ απνζηνιή ησλ ζηνηρείσλ κέζσ ηνπ δηαδηθηχνπ. Απνθαζίζακε ινηπφλ φηη ν θαηαιιειφηεξνο server γηα ηελ εθπαηδεπηηθή καο εθαξκνγή είλαη ν Apache Tomcat ιφγσ ησλ παξαθάησ πιενλεθηεκάησλ: Πξνεγκέλα ραξαθηεξηζηηθά. Ο Apache Server έρεη ηα πην πξνεγκέλα ραξαθηεξηζηηθά ζηελ αγνξά ησλ servers. Δπίζεο ν Apache είλαη πάληα θαηλνηφκνο θαη ρξεζηκνπνηεί ηα ηειεπηαία πξσηφθνιια πνπ ρξεζηκνπνηνχληαη ζην δηαδίθηπν. Δπειημία. Ο Apache Server κπνξεί λα πξνζαξκνζηεί πνιχ εχθνια, ιφγσ ηεο αξζξσηήο ηνπ δνκήο. Δπθνιία ζην δηαρεηξηζκό. Η δηαρείξηζε είλαη έλα απφ ηα θχξηα ζηνηρεία θάζε είδνπο servers. Ο Apache Server έρεη κηα ιίζηα κε αξρεία ξπζκίζεσλ πνπ είλαη θαιά ηεθκεξησκέλε κε φιεο ηηο απαξαίηεηεο πιεξνθνξίεο ψζηε λα κπνξνχκε λα ηα δηαβάζνπκε θαη λα ελεκεξσζνχκε γηα φια ηα ραξαθηεξηζηηθά θαη ηηο ξπζκίζεηο ηνπ Apache Server. Δπηπιένλ, ηα αξρεία ξπζκίζεσλ είλαη ζε κνξθή ASCII θαη κπνξνχλ λα παξαδνζνχλ ρσξίο θακία επηπινθή. Ο Apache Server είλαη αλνηρηή εθαξκνγή. Έλα απφ ηα πιενλεθηήκαηα ηνπ Apache είλαη φηη απνηειεί έλα επεθηάζηκν εξγαιείν. Σν API ηνπ Apache Server αλήθεη ζην Open Source Community (θνηλφηεηα αλνηρηνχ θψδηθα). Με άιια ιφγηα, κπνξνχκε λα πξνζζέζνπκε ελφηεηεο πνπ δελ ππάξρνπλ ζηνλ Server Apache. Δπίζεο κπνξνχκε λα γξάςνπκε ην δηθφ καο θψδηθα θαη λα πξνζαξκφζνπκε ζε Apache Server ηηο ιεηηνπξγίεο θαη ηηο βειηηψζεηο πνπ ηαηξηάδνπλ κε ηηο αλάγθεο καο. Η δεκνηηθφηεηα ηνπ Apache είλαη ην πξντφλ ηεο ελζσκάησζεο ησλ ρηιηάδσλ πξνγξακκαηηζηψλ θαη πξνρσξεκέλσλ ρξεζηψλ αλά ηνλ θφζκν, πνπ πξνηείλνπλ ζεκαληηθέο αιιαγέο θαη βειηηψζεηο γηα ηε δεκηνπξγία ελφο ηζρπξνχ web server φπσο Apache. Σελ. 92 από 128

93 Ο Web Server ηνπ Apache είλαη απνηειεζκαηηθόο. Η απνηειεζκαηηθή ρξήζε ηνπ Apache είλαη κηα κεγάιε αξεηή γηα έλαλ web server. Ο Apache Server έρεη θαηαθέξεη θάηη πνπ δελ έρνπλ νη θάλεη νη άιινη δηαθνκηζηέο web. Όιεο νη πξνζπάζεηεο ζην λα έρνπκε έλα Server Apache πεξηζζφηεξν βειηηζηνπνηεκέλν έρνπλ πξαγκαηηθά πξαγκαηνπνηεζεί. ήκεξα κπνξνχκε λα δνχκε ηνλ θαξπφ ελφο πνιχ ζηαζεξνχ θαη ψξηκνπ web server κε κεγάιε απφδνζε. Φνξεηόηεηα θαη ππνζηήξημε. Σν κεγαιχηεξν φθεινο ηνπ Open Source Community είλαη ε ππνζηήξημε ησλ ινγηζκηθψλ ηνπο πέληε αζηέξσλ πνπ δελ ππάξρεη αιινχ ζηελ αγνξά. Δπίζεο ν Apache πξνζθέξεη κία ζαπκάζηα θνξεηφηεηα πνπ κπνξεί λα εγθαηαζηαζεί θαη λα ιεηηνπξγήζεη θάησ απφ πνιιέο πιαηθφξκεο κε πςειφ επίπεδν θνξεηφηεηαο. Ο Apache server ρξεζηκνπνηείηαη επίζεο ζε θάζε hosting server Χρηςιμοπούηςη του Netbeans για την ανϊπτυξη τησ εφαρμογόσ Η αλάπηπμε κίαο εθαξκνγήο δηαδηθηχνπ είλαη αξθεηά απαηηεηηθή δηαδηθαζία δηφηη απαηηεί ηελ ζχκπξαμε πνιιψλ δηαθνξεηηθψλ γισζζψλ πξνγξακκαηηζκνχ θαη έλα ηξφπν ζπλδπαζκνχ πνιιψλ ηερλνινγηψλ. Γηα παξάδεηγκα, κπνξεί λα ρξεηαζηεί ε ρξεζηκνπνίεζε ηεο HTML θαη CSS γηα ηε κνξθνπνίεζε ησλ ζειίδσλ καο, JavaScript γηα κεξηθά θνπκπηά rollover, Java servlets ή JSP γηα ηε δηαρείξηζε κίαο θφξκαο. Με ην Netbeans IDE δε ρξεηάδεηαη λα γλσξίδνπκε φιεο ηηο γιψζζεο ή ην πψο ζπλδπάδνληαη νη δηάθνξεο ηερλνινγίεο. Σν Netbeans ρεηξίδεηαη φιεο ηηο γιψζζεο θαη ζπλδπάδεη φιεο ηηο ηερλνινγίεο άςνγα γηα εκάο. Έηζη επηιέμακε κέζσ ηνπ κελνχ ηνπ Netbeans ηε δεκηνπξγία ελφο Web Application φπνπ πεξάζακε θαη ηνλ apache server ψζηε λα δηαρεηξίδεηαη ηηο ζπλαιιαγέο Χρηςιμοπούηςη του JQUERY Σν JQuery είλαη κία βηβιηνζήθε JavaScript πνιιαπιψλ δηαθνκηζηψλ πνπ ζρεδηάζηεθε γηα ηελ απινπνίεζε ηεο δέζκεο ελεξγεηψλ ζε HTML ζηελ πιεπξά ηνπ Σελ. 93 από 128

94 πειάηε. Δίλαη έλα δσξεάλ, αλνηρηνχ θψδηθα ινγηζκηθφ πνπ ζρεδηάζηεθε γηα ηελ απινπνίεζε ηεο πεξηήγεζεο ζε έλα θείκελν, ηε δεκηνπξγία animations, ηελ επηινγή ζηνηρείσλ DOM, ην ρεηξηζκφ γεγνλφησλ θαη ζηελ αλάπηπμε Ajax εθαξκνγψλ. Δκείο ηε ρξεζηκνπνηήζακε γηα ην ρεηξηζκφ ελεξγεηψλ θαη ηε δεκηνπξγία animations Χρόςη τησ PostgreSQL ωσ βϊςη δεδομϋνων Η PostgreSQL είλαη κία ηζρπξή, αλνηρηνχ θψδηθα, αληηθεηκελνζηξαθήο ζρεζηαθή βάζε δεδνκέλσλ. Έρεη πεξηζζφηεξα απφ 15 ρξφληα ελεξγήο αλάπηπμεο θαη κηα απνδεδεηγκέλε αξρηηεθηνληθή ε νπνία έρεη θεξδίζεη κηα ηζρπξή θήκε γηα ηελ αμηνπηζηία, ηελ αθεξαηφηεηα ησλ δεδνκέλσλ, θαη ηελ νξζφηεηα. Σξέρεη ζε φια ηα κεγάια ιεηηνπξγηθά ζπζηήκαηα, ζπκπεξηιακβαλνκέλνπ ηνπ Linux, UNIX (AIX, BSD, HP-UX, IRIX SGI, Mac OS X, Solaris, Tru64), θαη ηα Windows. Δίλαη πιήξσο ζπκβαηφ ACID, έρεη ηελ πιήξε ζηήξημε ησλ μέλσλ θιεηδηψλ (foreign keys), ελψζεσλ (joins), ησλ φςεσλ (views), ησλ ζεκείσλ ελεξγνπνίεζεο (triggers) θαη ησλ απνζεθεπκέλσλ δηαδηθαζηψλ (stored procedures) (ζε πνιιέο γιψζζεο). Πεξηιακβάλεη ην κεγαιχηεξν κέξνο ηνπ SQL: 2008 ηχπνπο δεδνκέλσλ, ζπκπεξηιακβαλνκέλσλ ησλ INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL θαη TIMESTAMP. Τπνζηεξίδεη επίζεο ηελ απνζήθεπζε δπαδηθψλ κεγάισλ αληηθεηκέλσλ, ζπκπεξηιακβαλνκέλσλ εηθφλσλ, ήρσλ ή βίληεν. Έρεη κεηξηθή δηαζπλδέζεηο πξνγξακκαηηζκνχ C / C + +, Java,. Net, Perl, Python, Ruby, Tcl, ODBC, κεηαμχ άιισλ, θαη εμαηξεηηθή ηεθκεξίσζε. Δκείο ηελ επηιέμακε γηα φια ηα παξαπάλσ αιιά θαη γηαηί ηαίξηαμε απφιπηα ζηελ εθαξκνγή πνπ πινπνηήζακε, ηελ έρνπκε δηδαρζεί ζην ηκήκα καο θαη είλαη πνιχ εχθνιε ζηε ρξήζε θαη ζηελ πινπνίεζε. εκαληηθφ ξφιν παξέρεη ε πιεζψξα ησλ ηεθκεξηψζεσλ θαη ησλ tutorials πνπ ππάξρνπλ ζην δηαδίθηπν θαη βνήζεζαλ πνιχ ζηελ πινπνίεζε ηεο βάζεο καο. 9.4 Περύληψη ην θεθάιαην απηφ παξνπζηάζακε ηελ ηερληθή αξρηηεθηνληθή (TA) θαη πήξακε κία γεχζε απφ ηηο ηερλνινγίεο πνπ ρξεζηκνπνηήζεθαλ γηα ηελ αλάπηπμε ηνπ πξνγξάκκαηφο καο. Αλαθέξνπκε φηη ην ΣΑ δηαθέξεη απφ έξγν ζε έξγν θαη δελ είλαη Σελ. 94 από 128

95 ν θεληξηθφο ζηφρνο ηεο ICONIX. Παξ φια απηά είλαη έλα θαιφ ζεκείν λα επηιέμνπκε ηηο ηερλνινγίεο θαη ηηο αξρηηεθηνληθέο πνπ ζα ρξεζηκνπνηήζνπκε γηα ηελ αλάπηπμε ηεο εθαξκνγήο καο. Μία αλάζα πξηλ ην ιεπηνκεξή ζρεδηαζκφ. ην επφκελν θεθάιαην αλαπηχζζνπκε ην ιεπηνκεξή ζρεδηαζκφ θαη ζρεδηάδνπκε ηα δηαγξάκκαηα αθνινπζίαο ηνπ Online Σνπξηζηηθνχ Γξαθείνπ καο. Κεφϊλαιο 10: Διαγρϊμματα Ακολουθύασ (Sequence Diagrams) χιμα 10.1 Μεκοδολογία ICONIX λεπτομερειακι ροι εργαςίασ (Sequence Diagram) Μφιηο νινθιεξψζακε ηελ αλάιπζε επξσζηίαο, θαη έρνπκε δηεμάγεη ηελ πξνθαηαξθηηθή επηζθφπεζε ζρεδηαζκνχ, είλαη ε ψξα λα μεθηλήζεη ε αλαιπηηθή πξνζπάζεηα ζρεδηαζκνχ. Ωο ηψξα, ην θείκελν ησλ πεξηπηψζεσλ ρξήζεο καο πξέπεη είλαη πιήξεο, νξζφ, ιεπηνκεξέο θαη ζαθέο. Δλ νιίγνηο, νη πεξηπηψζεηο ρξήζεο καο πξέπεη λα είλαη ζε κηα θαηάζηαζε, φπνπ λα κπνξνχκε λα δεκηνπξγήζνπκε έλα ιεπηνκεξή ζρεδηαζκφ απφ απηέο. Όια ηα ζηάδηα ηεο δηαδηθαζίαο κέρξη ζηηγκήο έρνπλ πξνεηνηκάζεη ηηο πεξηπηψζεηο ρξήζεο γηα ηελ αλαιπηηθή δξαζηεξηφηεηα ηνπ ζρεδηαζκνχ. Έρνληαο νινθιεξψζεη ηελ αλάιπζή επξσζηίαο θαη ην PDR, ζα πξέπεη ηψξα λα έρνπκε αλαθαιχςεη ιίγν πνιχ φιεο ηηο domain θιάζεηο πνπ πξφθεηηαη λα ρξεηαζηνχκε. Σελ. 95 από 128

96 10.1 Διαγρϊμματα Ακολουθύασ και λεπτομερεύσ αντικειμενοςτραφόσ ςχεδιαςμόσ (object-oriented design, OOD) Αλ ζεσξήζνπκε φηη ν πξνθαηαξθηηθφο ζρεδηαζκφο έρεη λα θάλεη κε ηελ αλαθάιπςε ησλ θιάζεσλ (γλσζηφο θαη σο αλαθάιπςε αληηθεηκέλσλ), ηφηε ν ιεπηνκεξήο ζρεδηαζκφο έρεη λα θάλεη, αληηζέησο, ζρεηηθά κε ηελ θαηαλνκή ζπκπεξηθνξάο (γλσζηφο θαη σο θαηαλνκή ζπκπεξηθνξάο), δειαδή ηελ θαηαλνκή ησλ ιεηηνπξγηψλ ηνπ ινγηζκηθνχ πνπ έρνπλ εληνπηζηεί ζην ζχλνιν ησλ θιάζεσλ πνπ αλαθαιχθζεθαλ θαηά ηε δηάξθεηα ηνπ πξνθαηαξθηηθνχ ζρεδηαζκνχ. Όηαλ ζρεδηάδνπκε έλα δηάγξακκα αθνινπζίαο, ζαξψλνπκε αθφκε κία θνξά ηνλ πξνθαηαξθηηθφ ζρεδηαζκφ, πξνζζέηνληαο ιεπηνκέξεηεο. Με ηνλ πξνθαηαξθηηθφ ζρεδηαζκφ, θάλακε θάπνηεο αλεπίζεκεο πξψηεο ππνζέζεηο γηα ην πψο νη θιάζεηο ζα αιιειεπηδξνχλ κεηαμχ ηνπο. Σψξα ήξζε ε ψξα λα θάλνπκε απηέο ηηο δειψζεηο αθξηβείο, γηα λα ηηο κεηαηξέςνπκε ζε ιεπηνκεξή ζρεδηαζκφ πνπ ιεηηνπξγεί ζην πιαίζην ηεο ΣΑ πνπ έρνπκε νξίζεη. Τπάξρεη άκεζε ζρέζε κεηαμχ θάζε πεξίπησζε ρξήζεο, δηαγξάκκαηνο επξσζηίαο, θαζψο θαη δηαγξακκάησλ αθνινπζίαο. Αθξηβψο φπσο ζρεδηάζακε έλα δηάγξακκα επξσζηίαο αλά πεξίπησζε ρξήζεο, ζα ζρεδηάζνπκε επίζεο έλα δηάγξακκα αθνινπζίαο γηα θάζε πεξίπησζε ρξήζεο Σημειογραφύα Διαγρϊμματοσ Ακολουθύασ Πξηλ αλαιχζνπκε ηηο βέιηηζηεο πξαθηηθέο γηα ηελ θαηάξηηζε δηαγξακκάησλ αθνινπζίαο απφ ηηο πεξηπηψζεηο ρξήζεο, ζα καο βνεζήζεη λα θαηαιάβνπκε ηα ζηνηρεία απφ ηα νπνία απνηειείηαη έλα δηάγξακκα αθνινπζίαο (βιέπε ρήκα 10.2) χιμα 10.2 θμειογραφία Διαγραμμάτων Ακολουκίασ Σελ. 96 από 128

97 Σα αληηθείκελα ζηελ θνξπθή ηνπ δηαγξάκκαηνο (Υξήζηεο-Πειάηεο, Έθδνζε Πηζηνπνηεηηθνχ, θ.ιπ.) αιιειεπηδξνχλ κεηαμχ ηνπο κε ην πέξαζκα κελπκάησλ εκπξφο θαη πίζσ. Οη θαηαθφξπθεο δηαθεθνκκέλεο γξακκέο (ή γξακκέο δσήο αληηθεηκέλσλ) αληηπξνζσπεχνπλ ην ρξφλν, νπφηε ε δηαδηθαζία μεθηλάεη κε ην πξψην κήλπκα πνπ βξίζθεηαη θαη πάλσ πάλσ (ε ζειίδα Έθδνζε Πηζηνπνηεηηθνχ παίξλεη ην (get ()) απφ ην αληηθείκελν Υξήζηεο-Πειάηεο). Έλαο ραξαθηήξαο (ν Υξήζηεο-Πειάηεο ζηελ εηθφλα 10.2) είλαη ν ρξήζηεο ηνπ νπνίνπ ηελ αιιειεπίδξαζε κε ην ζχζηεκα έρνπκε θαζνξίζεη ζε θαζεκία απφ ηηο πεξηπηψζεηο ρξήζεο. (Βιέπε «φξηα ηνπ ζπζηήκαηνο» ζην ζρήκα 5.3.) Αλαγλσξίδνπκε ηα εηθνλίδηα ησλ boundary objects θαη ησλ entity objects απφ ην δηάγξακκα επξσζηίαο ηνπ θεθαιαίνπ 7. (ην ρήκα 10.2, ηα boundary objects είλαη ε Έθδνζε Πηζηνπνηεηηθνχ θαη ην Έγγξαθν Πηζηνπνηεηηθφ, ελψ ην boundary object είλαη ν Υξήζηεο-Πειάηεο.) Ωζηφζν, παξαηεξνχκε φηη δελ ππάξρνπλ αληηθείκελα controller ζην δηάγξακκα αθνινπζίαο (αλ θαη ζα κπνξνχζαλ λα ππάξρνπλ). Απηφ ζπκβαίλεη γηαηί φηαλ ζρεδηάδνπκε ηα δηαγξάκκαηα αθνινπζίαο, νη controllers (ηα ξήκαηα) κεηαηξέπνληαη ζε κελχκαηα ζηα boundary θαη entity αληηθείκελα (ηα νπζηαζηηθά). Σν επίθεληξν ηνπ ειέγρνπ, δειαδή ην νξζνγψλην θνπηί πνπ αθνινπζεί θάζε ζηνηρείν ησλ δηαγξακκάησλ αθνινπζίαο, αληηπξνζσπεχεη ην ρξφλν πνπ κία ζπγθεθξηκέλε ιεηηνπξγία/κέζνδνο έρεη ηνλ έιεγρν. Ξεθηλάεη κε ην βέινο πνπ θαηεπζχλεηαη πξνο ηε ιεηηνπξγία θαη ηειεηψλεη φηαλ ε ιεηηνπξγία επηζηξέθεη θάπνηα ηηκή. Όπσο ζα δνχκε παξαθάησ είλαη θαιχηεξα λα απελεξγνπνηνχκε ζηελ αξρή ην επίθεληξν ειέγρνπ γηαηί απνζπά ηελ πξνζνρή απφ ην ζηφρν ηνπ ζρεδηαζκνχ Οδηγύεσ Διαγραμμϊτων Ακολουθύασ ηελ ελφηεηα απηή, δείρλνπκε πψο ρξεζηκνπνηνχκε ηα δηαγξάκκαηα αθνινπζίαο σο κεραληζκφ γηα ηελ εμεξεχλεζε θαη ηε ζπκπιήξσζε ηνπ ιεπηνκεξνχο αληηθεηκελνζηξαθή ζρεδηαζκνχ γηα θάζε πεξίπησζε ρξήζεο. Καη μεθηλάκε αλαιχνληαο κία ιίζηα κε νδεγίεο. 1. Καηαλόεζε ηνπ γηαηί ζρεδηάδνπκε δηαγξάκκαηα αθνινπζίαο. Καηά ηελ θαηάξηηζε ησλ δηαγξακκάησλ αθνινπζίαο, εμεξεπλνχκε ζρνιαζηηθά ηα κέζα θαη έμσ ηνπ ιεπηνκεξνχο ζρεδηαζκνχ γηα θάζε Σελ. 97 από 128

98 πεξίπησζε ρξήζεο, ζε κηθξνζθνπηθή ιεπηνκέξεηα. Απηφ ζεκαίλεη εμεξεχλεζε φρη κφλν ηνπ βαζηθνχ ζελαξίνπ, αιιά θαη φισλ ησλ ελαιιαθηηθψλ ζε θάζε πεξίπησζε ρξήζεο. Δίλαη εθπιεθηηθφ πφζα ζέκαηα ζρεδηαζκνχ κπνξεί λα αιηεπζνχλ ζε απηή ηε θάζε, εμνηθνλνκψληαο ρξφλν απφ ηνλ επαλαζρεδηαζκφ πνπ ζα πξνέθππηε αξγφηεξα. Σα δηαγξάκκαηα αθνινπζίαο έρνπλ πξσηαξρηθνχο ζθνπνχο ζηε δηαδηθαζία ICONIX: Καηαλνκή ζπκπεξηθνξάο ζηηο θιάζεηο. Δληνπίζακε απηέο ηηο θιάζεηο θαηά ηε δηάξθεηα ηεο αλάιπζεο επξσζηίαο. Καηά ηε δηάξθεηα ηεο αθνινπζίαο δηαγξακκάησλ, νη controllers (επίζεο αλαθαιχπηνληαη θαηά ηελ αλάιπζε επξσζηίαο) κεηαηξέπνληαη ζε ιεηηνπξγίεο γηα ηηο θιάζεηο. Ωζηφζν, δελ ρξεηάδεηαη θαη αλάγθελ λα θαηαιήγνπλ κε ζρέζε 1:1 αληηζηνηρία κεηαμχ ησλ controller θαη ησλ ιεηηνπξγηψλ. πρλά, έλαο controller κεηαηξέπεηαη ζε δχν ή πεξηζζφηεξεο ιεηηνπξγίεο. Καη φπσο είπακε θαη λσξίηεξα, πεξηζηαζηαθά έλαο controller κπνξεί επίζεο λα κεηαηξαπεί ζε κηα controller θιάζε. Γείρλνπκε ιεπηνκεξεηαθά πσο νη θιάζεηο αιιειεπηδξνύλ κεηαμύ ηνπο ζε όιε ηε δηάξθεηα ησλ πεξηπηώζεσλ ρξήζεο. Καηά ηε ζρεδίαζε ησλ δηαγξακκάησλ αθνινπζίαο, ζα πξέπεη λα δηεξεπλνχκε ην πψο ην ζχζηεκα ζα πξαγκαηνπνηήζεη ηε ζπκπεξηθνξά πνπ πεξηγξάθεηαη ζηηο πεξηπηψζεηο ρξήζεο καο. Απηφ επηηπγράλεηαη θαζψο ζθεθηφκαζηε θαη ζηε ζπλέρεηα απεηθνλίδνπκε ηνλ ηξφπν πνπ ηα αληηθείκελα καο ζα αιιειεπηδξνχλ κεηαμχ ηνπο θαηά ηελ εθηέιεζε. Οξηζηηθνπνηνύκε ηελ θαηαλνκή ησλ ιεηηνπξγηώλ κεηαμύ ησλ θιάζεσλ. Αθνχ πξαγκαηνπνηεζεί ε αλάιπζε επξσζηίαο, ζα πξέπεη σο ηψξα λα έρνπλ εληνπηζηεί ηνπιάρηζηνλ ηα ηξία ηέηαξηα ησλ ραξαθηεξηζηηθψλ (attributes) (ηα δεδνκέλα) ζρεηηθά κε ηηο θιάζεηο καο, αιιά πνιχ ιίγεο, ελδερνκέλσο, απφ ηηο ιεηηνπξγίεο (operations) (ζπκπεξηθνξέο). Απηφ ζπκβαίλεη γηαηί θαηά ηνλ πξνθαηαξθηηθφ ζρεδηαζκφ, ηα ζηνηρεία απηά δελ Σελ. 98 από 128

99 ππήξραλ ψζηε λα θαηαλείκνπκε ηηο ιεηηνπξγίεο ρσξίο λα καληέςνπκε. Ωζηφζν, ηψξα πνπ είκαζηε ζην ζηάδην ηνπ ιεπηνκεξνχο ζρεδηαζκνχ, ζα πξέπεη λα έρνπκε ηα πάληα ζε ζέζε γηα λα θαηαλείκνπκε κε αθξίβεηα ηε ζπκπεξηθνξά κεηαμχ ησλ θιάζεσλ καο. 2. Φηηάρλνπκε έλα δηάγξακκα αθνινπζίαο γηα θάζε πεξίπησζε ρξήζεο. 3. Γείρλνπκε πσο ε ζπκπεξηθνξά ησλ πεξηπηώζεσλ ρξήζεο επηηπγράλεηαη από ηα αληηθείκελα. Οη controllers ζε έλα δηάγξακκα επξσζηίαο γεληθά παξνπζηάδνπλ ηηο "ινγηθέο" ιεηηνπξγίεο ηνπ ινγηζκηθνχ. Κάζε ινγηθή ιεηηνπξγία κπνξεί λα επηηεπρζεί κε έλα ή πεξηζζφηεξα κελχκαηα κεηαμχ ησλ αληηθεηκέλσλ πνπ ζα εκθαληζηνχλ ζην δηάγξακκα αθνινπζίαο. Όπσο ζρεδηάδνπκε ηα κελχκαηα, πξαγκαηηθά θαηαλέκνπκε ιεηηνπξγίεο ζε θιάζεηο, έηζη ψζηε ην δηάγξακκα αθνινπζίαο λα δείρλεη ηελ θαηαλνκή ηεο ζπκπεξηθνξάο κεηαμχ ησλ ζπλεξγαδφκελσλ αληηθεηκέλσλ. 4. Παξνπζηάδνπκε ην θείκελν ησλ πεξηπηώζεσλ ρξήζεο ζην δηάγξακκα αθνινπζίαο. Σν θείκελν ηεο πεξίπησζεο ρξήζεο πνπ εκθαλίδεηαη ζην αξηζηεξφ πεξηζψξην ηνπ δηαγξάκκαηνο αθνινπζίαο είλαη πξαγκαηηθά κηα ζχκβαζε κεηαμχ ησλ πειαηψλ θαη ησλ πξνγξακκαηηζηψλ. Θα πξέπεη λα πξνζδηνξίδεη ζαθψο ηηο απαηηήζεηο ζπκπεξηθνξάο θαηά ην ρξφλν εθηέιεζεο πνπ ηθαλνπνηνχλ ηηο αλάγθεο ηνπ πειάηε. Γεδνκέλνπ φηη έρνπκε ηελ παξνχζα ζχκβαζε, είλαη ινγηθφ λα ρξεζηκνπνηήζνπκε ην δηάγξακκα αθνινπζίαο γηα λα απνηππψζνπκε γξαθηθά πψο ν ζρεδηαζκφο ηθαλνπνηεί ηηο απαηηήζεηο ζπκπεξηθνξάο. 5. Γελ πξέπεη λα μνδεύνπκε πνιύ ρξόλν γηα ην επίθεληξν ειέγρνπ. 6. Αλαζέηνπκε ιεηηνπξγίεο (operations) ζηηο θιάζεηο ελώ ζρεδηάδνπκε ηα κελύκαηα. Δίλαη ζεκαληηθφ ην δηάγξακκα αθνινπζίαο λα νδεγεί ηελ θαηαλνκή ιεηηνπξγηψλ ζηηο θιάζεηο. 7. Δπαλεμεηάδνπκε ην δηάγξακκα θιάζεσο (class diagram) θαζώο εθρσξνύκε ιεηηνπξγίεο ζηηο θιάζεηο. Δθφζνλ αλαζέηνπκε ελεξγά Σελ. 99 από 128

100 ιεηηνπξγίεο ζε θιάζεηο, θαη δεδνκέλνπ φηη είλαη πνιχ εχθνιν λα θάλνπκε ιάζε ελψ ζρεδηάδνπκε ηα δηαγξάκκαηα αθνινπζίαο, ζα πξέπεη ζπλερψο ειέγρνπκε φηη ηα δηαγξάκκαηα αθνινπζίαο καο δηαζηαπξψλνληαη κε ην δηάγξακκα θιάζεο καο γηα λα είκαζηε βέβαηνη φηη φηαλ αλαζέηνπκε κηα ιεηηνπξγία ζε κηα θιάζε, βγάδεη λφεκα. 8. Καζαξίδνπκε ην ζηαηηθό κνληέιν πξηλ πεξάζνπκε ζηελ θξίζηκε επηζθόπεζε ζρεδηαζκνύ (critical design review, CDR). Κνηηάκε πξνζεθηηθά ην ζηαηηθφ κνληέιν, πξνζπαζψληαο λα ηαθηνπνηήζνπκε ην ζρεδηαζκφ, λα επηιχζνπκε ζέκαηα ζρεδηαζκνχ ηνπ πξαγκαηηθνχ θφζκνπ, λα εληνπίζνπκε ρξήζηκα ζρεδηαζηηθά πξφηππα πνπ κπνξνχλ λα ζπλππνινγίδνληαη γηα ηε βειηίσζε ηνπ ζρεδηαζκνχ, θαη νχησ θαζεμήο. Απηφ ζα πξέπεη ηνπιάρηζηνλ λα γίλεη κέρξη ην ηειηθφ βήκα πξηλ πξνρσξήζνπκε ζην CDR. Αθνχ νινθιεξψζνπκε ηνλ πξνθαηαξθηηθφ ζρεδηαζκφ, ην δηάγξακκα θιάζεσο ζα πξέπεη λα έρεη ιηγφηεξεο ηξχπεο απφ πξηλ ηελ αλάιπζε επξσζηίαο. Οη πηζαλφηεηεο είλαη φηη βξέζεθαλ θάπνηεο πξφζζεηεο θιάζεηο πνπ έιεηπαλ απφ ην domain model θαη πνιιέο απφ ηηο θιάζεηο έρνπλ γεκίζεη κε ιεηηνπξγίεο. Όκσο αθφκα θαη αλ ζθεθηνχκε φηη έρνπκε θαηαλείκεη ηε ζπκπεξηθνξά ηνπ ζπζηήκαηνο ζηηο θιάζεηο, ππάξρεη αθφκα πξφζζεηε δνπιεηά κέρξη λα θηάζνπκε ζηνλ θψδηθα Διαγρϊμματα Ακολουθύασ ςτην πρϊξη Αθνχ αλαιχζακε ηηο νδεγίεο γηα ην πψο ζα ζρεδηάζνπκε έλα ζσζηφ δηάγξακκα αθνινπζίαο ήξζε ε ψξα ηνπ ζρεδηαζκνχ. ην ρήκα 10.3 παξνπζηάδνπκε νιφθιεξν ην δηάγξακκα αθνινπζίαο Έθδνζεο Πηζηνπνηεηηθνχ Κξάηεζεο, πνπ απφζπαζκά ηνπ ρξεζηκνπνηήζακε ζην ρήκα Δπίζεο παξνπζηάδνπκε κέξνο ηνπ δηαγξάκκαηνο θιάζεο, ζην ρήκα (Οιφθιεξν ην δηάγξακκα θιάζεο κπνξεί λα βξεζεί ζην ζπλνδεπηηθφ cd ζην ηέινο ηνπ βηβιίνπ.) Σελ. 100 από 128

101 10.5 Περύληψη ε απηφ ην θεθάιαην θαιχςακε ην ιεπηνκεξή ζρεδηαζκφ. Μφιηο ζρεδηάζνπκε φια ηα δηαγξάκκαηα αθνινπζίαο γηα φιεο ηηο πεξηπηψζεηο ρξήζεο θαη αλαλεψζνπκε ην ζηαηηθφ κνληέιν καο, ηφηε κπνξνχκε λα πνχκε φηη ηειεηψζακε κε απηφ ην ζηάδην. Σψξα είκαζηε ζρεδφλ έηνηκνη λα μεθηλήζνπκε ηε ζχληαμε ηνπ θψδηθα. Τπάξρεη κία ηειεπηαία ζηάζε πξηλ ηελ θσδηθνπνίεζε, ε Κξίζηκε Δπηζθφπεζε ρεδηαζκνχ (Critical Design Review, CDR), πνπ θαιχπηνπκε ζην επφκελν Κεθάιαην. Δίλαη έλα ζεκαληηθφ βήκα θαζψο απνηειεί έλαλ έιεγρν πξαγκαηηθφηεηαο γηα ην ζρεδηαζκφ. Σελ. 101 από 128

102 χιμα 10.3 Διάγραμμα Ακολουκίασ Ζκδοςθ Πιςτοποιθτικοφ Κράτθςθσ Σελ. 102 από 128

103 χιμα 10.4 Διάγραμμα Κλάςθσ (Class Diagram) Σελ. 103 από 128

104 Κεφϊλαιο 11: Κρύςιμη Επιςκόπηςη Σχεδιαςμού (Critical Design Overview, CDR) χιμα 11.1 Μεκοδολογία ICONIX ςε λεπτομερειακι ροι εργαςίασ (CDR) Σν έξγν καο ζα πξέπεη ηψξα λα είλαη ζε πνιχ θαιχηεξε θαηάζηαζε. Μέρξη ηψξα, έρνπκε ρξεζηκνπνηήζεη ηελ αλάιπζε επξσζηίαο γηα λα απνζαθελίζνπκε ην θείκελν πνπ αθνξά ηηο πεξηπηψζεηο ρξήζεο θαη λα αλαθαιχςνπκε ηηο domain θιάζεηο πνπ ιείπνπλ, έρνπκε δηεμάγεη πξνθαηαξθηηθή επηζθφπεζε ζρεδηαζκνχ (PDR) γηα λα βεβαησζνχκε φηη νη πεξηπηψζεηο ρξήζεο ηαηξηάδνπλ κε απηφ πνπ ν πειάηεο ζέιεη πξαγκαηηθά, θαη έρνπκε δεκηνπξγήζεη πξνζεθηηθά έλα ιεπηνκεξή ζρεδηαζκφ γηα ηηο πεξηπηψζεηο ρξήζεο πνπ ζα πινπνηήζνπκε ζε απηή ηελ έθδνζε. Έηζη, είκαζηε ζρεδφλ έηνηκνη λα μεθηλήζνπκε ηελ θσδηθνπνίεζε. Τπάξρεη κφλν έλα γξήγνξν (αιιά δσηηθήο ζεκαζίαο) νξφζεκν: ε Κξίζηκε Δπηζθφπεζε ρεδηαζκνχ (Critical Design Review, CDR) Οδηγύεσ για την Κρύςιμη Επιςκόπηςη Σχεδιαςμού Οη αξρέο πνπ δηέπνπλ απηφ ην θεθάιαην κπνξνχλ λα ζπλνςηζηνχλ ζηελ αθφινπζε ιίζηα νδεγηψλ. Σελ. 104 από 128

105 1. Βεβαησλόκαζηε όηη ην δηάγξακκα αθνινπζίαο ηαηξηάδεη κε ην αληίζηνηρν θείκελν πεξίπησζεο ρξήζεο. Θα πξέπεη λα είκαζηε ζε ζέζε λα εληνπίζνπκε απφ ηηο απαηηήζεηο ζπκπεξηθνξάο (ζην αξηζηεξφ πεξηζψξην) πψο νη απαηηήζεηο απηέο ζα εθαξκνζηνχλ απφ ηα κελχκαηα πνπ απνζηέιινληαη κεηαμχ ησλ αληηθεηκέλσλ. Σν δηάγξακκα αθνινπζίαο ζα πξέπεη λα παξέρεη έλα νπηηθφ ίρλνο ησλ απαηηήζεσλ κε κηα καηηά. Γειαδή, ε ζαθήο απαηηήζεηο ζπκπεξηθνξάο πξέπεη λα είλαη νξαηέο ζην αξηζηεξφ πεξηζψξην ηνπ δηαγξάκκαηνο, θαη θαηεπζείαλ πξνο ηα δεμηά ηεο θάζε πξφηαζεο ζα πξέπεη λα είλαη ηα αληηθείκελα/κελχκαηα πνπ ζα πινπνηήζνπλ ηηο απαηηήζεηο απηέο. Έηζη ζα πξέπεη λα είλαη αξθεηά απιφ λα ειέγρνπκε ηηο απαηηήζεηο, ελψ θνηηάδνπκε ην ιεπηνκεξή ζρεδηαζκφ. Η ρξεζηκνπνίεζε ηεο επηζήκαλζεο είλαη έλα πνιχ ρξήζηκν εξγαιείν φπσο αλαθέξακε θαη ζην Οξφζεκν Βεβαησλόκαζηε όηη νη ιεηηνπξγίεο έρνπλ αλαηεζεί θαηάιιεια ζηηο θιάζεηο. Βεβαησλφκαζηε φηη θάζε κία απφ ηηο θιάζεηο καο έρεη κηα ζπλεθηηθή, εζηηαζκέλε ζεηξά δξάζεσλ. 3. Δπαλεμεηάδνπκε ηα ραξαθηεξηζηηθά (attributes) θαη ηηο ιεηηνπξγίεο (operations) ησλ θιάζεσλ καο. Θα πξέπεη λα επαλεμεηάζνπκε ηηο θιάζεηο ζην δηάγξακκα θιάζεσλ καο γηα λα βεβαησζνχκε φηη έρνπλ φιεο έλα θαηάιιειν ζχλνιν ραξαθηεξηζηηθψλ θαη ιεηηνπξγηψλ. Ο επθνιφηεξνο ηξφπνο λα γίλεη απηφ είλαη ε ζπλερήο αλαπήδεζε πέξα δψζε κεηαμχ ησλ δηαγξακκάησλ αθνινπζίαο θαη ελφο αλαιπηηθνχ δηαγξάκκαηνο θιάζεσο πνπ εκθαλίδεη φια ηα ραξαθηεξηζηηθά θαη ηηο ιεηηνπξγίεο γηα ηηο θιάζεηο. 4. Βεβαησλόκαζηε όηη ηα επηιεγκέλα πξόηππα ζρεδίαζεο βξίζθνληαη ζηα δηαγξάκκαηα αθνινπζίαο καο. Αλ θαη ππάξρνπλ νξηζκέλεο εμαηξέζεηο, ε γεληθή θαηεπζπληήξηα γξακκή εδψ είλαη φηη ην δηάγξακκα αθνινπζίαο ζα Σελ. 105 από 128

106 πξέπεη λα δείρλεη ην "πξαγκαηηθφ ζρέδην", φπσο ζθνπεχνπκε λα ην πινπνηήζνπκε κε θψδηθα. 5. Δπηζεκαίλνπκε ηηο απαηηήζεηο ζηηο πεξηπηώζεηο ρξήζεο θαη ζηηο θιάζεηο καο. Δπηζεκαίλνπκε ηηο ιεηηνπξγηθέο (θαη κε ιεηηνπξγηθέο) απαηηήζεηο ζηηο πεξηπηψζεηο ρξήζεο θαη ηηο θιάζεηο καο γηα λα βεβαησζνχκε φηη ηηο έρνπκε θαιχςεη φιεο. Ρπζκίδνπκε ην επίπεδν δηαηχπσζεο ζε φ, ηη είλαη θαηάιιειν γηα ην έξγν θαη ηνλ νξγαληζκφ καο, αιιά αλ ζέιεη θάπνηνο λα εληνπίζεη ηηο απαηηήζεηο γηα ην ζρεδηαζκφ, απηή είλαη ε θαιχηεξε ζηηγκή λα ην θάλεη. 6. Έιεγρνο νξζόηεηαο (επηζηξεθόκελεο ηηκέο, ηύπνη θηι.). Βεβαησλφκαζηε φηη φια ηα ραξαθηεξηζηηθά καο έρνπλ ζσζηά πιεθηξνινγεζεί, θαη φηη νη επηζηξεθφκελεο ηηκέο θαη νη ιίζηεο παξακέηξσλ ζρεηηθά κε ηηο ιεηηνπξγίεο/κεζφδνπο καο, είλαη πιήξεηο θαη αθξηβείο. 7. Γεκηνπξγνύκε ηνλ θώδηθα ησλ επηθεθαιίδσλ θαη ηνλ ειέγρνπκε πξνζεθηηθά Χρηςιμοπούηςη του Διαγρϊμματοσ Κλϊςεωσ για τον εντοπιςμό ςφαλμϊτων ςτα Διαγρϊμματα Ακολουθύασ Μηα ηερληθή πνπ ιεηηνπξγεί πνιχ θαιά θαηά ηε δηάξθεηα ηνπ CDR είλαη, φπσο δείρλεη ν ηίηινο απηήο ηεο ελφηεηαο, ε ρξεζηκνπνίεζε ηνπ δηαγξάκκαηνο θιάζεο γηα ηελ αλεχξεζε ιαζψλ ζηα δηαγξάκκαηα αθνινπζίαο. Βαζηθά, απηφ ζπλεπάγεηαη ηελ εζηίαζε ζε δηάθνξεο θιάζεηο ζην δηάγξακκα θιάζεο θαη ηελ εχξεζε κεζφδσλ ζε ιάζνο θιάζεηο, ή άιιεο αλσκαιίεο, θαη ζηε ζπλέρεηα ηελ εμεχξεζε ησλ έλνρσλ δηαγξακκάησλ αθνινπζίαο. Μπνξνχκε λα βξνχκε πεξηζζφηεξα ιάζε ζηα δηαγξάκκαηα αθνινπζίαο θνηηάδνληαο ην δηάγξακκα θιάζεο Περύληψη ην θεθάιαην απηφ, εμεηάζακε ηελ θξίζηκε επηζθφπεζε ζρεδηαζκνχ (CDR), έλα ζεκαληηθφ βήκα πνπ πξαγκαηνπνηείηαη κεηαμχ ηνπ ιεπηνκεξνχο ζρεδηαζκνχ Σελ. 106 από 128

107 θαη ηεο πινπνίεζεο. Όπσο ζπδεηήζακε ζηελ αξρή ηνπ θεθαιαίνπ απηνχ, ην CDR πεξηιακβάλεη ηξεηο βαζηθνχο ζηφρνπο: Πξνζαξκνγή ηνπ θεηκέλνπ πεξηπηψζεσο ρξήζεο ζε θάζε δηάγξακκα αθνινπζίαο. Έιεγρνο ζπλέρεηαο ησλ κελπκάησλ. Δπαλέιεγρνο γηα θαιφ ζρεδηαζκφ. Αλ πεξάζακε απφ ηνλ ιεπηνκεξή ζρεδηαζκφ γηα θάζε πεξίπησζε ρξήζεο θαη ηνλ επαλεμεηάζακε γηα ηα ηξία απηά θξηηήξηα, ηφηε ην ζρέδηφ καο πξέπεη πξαγκαηηθά λα είλαη έηνηκν γηα ηελ θσδηθνπνίεζε. ην επφκελν θεθάιαην, ππεηζεξρφκαζηε ζηελ πινπνίεζε. Αλ έρνπκε ην ιεπηνκεξή ζρεδηαζκφ καο ζσζηφ (φπσο επαιεζεχεηαη απφ ην νξφζεκν ηνπ CDR), ηφηε ε πινπνίεζε ζα πξέπεη λα είλαη κηα ζρεηηθά ζχληνκε θαη απιή δηαδηθαζία. Σελ. 107 από 128

108 Κεφϊλαιο 12: Υλοπούηςη (Πωσ μοιϊζει το ςύςτημϊ μασ) Αθνχ μνδέςακε αξθεηά θεθάιαηα θαη ρξφλν γηα λα θηηάμνπκε έλαλ πιήξε θαη άξηην ζρεδηαζκφ πεξλψληαο απφ ηηο πεξηπηψζεηο ρξήζεο, ζηελ αλάιπζε επξσζηίαο θαη ζην ζρεδηαζκφ, ειέγρνληαο θάζε ζηάδην κε ην αληίζηνηρν νξφζεκφ ηνπ, είκαζηε ζε ζέζε λα μεθηλήζνπκε ηελ θσδηθνπνίεζε. ην θεθάιαην 1, πεξηγξάςακε κε απιά παξαδείγκαηα ηη ελέξγεηεο εθηεινχλ ηα ζηνηρεία ηεο εθαξκνγήο καο (JSP, servlets, θηι.) θαη είδακε θαη παξαδείγκαηα απφ ην πψο πινπνηνχληαη ηα ζηνηρεία απηά. Ο πιήξεο θψδηθαο ηεο εθαξκνγήο καο βξίζθεηαη ζην ζπλνδεπηηθφ cd ηνπ βηβιίνπ απηνχ, πνπ βξίζθεηαη ζηελ ηειεπηαία ζειίδα. Δδψ ζα δείμνπκε θάπνηεο εηθφλεο ηνπ ζπζηήκαηνο θαη ζπλνπηηθά ηηο ελέξγεηεο πνπ εθηεινχληαη ηφζν απφ ηνλ ρξήζηε φζν θαη απφ ην ζχζηεκα Κρϊτηςη Δωματύου Παξαθάησ ζα αλαιχζνπκε ελ ζπληνκία ηελ θξάηεζε δσκαηίνπ ζε μελνδνρεηαθή κνλάδα κέζσ ελδεηθηηθψλ εηθφλσλ απφ ην ζχζηεκα καο, «Online Σνπξηζηηθφ Γξαθείν». Σν ρήκα 12.1 απεηθνλίδεη ηελ πξψηε ζειίδα γηα ηελ θξάηεζε δσκαηίνπ, ζε απηή ηε ζειίδα ν Υξήζηεο-Πειάηεο κπνξεί λα επηιέμεη απφ κία ζεηξά πξννξηζκψλ, απφ ην drop down κελνχ Πξννξηζκφο. Δπίζεο επηιέγεη ηηο επηζπκεηέο εκεξνκελίεο check in θαη check out ζηα πεδία Άθημε θαη Αλαρψξεζε θαη ηέινο εηζάγεη ζε πφζα δσκάηηα επηζπκεί λα θάλεη θξάηεζε, θαζψο θαη πφζνη ελήιηθεο θαη πφζα παηδηά ζα βξίζθνληαη ζε θάζε δσκάηην. Σέινο επηιέγεη ην θνπκπί Κξάηεζε. Γίλεηαη έιεγρνο ησλ θξηηεξίσλ θαη ην ζχζηεκα απφ ηελ πιεπξά ηνπ δεκηνπξγεί ην HotelSearchResultsBean κε ηα θξηηήξηα πνπ εηζήγαγε ν Υξήζηεο- Πειάηεο γηα ηελ θξάηεζε. Μεηαβαίλνπκε ζην θαηάιιειν servlet πνπ ρεηξίδεηαη ην request ηνπ Υξήζηε-Πειάηε φπνπ δεκηνπξγνχληαη ηα απαξαίηεηα αληηθείκελα θαη Σελ. 108 από 128

109 δεκηνπξγείηαη ε ζχλδεζε κε ηε βάζε γηα ηνλ εληνπηζκφ ησλ δηαζέζηκσλ δσκαηίσλ ζχκθσλα κε ηα θξηηήξηα πνπ εηζήγαγε ν Υξήζηεο-Πειάηεο. Δπίζεο απνζεθεχνληαη ηα απαξαίηεηα ζηνηρεία ζηα session αληηθείκελα ψζηε λα είλαη δηαζέζηκα αλά πάζα ζηηγκή θαηά ηε δηάξθεηα ηεο ζπλεδξίαο (session) ηνπ Υξήζηε- Πειάηε. Δπίζεο πεξλάεη ηνλ έιεγρν ζηε ζειίδα JSP πνπ εκθαλίδεη ηα απνηειέζκαηα ηεο Αλαδήηεζεο δείρλνληαο ηα δηαζέζηκα δσκάηηα ζε μελνδνρεία, ζχκθσλα κε ηα θξηηήξηα ηνπ Υξήζηε-Πειάηε. χιμα 12.1 Επιλογι χαρακτθριςτικϊν κράτθςθσ δωματίου Σν ζρήκα 12.2 παξνπζηάδεη ηε ζειίδα κε ηα δηαζέζηκα δσκάηηα, ζχκθσλα κε ηηο πξνηηκήζεηο ηνπ Υξήζηε-Πειάηε. Δκθαλίδνληαη ηα δηαζέζηκα μελνδνρεία πνπ παξέρνπλ δσκάηηα ζχκθσλα κε ηα θξηηήξηα, ηαμηλνκεκέλα θαηά ηηκή θαη φλνκα. ε θάζε μελνδνρεηαθή κνλάδα εκθαλίδεηαη κία επηινγή δσκαηίνπ γηα θάζε δσκάηην πνπ έρεη επηιέμεη λα θάλεη θξάηεζε ν Υξήζηεο-Πειάηεο. Γηα θάζε δηαζέζηκν δσκάηην εκθαλίδνληαη ηξεηο επηινγέο, φπνπ ν Υξήζηεο-Πειάηεο επηιέγεη ην δσκάηην πνπ επηζπκεί αλάινγα κε ηε δηαηξνθή πνπ επηζπκεί (κφλν πξσηλφ, εκηδηαηξνθή ή πιήξεο δηαηξνθή) κε αλάινγε δηαθνξά ζηελ ηηκή. Δπίζεο ν Υξήζηεο-Πειάηεο κπνξεί λα επηιέμεη ην ζχλδεζκν Λεπηνκέξεηεο, θάησ απφ θάζε Σελ. 109 από 128

110 δσκάηην θαη λα ελεκεξσζεί γηα ζέκαηα πνπ αθνξνχλ ην δσκάηην. Όηαλ ν Υξήζηεο- Πειάηεο επηιέμεη ην/ηα επηζπκεηφ/ηα δσκάηην/α ηφηε παηάεη ην θνπκπί Κξάηεζε. χιμα 12.2 Διακζςιμα δωμάτια ςε ξενοδοχειακι μονάδα Σν ζχζηεκα κεηαβαίλεη ζην servlet πνπ ρεηξίδεηαη ην request ηνπ Υξήζηε- Πειάηε γηα ηε δεχηεξε ζειίδα. ην servlet απηφ απνζεθεχνληαη νη πξνηηκήζεηο ηνπ Υξήζηε-Πειάηε γηα ην/ηα επηζπκεηφ/ηα δσκάηην/α θαη απνζεθεχνληαη επίζεο ζεκαληηθέο πιεξνθνξίεο ζηα αληηθείκελα session ηεο εθαξκνγήο. Ο έιεγρνο πεξλά ζηε ζειίδα JSP πνπ εκθαλίδεη ηα απαξαίηεηα πεδία πξνο ζπκπιήξσζε κε ηα ζηνηρεία ησλ ζπκκεηερφλησλ ζηελ θξάηεζε. Σν ρήκα 12.3 δείρλεη ηα πεδία πνπ ν ρξήζηεο ζπκπιεξψλεη κε ηα ζηνηρεία ησλ ζπκκεηερφλησλ ζηελ θξάηεζε. Ο Υξήζηεο-Πειάηεο εηζάγεη ην νλνκαηεπψλπκν θαη ην θχιν ησλ ζπκκεηερφλησλ ζηελ θξάηεζε ζε θάζε δσκάηην θαη ζηε ζπλέρεηα παηάεη ην θνπκπί πλέρεηα. Σελ. 110 από 128

111 χιμα 12.3 Ειςαγωγι ςτοιχείων ςυμμετεχόντων ςτθν κράτθςθ Σν ζχζηεκα ειέγρεη ηα ζηνηρεία πνπ εηζήγαγε ν Υξήζηεο-Πειάηεο γηα ηελ νξζφηεηά θαη ηελ πιεξφηεηά ηνπο. Αλ είλαη ιαλζαζκέλα εκθαλίδεη θαηάιιειε έλδεημε ιάζνπο θάησ απφ θάζε πεδίν. ηε ζπλέρεηα, θαη αλ ηα ζηνηρεία είλαη ζσζηά, κεηαβαίλεη ζην θαηάιιειν servlet φπνπ απνζεθεχεη ηα δεδνκέλα πνπ εηζήγαγε ν Υξήζηεο-Πειάηεο θαη πεξλάεη ηνλ έιεγρν ζηε JSP ζειίδα πνπ αζρνιείηαη κε ηελ θαηαρψξηζε ησλ ζηνηρείσλ ηνπ αηφκνπ πνπ δηεμάγεη ηελ θξάηεζε θαη ηα ζηνηρεία ηεο πιεξσκήο. Σα ρήκαηα 12.4, 12.5 παξνπζηάδεη ηε ζειίδα JSP φπνπ ν Υξήζηεο-Πειάηεο επηιέγεη αλ ζέιεη απφδεημε ή ηηκνιφγην. Αλ επηιέμεη απφδεημε, ν Υξήζηεο-Πειάηεο εηζάγεη ηα ζηνηρεία ηνπ αηφκνπ πνπ εθηειεί ηελ θξάηεζε θαη επίζεο ηα ζηνηρεία ηεο Πιεξσκήο, φπσο δείρλεη ην ζρήκα Αλ φκσο επηιέμεη ηηκνιφγην, ν Υξήζηεο- Πειάηεο ζα πξέπεη λα εηζάγεη ηα ζηνηρεία ηεο εηαηξίαο-επηρείξεζεο ζηελ νπνία ζα εθδνζεί ην ηηκνιφγην θαη επίζεο ηα ζηνηρεία ηεο Πιεξσκήο, φπσο δείρλεη ην ζρήκα ηε ζπλέρεηα παηάεη ην θνπκπί Κξάηεζε. Σελ. 111 από 128

112 χιμα 12.4 Ειςαγωγι ςτοιχείων Χριςτθ-Πελάτθ που εκτελεί τθν Κράτθςθ και ςτοιχείων Πλθρωμισ Σελ. 112 από 128

113 χιμα 12.5 Ειςαγωγι ςτοιχείων εταιρίασ και ςτοιχείων Πλθρωμισ Σελ. 113 από 128

114 Σν ζχζηεκα ειέγρεη ηα ζηνηρεί πνπ εηζήγαγε ν Υξήζηεο-Πειάηεο θαη κεηαβαίλεη ζην servlet πνπ ρεηξίδεηαη ην request ηνπ Υξήζηε-Πειάηε. Γεκηνπξγεί ηα θαηάιιεια αληηθείκελα Κξάηεζεο, δεκηνπξγεί ζχλδεζε ζηε βάζε φπνπ εηζάγεη ηα θαηάιιεια ζηνηρεία ζηνπο πίλαθεο, ζηέιλεη ην κήλπκα ηεο θξάηεζεο ζην mail πνπ έρεη νξίζεη ν Υξήζηεο-Πειάηεο, κε ηε ρξήζε ηεο βηβιηνζήθεο JavaMail θαη κεηαβηβάδεη ηνλ έιεγρν ζηε ζειίδα JSP πνπ εκθαλίδεη ηα ζηνηρεία ηεο θξάηεζεο. ην servlet επίζεο ζα έπξεπε λα γίλεηαη θαη ζχλδεζε κε έλα εμσηεξηθφ ζχζηεκα ηξαπέδεο γηα ηε δηαρείξηζε ηεο πιεξσκήο. Καζψο φκσο είλαη κία εθπαηδεπηηθή εθαξκνγή θαη φρη κία αιεζηλή ην βήκα απηφ παξαιχθζεθε. χιμα 12.6 Επιβεβαίωςθ Κράτθςθσ Σελ. 114 από 128

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

ΑΛΕΞΑΝΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΩΝ ΕΦΑΡΜΟΦΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Πτυχιακή Εργασία ΑΛΕΞΑΝΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΩΝ ΕΦΑΡΜΟΦΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Πτυχιακή Εργασία Ανάπτυξη εκπαιδευτικής εφαρμογής «Ταξιδιωτικό γραφείο» με τη μεθοδολογία RUP Ναταλία Επιβλέπων καθηγητής: κος

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

Κεθάλαιο 1. Ενόηηηα 2 Πλάνο Μάρκεηινγκ. Εξγαιεία Μάξθεηηλγθ. Dr. Andrea Grimm Dr. Astin Malschinger

Κεθάλαιο 1. Ενόηηηα 2 Πλάνο Μάρκεηινγκ. Εξγαιεία Μάξθεηηλγθ. Dr. Andrea Grimm Dr. Astin Malschinger Κεθάλαιο 1 Ενόηηηα 2 Πλάνο Μάρκεηινγκ Εξγαιεία Μάξθεηηλγθ Dr. Andrea Grimm Dr. Astin Malschinger ΠΕΡΙΕΧΟΜΕΝΑ ΕΝΟΤΗΤΑ 2 ΠΛΑΝΟ ΜΑΡΚΕΤΙΝΓΚ Κεθάιαην 1: Εξγαιεία Μάξθεηηλγθ Σπγγξαθείο: Δξ. Andrea Grimm, Δξ.

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

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP ηότοι εργαζηηρίοσ ην πιαίζην ηνπ ζπγθεθξηκέλνπ εξγαζηεξίνπ ζα παξνπζηαζηνύλ βαζηθέο ιεηηνπξγίεο ησλ Windows XP πνπ ζρεηίδνληαη

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

Η αξρή ζύλδεζεο Client-Server

Η αξρή ζύλδεζεο Client-Server Η αξρή ζύλδεζεο Client-Server Δηαθνκηζηήο (Server) Πξνζθέξεη ππεξεζίεο ζηνπο Πειάηεο (Client) Μεγάινη ππνινγηζηέο γηα ηηο ππεξεζίεο Internet (π.ρ. WWW, FTP) Λακβάλεη εξσηήζεηο θαη δίδεη απαληήζεηο Πειάηεο

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

Οργάνωση και Δομή Παρουσιάσεων

Οργάνωση και Δομή Παρουσιάσεων Οργάνωση και Δομή Παρουσιάσεων Οη παξνπζηάζεηο κε βνήζεηα ηνπ ππνινγηζηή γίλνληαη κε πξνγξάκκαηα παξνπζηάζεσλ, όπσο ην OpenOffice.org Impress [1] θαη ην Microsoft Office PowerPoint [2]. Απηά ηα πξνγξάκκαηα

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

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση Πώς πρέπει να τιμολογεί ένα μονοπώλιο; Μέρξη ζηηγκήο ην κνλνπώιην έρεη ζεσξεζεί ζαλ κηα επηρείξεζε ε νπνία πσιεί ην πξντόλ ηεο ζε θάζε πειάηε ζηελ

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

Ενδεικτικά Θέματα Στατιστικής ΙΙ

Ενδεικτικά Θέματα Στατιστικής ΙΙ Ενδεικτικά Θέματα Στατιστικής ΙΙ Θέματα. Έζησ όηη ζε δείγκα 35 θαηνηθηώλ πνπ ελνηθηάδνληαη ζε θνηηεηέο ζηελ Κνδάλε βξέζεθε ην κέζν κεληαίν κίζζσκα ζηα 5 επξώ, ελώ ζην Ζξάθιεην ην κέζν κεληαίν κίζζσκα ζε

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

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0

ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0 ΕΓΧΕΙΡΙΔΙΟ ΕΚΔΟΗ 8.0.0 Γενικά Η έθδνζε 8.0.0 ηνπ ελόηεηεο: Business ERP, πεξηιακβάλεη λέεο ιεηηνπξγίεο πνπ αλαιύνληαη ζηηο παξαθάησ Γεληθόηεξε ιεηηνπξγία ηεο εθαξκνγήο Εκπνξηθή Δηαρείξηζε 7/2/2013 SingularLogic

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

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2 ΣΡΙΓΩΝΟΜΔΣΡΙΚΔ EΞΙΩΔΙ Πνηα παξαδείγκαηα εμηζώζεσλ ή θαη πξνβιεκάησλ πηζηεύεηαη όηη είλαη θαηάιιεια γηα ηελ επίιπζε ηνπο θαηά ηελ δηάξθεηα ηεο δηδαθηηθήο δηαδηθαζίαο κέζα ζηελ ηάμε; 1 ε ΓΙΓΑΚΣΙΚΗ ΩΡΑ Α.

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

Constructors and Destructors in C++

Constructors and Destructors in C++ Constructors and Destructors in C++ Σύνθεζη Πνιύ ζπρλά ζηε C++ κία θιάζε κπνξεί λα πεξηέρεη ζαλ κέιεδεδνκέλα αληηθείκελα άιισλ θιάζεσλ. Πνηα είλαη ε ζεηξά κε ηελ νπνία δεκηνπξγνύληαη θαη θαηαζηξέθνληαη

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

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ Αιγόξηζκνη 2.2.7.4 Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ Εηζαγσγή ζηηο Αξρέο ηεο Επηζηήκεο ησλ Η/Υ 1 Άζθεζε 34 ζει 53 Έλα ςεθηαθό θσηνγξαθηθό άικπνπκ έρεη απνζεθεπηηθό ρώξν N Mbytes. Να αλαπηύμεηε

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

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ Φξεζηκόηεηα καζεκαηηθώλ Αξρή θαηακέηξεζεο Όζα έδσζαλ νη Έιιελεο... Τξίγσλνη αξηζκνί Τεηξάγσλνη αξηζκνί Δπηκήθεηο αξηζκνί Πξώηνη αξηζκνί Αξηζκνί κε μερσξηζηέο ηδηόηεηεο Γίδπκνη πξώηνη

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

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ. Απαντήσεις θέματος 2 Απηά πνπ έπξεπε λα γξάςεηε (δελ ρξεηαδόηαλ δηθαηνιόγεζε εθηόο από ην Γ) Α return a*b; Β 0:acegf2, 1: acegf23, 2: acegf234, 3:acegf2345, 4:acegf23456, 5:acegf234567, 6:acegf2345678,

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

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν 2011-12

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν 2011-12 Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν 11-12 Project 6: Ταμίδη κε ηε Μεραλή ηνπ Φξόλνπ Υπεύζπλνη Καζεγεηέο: Ε. Μπηιαλάθε Φ. Αλησλάηνο Δρώηηζη 3: Πνηα από ηα παξαθάησ ΜΜΕ ηεξαξρείηε από πιεπξάο ζεκαζίαο;

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

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη

Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη Εςθςή ζςζηήμαηα επισειπήζεων και αξιολόγηζη Μάθημα 11 Τμήμα Μάπκεηινγκ και Διοίκηζηρ Λειηοςπγιών Τα δηαγξάκκαηα θαηάζηαζεο (state diagrams) ρξεζηκνπνηνύληαη γηα λα βνεζήζνπλ ηνλ πξνγξακκαηηζηή λα θαηαιάβεη

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

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report. Case Study Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report. Βήκα 1 ο : Login ζηο Turnitin. Κάλεηε είζνδν ζην Turnitin κε

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

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS ηότοι εργαζηηρίοσ ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS ην πιαίζην ηνπ ζπγθεθξηκέλνπ εξγαζηεξίνπ ζα παξνπζηαζηεί ε δηαδηθαζία ηωλ ξπζκίζεωλ δηθηύνπ ζε ιεηηνπξγηθό ζύζηεκα Windows XP. Η δηαδηθαζία ζε γεληθέο γξακκέο

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

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο 1 ε Δξαζηεξηόηεηα Αλνίμηε ην αξρείν «Μεηαηόπηζε παξαβνιήο.ggb». Με ηε καύξε γξακκή παξηζηάλεηαη ε γξαθηθή παξάζηαζε ηεο f(x)=αx 2 πνπ ζα ηελ

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

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288

ΔΡΓΑΙΑ 1. Γιαδικησακά πληροθοριακά σζηήμαηα. Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές. ηέθανος Κονηοβάς ΑΔΜ :283. Πάζτος Βαζίλειος ΑΔΜ :288 ΔΡΓΑΙΑ 1 Γιαδικησακά πληροθοριακά σζηήμαηα Ομάδα Δργαζίας: Μεηαπηστιακοί Φοιηηηές ηέθανος Κονηοβάς ΑΔΜ :283 Πάζτος Βαζίλειος ΑΔΜ :288 1.Γιάγραμμα Ονηολογίας. Σην παξαπάλω δηάγξακκα θαίλεηαη ε δηάξζξωζε

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

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) 30.04.67 FritzBox Fon WLAN 7140 - Annex B (30.04.67)

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) 30.04.67 FritzBox Fon WLAN 7140 - Annex B (30.04.67) Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) 30.04.67 FritzBox Fon WLAN 7140 - Annex B (30.04.67) Γηα λα επαλαθέξεηε ην FritzBox Fon WLAN 7140 ζηηο πξνεπηιεγκέλεο ηνπ ξπζκίζεηο

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

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2 TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 Δημιουργία σελίδων και βιβλίων Έλα θαηλνύξην βηβιίν πεξηέρεη κία άδεηα ζειίδα κε έλα άδεην background. Δελ κπνξνύκε λα μερσξίζνπκε

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

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14 .1.10 ζκήζεις ζτ.βιβλίοσ ζελίδας 13 14 Ερωηήζεις Καηανόηζης 1. ύν δηαθνξεηηθέο επζείεο κπνξεί λα έρνπλ θαλέλα θνηλό ζεκείν Έλα θνηλό ζεκείν i ύν θνηλά ζεκεία iλ) Άπεηξα θνηλά ζεκεία ηηηνινγήζηε ηελ απάληεζε

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

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο : ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ Ον/μο:.. Γ Λσκείοσ Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη. 11-1-11 Εήηημα 1 ο : Α. Γηα ηελ ζπλάξηεζε f, λα βξείηε ην δηάζηεκα ζην νπνίν είλαη παξαγσγίζηκε θαζώο θαη

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

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο

ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε. Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο ΟΣΑ Επηρεηξεζηαθή Ννεκνζύλε Ελόηεηα: Ad1.2.2 «Ση θξύβεηαη» πίζω από κηα Επηρεηξεζηαθή Αλαθνξά (report): XML & XSD γηα αξράξηνπο Πξαθηηθή Άζθεζε (επίπεδν 2): ηόρνο ηεο άζθεζεο είλαη ε πεξαηηέξω εμνηθείωζε

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

Διατείριση Φσσικών Καταστρουών: ACTIVE LANDSLIDE INVENTORY MAPPING AND SUSCEPTIBILITY ZONING

Διατείριση Φσσικών Καταστρουών: ACTIVE LANDSLIDE INVENTORY MAPPING AND SUSCEPTIBILITY ZONING Διατείριση Φσσικών Καταστρουών: ACTIVE LANDSLIDE INVENTORY MAPPING AND SUSCEPTIBILITY ZONING Ναηαιία Σπαλνύ, spanou@igme.gr & natspanou@gmail.com Τερληθόο Γεσιόγνο (M.Sc.) Πεξηγξαθή Χάξηεο ρσξηθήο θαηαλνκήο

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

Άσκηση 1 - Μοπυοποίηση Κειμένου

Άσκηση 1 - Μοπυοποίηση Κειμένου Άσκηση 1 - Μοπυοποίηση Κειμένου Σηηο παξαθάησ γξακκέο εθαξκόζηε ηε κνξθνπνίεζε πνπ πεξηγξάθνπλ Γξακκή κε έληνλε γξαθή Γξακκή κε πιάγηα γξαθή Γξακκή κε ππνγξακκηζκέλε γξαθή Γξακκή κε Arial Font κεγέζνπο

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

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H )

Α Ο Κ Η Α Μ Α Ζ Η Η Ρ Η ( S E A R C H ) Ξ G O O G L E S C H O L A R Α Ο Ξ Ε Κ Ε Θ Λ Θ Α Λ Η Τ Α Μ Η Α Μ Α Ζ Η Η Ρ Η Ρ Οξαγκαηνπνηώληαο αλαδήηεζε ζην GoogleScholar (http://scholar.google.com/) ν ρξήζηεο κπνξεί λα εληνπίζεη πιηθό αθαδεκαϊθνύ θαη

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

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD

Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD Οδηγίες τρήζης για λειηοσργία μεηαθοράς καναλιών ζε υηθιακό δέκηη OST-7060 HD Γηα ηε δηεπθόιπλζή ζαο θαηά ην switch-off ηεο πεξηνρήο ηεο Πεινπνλλήζνπ έρνπκε πξνζζέζεη ζηνπο ςεθηαθνύο καο δέθηεο κία λέα,

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

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ Είμαζηε ηυχεροί που είμαζηε δάζκαλοι Ον/μο:.. A Λσκείοσ Ύλη: Εσθύγραμμη Κίνηζη 8-11-2015 Θέμα 1 ο : 1. Η εμίζωζε θίλεζεο ελόο θηλεηνύ πνπ θηλείηαη επζύγξακκα είλαη ε x = 5t. Πνηα

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

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots)

Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots) Σημεία Ασύπματηρ Ππόσβασηρ (Hot-Spots) 1.1 Σςνοπτική Πεπιγπαυή Hot Spots Σα ζεκεία αζύξκαηεο πξόζβαζεο πνπ επηιέρζεθαλ αλαθέξνληαη ζηνλ επόκελν πίλαθα θαη παξνπζηάδνληαη αλαιπηηθά ζηηο επόκελεο παξαγξάθνπο.

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

ύζηεκα Ωξνκέηξεζεο Πξνζσπηθνύ (Έθδνζε 2) ΤΠΗΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΤΣΗΜΑΣΩΝ

ύζηεκα Ωξνκέηξεζεο Πξνζσπηθνύ (Έθδνζε 2) ΤΠΗΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΤΣΗΜΑΣΩΝ ύζηεκα Ωξνκέηξεζεο Πξνζσπηθνύ (Έθδνζε 2) ΤΠΗΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΤΣΗΜΑΣΩΝ Πεξηερόκελα Σερληθά Υαξαθηεξηζηηθά Καηαγξαθή Ώξαο πγρξνληζκόο πζηήκαηνο Παξνπζίαζε πζηήκαηνο Πηζαλά ελάξηα Υξήζεο 2 Σερληθά Υαξαθηεξηζηηθά

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

Εισαγωγή στη J2EE. Μέρος 2

Εισαγωγή στη J2EE. Μέρος 2 Εισαγωγή στη J2EE Μέρος 2 JNDI Java Naming and Directory Interface Χρησιμοποιείταιαπότιςεφαρμογέςπου βασίζονταισε J2EE γιατον μεταφερτό προσδιορισμό πόρωνκαιαντικειμένων Οιεφαρμογές χρησιμοποιούν συμβολικά

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

Περιεχόμενα. Back Office... 19

Περιεχόμενα. Back Office... 19 Περιεχόμενα Μεζνδνινγία Τινπνίεζεο... 3 Φάζε 1: Αλάιπζε Απαηηήζεσλ... 4 Φάζε 2: ρεδηαζκφο ηεο Δθαξκνγήο (Δκθάληζε, Λεηηνπξγηθφηεηα, Πεξηερφκελν)... 6 Φάζε 3: Σερληθφο ρεδηαζκφο... 7 Φάζε 4: Αλάπηπμε Λνγηζκηθνχ

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

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code)

Μορθές Κακόβοσλοσ Κώδικα (Malicious Code) Μορθές Κακόβοσλοσ Κώδικα (Malicious Code) Page 1 Υποπλοίαρτος Ν. Πεηράκος ΠΝ Αηδένηα Γνύξεηνη Ίππνη (Trojan Horses) Ινί (Viruses) Worms Root-kit Page 2 Γνύξεηνο Ίππνο (Trojan Horse) Οξηζκόο: Πξόγξακκα

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

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KRNUGH Γηα λα θάλνπκε απινπνίεζε κηαο ινγηθήο ζπλάξηεζεο κε πίλαθα (ή ράξηε) Karnaugh αθνινπζνύκε ηα παξαθάησ βήκαηα:. Η ινγηθή ζπλάξηεζε ζα πξέπεη λα είλαη ζε πιήξε

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

ΔΓΤ Μεηαπηπρηαθφ Πξφγξακκα «Γηνίθεζε Τπεξεζηψλ Τγείαο» - 177 --

ΔΓΤ Μεηαπηπρηαθφ Πξφγξακκα «Γηνίθεζε Τπεξεζηψλ Τγείαο» - 177 -- ΔΓΤ Μεηαπηπρηαθφ Πξφγξακκα «Γηνίθεζε Τπεξεζηψλ Τγείαο» - 177 -- 5. Σίηινο καζήκαηνο Δηζαγσγή ζηα παθέηα Λνγηζκηθνχ 6. Τπεχζπλνο καζήκαηνο Ησάλλεο Απνζηνιάθεο 7. θνπφο θνπφο ηνπ καζήκαηνο είλαη ε εμνηθείσζε

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

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ Εδώ ζα ππνινγίζνπκε ην κεηαζρεκαηηζκό Fourier κεξηθώλ αθόκα ζεκάησλ, πξνζπαζώληαο λα μεθηλήζνπκε από ην κεηαζρεκαηηζκό Fourier γλσζηώλ ζεκάησλ

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

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο: Σύνθεζη ηαλανηώζεων Α. Σύλζεζε δύν α.α.η ηεο ίδιας ζστνόηηηας Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο: Η απνκάθξπλζε

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

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη 5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη Σηα πιαίζηα ηεο πέκπηεο εξγαζηεξηαθήο άζθεζεο ζα ρξεζηκνπνηεζεί απνθιεηζηηθά ην πεξηβάιινλ αλάπηπμεο νινθιεξσκέλσλ θπθισκάησλ IDL-800 Digital

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

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν.

B-Δέλδξα. Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν. B-Δέλδξα Τα B-δέλδξα ρξεζηκνπνηνύληαη γηα ηε αλαπαξάζηαζε πνιύ κεγάισλ ιεμηθώλ πνπ είλαη απνζεθεπκέλα ζην δίζθν. Δέλδξα AVL n = 2 30 = 10 9 (πεξίπνπ). 30

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

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX Σηότοι εργαζηηρίοσ Σην πιαίζην ηνπ ζπγθεθξηκέλνπ εξγαζηεξίνπ, νη θνηηεηέο ζα εμνηθεησζνύλ κε βαζηθέο εληνιέο δηθηπαθώλ πξσηνθόιισλ νη νπνίεο βξίζθνπλ εθαξκνγή ζε πεξηβάιινληα Windows

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

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά: ΑΝΤΗΛΙΑΚΑ Η Μηκή θαη ν Νηίλνο αλαξσηήζεθαλ πνην αληειηαθό πξντόλ παξέρεη ηελ θαιύηεξε πξνζηαζία ζην δέξκα ηνπο. Τα αληειηαθά πξντόληα έρνπλ έλα δείθηε αληειηαθήο πξνζηαζίαο (SPF), ν νπνίνο δείρλεη πόζν

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

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84

Διαηιμήζεις για Αιολικά Πάρκα. Κώδικες 28, 78 και 84 Διαηιμήζεις για Αιολικά Πάρκα Κώδικες 28, 78 και 84 Διαηιμήζεις για Αιολικά Πάρκα Οη Διαηιμήζεις για Αιολικά Πάρκα εθαξκόδνληαη γηα ηελ απνξξνθνύκελε ελέξγεηα από Αηνιηθά Πάξθα πνπ είλαη ζπλδεδεκέλα ζην

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

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ. Μονοψϊνιο Ολιγοψώνιο Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ. Οπιακή αξία Δπηπξόζζεηα νθέιε από ηελ ρξήζε/θαηαλάισζε κηαο επηπξόζζεηε

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΔΣΑΙΡΔΙΑ ΠΑΓΚΤΠΡΙΟ ΓΙΑΓΩΝΙ ΜΟ Α ΛΤΚΔΙΟΤ Ζμεπομηνία: 18/12/10 Ώπα εξέτασηρ: 09:30-12:30 ΠΡΟΣΕΙΝΟΜΕΝΕ ΛΤ ΕΙ 1. Δίλεηαη ην πνιπώλπκν Αλ θαη., λα βξείηε ην ηειεπηαίν ςεθίν ηνπ αξηζκνύ έρνπκε:

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

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ

ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ 1 Σ. Δ. Ι. ΓΤ Σ Ι Κ Η Μ Α Κ Δ Γ Ο Ν Ι Α ΥΟΛΗ ΣΔΥΝΟΛΟΓΙΚΩΝ ΔΦΑΡΜΟΓΩΝ Σ Μ Η Μ Α Μ Η Υ Α Ν ΟΛΟ Γ Ι Α Δξγαζηήξην Μεραλνπξγηθώλ Καηεξγαζηώλ & CAD ΜΗΧΑΝΟΛΟΓΙΚΟ ΣΧΔΓΙΟ ΙΙ ΜΑΘΗΜΑ 2: Πνηόηεηα Δπηθάλεηαο Γξ. Βαξύηεο

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

Αντισταθμιστική ανάλυση

Αντισταθμιστική ανάλυση Θεσξήζηε έλαλ αιγόξηζκν Α πνπ ρξεζηκνπνηεί κηα δνκή δεδνκέλσλ Γ : Καηά ηε δηάξθεηα εθηέιεζεο ηνπ Α ε Γ πξαγκαηνπνηεί κία αθνινπζία από πξάμεηο. Παξάδεηγκα: Θπκεζείηε ην πξόβιεκα ηεο εύξεζεο-έλσζεο Δίρακε

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

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12 ΑΚΖΔΗ ΤΜΝΑΗΟΤ - ΚΤΚΛΟ ΠΡΩΣΟ - - ηα πνηεο ηηκέο ηνπ ηα παξαθάησ θιάζκαηα δελ νξίδνληαη ; (Τπόδεημε : έλα θιάζκα νξίδεηαη αλ ν παξνλνκαζηήο είλαη δηάθνξνο ηνπ κεδελόο) - (-) - (-) - Να απινπνηεζνύλ ηα θιάζκαηα

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

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf Δξγαζηεξηαθή άζθεζε 03 Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf Ζιίαο Χαηδεζενδσξίδεο Οθηώβξηνο / Ννέκβξηνο 2004 Τη είλαη ην δίθηπν Wulf Δπίπεδν ζην νπνίν κπνξνύκε λα αλαπαξαζηήζνπκε ηξηζδηάζηαηα ζρήκαηα,

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

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε. ΑΝΟΙΓΜΑ ΝΔΑ ΥΡΗΗ 1. Γεκηνπξγείηε ηε λέα ρξήζε από ηελ επηινγή «Παξάκεηξνη/Παξάκεηξνη Δηαηξίαο/Γηαρείξηζε Δηαηξηώλ». Πιεθηξνινγείηε ηνλ θσδηθό ηεο εηαηξίαο ζαο θαη παηάηε Enter. Σηελ έλδεημε «Υξήζεηο» παηάηε

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

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα

ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ Ρέππα Μαξγαξίηα ΣΕΙ ΙΟΝΙΩΝ ΝΗΩΝ ΣΜΗΜΑ: ΣΕΥΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΣΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΥΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2011-12 Ρέππα Μαξγαξίηα FORMAT, UNFORMAT Format format , όποσ = a:, b: Μνξθνπνηεί, δειαδή πξνεηνηκάδεη

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

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress. Αιγόξηζκνη 2.2.7.3 Γνκή επηινγήο Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ 1 Πνιιαπιή Δληνιή Δπηινγήο Αν ζπλζήθε_1 ηόηε εληνιέο_1 αλλιώς_αν ζπλζήθε_2 ηόηε εληνιέο_2...

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

Ανάπτυξη Ελληνικής τεχνολογίας μηχανών ηλεκτροπαραγωγής ORC

Ανάπτυξη Ελληνικής τεχνολογίας μηχανών ηλεκτροπαραγωγής ORC Εθνικό Συνέδριο «Γεωθερμική Ηλεκτροπαραγωγή» Ξενοδοχείο Divani Caravel Αθήνα 20 Νοεμβρίου 2013 Ανάπτυξη Ελληνικής τεχνολογίας μηχανών ηλεκτροπαραγωγής ORC Α.Μπένου, Ι. Χωροπανίτης Τμήμα Γεωθερμικής Ενέργειας

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

ACTA A.E. Αριςτο Σέλεια Πιςτοποίηςη. Ανθρώπινου Δυναμικοφ. «ΠΙΣΟΠΟΙΗΗ ΑΝΘΡΩΠΙΝΟΤ ΔΤΝΑΜΙΚΟΤ Εξελίξεισ - Προοπτικέσ»

ACTA A.E. Αριςτο Σέλεια Πιςτοποίηςη. Ανθρώπινου Δυναμικοφ. «ΠΙΣΟΠΟΙΗΗ ΑΝΘΡΩΠΙΝΟΤ ΔΤΝΑΜΙΚΟΤ Εξελίξεισ - Προοπτικέσ» ACTA A.E. Αριςτο Σέλεια Πιςτοποίηςη Ανθρώπινου Δυναμικοφ «ΠΙΣΟΠΟΙΗΗ ΑΝΘΡΩΠΙΝΟΤ ΔΤΝΑΜΙΚΟΤ Εξελίξεισ - Προοπτικέσ» Εταιρεία Ένταςησ Γνώςησ Αριςτοτελείου Πανεπιςτημίου Θεςςαλονίκησ Δια Βίου Μάθηςη Νόκνο:

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

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ

Ζαχαρίας Μ. Κοντοπόδης Εργαστήριο Λειτουργικών Συστημάτων ΙΙ Διαφάνεια 1 η ΕΚΚΙΝΗΣΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΑΙ ΕΙΣΟΔΟΣ ΣΤΟ BIOS UITILITY Τν ζπλεζέζηεξν πιήθηξν γηα ηελ είζνδν ζην BIOS Utility είλαη ην πιήθηξν Del. Παξόια απηά δηαθνξεηηθνί θαηαζθεπαζηέο, ρξεζηκνπνηνύλ δηαθνξεηηθά

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014 ΔΙΑΓΩΝΙΣΜΑ ΕΚΠ. ΕΤΟΥΣ 204-205 ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/204 A ΟΜΑΓΑ Οδηγία: Να γράυεηε ζηο ηεηράδιο ζας ηον αριθμό κάθε μιας από ηις παρακάηφ ερφηήζεις Α.-Α.8 και

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

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ

ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ ΟΠΤΙΚΗ Α. ΑΝΑΚΛΑΣΖ - ΓΗΑΘΛΑΣΖ. Μία αθηίλα θωηόο πξνζπίπηεη κε κία γωλία ζ ζηε επάλω επηθάλεηα ελόο θύβνπ από πνιπεζηέξα ν νπνίνο έρεη δείθηε δηάζιαζεο ε =,49 (ζρήκα ). Βξείηε πνηα ζα είλαη ε κέγηζηε γωλία

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

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη ΔΠΑΝΑΛΗΠΣΙΚΑ ΘΔΜΑΣΑ ΣΟ ΓΙΑΦΟΡΙΚΟ ΛΟΓΙΜΟ Μάρτιος 0 ΘΔΜΑ Να ππνινγίζεηε ηα όξηα: i ii lim 0 0 lim iii iv lim e 0 lim e 0 ΘΔΜΑ Γίλεηαη ε άξηηα ζπλάξηεζε '( ) ( ) γηα θάζε 0 * : R R γηα ηελ νπνία ηζρύνπλ:

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

Δπαστηπιότητα 1 - ανάπτςξη, μεταγλώττιση, αποσυαλμάτωση και. εκτέλεση ππογπάμματορ

Δπαστηπιότητα 1 - ανάπτςξη, μεταγλώττιση, αποσυαλμάτωση και. εκτέλεση ππογπάμματορ 1 Δπαστηπιότητα 1 - ανάπτςξη, μεταγλώττιση, αποσυαλμάτωση και εκτέλεση ππογπάμματορ Κάζε πξσί ν Karel μππλάεη ζην θξεβάηη ηνπ όηαλ έλα ξνκπόη-εθεκεξηδνπώιεο ηνπ πεηάεη ηελ εθεκεξίδα, πνπ αλαπαξηζηάλεηαη

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

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην  ζαο Δίζνδνο ζηελ Υπεξεζία Αλ είζηε ήδε εγγεγξακκέλνο ρξήζηεο ζηελ ππεξεζία, γηα ηελ είζνδν ζαο (login) ζηελ ππεξεζία e-bill, εηζάγεηαη ην Όλνκα Φξήζηε (username) θαη ηνλ Κωδηθό Πξόζβαζεο (password) πνπ είραηε

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

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou

ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ. G. Mitsou ΦΥΣΙΚΗ ΤΩΝ ΡΕΥΣΤΩΝ ηαηηθή ηωλ ξεπζηώλ (Τδξνζηαηηθή) Ση είλαη ηα ξεπζηά - Γεληθά Ππθλόηεηα Πίεζε Μεηαβνιή ηεο πίεζεο ζπλαξηήζεη ηνπ βάζνπο Αξρή ηνπ Pascal Τδξνζηαηηθή πίεζε Αηκνζθαηξηθή πίεζε Απόιπηε &

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

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ 2015-2016

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ 2015-2016 Βάσεις Δεδομέμωμ Εξγαζηήξην V Τκήκα Πιεξνθνξηθήο ΑΠΘ 2015-2016 2 Σκοπός του 5 ου εργαστηρίου Σθνπόο απηνύ ηνπ εξγαζηεξίνπ είλαη: ε κειέηε ζύλζεησλ εξσηεκάησλ ζύλδεζεο ζε δύν ή πεξηζζόηεξεο ζρέζεηο ε κειέηε

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

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα! Cpyright 2013 Λόγος & Επικοινωνία // All rights Reserved Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα! Αυηό ηο παιχνίδι έχει ζηόχους: 1. ηελ εθγύκλαζε ηεο αθνπζηηθήο κλήκεο ησλ παηδηώλ 2. ηελ εμάζθεζε ζηελ

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου ΠΡΟΒΛΗΜΑ Σε έλα ηνπξλνπά βόιετ δήισζαλ ζπκκεηνρή νκάδεο Γπκλαζίσλ ηεο Κύπξνπ.

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

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε Κβαντικοί Υπολογισμοί Πέκπηε Γηάιεμε Kπθισκαηηθό Mνληέιν Έλαο θιαζηθόο ππνινγηζηήο απνηειείηαη από αγσγνύο θαη ινγηθέο πύιεο πνπ απνηεινύλ ηνπο επεμεξγαζηέο. Σηνπο θβαληηθνύο ε πιεξνθνξία βξίζθεηαη κέζα

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

Γραφεύα Επικοινωνύασ & Ενημϋρωςησ ϋρρεσ, Τψηλϊντου 4 3οσ Όροφοσ ΣΗΛ 2321023640 ΥΑΦ 2321051861

Γραφεύα Επικοινωνύασ & Ενημϋρωςησ ϋρρεσ, Τψηλϊντου 4 3οσ Όροφοσ ΣΗΛ 2321023640 ΥΑΦ 2321051861 Οπγάνωζη και διοίκηζη ηοςπιζηικών επισειπήζεων (ξενοδοσεία, ηοςπιζηικά γπαθεία ) Α) ΑΔΙ ΣΔΙ και Β) ΑΠΟΦΟΙΣΟΙ ΤΠΟΥΡΔΩΣΙΚΗ ΓΔΤΣΔΡΟΒΑΘΜΙΑ και ΜΔΣΑΓΔΤΣΔΡΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ Ρν πξόγξακκα απηό ζρεδηάζηεθε γηα

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

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird 1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird 1.1 Εγκαηάζηαζη ηυν οδηγών ηηρ έξςπνηρ κάπηαρ ζηο λογιζμικό Mozilla Thunderbird

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

1 Είζοδορ ζηο Σύζηημα ΣΔΕΔ ή BPMS

1 Είζοδορ ζηο Σύζηημα ΣΔΕΔ ή BPMS ΟΤΑ Επισειπηζιακή Νοημοζύνη: Οδεγίεο πξνο ηνπο εθπαηδεπόκελνπο γηα ηε ζύλδεζε κε ην ύζηεκα Γηαρείξηζεο Δπηρεηξεζηαθώλ Γηαδηθαζηώλ γηα ηελ εθηέιεζε ηωλ Πξαθηηθώλ Αζθήζεωλ ηωλ ππν(δλνηήηωλ) Bc1.1.4, Bc1.1.5,

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

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις

Έκδοζη /10/2014. Νέα λειηοσργικόηηηα - Βεληιώζεις Έκδοζη 2.89.31 08/10/2014 Η έκδοζη 2.89.31, περιλαμβάνει : Βεληιώζεις Καηάζηαζη Υπερφριών (Ε8) Αναγγελία πρόζληυης (Ε3) 08/10/2014 1 Βεληιώζεις Καηάζηαζη Υπερφριών (Ε8) Επεηδή ζηελ ειεθηξνληθή ππνβνιή

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

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

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΣΥΝΔΥΑΣΤΙΚΑ ΚΥΚΛΩΜΑΤΑ 1. ρεδίαζε πλδπαζηηθνύ Κπθιώκαηνο Έλα ζπλδπαζηηθό θύθισκα (Κ) έρεη ηξεηο εηζόδνπο A, B θαη C θαη κία έμνδν Y Y=A B+AC Να θαηαζθεπάζεηε ην ράξηε Karnaugh. B 0

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

ΦΤΛΛΟ ΔΡΓΑΙΑ 1 Βαζηθέο Έλλνηεο & Καηεγνξίεο Γηθηύσλ Τπνινγηζηώλ

ΦΤΛΛΟ ΔΡΓΑΙΑ 1 Βαζηθέο Έλλνηεο & Καηεγνξίεο Γηθηύσλ Τπνινγηζηώλ ΦΤΛΛΟ ΔΡΓΑΙΑ 1 Βαζηθέο Έλλνηεο & Καηεγνξίεο Γηθηύσλ Τπνινγηζηώλ Γξαζηεξηόηεηα 1ε αο δίλεηαη ν ελλνηνινγηθφο ράξηεο "Γίθηπα Τπνινγηζηψλ - Βαζηθέο Έλλνηεο" πνπ αθνξά ζηελ θεληξηθή έλλνηα "Γίθηπα Τπνινγηζηψλ".

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

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access) Έρνπκε απνζεθεύζεη κηα ζπιινγή αξρείσλ ζε κηα ζπλδεδεκέλε ιίζηα, όπνπ θάζε αξρείν έρεη κηα εηηθέηα ηαπηνπνίεζεο. Μηα εθαξκνγή παξάγεη κηα αθνινπζία από αηηήκαηα πξόζβαζεο ζηα αξρεία ηεο ιίζηαο. Γηα λα

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

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική Δίζηε μησανικόρ διοίκηζηρ μεγάληρ καηαζκεςαζηικήρ εηαιπείαρ και καλείζηε να ςλοποιήζεηε ηο έπγο πος πεπιγπάθεηαι από ηον Πίνακα 1. Κωδ.

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

UML (Unified Modeling Language )

UML (Unified Modeling Language ) UML (Unified Modeling Language ) Μεγάια Έξγα Λνγηζκηθνύ = επηθνηλσλία Πνιινί πξνγξακκαηηζηέο, πνιινί πειάηεο-ρξήζηεο, νη επόκελεο γεληέο, επηβάιινπλ ηε ρξήζε θνηλήο νξνινγίαο ε άιια ηερληθά έξγα ε ρξήζε

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

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ 1.Απηόο πνπ ζα αλαγλσξηζηεί απνπζηάδεη γηα πνιύ θαηξό. 2.Δπηζηξέθεη κε πιαζηή ηαπηόηεηα ή κεηακνξθσκέλνο. 3.Απνκνλώλνληαη ηα δύν πξόζσπα 4.Άξζε κεηακόξθσζεο 5.Απνθάιπςε 6.Ακθηβνιίεο-απνδεηθηηθά

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

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα. Δξγαιεία Καηαζθεπέο 1 Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ Καηαζθεπή 1: Φαθόο κε ζσιήλα Γηαθξάγκαηα Δξγαιεία Καηαζθεπέο 2 Η θαηαζθεπή πεξηγξάθεηαη ζηελ αληίζηνηρε ελόηεηα

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

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ 6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ Σηα πιαίζηα ηεο έθηεο εξγαζηεξηαθήο άζθεζεο ζα ρξεζηκνπνηεζεί απνθιεηζηηθά ην πεξηβάιινλ αλάπηπμεο νινθιεξσκέλσλ θπθισκάησλ IDL-800 Digital

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

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ ΘΔΜΑ Α Α1. α. Σ β. Σ γ. Λ δ. Λ ε. Λ ζη. Σ Α2. Γ Α3. 1. γ 2. ε 3. δ 4. α Β1. ΘΔΜΑ Β Οη ηειηθνί ππνινγηζηέο παίξλνπλ απνθάζεηο δξνκνιόγεζεο κόλν γηα ηα δηθά ηνπο απηνδύλακα

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

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ (ΟΜΑΓΑ Β ) ΣΔΣΑΡΣΖ 18 ΜΑΪΟΤ 16 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ (ΝΔΟ ΤΣΖΜΑ) ΚΑΣΔΤΘΤΝΖ (ΠΑΛΑΗΟ ΤΣΖΜΑ) (Ενδεικηικές Απανηήζεις) ΘΔΜΑ

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

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα 10000 παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο 30000.

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα 10000 παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο 30000. ΔΕΟ 13 Ποσοτικές Μέθοδοι Σσνάρηηζη Κόζηοσς C(), μέζο κόζηος C()/. Παράδειγμα 1 Μηα εηαηξεία δαπαλά γηα θάζε πξντόλ Α πνπ παξάγεη 0.0 λ.κ. Τα πάγηα έμνδα ηεο εηαηξείαο είλαη 800 λ.κ. Ζεηείηαη 1) Να πεξηγξάςεηε

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

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ (Δλδεηθηηθέο Απαληήζεηο) ΘΔΜΑ Α Α1. α. Σωζηό β. Λάζνο

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

Τεκμηπίωζη Πποηύπων Σσεδίαζηρ ηηρ UML

Τεκμηπίωζη Πποηύπων Σσεδίαζηρ ηηρ UML Αλεξάνδπειο Τεσνολογικό Εκπαιδεςηικό Ίδπςμα Θεζζαλονίκηρ Τεκμηπίωζη Πποηύπων Σσεδίαζηρ ηηρ UML Τεο θνηηήηξηαο Μαξγαξίηε Θενδώξα Επηβιέπωλ θαζεγεηήο Ακπαηδόγινπ Απόζηνινο Κάζε πξόηππν πεξηγξάθεη έλα πξόβιεκα

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

Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α

Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α Διαδικαζία μεηαθοράς δεδομένων Εκκαθαριζηικής για ηο Eιδικό ζημείωμα περαίωζης Φ.Π.Α Σει.1 Σο ζςγκεκπιμένο εγσειπίδιο δημιοςπγήθηκε για να βοηθήζει ηην καηανόηζη ηηρ διαδικαζίαρ μεηαθοπάρ δεδομένων ηηρ

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

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2

ΛΙΜΝΗ ΤΣΑΝΤ. Σρήκα 1. Σρήκα 2 ΛΙΜΝΗ ΤΣΑΝΤ Τν Σρήκα 1 δείρλεη ηελ αιιαγή ηεο ζηάζκεο ηεο Λίκλεο Τζαλη, ζηε Σαράξα ηεο Βόξεηαο Αθξηθήο. Η Λίκλε Τζαλη εμαθαλίζηεθε ηειείσο γύξσ ζην 20.000 π.χ., θαηά ηε δηάξθεηα ηεο ηειεπηαίαο επνρήο ησλ

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

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών τοιχεία του μαθήματοσ (ημζρα εβδομάδασ, ώρεσ, ζτοσ): ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών Εργαςτηριακή ομάδα αςκήςεων 2 για το μάθημα «ΑΡΧΙΣΕΚΣΟΝΙΚΗ

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

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ ΜΑΘΗΜΑ : ΑΡΧΑΙΑ ΕΛΛΗΝΙΚΑ ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ Α/Α : 0_1382/153 1. Καη όηαλ έγηλε ε ππνρώξεζε αξγά ην απόγεπκα, επεηδή θνβήζεθαλ νη νιηγαξρηθνί κήπσο νη δεκνθξαηηθνί, αθνύ θάλνπλ επίζεζε, θαηαιάβνπλ

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

CORBA. Αρχιτεκτονική και 3-tier 3. εφαρµογές. Β. Φλώρος. Μαρτάκος. Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστιακό Πανεπιστήµιο Αθηνών

CORBA. Αρχιτεκτονική και 3-tier 3. εφαρµογές. Β. Φλώρος. Μαρτάκος. Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστιακό Πανεπιστήµιο Αθηνών CORBA Αρχιτεκτονική και 3-tier 3 εφαρµογές Β. Φλώρος. Μαρτάκος Συνεργάτης ερευνητής Επικ. Καθηγητής Τµήµα Πληροφορικής και Τηλεπικοινωνιών Εθνικό και Καποδιστιακό Πανεπιστήµιο Αθηνών Τι Είναι; CORBA =

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

Εισαγωγή στοςρ κβαντικούρ ςπολογιστέρ και αλγόπιθμοςρ. Γηδάζθωλ : Φνπληνπιάθεο Αληώληνο

Εισαγωγή στοςρ κβαντικούρ ςπολογιστέρ και αλγόπιθμοςρ. Γηδάζθωλ : Φνπληνπιάθεο Αληώληνο Εισαγωγή στοςρ κβαντικούρ ςπολογιστέρ και αλγόπιθμοςρ. Γηδάζθωλ : Φνπληνπιάθεο Αληώληνο Θεματικές Ενότητες 1. Απιέο έλλνηεο θβαληηθήο κεραληθήο θαη ην ζύζηεκα δύν θβαληηθώλ θαηαζηάζεωλ. 2. Qubit θαη θβαληηθόο

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

Εθαξκνγή ηωλ αξρώλ ηεο Οιηθήο Πνηόηεηαο ζηε Δηνίθεζε Έξγωλ Πιεξνθνξηθήο ζηελ Ειιάδα

Εθαξκνγή ηωλ αξρώλ ηεο Οιηθήο Πνηόηεηαο ζηε Δηνίθεζε Έξγωλ Πιεξνθνξηθήο ζηελ Ειιάδα Παλεπηζηήκην Πεηξαηώο Σκήκα Οξγάλσζεο θαη Γηνίθεζεο Δπηρεηξήζεσλ Μεηαπηπρηαθό Πξόγξακκα ζηε Γηνίθεζε Δπηρεηξήζεσλ Οιηθή Πνηόηεηα Εθαξκνγή ηωλ αξρώλ ηεο Οιηθήο Πνηόηεηαο ζηε Δηνίθεζε Έξγωλ Πιεξνθνξηθήο

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

Πανελλήνια Έρεσνα «Καηαναλωηής & Ελληνικό Προϊόν»

Πανελλήνια Έρεσνα «Καηαναλωηής & Ελληνικό Προϊόν» Πανελλήνια Έρεσνα «Καηαναλωηής & Ελληνικό Προϊόν» Γεώργιος Μπάληας, Οικονομικό Πανεπιζηήμιο Αθηνών Προκόπης Θεοδωρίδης, Πανεπιζηήμιο Παηρών Ταπηόηεηα ηεο έξεπλαο Σθνπόο: Αλίρλεπζε ηεο αγνξαζηηθήο ζπκπεξηθνξάο

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

Κεθάιαην 20. Ελαχιστοποίηση του κόστους

Κεθάιαην 20. Ελαχιστοποίηση του κόστους Κεθάιαην 0 Ελαχιστοποίηση του κόστους Ειαρηζηνπνίεζε ηνπ θόζηνπο Μηα επηρείξεζε ειαρηζηνπνηεί ην θόζηνο ηεο αλ παξάγεη νπνηνδήπνηε δεδνκέλν επίπεδν πξντόληνο y 0 ζην κηθξόηεξν δπλαηό ζπλνιηθό θόζηνο. Τν

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

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο 2009. 1. Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) =

ΔΦΑΡΜΟΜΔΝΑ ΜΑΘΗΜΑΣΙΚΑ ΣΗ ΧΗΜΔΙΑ Ι ΘΔΜΑΣΑ Α επηέκβξηνο 2009. 1. Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(x,y) = ΘΔΜΑΣΑ Α επηέκβξηνο 9. Να ππνινγηζηνύλ νη κεξηθέο παξάγσγνη πξώηεο ηάμεο ηεο ζπλάξηεζεο f(,y) = y.. Να ππνινγηζηνύλ ηα νινθιεξώκαηα: a) ln b) a) 3cos b) e sin 4. Να ππνινγηζηεί ην νινθιήξσκα: S ( y) 3

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

Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο κόζηος ανά μονάδα παραγωγής. Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο ζηαθερό κόζηος ανά μονάδα παραγωγής

Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο κόζηος ανά μονάδα παραγωγής. Q Η ζσνάρηηζη μέζοσ κόζηοσς μας δίνει ηο ζηαθερό κόζηος ανά μονάδα παραγωγής ΜΙΚΡΟΟΙΚΟΝΟΜΙΚΗ ΘΕΩΡΙΑ ΣΟΜΟ Α Mάθημα 5: To παραγωγής σναρηήζεις κόζηοσς Η ζπλάξηεζε ζπλνιηθνύ θόζηνπο C FC VC Όπνπ FC= ην ζηαζεξό θόζηνο (ην θόζηνο γηα ηνλ ζηαζεξό παξαγσγηθό ζπληειεζηή) θαη VC= ην κεηαβιεηό

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

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ: Απλό ηλεκτπικό κύκλυμα Η δηδαζθαιία ηνπ απινύ ειεθηξηθνύ θπθιώκαηνο ππάξρεη ζην κάζεκα «Φπζηθά» ηεο Ε ηάμεο ηνπ δεκνηηθνύ θαη επαλαιακβάλεηαη ζην κάζεκα ηεο Φπζηθήο ζηε Γ ηάμε ηνπ Γπκλαζίνπ.

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

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο Φςζική Πποζαναηολιζμού Γ Λςκείος Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο Επιμέλεια: Αγκανάκηρ Α. Παναγιώηηρ Επωηήζειρ Σωζηό- Λάθορ Να χαπακηηπίζεηε ηιρ παπακάηω πποηάζειρ ωρ ζωζηέρ ή λάθορ: 1. Η ηαιάλησζε είλαη

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

ΑΞΙΟΘΕΑΣΑ ΣΟΤ ΥΩΡΙΟΤ ΜΑ

ΑΞΙΟΘΕΑΣΑ ΣΟΤ ΥΩΡΙΟΤ ΜΑ ΑΞΙΟΘΕΑΣΑ ΣΟΤ ΥΩΡΙΟΤ ΜΑ α. Η ΕΚΚΛΗΙΑ ΣΟΤ ΥΩΡΙΟΤ ΜΑ β. ΣΟ ΠΝΕΤΜΑΣΙΚΟ ΜΑ ΚΕΝΣΡΟ γ. Η ΠΑΝΟΡΑΜΙΚΗ ΘΕΗ ΣΟΤ ΥΩΡΙΟΤ ΜΑ α. Η ΕΚΚΛΗΙΑ ΣΟΤ ΥΩΡΙΟΤ ΜΑ. Η Εθθιεζία ηνπ ρσξηνύ καο, ε Αγία Άλλα, είλαη θηηζκέλε πξηλ πνιιά

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

ΠΑΡΔΜΒΑΔΙ ΔΤΑΙΘΗΣΟΠΟΙΗΗ ΚΑΙ ΠΡΟΛΗΨΗ ΓΙΑ ΣΟΝ HIV/AIDS ΣΗΝ ΑΚΣΟΓΡΑΜΜΗ ΣΩΝ ΠΔΡΙΦΔΡΔΙΑΚΩΝ ΔΝΟΣΗΣΩΝ ΣΗ ΚΔΝΣΡΙΚΗ ΜΑΚΔΓΟΝΙΑ ΑΤΓΟΤΣΟ 2014

ΠΑΡΔΜΒΑΔΙ ΔΤΑΙΘΗΣΟΠΟΙΗΗ ΚΑΙ ΠΡΟΛΗΨΗ ΓΙΑ ΣΟΝ HIV/AIDS ΣΗΝ ΑΚΣΟΓΡΑΜΜΗ ΣΩΝ ΠΔΡΙΦΔΡΔΙΑΚΩΝ ΔΝΟΣΗΣΩΝ ΣΗ ΚΔΝΣΡΙΚΗ ΜΑΚΔΓΟΝΙΑ ΑΤΓΟΤΣΟ 2014 ΠΑΡΔΜΒΑΔΙ ΔΤΑΙΘΗΣΟΠΟΙΗΗ ΚΑΙ ΠΡΟΛΗΨΗ ΓΙΑ ΣΟΝ HIV/AIDS ΣΗΝ ΑΚΣΟΓΡΑΜΜΗ ΣΩΝ ΠΔΡΙΦΔΡΔΙΑΚΩΝ ΔΝΟΣΗΣΩΝ ΣΗ ΚΔΝΣΡΙΚΗ ΜΑΚΔΓΟΝΙΑ ΑΤΓΟΤΣΟ 2014 Σν ΚΔ.ΔΛ.Π.ΝΟ., Γξαθείν Θεζζαινλίθεο θαη ε Γηεύζπλζε Γεκόζηαο Τγείαο ηεο

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ.. ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου έλαξμεο 09.30 ιήμεο 09.45 Σην παξαθάησ ζρήκα θαίλεηαη ηκήκα ελόο πνιενδνκηθνύ ζρεδίνπ κηαο πόιεο. Οη ζθηαζκέλεο

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

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ ΚΔΦ.. ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ Οξηζκόο ηεηξαγσληθήο ξίδαο: Αλ 0 ηόηε νλνκάδνπκε ηεηξαγσληθή ξίδα ηνπ ηελ κε αξλεηηθή ιύζε ηεο εμίζσζεο:. Γειαδή ηεηξαγσληθή ξίδα ηνπ 0 ιέγεηαη ν αξηζκόο 0 πνπ όηαλ πςσζεί

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

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ.. ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου έλαξμεο 09.30 ιήμεο 09.45 Σην παξαθάησ ζρήκα θαίλεηαη ηκήκα ελόο πνιενδνκηθνύ ζρεδίνπ κηαο πόιεο. Οη ζθηαζκέλεο

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