接下来说到了建模工具的合规。
前面两点和模型合规要求是一致的:抽象语法的合规,具体语法的合规。具体语法又有文本表示法和图形表示法。
此外,工具合规的第3点是语义合规(Semantic Conformance)。
语法合规是形式上的正确,语义合规则是内容要符合逻辑。
以汉语为例:
小明的哥哥是家里的独生子。
这句话的语法是没问题的,但是语义不合规:小明的哥哥,小明的家里的独生子,这两者是冲突的。
以SysML v2为例:
// 电流
attribute def ElectricalCurrent {
……
}
// 水流
attribute def WaterFlow {
……
}
// 水龙头
part def WaterTap {
port outlet :>> WaterFlow;
}
// 灯泡
part def LightBulb {
port powerInput :<< ElectricalCurrent;
}
// 组装系统X
part def SystemX {
part tap : WaterTap;
part bulb : LightBulb;
// 将水龙头的"水流"出口连接到灯泡的"电流"入口
connect tap.outlet to bulb.powerInput;
}
语法上是合规的,但把水龙头的"水流"出口连接到灯泡的"电流"入口,语义上是不合规的。
以下是花絮:
语法合规,Syntax Conformance,语法错误,Syntax Error,Syntax是一个名词,用作定语。类似的还有:Computer Screen、Coffee Shop等。
语义合规,Semantic Conformance,形容词,Semantic Error,语义错误。Semantic是一个形容词。
二者是不一致的,可以用Syntactic取代Syntax使二者一致,但由于沿革下来的习惯用法已经很强大,很少有人会这样改。