Kompletny przewodnik po notacji tekstowej SysML v2
Język modelowania systemów wersja 2 (SysML v2) oznacza ogromny przeskok w inżynierii systemów. Przełamywając sztywne, oparte na UML ograniczenia graficzne SysML v1, SysML v2 wprowadzajęzykowo zorientowaną, tekstową składnię. Ta składnia traktuje strukturę, zachowanie, wymagania i analizę jako głęboko zintegrowane elementy tekstowe.
Ten kompletny przewodnik rozkłada podstawowe filary, koncepcje i składnię SysML v2, wykorzystując konkretny przykład projektuAutonomousDrone projektu.

1. Podstawowy paradygmat: Definicje wobec użyczeń
Najważniejszym koncepcyjnym elementem architektury w SysML v2 jest ostre rozróżnienie międzyDefinicjami (szkicami) iUżyciami (przypadkami kontekstowymi).
-
The
defsłowa kluczowego: Wskazuje na ponownie używalną definicję, typ lub szkic elementu. Nie istnieje jako obiekt fizyczny, dopóki nie zostanie użyty. -
Brak
defsłowa kluczowego: Wskazuje na użycie. Reprezentuje rzeczywiste wystąpienie lub instancję komponentu w określonym systemie nadrzędnym.
// DEFINICJA: Ponownie używalny szkic dowolnego akumulatora
part def Battery;
// UŻYCIE: Konkretna instancja akumulatora w naszym systemie drona
part powerSource : Battery;
To rozróżnienie pozwala inżynierom zdefiniować komponent raz i ponownie go używać w wielu podsystemach z różnymi nazwami, konfiguracjami i wewnętrznymi połączeniami.
2. Architektura strukturalna: Części, Elementy i Porty
SysML v2 dzieli architektury fizyczne lub logiczne na komponenty, rzeczy przepływające przez nie oraz interfejsy je łączące.
Części i Elementy
-
part def(Block / Komponent): Definiuje komponent systemu strukturalny, fizyczny lub logiczny. -
item def(Element przepływu): Definiuje elementy niestałe – takie jak strumienie danych, ciecze, siły lub prąd elektryczny – które przepływają między częściami.
Porty i interfejsy
-
definicja portu(Specyfikacja interfejsu): Definiuje granicę interfejsu, jawnie określając, jakie dane lub elementy mogą wejść (wejście) lub wyjść (wyjście).
Oto sposób deklarowania tych komponentów i ich zagnieżdżania w przestrzeni nazw systemu:

package DroneSystemExample {
private import ScalarValues::*;
private import SI::*;
// Podstawowe szablony (definicje)
item def Power;
port def PowerOutPort {
out item powerElec : Power;
}
port def PowerInPort {
in item powerElec : Power;
}
part def FlightController;
part def PropulsionSystem;
part def Battery;
// Kontekst zintegrowanego systemu
part def AutonomousDrone {
// Atrybuty / właściwości wartości
attribute enduranceActual : Real;
// Użycie podczęści (instancjonowanie definicji)
part flightController : FlightController;
part propulsionSystem : PropulsionSystem;
part powerSource : Battery;
// Użycie portów (instancjonowanie interfejsów)
port pBatteryOut : PowerOutPort;
port pPropulsionIn : PowerInPort;
}
}
3. Słup wymagań (przestrzeń problemu)
W SysML v1 wymagania często były blokami tekstu odizolowanymi od matematyki inżynierskiej. W SysML v2 wymagania są pierwszoklasowymi definicjami tekstowymi zawierającymi metadane, opisowy tekst oraz silnie typowane atrybuty do automatycznej weryfikacji.
requirement def RangeRequirement {
doc /* Dron musi utrzymywać ciągłą trwałość lotu co najmniej 45 minut. */
attribute enduranceTarget : Real = 45.0;
}

Śledzenie z spełnia
Aby zamknąć pętlę między przestrzenią problemu (wymagania) a przestrzenią rozwiązania (struktura), SysML v2 używa jawnych słów kluczowych relacji takich jak spełnia wprost w kontekście części:
part def AutonomousDrone {
// Instancjonuje użycie wymagania w celu spełnienia mapowania definicji w sposób czysty
satisfy requirement : RangeRequirement;
}

4. Słup zachowania (przestrzeń wykonania)
SysML v1 wymuszał jasne rozdzielenie między strukturą (Diagramy bloków wewnętrznych) a zachowaniem (Diagramy działań). SysML v2 całkowicie usuwa tę barierę, uczyniając działania i przepływy sterowania elementami strukturalnymi zgodnymi z kontekstem.
Sekwencyjne działania i przepływ sterowania
Używając działania kluczowe słowo, możesz deklarować funkcje, które akceptują dane wejściowe (wejście) i przekazują dane wyjściowe (wyjście). Przepływy sterowania są zapisywane liniowo przy użyciu następnie słowo kluczowe, eliminując potrzebę skomplikowanych schematów przepływu sterowania.
działanie executeMission {
wejście targetCoordinates;
wyjście missionStatus;
działanie sTakeoff;
następnie działanie sNavigate;
następnie działanie sLand;
}
5. Przydział funkcji: łączenie zachowań z architekturą
Przydział odpowiada na podstawowe pytanie inżynierii systemów: Który komponent wykonuje którą funkcję?
SysML v2 obsługuje to sprawnie za pomocą wykonaj słowa kluczowego w bloku użycia części. Używając notacji kropkowej (.), możesz dotrzeć głęboko do zagnieżdżonych pętli działań, aby bezpośrednio przypisać operacje do sprzętu fizycznego.
część def AutonomousDrone {
// Podczęści przydzielają zachowanie poprzez jawne 'wykonanie' przypisanych kroków
część flightController : FlightController {
wykonaj executeMission.sNavigate;
}
część propulsionSystem : PropulsionSystem {
wykonaj executeMission.sTakeoff;
}
// Zdefiniowanie zagnieżdżonego zachowania
działanie executeMission {
działanie sTakeoff;
następnie działanie sNavigate;
następnie działanie sLand;
}
}

Podsumowanie kluczowych słów
| Słowo kluczowe | Przestrzeń | Cel |
|---|---|---|
pakiet |
Strukturalny | Definiuje kontener przestrzeni nazw do organizowania modelu. |
prywatne importowanie |
Strukturalny | Importuje zewnętrzne biblioteki standardowe (takie jak WartościSkalarne lub SI jednostki) do zakresu bez ich wyciekania w dół strumienia. |
def |
Paradygmat | Wskazuje na ponownie używalny szablon lub definicję typu. |
część / element |
Strukturalny | Deklaruje składnik fizyczny/logiczny lub strumień płynu/danych przepływający przez system. |
port |
Strukturalny | Ustanawia granicę interfejsu definiującą wejście i wyjście przepływy. |
wymóg |
Problem | Definiuje kontrakt oparty na tekście zawierający typowane atrybuty i cele matematyczne. |
spełniać |
Relacja | Łączy element strukturalny bezpośrednio z wymogiem, który spełnia. |
działanie |
Wykonanie | Definiuje krok zachowania lub funkcję operacyjną. |
następnie |
Wykonanie | Wymusza kolejność wykonywania działań sekwencyjnie. |
wykonaj |
Przypisanie | Mapuje działanie behawioralne bezpośrednio na część fizyczną odpowiedzialną za jego wykonanie. |
Pełny przykład SysML V2: Trzy filary

pakiet DroneSystemExample {
prywatny importuj ScalarValues::*;
prywatny importuj SI::*;
// ==========================================
// DEFINICJE PODSTAWOWYCH SZABLONÓW
// ==========================================
element def Power;
port def PowerOutPort {
wyjście element powerElec : Power;
}
port def PowerInPort {
wejście element powerElec : Moc;
}
część def SterownikLotu;
część def SystemPropulcyjny;
część def Bateria;
// ==========================================
// 1. PILAR WYMAGAŃ (przestrzeń problemu)
// ==========================================
wymaganie def WymaganieZasięgu {
doc /* Dron musi zapewnić ciągły czas lotu co najmniej 45 minut. */
atrybut docelowyCzasTrwania : LiczbaRzeczywista = 45.0;
}
// ==========================================
// 2. PILARY STRUKTURY I BEHAVIORU
// ==========================================
część def DronAutonomiczny {
atrybut enduranceActual : LiczbaRzeczywista;
// Części składowe przypisują zachowanie poprzez jawne „wykonanie” przypisanych kroków
część kontrolerLotu : KontrolerLotu {
wykonaj executeMission.sNawiguj;
}
część układSilnikowy : UkładSilnikowy {
wykonaj executeMission.sWylot;
}
część źródłoMocy : Bateria;
// Połączenia interfejsów
port pBateriaWyj : PortWyjściaMocy;
port pUkładSilnikowyWej : PortWejściaMocy;
// POPRAWKA 1: Tworzy użycie wymogu w celu czystego spełnienia mapowania definicji
spełnij wymóg : WymógZasięgu;
// ==========================================
// 3. PŁYTA ZACHOWANIA (Przestrzeń wykonania)
// ==========================================
// Czyste, sekwencyjne definicje działań domyślnie w zakresie
działanie executeMission {
w targetCoordinates;
wyjście missionStatus;
działanie sTakeoff;
następnie działanie sNavigate;
następnie działanie sLand;
}
}
}














