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



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

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

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

Σκοπός του μαθήματος

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

UML: Unified modelling language

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

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

. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Αντικειµενοστρεφής ανάλυση και σχεδίαση

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

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

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

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

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

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

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

Rational Unified Process:

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

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

ΚΕΦΑΛΑΙΟ 7 ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ. Έννοιες-κλειδιά

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

Πανεπιστήµιο Πειραιά Τµήµα Εκπαιδευτικής Τεχνολογίας και Ψηφιακών Συστηµάτων. Εισαγωγή στην UML. Βασίλειος Βεσκούκης

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

Αντικειµενοστρεφής ανάλυση και σχεδίαση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. Μεθοδολογία Προγραμματισμού. UML Διαγράμματα. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

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

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

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

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

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

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

Διάγραμμα Οντοτήτων - Συσχετίσεων

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

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

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

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

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

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

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

Περιγραφή Μαθήματος. Περιγραφή Περιεχόμενο του Μαθήματος

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

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

Εφαρμογή Μεθοδολογίας ICONIX

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

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

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Κανόνες μετατροπής Διαγράμματος Οντοτήτων-Συσχετίσεων σε Σχεσιακό Σχήμα. Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ,

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

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

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Διάγραμμα Κλάσεων. Class Diagram

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

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

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

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

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

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

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

ΔΙΑΓΡΑΜΜΑ ΟΝΤΟΤΗΤΩΝ - ΣΥΣΧΕΤΙΣΕΩΝ

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

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

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

Βάσεις Δεδομένων Ενότητα 4

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

ΜοντέλοΟντοτήτωνΣυσχετίσεων & ΔιάγραμμαΟντοτήτων Συσχετίσεων. Μοντέλο Οντοτήτων Συσχετίσεων

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας

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

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


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

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

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

Database Design. Documenting Business Rules Τεκμηρίωση Επιχειρησιακών κανόνων. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

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

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

Αρ.Ταυτότητας: Α Ονοµα: Νικόλαος Επώνυµο: Νικολάου ιεύθυνση: Αγ.Νικολάου 1 Τηλέφωνο:

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

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

Ηλεκτρονικό Κατάστημα

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

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

Transcript:

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Η Αντικειμενοστρεφής Τεχνολογία Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 202-203 Περιεχόμενο του μαθήματος Η έννοια του αντικειμένου κλάσεις αντικείμενα σχέσεις μεταξύ κλάσεων Συμβολισμοί και πρότυπα Η γλώσσα μοντελοποίησης UML 2

Αντικειμενοστρεφής ανάπτυξη λογισμικού Αντικειμενοστρεφής Χαρακτηρισμός που σημαίνει «στραμμένος (προσανατολισμένος) σε αντικείμενα» και αποδίδεται σ εκείνο τον τρόπο σκέψης κατά την ανάπτυξη λογισμικού, στο οποίο τα «αντικείμενα» είναιοιβασικέςδομικέςμονάδες Αντικείμενο Δομικό συστατικό του λογισμικού. Κάθε αντικείμενο έχει: Κατάσταση: που περιγράφει όλες τις στατικές του ιδιότητες, όπως τιμές σε μεταβλητές μνήμης Συμπεριφορά: τρόπο με τον οποίο ανταποκρίνεται σε κλήσεις από το περιβάλλον του Ταυτότητα: μοναδική διάκριση από τα ομοειδή του Μπορεί να θεωρηθεί ως η συγχώνευση δύο εννοιών που κατέχουν δεσπόζουσα θέση στο δομημένη ανάπτυξη: της εγγραφής (record) και της συνάρτησης ή διαδικασίας (function ή procedure) Αν σε μια εγγραφή (συλλογή μεταβλητών μνήμης) προσθέσουμε ενεργά συστατικά (μονάδες προγράμματος που εκτελούν υπολογισμούς), τότε μιλάμε για αντικείμενο κι όχι για εγγραφή Το αντικείμενο συνδυάζει και ένα σύνολο δεδομένων και ένα σύνολο συναρτήσεων που χειρίζονται τα δεδομένα αυτά 3 Ορισμοί Κλάση (τάξη) Το σύνολο των αντικειμένων που έχουν την ίδια δομή και την ίδια συμπεριφορά Στιγμιότυπο (εκδοχή) Κάθε αντικείμενο αποτελεί ένα μοναδικό και συγκεκριμένο στιγμιότυπο (instance) τηςκλάσηςστηνοποίαανήκει Πεδίο (ιδίωμα ή ιδιότητα) Μια μεταβλητή η οποία παριστάνει ένα χαρακτηριστικό γνώρισμα του αντικειμένου Το σύνολο των πεδίων ενός αντικειμένου αποτελεί την κατάσταση αυτού Μέθοδος Ένα ενεργό συστατικό λογισμικού (συνάρτηση, διαδικασία), η οποία υλοποιεί ένα στοιχείο συμπεριφοράς ενός αντικειμένου Το σύνολο των μεθόδων ενός αντικειμένου καθορίζει τη συμπεριφορά του 4

Παραδείγματα αντικειμένων που ομαδοποιούνται σε κλάσεις 5 Αναπαράσταση κλάσεων Μάθημα Ελέφαντας Χρώμα: string Αριθμός χαυλιοδόντων: integer Τοποθεσία: string Βάρος: real Ύψος: real κίνηση_προς (τοποθεσία) πλύσιμο (ημερομηνία) λήψη_τροφής ( ποσότητα, ημερομηνία, ώρα) Κωδικός μαθήματος Θεματική ενότητα Τίτλος Διδάσκων Προσθήκη Μαθήματος () Διαγραφή Μαθήματος () Μεταβολή στοιχείων Μαθήματος () Ανάθεση Μαθήματος () Καθηγητής Αρ. Ταυτότητας Όνομα Επώνυμο Διεύθυνση Τηλέφωνο Προσθήκη Καθηγητή () Διαγραφή Καθηγητή () Μεταβολή στοιχείων Καθηγητή () 6

Στιγμιότυπα κλάσεων (αντικείμενα) Καθηγητής 0 Αρ. Ταυτότητας: Β987654 Όνομα: Νικόλαος Επώνυμο: Νικολάου Διεύθυνση: Χ. Τρικούπη και Φάωνος Τηλέφωνο: 225036600 Προσθήκη Καθηγητή () Διαγραφή Καθηγητή () Μεταβολή στοιχείων Καθηγητή () Καθηγητής 02 Αρ. Ταυτότητας: Α23456 Όνομα: Γεωργία Επώνυμο: Γεωργίου Διεύθυνση: Σαπφούς 5 Τηλέφωνο: 225036699 Προσθήκη Καθηγητή () Διαγραφή Καθηγητή () Μεταβολή στοιχείων Καθηγητή () Μάθημα 0 Κωδικός μαθήματος: ΠΛΡ- Θεματική ενότητα: ΠΛΗΡΟΦΟΡΙΚΗ Τίτλος: Τεχνολογία Λογισμικού Διδάσκων: Β987654 Προσθήκη Μαθήματος () Διαγραφή Μαθήματος () Μεταβολή στοιχείων Μαθήματος () Ανάθεση Μαθήματος () 7 Σχέσεις μεταξύ κλάσεων Καθηγητής ρόλοι Αρ. Ταυτότητας Όνομα Επώνυμο Διεύθυνση Τηλέφωνο Προσθήκη Καθηγητή () Διαγραφή Καθηγητή () Μεταβολή στοιχείων Καθηγητή () Διδάσκων Διδάσκει όνομα Μάθημα Αντικείμενο..3 Κωδικός μαθήματος Θεματική ενότητα Τίτλος Διδάσκων πολλαπλότητα Παριστάνουν σχέσεις μεταξύ των πεδίων των κλάσεων Μοντελοποιούν δυνατές συσχετίσεις μεταξύ πραγματικών αντικειμένων Προσθήκη Μαθήματος () Διαγραφή Μαθήματος () Μεταβολή στοιχείων Μαθήματος () Ανάθεση Μαθήματος () 8

Κύριοι τύποι σχέσεων Συσχέτιση (association) η πιο γενική από τις σχέσεις Κληρονομικότητα (inheritance) αποτελεί κεντρικό στοιχείο της αντικειμενοστρεφούς φιλοσοφίας και βασικό μέσο ταξινόμησης (classification) των οντοτήτων του πραγματικού κόσμου δύο κλάσεις συνδέονται με κληρονομικότητα όταν η μια αποδίδει στην άλλη χαρακτηριστικά της στην περίπτωση που μια κλάση κληρονομεί χαρακτηριστικά απόπερισσότερεςτηςμιαςκλάσηςτότεμιλάμεγια πολλαπλή κληρονομικότητα (multiple inheritance) Συναρμολόγηση (aggregation) εκφράζει τη σύνθεση συνόλων από απλούστερα μέρη δεν υπάρχει απόδοση χαρακτηριστικών από μια κλάση σε άλλη και άρα δε μιλάμε για κληρονομικότητα 9 Παράδειγμα απλής κληρονομικότητας Φυσικό Πρόσωπο Αρ. Ταυτότητας Όνομα Επώνυμο Διεύθυνση Τηλέφωνο Γενίκευση Τμήμα Φοιτητής Προσθήκη Φοιτητή () Διαγραφή Φοιτητή () Μεταβολή στοιχείων Φοιτητή () Ειδικότητα Βαθμίδα Καθηγητής Προσθήκη Καθηγητή () Διαγραφή Καθηγητή () Μεταβολή στοιχείων Καθηγητή() Εξειδίκευση 0

Εξάσκηση Να ταξινομηθούν οι παρακάτω οντότητες σε μια ιεραρχία, χρησιμοποιώντας το μηχανισμό της κληρονομικότητας: Δελφίνι, Φάλαινα, Ψάρι, Θηλαστικό, Αρκούδα, Άνθρωπος, Προγραμματιστής, Εργαζόμενος, Καθηγητής, Ζωντανός οργανισμός, Συνταξιούχος, Καθηγητής πιάνου, Πέστροφα, Τσιπούρα Παράδειγμα συναρμολόγησης πολλαπλότητα Αεροσκάφος 2 2 Άτρακτος Φτερό Κινητήρας Σύστημα τροχών Σύστημα πλοήγησης Δομικό τμήμα φτερού Δεξαμενή καυσίμων Υδραυλικό σύστημα 2

Εξάσκηση Περιγράψετε τη συναρμολόγηση ενός αυτοκινήτου. Περιοριστείτε στα βασικά συστατικά και να μην φτάσετε πάνω από δύο επίπεδα λεπτομέρειας 3 Χαρακτηριστικά της αντικειμενοστρεφούς τεχνολογίας Η ευκολότερη αντιστοίχιση με έννοιες του πραγματικού κόσμου μέσω της ομαδοποίησης δεδομένων και λειτουργιών μέσα στις κλάσεις είναι περισσότερο κατανοητή η αναπαράσταση οντοτήτων από ένα (σύνθετο) ενιαίο συστατικό λογισμικού (την κλάση) παρά από πολλά ανεξάρτητα μεταξύ τους Η δυνατότητα κάθε κλάσης να διαχειρίζεται (μέσω των λειτουργιών της) τα δεδομένα που περικλείει κάθε κλάση έχει την ευθύνη να μεταβάλει και να διαθέτει στο περιβάλλον της τα δεδομένα που περικλείει Ο πλούτος των σχέσεων μεταξύ των κλάσεων οι σχέσεις της κληρονομικότητας / γενίκευσης και της συναρμολόγησης δεν υπάρχουν καν ως έννοιες στη δομημένη ανάλυση 4

Συμβολισμοί και πρότυπα Για πολλά χρόνια επικράτησε μια σύγχυση και ένας πλουραλισμός συμβολισμών, που οφείλονταν: στο σχετικά νέο της εμφάνισης της αντικειμενοστρεφούς τεχνολογίας στους κατασκευαστές λογισμικού η μη επικράτηση κάποιας προσέγγισης ο ανταγωνισμός στην αγορά εργαλείων και συμβουλευτικών υπηρεσιών ανάπτυξης λογισμικού η δομημένη κουλτούρα των περισσότερων κατασκευαστών λογισμικού η (αρχικά) περιορισμένη ευρύτητα του πεδίου εφαρμογών τωνοποίωνη ανάπτυξη με αντικειμενοστρεφή λογική θα ήταν περισσότερο πρόσφορη Τα πρώτα βήματα έγιναν στις αρχές τις δεκαετίας του 990 με τη συνεργασία των επικρατέστερων αντικειμενοστρεφών προσεγγίσεων ανάπτυξης λογισμικού (Booch, Jacobson και Rumbaugh) τη σύμπραξη μεγάλων κατασκευαστών λογισμικού και εργαλείων (Digital Equipment, Hewlett Packard, Oracle, Texas Instruments, Unisys, Microsoft) Η συνεργασία αυτή κατέληξε στην περιγραφή ενός προτύπου συμβολισμών τη UML 5 UML (Unified Modelling Language) Είναι μια οπτική (visual) γλώσσα μοντελοποίησης Έχει εκφραστικές δυνατότητες για την: Απεικόνιση Προδιαγραφή Τεκµηρίωση Κατασκευή των προϊόντων της αναπτυξιακής διαδικασίας συστηµάτων (λογισµικού ή όχι). Η UML είναι γλώσσα μοντελοποίησης και όχι μέθοδος. Οι περισσότερες μέθοδοι αποτελούνται τουλάχιστον θεωρητικά από μια γλώσσα μοντελοποίησης αλλά και από μια διαδικασία. 6

UML (2) Είναι απόγονος του κύματος των αντικειμενοστραφών μεθόδων ανάλυσης και σχεδιασμού που εμφανίστηκαν στα τέλη της δεκαετίας του 80. Αποτελεί τώρα πρότυπο της OMG (Object Management Group- Ομάδα Διαχείρισης Αντικειμένων). Προήλθε από την ενοποίηση των συµβολισµών που χρησιµοποιούσαν οι μεθοδολογίες Booch, OMT, OOSE κ.λπ. Ενσωµατώνει τις ιδέες καλής πρακτικής από τη βιοµηχανία Λογισµικού Υλοποιεί την ανάγκη της βιοµηχανίας λογισµικού για μια ενιαία γλώσσα μοντελοποίησης. Είδη συστηµάτων που μοντελοποιούνται µε τη UML Συστήµατα µε έµφαση στο λογισµικό (software-intensive systems) Επιχειρησιακά συστήµατα (business systems) Συστήµατα που δεν περιέχουν λογισµικό (non-software systems) 7 Διαγράμματα UML Χρησιμοποιώντας τη UML κάθε σύστημα λογισμικού μπορεί να αναπαρασταθεί με βάση πολλαπλές απόψεις σε κάθε μια από τις οποίες αντιστοιχούν ένα ή περισσότερα διαγράμματα Χρήστη Άποψη συστήματος Διάγραμμα UML Διάγραμμα Περιπτώσεων Χρήσης Στατική Διάγραμμα Κλάσεων Αλληλεπίδρασης Ροής Ελέγχου Φυσική Διάγραμμα Συνεργασίας Διάγραμμα Ακολουθίας Διάγραμμα Συνεργασίας Διάγραμμα Ακολουθίας Διάγραμμα Συστατικών Διάγραμμα Ανάπτυξης

Διάγραμμα περιπτώσεων χρήσης Περιγράφει την αλληλεπίδραση μεταξύ χρηστών και συστημάτων. 9 Διάγραμμα κλάσεων Απεικονίζει τη στατική δομή των εννοιών, των τύπων και των τάξεων Δείχνει βασικές οντότητες που υπάρχουν στο σύστημα και ποια είναι τα αμφισβητήσιμα σημεία που χρειάζονται περισσότερη δουλειά. 20

Διαγράμματα αλληλεπίδρασης Περιγράφουν πώς συνεργάζονται ομάδες αντικειμένων. Οπτικοποιούν τη ροή των μηνυμάτων 2 Διάγραμμα δραστηριότητας Απεικονίζει τη συμπεριφορά με τις δομές ελέγχου. Μπορεί να απεικονίσει τη ροή των βημάτων μιας περίπτωσης χρήσης ή την υλοποίηση μιας μεθόδου. Ενθαρρύνει την παράλληλη συμπεριφορά. Μας επιτρέπει να επιλέξουμε τη σειρά με την οποία θα κάνουμε τις διάφορες ενέργειες, απλώς θέτει τους βασικούς κανόνες της ακολουθίας που πρέπει να τηρήσουμε. 22

Διάγραμμα κατάστασης Περιγράφει όλες τις πιθανές καταστάσεις στις οποίες μπορεί να βρεθεί ένα αντικείμενο και το πώς η κατάστασή του αλλάζει ως αποτέλεσμα των συμβάντων που φτάνουν σε αυτό. 23 Διάγραμμα συστατικών Το διάγραμμα εξαρτημάτων είναι ένα διάγραμμα δομής υλοποίησης που χρησιμοποιείται για να μοντελοποιήσει: Πηγαίο κώδικα Εκτελέσιμες εκδόσεις Βάσεις δεδομένων Δυναμικά προσαρμοζόμενα συστήματα

Διάγραμμα ανάπτυξης Το διάγραμμα ανάπτυξης είναι ένα διάγραμμα δομής υλοποίησης που παρουσιάζει τον τρόπο διαμόρφωσης των υπολογιστικών κόμβων του συστήματος κατά τη λειτουργία του. Περιλαμβάνει: Υπολογιστικούς κόμβους Σχέσεις εξάρτησης και σύνδεσης Εξαρτήματα (μέσα σε κόμβους) Πακέτα (που ομαδοποιούν κόμβους)