sysml-modeling

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

SysML 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:
  1. Invoke
    docs-management
    skill
    for systems engineering patterns
  2. Verify SysML 2.0 syntax via MCP servers
  3. Base all guidance on OMG SysML specification
创建SysML模型前:
  1. 调用
    docs-management
    技能
    获取系统工程模式
  2. 通过MCP服务器验证SysML 2.0语法
  3. 所有指导均基于OMG SysML规范

SysML vs UML

SysML与UML对比

AspectUMLSysML
FocusSoftware systemsSystems of all types
RequirementsNot includedFirst-class diagrams
StructureClasses, ComponentsBlocks, Parts
ParametricsNot includedConstraint blocks
AllocationNot includedAllocation relationships
DomainSoftware engineeringSystems engineering
维度UMLSysML
关注点软件系统所有类型的系统
需求未包含一等图元
结构类、组件块、部件
参数化未包含约束块
分配未包含分配关系
适用领域软件工程系统工程

SysML Diagram Types

SysML图类型

Behavior Diagrams

行为图

DiagramPurposeFrom UML
ActivityFlow of actions and dataExtended
SequenceObject interactions over timeSame
State MachineLifecycle behaviorSame
Use CaseSystem-actor interactionsSame
用途源自UML
活动图动作与数据流扩展自UML
序列图随时间变化的对象交互与UML一致
状态机图生命周期行为与UML一致
用例图系统与参与者的交互与UML一致

Structure Diagrams

结构图

DiagramPurposeSysML Specific
Block Definition (BDD)System structure hierarchyYes
Internal Block (IBD)Internal component connectionsYes
PackageModel organizationExtended
用途SysML特有
块定义图(BDD)系统结构层次
内部块图(IBD)内部组件连接
包图模型组织扩展自UML

Requirements Diagrams

需求图

DiagramPurposeSysML Specific
RequirementsRequirements and relationshipsYes
ParametricConstraint equationsYes
用途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>>

@enduml
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>>

@enduml

Requirements 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 requirement
text
<<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

@enduml
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

@enduml

Block 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 access
text
<<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
}

@enduml
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
}

@enduml

Parametric 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
}

@enduml
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
}

@enduml

Parametric 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
}

@enduml
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
}

@enduml

Activity 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

@enduml
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

@enduml

Object 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

@enduml
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

@enduml

Allocation 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:
  1. Define Requirements: Capture stakeholder needs in requirements diagrams
  2. Model Structure: Create BDD for system decomposition
  3. Define Interfaces: Use IBD for part connections and flows
  4. Specify Behavior: Activity, sequence, and state diagrams
  5. Add Constraints: Parametric diagrams for physics/math
  6. Allocate Functions: Map behaviors to structural elements
  7. Trace & Verify: Link requirements through to verification
创建SysML模型时:
  1. 定义需求:在需求图中捕获涉众需求
  2. 建模结构:创建BDD进行系统分解
  3. 定义接口:使用IBD描述部件连接和流
  4. 指定行为:活动图、序列图和状态机图
  5. 添加约束:使用参数化图描述物理/数学约束
  6. 分配功能:将行为映射到结构元素
  7. 追溯与验证:将需求链接到验证环节

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.alloc
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.alloc

Naming Conventions

命名规范

ElementConventionExample
BlockPascalCase nounVehicleSystem
PartcamelCase nounpowertrain
PortcamelCase + In/OutfuelIn, torqueOut
RequirementREQ-###REQ-001
ConstraintPascalCase equationNewtonSecondLaw
元素命名规范示例
块(Block)PascalCase名词VehicleSystem
部件(Part)camelCase名词powertrain
端口(Port)camelCase + In/OutfuelIn, torqueOut
需求(Requirement)REQ-###REQ-001
约束(Constraint)PascalCase方程式名称NewtonSecondLaw

References

参考资料

For detailed guidance:

Last Updated: 2025-12-26
如需详细指导:

最后更新: 2025-12-26