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

Σχετικά έγγραφα
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

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

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

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

4η ιάλεξη. UML ιαγράμματα αλληλεπίδρασης

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

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

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

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

14η ιάλεξη. Προχωρημένα θέματα σχεδίασης

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

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

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Μοντελοποίηση Λογικών Κυκλωμάτων

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Οργανωσιακή Συμπεριφορά Ενότητα 1: Η έννοια της οργάνωσης και διοίκησης

ΔΙΔΑΣΚΩΝ: Δρ. Στυλιανός Τσίτσος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

Αυτοματοποιημένη χαρτογραφία

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

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

Λογιστικές Εφαρμογές Εργαστήριο

Υδραυλικά & Πνευματικά ΣΑΕ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Εισαγωγή ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης

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

Διαδικαστικός Προγραμματισμός

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

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

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

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

Ειδικά Θέματα Προγραμματισμού

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Αρχιτεκτονική υπολογιστών

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Μηχανολογικό Σχέδιο Ι

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Δομημένος Προγραμματισμός

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τίτλος Μαθήματος. Ενότητα: Εργαστήριο 4 ο : Παρουσίαση και Ανάλυση της Φόρμας Σχεδίασης Δραστηριοτήτων με χρήση λογισμικού/ά.

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Βάσεις Περιβαλλοντικών Δεδομένων

Ειδικά Θέματα Προγραμματισμού

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Ενδεικτικές λύσεις ασκήσεων

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Λογισμός ΙΙ. Χρήστος Θ. Αναστασίου Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΝΟΜΙΣΜΑΤΙΚΗ ΟΙΚΟΝΟΜΙΚΗ ΠΟΛΙΤΙΚΗ. Ενότητα 3: Αγορά Χρήματος και επιτόκια. Γεώργιος Μιχαλόπουλος Τμήμα Λογιστικής-Χρηματοοικονομικής

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Θεωρία Πιθανοτήτων & Στατιστική

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

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

Ενδεικτικές λύσεις ασκήσεων

Περιβαλλοντική Χημεία

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

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

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Βάσεις Δεδομένων. Ενότητα 5: ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

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

Προγραμματισμός Διαδικτύου

Στατιστική Επιχειρήσεων Ι

Αντικειμενοστρεφής Προγραμματισμός

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

{ int a = 5; { int b = 7; a = b + 3;

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Πληροφορική. Εργαστηριακή Ενότητα 8 η : Γραφήματα

Εισαγωγή στη διδακτική των γλωσσών Ασκήσεις

Ενδεικτικές λύσεις ασκήσεων

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7α: SQL (NULL, Διαίρεση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΣΧΕΔΙΟ ΣΤΟΝ Η/Υ. Ενότητα 3: Εντολές επεξεργασίας Extend, Fillet, Block. Παπαδόπουλος Χρήστος Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Εισαγωγή στους Αλγορίθμους

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Ενότητα: Μηχανοργάνωση Νοσοκομείου

Transcript:

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

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

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Κεντρικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. ΒΙΟΜΗΧΑΝΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 3

11η ιάλεξη Η σχεδίαση του συστήματος 1

Τι κάνουμε στη σχεδίαση; Βρίσκουμε τη μορφή του συστήματος Ενώ στην καταγραφή των απαιτήσεων και την ανάλυση η επιλογή της γλώσσας υλοποίησης δεν ήταν σημαντική στη σχεδίαση οι κλάσεις σχεδιάζονται έχοντας υπόψη μια συγκεκριμένα γλώσσα Η σχεδίαση πρέπει να λάβει υπ όψη της τόσο τις λειτουργικές όσο και τις μηλειτουργικές απαιτήσεις 2

Σκοπός της σχεδίασης Καθορίζουμε με μεγάλη λεπτομέρεια τη συμπεριφορά (ιδιότητες, μεθόδους) των κλάσεων Κάποιες από τις κλάσεις που ανακαλύφθηκαν κατά την ανάλυση θα σχεδιαστούν με περισσότερες από μία κλάσεις Λαμβάνονται υπόψη και οι μηλειτουργικές απαιτήσεις 3

Βρείτε τις κλάσεις σχεδίασης Μελετήστε τις κλάσεις ανάλυσης που παίρνουν μέρος στις αναλύσεις των περιπτώσεων χρήσης Μελετήστε τις ειδικές απαιτήσεις της αντίστοιχης ανάλυσης της περίπτωσης χρήσης. Ορίστε αντίστοιχες κλάσεις σχεδίασης που υλοποιούν αυτές τις απαιτήσεις 4

Περιγράψτε τις αλληλεπιδράσεις μεταξύ των αντικειμένων 5 Αφού βρείτε τα αντικείμενα που παίρνουν μέρος σε μια περίπτωση χρήσης ορίστε και τον τρόπο που αυτά αλληλεπιδρούν μεταξύ τους Η περιγραφή μπορεί να γίνει είτε χρησιμοποιώντας ένα διάγραμμα συνεργασίας ή ένα διάγραμμα ακολουθίας Χρησιμοποιήστε ένα διάγραμμα για κάθε πιθανή εναλλακτική ροή

Σχεδίαση των κλάσεων Καθορίστε: τις λειτουργίες της κλάσης τα χαρακτηριστικά της τις σχέσεις στις οποίες μετέχει τις μεθόδους που υλοποιούν τις λειτουργίες τις πιθανές καταστάσεις της πιθανές εξαρτήσεις της από τη γενική σχεδίαση Απαιτήσεις από την υλοποίηση Πιθανές διεπαφές που πρέπει να προσφέρει 6

Πώς θα μπορούσατε να προχωρήσετε; είτε τις κλάσεις ορίου Αν αφορούν επικοινωνία με ανθρώπινο χαρακτήρα, αποφασίστε ποια ακριβώς πληροφορία θα παρουσιάσουν και πώς Ορίστε για παράδειγμα Buttons, TextAreas κτλ είτε τις κλάσεις ελέγχου Αποφασίστε πως θα αντιδρά κάθε τάξη ελέγχου σε περιπτώσεις λαθών; Τι θα κάνει; 7

Πώς θα μπορούσατε να προχωρήσετε; είτε τις τάξεις οντοτήτων Πώς θα αποθηκεύονται και που; Ανάλογα με την τεχνολογία που θα χρησιμοποιήσετε μπορεί να πρέπει να υλοποιήσετε και ένα μηχανισμό διασύνδεσης Για τις σχεσιακές βάσεις υπάρχουν αυτόματα εργαλεία που μπορούν να κάνουν σε κάποιο βαθμό τη μετατροπή ανάμεσα σε τάξεις και πίνακες. 8

Άλλες ενέργειες που θα μπορούσατε να κάνετε 9 Ορισμένα αντικείμενα αλλάζουν πολλές καταστάσεις στη διάρκεια ζωής τους. Για παράδειγμα μια παραγγελία μπορεί να είναι «Ανοικτή», «Υπό εκτέλεση», «Υπό παράδοση», «Ολοκληρωμένη», «Πληρωμένη» κτλ. Για τέτοια αντικείμενα μπορεί να είναι χρήσιμο να κάνετε ένα διάγραμμα που δείχνει πότε και πως αλλάζουν καταστάσεις

Παράδειγμα Σχεδίασης 10

Σχεδίαση 11 Σε προηγούμενη διάλεξη είχαμε αναλύσει την περίπτωση χρήσης Αίτηση για όνομα χώρου Στην ανάλυση είχε αποφασιστεί ότι θα χρησιμοποιηθεί μια κλάση ορίου που θα έχει ως ευθύνη την παρουσίαση των προφίλς και θα επιτρέπει στο χρήση να εισάγει το όνομα χώρου που επιθυμεί Τώρα σχεδιάζουμε αυτήν την κλάση χρησιμοποιώντας τη γλώσσα της επιλογής μας (στη συγκεκριμένη περίπτωση Java) ως μια φόρμα με κάποια components

Σχεδίαση της ApplyForm ApplyForm -domainname : JTextField -profilename : JComboBox -buttonok : JButton +OKButton_Clicked() :. +Profil_Selected() 12

Άλλες ενέργειες στη σχεδίαση Κοιτούμε ξανά με ποιες κλάσεις θα συνεργάζεται η ApplyForm Παρατηρούμε ότι κάπως πρέπει να «γεμίζουμε» το ComboBox με τα ονόματα των προφίλς και αποφασίζουμε ότι μια νέα κλάση θα είναι υπεύθυνη για να διαβάζει τα profils και να τα δίνει στην ApplyForm (ApplicationFormController) Κάνουμε μια πρώτη προσπάθεια σχεδιάζοντας ένα διάγραμμα συνεργασίας 13

Σχεδίαση 14

Σχεδίαση των κλάσεων ελέγχου Είναι δύσκολη και λεπτεπίλεπτη δουλειά. Εξαρτάται από την κατανομή του συστήματος τις απαιτήσεις σε απόδοση τις απαιτήσεις σε ασφάλεια 15

Σχεδίαση της Apply Process Τι πρέπει να κάνει αυτή η κλάση; Από τη φάση ανάλυσης βλέπουμε ότι έχει τις ακόλουθες υποχρεώσεις Class ProcessApply Superclass(es) Subclasses Responsibility Εξετάζει την ορθότητα της αίτησης που έστειλε ο χρήστης Αποστέλει την αίτηση και ελέγχει την απάντηση Αν η απάντηση ότι η αίτηση παραλήφθηκε χωρίς πρόβλημα δημιουργεί την αίτηση Ενημερώνει τις μονάδες του χρήστη Ενημερώνει το χρήστη Collaborators ApplyForm EppProtocol Application Account ResultWindow 16

Προβλήματα που μπορεί να συναντήσετε 17 Η ProcessApply είναι υπεύθυνη για την αντιμετώπιση πιθανών προβλημάτων. Να μην έχει συμπληρώσει σωστά ο χρήστης την αίτηση (δηλαδή να μην έχει συμπληρώσει τα στοιχεία του domain name, ή του προφίλ) Να μη μπορεί να στείλει την αίτηση ή να τη στείλει αλλά να πάρει απάντηση ότι υπήρχε πρόβλημα Να μη μπορέσει να αποθηκεύσει τα στοιχεία της αίτησης Να μη μπορέσει να αλλάξει τα στοιχεία των μονάδων του χρήστη

Στη συγκεκριμένη περίπτωση 18 Αποφασίζουμε ότι σε όλα τα προβλήματα απλά εμφανίζουμε ένα μήνυμα λάθους στο χρήστη Για την περίπτωση που δε μπορούμε να μειώσουμε τις μονάδες του χρήστη αποφασίζουμε ότι θα αλλάξουμε και τη ροή των γεγονότων. Έτσι πλέον πριν γίνει η αποστολή της αίτησης αφαιρούμε τις μονάδες και μόνο τότε αποστέλλουμε την αίτηση

Μπορούμε επομένως να περιγράψουμε τη ροή της ProcessApply ως εξής 19

Βελτιώνουμε και το διάγραμμα ε φαίνεται όλο το διάγραμμα αλλά μόνο το κομμάτι που μας ενδιαφέρει 20

Άλλες ενέργειες 21 H διαχείριση ονομάτων χώρου κάνει «αιτήσεις» για ονόματα που μπορεί να εγκριθούν ή να απορριφθούν. Το σύστημά μας μάλιστα έχει και μια κλάση με το όνομα «Application» που αντιστοιχεί στις αιτήσεις. Μπορούμε να κάνουμε ένα διάγραμμα για να αναπαραστήσουμε πως δημιουργείται και πώς αλλάζει ένα αντικείμενο αυτής της κλάσης.

Η ζωή ενός αντικειμένου μιας κλάσης Application 22