预定义检查

下表列示了 IBM® Rational® Rhapsody® 可以执行的所有预定义内部检查。

下表列示所有版本的 Rational Rhapsody 的所有检查。在您使用的产品版本中,并不一定会出现这里列示的所有检查。另外,您的系统可能有用户定义的外部检查。有关这些类型的检查的更多信息,请参阅创建用户定义的检查

为了便于您使用,下表按名称的字母顺序列示检查。

表 1. 预定义检查
检查 正确 完整 备注
<<CORBAInterface>> 映射到服务器代码,但配置不是 CORBA 服务器(属性 Configuration::CORBA::CORBAEnable 未设置为 CORBAServer)。服务器主线(属性 Configuration::
ORBname::ServerMainLineTemplate
)被忽略。
W   C  
COM 接口只能从单一 COM 接口继承 E   M  
COM 接口不能具有一对多关系 E   M  
COM 服务器/COM 库最多只能包含一个 COM 库包 E   C  
COM TLB 组件只能包含一个包,这个包是 COM 库 E   C  
组合关联的反向端不能具有大于 1 的多重性。多重性被忽略 W   M  
Java™ 类只能从单一非接口类继承 E   M  
Java 接口只能从其他接口继承 E   M  
构造型为 <<CORBAModule>> 的包不可包含函数或变量 E   M  
检测到循环组合关系 W   M  
单实例对象不能具有除 1 以外的多重性 W   M  
活动图包含不支持的元素,例如事件或触发式操作。将不会生成操作! W   C  
AddressSpaceName 属性限长 32 个字符 E   M  
未生成基本 CORBA 类型的自动生成序列 W   M  
组合类型的关联关系端不能具有限定符。限定符已被忽略。 W   M  
试图创建不可实例化元素的全局实例 E   M 任何类型的实例都只能根据可实例化元素进行创建。
试图创建不可实例化元素的初始实例 E   M 任何类型的实例都只能根据可实例化元素进行创建。
在 COM/CORBA 中不支持属性修饰符 W   M  
属性与状态同名 E   M  
由于属性同时缺少相应的访问器和增变器,因此不可从 Web 访问。   W C  
属性/类型引用了模板类作为其类型。 E   M  
嵌套错误 E   M 这是对嵌套类中允许的构造型执行的 CORBA 检查。
CG::Package::
EventsBaseID
属性值超出合法的事件标识范围
E   M  
检查 MicroC 概要文件是否存在   E ABM  
检查 RIMB 属性是否与端口属性相对应   W ABM  
COM ATL 类不能是活动类 E   M  
COM ATL 类不能从多个 COM 组件类继承 E   M  
COM 组件类只能从 COM 接口继承 E   M  
COM 接口只能从 COM 接口继承 E   M  
COM 库只能包含 COM 元素 E   M  
规划的调度存在冲突(请查看“活动组件”的“调度”选项卡)   W MC  
CORBAException 具有操作 E   M  
CORBAException 具有外发关系 E   M  
继承涉及 CORBAException E   M  
CORBAInterface 继承了非 CORBAInterface E   M  
找不到模板规范的模板 E   M  
类未实现其行为端口提供的所有接口。   W M  
类未使用其所有反应接口的接收和触发式操作   W M  
类与它的包同名 E   M 类与包不能同名,否则将导致无法正确地生成代码。
类具有空状态图   W M  
代码生成功能不支持检测以文件为目标或源的对称关联。将不会生成关联检测。 W   M  
代码生成功能不支持使用类型包含 C++ 引用 ('&') 的事件/触发式操作参数。 E   M  
具有变长参数列表的操作不支持为具有活动图的操作生成代码。将不会生成操作!   W C  
代码生成功能忽略了 C 类之间的继承。 W   M  
代码生成作用域包含多个 SDLSystem 类。这可能会导致编译错误。   W M  
组件包含 CORBA 元素,但是配置既不是 CORBA 客户机也不是 CORBA 服务器(属性 Configuration::CORBA::CORBAEnable 设置为 No E   C  
组件文件包含传统代码生成功能不支持的片段 W   M  
组合体包含单一组件   W M  
Const 属性不能具有初始值。初始值已被忽略。 W   M  
构造函数和析构函数不能导出到 Web。将不会针对它们生成 Web 检测代码。   W C  
跨包链接需要基于组件的初始化方案 (CG::Component::
InitializationScheme
)
W   M  
当前,在 C 中只支持快速端口(事件传递)。   W M  
摇摆过渡 E   U 摇摆过渡是未连接到另一个元素的过渡。发生这种情况的原因是,在 Rational Rhapsody 中,过渡所连接的元素被删除。在这种情况下,Rational Rhapsody 不会自动删除该过渡,因此不会丢失任何有关该过渡的数据。
缺省名称   W C 模型中的某些元素使用了由产品指定的缺省名称。
由于找不到所依赖的组件的匹配配置,因此不会根据 <<Usage>> 依赖关系来生成组件之间的依赖关系 W   C  
对未解析的元素的依赖关系 E   M Rational Rhapsody 找不到所引用的元素。
对于不可嵌套的对象,应允许动态分配 E   M  
ESTL 不支持多重继承/虚拟继承 W   M  
无关系的元素   I M  
基本操作或全局函数的主体为空   W M 未定义这些操作/函数的实现。
空描述   W C  
事件属性未进行排队   E ABM  
事件标识不唯一 E   M 为了避免发生冲突,事件标识必须唯一。
类中的事件与生成的状态发生名称冲突 E   M 事件的实现名称与状态的实现名称不能相同。
在包中定义了事件,但是未在这个包的类的接口中引用此事件   W M 您在包中定义了事件,但没有任何类实际地使用了此事件。
事件与类同名 E   M  
多重性大于 1 的可执行部件   E MC  
文件包含同名的类型 W   M  
文件名必须是 F8.3 格式 E   M 如果将 CG::Package/Class 下的 Filename 属性定义为长度超过 8 个字符的文件名,并且 <lang>_CG::<Environnent>::IsFileNameShort 属性设置为 Checked,那么检查程序将报告错误。
流程图以及流程图中的块都必须正好到达一个最终活动 E   U  
流端口必须具有它的类所有者的匹配属性(按名称和类型) W   M  
通过链接相连接的流端口必须具有同一类型。并且,在原子流端口中,它们的方向应相互相反(一个为“输入”,另一个为“输出”) W   M  
对于双重接口而言,操作和属性必须具有唯一标识(标识不能为空)。Rhapsody 已经为一个或多个操作或属性生成了唯一标识。   W M  
派生到非正交状态 E   U  
已忽略模板类的友元依赖关系 W   M  
全局函数和变量在 Java 中不合法 E   M  
跨组合体边界的链接形式不正确,将不会生成代码 W   M  
聚集不合法   W AR  
图/存根接头的连接不合法 E   U  
依赖关系不合法   W AR  
COM 组件类或 COM 接口不得具有嵌套类 E   M  
COM 组件类不得具有属性 E   M  
COM 组件类不得具有操作 E   M  
COM 库不得具有嵌套包 E   M  
内部对象的初始化不合法(“配置”对话框,“初始化”选项卡) E   M  
多重性不合法   W AR  
COM 组件类的外发关系不合法 E   M  
与模板的关系不合法 E   M  
角色不合法   W AR  
类型不合法   W AR  
派生类和基类的实现状态图属性不同 E   M 基类和派生类的 CG::Class::
ImplementStatechart
属性必须相同。
传统代码生成功能不支持 ImplementActivityDiagram W   M  
实现在生成的语言中不受支持。 E   M  
隐式访问属性必须由单一活动类访问   E ABM  
对称关系中的多重性不一致:将不会连接实例 W   M  
继承在模板实例化中不合法 E   M  
初始接头未以它的状态的子状态为目标 E   U 每个具有多个子状态的“或”状态都必须具有初始接头。发生此错误的原因是,初始接头的指向目标并非该“或”状态的其中一个子状态。
隔离的状态   W U 在状态图中,存在一个未连接到任何其他状态的状态。
源于非正交状态的连接 E   U 存在源于非正交状态的连接接头。进入接头连接符的过渡段必须源于另一正交组件中的状态。
链接未将任何关联实例化。此链接被忽略。   W M  
链接基于未解析的关系。 E   M  
通过无匹配接口的端口进行的链接。此链接被忽略。   W M  
不会将链接实例化 - 在相同的两端之间存在重复的链接,并且该链接基于同一关系 W   M  
不会将链接实例化 - 跨组合体边界的链接形式不正确 W   M  
许多 SoftwareComponent 使用同一个 ARBMT 包   E ABM  
双重接口和定制接口的方法必须返回 HRESULT   W M  
实现与多重性不匹配 E   M Implementation 属性设置对于关系的多重性而言不正确。
MISRA98 概要文件存在   E MC MicroC 概要文件包含 MISRA 一致性。因此,不需要包括 MISRA98 项目设置。
缺少 Webify Toolkit 所需的运行时库。请检查当前环境的 GetConnectedRuntimeLibraries 属性值。   W M  
缺少模板实例化参数值 W   M  
缺少模板规范参数值 W   M  
在关系中错误地使用了嵌入的实现   E M 没有为关系正确地设置嵌入的 <Fixed/Scalar> 属性。
在 COM/CORBA 中,不支持对组合类型(枚举/Typedef)进行建模 W   M  
不支持从反应类进行多重继承 E   M  
存在源于同一状态的多个超时和重复触发器 E   M 每个状态都只具有单一超时或触发器。
存在多个具有同一起点和目标的过渡 - 只允许一个 E   U  
名称已被组件使用 E   M  
名称长度超过 32 个字符   W AR  
由链接连接的网络端口和流端口必须具有同一类型,并且其方向应匹配 - 输入网络端口链接到“输入”流端口,反之亦然。 E   M  
没有活动操作的返回值   E ABM  
节点没有传出过渡,创建了连接到最终活动的隐式过渡   W U  
非行为端口未连接到内部部件。假定此端口应该是行为端口。   I M  
具有显式接口的非行为端口未连接到内部部件。可能不传递消息。   W M  
不可执行的元素包含可执行的元素   W MC  
您指定端口提供或需要非接口类。请修订合同。   E M  
没有足够的值供初始化程序参数使用 W   M  
包中的事件数超出事件标识范围(在属性 <lang>::Component::
PackageEventIdRange
中定义)
E   M  
JAVA_CG::Component::InitializationScheme 设置为 ByComponent 时,无法正确地初始化多重性大于 1 的对象。请将该属性设置为 ByPackage 或者以编程方式初始化对象。 W   M  
只有 COM 库可包含 COM 元素 E   M  
只有构造型为 COM DLL、COM EXE 和 COM TLB 的组件才能包含 COM 库。 E   C  
组件作用域中只能有一个“SFunctionBlock” E   M  
只有 RIMB 和 RIMB 操作可以处于活动状态   E ABM  
具有活动图的操作包含用户提供的代码,这些代码将被忽略。 W   C  
无缺省状态的“或”状态   E U 您创建了“或”状态,但未确定缺省状态。请在状态图中使用初始接头来确定缺省状态(完整性错误)。
事件标识数超限。具有事件的包的数目超出了可以使用的事件标识数目。请修改 CG::Package::
PackageEventIdRange
属性或者减少具有事件的包的数目。
E   M  
触发式操作标识数目超限 E   M 对于一个类及其所有的基类,触发式操作的数目限制为 1,768 个。
外发接口必须是 COM 接口。 E   M  
源于 COM 接口的传出关系的构造型必须是连接点 E   M  
从 CORBAInterface 到非 CORBAInterface 的传出关系 E   M CORBAInterface 只能具有指向其他 CORBAInterface 的传出关系。
包在同一个实现文件中它的类之下进行了定义 E   C  
端口连接到多个提供了同一个接口的端点。 W   M  
端口具有空合同 - 未指定供给接口或需求接口。假定此端口用于回放事件。   I M  
端口具有未解析的合同。 E   M  
端口提供并需要相同的接口 - 请修订合同详细信息。 E   M  
具有空合同的端口由非反应类/对象拥有。此端口将不会传递消息。   W M  
只有在 C++ 和 C 中,才支持端口代码生成。这些端口将被忽略。 W   M  
基本操作、触发式操作或事件与状态同名。 E   M 您创建了与事件同名的状态。
已发布的对象的名称限长 32 个字符。 E   M  
找不到限定关系的限定符。 E   M 未定义限定关系的限定符。
具有反应超类的反应接口;无法生成代码。 E   M  
具有状态图或活动图的反应接口;无法生成代码。 E   M  
没有接收或触发式操作的反应接口。   I M  
反应模板和可复用状态图生成方案。 E   M 状态图的平面实现必须与反应模板类配合使用。
从另一个类对模板参数类型的引用。 E   M  
活动组件的作用域中对未解析元素的引用。 E   M  
对未解析的事件的引用   E M 在一个视图中存在对事件的引用,但该事件未在至少一个其他视图中出现。您与其他开发者进行协作时,可能会发生这种情况。
对未解析的关系类的引用。   E M 与“对未解析的事件的引用”相同,只是未解析的元素是关系类。
对未解析的状态图的引用   E M 与“对未解析的事件的引用”相同,只是未解析的元素是状态图。
对未解析的构造型的引用 E   M 与“对未解析的事件的引用”相同,只是未解析的元素是构造型。
对未解析的超类的引用。   E M 与“对未解析的事件的引用”相同,只是未解析的元素是超类。
对未解析的类型的引用   E M 至少一个元素定义为具有未在模型中定义的类型。
使用静态体系结构时,应该将关系实现为静态数组。 W   M 使用静态体系结构时,关系的 Implementation 属性设置为 StaticArray
与 CORBAException 的关系 E   M 不允许使用与 CORBAExceptions 的关系。
不具有多重性的关系。   W M  
无法生成源于 Java 接口的关系。 E   M  
Rhapsody 代码生成功能不支持所需端口与 CORBA 接口之间的链接。将不会生成代码。 W   M  
对于流端口,Rhapsody 不支持大于 1 的多重性。 E   M  
SoftwareComponent 中类型为 RIMB 的元素   E ABM  
缺少代码生成功能所需的 SDL 模型数据。请检查您在“导入/同步 SDL 模型”对话框中提供的 SDL 模型执行信息。   W M  
发送操作,未解析的事件或其参数。   W U  
发送操作,未解析的目标索引。 E   U  
由于参数在 CORBA 域中无法接受缺省值,因此这些缺省值在 CORBA 域中将被忽略。 W   M  
由于属性在 CORBA 域中无法接受初始值,因此这些初始值将被忽略。 W   M  
由于枚举常量在 CORBA 域中无法接受缺省值,因此这些缺省值将被忽略。 W   M  
由于不支持对嵌套在模板中的类创建动画,因此将不会生成检测代码。 W   M  
由于 CORBA 域中的属性不可标有 Static 修饰符,因此标有 Static 的属性将在代码生成期间忽略该标记。 W   M  
由于 CORBA 域中的属性不能具有引用类型,因此标有 Reference 修饰符的属性将在代码生成期间忽略该标记。 W   M  
由于 CORBA 域中的结构属性不可标有 Constant 修饰符,因此标有 Constant 的属性将在代码生成期间忽略该标记。 W   M  
由于 CORBA::Attribute::
ConstantAsReadOnly
属性设置为 False,因此标有 Constant 的属性将在代码生成期间忽略该标记。
W   M  
由于 CORBA 域中的 Typedef 不可标有 Constant 修饰符,因此标有 Constant 的属性将在代码生成期间忽略该标记。 W   M  
由于 CORBA 域中的 Typedef 不能具有引用类型,因此标有 Reference 修饰符的 Typedef 将在代码生成期间忽略该标记。 W   M  
已忽略单实例构造型:实例在另一个包中。   W M  
已忽略单实例构造型:实例多重性不为 1。   W M  
已忽略单实例构造型:匹配的实例并非由包拥有。   W M  
已忽略单实例构造型:找到多个实例。   W M  
已忽略单实例构造型:找不到匹配的实例。   W M  
已忽略单实例构造型:C_CG::Class::ObjectTypeAsSingleton 属性设置为 False   W M  
类或包之下的 SourceArtifact 在类代码生成功能中不受支持。 W   M  
状态与它自己的类、超类或相关类同名。 E   M  
具有非平面状态图的静态内存类 E   M 状态图的平面实现必须与静态体系结构配合使用。
覆盖了运算符 newdelete 的静态内存类 E   M  
无法初始化静态内存元素。 E   M  
无操作的静态反应。   W U 您为状态定义了静态反应,但还没有在“特征”窗口中为其定义操作。
无守护或触发器的静态反应。   E U  
非静态类成员/方法的 StaticImport W   M  
从非异常类继承时,将忽略构造型异常。 W   M  
规范中具有双向内联的对称关系造成不受 <language> 支持的依赖关系环;在代码生成期间,将忽略此内联。 W   M  
模板规范不在其模板中。 E   M  
未解析的模板的模板实例化。 E   M  
在创建非动画 S-Function 时,活动配置必须具有“S-FunctionConfig”构造型;对于动画 S-Function,必须将“检测方式”设置为动画。 W   M  
找不到 SDL_Suite 环境头文件。建议您返回到 SDL Suite,选中“生成 > 编译”对话框中的生成环境头文件复选框,然后重新编译。   W M  
过渡触发器不能是抽象触发器。 W   M  
活动组件将“Other”定义为构建类型。 E   C  
已忽略抽象方法的主体。 W   M  
端口的合同不是接口。请替换此合同或者将其转换为接口。 E   M  
CG::Package::EventsBaseID 属性设置的事件基本标识与生成的基本事件标识有冲突。 E   M  
参与者的名称不是合法的代码名称。 E   M  
活动组件的作用域包含非外部文件。 E   M  
过渡的边缘与引脚的方向不一致。 W   U  
过渡不能跨流程图中的块边界。 E   U  
过渡触发器不在其泳道所表示的类之下。 W   U  
类型映射到文件。此映射被忽略。 W   M  
具有 Constant 修饰符的 Typedef 基于具有 Constant 修饰符的类型。 E   M  
无法生成链接 - 多重性不匹配、使用了 * 进行指定或者使用了一组数字进行指定 W   M  
模板参数引用了未解析的类型。   E M  
未指定的关联角色 - 此关联角色未连接到“形式链接” W   M  
未指定的分类器角色 - 此对象未连接到“形式分类器” W   M  
未指定的消息 W   M  
流程图中不受支持的元素 E   U  
时间模型不受支持:“仿真”   E MC 在活动配置中,选择了时间模型“仿真”(在设置选项卡上)。此模型在 MicroC 中不受支持。
当前,不会生成对 IDE 配置的使用依赖关系。有需要时,请在配置的“特征”窗口中指定构建详细信息。 I   M  
Web 支持不适用于此类型的语言变量。将不会针对其生成 Web 检测代码。   W C  
Web 支持不适用于全局函数和全局变量。将不会针对它们生成 Web 检测代码。   W C  
Web 支持不适用于具有多个参数的操作或事件。将不会针对它们生成 Web 检测代码。   W C  
Web 支持不适用于模板和模板实例化。将不会针对它们生成 Web 检测代码。   W C  
C_CG::Class::EnableDynamicAllocation 属性设置为 FALSE,但 C_CG::Configuration
::InitializeEmbeddableObjectsByValue
设置为 TRUE
E   C  
使用 IDF 环境时,应使用 IDF 概要文件。 W   M  
嵌套状态图层次结构不正确,请尝试使用“向后合并”或“删除与状态”来修正层次结构。 E   M  
作用域中元素的语言错误。 E   M  
初始实例的语言错误。 E   M  

反馈