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

Σχετικά έγγραφα
Τεχνολογία Λογισμικού

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UML: Unified modelling language

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Rational Unified Process:

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

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

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

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

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

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

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

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

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

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

Μέθοδοι μοντελοποίησης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Τα διαγράµµατα UML. ρ. Πάνος Φιτσιλής

Πληροφορική 2. Τεχνολογία Λογισμικού

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

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

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

Tεχνολογία Λογισµικού II

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

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

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

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

Προγραμματισμός Υπολογιστών

Διερεύνηση κριτηρίων και αξιολόγηση των διαγραμμάτων Ακολουθίας και Συνεργασίας της UML

Use Cases: μια σύντομη εισαγωγή. Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002

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

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

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

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

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

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec06 (Εργαστήριο) 26/03/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

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

Οι περιπτώσεις χρήσης

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

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

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

Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών & Δικτύων,

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

Transcript:

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

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων UML - Unified Modeling Language Ενοποιημένη Γλώσσα Μοντελοποίησης Εισαγωγή

UML!!! Πρότυπο για γραφική μοντελοποίηση λογισμικού! Όχι μόνο για αντικειμενοστρεφή συστήματα Βασική αξία: Επικοινωνία και κατανόηση! Ευρεία χρήση και προτυποποίηση στους κύκλους ανάπτυξης αντικειμενοστρεφων συστημάτων

Μοντελοποίηση Φτιάχνουμε μοντέλα για να καταλάβουμε καλύτερα το σύστημα που αναπτύσσουμε -Προσφέρει γραφική απεικόνιση -Προσδιορίζει δομή και συμπεριφορά -Βοηθά στην οργάνωση της κατασκευής Item Order Modeling captures essential parts of the system. Dr. James Rumbaugh Ship via Business Process Visual Modeling is modeling using standard graphical notations Computer System

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

Χαρακτηριστικά Μοντέλων Ακρίβεια Περιγράφουν το σύστημα με ακρίβεια και χωρίς ασάφειες Συνέπεια Όλες οι διαφορετικές όψεις που παρέχουν πληροφορία για το σύστημα χρησιμοποιούν όμοια αντικείμενα και δεν έρχονται σε σύγκρουση μεταξύ τους Εύκολη επικοινωνία Με τους χρήστες Με άλλα διαγράμματα Ευμετάβλητα Μπορούν να αλλάξουν εύκολα Κατανοητά Είναι όσο το δυνατόν πιο απλά και κατανοητά

Βασικές αρχές Μοντελοποίησης Η επιλογή του μοντέλου καθορίζει τον τρόπο αντιμετώπισης του προβλήματος και τη δημιουργία της λύσης. Υπάρχουν μοντέλα για διάφορα επίπεδα λεπτομέρειας και ακρίβειας. Δεν υπάρχει ένα μοναδικό μοντέλο που να καλύπτει όλες τις πλευρές του συστήματος. Ακριβής καθορισμός των απαιτήσεων έτσι ώστε όλοι οι εμπλεκόμενοι να τις κατανοούν με κοινό τρόπο. Καλά μοντέλα είναι εκείνα που συνδέονται με την πραγματικότητα Κανένα μοντέλο από μόνο του δεν είναι επαρκές!!! Κάθε μη τετριμμένο σύστημα προσεγγίζεται καλύτερα από ένα (σχετικά μικρό) σύνολο ανεξάρτητων μοντέλων από διαφορετικές σκοπιές.

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

Μοντελοποίηση στην Ανάλυση και Σχεδίαση Συστημάτων Λογισμικού Υψηλού επιπέδου επιχειρηματικές ανάγκες καταγεγραμμένες στην Πρόταση Συστήματος Καθορισμός Απαιτήσεων Αναλυτική Καταγραφή συγκεκριμένων απαιτήσεων Μοντελοποίηση του Συστήματος Λειτουργικότητα / Δομή / Συμπεριφορά (Functionality/Structure/Behavior

Άξονες Μοντελοποίησης Λειτουργικότητα functionality Τι κάνει το σύστημα; Ποιες λειτουργίες υποστηρίζει; Ανάλυση απαιτήσεων Περιγραφές από κείμενο Στατικά διαγράμματα Πώς είναι οργανωμένα τα συστατικά του τμήματα; Δομή structure Συμπεριφορά behaviour Δυναμική συμπεριφορά Πώς ανταποκρίνεται και από ποιες καταστάσεις περνάει; 10

UML Η Eνοποιημένη Γλώσσα Μοντελοποίησης (Unified Modeling Language) είναι γραφική γλώσσα γενικού σκοπού η οποία χρησιμοποιείται για: τον προσδιορισμό (specifying), με ακρίβεια και πληρότητα την οπτικοποίηση (visualizing), με γραφικά σύμβολα την ανάπτυξη/κατασκευή (constructing), με μοντέλα που μετασχηματίζονται σε κώδικα με εργαλεία CASE και την τεκμηρίωση (documenting), για όλα τα στάδια κύκλου ζωής λογισμικού των κατασκευασμάτων (artifacts) των συστημάτων λογισμικού

UML Σχετικά ανοιχτό πρότυπο που ελέγχεται από την Ομάδα Διαχείρισης Αντικειμένων (Object Management Group OMG) ανοιχτή κοινοπραξία εταιρειών Η OMG δημιουργήθηκε για την κατασκευή προτύπων που υποστηρίζουν τη διαλειτουργικότητα

UML Πρακτικά η UML είναι μία γλώσσα Μας προσφέρει το λεξιλόγιο, τους γραμματικούς και τους συντακτικούς κανόνες και τη σημασιολογία που συνοδεύει το λεξιλόγιο και τους κανόνες

UML Επίσης η UML είναι μία γλώσσα μοντελοποίησης ΔΕΝ είναι γλώσσα προγραμματισμού μπορεί να χρησιμοποιηθεί τόσο από τον άνθρωπο όσο και από τις μηχανές Χρήση με οποιαδήποτε διαδικασία/μεθοδολογία ανάπτυξης, σε οποιοδήποτε στάδιο ανάπτυξης, για οποιαδήποτε πλατφόρμα με οποιαδήποτε γλώσσα Επιτρέπει τη μοντελοποίηση συστημάτων με βάση τις αρχές των αντικειμενοστρεφών μοντέλων και χρησιμοποιεί κυρίως διαγράμματα για να εκφράσει την αντικειμενοστρεφή ανάλυση και σχεδίαση έργων λογισμικού Απλοποιεί την πολύπλοκη διαδικασία σχεδίασης λογισμικού

UML Επίσης η UML είναι ενοποιημένη, γιατί είναι αποτέλεσμα ενοποίησης διαφορετικών προσεγγίσεων και συμβολισμών που εμφανίστηκαν στις αρχές της δεκαετίας του 1990 Ενοποίηση σχετικά με τον κύκλο ζωής λογισμικού από τις αρχικές φάσεις προσδιορισμού απαιτήσεων μέχρι παράδοση λογισμικού Ενοποίηση για διαφορετικούς χώρους προβλημάτων Ενοποίηση για διαφορετικές διαδικασίες ανάπτυξης η UML είναι ανεξάρτητη από το μοντέλο διαδικασίας του λογισμικού που επιλέγεται Ενοποίηση σχετικά με τις θεμελιώδεις έννοιες που χρησιμοποιούνται το λεξιλόγιο, το συντακτικό και η σημασιολογία της UML θεμελιώνεται πάνω σε αυστηρές έννοιες με τυπικό φορμαλισμό

Γιατί η UML? Εκφραστική γλώσσα γραφικής μοντελοποίησης για ανάπτυξη & ανταλλαγή κατανοητών μοντέλων μεταξύ χρηστών Υποστήριξη εννοιών ανάπτυξης υψηλότερου επιπέδου όπως συνεργασίες (collaborations), πλαίσια εργασίας (frameworks) και συστατικά (components) Υπάρχουν πολλές μεθοδολογίες που ορίζουν τυπικές διαδικασίες για τον τρόπο που γίνεται η συλλογή και η ανάλυση των απαιτήσεων και συνακόλουθα η σχεδίαση προγραμμάτων. Η UML είναι ανεξάρτητη από αυτές τις μεθοδολογίες απλώς χρησιμοποιείται για να εκφράσει τα αποτελέσματά τους.

Κύκλος Ζωής Λογισμικού UML Ανάλυση Εννοιολογικό μοντέλο (UML) Απαιτήσεις συστήματος (UML) Σχεδιασμός Σχεδιασμός συστήματος (UML) Λεπτομεριακός σχεδιασμός (UML) Υλοποίηση (UML διαγράμματα deployment & component) Κωδικοποίηση Έλεγχος

Ιστορία της UML Δεκαετία 70: εμφανίζονται οι πρώτες γλώσσες μοντελοποίησης που βασίζονται σε αντικείμενα Δεκαετία 80 (τέλη): C++, Smalltalk Δεκαετία 90: πολλές μέθοδοι αντικειμενοστραφούς μοντελοποίησης Booch 93 (Grady Booch - Rational) OOSE - Object Oriented Software Engineering (Ivar Jacobson Objectory) OMT-2 Object Modelling Technique (James Rumbaugh GE) 1995: Ενοποίηση μεθόδων και 1 η έκδοση UML 1997: Η UML έκδοση1.0 υιοθετείται ως πρότυπο του Object Management Group (OMG) σε συνεργασία με τους JaCOBSON, Booch και Rumbaugh (the three amigos). 2003: UML έκδοση 2.0 Δεκατρείς επίσημοι τύποι διαγραμμάτων Ανεξάρτητη μεθοδολογίας μοντελοποίησης

Ιστορία της UML

Ιστορία της UML Nov 97 UML approved by the OMG

Εταίροι στη UML Rational Software Corporation Hewlett-Packard I-Logix IBM ICON Computing Intellicorp MCI Systemhouse Microsoft ObjecTime Oracle Platinum Technology Taskon Texas Instruments/Sterling Software Unisys... -> ισχυρή δυναμική

Σκοπός της UML Να ορίσει ένα κοινό λεξιλόγιο για την αντικειμενοστρεφή προσέγγιση και να προσφέρει διαγραμματικές τεχνικές ικανές να μοντελοποιήσουν οποιοδήποτε σύστημα από την ανάλυση έως και την υλοποίησή του. Είναι χρήσιμο να έχουμε μια κοινή γλώσσα επικοινωνίας και σχεδιασμού αντικειμενοστρεφών συστημάτων από την αρχή ως το τέλος! Για να απαγκιστρωθούμε από την ορολογία και τις λεπτομέρειες της κάθε αντικειμενοστρεφούς γλώσσας (C++, Java, Smalltalk, C# κτλ) Τα διαγράμματα μπορούν να κατανοηθεί γρηγορότερα και για πολλά χρόνια μετά!!!

Τμήματα της UML Όψεις δείχνουν διαφορετικά χαρακτηριστικά του συστήματος που μοντελοποιούνται. Μία όψη αποτελείται από ένα σύνολο διαγραμμάτων Διαγράμματα δείχνουν/περιγράφουν τα περιεχόμενα μιας όψης Στοιχεία μοντέλου είναι οι έννοιες που χρησιμοποιούνται στα διαγράμματα για να αναπαραστήσουν τις κλάσεις, τα αντικείμενα, τις συσχετίσεις μεταξύ τους, τις καταστάσεις, τα πακέτα, τις περιπτώσεις χρήσης, τους κόμβους, τα συστατικά κτλ.

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

UML Τα αντικείμενα και οι κλάσεις μοντελοποιούνται με τη χρήση διαγραμμάτων αντικειμένων και κλάσεων (object and class diagrams). Οι κλάσεις μπορούν να συνδέονται σε ιεραρχίες, με σχέσεις γενίκευσης (generalization) και εξειδίκευσης (specialization), οι οποίες αναπαρίστανται με σχέσεις κληρονομικότητας (inheritance). Οι αλληλεπιδράσεις μεταξύ των αντικειμένων αναπαρίστανται από τα διαγράμματα επικοινωνίας και ακολουθίας (communication and sequence diagrams). Τα διαγράμματα επικοινωνίας αναπαριστούν τη φυσική σύνδεση των αντικειμένων σε ένα σύστημα. Τα διαγράμματα ακολουθίας αναπαριστούν τις αλληλεπιδράσεις μεταξύ των αντικειμένων στο χρόνο.

Μοντελοποίηση με τη γλώσσα UML Περιγραφή Λειτουργίας από την πλευρά του χρήστη Στατική δομή Δυναμικά χαρακτηριστικά - Συμπεριφορά Μοντελοποίηση Απαιτήσεων Μοντελοποίηση στατικής δομής του συστήματος Μοντελοποίηση δυναμικών χαρακτηριστικών του συστήματος Μοντελοποίηση της συμπεριφοράς συγκεκριμένων αντικειμένων Μοντελοποίηση των βημάτων εκτέλεσης μιας διαδικασίας Σενάρια, Διαγράμματα περιπτώσεων χρήσης (Scenaria, Use Case Diagrams) Διαγράμματα Κλάσεων (Class Diagrams) Διαγράμματα Αντικειμένων (Object Diagrams) Διαγράμματα Συστατικών (Component Diagrams) Διαγράμματα Ανάπτυξης (Deployment Diagrams) Διαγράμματα Ακολουθίας (Sequence Diagrams) Διαγράμματα Επικοινωνίας (Collaboration Diagrams Communication Diagrams στη UML 2.0) Διαγράμματα Κατάστασης (State Machine Diagrams) Διαγράμματα Δραστηριότητας (Activity Diagrams)

Κατηγορίες διαγραμμάτων UML Διαγράμματα Λειτουγικότητας Διαγράμματα περιπτώσεων χρήσης Διαγράμματα Δομής Διαγράμματα στατικής δομής Διαγράμματα κλάσεων Διαγράμματα αντικειμένων Διαγράμματα υλοποίησης Διαγράμματα συστατικών Διαγράμματα ανάπτυξης Διαγράμματα Συμπεριφοράς Διαγράμματα αλληλεπίδρασης Διάγραμμα ακολουθίας Διάγραμμα επικοινωνίας Διαγράμματα κατάστασης Διαγράμματα δραστηριότητας

Κατηγοριοποίηση Διαγραμμάτων UML 2.0

Τύποι διαγραμμάτων UML Γιατί τόσο διαφορετικοί τύποι διαγραμμάτων? Το σύστημα έχει στατικά στοιχεία, δυναμικά στοιχεία, στοιχεία υλοποίησης κοκ. Δεν είναι δυνατόν ένας και μόνο τύπος διαγράμματος να περιγράψει όλες αυτές τις διαφορετικές οπτικές γωνίες ενός συστήματος. Έτσι τυπικά χρησιμοποιούμε διαγράμματα κλάσεων για την περιγραφή των στατικών σχέσεων μεταξύ των κλάσεων, διαγράμματα συμπεριφοράς (κατάστασης, ακολουθίας κοκ) για την περιγραφή της δυναμικής συμπεριφοράς του συστήματος, διαγράμματα υλοποίησης (συστατικών, διάταξης) για την καταγραφή των λεπτομερειών υλοποίησης του συστήματος.

Όψεις της UML Component view Logical view Use-case View Deployment view Process View

Όψεις της UML Όψη περιπτώσεων χρήσης (Use case view): Περιγράφει τη λειτουργικότητα ενός συστήματος, όπως αυτή γίνεται αντιληπτή από εξωτερικούς δράστες (actors) Λογική όψη (Logical view): Περιγράφει το σχεδιασμό της λειτουργικότητας ενός συστήματος - στατική δομή (κλάσεις, αντικείμενα και σχέσεις) και δυναμική συμπεριφορά του συστήματος (ανταλλαγή μηνυμάτων) Όψη Συστατικών (Component view): Περιγράφει τα κύρια συστατικά του συστήματος (κύρια συστατικά λογισμικού) και τις σχέσεις τους. Όψη Διαδικασιών (Process view): Περιγράφει τo σύστημα σε σχέση με τις διαδικασίες που εκτελούνται σε αυτό. Όψη Ανάπτυξης (Deployment view): Περιγράφει τη φυσική ανάπτυξη του συστήματος υπολογιστές, μηχανές (κόμβοι) που χρησιμοποιούνται και ο τρόπος σύνδεσής τους.

Πότε (σε ποιες φάσεις) χρησιμοποιούμε ένα διάγραμμα? Διαφορετικές φάσεις του έργου συνήθως συνοδεύονται από διαφορετικού τύπου διαγράμματα Μερικοί τύποι διαγραμμάτων μπορούν να χρησιμοποιηθούν σε παραπάνω από μια φάση Π.χ. μπορεί να έχουμε ένα διάγραμμα που αρχικά είναι πολύ αφηρημένο (και φτιαγμένο από την εννοιολογική σκοπιά) που στη συνέχεια του προσθέσουμε λεπτομέρειες και εν τέλει από αυτό καταλήγουμε στην παραγωγή κώδικα.

Ανάλυση απαιτήσεων με UML Προσδιορισμός περιπτώσεων χρήσης περιγράφουν τους τρόπους με τους οποίους οι άνθρωποι αλληλεπιδρούν με το σύστημα Διαγράμματα περιπτώσεων χρήσης (Use case diagrams): Περιγράφονται οι απαιτήσεις των χρηστών (πελατών) από το σύστημα και αναπαρίστανται στα διαγράμματα χωρίς να περιγράφεται ο τρόπος υλοποίησης αυτής της λειτουργικότητας Διαγράμματα δραστηριοτήτων (activity diagrams): Απεικόνιση ροής εργασιών στον οργανισμό, πώς αλληλεπιδρούν οι δραστηριότητες του λογισμικού με τις ανθρώπινες δραστηριότητες Διαγράμματα καταστάσεων (state diagrams): Αν μια έννοια έχει ενδιαφέροντα κύκλο ζωής με διάφορες καταστάσεις και συμβάντα που αλλάζουν αυτές τις καταστάσεις

Ανάλυση απαιτήσεων με UML Διαγράμματα κλάσεων (Class diagrams): Από εννοιολογικής άποψης κατασκευή περιεκτικού λεξικού πεδίου ανάπτυξης Περιγράφονται οι σχέσεις μεταξύ των κλάσεων που είναι απαραίτητες για την εκτέλεση των διαγραμμάτων περιπτώσεων χρήσεων (use case diagrams). Σε αυτό το στάδιο λαμβάνεται υπόψη μόνο οι κλάσεις που σχετίζονται με την περιοχή προβλήματος που μοντελοποιείται και όχι τεχνικές κλάσεις, όπως είναι κλάσεις για τα συστήματα διεπαφής του συστήματος, κλάσεις για βάσεις δεδομένων κ.α. Πολύ σημαντική η επικοινωνία με χρήστες και πελάτες!

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

Σχεδιασμός συστήματος με UML Διαγράμματα ακολουθίας για συνήθη σενάρια Διαγράμματα πακέτων για την μακροσκοπική οργάνωση του λογισμικού καλός λογικός οδικός χάρτης του συστήματος ποια είναι τα λογικά κομμάτια του συστήματος, εξαρτήσεις Διαγράμματα καταστάσεων για κλάσεις με πολύπλοκο ιστορικό ζωής Διαγράμματα ανάπτυξης για τη φυσική διάταξη του λογισμικού

Υλοποίηση συστήματος με UML Οι κλάσεις των μοντέλων του συστήματος, που προέκυψαν από το προηγούμενο στάδιο σχεδιασμού του συστήματος, μετατρέπονται σε πραγματικό κώδικα με τη χρήση μιας γλώσσας προγραμματισμού βασισμένη στα αντικείμενα

Δοκιμή συστήματος με UML Διαγράμματα κλάσεων (Class diagrams): χρησιμοποιούνται για την εκτέλεση δοκιμών στις κλάσεις του συστήματος. Διαγράμματα συστατικών (Component diagrams) και Διαγράμματα επικοινωνίας (Communication diagrams): χρησιμοποιούνται για τη δοκιμή της επικοινωνίας μεταξύ συστατικών και κλάσεων. Διαγράμματα περιπτώσεων χρήσης (Use case diagrams) και Διαγράμματα δραστηριοτήτων (Activity diagrams): χρησιμοποιούνται για την αναγνώριση ότι το σύστημα συμπεριφέρεται όπως είχε αρχικά καθοριστεί σε αυτά τα διαγράμματα.

Τεκμηρίωση συστήματος Διάγραμμα πακέτων καλός λογικός οδικός χάρτης Διάγραμμα ανάπτυξης φυσική εικόνα υψηλού επιπέδου συστήματος Μέσα σε κάθε πακέτο, διάγραμμα κλάσεων με τα σημαντικά στοιχεία (πίνακας περιεχομένων με γραφικά!) Διαγράμματα αλληλεπίδρασης που υποστηρίζουν τις πιο σημαντικές αλληλεπιδράσεις με το σύστημα Αν μια κλάση έχει συμπεριφορά με πολύπλοκο κύκλο ζωής, τότε διάγραμμα καταστάσεων! ΜΟΝΟ αν η συμπεριφορά πολύπλοκη Διάγραμμα δραστηριοτήτων αν υπάρχει πολύπλοκος αλγόριθμος

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Επισκόπηση διαγραμμάτων UML

Διάγραμμα περιπτώσεων χρήσης Εμφανίζουν τις περιπτώσεις χρήσης και τις εξωτερικές οντότητες που αλληλεπιδρούν με το σύστημα λογισμικού και τις σχέσεις μεταξύ τους Περίπτωση Χρήσης (Use Case) = ένα σύνολο σεναρίων για την επίτευξη ενός σκοπού του χρήστη Σενάριο = μια ακολουθία ενεργειών που περιγράφουν την αλληλεπίδραση μεταξύ χρήστη και συστήματος (περιλαμβάνουν επιτυχή κατάληξη ή διάφορες περιπτώσεις αποτυχίας) Μέσο για τον προσδιορισμό των απαιτήσεων Αναπαριστά τους εξωτερικούς δράστες (actors) (άτομο, εφαρμογή, σύστημα) και τις σχέσεις τους με τις περιπτώσεις χρήσης (use cases) του συστήματος

Προσδιορισμός «Δραστών» Δράστης είναι μια οντότητα στις περιπτώσεις χρήσης που ορίζει ένα ρόλο που παίζει ένας χρήστης κατά την αλληλεπίδρασή του με το σύστημα. Μπορεί να είναι άνθρωπος, συσκευή, κά. Π.χ. Για το ΑΤΜ, δράστες είναι: Κάτοχος ειδικής κάρτας Υπάλληλος τράπεζας Πληροφοριακό σύστημα της τράπεζας Σύμβολο δράστη: Σύστημα εξουσιοδότησης πιστωτικής κάρτας

Διάγραμμα περιπτώσεων χρήσης ΑΤΜ Κάτοχος Κάρτας Ανάληψη Τοποθέτηση Μετρητών Υπάλληλος Τράπεζας Πελάτης Τράπεζας Κατάθεση Όριο του συστήματος

Διάγραμμα Κλάσεων Αναπαριστά τη στατική δομή του συστήματος σε επίπεδο κλάσεων (class structure), διεπαφών και σχέσεων μεταξύ τους. Αναπαριστά τις σχέσεις μεταξύ των κλάσεων με τη χρήση σχέσεων όπως είναι η συσχέτιση (association), η σχέση εξειδίκευσης (specialization), η σχέση γενίκευσης (generalization) και άλλες. Ένα σύστημα τυπικά έχει πολλά διαγράμματα κλάσεων. Μια κλάση μπορεί να συμμετέχει σε πολλά διαγράμματα κλάσεων. Χρήση: Αποτυπώνει τις σχέσεις μεταξύ των κλάσεων που εμφανίζονται στο μοντέλο του συστήματος. Φάσεις: ανάλυση, σχεδίαση

Αντικείμενα Εντοπίζουμε τα πράγματα που είναι σημαντικά για το σύστημα που μοντελοποιούμε Π.χ. σε ένα σπίτι τα δομικά στοιχεία είναι τοίχοι, παράθυρα, πόρτες, κλπ Μοντελοποιούνται ως κλάσεις. Κλάση είναι μια αφαίρεση για το σύνολο ομοειδών αντικειμένων Πχ ένα σπίτι έχει τέσσερεις τοίχους και πέντε παράθυρα (αντικείμενα). Αυτά είναι στιγμιότυπα των κλάσεων «τοίχος» και «παράθυρο».

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

Διάγραμμα Αντικειμένων Αναπαριστά ένα σύνολο αντικειμένων και τις σχέσεις μεταξύ τους σε κάποιο σημείο του χρόνου. Τα διαγράμματα αντικειμένων είναι παρόμοια με τα διαγράμματα κλάσεων και χρησιμοποιούν την ίδια σημειογραφία (notation) με τη διαφορά ότι παρουσιάζουν αντικείμενα και όχι κλάσεις. Τα διαγράμματα αντικειμένων δεν είναι πολύ σημαντικά διαγράμματα, αλλά συχνά χρησιμοποιούνται όταν τα διαγράμματα κλάσεων είναι ιδιαίτερα πολύπλοκα, με σκοπό την αναπαράσταση των στιγμιότυπων των κλάσεων και τις σχέσεις μεταξύ τους στο πραγματικό σύστημα σε κάποια δεδομένη στιγμή. Ουσιαστικά παρέχουν ένα τρόπο ελέγχου της ορθότητας του διαγράμματος κλάσης πριν τον προγραμματισμό. Άλλες μεθοδολογίες χρησιμοποιούν το διάγραμμα αντικειμένων κατά την ανάλυση και από εκεί παράγουν το διάγραμμα κλάσεων. κλάση = καλούπι, πρότυπο αντικείμενο = στιγμιότυπο

48

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

Διάγραμμα Καταστάσεων Εκφράζει τη συμπεριφορά ενός αντικειμένου και τον τρόπο που ανταποκρίνεται σε γεγονότα που λαμβάνει. Απεικονίζει το σύστημα σαν μια μηχανή πεπερασμένων καταστάσεων: Κατά τη λειτουργία, το σύστημα θα πρέπει να βρίσκεται σε μια από ένα πεπερασμένο πλήθος 'νόμιμων' καταστάσεων. Ανταποκρινόμενο σε εσωτερικά ή εξωτερικά συμβάντα/γεγονότα το σύστημα θα μεταβαίνει από μια κατάσταση σε μια άλλη. Αφορά ένα αντικείμενο και τις διαδοχικές καταστάσεις που αυτό μεταπίπτει κατά την εκτέλεση ενός σεναρίου μιας περίπτωσης χρήσης. Τα διαγράμματα καταστάσεων δεν σχεδιάζονται για όλες τις κλάσεις ενός συστήματος αλλά μόνο για αυτές τις κλάσεις που περνούν από διαφορετικές καταστάσεις και αυτές οι καταστάσεις επηρεάζουν τη συμπεριφορά των κλάσεων.

Βήματα για Κατασκευή Διαγράμματος Καταστάσεων 1. Επιλογή του αντικειμένου Ένα διάγραμμα καταστάσεων δεν μπορεί να περιλαμβάνει καταστάσεις πολλών αντικειμένων. Τα συμβάντα ωστόσο μπορούν να προκαλούνται από άλλα αντικείμενα. 2. Εντοπισμός των διακριτών καταστάσεων που μπορεί να μπει αυτό το αντικείμενο. 3. Εντοπισμός συμβάντων που προκαλούν μετάβαση ανάμεσα στις καταστάσεις.

Συμβάντα Συνήθως η μετάβαση από μια κατάσταση σε μια άλλη σηματοδοτείται από την αποστολή ενός μηνύματος (=εκτέλεση μιας μεθόδου) από ένα αντικείμενο σε ένα άλλο αντικείμενο. Μερικές φορές η μετάβαση σε μια άλλη κατάσταση πυροδοτείται όταν ισχύσει μια συνθήκη στην κατάσταση του αντικειμένου. Τότε χρησιμοποιούμε την ετικέτα when με την συνθήκη που πυροδοτεί τη μετάβαση. 52

Διάγραμμα Καταστάσεων On first floor Go up (floor) Moving up arrived Moving to 1st floor arrived Go up (floor) Moving down arrived Idle Go down (floor) Time out

Διάγραμμα Δραστηριοτήτων Αναπαριστά μια σειριακή ροή των ενεργειών (ροή εργασίας) που εκτελούνται σε ένα σύστημα με έμφαση στη ροή ελέγχου. Καταγράφει μια συγκεκριμένη επιχειρησιακή διαδικασία ή τη δυναμική μιας ομάδας αντικειμένων. Προβάλει μια άποψη των ροών και περιγράφει τι συμβαίνει κατά την εξέλιξη μιας περίπτωσης χρήσης μεταξύ των κλάσεων. Κύριο στοιχείο είναι οι ενέργειες (actions). Αναπαρίστανται συνθήκες, σημεία αποφάσεων και παράλληλες εκτελέσεις ενεργειών. Χρήση: Αποτυπώνει τη ροή των δραστηριοτήτων μέσα σε μια περίπτωση χρήσης. Φάσεις: ανάλυση, σχεδίαση

Μοντελοποίηση Διεργασιών Ο πηγαίος κώδικας που γράφουμε εκτελεί διεργασίες χρησιμοποιώντας ακολουθιακή εκτέλεση, έλεγχο ροής και λογικές συνθήκες. Θέλουμε να καταλαβαίνουμε πώς ρέει ο έλεγχος ανάμεσα στις διεργασίες. Παραδοσιακά, είχαμε τα διαγράμματα ροής (flowcharts). Στη UML, η εξέλιξή τους ονομάζεται διαγράμματα δραστηριοτήτων Η αντικειμενοστρεφής προσέγγιση υποβαθμίζει τη μοντελοποίηση της συμπεριφοράς, αφού έχει σε πρώτη προτεραιότητα τα διαγράμματα κλάσεων / αντικειμένων.

Σκοπός του Διαγράμματος Δραστηριοτήτων Το χρησιμοποιούμε στις περιπτώσεις χρήσης και στις λειτουργίες κλάσεων. Είδαμε ότι οι στόχοι του συστήματος περιγράφονται με τις περιπτώσεις χρήσης. Το αντίστοιχο διάγραμμα είναι πολύ γενικό και γι' αυτό χρησιμοποιήσαμε περιγραφές με κείμενο. Ένα Διάγραμμα Δραστηριοτήτων είναι πιο συγκεκριμένο. Όταν μια μέθοδος μιας κλάσης είναι περίπλοκη, ένα Διάγραμμα Δραστηριοτήτων την αποσαφηνίζει.

Ένα διάγραμμα δραστηριότητας δείχνει τη ροή από μια διεργασία σε μια άλλη. Αρχική και τελική κατάσταση Παράδειγμα ανοικοδόμησης κτίσματος Περιγράφονται και ταυτοχρονισμένες διεργασίες Δραστηριότητα Μετάβαση

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

Διαγράμματα Αλληλεπίδρασης Διάγραμμα ακολουθίας (Sequence Diagram) Αναπαριστά τη χρονική σειρά εκτέλεσης και την αλληλεπίδραση των αντικειμένων που λαμβάνουν μέρος σε μια αλληλεπίδραση. Κάθετη διάσταση (vertical dimension) (χρόνος) και Οριζόντια διάσταση (horizontal dimension) (διαφορετικά αντικείμενα). Διάγραμμα επικοινωνίας (Communication Diagram) Είναι παρόμοιο διάγραμμα με το διάγραμμα ακολουθίας με τη διαφορά ότι αναπαριστά και τις σχέσεις μεταξύ των αντικειμένων. Περιληπτικό Διάγραμμα αλληλεπίδρασης (Interaction Overview Diagram) Αναπαριστούν τη ροή των αλληλεπιδράσεων μεταξύ των αντικειμένων σε υψηλό επίπεδο ανάλυσης.

Διάγραμμα Ακολουθίας Μοντελοποιεί αλληλεπιδράσεις μεταξύ αντικειμένων. Μοιάζει με το διάγραμμα δραστηριότητας σε διαδρομές. Δείχνει την αλληλεπίδραση ανάμεσα στις κλάσεις ενός συγκεκριμένου σεναρίου μιας περίπτωσης χρήσης και είναι διαρθρωμένο κατά τον άξονα του χρόνου. Το διάγραμμα ακολουθίας προκύπτει από τις περιγραφές των σεναρίων σε κείμενα. Χρήση: Αποτυπώνει τη συμπεριφορά των κλάσεων κατά την 'εκτέλεση' του σεναρίου Φάσεις: ανάλυση, σχεδίαση 60

Διάγραμμα Ακολουθίας Πρωτεύων δράστης Δευτερεύων δράστης 61

Τι απεικονίζει το Διάγραμμα Ακολουθίας Το διάγραμμα ακολουθίας (sequence diagram) είναι ένα διάγραμμα ροής που απεικονίζει τη σειρά των ενεργειών ενός σεναρίου στον άξονα του χρόνου. Εξηγεί ποιος δράστης εκκινεί μια ενέργεια και με ποιον άλλο δράστη συνεργάζεται. Δεν δείχνει εναλλακτικές πορείες, παρά μόνο την κύρια ροή προς την επιτυχημένη κατάληξη. Για μια περίπτωση χρήσης, υπάρχουν διαγράμματα ακολουθίας για κάθε σενάριο. Το διάγραμμα ακολουθίας μοντελοποιεί ένα σενάριο, συνήθως το επιτυχές ή το αναμενόμενο. Γι αυτό δεν έχει σημεία διακλάδωσης (ρόμβους, if-then-else) παρά μόνο μια ακολουθία ενεργειών.

Διάγραμμα Επικοινωνίας Είναι μια εναλλακτική αποτύπωση του διαγράμματος ακολουθίας. Αντί να διαρθρώσουμε τα μηνύματα κατά τον άξονα του χρόνου, τα τοποθετούμε πάνω σε ένα διάγραμμα αντικειμένων. Δείχνει την αλληλεπίδραση ανάμεσα στις κλάσεις για μια περίπτωση χρήσης, χωρίς να είναι διαρθρωμένο κατά τον άξονα του χρόνου. Χρήση: Αποτυπώνει τη συμπεριφορά των κλάσεων κατά την 'εκτέλεση' της περίπτωσης χρήσης. Φάσεις: ανάλυση, σχεδίαση

Διάγραμμα Επικοινωνίας

Οπτική Γωνία κάθε Διαγράμματος Το διάγραμμα επικοινωνίας επικεντρώνεται σε σχέσεις στο χώρο, ενώ το διάγραμμα ακολουθίας σε σχέσεις στο χρόνο. Εργαλεία CASE μπορούν να μετακινούνται από το ένα προς το άλλο διάγραμμα. Το διάγραμμα επικοινωνίας δείχνει τις μεθόδους που θα υλοποιεί κάθε κλάση και ποια άλλη κλάση θα τις καλεί. 65

Φυσικά Διαγράμματα Διάγραμμα Συστατικών (Component Diagram) Μοιάζει με διάγραμμα κλάσεων αλλά το βασικό στοιχείο είναι το συστατικό. Aναπαριστά σε υψηλό επίπεδο τη δομή του κώδικα. Συστατικό είναι μία φυσική μονάδα υλοποίησης κώδικα. Είναι αυτόνομη οντότητα που παρέχει ένα σύνολο διεπαφών. Επίσης αναπαριστώνται οι αλληλοσυνδέσεις μεταξύ των συστατικών, συμπεριλαμβανομένου των συστατικών κώδικα, των συστατικών δυαδικού κώδικα και των εκτελέσιμων συστατικών. Διάγραμμα Ανάπτυξης (Deployment Diagram) Αναπαριστά τη φυσική αρχιτεκτονική του υλικού (hardware) και του λογισμικού σε ένα σύστημα. Αναπαριστώνται οι μηχανές και οι υπολογιστές (nodes) που χρησιμοποιούνται από το σύστημα καθώς και οι συνδέσεις τους. Κόμβοι είναι τα φυσικά αντικείμενα που στη γενική περίπτωση έχουν τουλάχιστον μνήμη και δυνατότητα επεξεργασίας.

Διάγραμμα Συστατικών 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) Δείχνει τα συστατικά μέρη του κώδικα και τη φυσική τους δομή

Διάγραμμα Ανάπτυξης Client A: Compaq Pro PC Application Server: Silicon Graphics «Decnet» Database SERVER: VAX Client B: Compaq Pro PC Δείχνει τους υπολογιστές και τις συσκευές (κόμβους) καθώς και τον τύπο των συνδέσεων. Εκτελέσιμα αντικείμενα φανερώνουν ποιες μονάδες λογισμικού εκτελούνται σε κάθε κόμβο

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

Εργαλεία (Case Tools) UML / Λειτουργίες Σχεδιασμός διαγραμμάτων που εξασφαλίζουν τη σωστή χρήση των συστατικών των μοντέλων. Αποθήκευση δεδομένων - τα εργαλεία πρέπει να υποστηρίζουν μια κοινή αποθήκη (repository) ώστε να αποθηκεύεται η κοινή πληροφορία των μοντέλων. Π.χ. η αλλαγή του ονόματος μιας κλάσης σε ένα διάγραμμα πρέπει να σημαίνει την αλλαγή του ονόματος της κλάσης σε όλα τα διαγράμματα. Πλοήγηση και υποστήριξη εισαγωγής/εξαγωγής - τα εργαλεία πρέπει να υποστηρίζουν την εύκολη πλοήγηση στα στοιχεία των διαγραμμάτων, τη μεταφορά τους από διάγραμμα σε διάγραμμα κ.α.

Εργαλεία (Case Tools) UML / Λειτουργίες Υποστήριξη πολλών χρηστών έτσι ώστε να επιτρέπεται σε πολλούς χρήστες να εργάζονται σε ένα μοντέλο χωρίς να επηρεάζεται η εργασία του άλλου χρήστη. Παραγωγή Κώδικα - ένα αναβαθμισμένο εργαλείο πρέπει να μπορεί να παράγει κώδικα (σκελετούς κώδικα), ο οποίος θα χρησιμοποιηθεί ως βάση στη φάση της υλοποίησης. Αντίστροφη ανάπτυξη (reverse engineering) - ένα αναβαθμισμένο εργαλείο πρέπει να μπορεί να διαβάζει κώδικα και να παράγει μοντέλα από αυτόν.

Εργαλεία (Case Tools) UML / Λειτουργίες Συμβατότητα και ολοκλήρωση με άλλα εργαλεία - τα εργαλεία να υποστηρίζουν ολοκλήρωση με άλλα εργαλεία, όπως περιβάλλοντα ανάπτυξης όπως είναι οι συντάκτες κώδικα (editors), οι μεταγλωττιστές (compilers) κ.α. Κάλυψη των μοντέλων σε όλα τα επίπεδα αφαίρεσης και όλων των φάσεων ανάπτυξης - τα εργαλεία πρέπει να υποστηρίζουν εύκολη πλοήγηση από τα μοντέλα σε υψηλό επίπεδο αφαίρεσης στα μοντέλα σε χαμηλό επίπεδο αφαίρεσης και από τη φάση περιγραφής του συστήματος στην παραγωγή κώδικα. Διαλειτουργικότητα μοντέλων - τα μοντέλα πρέπει να μπορούν να εξαχθούν και ύστερα να εισαχθούν σε άλλα εργαλεία μοντελοποίησης και ανάλυσης

UML Modeling Tools Rational Rose (www.rational.com) by IBM TogetherSoft Control Center, Borland (http://www.borland.com/together/index.html) ArgoUML (free software) (http://argouml.tigris.org/ ) OpenSource; written in java Others (http://www.objectsbydesign.com/tools/umltools_bycom pany.html )

Πηγές / Acknowledgements Ε. Κιουντούζης, Μεθοδολογίες Ανάλυσης και Σχεδιασμού Πληροφοριακών Συστημάτων,Εκδόσεις Α.Σταμούλη, Αθήνα 2002 Γιάννης Τζίτζικας. Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων, Πανεπιστήμιο Κρήτης Shari Lawrence Pfleeger. Τεχνολογία Λογισμικού: Θεωρία και Πράξη, τόμος 1, Κλειδάριθμος, Αθήνα, 2003 Leszek A. Maciaszek, Requirements Analysis and System Design (2nd edition), Addison Wesley, 2005 A.Dennis, B. Haley Wixom, D. Tegarden, Systems Analysis and Design with UML Version 2.0 (2nd edition) Wiley, 2005 Booch G., Rumbaugh J., Jacobson I. Unified Modeling Language User Guide. Addison- Wesley Professional 2 Edition, ISBN 0321267974. Pascal Roques, UML in Practice, John Wiley, 2004 UML Fundamentals & OOAD UML 2.0, www.acm.org Αφροδίτη Τσαλγατίδου. Εισαγωγή στη UML, Καποδιστριακό Πανεπιστήμιο Αθηνών Ιωάννης Γαβιώτης. Πληροφοριακά Συστήματα Μοντελοποίηση με UML, Πανεπιστήμιο Αιγαίου Αντικειμενοστρεφής Ανάπτυξη Λογισμικού με τη UML, επιμέλεια Π. Φιτσιλής, Κλειδάριθμος 2006 Martin Fowler, Εισαγωγή στη UML, Κλειδάριθμος, Αθήνα, 2004