Ενοποιημένη Γλώσσα Σχεδίασης Προτύπων

Η Ενοποιημένη Γλώσσα Σχεδίασης Προτύπων (αγγλ. Unified Modeling Language (UML)), είναι η πρότυπη γλώσσα σχεδίασης και αποτύπωσης προτύπων στη μηχανική λογισμικού. Χρησιμοποιείται για τη γραφική απεικόνιση, τον προσδιορισμό, την κατασκευή και την τεκμηρίωση των στοιχείων ενός συστήματος λογισμικού. Μπορεί να χρησιμοποιηθεί σε διάφορες φάσεις ανάπτυξης, από την ανάλυση απαιτήσεων ως τον έλεγχο ενός ολοκληρωμένου συστήματος. Αποτελείται από ένα σύνολο προσυμφωνημένων όρων, συμβόλων και διαγραμμάτων που επιτρέπουν:

 την αποτύπωση των ορίων ενός συστήματος και των βασικών λειτουργιών του, χρησιμοποιώντας «παραδείγματα χρήσης» (αγγλ. use-cases) και «δράστες» (αγγλ. actors).
 την επεξήγηση της πραγματοποίησης των παραδειγμάτων χρήσης με «διαγράμματα αλληλεπίδρασης».
 την αναπαράσταση μιας στατικής δομής ενός συστήματος χρησιμοποιώντας «διαγράμματα κλάσεων».
 τη δημιουργία προτύπων για τη συμπεριφορά των αντικειμένων με «διαγράμματα καταστάσεων».
 τη δημιουργία προτύπων της εργασιακής ροής με «διαγράμματα δραστηριοτήτων».
 την αποκάλυψη της υλοποίησης της αρχιτεκτονικής με «διαγράμματα συστατικών» και «ανάπτυξης».
 την επέκταση της λειτουργικότητας με «στερεότυπα».

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

Στα διαγράμματα κλάσεων χρησιμοποιούνται γεωμετρικά σχήματα ως συμβολισμοί για τα αντικείμενα, τις κλάσεις και τις διασυνδέσεις.  Τα αντικείμενα της ίδιας κλάσης αναπαριστώνται με ένα μόνο γεωμετρικό σχήμα. 
Γραμμές διαφόρων τύπων χρησιμοποιούνται για να συνδέουν αυτά τα σχήματα και να υποδηλώνουν έτσι τον τρόπο που κληρονομούν τις ιδιότητές τους το ένα από το άλλο, συνεργάζονται ή εξαρτώνται μεταξύ τους. Για παράδειγμα, όταν ένα αντικείμενο χρησιμοποιεί λογισμικό κάποιας άλλης κλάσης (π.χ. καλώντας μία μέθοδό της), δημιουργείται μία «εξάρτηση» (αγγλ. dependency) μεταξύ τους η οποία αναπαρίσταται με μία διακεκομμένη γραμμή. Αυτή η εξάρτηση μπορεί να είναι «συσχέτιση» (αγγλ. association), ένας τύπος εξάρτησης που υπονοεί πραγματική συνύπαρξη στη μνήμη στιγμιοτύπων των συμμετεχόντων κλάσεων κατά τον χρόνο εκτέλεσης, «συνάθροιση» (αγγλ. aggregation), ένας τύπος συσχέτισης ο οποίος σημαίνει ότι το ένα αντικείμενο μπορεί να περιέχει στιγμιότυπα της άλλης κλάσης ως γνωρίσματα του, ή «σύνθεση» (αγγλ. composition), ένας πιο ισχυρός τύπος συνάθροισης που υπονοεί πως ο χρόνος ζωής των αντικειμένων είναι κοινός (δημιουργούνται και καταστρέφονται στη μνήμη ταυτόχρονα). Καθεμία από αυτές τις σχέσεις συμβολίζεται οπτικά με έναν διαφορετικό τύπο γραμμής μεταξύ των συμμετεχόντων κλάσεων, ενώ μπορεί να υπάρχουν και εξαρτήσεις οι οποίες δεν είναι καν συσχετίσεις (π.χ. όταν ένα αντικείμενο καλεί μία στατική μέθοδο κάποιας κλάσης).

Εξωτερικοί σύνδεσμοι

Ανάπτυξη λογισμικού
Αρχιτεκτονική υπολογιστή
Διαγράμματα
Πρότυπα ISO