Τι είναι η UML. H UML (Unified Modeling Language) είναι µιά γλώσσα µοντελοποίησης γιά

Σχετικά έγγραφα
Εισαγωγή στη UML ΑΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ 1

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)

Εισαγωγή στη UML. Περιεχόμενα. Γενικά χαρακτηριστικά. Στοιχεία μοντέλων. Συσχετίσεις. Διαγράμματα. Παραδείγματα. Γλώσσες Προδιαγραφής 1

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

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

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 2: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (2ο Μέρος)

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

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

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

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

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

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

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

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

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

UML: Unified modelling language

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

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

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

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

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

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

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια

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

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

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 5: Διαγράμματα Κλάσης (1ο Μέρος)

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

2.1 Αντικειµενοστρεφής προγραµµατισµός

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

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

Εισαγωγή στη γλώσσα UML

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

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

περιεχόμενα παρουσίασης

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19

Υποδείγματα Ανάπτυξης

Τεχνολογία λογισμικού στην πράξη

Ανάλυση Απαιτήσεων Mεθοδολογίες Ανάπτυξης

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

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

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

Ανάλυση Πληροφοριακών Συστημάτων. «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας

Rational Unified Process:

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

Α. Ερωτήσεις Ανάπτυξης

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Μοντελοποίηση Πεδίου

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

Περιπτώσεις Χρήσης και Διαγράµµατα Περιπτώσεων Χρήσης. Use Cases and Use Case Diagrams

περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ UML ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ (ΔΙΑΓΡΑΜΜΑΤΑ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ & ΠΕΡΙΠΤΩΣΕΩΝ ΧΡΗΣΗΣ) (7-8)

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

Τα διαγράµµατα συστατικών

3 Αλληλεπίδραση Αντικειμένων

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

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

ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (Πάτρας) ΤΕΧΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ (Εργαστήριο) Δρ. Χρήστος Πιερρακέας

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

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

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

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

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής

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

Η στοίβα (stack) H στοίβα είναι ένας αποθηκευτικός χώρος οργανωµένος κατά τέτοιο τρόπο ώστε να υποστηρίζει δύο βασικές λειτουργίες:

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

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

Ανάλυση Περιπτώσεων Χρήσης

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

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

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

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

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

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

UML

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

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

Κλάσεις και Αντικείµενα

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML

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

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης

Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού

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

ΔΟΜΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΣΥΜΠΕΡΙΦΟΡΑΣ (9)

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

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

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

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

Έγγραφο Περιγραφής Απαιτήσεων Λογισμικού

Επιχειρηµατικές ιαδικασίες: Εισαγωγικές Έννοιες & Αρχικά στάδια µοντελοποίησης

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

Οντοκεντρικός Προγραμματισμός

Γλώσσες Προγραμματισμού

Transcript:

Εισαγωγή στη UML 1

Τι είναι η UML H UML (Unified Modeling Language) είναι µιά γλώσσα µοντελοποίησης γιά Κατάρτιση προδιαγραφών λογισµικού και τεκµηρίωση τµηµάτων λογισµικού Αναπαράσταση µε οπτικό τρόπο (visualization) τµηµάτων λογισµικού Μοντελοποίηση εταιρικών και άλλων συστηµάτων που δεν αφορούν λογισµικό

Τι είναι Μοντέλο Μερικοί Ορισµοί Μια απεικόνιση από κάτι, το οποίο έχει σχεδιαστεί για έναν ειδικό σκοπό Μια σαφής ερµηνεία της αντίληψης ή των ιδεών που µπορεί κάποιος να έχει για µια κατάσταση µπορεί να εκφραστεί µε µαθηµατικά, σύµβολα, λέξεις, αλλά είναι βασικά µια περιγραφή από οντότητες, διαδικασίες ή ιδιότητες, καθώς και των σχέσεων ανάµεσα τους. Ένα µοντέλο είναι χρήσιµο όταν διευκολύνει την περιγραφή και κάνει πιο κατανοητή µια σύνθετη κατάσταση

Γιατί χρησιµοποιούµε µοντέλα Γενικά Για να περιγράψουµε και να αναλύσουµε ένα σύστηµα πριν την υλοποίηση του Για τη µοντελοποίηση ενός υπάρχοντος συστήµατος,µε σκοπό την κατανόηση και τη µελέτη του χωρίς διακοπή της λειτουργίας του. Σε πολλά επιστηµονικά πεδία, µια κατάσταση ή ένα σύστηµα δεν µελετάται άµεσα, αλλά έµµεσα µέσα από ένα µοντέλο της κατάστασης ή του συστήµατος Για να εξετάσουµε µια ριψοκίνδυνη κατάσταση, κάτι που δε θέλουµε να πραγµατοποιηθεί στην πραγµατικότητα

Μοντελοποίηση στην Ανάλυση και το Σχεδιασµό Πληροφοριακών Συστηµάτων Για την αντιµετώπιση της πολύπλοκης και δυναµικής φύσης των σύγχρονων Πληροφοριακών Συστηµάτων χρησιµοποιούνται Μοντέλο απαιτήσεων ενός Πληροφοριακού Συστήµατος Μοντέλο σχεδιασµού Πληροφοριακού Συστήµατος Τα µοντέλα χρησιµοποιούνται σε όλη την διάρκεια του χρόνου ζωής ενός συστήµατος, υποστηρίζοντας την καταγραφή απαιτήσεων, σχεδιασµό του συστήµατος µελλοντική συντήρησή του.

Γιατί χρησιµοποιούµε µοντέλα στην Ανάλυση Απαιτήσεων Συστήµατος Παρότι η µοντελοποίηση είναι µία χρονοβόρα και δύσκολη διαδικασία, χρειάζεται για τους κάτωθι λόγους: Ένα καλά ορισµένο µοντέλο απαιτήσεων Είναι µέσο επικοινωνίας µεταξύ των συµµετεχόντων στην ανάπτυξη του συστήµατος Διευκολύνει την κατανόηση απαιτήσεων από κάθε συµµετέχοντα και την πιστοποίηση της ορθότητάς του Είναι η βάση για τις προδιαγραφές απαιτήσεων συστήµατος το συµβόλαιο ανάπτυξης του συστήµατος το σχεδιασµό του συστήµατος τον έλεγχο του τελικού υλοποιηµένου συστήµατος την τεκµηρίωση µελλοντικών επεκτάσεων στο σύστηµα

Γιατί χρησιµοποιούµε µοντέλα στο Σχεδιασµό Συστηµάτων Ένα καλά ορισµένο µοντέλο σχεδιασµού: Εξασφαλίζει ότι το σύστηµα που θα αναπτυχθεί θα ικανοποιεί τις απαιτήσεις των χρηστών σε σχέση µε τη λειτουργία του συστήµατος, την κλιµάκωση, ασφάλεια, επεκτασιµότητα κλπ. ΠΡΙΝ ΤΗΝ ΥΛΟΠΟΙΗΣΗ. Μετά την υλοποίηση οι αλλαγές είναι πιο δύσκολες και κοστίζουν περισσότερο Είναι η βάση για την υλοποίηση του συστήµατος Είναι το µέσο επικοινωνίας µεταξύ των προγραµµατιστών Είναι η απαραίτητη τεκµηρίωση για µελλοντικές αλλαγές στο σύστηµα

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΩΝ ΜΟΝΤΕΛΩΝ Γενικά αλλά και στη UML Ακρίβεια περιγράφουν µε ακριβή τρόπο το σύστηµα χωρίς ασάφειες και περιθώρια για παρερµηνείες Συνέπεια διαφορετικές όψεις χρησιµοποιούν όµοια αντικείµενα Εύκολη επικοινωνία Με άλλα διαγράµµατα Με τους χρήστες Ευµετάβλητα Κατανοητά

ΣΤΟΧΟΙ ΤΗΣ UML H µοντελοποίηση συστηµάτων µε βάση τις αρχές της αντικειµενοστρεφούς µοντελοποίησης Η χρήση γλώσσας που µπορεί να χρησιµοποιηθεί τόσο από τον άνθρωπο όσο κι από τις µηχανές

KYKΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ Χρήση UML Ανάλυση Εννοιολογικό µοντέλο (UML) Απαιτήσεις συστήµατος (UML) Σχεδιασµός Σχεδιασµός συστήµατος (UML) Λεπτοµερής σχεδιασµός (UML) Υλοποίηση (UML διαγράµµατα deployment & component) Κωδικοποίηση Έλεγχος

Η έννοια της Αφαίρεσης Γενικά αλλά και στη UML ü Εστίαση σε κάποια επιλεγµένα στοιχεία και αγνόηση υπόλοιπων λεπτοµερειών ü Μοντέλα σε διαφορετικά επίπεδα πιστότητας και λεπτοµέρειας ü Σύνθετα τµήµατα περιγράφονται καλύτερα µε µικρά σύνολα ανεξάρτητων όψεων

Τµήµατα της UML Όψεις Δείχνουν το σύστηµα από διαφορετικές οπτικές πλευρές (π.χ. από την όψη των περιπτώσεων χρήσης του συστήµατος, λογική όψη, όψη deployment, κλπ) Οι όψεις αποτελούνται από διαγράµµατα Διαγράµµατα Περιγράφουν τις όψεις Δηµιουργούνται από τα στοιχεία του µοντέλου Στοιχεία του µοντέλου Είναι τα συστατικά των διαγραµµάτων Παραδείγµατα στοιχείων: περιπτώσεις χρήσης, κλάσεις, αντικείµενα, συσχετίσεις, πακέτα κλπ.

ΕΙΔΗ UML ΔΙΑΓΡΑΜΜΑΤΩΝ (1/2) στατικά διαγράµµατα Η UML παρέχει τα εξής Διαγράµµατα: Περιπτώσεων Χρήσης (use case diagrams) Κλάσεων (class diagrams) Αντικειµένων (object diagrams) Εξωτερική Όψη Συστήµατος δυναµικά διαγράµµατα Δραστηριοτήτων (activity diagrams) Mηχανής Καταστάσεων (state machine diagrams) Ακολουθίας (sequence diagrams) Eπικοινωνίας(communication diagrams) Εσωτερική Όψη Συστήµατος Συστατικών (component diagrams) Aνάπτυξης (deployment diagrams) διαγράµµατα υλοποίησης

ΕΙΔΗ UML ΔΙΑΓΡΑΜΜΑΤΩΝ (2/2) Διαγράµµατα Περιπτώσεων Χρήσης Λειτουργική Όψη Διαγράµµατα Κλάσεων Διαγράµµατα Αντικειµένων Στατική Όψη Διαγράµµατα Δραστηριοτήτων Διαγράµµατα MηχανήςΚαταστάσεων Διαγράµµατα Ακολουθίας Διαγράµµατα Eπικοινωνίας Δυναµική Όψη Διαγράµµατα Συστατικών Διαγράµµατα Aνάπτυξης Όψη Υλοποίησης

ΜΟΝΤΕΛΟΠΟΙΩΝΤΑΣ ΜΕ τη UML ΦΑΣΗ ΑΝΑΛΥΣΗΣ Αναλυση Απαιτήσεων Συστήµατος Διαγράµµατα UML Use case, class, object, activity ΦΑΣΗ ΣΧΕΔΙΑΣΗΣ Eπεκτείνει το µοντέλο ανάλυσης σε µια λειτουργικά τεχνική λύση Διαγράµµατα UML Class, Sequence, State, Activity, Component ΦΑΣΗ ΠΡΑΓΜΑΤΩΣΗΣ Περιγράφει πως το σύστηµα αναπτύσσεται σε φυσική αρχιτεκτονική Διαγράµµατα UML Deployment, Collaboration ΦΑΣΗ ΥΛΟΠΟΙΗΣΗΣ Το µοντέλο είναι τώρα ο κώδικας του προγράµµατος που υλοποιεί το σύστηµα

Πριν δώσουµε Παραδείγµατα για κάθε είδος UML Διαγράµµατοςθα γίνει µια σύνοψη των αρχών της αντικειµενοστρεφούς ανάπτυξης συστηµάτων

Αντικειµενοστρεφής Ανάπτυξη Συστηµάτων Αντικειµενοστρεφής θεώρηση του πραγµατικού κόσµου Πραγµατικός κόσµος: θεωρείται ως ένα σύνολο από αντικείµενα που επικοινωνούν µεταξύ τους ανταλλάσσοντας µηνύµατα Στόχος: η Μοντελοποίηση Αντικειµένων του πραγµατικού κόσµου και της επικοινωνίας τους και ο βαθµιαίος µετασχηµατισµός των µοντέλων σε Αντικειµενοστραφές Λογισµικό Τι χρειάζεται: Αντικειµενοστρεφής Γλώσσα Μοντελοποίησης (π.χ. UML) ->Αντικειµενοστρεφή Μοντέλα Αντικειµενοστρεφής Μεθοδολογία Ανάπτυξης (π.χ. Rational Unified Process) Αντικειµενοστρεφή Εργαλεία Ανάπτυξης Case Tools, π.χ. Rational Rose, ArgoUML, StarUML Γλώσσες προγραµµατισµού, π.χ. C++, Java κλπ

Τι είναι Αντικείµενο Αντικείµενο πραγµατικού κόσµου:π.χ. ποδήλατο, σκύλος, αυτοκίνητο Αντικείµενο λογισµικού: Μοντελοποιεί, αναπαριστά, αντιστοιχεί σε: Αντικείµενο του πραγµατικού κόσµου Δοµές δεδοµένων (π.χ. Λίστα, ουρά) Κάποιο γεγονός Κάτι αφαιρετικό Έχει: χαρακτηριστικά και κατάσταση (µοντελοποιείται µε µεταβλητές - στατικό µέρος) και Συµπεριφορά (µοντελοποιείται µε µεθόδους - δυναµικό µέρος)

Τι είναι Αντικείµενο (συνέχεια) Ολα τα αντικείµενα έχουν χαρακτηριστικά καί βρίσκονται σε µιά κατάσταση. π.χ. Σκυλί: όνοµα, χρώµα, πεινασµένο, κλπ. Ποδήλατο: 2 τροχοί, χρώµα, αριθµ.ταχυτήτων, παρούσα ταχύτητα κλπ Συµπεριφορά, π.χ. Σκυλί: γαβγίζει, τρώει, παίζει, κουνάει την ουρά, κλπ. Ποδήλατο: φρενάρει, αυξάνει/ελαττώνει ταχύτητα, αλλάζει ταχύτητα κλπ

Αντικειµενοστρεφής Μοντελοποίησηκαι Υλοποίηση Σχετικές Έννοιες Απόκρυψη Πληροφορίας (information hiding) Εγκλεισµός (encapsulation) Επικοινωνία µέσω µηνυµάτων Κλάσεις Αντικειµένων Ιεραρχίες Κλάσεων - Κληρονοµικότητα

Απόκρυψη Πληροφορίας Δηµόσιο Μέρος (Public API) Iδιωτικό Μέρος (Λεπτοµέρειες Υλοποίησης)

Παράδειγµα Αντικειµένου: ΠΟΔΗΛΑΤΟ Αλλαξε Ταχύτητα Φρέναρε Ξεκίνα Λεπτοµέρειες Υλοποίησης των λειτουργιών

Eγκλεισµός (Εncapsulation) H έννοια του εγκλεισµού (encapsulation) Πλεονεκτήµατα Αρθρωτά (modular) προγράµµατα: Ο πηγαίος κώδικας γιά ένα αντικείµενο µπορεί να γραφτεί καί να συντηρηθεί ανεξάρτητα από άλλα αντικείµενα Απόκρυψη πληροφορίας (ιδιωτικό µέρος / δηµόσιο)

Επικοινωνία Μεταξύ Αντικειµένων ΠΟΔΗΛΑΤΟ ΠΟΔΗΛΑΤΗΣ Αλλαξε Ταχύτητα Φρέναρε Φρέναρε ΜΗΝΥΜΑ Ξεκίνα

Μηνύµατα Τα αντικείµενα επικοινωνούν και αλληλεπιδρούν µεταξύ τους αποστέλλοντας µηνύµατα. Επιπλέον πληροφορία δίνεται ως παράµετροι των µηνυµάτων. Πλεονεκτήµατα Όλη η αλληλεπίδραση υποστηρίζεται µε µεταβίβαση µηνυµάτων. Τα αντικείµενα δεν χρειάζεται να βρίσκονται στην ίδια διεργασία, ούτε καν στον ίδιο υπολογιστή.

ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ Μία κλάση είναι ένα σχέδιο, ένα πρότυπο που ορίζει τις κοινές µεταβλητές και µεθόδους όλων των αντικειµένων που ανήκουν στο ίδιο είδος. Προσοχή: η κλάση δεν είναι σύνολο Κάθε αντικείµενο είναι στιγµιότυπο µίας κλάσης.

ΠΑΡΑΔΕΙΓΜΑ ΚΛΑΣΗΣ: ΠΟΔΗΛΑΤΟ Δηµόσιο Μέρος (Public API) Φρέναρε Αλλαξε Ταχύτητα Ξεκίνα Iδιωτικό Μέρος (Λεπτοµέρειες Υλοποίησης) Στατικά Χαρακτηριστικά: ΧΡΩΜΑ ΜΟΝΤΕΛΟ --------- Δυναµικά ΧαρακτηριστικάΣ ΑΛΛΑΞΕ ΤΑΧΥΤΗΤΑ: (Υλοποίηση) κλπ

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

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ Υποκλάσεις (subclasses) και υπερκλάσεις (superclasses) Κάθε υποκλάση: κληρονοµεί τη συµπεριφορά και την κατάσταση της υπερκλάσης της µπορεί να επανα-ορίσει (override) κληροδοτούµενη συµπεριφορά και κατάσταση Μπορεί να επεκτείνει την κληροδοτούµενη συµπεριφορά και κατάσταση Ιεραρχία κλάσεων

ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΚΛΗΡΟΝΟΚΙΚΟΤΗΤΑΣ Οι υποκλάσεις προσφέρουν εξειδικευµένη συµπεριφορά. Επαναχρησιµοποίηση του κώδικα της υπερκλάσης. Οι προγραµµατιστές µπορούν να υλοποιήσουν υπερκλάσεις που λέγονται αφαιρετικέςκλάσεις (abstract classes) µε γενικευµένη συµπεριφορά. Οι αφαιρετικές κλάσεις ορίζουν και υλοποιούν εν µέρει τη συµπεριφορά. Κάθε προγραµµατιστής συµπληρώνει τα χαρακτηριστικά που επιθυµεί.

Παραδείγµατα από κάθε είδος UML Διαγράµµατος

Διάγραµµα περιπτώσεων χρήσης USE-CASE DIAGRAM Περιγράφει τη λειτουργικότητα του συστήµατος όπως γίνεται αντιληπτή από τον χρήστη Είσοδος στο Σύστηµα Ασθενής «include» Κλείσιµο ραντεβού «include» Ενηµέρωση Φακέλου Ασθενή Γιατρός

ΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ CLASS DIAGRAM ΚΑΤΟΧΟΣ ΥΠΟΛΟΓΙΣΤΗΣ Όνοµα: Συµβολοσειρά Ηλικία: : Ακέραιος χρησιµοποιεί 0..1 1..* όνοµα : Συµβολοσειρά Μνήµη:Ακέραιος Είδη συσχετίσεων µεταξύ κλάσεων: Απλή συσχέτιση, συσχέτισηεξάρτησης, συσχέτισηεξειδίκευσης / κληρονοµικότητας, συσχέτισηοµαδοποίησης

Παραδείγµατα συσχετίσεων µεταξύ κλάσεων Απλή Συσχέτιση Εξάρτηση (dependency) ένα στοιχείο εξαρτάται µε κάποιον τρόπο από κάποιο άλλο Εξειδίκευση / Κληρονοµικότητα ένα στοιχείο αποτελεί ειδική περίπτωση κάποιου άλλου Οµαδικότητα ένα στοιχείο δηµιουργείται από άλλα στοιχεία

ΔΙΑΓΡΑΜΜΑ ΑΝΤΙΚΕΙΜΕΝΩΝ ΟBJECT DIAGRAM Δίνει παραδείγµατα συγκεκριµένων στιγµιότυπων των κλάσεων και τις µεταξύ τους σχέσεις Bob:ΚΑΤΟΧΟΣ ------------------------- όνοµα: Bob.j Ηλικία = 32 Bob s job PC: YΠΟΛΟΓΙΣΤΗΣ -------------------------- Όνοµα: Dell4 Μνήµη =2.4 Bob s Home: YΠΟΛΟΓΙΣΤΗΣ ------------------------- Όνοµα: Pentium Μνήµη = 3.2

ΔΙΑΓΡΑΜΜΑ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ ΑCTIVITY DIAGRAM - Δίνει την ακολουθιακή ροή των δραστηριοτήτων - Περιέχει προσδιορισµούς των µηνυµάτων που στέλνονται ΠαράθυροΠελάτη.Εκτύπωση ( ) [ Δίσκος γεµάτος ] Εµφάνισε µύνηµα «Δίσκος γεµάτος» [ Ελεύθερος χώρος δίσκου ] Εµφάνισε µύνηµα «Εκτύπωση» στην οθόνη Μετακίνησε κουτιά µηνυµάτων ^Εκτυπωτής.Εκτύπωση() Δηµιουργησε postscript αρχείου

ΔΙΑΓΡΑΜΜΑ MHXANHΣ ΚΑΤΑΣΤΑΣΕΩΝ StateMachine Diagram arrived On first floor Go up (floor) Moving up Movingto 1st floor arrived Go up (floor) Moving down arrived Idle Go down (floor) Time out

ΔΙΑΓΡΑΜΜΑ AΚΟΛΟΥΘΙΑΣ SEQUENCE DIAGRAM Print(file) :Computer :PrinterServer :Printer :Queue Print(file) [printer free] Print(file) [printer busy] Store(file)

ΔΙΑΓΡΑΜΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ COΜΜUNICATION DIAGRAM (παλαιό Collaboration Diagram) :Computer :Queue 1:Print(file) [printer busy] 1.2: Store(file) :PrinterServer [printer free] 1.1: Print(file) :Printer

ΔΙΑΓΡΑΜΜΑ ΣΥΣΤΑΤΙΚΩΝ COMPONENT DIAGRAM Δείχνει τα συστατικά µέρη του κώδικα και τη φυσική τους δοµή Window Handler (wind.cpp) Window Handler (wind.obj) Graphic lib (graphic.dll) Main Class (main.cpp) Comm Handler (comm.hnd) Main Class (main.obj) Comm Handler (commhnd.obj) Client Program (client.exe)

ΔΙΑΓΡΑΜΜΑ ΑΝΑΠΤΥΞΗΣ DEPLOYMENT DIAGRAM Client A: Compaq Pro PC Silicon Graphics: Application Server «Decnet» Vax: DatabaseServer Client B: Compaq Pro PC -> Δείχνει τους υπολογιστές και τις συσκευές (κόµβους) καθώς και τον τύπο των συνδέσεων ->Εκτελέσιµα αντικείµενα φανερώνουν ποιες µονάδες λογισµικού εκτελούνται σε κάθε κόµβο

ΛΕΙΤΟΥΡΓΙΕΣ ΤΩΝ ΕΡΓΑΛΕΙΩΝ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ (Case Tools) Σχεδιασµός διαγραµµάτων που εξασφαλίζουν τησωστή χρήστη των στοιχείων του µοντέλου Αποθήκευση δεδοµένων - Αν το όνοµα µιας κλάσης αλλάζει σ ένα διάγραµµα, η αλλαγή αυτή διαδίδεται και στα υπόλοιπα Υποστήριξη εισαγωγής / εξαγωγής ενός στοιχείου µεταξύ διαγραµµάτων κι επέκταση της περιγραφής του στοιχείου Υποστήριξη πολλών χρηστών -να δουλεύουν πολλοί χρήστες ταυτόχρονα Δηµιουργία κώδικα

ΑΛΛΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΤΩΝ CASE TOOLS Αντίστροφη παραγωγή µοντέλων (reverse engineering) δηλαδή παραγωγή µοντέλων από τον κώδικα Συµβατότητα µε άλλα εργαλεία Π.χ. editor, µεταγλωττιστές κι άλλα επιχειρησιακά εργαλεία Κάλυψη όλων των φάσεων ανάπτυξης από τη φάση περιγραφής του συστήµατος στην παραγωγή κώδικα Διαλειτουργικότητα ανάµεσα στα µοντέλα Ένα µοντέλο διαγραµµάτων θα πρέπει να έχει τη δυνατότητα να εισάγεται από το ένα εργαλείο στο άλλο