OOAD - Modello di analisi UML

Unified Modeling Language (UML) è un linguaggio grafico per OOAD che fornisce un modo standard per scrivere il progetto di un sistema software. Aiuta a visualizzare, specificare, costruire e documentare gli artefatti di un sistema orientato agli oggetti. È usato per rappresentare le strutture e le relazioni in un sistema complesso.

Breve storia

È stato sviluppato negli anni '90 come fusione di diverse tecniche, in primo luogo la tecnica OOAD di Grady Booch, OMT (Object Modeling Technique) di James Rumbaugh e OOSE (Object Oriented Software Engineering) di Ivar Jacobson. UML ha tentato di standardizzare modelli semantici, notazioni sintattiche e diagrammi di OOAD.

Sistemi e modelli in UML

System- Un insieme di elementi organizzati per raggiungere determinati obiettivi formano un sistema. I sistemi sono spesso suddivisi in sottosistemi e descritti da una serie di modelli.

Model - Il modello è un'astrazione semplificata, completa e coerente di un sistema, creata per una migliore comprensione del sistema.

View - Una vista è una proiezione del modello di un sistema da una prospettiva specifica.

Modello concettuale di UML

Il modello concettuale di UML comprende tre elementi principali:

  • Elementi costitutivi di base
  • Rules
  • Meccanismi comuni

Blocchi di costruzione di base

I tre elementi costitutivi di UML sono:

  • Things
  • Relationships
  • Diagrams

Cose

Ci sono quattro tipi di cose in UML, vale a dire:

  • Structural Things- Questi sono i nomi dei modelli UML che rappresentano gli elementi statici che possono essere fisici o concettuali. Le cose strutturali sono classe, interfaccia, collaborazione, caso d'uso, classe attiva, componenti e nodi.

  • Behavioral Things- Questi sono i verbi dei modelli UML che rappresentano il comportamento dinamico nel tempo e nello spazio. I due tipi di cose comportamentali sono l'interazione e la macchina a stati.

  • Grouping Things- Comprendono le parti organizzative dei modelli UML. C'è solo un tipo di raggruppamento, cioè pacchetto.

  • Annotational Things - Queste sono le spiegazioni nei modelli UML che rappresentano i commenti applicati per descrivere gli elementi.

Relazioni

Le relazioni sono la connessione tra le cose. I quattro tipi di relazioni che possono essere rappresentati in UML sono:

  • Dependency- Questa è una relazione semantica tra due cose tale che un cambiamento in una cosa porta un cambiamento nell'altra. La prima è la cosa indipendente, mentre la seconda è la cosa dipendente.

  • Association - Questa è una relazione strutturale che rappresenta un gruppo di collegamenti aventi una struttura comune e un comportamento comune.

  • Generalization - Questo rappresenta una relazione di generalizzazione / specializzazione in cui le sottoclassi ereditano struttura e comportamento dalle superclassi.

  • Realization - Si tratta di una relazione semantica tra due o più classificatori tale che un classificatore stabilisce un contratto che gli altri classificatori si assicurano di rispettare.

Diagrammi

Un diagramma è una rappresentazione grafica di un sistema. Si compone di un gruppo di elementi generalmente sotto forma di un grafico. UML include nove diagrammi in tutto, vale a dire:

  • Diagramma di classe
  • Diagramma dell'oggetto
  • Usa diagramma dei casi
  • Diagramma di sequenza
  • Diagramma di collaborazione
  • Diagramma grafico di stato
  • Diagramma di attività
  • Schema dei componenti
  • Diagramma di distribuzione

Regole

UML ha una serie di regole in modo che i modelli siano semanticamente auto-coerenti e correlati ad altri modelli nel sistema in modo armonioso. UML ha regole semantiche per quanto segue:

  • Names
  • Scope
  • Visibility
  • Integrity
  • Execution

Meccanismi comuni

UML ha quattro meccanismi comuni:

  • Specifications
  • Adornments
  • Divisioni comuni
  • Meccanismi di estensibilità

Specifiche

In UML, dietro ogni notazione grafica, c'è un'istruzione testuale che denota la sintassi e la semantica. Queste sono le specifiche. Le specifiche forniscono un backplane semantico che contiene tutte le parti di un sistema e la relazione tra i diversi percorsi.

Ornamenti

Ogni elemento in UML ha una notazione grafica unica. Inoltre, ci sono notazioni per rappresentare gli aspetti importanti di un elemento come nome, ambito, visibilità, ecc.

Divisioni comuni

I sistemi orientati agli oggetti possono essere suddivisi in molti modi. I due modi comuni di divisione sono:

  • Division of classes and objects- Una classe è un'astrazione di un gruppo di oggetti simili. Un oggetto è l'istanza concreta che ha esistenza effettiva nel sistema.

  • Division of Interface and Implementation- Un'interfaccia definisce le regole per l'interazione. L'implementazione è la realizzazione concreta delle regole definite nell'interfaccia.

Meccanismi di estensibilità

UML è un linguaggio aperto. È possibile estendere le capacità di UML in modo controllato per soddisfare i requisiti di un sistema. I meccanismi di estensibilità sono:

  • Stereotypes - Estende il vocabolario dell'UML, attraverso il quale è possibile creare nuovi elementi costitutivi da quelli esistenti.

  • Tagged Values - Estende le proprietà dei blocchi di costruzione UML.

  • Constraints - Estende la semantica degli elementi costitutivi di UML.