Διαγράμματα Κλάσεων Ανάλυση Συστημάτων 2007.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Δαμιανός Χατζηαντωνίου Οικονομικό Πανεπιστήμιο Αθηνών
Advertisements

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors, equals, toString Αντικείμενα ως παράμετροι.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Μηχανική Λογισμικού ΙΙ
Δαμιανός Χατζηαντωνίου Οικονομικό Πανεπιστήμιο Αθηνών
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεθοδολογίες Προγραμματισμού ΙΙ
ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Και ομοιότητες και διαφορές με την C.
Περίπτωση χρήσης: Process sale Από την ΠΧ στον κώδικα.
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
UML (Unified Modeling Language)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Παράδειγμα Εφαρμογής Σύστημα για Online Αγορές Αθανασόπουλος Γιώργος ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ.
ANAΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ Aντικειμενοστρεφής Ανάπτυξη Συστημάτων Εισαγωγή στη UML.
ΠΥΡΙΤΙΟ Το πυρίτιο (Si) έχει ατομικό αριθμό 14. Είναι ένα μεταλλοειδές που ανήκει στην ομάδα IV A (14) του περιοδικού πίνακα μαζί με τον Άνθρακα, το Γερμάνιο,
Κατάρτιση Επιχειρηματικού Σχεδίου. Επιχειρηματικός Σχεδιασμός Επιχειρηματικός σχεδιασμός σημαίνει ότι ο επιχειρηματίας αποφασίζει τι θα κάνει, πώς θα.
ΠΥΡΙΤΙΟ ΟΠΤΙΚΕΣ ΙΝΕΣ Τα είναι οπτικές ίνες; Οι οπτικές ίνες είναι πολύ λεπτά νήματα φτιαγμένα από πλαστικό ή γυαλί, με διάμετρο μικρότερη των 8μm μέσα.
Μεταρρύθμιση Φορολογίας Εισοδήματος. Νέες Κλίμακες Φορολογίας Εισοδήματος Το εισόδημα από μισθούς ( συντάξεις ) και επιχειρηματική δραστηριότητα φορολογείται.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Παράδειγμα Κληρονομικότητας Γενικευμένες κλάσεις.
Ανάπτυξη και δοκιμή νέων προϊόντων και υπηρεσιών.
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού - Κλάσεις ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014:
Μαθηματικά Μοντέλα Βέλτιστη Ποσότητας Παραγγελίας Σύστημα Συνεχούς Αναθεώρησης Σύστημα Περιοδικής Αναθεώρησης Ειδικές περιπτώσεις –Μ–Μη στιγμιαίος ανεφοδιασμός.
Βάσεις Δεδομένων Ενότητα 4: Μοντελοποίηση Συσχέτισης Οντοτήτων Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό.
Εισαγωγή στον Προγ/μό Η/Υ
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ (SOFTWARE ENGINEERING) UML – διαγράμματα περιπτώσεων χρήσης, διαγράμματα κλάσεων, διαγράμματα ακολουθίας, διαγράμματα δραστηριότητας,
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
Ασκήσεις Κεφάλαιο 14.
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ
Software Engineering for Web Applications
Βάσεις Δεδομένων Ι Επανάληψη
Βασικές έννοιες Αντικειμενοστραφούς Προγραμματισμού ΙΙ
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΟΛΟΓΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ
Βάσεις Δεδομένων Εισαγωγή για το Εργαστήριο Δρ. Τιάκας Ελευθέριος
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Διδάσκων: Κων/νος Κώτης
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Πρακτική Εφαρμογή.
Η Νοτιοανατολική Ευρώπη υπό ξένη κυριαρχία
Η Νοτιοανατολική Ευρώπη υπό ξένη κυριαρχία ( )
JAVA – Basic OOP Principles
Μάρκετινγκ Υπηρεσιών Τουρισμού Διάλεξη 4η (2016 – 17) Εξυπηρέτηση Πελατών Δρ. Αλέξανδρος Αποστολάκης Τηλ.:
Διοίκηση ΜΜΕ και Επιχειρηματικότητα Διάλεξη 5η (2017 – 18) H Ελληνική Επιχειρηματικότητα: Η Περίοδος της Κρίσης Δρ. Αλέξανδρος Αποστολάκης
ΔΙΑΓΩΝΙΣΜΟΣ ΣΤΗΝ ΤΑΞΗ ΜΟΝΤΕΡΝΑ ΠΟΙΗΣΗ VS ΠΑΡΑΔΟΣΙΑΚΗ ΠΟΙΗΣΗ.
Αναδρομικές Εξισώσεις και Αφηρημένοι Τύποι Δεδομένων
ΣΧΕΣΙΑΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ
Πληροφοριακά Συστήματα: Μοντελοποίηση με UML
ΝΈΟ ΟΡΓΑΝΟΓΡΑΜΜΑ (ΙΑΝ14) VS. ΕΓΚΡΙΘΕΝ ΟΡΓΑΝΟΓΡΑΜΜΑ (ΑΥΓ13)
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Σύστημα για Online Αγορές
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Δυτικής Αττικής
A.ΤΕΙ ΚΑΛΑΜΑΤΑΣ - ΛΟΧΡΗ ΔΙΟΙΚΗΣΗ ΧΡΗΜΑΤΟΠΙΣΤΩΤΙΚΩΝ ΥΠΗΡΕΣΙΩΝ
Ζορμπάς – Καζαντζάκης Συναίσθημα – Λογική
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΗΘΙΚΗ Ζ΄ ΕΞΑΜΗΝΟΥ ΜΕΘΟΔΟΛΟΓΙΑ ΤΗΣ ΗΘΙΚΗΣ
Μεταγράφημα παρουσίασης:

Διαγράμματα Κλάσεων Ανάλυση Συστημάτων 2007

Μέρος Α Τα Βασικά

Εισαγωγή Διαγράμματα κλάσεων (Class diagrams) Το πιο δημοφιλές είδος διαγράμματος UML Έχουν το μεγαλύτερο πλήθος εννοιών μοντελοποίησης, οι οποίες μπορούν να κατηγοριοποιηθούν ως Βασικές έννοιες Προχωρημένες έννοιες

Γενικά Μία κλάση (class) Ένα διάγραμμα κλάσεων (class diagram) Αναπαριστά τον τύπο ενός ή περισσοτέρων αντικειμένων του συστήματος Διαθέτει σειρά από γνωρίσματα (features), που περιγράφουν τις ιδιότητες (properties) και τις λειτουργίες (operations) της Ένα διάγραμμα κλάσεων (class diagram) Περιγράφει τους τύπους των αντικειμένων στο σύστημα και τις μεταξύ τους στατικές σχέσεις Απεικονίζει τα γνωρίσματα των κλάσεων, καθώς και τους περιορισμούς που εφαρμόζονται στους τρόπους σύνδεσης των αντικειμένων του συστήματος

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

Χαρακτηριστικά (Attributes) Αποτελούν έναν τρόπο αναπαράστασης των ιδιοτήτων μιας κλάσης, με τη μορφή μιας γραμμής κειμένου στο πλαίσιο της κλάσης Σύνταξη ορατότητα όνομα: τύπος πολλαπλότητα = προεπιλογή {αλφαριθμητικό ιδιοτήτων}

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

Παράδειγμα

Συσχετίσεις (Associations) Ένας άλλος συμβολισμός μιας ιδιότητας της κλάσης, υπό τη μορφή μιας συμπαγούς γραμμής μεταξύ δύο κλάσεων, με κατεύθυνση από την κλάση προέλευσης προς την κλάση προορισμού Το όνομα της ιδιότητας γράφεται στο άκρο της συσχέτισης που καταλήγει στην κλάση προορισμού, μαζί με την πολλαπλότητα, την ορατότητα και το αλφαριθμητικό ιδιοτήτων

Παράδειγμα προέλευση προορισμός

Χαρακτηριστικά vs. Συσχετίσεις Τα χαρακτηριστικά χρησιμοποιούνται συνήθως για ιδιότητες που έχουν απλό τύπο (π.χ. Date, Integer, String κτλ) Οι συσχετίσεις χρησιμοποιούνται για ιδιότητες των οποίων ο τύπος είναι μια άλλη κλάση, που αξίζει να απεικονιστεί στο διάγραμμα Το πλαίσιο χαρακτηριστικών σε μια κλάση είναι προτιμότερο να εμφανίζεται μόνο αν η κλάση είναι σημαντική, έτσι ώστε να δίνεται έμφαση

Πολλαπλότητα (Multiplicity) Δηλώνει τον αριθμό των αντικειμένων που μπορούν να τοποθετηθούν σε μια ιδιότητα Συνήθεις πολλαπλότητες 1 (π.χ. μια παραγγελία πρέπει να αφορά σε έναν ακριβώς πελάτη) 0..1 (π.χ. μια επιχείρηση-πελάτης μπορεί να έχει ή να μην έχει έναν αντιπρόσωπο πωλήσεων) * (π.χ. ένας πελάτης μπορεί να υποβάλει μηδέν ή περισσότερες παραγγελίες) Καθορίζεται με ένα κάτω και ένα άνω όριο Κάτω όριο: οποιοσδήποτε αριθμός ≥ 0 Άνω όριο: οποιοσδήποτε αριθμός ≥ 1 ή *

Ορολογία Πολλαπλοτήτων Προαιρετικό (optional) χαρακτηριστικό κάτω όριο = 0 Υποχρεωτικό (mandatory) χαρακτηριστικό κάτω όριο ≥ 1 Μονότιμο (single-valued) χαρακτηριστικό άνω όριο = 1 Χαρακτηριστικό πολλών τιμών (multi-valued) άνω όριο ≥ 1

Προγραμματιστική Ερμηνεία των Ιδιοτήτων Μια ιδιότητα μπορεί να ερμηνεύεται από τον κώδικα ως πεδίο, ιδιότητα, ή υπολογιζόμενη τιμή Αν μια ιδιότητα έχει πολλές τιμές (πολλαπλότητα ≥ 2), τότε συνήθως ερμηνεύεται ως συλλογή τιμών (πίνακας, λίστα, κτλ) Δεν υπάρχει πρακτική αντιστοιχία μεταξύ της UML και του κώδικα, αλλά υπάρχει ομοιότητα Στο πλαίσιο μιας ομάδας ανάπτυξης, οι συμβάσεις της ομάδας θα οδηγήσουν σε μια πιο ακριβή αντιστοιχία

Παράδειγμα 1 Ερμηνεία της ιδιότητας τιμή της κλάσης ΓραμμήΠαραγγελίας ως πεδίο public class OrderLine { // Γραμμή Παραγγελίας private int quantity; // ποσότητα private Money price; // τιμή private Product product; // προϊόν }

Παράδειγμα 2 Ερμηνεία της ιδιότητας τιμή της κλάσης ΓραμμήΠαραγγελίας ως υπολογιζόμενη τιμή public class OrderLine { // Γραμμή Παραγγελίας private int quantity; // ποσότητα private Order order; // παραγγελία private Product product; // προϊόν // ανάθεση ποσότητας public void setQuantity(int quantity) { this.quantity = quantity; } // λήψη τιμής public Money getPrice() { return product.getPrice().multiply(quantity);

Παράδειγμα 3 Ερμηνεία της ιδιότητας στοιχείαΓραμμών της κλάσης Παραγγελία ως συλλογή import java.util.List; public class Order { // Παραγγελία ... // γραμμές παραγγελίας private List<OrderLine> orderLines; }

Αμφίδρομες Συσχετίσεις Μια αμφίδρομη συσχέτιση (bidirectional association) είναι ένα ζεύγος ιδιοτήτων που συνδέονται μεταξύ τους με αντίστροφο τρόπο Στην UML αναπαρίσταται με μία γραμμή που έχει (προαιρετικά) βέλη πλοηγησιμότητας καί στα δύο άκρα

Παράδειγμα Η κλάση Αυτοκίνητο έχει μια ιδιότητα ιδιοκτήτης:Πρόσωπο[1] Η κλαση Πρόσωπο έχει μια ιδιότητα αυτοκίνητα:Αυτοκίνητο[*]

Λειτουργίες (Operations) Αντιπροσωπεύουν τις ενέργειες που διεκπεραιώνει μια κλάση Προγραμματιστικά, αντιστοιχούν στις μεθόδους της κλάσης Λειτουργίες που χειρίζονται ιδιότητες μιας κλάσης δεν είναι απαραίτητο να φαίνονται σε ένα διάγραμμα – η ύπαρξή τους είναι αυτονόητη

Σύνταξη Λειτουργιών ορατότητα όνομα (λίστα-παραμέτρων): επιστρεφόμενος-τύπος {αλφαριθμητικό-ιδιοτήτων} Η ορατότητα είναι συνήθως δημόσια (+) ή ιδιωτική (-) Το όνομα είναι ένα αλφαριθμητικό Η λίστα-παραμέτρων είναι η λίστα παραμέτρων της λειτουργίας Ο επιστρεφόμενος-τύπος είναι ο τύπος της τιμής που επιστρέφεται, αν υπάρχει τιμή επιστροφής Το αλφαριθμητικό-ιδιοτήτων περιέχει επιπλέον τιμές ιδιοτήτων που εφαρμόζονται για μια λειτουργία

Σύνταξη Παραμέτρων Λειτουργιών κατεύθυνση όνομα: τύπος = προεπιλεγμένη-τιμή Το όνομα, ο τύπος και η προεπιλεγμένη-τιμή χρησιμοποιούνται με τον ίδιο τρόπο, όπως και για τα χαρακτηριστικά μιας κλάσης Η κατεύθυνση παίρνει μια από τις ακόλουθες τιμές in: παράμετρος εισόδου (default αν η κατεύθυνση δεν εμφανίζεται) out: παράμετρος εξόδου inout: και τα δύο παραπάνω

Παράδειγμα

Είδη Λειτουργιών Ερώτημα (query) Παίρνει μια τιμή από την κλάση χωρίς να μεταβάλλει την παρατηρήσιμη κατάσταση του συστήματος Επισημαίνεται με το αλφαριθμητικό ιδιοτήτων {query} Τροποποιητής (modifier) ή Διαταγή (command) Μεταβάλλει την κατάσταση του συστήματος Διαχωρισμός Ερωτημάτων-Διαταγών: η δεύτερη κατηγορία λειτουργιών συνήθως δεν επιστρέφουν τιμές

Γενίκευση (Generalization) Εννοιολογική ερμηνεία Αν μια κλάση Α γενικεύει μια κλάση Β, τότε, ο,τιδήποτε ισχύει για την κλάση Β ισχύει και για την κλάση Α Προγραμματιστική ερμηνεία Η κλάση Α είναι μια δευτερεύουσα κλάση της κλάσης Β Η κλάση Α κληρονομεί όλα τα χαρακτηριστικά και τις μεθόδους της κλάσης Β

Γενίκευση και Κληρονομικότητα

Σημειώσεις Αποτελούν τον τρόπο εισαγωγής σχολίων σε ένα διάγραμμα κλάσεων Χρησιμοποιούνται γενικότερα σε όλα τα είδη διαγραμμάτων UML

Εξάρτηση (Dependency) Υφίσταται μεταξύ 2 στοιχείων όταν οι αλλαγές στον ορισμό του ενός –που ονομάζεται προέλευση (source)– ενδέχεται να προκαλέσουν αλλαγές στο άλλο –που ονομάζεται προορισμός (target) Λόγοι ύπαρξης εξαρτήσεων Μια κλάση στέλνει ένα μήνυμα σε μια άλλη Μια κλάση περιέχει μια άλλη ως τμήμα των δεδομένων της Μια κλάση αναφέρει μια άλλη ως τύπο παραμέτρου μιας λειτουργίας

Παράδειγμα εξάρτηση προέλευση προορισμός Η κλάση ΠαράθυροΕπιδομάτων –που αποτελεί τη γραφική διασύνδεση του συστήματος με το χρήστη- εξαρτάται από την κλάση Υπάλληλος, που περιέχει την ουσιαστική συμπεριφορά του συστήματος. Αν η κλάση Υπάλληλος αλλάξει τη διασύνδεσή της, ενδεχομένως η κλάση ΠαράθυροΕπιδομάτων να χρειαστεί αλλαγές. Δεν υπάρχουν απευθείας εξαρτήσεις μεταξύ της κλάσης ΠαράθυροΕπιδομάτων και των κλάσεων ΠύληΔεδομένωνΥπαλλήλου και ΠύληΔεδομένωνΕπιδομάτων.

Λέξεις-κλειδιά για Εξαρτήσεις (1/2) «call» Η προέλευση καλεί μια λειτουργία του προορισμού «create» Η προέλευση δημιουργεί μια παρουσία του προορισμού «derive» Η προέλευση συνάγεται από τον προορισμό «instantiate» Η προέλευση είναι μια παρουσία του προορισμού «permit» Ο προορισμός επιτρέπει στην προέλευση να προσπελάσει τα ιδιωτικά του γνωρίσματα

Λέξεις-κλειδιά για Εξαρτήσεις (2/2) «realize» Η προέλευση αποτελεί υλοποίηση μιας προδιαγραφής ή διασύνδεσης που ορίζεται από τον προορισμό «refine» Δείχνει μια σχέση μεταξύ διαφορετικών σημασιολογικών επιπέδων «substitute» Η προέλευση μπορεί να υποκατασταθεί από τον προορισμό «trace» Χρησιμοποιείται για την παρακολούθηση των αλλαγών στις απαιτήσεις των κλάσεων «use» Η προέλευση χρειάζεται τον προορισμό για την υλοποίηση

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

Περιοριστικοί Κανόνες (Constraints) Τα διάφορα στοιχεία σε ένα διάγραμμα κλάσεων απεικονίζουν υποδηλώνουν περιορισμούς Π.χ. Μια παραγγελία μπορεί να δοθεί από έναν μόνο πελάτη (πολλαπλότητα στην αντίστοιχη συσχέτιση) Η UML επιτρέπει οποιονδήποτε άλλον τρόπο περιγραφής περιορισμών, αρκεί να εμπεριέχονται σε άγκιστρα ({ }) Οι περιορισμοί περιγράφονται συνήθως με τη χρήση φυσικής γλώσσας, ή με τον επίσημο τρόπο της UML, τη γλώσσα OCL (Object Constraint Language)