Εισαγωγή στη UML ΑΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ 1

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

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

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

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

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

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

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

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

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

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

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

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

UML: Unified modelling language

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Rational Unified Process:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεδιασµός Λογισµικού

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

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

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

Διαγράμματα περιπτώσεων χρήσης

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

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

Κωδικός: <Κωδ.Αρ.Εγγράφου/ΚωδικόΌνομαΈργου/Αρ. Έκδοσης> <Company Name> <Όνομα - Κωδικό Όνομα Έργου> Έγγραφο Περιγραφής Σχεδίου Λογισμικού

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

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

UML

Transcript:

Εισαγωγή στη UML ΑΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ 1

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

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

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

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

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

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

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΩΝ ΜΟΝΤΕΛΩΝ Γενικά αλλά και στη 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 Περιγράφει τη λειτουργικότητα του συστήµατος όπως γίνεται αντιληπτή από τον χρήστη Υπογραφή ασφάλειας Στατιστικά στοιχεία πωλήσεων Πελάτης Στατιστικά στοιχεία πελατών Πράκτοραςασφαλειών

ΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ 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

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 -> Δείχνει τους υπολογιστές και τις συσκευές (κόµβους) καθώς και τον τύπο των συνδέσεων ->Εκτελέσιµα αντικείµενα φανερώνουν ποιες µονάδες λογισµικού εκτελούνται σε κάθε κόµβο

ΕΠΕΚΤΕΙΝΟΝΤΑΣ ΤΗ UML Στερεότυπα: ορίζουν ένα νέο είδος στοιχείου µοντέλου βασισµένο σ ένα υπάρχον στοιχείο µοντέλου. Είναι λοιπόν σαν ένα υπάρχον στοιχείο µοντέλου, µε κάποια επιπλέον στοιχεία Tagged values: Τα στοιχεία µπορούν να έχουν ιδιότητες που περιέχουν ζευγάρια τιµών σχετικά µε επιπλέον πληροφορίες Περιορισµοί: Θέτουν κάποια βάση που περιορίζει είτε τη χρήση του στοιχείου είτε τη σηµασία του

Tagged values και περιορισµοί Εργαλείο {abstract} {συγγραφέας= Hee } {κατάσταση=draft} {Ατοµο.Ηλικία>60} Οµάδα Ηλικιωµένων Πολιτών 0..1 0..* Τιµή: ακέραιος Ηµ.λήξης: ηµεροµηνία Άτοµο O συγγραφέας και η κατάσταση είναι γνωρίσµατα ορισµένα από το χρήστη Περιορισµοί

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

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