Model Based System Engineering (MBSE)

SysML v2: il Linguaggio per la Modellazione dei Sistemi Nel panorama sempre più complesso dello sviluppo di sistemi, sia hardware sia software, emerge la necessità di strumenti che facilitino la comprensione, la progettazione e l’implementazione di sistemi complessi. SysML (Systems Modeling Language) si è affermato come uno standard di riferimento per soddisfare queste esigenze. Su questo sito usiamo SysML v2, la revisione del linguaggio standardizzata da OMG nel 2025: vediamo cos’è cambiato e perché lo usiamo.

Cos’è SysML v2?

SysML è un linguaggio di modellazione, ideato per far collaborare domini ingegneristici differenti e concorrenti nelle fasi di specifica, analisi, progettazione e verifica dei sistemi complessi. Derivato dallo standard UML (Unified Modeling Language), è stato adattato per gestire non solo software ma anche componenti hardware, processi, dati, personale e altre risorse necessarie nel ciclo di vita di un sistema. SysML v2 è una riscrittura quasi completa del linguaggio rispetto alla v1 (quella con cui è nato lo standard, usata da strumenti come Cameo Systems Modeler): condivide gli stessi concetti di fondo, ma cambia radicalmente come si scrivono. La differenza più importante:
  • v1 è prevalentemente grafico: il modello vive nei diagrammi, disegnati in uno strumento CASE; il testo (se esiste) è un’esportazione secondaria.
  • v2 ha una notazione testuale di prima classe: si scrive codice (part def, requirement def, state def…) in un file, e i diagrammi — quando servono — vengono generati da quel testo da uno strumento come SysOn (open source, Eclipse Foundation). Il testo è la fonte di verità, non il diagramma.
Questo rende il modello versionabile con git come qualsiasi altro codice, con diff leggibili, code review e cronologia — un vantaggio enorme rispetto ai file binari proprietari dei tool grafici v1. SysML è sviluppato dal consorzio Object Management Group (OMG) in collaborazione con l’International Council on Systems Engineering (INCOSE); la v2 si basa su un metamodello più semplice e rigoroso chiamato KerML (Kernel Modeling Language).

Perché scegliere SysML v2?

1. Supporto alla complessità del sistema — progettato per rappresentare sistemi eterogenei e interdisciplinari, permettendo di integrare in un’unica piattaforma concetti come elettronica, meccanica, software e altro ancora. 2. Testo prima di tutto — la notazione testuale si versiona, si confronta (diff) e si rivede in code review come un qualunque altro codice sorgente; i diagrammi restano disponibili come vista, generata automaticamente, non come unica rappresentazione. 3. Riusabilità — la distinzione esplicita tra definitions (part def, un tipo riusabile) e usages (part, un’istanza in un contesto) rende naturale creare librerie di componenti riutilizzabili tra progetti diversi. 4. Standard internazionale — essendo uno standard OMG riconosciuto, favorisce la collaborazione con partner globali e la compatibilità tra strumenti conformi alla specifica (non solo un singolo vendor).

Dai diagrammi al testo: la stessa struttura, nuova sintassi

I concetti fondamentali di SysML restano gli stessi tra v1 e v2 — cambia come si esprimono. Ecco la corrispondenza tra le viste classiche e i costrutti testuali di SysML v2 che usiamo nella pratica:
Vista classica (v1)Costrutto testuale (v2)A cosa serve
Block Definition Diagram (BDD)part def, attribute defStruttura statica del sistema e dei suoi componenti
Internal Block Diagram (IBD)port def, connect ... to ...Interconnessioni tra i blocchi interni
Use Case Diagramuse case def, actor, include use caseRequisiti funzionali e interazioni con gli attori
Activity Diagramaction def, first/thenFlussi di attività e decomposizione funzionale
State Machine Diagramstate def, transition ... accept ... then ...Stati e transizioni del sistema
Requirement Diagramrequirement def, specializes, satisfy ... by ...Requisiti, derivazione e tracciabilità completa
Parametric Diagramcalc def, constraint defRelazioni matematiche e analisi tra parametri di sistema

Da notare: in v1 un requisito "derivato" da un altro usa la relazione deriveReqt; in v2 l’approccio idiomatico è la specializzazione (requirement def X specializes Y) — la stessa meccanica di ereditarietà usata ovunque nel linguaggio.


Conclusione

SysML v2 è un linguaggio potente che consente di affrontare le sfide della progettazione di sistemi complessi in modo strutturato, collaborativo e versionabile come codice. Grazie alla sua capacità di modellare e integrare componenti hardware, software e processi, rappresenta uno strumento indispensabile per le organizzazioni che operano in settori tecnologicamente avanzati. Per vedere SysML v2 applicato passo dopo passo a un progetto reale, con codice vero e un framework strutturato (MagicGrid®), vai alla serie Magic Grid. Se vuoi saperne di più o implementare SysML v2 nel tuo progetto, contattaci!

La serie applicata: stazione meteo ESP32/Nordic

La teoria sopra prende forma in una serie di articoli che applica l’MBSE e SysML v2 passo dopo passo al progetto stazione meteo ESP32/Nordic: dai requisiti di business fino alla matrice di tracciabilità che collega ogni requisito ai tutorial realmente pubblicati.