Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανωτάτη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί ενότητας Να κατανοήσει ο φοιτητής τη σπουδαιότητα της χρήσης της ενοποιημένης γλώσσας μοντελοποίησης UML (Unified Modeling Language) αλλά και γενικότερα να γίνουν κατανοητές έννοιες της τεχνολογίας λογισμικού. 4
Περιεχόμενα ενότητας Εισαγωγή στην UML. Αντικειμενοστραφής Ανάλυση και Σχεδιασμός. Δομικά Συστατικά της UML. Στοιχεία Μοντελοποίησης. Σχέσεις Διαγράμματα UML. 5
Εισαγωγή στην UML (1/7) Κατά τη διάρκεια της ανάπτυξης μεγάλων έργων λογισμικού, διαπιστώνονται σημαντικά προβλήματα στην επικοινωνία μεταξύ της ομάδας Ανάπτυξης και Υλοποίησης, όσο και μεταξύ των Αναλυτών, Προγραμματιστών του λογισμικού και των Στελεχών του πελάτη. Η προφορική επικοινωνία, είναι ευέλικτη, αλλά ακόμη και μία απλή πρόταση μπορεί να ερμηνευθεί διαφορετικά από δυο διαφορετικούς ενδιαφερόμενους τους συστήματος. 6
Εισαγωγή στην UML (2/7) Η UML (Unified Modeling Language), είναι η πρότυπη γλώσσα μοντελοποίησης για την ανάπτυξη λογισμικού και συστημάτων. Ένα μοντέλο είναι ένα αφηρημένο και απλοποιημένο σχέδιο του πραγματικού αντικειμένου. Η μοντελοποίηση βοηθάει στην καλύτερη τεκμηρίωση και επικοινωνία σχετικά με τα σημαντικότερες απόψεις του συστήματος. 7
Εισαγωγή στην UML (3/7) Με τη μοντελοποίηση, η σχεδίαση και η εφαρμογή ενός συστήματος: Α) Είναι κατανοητή Β) Είναι ακριβής Γ) Μπορεί να εκτιμηθεί και να αξιολογηθεί Μία γλώσσα μοντελοποίησης αποτελείται από εικόνες, διαγράμματα, κείμενο, ψευδοκώδικα, ή γενικά οτιδήποτε μπορεί να περιγράψει το σύστημα. 8
Εισαγωγή στην UML (4/7) Η γλώσσα μοντελοποίησης UML έχει τα εξής πλεονεκτήματα: Είναι τυπική Είναι κατανοητή Είναι κλιμακωτή Είναι το πρότυπο της Τεχνολογίας Λογισμικού Έχει βασιστεί στην εμπειρία και τις βέλτιστες πρακτικές της Τεχνολογίας Λογισμικού 9
Εισαγωγή στην UML (5/7) Με μία άτυπη μέθοδος μοντελοποίησης, η ασάφεια σχετικά με τη σχεδίαση του συστήματος θα συνεχίζει να υπάρχει. Με την έκδοση 2, η UML έχει εξελιχθεί στην υποστήριξη νέων απαιτήσεων και προκλήσεων της μοντελοποίησης (Εξέλιξη αντικειμενοστραφή Προγραμματισμού, Εκτελέσιμος κώδικας από UML, κ.ά.) Η UML μπορεί να χρησιμοποιηθεί ως εργαλείο για την κατασκευή Σχεδίων και/ή Προτύπων. 10
Εισαγωγή στην UML (6/7) Η UML δεν είναι γλώσσα Προγραμματισμού, αλλά παρέχεται η δυνατότητα από ορισμένα λογισμικά (π.χ. Rational Rose), δημιουργίας κώδικα για συγκεκριμένα είδη διαγραμμάτων. 11
Εισαγωγή στην UML (7/7) H UML μοντελοποιεί τη στατική και τη δυναμική όψη ενός Συστήματος Λογισμικού. Η στατική όψη αφορά τα είδη των πιο σημαντικών αντικειμένων του Συστήματος, και τις μεταξύ τους συσχετίσεις. Η δυναμική όψη, περιγράφει την εξέλιξη των αντικειμένων χρονικά, καθώς και τη μεταξύ τους επικοινωνία. 12
Αντικειμενοστραφής Ανάλυση και Σχεδιασμός (1/2) Η UML σχετίζεται άμεσα με την αντικειμενοστραφή ανάλυση και σχεδίαση. Τα αντικείμενα, είναι οι οντότητες που υπάρχουν στην πραγματικότητα, ενώ η αντικειμενοστραφής ανάλυση είναι η διερεύνηση των αντικειμένων. Ο σχεδιασμός αφορά τη συνεργασία μεταξύ των αντικειμένων. 13
Αντικειμενοστραφής Ανάλυση και Σχεδιασμός (2/2) Ο σκοπός της αντικειμενοστραφούς ανάλυσης και σχεδιασμού είναι η: Αναγνώριση των αντικειμένων ενός συστήματος. Αναγνώριση των σχέσεων τους. Η δημιουργία ενός πρότυπου το οποίο μπορεί να μετατραπεί σε κώδικα. 14
Δομικά Συστατικά της UML Τα Δομικά Συστατικά της UML είναι : Στοιχεία Μοντελοποίησης. Σχέσεις μεταξύ των Στοιχείων. Διαγράμματα, στα οποία αποτυπώνονται τα Στοιχεία Μοντελοποίησης και οι Σχέσεις τους. 15
Στοιχεία Μοντελοποίησης (1/9) Δομικά Στοιχεία, τα οποία αφορούν τη στατική μοντελοποίηση του μοντέλου. Αυτά είναι η Κλάση η οποία περιγράφει μία ομάδα αντικειμένων με παρόμοιες λειτουργίες). 16
Στοιχεία Μοντελοποίησης (2/9) Δομικά Στοιχεία, τα οποία αφορούν τη στατική μοντελοποίηση του μοντέλου. Αυτά είναι η Κλάση η οποία περιγράφει μία ομάδα αντικειμένων με παρόμοιες λειτουργίες). Σχήμα 1: Κλάση, πηγή: Διδάσκων (2015). 17
Στοιχεία Μοντελοποίησης (3/9) Συνεργασία. Περιγράφει την αλληλεπίδραση μεταξύ στοιχείων. Σχήμα 2: Συνεργασία, πηγή: Διδάσκων (2015). 18
Στοιχεία Μοντελοποίησης (4/9) Περίπτωση Χρήσης. Περικλείει μία ομάδα ενεργειών που αφορούν την εκτέλεση μίας συγκεκριμένης λειτουργίας. Σχήμα 3: Περίπτωση χρήσης, πηγή: Διδάσκων (2015). 19
Στοιχεία Μοντελοποίησης (5/9) Συστατικά Στοιχεία. Περιγράφει τη φυσική δομή ενός συστήματος Σχήμα 4: Συστατικά στοιχεία, πηγή: Διδάσκων (2015). 20
Στοιχεία Μοντελοποίησης (6/9) Κόμβος. Αποτελεί ένα φυσικό στοιχείο, που υφίσταται κατά την εκτέλεση του λογισμικού. Σχήμα 5: Κόμβος, πηγή: Διδάσκων (2015). 21
Στοιχεία Μοντελοποίησης (7/9) Διασύνδεση. Η διασύνδεση είναι μία συμπεριφορά που αποτελείται από μία ομάδα μηνυμάτων τα οποία ανταλλάσσονται μεταξύ στοιχείων, για την επίτευξη συγκεκριμένων στόχων. Κατάσταση. Ορίζει τη σειρά των καταστάσεων ενός αντικειμένου. Ένα διάγραμμα μηχανής καταστάσεων μοντελοποιεί τις καταστάσεις ενός αντικειμένου (object). Τα γεγονότα είναι εξωτερικοί παράγοντες τα οποία προκαλούν την αλλαγή της κατάστασης ενός αντικειμένου. Σχήμα 6: Κατάσταση, πηγή: Διδάσκων (2015). 22
Στοιχεία Μοντελοποίησης (8/9) Γ. Στοιχεία Ομαδοποίησης: Πακέτο, Συλλέγει δομικά στοιχεία και στοιχεία συμπεριφοράς. Σχήμα 7: Πακέτο, πηγή: Διδάσκων (2015). 23
Στοιχεία Μοντελοποίησης (9/9) Δ. Στοιχεία Σχολιασμού: Σημειώσεις, Για την εισαγωγή σχολίων και την περιγραφή κάποιου αντικειμένου χρησιμοποιείται η σημείωση. Για να συνδέσετε τη σημείωση με κάποιο αντικείμενο, χρησιμοποιείτε τη διακεκομμένη γραμμή. Σχήμα 8 : Σημειώσεις, πηγή: Διδάσκων (2015). 24
Σχέσεις (1/4) Οι σχέσεις μεταξύ δομικών στοιχειών, είναι το πιο σημαντικό δομικό συστατικό στοιχείο της UML. Αναδεικνύει πως τα στοιχεία σχετίζονται μεταξύ τους, και περιγράφει τη λειτουργικότητα μίας εφαρμογής. Υπάρχουν τέσσερα είδη σχέσεων: Εξάρτηση: Η σχέση αυτή, υφίσταται μεταξύ δυο στοιχείων, και η αλλαγή σε ένα στοιχείο επηρεάζει το άλλο στοιχείο. Σχήμα 9 :Σχέση Εξάρτησης, πηγή: Διδάσκων (2015). 25
Σχέσεις (2/4) Συσχέτιση: Είναι μία ομάδα συνδέσμων η οποία ενώνει τα στοιχεία σε ένα μοντέλο UML. Περιγράφει επίσης πόσα στοιχεία λαμβάνουν μέρος σε μία σχέση. Σχήμα 10 : Συσχέτιση, πηγή: Διδάσκων (2015). 26
Σχέσεις (3/4) Γενίκευση: Συνδέει ένα ειδικότερο στοιχείο με ένα γενικότερο. Περιγράφει σχέσεις κληρονομικότητας μεταξύ αντικειμένων. Σχήμα 11 : Γενίκευση, πηγή: Διδάσκων (2015). 27
Σχέσεις (4/5) Πραγματοποίηση: Σχέση μεταξύ δυο συνδεδεμένων στοιχείων. Σχήμα 12 : Πραγματοποίηση, πηγή: Διδάσκων (2015). 28
Διαγράμματα UML (1/4) H UML διαδραματίζει ένα σημαντικό ρόλο στον ορισμό διαφορετικών προοπτικών ενός συστήματος, οι οποίες είναι: η Σχεδίαση, η Ανάπτυξη, η Εφαρμογή και οι Διαδικασίες του Συστήματος. Στη UML v2, μπορεί να διακριθούν τα εξής τρια είδη μοντελοποίησης: A) Δομική Μοντελοποίηση. B) Μοντελοποίηση Συμπεριφοράς. Γ) Αρχιτεκτονική Μοντελοποίηση. 29
Διαγράμματα UML (2/4) Η Δομική Μοντελοποίηση: Περιλαμβάνει τα στατικά χαρακτηριστικά ενός συστήματος. Αποτελείται από: Διαγράμματα Κλάσεων (Class), Αντικειμένων (Object), Ανάπτυξης (Deployment), Συστατικών Στοιχείων (Component) και Σύνθετης Δομής (Composite Structure). Τα Δομικά μοντέλα αντιπροσωπεύουν το πλαίσιο ενός συστήματος, και σε αυτό το πλαίσιο υπάρχουν όλα τα συστατικά στοιχεία. 30
Διαγράμματα UML (3/4) H Μοντελοποίηση Συμπεριφοράς: Περιγράφει τη διασύνδεση μεταξύ των δομικών διαγραμμάτων, και αναδεικνύει τη δυναμική φύση ενός συστήματος. Περιλαμβάνει τα διαγράμματα: Περίπτωσης Χρήσης (Use Case), Δραστηριοτήτων (Activity), Αλληλεπίδρασης (Interaction), Μηχανής Καταστάσεων (State Machine), Επικοινωνίας (Communication), Ακολουθίας (Sequence) και Χρονισμού (Timing). 31
Διαγράμματα UML (4/4) H Αρχιτεκτονική Μοντελοποίηση: Περιέχει δομικά στοιχεία, και στοιχεία συμπεριφοράς ενός συστήματος. Περιγράφει πως τα τμήματα του συστήματος είναι οργανωμένα σε υποσυστήματα. Μπορεί να θεωρηθεί ότι είναι το προσχέδιο ολόκληρου του συστήματος. Τα διαγράμματα Πακέτων (Package) εντάσσονται στην κατηγορία αυτή. 32
Βιβλιογραφία Miles R. & Hamilton K., (2006) Learning UML 2, USA: O'Reilly Media. Γιακουμάκης Μ., Διαμαντίδης Ν. (2009) Τεχνολογία Λογισμικού, Εκδόσεις Σταμούλη Α.Ε., Αθήνα. 33