sysml-modeling
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSysML Modeling Skill
SysML建模技能
When to Use This Skill
何时使用本技能
Use this skill when:
- Sysml Modeling tasks - Working on systems modeling language (sysml) for systems engineering and complex system design
- Planning or design - Need guidance on Sysml Modeling approaches
- Best practices - Want to follow established patterns and standards
在以下场景使用本技能:
- SysML建模任务 - 开展针对系统工程和复杂系统设计的系统建模语言(SysML)相关工作
- 规划或设计阶段 - 需要SysML建模方法的指导
- 最佳实践 - 希望遵循已确立的模式和标准
Overview
概述
Systems Modeling Language (SysML) for Model-Based Systems Engineering (MBSE) and complex system design.
系统建模语言(SysML)用于基于模型的系统工程(MBSE)和复杂系统设计。
MANDATORY: Documentation-First Approach
强制要求:文档优先方法
Before creating SysML models:
- Invoke skill for systems engineering patterns
docs-management - Verify SysML 2.0 syntax via MCP servers
- Base all guidance on OMG SysML specification
创建SysML模型前:
- 调用技能获取系统工程模式
docs-management - 通过MCP服务器验证SysML 2.0语法
- 所有指导均基于OMG SysML规范
SysML vs UML
SysML与UML对比
| Aspect | UML | SysML |
|---|---|---|
| Focus | Software systems | Systems of all types |
| Requirements | Not included | First-class diagrams |
| Structure | Classes, Components | Blocks, Parts |
| Parametrics | Not included | Constraint blocks |
| Allocation | Not included | Allocation relationships |
| Domain | Software engineering | Systems engineering |
| 维度 | UML | SysML |
|---|---|---|
| 关注点 | 软件系统 | 所有类型的系统 |
| 需求 | 未包含 | 一等图元 |
| 结构 | 类、组件 | 块、部件 |
| 参数化 | 未包含 | 约束块 |
| 分配 | 未包含 | 分配关系 |
| 适用领域 | 软件工程 | 系统工程 |
SysML Diagram Types
SysML图类型
Behavior Diagrams
行为图
| Diagram | Purpose | From UML |
|---|---|---|
| Activity | Flow of actions and data | Extended |
| Sequence | Object interactions over time | Same |
| State Machine | Lifecycle behavior | Same |
| Use Case | System-actor interactions | Same |
| 图 | 用途 | 源自UML |
|---|---|---|
| 活动图 | 动作与数据流 | 扩展自UML |
| 序列图 | 随时间变化的对象交互 | 与UML一致 |
| 状态机图 | 生命周期行为 | 与UML一致 |
| 用例图 | 系统与参与者的交互 | 与UML一致 |
Structure Diagrams
结构图
| Diagram | Purpose | SysML Specific |
|---|---|---|
| Block Definition (BDD) | System structure hierarchy | Yes |
| Internal Block (IBD) | Internal component connections | Yes |
| Package | Model organization | Extended |
| 图 | 用途 | SysML特有 |
|---|---|---|
| 块定义图(BDD) | 系统结构层次 | 是 |
| 内部块图(IBD) | 内部组件连接 | 是 |
| 包图 | 模型组织 | 扩展自UML |
Requirements Diagrams
需求图
| Diagram | Purpose | SysML Specific |
|---|---|---|
| Requirements | Requirements and relationships | Yes |
| Parametric | Constraint equations | Yes |
| 图 | 用途 | SysML特有 |
|---|---|---|
| 需求图 | 需求及关系 | 是 |
| 参数化图 | 约束方程式 | 是 |
Requirements Diagram
需求图
PlantUML Syntax
PlantUML语法
plantuml
@startuml
skinparam rectangle {
BackgroundColor<<requirement>> LightBlue
BackgroundColor<<testCase>> LightGreen
}
rectangle "<<requirement>>\nREQ-001: System Performance" as REQ001 {
id = "REQ-001"
text = "System shall process 1000 requests/second"
risk = "High"
verifyMethod = "Test"
}
rectangle "<<requirement>>\nREQ-002: Response Time" as REQ002 {
id = "REQ-002"
text = "System shall respond within 100ms (p95)"
risk = "Medium"
verifyMethod = "Test"
}
rectangle "<<requirement>>\nREQ-003: Availability" as REQ003 {
id = "REQ-003"
text = "System shall achieve 99.9% uptime"
risk = "High"
verifyMethod = "Analysis"
}
rectangle "<<testCase>>\nTC-001: Load Test" as TC001 {
id = "TC-001"
verifies = "REQ-001, REQ-002"
}
REQ001 <-- REQ002 : <<deriveReqt>>
REQ001 <-- REQ003 : <<deriveReqt>>
REQ002 <.. TC001 : <<verify>>
REQ001 <.. TC001 : <<verify>>
@endumlplantuml
@startuml
skinparam rectangle {
BackgroundColor<<requirement>> LightBlue
BackgroundColor<<testCase>> LightGreen
}
rectangle "<<requirement>>\nREQ-001: System Performance" as REQ001 {
id = "REQ-001"
text = "System shall process 1000 requests/second"
risk = "High"
verifyMethod = "Test"
}
rectangle "<<requirement>>\nREQ-002: Response Time" as REQ002 {
id = "REQ-002"
text = "System shall respond within 100ms (p95)"
risk = "Medium"
verifyMethod = "Test"
}
rectangle "<<requirement>>\nREQ-003: Availability" as REQ003 {
id = "REQ-003"
text = "System shall achieve 99.9% uptime"
risk = "High"
verifyMethod = "Analysis"
}
rectangle "<<testCase>>\nTC-001: Load Test" as TC001 {
id = "TC-001"
verifies = "REQ-001, REQ-002"
}
REQ001 <-- REQ002 : <<deriveReqt>>
REQ001 <-- REQ003 : <<deriveReqt>>
REQ002 <.. TC001 : <<verify>>
REQ001 <.. TC001 : <<verify>>
@endumlRequirements Relationships
需求关系
text
<<deriveReqt>> Derived requirement (child from parent)
<<refine>> Element refines requirement
<<satisfy>> Design element satisfies requirement
<<verify>> Test case verifies requirement
<<trace>> General traceability
<<copy>> Requirement copied (reuse)
<<containment>> Nested requirementtext
<<deriveReqt>> 派生需求(子需求来自父需求)
<<refine>> 元素细化需求
<<satisfy>> 设计元素满足需求
<<verify>> 测试用例验证需求
<<trace>> 通用可追溯性
<<copy>> 需求复用(复制)
<<containment>> 嵌套需求Block Definition Diagram (BDD)
块定义图(BDD)
PlantUML Syntax
PlantUML语法
plantuml
@startuml
skinparam class {
BackgroundColor<<block>> LightYellow
BackgroundColor<<valueType>> LightGreen
}
class "<<block>>\nVehicleSystem" as Vehicle {
values
--
+ maxSpeed: Speed
+ weight: Mass
+ range: Distance
operations
--
+ start()
+ stop()
+ accelerate(targetSpeed: Speed)
}
class "<<block>>\nPowertrainSubsystem" as Powertrain {
values
--
+ power: Power
+ efficiency: Real
parts
--
+ engine: Engine[1]
+ transmission: Transmission[1]
}
class "<<block>>\nEngine" as Engine {
values
--
+ displacement: Volume
+ cylinders: Integer
+ fuelType: FuelType
operations
--
+ ignite()
+ shutoff()
}
class "<<block>>\nTransmission" as Transmission {
values
--
+ gearRatios: Real[6]
+ currentGear: Integer
operations
--
+ shiftUp()
+ shiftDown()
}
class "<<block>>\nChassisSubsystem" as Chassis {
parts
--
+ wheels: Wheel[4]
+ suspension: Suspension[4]
+ brakes: BrakeSystem[1]
}
class "<<valueType>>\nSpeed" as Speed {
unit = km/h
}
class "<<valueType>>\nMass" as Mass {
unit = kg
}
class "<<enumeration>>\nFuelType" as FuelType {
Gasoline
Diesel
Electric
Hybrid
}
Vehicle *-- Powertrain : <<block>>
Vehicle *-- Chassis : <<block>>
Powertrain *-- Engine
Powertrain *-- Transmission
Engine --> FuelType
@endumlplantuml
@startuml
skinparam class {
BackgroundColor<<block>> LightYellow
BackgroundColor<<valueType>> LightGreen
}
class "<<block>>\nVehicleSystem" as Vehicle {
values
--
+ maxSpeed: Speed
+ weight: Mass
+ range: Distance
operations
--
+ start()
+ stop()
+ accelerate(targetSpeed: Speed)
}
class "<<block>>\nPowertrainSubsystem" as Powertrain {
values
--
+ power: Power
+ efficiency: Real
parts
--
+ engine: Engine[1]
+ transmission: Transmission[1]
}
class "<<block>>\nEngine" as Engine {
values
--
+ displacement: Volume
+ cylinders: Integer
+ fuelType: FuelType
operations
--
+ ignite()
+ shutoff()
}
class "<<block>>\nTransmission" as Transmission {
values
--
+ gearRatios: Real[6]
+ currentGear: Integer
operations
--
+ shiftUp()
+ shiftDown()
}
class "<<block>>\nChassisSubsystem" as Chassis {
parts
--
+ wheels: Wheel[4]
+ suspension: Suspension[4]
+ brakes: BrakeSystem[1]
}
class "<<valueType>>\nSpeed" as Speed {
unit = km/h
}
class "<<valueType>>\nMass" as Mass {
unit = kg
}
class "<<enumeration>>\nFuelType" as FuelType {
Gasoline
Diesel
Electric
Hybrid
}
Vehicle *-- Powertrain : <<block>>
Vehicle *-- Chassis : <<block>>
Powertrain *-- Engine
Powertrain *-- Transmission
Engine --> FuelType
@endumlBlock Stereotypes
块构造型
text
<<block>> System element (hardware, software, human)
<<constraintBlock>> Parametric constraint
<<valueType>> Type with unit
<<flowPort>> Flow of matter/energy/data
<<proxy>> Proxy for external element
<<full>> Full internal accesstext
<<block>> 系统元素(硬件、软件、人员)
<<constraintBlock>> 参数化约束
<<valueType>> 带单位的类型
<<flowPort>> 物质/能量/数据流
<<proxy>> 外部元素代理
<<full>> 完全内部访问Internal Block Diagram (IBD)
内部块图(IBD)
PlantUML Syntax
PlantUML语法
plantuml
@startuml
skinparam component {
BackgroundColor<<part>> LightYellow
}
package "VehicleSystem [IBD]" {
component "powertrain : PowertrainSubsystem" as powertrain <<part>> {
portin "fuelIn" as p_fuel
portout "torqueOut" as p_torque
portout "heatOut" as p_heat
}
component "chassis : ChassisSubsystem" as chassis <<part>> {
portin "torqueIn" as c_torque
portout "motionOut" as c_motion
}
component "cooling : CoolingSubsystem" as cooling <<part>> {
portin "heatIn" as cool_heat
portout "coolantOut" as cool_out
}
component "fuelSystem : FuelSubsystem" as fuel <<part>> {
portout "fuelOut" as f_out
}
' Connections (item flows)
f_out --> p_fuel : <<itemFlow>>\nfuel: Fuel
p_torque --> c_torque : <<itemFlow>>\ntorque: Torque
p_heat --> cool_heat : <<itemFlow>>\nheat: ThermalEnergy
}
@endumlplantuml
@startuml
skinparam component {
BackgroundColor<<part>> LightYellow
}
package "VehicleSystem [IBD]" {
component "powertrain : PowertrainSubsystem" as powertrain <<part>> {
portin "fuelIn" as p_fuel
portout "torqueOut" as p_torque
portout "heatOut" as p_heat
}
component "chassis : ChassisSubsystem" as chassis <<part>> {
portin "torqueIn" as c_torque
portout "motionOut" as c_motion
}
component "cooling : CoolingSubsystem" as cooling <<part>> {
portin "heatIn" as cool_heat
portout "coolantOut" as cool_out
}
component "fuelSystem : FuelSubsystem" as fuel <<part>> {
portout "fuelOut" as f_out
}
' Connections (item flows)
f_out --> p_fuel : <<itemFlow>>\nfuel: Fuel
p_torque --> c_torque : <<itemFlow>>\ntorque: Torque
p_heat --> cool_heat : <<itemFlow>>\nheat: ThermalEnergy
}
@endumlParametric Diagram
参数化图
Constraint Blocks
约束块
plantuml
@startuml
skinparam class {
BackgroundColor<<constraintBlock>> LightCoral
}
class "<<constraintBlock>>\nNewtonSecondLaw" as Newton {
constraints
--
{ F = m * a }
parameters
--
F: Force
m: Mass
a: Acceleration
}
class "<<constraintBlock>>\nKineticEnergy" as KE {
constraints
--
{ E = 0.5 * m * v^2 }
parameters
--
E: Energy
m: Mass
v: Velocity
}
class "<<constraintBlock>>\nRangeEquation" as Range {
constraints
--
{ R = (fuelCapacity * efficiency) / consumption }
parameters
--
R: Distance
fuelCapacity: Volume
efficiency: Real
consumption: VolumePerDistance
}
@endumlplantuml
@startuml
skinparam class {
BackgroundColor<<constraintBlock>> LightCoral
}
class "<<constraintBlock>>\nNewtonSecondLaw" as Newton {
constraints
--
{ F = m * a }
parameters
--
F: Force
m: Mass
a: Acceleration
}
class "<<constraintBlock>>\nKineticEnergy" as KE {
constraints
--
{ E = 0.5 * m * v^2 }
parameters
--
E: Energy
m: Mass
v: Velocity
}
class "<<constraintBlock>>\nRangeEquation" as Range {
constraints
--
{ R = (fuelCapacity * efficiency) / consumption }
parameters
--
R: Distance
fuelCapacity: Volume
efficiency: Real
consumption: VolumePerDistance
}
@endumlParametric Usage
参数化用法
plantuml
@startuml
package "VehiclePerformance [Parametric]" {
object "newton : NewtonSecondLaw" as n {
F = thrustForce
m = vehicleMass
a = acceleration
}
object "energy : KineticEnergy" as e {
E = kineticEnergy
m = vehicleMass
v = velocity
}
object "vehicle : Vehicle" as v {
mass = 1500 kg
thrust = 5000 N
}
n::m --> v::mass
n::F --> v::thrust
e::m --> v::mass
}
@endumlplantuml
@startuml
package "VehiclePerformance [Parametric]" {
object "newton : NewtonSecondLaw" as n {
F = thrustForce
m = vehicleMass
a = acceleration
}
object "energy : KineticEnergy" as e {
E = kineticEnergy
m = vehicleMass
v = velocity
}
object "vehicle : Vehicle" as v {
mass = 1500 kg
thrust = 5000 N
}
n::m --> v::mass
n::F --> v::thrust
e::m --> v::mass
}
@endumlActivity Diagram (Enhanced)
活动图(增强版)
SysML Extensions
SysML扩展
plantuml
@startuml
title Vehicle Start Sequence [Activity]
start
:Receive Start Command;
note right: <<objectFlow>>\nStartRequest
fork
:Validate Key Fob;
fork again
:Check Safety Interlocks;
end fork
if (Valid?) then (yes)
:Power On ECU;
fork
:Initialize Engine;
:<<allocate>>\nEngine ECU;
fork again
:Initialize Transmission;
:<<allocate>>\nTransmission ECU;
fork again
:Initialize Dashboard;
:<<allocate>>\nBody Control Module;
end fork
:Start Engine;
:<<objectFlow>>\nEngineStatus = Running;
:Report Ready;
else (no)
:Report Error;
:<<objectFlow>>\nErrorCode;
endif
stop
@endumlplantuml
@startuml
title Vehicle Start Sequence [Activity]
start
:Receive Start Command;
note right: <<objectFlow>>\nStartRequest
fork
:Validate Key Fob;
fork again
:Check Safety Interlocks;
end fork
if (Valid?) then (yes)
:Power On ECU;
fork
:Initialize Engine;
:<<allocate>>\nEngine ECU;
fork again
:Initialize Transmission;
:<<allocate>>\nTransmission ECU;
fork again
:Initialize Dashboard;
:<<allocate>>\nBody Control Module;
end fork
:Start Engine;
:<<objectFlow>>\nEngineStatus = Running;
:Report Ready;
else (no)
:Report Error;
:<<objectFlow>>\nErrorCode;
endif
stop
@endumlObject Flow and Control Flow
对象流与控制流
text
Control Flow: Sequence of actions (solid arrow)
Object Flow: Data/material flow (dashed arrow with <<objectFlow>>)
Rate: Flow rate specification { rate = 100/sec }
Probability: Branch probability { probability = 0.8 }
Streaming: Continuous flow { streaming }text
控制流:动作序列(实线箭头)
对象流:数据/物质流(虚线箭头,带<<objectFlow>>)
速率:流速率指定 { rate = 100/sec }
概率:分支概率 { probability = 0.8 }
流:连续流 { streaming }Allocation
分配
Allocation Relationships
分配关系
plantuml
@startuml
skinparam rectangle {
BackgroundColor<<requirement>> LightBlue
BackgroundColor<<block>> LightYellow
BackgroundColor<<activity>> LightGreen
}
rectangle "<<requirement>>\nREQ-001: Process Orders" as R1
rectangle "<<activity>>\nProcessOrder" as A1
rectangle "<<block>>\nOrderProcessor" as B1
R1 <.. A1 : <<satisfy>>
A1 <.. B1 : <<allocate>>
note bottom of B1
Function ProcessOrder
is allocated to block
OrderProcessor
end note
@endumlplantuml
@startuml
skinparam rectangle {
BackgroundColor<<requirement>> LightBlue
BackgroundColor<<block>> LightYellow
BackgroundColor<<activity>> LightGreen
}
rectangle "<<requirement>>\nREQ-001: Process Orders" as R1
rectangle "<<activity>>\nProcessOrder" as A1
rectangle "<<block>>\nOrderProcessor" as B1
R1 <.. A1 : <<satisfy>>
A1 <.. B1 : <<allocate>>
note bottom of B1
Function ProcessOrder
is allocated to block
OrderProcessor
end note
@endumlAllocation Matrix
分配矩阵
text
| Function/Behavior | Allocated To (Block) |
|-------------------|----------------------|
| ProcessOrder | OrderProcessor |
| ValidatePayment | PaymentGateway |
| ShipOrder | FulfillmentSystem |
| NotifyCustomer | NotificationService |text
| 功能/行为 | 分配到的块 |
|-------------------|----------------------|
| ProcessOrder | OrderProcessor |
| ValidatePayment | PaymentGateway |
| ShipOrder | FulfillmentSystem |
| NotifyCustomer | NotificationService |C# Model Representation
C#模型表示
csharp
// SysML Block as C# class
public abstract class Block
{
public string Name { get; init; }
public IReadOnlyDictionary<string, object> Values { get; init; }
public IReadOnlyList<Block> Parts { get; init; }
public IReadOnlyList<Port> Ports { get; init; }
}
public sealed class VehicleSystem : Block
{
// Value properties
public Speed MaxSpeed { get; init; }
public Mass Weight { get; init; }
public Distance Range { get; init; }
// Parts
public PowertrainSubsystem Powertrain { get; init; }
public ChassisSubsystem Chassis { get; init; }
public CoolingSubsystem Cooling { get; init; }
// Operations
public void Start() { /* ... */ }
public void Stop() { /* ... */ }
public void Accelerate(Speed targetSpeed) { /* ... */ }
}
// Value Types with Units
public readonly record struct Speed(double Value, SpeedUnit Unit = SpeedUnit.KmPerHour)
{
public static Speed FromKmPerHour(double value) => new(value, SpeedUnit.KmPerHour);
public static Speed FromMilesPerHour(double value) =>
new(value * 1.60934, SpeedUnit.KmPerHour);
}
public readonly record struct Mass(double Value, MassUnit Unit = MassUnit.Kilogram);
public readonly record struct Distance(double Value, DistanceUnit Unit = DistanceUnit.Kilometer);
// Constraint Block
public sealed class NewtonSecondLaw : IConstraint
{
public Force CalculateForce(Mass mass, Acceleration acceleration)
=> new(mass.Value * acceleration.Value);
public Acceleration CalculateAcceleration(Force force, Mass mass)
=> new(force.Value / mass.Value);
}
// Requirement
public sealed record Requirement(
string Id,
string Text,
RiskLevel Risk,
VerificationMethod VerifyMethod,
IReadOnlyList<string> DerivedFrom,
IReadOnlyList<string> SatisfiedBy,
IReadOnlyList<string> VerifiedBy);
public enum RiskLevel { Low, Medium, High }
public enum VerificationMethod { Analysis, Inspection, Demonstration, Test }csharp
// SysML Block as C# class
public abstract class Block
{
public string Name { get; init; }
public IReadOnlyDictionary<string, object> Values { get; init; }
public IReadOnlyList<Block> Parts { get; init; }
public IReadOnlyList<Port> Ports { get; init; }
}
public sealed class VehicleSystem : Block
{
// Value properties
public Speed MaxSpeed { get; init; }
public Mass Weight { get; init; }
public Distance Range { get; init; }
// Parts
public PowertrainSubsystem Powertrain { get; init; }
public ChassisSubsystem Chassis { get; init; }
public CoolingSubsystem Cooling { get; init; }
// Operations
public void Start() { /* ... */ }
public void Stop() { /* ... */ }
public void Accelerate(Speed targetSpeed) { /* ... */ }
}
// Value Types with Units
public readonly record struct Speed(double Value, SpeedUnit Unit = SpeedUnit.KmPerHour)
{
public static Speed FromKmPerHour(double value) => new(value, SpeedUnit.KmPerHour);
public static Speed FromMilesPerHour(double value) =>
new(value * 1.60934, SpeedUnit.KmPerHour);
}
public readonly record struct Mass(double Value, MassUnit Unit = MassUnit.Kilogram);
public readonly record struct Distance(double Value, DistanceUnit Unit = DistanceUnit.Kilometer);
// Constraint Block
public sealed class NewtonSecondLaw : IConstraint
{
public Force CalculateForce(Mass mass, Acceleration acceleration)
=> new(mass.Value * acceleration.Value);
public Acceleration CalculateAcceleration(Force force, Mass mass)
=> new(force.Value / mass.Value);
}
// Requirement
public sealed record Requirement(
string Id,
string Text,
RiskLevel Risk,
VerificationMethod VerifyMethod,
IReadOnlyList<string> DerivedFrom,
IReadOnlyList<string> SatisfiedBy,
IReadOnlyList<string> VerifiedBy);
public enum RiskLevel { Low, Medium, High }
public enum VerificationMethod { Analysis, Inspection, Demonstration, Test }MBSE Workflow
MBSE工作流程
When creating SysML models:
- Define Requirements: Capture stakeholder needs in requirements diagrams
- Model Structure: Create BDD for system decomposition
- Define Interfaces: Use IBD for part connections and flows
- Specify Behavior: Activity, sequence, and state diagrams
- Add Constraints: Parametric diagrams for physics/math
- Allocate Functions: Map behaviors to structural elements
- Trace & Verify: Link requirements through to verification
创建SysML模型时:
- 定义需求:在需求图中捕获涉众需求
- 建模结构:创建BDD进行系统分解
- 定义接口:使用IBD描述部件连接和流
- 指定行为:活动图、序列图和状态机图
- 添加约束:使用参数化图描述物理/数学约束
- 分配功能:将行为映射到结构元素
- 追溯与验证:将需求链接到验证环节
Best Practices
最佳实践
Model Organization
模型组织
text
Model
├── 1_Requirements/
│ ├── StakeholderNeeds.req
│ ├── SystemRequirements.req
│ └── DerivedRequirements.req
├── 2_Structure/
│ ├── SystemContext.bdd
│ ├── SystemArchitecture.bdd
│ └── Subsystems/
│ ├── PowertrainStructure.bdd
│ └── PowertrainInternal.ibd
├── 3_Behavior/
│ ├── UseCases.uc
│ ├── SystemSequences.seq
│ └── StateMachines/
│ └── VehicleStates.stm
├── 4_Parametrics/
│ └── PerformanceConstraints.par
└── 5_Allocation/
└── FunctionAllocation.alloctext
Model
├── 1_Requirements/
│ ├── StakeholderNeeds.req
│ ├── SystemRequirements.req
│ └── DerivedRequirements.req
├── 2_Structure/
│ ├── SystemContext.bdd
│ ├── SystemArchitecture.bdd
│ └── Subsystems/
│ ├── PowertrainStructure.bdd
│ └── PowertrainInternal.ibd
├── 3_Behavior/
│ ├── UseCases.uc
│ ├── SystemSequences.seq
│ └── StateMachines/
│ └── VehicleStates.stm
├── 4_Parametrics/
│ └── PerformanceConstraints.par
└── 5_Allocation/
└── FunctionAllocation.allocNaming Conventions
命名规范
| Element | Convention | Example |
|---|---|---|
| Block | PascalCase noun | VehicleSystem |
| Part | camelCase noun | powertrain |
| Port | camelCase + In/Out | fuelIn, torqueOut |
| Requirement | REQ-### | REQ-001 |
| Constraint | PascalCase equation | NewtonSecondLaw |
| 元素 | 命名规范 | 示例 |
|---|---|---|
| 块(Block) | PascalCase名词 | VehicleSystem |
| 部件(Part) | camelCase名词 | powertrain |
| 端口(Port) | camelCase + In/Out | fuelIn, torqueOut |
| 需求(Requirement) | REQ-### | REQ-001 |
| 约束(Constraint) | PascalCase方程式名称 | NewtonSecondLaw |
References
参考资料
For detailed guidance:
Last Updated: 2025-12-26
如需详细指导:
最后更新: 2025-12-26