A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

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

description

A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ. Εισαγωγή στη UML. Τι είναι Αντικείμενο. Στον πραγματικό κόσμο (ποδήλατο, σκύλος) Αντικείμεν ο λογισμικού: Μοντελοποιεί, αναπαριστά, αντιστοιχεί σε καποιο αντικείμενο του πραγματικού κόσμου - PowerPoint PPT Presentation

Transcript of A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Page 1: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

AΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝAΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

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

Page 2: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Τι είναι ΑντικείμενοΤι είναι Αντικείμενο

Στον πραγματικό κόσμο (ποδήλατο, Στον πραγματικό κόσμο (ποδήλατο, σκύλος)σκύλος)

ΑντικείμενΑντικείμενοο λογισμικού: λογισμικού: Μοντελοποιεί, Μοντελοποιεί, αναπαριστά, αντιστοιχεί σε καποιο αναπαριστά, αντιστοιχεί σε καποιο αντικείμενο του πραγματικού κόσμουαντικείμενο του πραγματικού κόσμου

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

Page 3: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Τι είναι Αντικείμενο (συνέχεια)Τι είναι Αντικείμενο (συνέχεια)

Δημόσιο Μέρος(Public API)

Iδιωτικό Μέρος(Λεπτομέρειες Υλοποίησης)

Page 4: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Παράδειγμα Αντικειμένου: ΠΟΔΗΛΑΤΟΠαράδειγμα Αντικειμένου: ΠΟΔΗΛΑΤΟ

ΑλλαξεΑλλαξεΤαχύτηταΤαχύτητα

Φρέναρε

Ξεκίνα

ΛεπτομέρειεςΥλοποίησης των λειτουργιών

Page 5: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Αντικείμενο (συνέχεια)Αντικείμενο (συνέχεια)

Ολα τα αντικείμενα έχουν Ολα τα αντικείμενα έχουν χαρακτηριστικά καί βρίσκονται σε μιά κατάσταση. π.χ. χαρακτηριστικά καί βρίσκονται σε μιά κατάσταση. π.χ.

Σκυλί: όνομα, χρώμα, πεινασμένο, κλπ. Σκυλί: όνομα, χρώμα, πεινασμένο, κλπ. Ποδήλατο: 2 τροχοί, χρώμα, αριθμ.ταχυτήτων, παρούσα Ποδήλατο: 2 τροχοί, χρώμα, αριθμ.ταχυτήτων, παρούσα

ταχύτητα κλπταχύτητα κλπ

Συμπεριφορά, π.χ.Συμπεριφορά, π.χ. Σκυλί: γαβγίζει, τρέχει γιά να επιτεθεί κλπ.Σκυλί: γαβγίζει, τρέχει γιά να επιτεθεί κλπ. Ποδήλατο: φρενάρει, αυξάνει/ελαττώνει ταχύτητα, αλλάζει Ποδήλατο: φρενάρει, αυξάνει/ελαττώνει ταχύτητα, αλλάζει

ταχύτητα κλπταχύτητα κλπ

Page 6: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Αντικείμενο ΛογισμικούΑντικείμενο Λογισμικού

• Αντιστοιχούν σε αντικείμενα του Αντιστοιχούν σε αντικείμενα του πραγματικού κόσμου, δομές δεδομένων πραγματικού κόσμου, δομές δεδομένων (π.χ. λίστα, ουρά, κλπ.) ή σε μιά έννοια (π.χ. λίστα, ουρά, κλπ.) ή σε μιά έννοια ((event) event) ή σε κάτι πιό αφαιρετικόή σε κάτι πιό αφαιρετικό

• Εχουν επίσης χαρακτηριστικά καί Εχουν επίσης χαρακτηριστικά καί κατάσταση (που δηλώνονται με κατάσταση (που δηλώνονται με μεταβλητές) καθώς καί συμπεριφορά (που μεταβλητές) καθώς καί συμπεριφορά (που υλοποιείται με μεθόδους)υλοποιείται με μεθόδους)

Page 7: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Eγκλεισμός (Εncapsulation)Eγκλεισμός (Εncapsulation)

H H έέννοια του εγκλεισμού (encapsulation)ννοια του εγκλεισμού (encapsulation) ΠλεονΠλεονεκτήματαεκτήματα

Αρθρωτά (modular) προγράμματαΑρθρωτά (modular) προγράμματα: Ο πηγαίος : Ο πηγαίος κώδικας γιά ένα αντικείμενο μπορεί να γραφτεί κώδικας γιά ένα αντικείμενο μπορεί να γραφτεί καί να συντηρηθεί ανεξάρτητα από άλλα καί να συντηρηθεί ανεξάρτητα από άλλα αντικείμενααντικείμενα

Απόκρυψη πληροφορίας (ιδιωτικό Απόκρυψη πληροφορίας (ιδιωτικό μέρος/δημόσιο)μέρος/δημόσιο)

Page 8: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Επικοινωνία Μεταξύ ΑντικειμένωνΕπικοινωνία Μεταξύ Αντικειμένων

ΑλλαξεΑλλαξεΤαχύτηταΤαχύτητα

Φρέναρε

Ξεκίνα

Φρέναρε

ΠΟΔΗΛΑΤΟ

ΠΟΔΗΛΑΤΗΣ

ΜΗΝΥΜΑ

Page 9: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΜυνήματαΜυνήματα

Τα αντικείμενα επικοινωνούν και αλληλεπιδρούν Τα αντικείμενα επικοινωνούν και αλληλεπιδρούν μεταξύ τους αποστέλλοντας μεταξύ τους αποστέλλοντας μηνύματαμηνύματα..

Επιπλέον πληροφορία που απαιτείται δίνεται ως Επιπλέον πληροφορία που απαιτείται δίνεται ως παράμετροιπαράμετροι των μηνυμάτων. των μηνυμάτων.

ΠλεονεκτήματαΠλεονεκτήματα Όλη η αλληλεπίδραση υποστηρίζεται με μεταβίβαση Όλη η αλληλεπίδραση υποστηρίζεται με μεταβίβαση

μηνυμάτων.μηνυμάτων. Τα αντικείμενα δε χρειάζεται να βρίσκονται στην ίδια Τα αντικείμενα δε χρειάζεται να βρίσκονται στην ίδια

διεργασία, ούτε καν στον ίδιο υπολογιστή.διεργασία, ούτε καν στον ίδιο υπολογιστή.

Page 10: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ

Μία κλάση είναι ένα σχέδιο ή πρότυπο που Μία κλάση είναι ένα σχέδιο ή πρότυπο που ορίζει τις κοινές μεταβλητές και μεθόδους ορίζει τις κοινές μεταβλητές και μεθόδους όλων των αντικειμένων που ανήκουν στο όλων των αντικειμένων που ανήκουν στο ίδιο είδος.ίδιο είδος.

Κάθε αντικείμενο είναι Κάθε αντικείμενο είναι στιγμιότυπο στιγμιότυπο μίας μίας κλάσης.κλάσης.

Page 11: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΠΑΡΑΔΕΙΓΜΑ ΚΛΑΣΗΣ: ΠΟΔΗΛΑΤΟΠΑΡΑΔΕΙΓΜΑ ΚΛΑΣΗΣ: ΠΟΔΗΛΑΤΟ

ΑλλαξεΑλλαξεΤαχύτηταΤαχύτητα

Φρέναρε

Ξεκίνα

Δημόσιο Μέρος(Public API)

Iδιωτικό Μέρος(Λεπτομέρειες Υλοποίησης)

Στατικά Χαρακτηριστικά:Στατικά Χαρακτηριστικά:ΧΡΩΜΑΧΡΩΜΑΜΟΝΤΕΛΟΜΟΝΤΕΛΟ------------------Δυναμικά ΧαρακτηριστικάΣΔυναμικά ΧαρακτηριστικάΣΑΛΛΑΞΕ ΤΑΧΥΤΗΤΑ:ΑΛΛΑΞΕ ΤΑΧΥΤΗΤΑ:(Υλοποίηση)(Υλοποίηση)κλπκλπ

Page 12: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

ΠΟΔΗΛΑΤΟ

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

Page 13: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

ΥποκλάσειςΥποκλάσεις (subclasses) και (subclasses) και υπερκλάσειςυπερκλάσεις (superclasses).(superclasses).

Κάθε υποκλάση κληρονομεί τη συμπεριφορά και Κάθε υποκλάση κληρονομεί τη συμπεριφορά και την κατάσταση της υπερκλάσης της.την κατάσταση της υπερκλάσης της.

Οι υποκλάσεις μπορούν να επανεγγράψουν Οι υποκλάσεις μπορούν να επανεγγράψουν κληροδοτούμενη συμπεριφορά και κατάσταση.κληροδοτούμενη συμπεριφορά και κατάσταση.

Ιεραρχία κλάσεωνΙεραρχία κλάσεων

Page 14: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

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

Οι υποκλάσεις προσφέρουν Οι υποκλάσεις προσφέρουν εξειδικευμένηεξειδικευμένη συμπεριφορά συμπεριφορά από τα κοινά στοιχεία που προσφέρει η υπερκλάση. από τα κοινά στοιχεία που προσφέρει η υπερκλάση. Επαναχρησιμοποίηση του κώδικα της υπερκλάσης.Επαναχρησιμοποίηση του κώδικα της υπερκλάσης.

Οι προγραμματιστές μπορούν να υλοποιήσουν Οι προγραμματιστές μπορούν να υλοποιήσουν υπερκλάσεις που λέγονται υπερκλάσεις που λέγονται αφηρημένες κλάσειςαφηρημένες κλάσεις (abstract (abstract classes)classes) και ορίζουν γενικευμένη συμπεριφορά. Οι και ορίζουν γενικευμένη συμπεριφορά. Οι αφηρημένες υπερκλάσεις ορίζουν και υλοποιούν εν μέρει αφηρημένες υπερκλάσεις ορίζουν και υλοποιούν εν μέρει τη συμπεριφορά. Κάθε προγραμματιστής συμπληρώνει τα τη συμπεριφορά. Κάθε προγραμματιστής συμπληρώνει τα χαρακτηριστικά που επιθυμεί.χαρακτηριστικά που επιθυμεί.

Page 15: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Τι είναι η UMLΤι είναι η UML

• H UML (Unified Modeling Language) H UML (Unified Modeling Language) είναι είναι μιά γλώσσα γιάμιά γλώσσα γιά• Κατάρτιση προδιαγραφών λογισμικού καί Κατάρτιση προδιαγραφών λογισμικού καί

δημιουργία καί τεκμηρίωση τμημάτων δημιουργία καί τεκμηρίωση τμημάτων λογισμικούλογισμικού

• Αναπαράσταση με οπτικό τρόπο (Αναπαράσταση με οπτικό τρόπο (visualization) visualization) τμημάτων λογισμικούτμημάτων λογισμικού

• Μοντελοποίηση εταιρικών καί άλλων Μοντελοποίηση εταιρικών καί άλλων συστημάτων που δεν αφορούν λογισμικούσυστημάτων που δεν αφορούν λογισμικού

Page 16: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

KYKΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥKYKΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ

ΑνάλυσηΑνάλυση Εννοιολογικό μοντέλοΕννοιολογικό μοντέλο Απαιτήσεις συστήματοςΑπαιτήσεις συστήματος

ΣχεδιασμόςΣχεδιασμός Σχεδιασμός συστήματοςΣχεδιασμός συστήματος Λεπτομεριακός σχεδιασμόςΛεπτομεριακός σχεδιασμός

ΥλοποίησηΥλοποίηση ΚωδικοποίησηΚωδικοποίηση ΈλεγχοςΈλεγχος

Page 17: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Χρήση της Χρήση της UMLUML

ΠληροφοριακάΠληροφοριακάσυστήματασυστήματα

ΣυστήματαΣυστήματαπραγματικού χρόνουπραγματικού χρόνου

Κατανεμημένα Κατανεμημένα συστήματασυστήματα

Συστήματα Συστήματα επιχειρήσεωνεπιχειρήσεων

Τεχνολογικά Τεχνολογικά συστήματασυστήματα

UMLUML

Page 18: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΣΤΟΧΟΙ ΤΗΣ UML ΣΤΟΧΟΙ ΤΗΣ UML

H μοντελοποίηση συστημάτων με βάση τις αρχές H μοντελοποίηση συστημάτων με βάση τις αρχές των αντικειμενοστραφών μοντέλωντων αντικειμενοστραφών μοντέλων

Συνταίριασμα σκέψεων και πρακτικής εφαρμογής Συνταίριασμα σκέψεων και πρακτικής εφαρμογής αυτώναυτών

Η δημιουργία μιας μοντελοποιημένης γλώσσας Η δημιουργία μιας μοντελοποιημένης γλώσσας που μπορεί να χρησιμοποιηθεί τόσο από τον που μπορεί να χρησιμοποιηθεί τόσο από τον άνθρωπο όσο κι από τις μηχανέςάνθρωπο όσο κι από τις μηχανές

Page 19: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Η έννοια της ΑφαίρεσηςΗ έννοια της Αφαίρεσης

Εστίαση σε κάποια επιλεγμένα στοιχεία καί Εστίαση σε κάποια επιλεγμένα στοιχεία καί αγνόηση υπόλοιπων λεπτομερειώναγνόηση υπόλοιπων λεπτομερειών

Τα μοντέλα μπορούν να εκφραστούν σε Τα μοντέλα μπορούν να εκφραστούν σε διαφορετικά επίπεδα πιστότητας καί διαφορετικά επίπεδα πιστότητας καί λεπτομέρειαςλεπτομέρειας

Σύνθετα τμήματα περιγράφονται καλύτερα Σύνθετα τμήματα περιγράφονται καλύτερα με μικρά σύνολα ανεξάρτητων όψεωνμε μικρά σύνολα ανεξάρτητων όψεων

Page 20: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

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

ΑκρίβειαΑκρίβεια - περιγράφουν με σωστό τρόπο το σύστημα- περιγράφουν με σωστό τρόπο το σύστημα ΣυνέπειαΣυνέπεια - διαφορετικές όψεις χρησιμοποιούν - διαφορετικές όψεις χρησιμοποιούν

ομοιόμορφα αντικείμεναομοιόμορφα αντικείμενα Εύκολη επικοινωνίαΕύκολη επικοινωνία με άλλα διαγράμματα με άλλα διαγράμματα ΕυμετάβληταΕυμετάβλητα Κατανοητά Κατανοητά - τόσα απλά όσο το δυνατό ,αλλά όχι - τόσα απλά όσο το δυνατό ,αλλά όχι

απλουστευμένααπλουστευμένα

Page 21: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΤΜΗΜΑΤΑ ΤΟΥ ΤΜΗΜΑΤΑ ΤΟΥ UMLUML

Διαγράμματα: είναι τα γραφικά είναι τα γραφικά που περιγράφουν τα περιεχόμεναπου περιγράφουν τα περιεχόμενα

μιας όψηςμιας όψης

Στοιχεία μοντέλουΣτοιχεία μοντέλου::Αυτά Αυτά περιλαμβάνουν τις κλάσεις ,ταπεριλαμβάνουν τις κλάσεις ,τααντικείμενα και τις σχέσεις τουςαντικείμενα και τις σχέσεις τους

OOψεις(ψεις(Views)Views) : :δείχνουνδείχνουναπόψεις του συστήματος που απόψεις του συστήματος που

μοντελοποιούνταιμοντελοποιούνται

Page 22: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Use-caseUse-caseViewView

ComponentComponentviewview

LogicalLogicalviewview

DeploymentDeploymentviewview

ConcurrencyConcurrencyViewView

ΕΙΔΗ ΤΩΝ ΟΨΕΩΝ ΤΟΥ ΕΙΔΗ ΤΩΝ ΟΨΕΩΝ ΤΟΥ UMLUML

Page 23: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Υπογραφή Υπογραφή ασφάλειαςασφάλειας

ΣτατιστικάΣτατιστικά στοιχεία στοιχεία πωλήσεωνπωλήσεων

Στατιστικά στοιχεία Στατιστικά στοιχεία πελατώνπελατώνΠελάτηςΠελάτης Πράκτορας ασφαλειών

USE-CASE DIAGRAMUSE-CASE DIAGRAM

Περιγράφει τη λειτουργικότητα του συστήματοςΠεριγράφει τη λειτουργικότητα του συστήματοςόπως αυτή γίνεται αντιληπτή από τον χρήστη όπως αυτή γίνεται αντιληπτή από τον χρήστη

Page 24: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΔΙΑΓΡΑΜΜΑΤΑ ΚΛΑΣΕΩΝ (ΔΙΑΓΡΑΜΜΑΤΑ ΚΛΑΣΕΩΝ (CLASS DIAGRAM)CLASS DIAGRAM)

ΚΑΤΟΧΟΣΚΑΤΟΧΟΣ

Όνομα Όνομα : : ΣυμβολοσειράΣυμβολοσειρά

ΑκέραιοςΑκέραιος

ΥΠΟΛΟΓΙΣΤΗΣΥΠΟΛΟΓΙΣΤΗΣ

όνομόνομαα

::ΣυμβολοσειράΣυμβολοσειρά

Μνήμη Μνήμη : : ΑκέραιοςΑκέραιος0..10..1 1..*1..*::χρησιμοποιείχρησιμοποιεί

ΗλικίαΗλικία::

Οι κλάσεις συσχετίζονται με διάφορους τρόπουςΟι κλάσεις συσχετίζονται με διάφορους τρόπους σύνδεσηςσύνδεσης εξάρτησηςεξάρτησηςειδίκευσης(μια τάξη είναι ειδική περίπτωση κάποιας άλληςειδίκευσης(μια τάξη είναι ειδική περίπτωση κάποιας άλληςομαδοποίησηςομαδοποίησης

Page 25: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Bob-ΚάτοχοςBob-Κάτοχος------------------------------------

όνομαόνομα: ”Bob.j”: ”Bob.j”ηλικία=32ηλικία=32

Bob’s job PCBob’s job PCComputerComputer

------------------------------------ΌνομαΌνομα: “Dell4”: “Dell4”

Μνήμη Μνήμη =64=64

Bob’s HomeBob’s HomePC ComputerPC Computer------------------------------------

ΌνομαΌνομα:”Pentium:”PentiumΜνήμη =32Μνήμη =32

ΔΙΑΓΡΑΜΜΑΤΑ ΑΝΤΙΚΕΙΜΕΝΩΝΔΙΑΓΡΑΜΜΑΤΑ ΑΝΤΙΚΕΙΜΕΝΩΝ

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

Page 26: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΔΙΑΓΡΑΜΜΑ ΚΑΤΑΣΤΑΣΕΩΝΔΙΑΓΡΑΜΜΑ ΚΑΤΑΣΤΑΣΕΩΝState DiagramsState Diagrams

On first floorOn first floorMoving upMoving up

Moving downMoving down IdleIdle

Moving to 1st floorMoving to 1st floor

Go up (floor)Go up (floor)

arrivedarrived Go up (floor) Go up (floor)

arrivedarrived

Go down (floor)Go down (floor)

Time outTime out

arrivedarrived

Page 27: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

:Computer:Computer :Prin:PrinterterServerServer :Printer:Printer :Queue:QueuePrint(file)Print(file)

Print(file)Print(file)[printer free][printer free]Print(file)Print(file)

[printer busy][printer busy]Store(file)Store(file)

ΔΙΑΓΡΑΜΜΑ AΛΛΗΛΟΔΙΑΔΟΧΗΣΔΙΑΓΡΑΜΜΑ AΛΛΗΛΟΔΙΑΔΟΧΗΣ((SEQUENCE DIAGRAM)SEQUENCE DIAGRAM)

Page 28: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

:Computer

:PrinterServer:PrinterServer

:Queue

:Printer:Printer

1:1:Print(file)Print(file) [printer busy][printer busy]1.2: Store(file)1.2: Store(file)

[printer free][printer free]1.1: Print(file)1.1: Print(file)

COLLABORATION DIAGRAMCOLLABORATION DIAGRAM

Page 29: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Διαφορές των sequence diagrams και των collaboration diagramsΔιαφορές των sequence diagrams και των collaboration diagrams

Sequence diagramSequence diagram : : Δείχνει την ακολουθία Δείχνει την ακολουθία μηνυμάτων ανάμεσα στα αντικείμενα, με την μηνυμάτων ανάμεσα στα αντικείμενα, με την πάροδο του χρόνουπάροδο του χρόνου

Collaboration diagramCollaboration diagram: : Δίνει μεγαλύτερη έμφαση Δίνει μεγαλύτερη έμφαση στο περιεχόμενο και στις σχέσεις μεταξύ των στο περιεχόμενο και στις σχέσεις μεταξύ των αντικειμένωναντικειμένων

Page 30: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΑΑCTIVITY DIAGRAMCTIVITY DIAGRAM Δίνει την ακολουθιακή ροή των δραστηριοτήτων Δίνει την ακολουθιακή ροή των δραστηριοτήτων Περιέχει προσδιορισμούς των μηνυμάτων που στέλνονταιΠεριέχει προσδιορισμούς των μηνυμάτων που στέλνονται

Εμφάνισε μύνημαΕμφάνισε μύνημα«Δίσκος γεμάτος»«Δίσκος γεμάτος»

Εμφάνισε μύνημαΕμφάνισε μύνημα«Εκτύπωση»«Εκτύπωση»στην οθόνηστην οθόνη

ΔημιουργησεΔημιουργησεpostscript postscript αρχείουαρχείου

ΜετακίνησεΜετακίνησεκουτιά μηνυμάτωνκουτιά μηνυμάτων

[ Δίσκος γεμάτος ][ Δίσκος γεμάτος ]

[ Ελεύθερος χώρος δίσκου ][ Ελεύθερος χώρος δίσκου ]

ΠαράθυροΠελάτη.Εκτύπωση ( )ΠαράθυροΠελάτη.Εκτύπωση ( )

^Εκτυπωτής.Εκτύπωση()^Εκτυπωτής.Εκτύπωση()

Page 31: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

COMPONENT DIAGRAM(διαγρ.εξαρτημάτων)COMPONENT DIAGRAM(διαγρ.εξαρτημάτων)

Δείχνει τα συστατικά μέρη του κώδικα και την Δείχνει τα συστατικά μέρη του κώδικα και την φυσική τους δομήφυσική τους δομή

WindowHandler(wind.cpp)

CommHandler(comm.hnd)

MainClass(main.cpp)

WindowHandler(wind.obj)

Comm Handler (commhnd.obj)

MainClass(main.obj)

Graphiclib(graphic.dll)

ClientProgram(client.exe)

Page 32: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

DEPLOYMENT DIAGRAM DEPLOYMENT DIAGRAM (Διάγραμμα ανάπτυξης)(Διάγραμμα ανάπτυξης)

Δείχνει τους υπολογιστές και τις συσκευέςΔείχνει τους υπολογιστές και τις συσκευές(κόμβους ) καθώς και τον τύπο των συνδέσεων(κόμβους ) καθώς και τον τύπο των συνδέσεωνΕκτελέσιμα αντικείμενα φανερώνουν ποιες Εκτελέσιμα αντικείμενα φανερώνουν ποιες

μονάδες λογισμικού εκτελούνται σε κάθε κόμβομονάδες λογισμικού εκτελούνται σε κάθε κόμβο

Client A:Client A:Compaq Pro PCCompaq Pro PC

ApplicationApplicationServer:Server:

Silicon GraphicsSilicon Graphics

«TCP/IP»

«TCP/IP»

«TCP

«TCP

IP /»

IP /»

DatabaseDatabaseSERVER:SERVER:VAXVAX

«Decnet»«Decnet»

Client B:Compaq Pro PC

Page 33: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΕΙΔΗ ΕΙΔΗ UML UML ΔΙΑΓΡΑΜΜΑΤΩΝΔΙΑΓΡΑΜΜΑΤΩΝ

ΣτατικάΣτατικά

ΔυναμικάΔυναμικά

ΥλοποίησηςΥλοποίησης

Διαγράμματα αντικειμένωνΔιαγράμματα αντικειμένωνκαι κλάσεωνκαι κλάσεων

Kαταστάσεων, Ακολουθίας,Συνεργασίας,Kαταστάσεων, Ακολουθίας,Συνεργασίας,ΔραστηριοτήτωνΔραστηριοτήτων

Εξαρτημάτων,ανάπτυξηςΕξαρτημάτων,ανάπτυξηςΕσ

ωτε

ρικ

ή ό

ψη

Εσ

ωτε

ρικ

ή ό

ψη

Εξωτερική όψηΕξωτερική όψη Use case Use case διάγραμμαδιάγραμμα

Page 34: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΕΙΔΗ ΕΙΔΗ UML UML ΔΙΑΓΡΑΜΜΑΤΩΝΔΙΑΓΡΑΜΜΑΤΩΝ

Στατική ΆποψηΣτατική Άποψη

Δυναμική ΆποψηΔυναμική Άποψη

Αποψη ΥλοποίησηςΑποψη Υλοποίησης

Διαγράμματα αντικειμένωνΔιαγράμματα αντικειμένωνκαι κλάσεωνκαι κλάσεων

Kαταστάσεων, Ακολουθίας,Συνεργασίας,Kαταστάσεων, Ακολουθίας,Συνεργασίας,ΔραστηριοτήτωνΔραστηριοτήτων

Εξαρτημάτων,ανάπτυξηςΕξαρτημάτων,ανάπτυξης

Λειτουργική ΆποψηΛειτουργική Άποψη Use case Use case διάγραμμαδιάγραμμα

Page 35: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

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

ΚατάστασηΚατάσταση

ΚόμβοςΚόμβος((node)node)

PackagePackage ComponentComponent

ΚλάσηΚλάση

ΓνωρίσματαΓνωρίσματα

ΛειτουργίεςΛειτουργίες

ΑντικείμενοΑντικείμενο

ΓνωρίσματαΓνωρίσματα

ΛειτουργίεςΛειτουργίες

Use CaseUse Caseinterfaceinterface

ΥποσημείωσηΥποσημείωση

Page 36: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Παραδείγματα συσχετίσεων μεταξύ κλάσεωνΠαραδείγματα συσχετίσεων μεταξύ κλάσεων

Εξάρτηση(dependency) Εξάρτηση(dependency) (ένα στοιχείο εξαρτάται με κάποιον τρόπο από κάποιο άλλο(ένα στοιχείο εξαρτάται με κάποιον τρόπο από κάποιο άλλο

Κληρονομικότητα ( ένα στοιχείο μπορεί να αποτελεί ειδική περίπτωση κάποιοΚληρονομικότητα ( ένα στοιχείο μπορεί να αποτελεί ειδική περίπτωση κάποιο

Σύνδεση (συνδέει στοιχεία και στιγμιότυπα συνδέσμωνΣύνδεση (συνδέει στοιχεία και στιγμιότυπα συνδέσμων))

Ομαδικότητα (ένα στοιχείο περιέχει άλλα στοιχείαΟμαδικότητα (ένα στοιχείο περιέχει άλλα στοιχεία))

Page 37: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΕΠΕΚΤΕΙΝΟΝΤΑΣ ΤΗΝ UMLΕΠΕΚΤΕΙΝΟΝΤΑΣ ΤΗΝ UML

ΣτερεότυπαΣτερεότυπα : : ορίζει ένα νέο είδος στοιχείου μοντέλου ορίζει ένα νέο είδος στοιχείου μοντέλου βασισμένο ΄σ’ ένα υπάρχον στοιχείο μοντέλου.βασισμένο ΄σ’ ένα υπάρχον στοιχείο μοντέλου.Είναι Είναι λοιπόν σαν ένα υπάρχον στοιχείο μοντέλου , με κάποια λοιπόν σαν ένα υπάρχον στοιχείο μοντέλου , με κάποια επιπλέον στοιχεία επιπλέον στοιχεία

Tagged valuesTagged values : : Τα στοιχεία μπορούν να έχουν ιδιότητες Τα στοιχεία μπορούν να έχουν ιδιότητες που που περιέχουν ζευγάρια τιμών σχετικά με επιπλέον περιέχουν ζευγάρια τιμών σχετικά με επιπλέον πληροφορίεςπληροφορίες

ΠεριορισμοίΠεριορισμοί : : Θέτουν κάποια βάση που Θέτουν κάποια βάση που περιορίζει είτε την περιορίζει είτε την χρήσηχρήση του στοιχείου είτε την του στοιχείου είτε την σημασία τουσημασία του

Page 38: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΣΤΕΡΕΟΤΥΠΑΣΤΕΡΕΟΤΥΠΑ

««ActorActor»»ΠελάτηςΠελάτης

ΠελάτηςΠελάτης

ΠελάτηςΠελάτης

Ο πελάτης είναι μια κλάση με το στερεότυπο «Ο πελάτης είναι μια κλάση με το στερεότυπο «ActorActor»»Το στερεότυπο Το στερεότυπο προσθέτει επιπλέον σημασιολογικές προσθέτει επιπλέον σημασιολογικές πληροφορίες σχετικά με την κλάσηπληροφορίες σχετικά με την κλάση.Εδώ η κλάση .Εδώ η κλάση εκπροσωπεί έναν εξωτερικό χρήστη του συστήματοςεκπροσωπεί έναν εξωτερικό χρήστη του συστήματος

Page 39: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Tagged values Tagged values και περιορισμοίκαι περιορισμοί

ΕργαλείοΕργαλείο{{abstract}abstract}

{{συγγραφ.=συγγραφ.=“Hee”}“Hee”}{κατάσταση=draft}{κατάσταση=draft}

Τιμή Τιμή : : ακέραιοςακέραιοςΗμ.λήξηςΗμ.λήξης: : ημερημερ..

O συγγραφέας και η κατάσταση O συγγραφέας και η κατάσταση είναι γνωρίσματα ορισμένα από είναι γνωρίσματα ορισμένα από τον χρήστητον χρήστη

Ομάδα ΗλικιωμένωνΟμάδα Ηλικιωμένωνπολιτώνπολιτών

ΆτομοΆτομο

{Ατομο.Ηλικία>60}{Ατομο.Ηλικία>60}

ΠεριορισμοίΠεριορισμοί

0..10..1

0..*0..*

Page 40: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΦΑΣΗ ΑΝΑΛΥΣΗΣΦΑΣΗ ΑΝΑΛΥΣΗΣ

Εδώ αναλύονται οι Εδώ αναλύονται οι απαιτήσεις του συστήματοςαπαιτήσεις του συστήματος

ΦΑΣΗ ΣΧΕΔΙΑΣΗΣΦΑΣΗ ΣΧΕΔΙΑΣΗΣ

Eπεκτείνει το μοντέλο ανά-Eπεκτείνει το μοντέλο ανά-λυσης σε μια λειτουργικά λυσης σε μια λειτουργικά τεχνική λύσητεχνική λύση

ΦΑΣΗ ΥΛΟΠΟΙΗΣΗΣΦΑΣΗ ΥΛΟΠΟΙΗΣΗΣ

Το μοντέλο είναι τώρα ο κώ-Το μοντέλο είναι τώρα ο κώ-δικας του προγράμματος ,ο δικας του προγράμματος ,ο οποίος υλοποιεί το σύστημαοποίος υλοποιεί το σύστημα

ΦΑΣΗ ΠΡΑΓΜΑΤΩΣΗΣΦΑΣΗ ΠΡΑΓΜΑΤΩΣΗΣ

Εδώ εξηγείται πως το Εδώ εξηγείται πως το σύστημασύστημααναπτύσσεται σε φυσική αναπτύσσεται σε φυσική αρχιτεκτονικήαρχιτεκτονική

ΜΟΝΤΕΛΟΠΟΙΩΝΤΑΣ ΜΕ ΤΗΝ ΜΟΝΤΕΛΟΠΟΙΩΝΤΑΣ ΜΕ ΤΗΝ UMLUML

Page 41: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

Φάση ανάλυσηςΦάση ανάλυσης

Φάση υλοποίησηςΦάση υλοποίησης

Φάση πραγμάτωσηςΦάση πραγμάτωσης

Φάση σχεδίασηςΦάση σχεδίασης

Use-case,class,activityUse-case,class,activity

Class,sequence,stateClass,sequence,stateactivity,componentactivity,component

Εδώ δημιουργούνταιΕδώ δημιουργούνταιελάχιστα διαγράμματαελάχιστα διαγράμματα

Deployment,sequenceDeployment,sequencecollaborationcollaboration

Αντιστοιχία διαγραμμάτων στις διάφορεςΑντιστοιχία διαγραμμάτων στις διάφορεςφάσεις ανάπτυξης ενός συστήματοςφάσεις ανάπτυξης ενός συστήματος

Page 42: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΛΕΙΤΟΥΡΓΙΕΣ ΤΩΝ ΕΡΓΑΛΕΙΩΝ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ (Case Tools)ΛΕΙΤΟΥΡΓΙΕΣ ΤΩΝ ΕΡΓΑΛΕΙΩΝ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ (Case Tools)

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

Αποθήκευση δεδομένωνΑποθήκευση δεδομένων.Αν το όνομα μιας κλάσης .Αν το όνομα μιας κλάσης αλλάζει σ’ ένα διάγραμμα , η αλλαγή αυτή διαδίδεται και αλλάζει σ’ ένα διάγραμμα , η αλλαγή αυτή διαδίδεται και στα υπόλοιπαστα υπόλοιπα

Υποστήριξη διάδοσηςΥποστήριξη διάδοσης ενός στοιχείου από ένα διάγραμμα ενός στοιχείου από ένα διάγραμμα σε ένα άλλο κι επέκταση της περιγραφής του στοιχείουσε ένα άλλο κι επέκταση της περιγραφής του στοιχείου

Υποστήριξη πολλών χρηστώνΥποστήριξη πολλών χρηστών -δίνει την δυνατότητα να -δίνει την δυνατότητα να δουλεύουν πολλοί χρήστες ταυτόχροναδουλεύουν πολλοί χρήστες ταυτόχρονα

Δημιουργία κώδικαΔημιουργία κώδικα

Page 43: A ΝΑΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΆΛΛΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΤΩΝ CASE TOOLΆΛΛΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΤΩΝ CASE TOOL

ΑντίστροφηΑντίστροφη παραγωγήπαραγωγή , δηλαδή από τον κώδικα , δηλαδή από τον κώδικα μπορούμε να παράγουμε μοντέλαμπορούμε να παράγουμε μοντέλα

Συμβατότητα με άλλα εργαλείαΣυμβατότητα με άλλα εργαλεία όπως όπως editor, editor, μεταγλωττιστές κι άλλα επιχειρησιακά εργαλείαμεταγλωττιστές κι άλλα επιχειρησιακά εργαλεία

Κάλυψη όλων των επιπέδωνΚάλυψη όλων των επιπέδων , από το επίπεδο , από το επίπεδο περιγραφής του συστήματος στο επίπεδο κώδικαπεριγραφής του συστήματος στο επίπεδο κώδικα

Συναλλαγές ανάμεσα στα μοντέλαΣυναλλαγές ανάμεσα στα μοντέλα.Ένα μοντέλο από .Ένα μοντέλο από κάποιο διάγραμμα θα πρέπει να έχει τη δυνατότητα να κάποιο διάγραμμα θα πρέπει να έχει τη δυνατότητα να εισάγεται από το ένα εργαλείο στο άλλο εισάγεται από το ένα εργαλείο στο άλλο