Object Modeling Technique
# Object Modeling Technique

Object Modeling Technique (OMT) è un linguaggio di modellazione object-oriented sviluppato all'inizio degli anni novanta da James Rumbaugh (all'epoca impiegato presso la General Electric). Fu una notazione di grande successo, che divenne (nella versione OMT-2) uno standard de facto utilizzato da una buona parte dell'industria per la progettazione di sistemi software a oggetti. In seguito al successo di OMT, Rumbaugh venne in seguito convocato per far parte del progetto di unificazione delle notazioni di modellazione object-oriented che avrebbe portato alla definizione di Unified Modeling Language (UML), che eredita molte delle caratteristiche di OMT.

## Caratteristiche di OMT

Il nucleo concettuale di OMT era, per ammissione dello stesso Rumbaugh, un'estensione al paradigma object-oriented del modello Entity-Relationship (ER) tradizionalmente usato nella progettazione di database. OMT faceva proprie e adattava, in modo analogo, anche strumenti provenienti da altre tradizioni, come gli automi a stati finiti e i Data Flow Diagram.

Come il successivo UML, OMT prevedeva la descrizione di un sistema attraverso un insieme di viste complementari, dette modelli nella terminologia OMT. Erano previsti tre modelli: il modello degli oggetti, il modello dinamico e il modello funzionale. I diagrammi relativi a ciascuno di questi modelli potevano includere elementi comuni (come in UML).

Il modello degli oggetti era il modello principale di OMT e corrispondeva a quelli che in UML si chiamano diagramma delle classi e diagramma degli oggetti. Il modello dinamico descriveva l'evoluzione degli stati degli oggetti con un modello basato su macchine a stati finiti) simile al diagramma della macchina a stati di UML. Era inoltre descrivere scenari (cioè particolari istanze o esempi di interazione fra oggetti); in UML questo obiettivo è raggiunto con i diagrammi di sequenza. Infine, il modello funzionale era una notazione derivata dai tradizionali diagrammi di flusso dei dati, con scopi analoghi.

