Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π."— Μεταγράφημα παρουσίασης:

1 HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π

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

3 Προδιαγραφή Στατικής Δομής Συστήματος Λογισμικού Όπως έχουμε αναφέρει, το Στατικό Μοντέλο Δομής (Structural Model ή Object Model) παρουσιάζει και περιγράφει τη στατική δομή του συστήματος και των υποσυστημάτων σαν ένα σύνολο από κλάσεις, αντικείμενα, οντότητες και σχέσεις ανάμεσα σε αυτά Για τη δημιουργία του στατικού Μοντέλου Δομής ενός συστήματος xρησιμοποιούμε –Διαγράμματα που έχουν να κάνουν με την λεπτομερή στατική σχεδιαστική δομή του συστήματος Διαγράμματα Κλάσεων (Class Diagrams), Διαγράμματα Αντικειμένων (Object Diagrams) –Διαγράμματα που έχουν να κάνουν με τη γενική στατική σχεδιαστική δομή του συστήματος και την παράταξή του στο περιβάλλον της τελικής του λειτουργίας Ψηφιδικά Διαγράμματα (Component Diagrams), Παραταξιακά Διαγράμματα (Deployment Diagrams) και, Διαγράμματα Συσκευασίας (Package Diagrams)

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

5 Διαγράμματα Υλοποίησης Μοντελοποιούν στοιχεία της στατικής σχεδίασης του συστήματος και στοιχεία της ανάπτυξης του για χρήση Τριών ειδών διαγράμματα –Ψηφιδικά διαγράμματα (component diagrams) –Παραταξιακά διαγράμματα (deployment diagrams) και, –Διαγράμματα Συσκευασίας (package diagrams). Αυτά χρησιμοποιούνται γενικά για ομαδοποίηση

6 Ψηφιδικά Διαγράμματα Μοντελοποιούν τη δομή του συστήματος σαν ένα σύνολο από ψηφίδες (υπομονάδες) και τις σχέσεις που έχουν αυτές οι υπομονάδες μεταξύ τους (ανταλλαγή δεδομένων, μηνυμάτων κλπ.) Ψηφίδα (υπομονάδα) (component) –Ένα κομμάτι του συστήματος που προσφέρει συγκεκριμένες λειτουργίες και υπηρεσίες και έχει συγκεκριμένες μεθόδους επικοινωνίας με άλλες ψηφίδες (υπομονάδες) του συστήματος –Οι ψηφίδες αναφέρονται με κάποιο συγκεκριμένο όνομα και ιδανικά θα μπορούσαν να αντικατασταθούν από άλλες ψηφίδες που προσφέρουν ίδιες λειτουργίες και ίδιους τρόπους επικοινωνίας/διαπροσωπείας (interfaces) –Θέλουμε οι ψηφίδες να περιέχουν συνεκτικές (συναφείς) κλάσεις (μεγιστοποίηση της συνεκτικότητας – cohesion σε κάθε ψηφίδα) και να έχουν την ελάχιστη δυνατή εξάρτηση από άλλες ψηφίδες (ελαχιστοποίηση της σύζευξης – coupling ανάμεσα σε ψηφίδες)

7 Ταξινόμηση Όρων Σύστημα (System) –Υποσύστημα (Subsystem) Υπομονάδα/Ψηφίδα (Component) –Σύνθετη Υπομονάδα (Composite Component) –Κλάση (Class) SystemSubsystem Component Class 1* 1 * 1 * Composite Components

8 Παράδειγμα Ψηφιδικού Διαγράμματος στη UML 1.x

9 Τύποι Ψηφίδων Ψηφίδες ή υπομονάδες πεδίου (domain components) Ψηφίδες ή υπομονάδες εφαρμογής (application components) Ψηφίδες ή υπομονάδες υποδομής (infrastructure components)

10 Κατευθυντήριες Γραμμές για την Ορισμό Ψηφίδων 1.Προσδιορισμός κλάσεων σχετικών με το πεδίο και το αντικείμενο του συστήματος. Αυτές οι κλάσεις (domain classes) υποστηρίζουν συγκεκριμένες λειτουργίες που έχουν να κάνουν με το συγκεκριμένο αντικείμενο και πεδίο εφαρμογής του συστήματος (π.χ. Λογιστικά πακέτα, πακέτα ηλεκτρονικού εμπορίου κλπ.) 2.Διατήρηση της συνεκτικότητας των υπομονάδων (ψηφίδων). Η ιδέα είναι ότι κάθε υπομονάδα θα πρέπει να αποτελείται από ένα σύνολο μεθόδων που υλοποιούν συναφείς λειτουργίες πού έχουν σαν σκοπό την επίτευξη μιας συγκεκριμένης διαδικασίας. Τότε λέμε ότι οι μέθοδοι έχουν συνεκτικότητα ή ότι η υπομονάδα είναι συνεκτική (cohesive). Οι υπομονάδες που αποτελούνται από συνεκτικές κλάσεις πεδίου εφαρμογής ονομάζονται υπομονάδες πεδίου (domain components). Το πώς κατανέμονται οι κλάσεις πεδίου στην αντίστοιχη υπομονάδα πεδίου έχει να κάνει με τις προσφερόμενες υπηρεσίες (μεθόδους) της κάθε κλάσης, έτσι ώστε η υπομονάδα να παραμένει πάντα συνεκτική.

11 Κατευθυντήριες Γραμμές για την Ορισμό Ψηφίδων 3.Συσχέτιση κλάσεων διαπροσωπείας χρήστη-συστήματος με υπομονάδες εφαρμογής. Οι κλάσεις διαπροσωπείας χρήστη-συστήματος (user interface classes) υλοποιούν είσοδο-έξοδο δεδομένων και επιλογών (π.χ. οθόνες επιλογής, menus, reports κλπ.) από τον χρήστη στο σύστημα και αντίστροφα. Οι υπομονάδες εφαρμογής (application components) υλοποιούν λειτουργίες σχετικές με το συγκεκριμένο σκοπό του συστήματος. Οι υπομονάδες εφαρμογής προσδιορίζονται με το στερεότυπο >. 4.Συσχέτιση κλάσεων υποστήριξης με υπομονάδες υποδομής. Οι κλάσεις υποστήριξης υλοποιούν χαμηλού επιπέδου λειτουργίες που έχουν να κάνουν με τη σωστή εκτέλεση του συστήματος στο συγκεκριμένο περιβάλλον λειτουργίας του. Για παράδειγμα οι κλάσεις υποστήριξης προσφέρουν μεθόδους που έχουν να κάνουν με την ασφάλεια, δια- λειτουργικότητα, υπηρεσίες μεσο-λογισμικού κλπ. Οι υπομονάδες υποδομής (infrastructure components) ομαδοποιούν τέτοιες κλάσεις και προσδιορίζονται με το στερεότυπο >.

12 Κατευθυντήριες Γραμμές για την Ορισμό Ψηφίδων 5. Προσδιορισμός και μεθόδων από κλάσεις που βρίσκονται σε μια υπομονάδα και που επιτρέπουν την επικοινωνία της υπομονάδας με άλλες υπομονάδες. Οι μέθοδοι που επιτρέπουν την επικοινωνία μιας υπομονάδας (ψηφίδας) με άλλες υπομονάδες ορίζουν την διαπροσωπεία της υπομονάδας (component interface). 6.Συγκέντρωση κλάσεων που έχουν σχέσεις ειδίκευσης/γενίκευσης ή σχέσεις συσσώρευσης στη ίδια υπομονάδα. Αρκετές φορές συμβαίνει να ομαδοποιούνται στην ίδια υπομονάδα κλάσεις που έχουν ιεραρχικές σχέσεις όπως γενίκευση / ειδίκευση και σχέσεις συσσώρευσης. 7.Οι κλάσεις που παρέχουν συγκεκριμένες υπηρεσίες ορίζουν μια υπομονάδα. Οι κλάσεις αυτές ονομάζονται κλάσεις υπηρέτες (server classes) και είναι δέκτες αιτημάτων για τη διεκπεραίωση κάποιας λειτουργίας ή υπηρεσίας. 8.Οι κλάσεις που παράγουν αιτήματα προς διεκπεραίωση (client classes) είναι πιο πιθανό να ανήκουν σε υπομονάδες εφαρμογής και όχι σε υπομονάδες πεδίου. Αυτές οι κλάσεις παράγουν μηνύματα και δεν προσφέρουν κάτι σχετικό με τις προσφερόμενες λειτουργίες και υπηρεσίες. Αντίθετα οι κλάσεις που βρίσκονται σε υπομονάδες πεδίου έχουν σαν σκοπό να ανταποκρίνονται στα μηνύματα που λαμβάνουν και να ξεκινούν διαδικασίες και υπηρεσίες.

13 Κατευθυντήριες Γραμμές για την Ορισμό Ψηφίδων 9.Κλάσεις με υψηλή σύζευξη ανήκουν στην ίδια υπομονάδα. Όταν δύο ή περισσότερες κλάσεις συνεργάζονται στενά για την επίτευξη μιας υπηρεσίας του συστήματος ή όταν ανταλλάσσουν πολλά μηνύματα μεταξύ τους μπορούμε να θεωρήσουμε ότι αυτές οι κλάσεις ανήκουν στην ίδια υπομονάδα πεδίου (domain component). Αυτές οι κλάσεις έχουν την ιδιότητα της υψηλής σύζευξης και θα πρέπει να βρίσκονται στην ίδια υπομονάδα. Γενικά θέλουμε να αποφύγουμε τη σχεδίαση όπου διαφορετικές κλάσεις που έχουν υψηλή σύζευξη ανήκουν σε διαφορετικές υπομονάδες. 10.Ελαχιστοποίηση των μηνυμάτων ανάμεσα σε υπομονάδες. Κλάσεις που έχουν και τους δυο ρόλους (πελάτη και εξυπηρετητή) ανήκουν συνήθως σε υπομονάδες πεδίου. Γενικά θα πρέπει να δομούμε έτσι τις υπομονάδες ώστε να ελαχιστοποιούνται τα μηνύματα και ροή των δεδομένων από μια υπομονάδα σε κάποια άλλη υπομονάδα.

14 Παράδειγμα Ψηφιδικού Διαγράμματος στη UML 1.x http://www.agilemodeling.com/artifacts/componentDiagram.htm

15 Παράδειγμα Ψηφιδικού Διαγράμματος στη UML 2.x http://www.agilemodeling.com/artifacts/componentDiagram.htm

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

17 Παράδειγμα Παραταξιακού Διαγράμματος :DBServer videoStoreServer:AppServer > VideoStoreApplication :Client > :OpenSourceBrowser > ShoppingSession > ShoppingSession > Catalog > Catalog > ShoppingCart > ShoppingCart > :VideoStoreDB

18 Παράδειγμα Παραταξιακού Διαγράμματος (UML 2.0) http://www.agilemodeling.com/artifacts/deploymentDiagram.htm

19 Παράδειγμα Παραταξιακού Διαγράμματος (UML 2.0) http://www.agilemodeling.com/artifacts/deploymentDiagram.htm

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

21 Παράδειγμα Διαγράμματος Συσκευασίας http://www.agilemodeling.com/artifacts/packageDiagram.htm

22 Όχι άλλα Διαγράμματα !! @#$!*&$ * www.comicstore24.de/images/products/03316.jpg


Κατέβασμα ppt "HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google