IBM Rational Rhapsody V7.5.2 版本的新功能特性
 

2010-09-19 作者:Paul Urban 来源:IBM

 
内容

Rational Rhapsody V7.5.2 概述

IBM® Rational® Rhapsody® V7.5.2 版本扩展了 IBM Rational Rhapsody 在系统工程、嵌入式软件开发以及测试方面的功能,以协助软件公司进行创新并提高生产效率。这个版本包含了以下列出的新功能,及此前其他版本所提供的功能:

  • 可视化开发环境以开发、分析和模拟目标为多核处理器和 Android 平台的程序
  • 支持对 SysML 参数性限制因素的解决以得到更多智能的设计决定及贸易决定
  • C# 对在混合语言环境下开发的支持
  • 实时系统(DDS)程序的结构数据分布服务,以管理相互联系构件的复杂性

这些新的特性,加上其他改进处,帮助系统工程师和实时或者嵌入式软件开发员增加生产效率,并向市场交付创新性的产品。接下来的部分描述了 Rational Rhapsody V7.5.2 版本的新功能。

嵌入式软件开发的扩展支持

处理多核的挑战

许多公司都将多核处理器看做实现重大价值和性能提升的一次机会。它使得产品开发过程变得更加复杂,其中需要考虑更多的设计选项,例如内核的数量、交流以及负载分布。指定错误的结构可以极大地降低甚至消除多核带来的利益。

Rational Rhapsody V7.5.2 通过提供以下的功能可以帮助开发多核的产品:

  • 系统和软件模型描述了开发过程早期阶段的设计选项
  • 多内核建模概述以降低开发时间(参见图 1)
  • 理解核心分配的矩阵
  • 分配给特定核心代码的生成以将手动的编码任务实现自动化
  • 通过在执行期间创建序列表来查看多核执行,强调内核分配以更好地理解内核的使用(参见图 2)
  • 模拟时间模式以帮助支持多核程序的时间计算
  • 第三方主机模拟器对于早期设计确认生成代码的模拟

查看 Multicore Development 页面以得到关于 IBM Rational 对目标多核处理器的更多信息。

图 1. 使用图、表与工具来将任务分配给一系列的硬件核心
分配给核心

图 2. 运行期间激活的序列图强调显示核心的分配
序列图

Android 开发环境

Rational Rhapsody V7.5.2 版本提供了 Android 框架 API 的一个可视化展示,开发员可以从 Rational Rhapsody 中引用它们。引用是在 Java™ 代码中生成,以将手动的编码任务实现自动化。通过使用 IBM® Rational® Rhapsody® Developer for Java™ 已经提供数年之久的完全行为性代码生成功能,Android 开发员可以快速创建程序的行为,它会引用 Android 并部署到它们的 Android 目标(参见图 3)。另外,Rational Rhapsody 可以读取 AndroidManifest.xml 文件以查看活动、服务、广播接受者、主活动和内容,从而更好地理解程序。IBM® Rational® Rhapsody® Architect for Software 除可以生成结构性的代码之外,还提供了对 Android 开发的支持。

图 3. Android 程序的可视化调试行为
状态图激活

Java 开发方面的改进

Rational Rhapsody V7.5.2 提供了 Java™ 程序在开发、测试和再使用方面的改进。其中添加了以下的特性:

  • 改进的逆向工程及环形路线操作更好地处理以下的代码声明:
    • 对外部性代码导入声明
    • 导入固定类的声明
    • 实施或者扩展外部性代码
    • 实施或者扩展固定类或者界面
  • 导入声明生成的优化以提高代码质量
  • 通过以初始值创建属性来利用代码的信息,逆向工程保持了联系的初始化
  • 支持属性控制和更新的窗格

Java 的模型驱动测试

通过提供 C++ 与 C 语言当前可得的以下功能,Rational Rhapsody TestConductor V7.5.2 改进了其对 Rational Rhapsody 中 Java 程序建模测试的支持。C++ 与 C 语言当前可得的以下功能:

  • 基于 UML 测试概述的测试结构创建的自动化以将手动的任务自动化
  • 定义带有序列图、状态图或者代码的测试用例的选项以查看复杂的测试
  • 测试结果与模型覆盖范围的报告以监视质量状态

C# 开发

系统出现在本质、混合嵌入式的、实时的及更传统技术的平台上变得更加混合。许多的系统可能包含有与 C# 或者 Java 构件相交流的 C 或者 C++ 语言构件,它们都是由相同的工程团队所开发的。现在您可以进行逆向工程操作,并为 IBM Rational Rhapsody Developer for C++、C、Java、IBM Rational Rhapsody Developer 和 IBM Rational Rhapsody Architect for Software 提供另一种编程语言选项。

如果您想要更好地理解结构,那么通过将代码从 Microsoft® Visual Studio 中导出,您可以查看 Rational Rhapsody 内以 C# 语言写成的已存在代码。您还可以从 UML 模型中生成结构性 C# 代码,这使得您可以更快地生成程序。

使用 Visual Studio 进行开发

Visual Studio 中更新的 Rational Rhapsody 工具栏使得处理 Visual Studio 与 Rational Rhapsody 中的多个项目与构件变得更加容易。当模型或者代码更改,而没有激活动态同步化时,新 Synchronization 按钮有助于维持同步化。另外,您现在可以将 Visual Studio 方案中的所有项目导出到 Rational Rhapsody 中,这将会在 Rational Rhapsody 中创建与方案中每一个 Microsoft Visual Studio 项目保持同步化的构件与包。通过支持同步化,而不需要切换 Visual Studio 中的活性项目或者 Rational Rhapsody 中的活性配置,可以改善模型和代码信息的环形路线。更改可以在不需要添加步骤的情况下保持同步化。

设计和部署 DDS 程序

实时处理数据是更灵敏相互联系系统的关键功能。实时系统(DDS)介质的数据分布服务,为构建分布式实时系统提供了支持,以在全局性数据空间中的多个构件之间共享信息。信息的交换是使用数据中心的结构完成的,该结构有松散耦合的构件,因此支持在分隔系统之间交换数据。Rational Rhapsody Developer for C++ for Microsoft® Windows® 提供了一种基于统一建模语言(UML)概述的概述,使用户可以为介质标准设计发布者和订阅者构件,以描述结构并生成使用 DDS 的代码与 IDL,并将数据中心发布-订阅程序的开发过程自动化。Eclipse 平台插件并没有提供对 DDS 的支持。

界面可视化

开发员通常需要集成程序内的已存在代码(例如,Android SDK)。通常来说,外部的代码基底可以变得很大,在许多种情况下,它们在代码中只是在界面上相关。Rational Rhapsody V7.5.2 简化了显示外部 C++、C、Java 与 C# 代码的过程,它们在模型中是作为引用使用的。导入只引入了公共和受保护的信息,而操作实体优化了模型的规模,以更快地载入、保存及切换。查看图 4。

图 4. 选择“Interface visualization”来只导入公共和受保护的信息
可视化代码界面

代码中心模型的测试支持

这个发布的版本包含了对 Rational Rhapsody TestConductor Add On 所做的改进,以支持外部性或者已存在代码的模型驱动测试,从而使得开发团队可以享受模型驱动测试所带来的自动化测试功能。对一个标准库应用模型驱动的测试现在是可能的了,该标准库包含了一个库规格(头文件)、 Rational Rhapsody 没有生成的已存在源代码、 Rational Rhapsody 已经逆转的已存在源代码。这使得开发团队可以将图形测试结构的创建工作自动化,查看驱动和监视执行结果的测试用例,提供 Rational Rhapsody 内需求的追踪性,并管理结果和覆盖报告的测试

复杂类型的激活

许多的设计包含了复杂的用户定义的类型。为了让 Rational Rhapsody 激活特性按照您想要的方式运行,您需要 serialize unserialize 操作。您要为顺序表的激活期间的使用,为事例特性窗口,为结构和枚举添加激活以创建系列化和非系列化的操作,以减少激活这些复杂类型所需要的主要步骤。

基于角色的代码生成改进

Rhapsody Developer Rules Composer Add On 提供了使用规则来定制 Rational Rhapsody 代码生成的功能。元模型与连接器会添加至 Mathworks Simulink、Microsoft® Excel® 以及 Rational Developer Rules Composer Add On V7.5.2 中的 AUTOSAR,这样您就可以使用该项技术来执行转化了。另外,现在可以编辑规则集,这样它们就不是可读了,从而保护它们的内容。

自动化与微处理器的开发

MicroC 框架的改进 MISRA-C 支持

许多的程序,特别是那些涉及到安全性的程序,需要满足 MISRA-C 规则的代码。Rhapsody Developer for C V7.5.2 版本的 MicroC 框架包含了事件机理的校正,通过使事件类型可协调、分配内存、使用单一的事件汇,改进与 MISRA-C 编码标准的一致性。另外,反应性的状态表与任务机制得到了更改,以使用代码来改进性能和 MISRA-C 的一致性。MicroC 框架现在包含了对事件和端口的更少宏,以进一步地改进 MISRA-C 一致性。

程序性能监视

您一定要理解程序的运行时性能,以确保它满足了设计的需求。在执行期间,在每一个可执行元素的实际执行过程中都会收集数据,根据模型中所定义的安排规则来确认实际的执行时间。信息会使用目标检测发送至 Rational Rhapsody,同时发送的还有显示 doExecute 操作开始和结束时间的执行日志文件。结果日志文件可以用于进一步分析以决定是否存在日程安排上的问题存在。另外,执行结果还可以反映在一个日程安排表中,在接下来的章节中将会对这个表做进一步的描述。

阶段性元素的日程安排表

Rational Rhapsody Developer for C V7.5.2 (参见 参考资料)在构件特性窗口中添加了一个新的日程安排任务,它支持范围内阶段性元素的日程安排,例如激活和估计持续之间的时间,查看图 5。对话框实际上显示了元素的时期,这些元素提供了潜在性冲突可能发生的地方的反馈,以在设计阶段的早期时间内就将其校正过来。

图 5. 显示并指定阶段性元素与实际执行时间的安排
安排阶段元素

Micro C 检查

IBM® Rational® Rhapsody® Developer for C 引入了一系列新的检查机制,以帮助用户在使用 MicroC 框架时识别设计上的错误。检查过程中将会对其做上标记,包含可执行元素的非执行性元素,MISRA 98 概述的存在性,会在规划安排及非支持模拟时间模型中发生冲突。

系统工程与结构性框架功能

SysML 参数性的限制估计

对象管理分组(OMG)系统建模语言(SysML)定义了参数性的图表,以描述数学限制因素,Rational Rhapsody V7.5.2 提供了一种参数性限制评价器,它使用 Maxima 或者 Mathworks Matlab Symbolic Math Toolbox,来解决代数性和时间独立的普通差异性方程,确认数学限制因素,并做线性优化以最大化或者最小化选中的值。可以生成一个表,它显示了值随着时间及其他属性的值变化而变化的情况。系统工程师可以使用结果来决定最优的系统结构和规格,或者执行研究以作出更优化的设计决定。

对系统工程师的模型驱动的测试支持

在开发过程的早期阶段找到设计上的错误,可以显著地降低产品开发的总体成本。使用 SysML 或者 IBM® Rational® Harmony™ for Systems Engineering 过程的系统工程师现在可以从 Rational Rhapsody TestConductor Add On 所提供的测试自动化功能中受益。现在可以为 SysML 块和部件创建一个测试结构,以使得运行测试变得更加容易。然后就可以使用序列图、流程图、状态图或者基于代码的测试来测试规格。已存在的序列图可以作为测试用例再使用。例如,结构性设计阶段或者协调功能性分析阶段中的序列图,可以用于测试用例。就算您没有使用 Rational Harmony,序列图还是可以作为测试用例再使用。现在您可以指定测试场景中的预状况,以帮助您确定在需要一项服务之前指定合适的设计情况(参见图 6)。Rational Rhapsody TestConductor Add On 提供了 SysML 模型覆盖范围上的报告,来帮助您理解设计确认中的什么地方存在缺陷。Rational Rhapsody Automatic Test Generation Add On 可以用于为完整的用例覆盖范围计算丢失的场景。

图 6. 在序列图中可以指定预状况以帮助您确认适当的设计行为
显示预状况的序列图

对 UPDM 的更新

Rational Rhapsody DoDAF、MODAF 与 UPDM Add On 提供的更新,可以更好地与 UPDM 1.1 概述( DoDAF 和 MODAF 统一概述) 中定义的术语与更新保持一致,并改进了对 DoDAF 1.5 的支持。对术语做了一些主要的变动。例如,OrganizationType (一种类型的机构)与 ActualPost (端口的一个实例)分别对 Organization 和 PostRole 做了一些变动。允许使用“更改至”操作以在 DoDAF 和 MODAF 之间切换,并添加以下的 DODAF 元素类型,对 DoDAF 1.5 的支持做了一些改进:OperationalNode、 Systems 与 SystemsNode,如果需要进一步的弄清的话,可以将其与 MODAF 资源一起使用。

对 DoDAF 2.0 的支持

The UPDM profile provided with the Rational Rhapsody DoDAF、MODAF 与 UPDM Add On 所提供的 UPDM 概述会得到更新,以提供对 DoDAF 2.0 的支持,因此使得用户可以开发目标 DoDAF 2.0。基于与 UPDM 相同的元模型,提供了两种概述,它包含了所有的 DoDAF 2.0 视图。一个基于 UML (UPDM_DODAF20_L0),一个基于 SysML (UPDM_DODAF20_L1)。概述会应用 DoDAF 2.0 视图名与一个新的菜单结构。

Ada 开发的改进

改进的 Ada 逆向工程

Rational Rhapsody V7.5.2 改进了存储在单独文件夹中逆向工程已存在的 Ada 代码,这样您就可以利用建模环境中的这些代码了。在逆向工程期间,在 IBM® Rational® Rhapsody® Developer for Ada 中会创建单独的包,它代表了代码所位于的每一个文件夹。当稍后从模型中生成代码时,文件夹结构会得到重建,以反映已存在的结构。

Multicast 端口与 Ada

现在您可以使用 Rational Rhapsody Developer for Ada 来建模并生成对 Multicast 端口的代码。端口可以向一些其他的端口发送事件或者信息,这些端口通过链接联系起来(参见图 7)。

图 7. 对连接到多个端口的端口所生成的 Ada 代码
 Multicast 端口的图

Ada 代码排序

大多数的 Ada 开发员都会以一种代码中心的方式直接地处理代码,这种处理方式中代码更新与模型会保持同步化。为了适应代码中心的开发,Rational Rhapsody Developer for Ada 改进了环线功能,以遵循代码中的排序。这使得开发员可以以一种更加灵活的方式使模型与代码保持同步化,同时适应 Ada 严格的排序需求。

Rational Apex 支持

Rhapsody Developer for Ada 现在提供了与 IBM® Rational Apex® 集成化环境的集成,使得 Ada 程序的开发以 Linux® 平台上的 Apex 为目标。

可用性与文献

对于每一个产品版本来说,Rational Rhapsody 可用性是一个十分受关注的领域。在 Rational Rhapsody V7.5.2 中,添加了一些改进之处以帮助您提升总体的性能和用户经验。

图形化编辑器改进

Rational Rhapsody V7.5.2 包含了图形化编辑器的许多改进项,以帮助自动化的画图任务,并以几种形式使管理图表变得更加容易:

  • 作为树形结构组织的可视化生成,可以生成更加清晰简洁的图表 (参见图 8)
图 8. 将生成作为树形结构显示出来
显示数形视图的图表
  • 通过 UML 命名来使类图可用
  • 使用箭头键(Ctrl + 箭头键可以执行移动)来移动图
  • 鸟眼窗口会动态地刷新,以与图表保持同步化
  • 节省时间因为在您将一个元素拖动到图表上之后关系会自动完成
  • 当您将固定的元素拖动到图表上时保留元素的拥有权
  • 对包含或者扩展一个用例图,使用其他的画图工具栏操作
  • 使用图表项右边的下拉菜单来打开图表(图 9)
  • 拖动图表项来控制它们的顺序
  • 使用 Ctrl 与 + 键来放大,Ctrl 与 – 键来缩小(全屏幕模式下这将十分有用)
  • 双击图表项以关闭或者输入全屏幕模式(参见图 9)
图 9. 从新控件的项与视图表中关闭图表
图表项上的控件

User interface improvements

接下来对总体用户界面所做的改进,使得用户可以更方便且更精确地改进总体工作流程:

  • 工具提示中显示了描述与属性:General::Graphics::ToolTipFormat
  • 使用拖拉操作创建对描述中模型元素超链接的功能
  • 从菜单中设置模板的新选项,使得设置模板变得更加容易(图 10)
图 10. 从菜单中设置模板
模板的列表
  • 右击工具栏可以得到新的菜单,以管理工具栏的可视性(图 11)
图 11. 从菜单中管理工具栏的可视性
管理工具栏的可视性
  • 添加至拥有新术语模板的新属性,会应用到表格视图,以为表格和矩阵指定默认的范围与布局,这样创建带有特定布局的新表格就变容易了
  • 切换矩阵的行与列的操作可以帮助您快速地更改矩阵视图
  • “记住”选中的最后项或者属性的特性窗口,帮助您在工作时维持一定的背景
  • 只当需要显示信息时,总体性能才会被动态载入的组合框改进
  • Add to Model operations 的默认设置被更改为“As Reference”以反映最一般的使用

新的学习教程

您可以从该版本中得到新的学习教程:

  • “构建 C++ 的基本模型”,向您显示了怎样使用 UML 来构建工具高级系统的一个简单模型
  • “Rational Rhapsody 中的基本系统工程设计”,描述了怎样使用 SysML 来设计一个户外温泉温度控制器

另外,对于 Rational Rhapsody TestConductor Add On for C 及 Java 测试有新的学习教程,您还可以从文献中找到一个新的 Rational Rhapsody Automatic Test Generation 指南。对最新指南及 Rational Rhapsody 信息的链接,可以在 Rational Rhapsody Wiki 页面上找到。

Rational Rhapsody Test Conductor Add On 中的新内容

除了以上提到过的对 SysML、Rational Harmony、Java 与创建已存在代码方面的支持改进之外,对于 Rational Rhapsody TestConductor Add On 还有其他方面的改进。

Rhapsody/Eclipse 中集成的 New Execution UI

随着另一项窗口与 Rational Rhapsody 对于独立的客户端与 Eclipse 平台插件进行集成,Rational Rhapsody TestConductor Add On 中的测试执行窗口得到了改进,使得查看模型与测试执行变得更加容易(参见图 12)。另外,它提供了操作以重新执行测试用例,取消测试执行,调试测试用例,并在测试运行时自动展开窗口中的测试用例信息。

图 12. Rational TestConductor 在 Rational Rhapsody 中进行了集成
 Rhapsody 中的测试窗口

测试用例的自动化创建

一个新的 Create Test Case 向导会与 Rational Rhapsody TestConductor Add On 一起提供,以在一个已存在操作、需求或者序列图的基础上自动化测试用例的创建操作。您可以创建一个基于序列图、代码、流程图或者状态图的测试用例,它会自动映射到测试结构的实例上。这有助于创建测试用例的自动化操作。

改进的序列图测试用例

序列图测试用例显示了,测试之下的系统可以与其他的实例相交流。通过对新的自动生成的系列化声明提供支持,并提供指定测试操作的功能,可以改进序列图测试用例(参见图 13)。您可以使用测试操作,来为私人信息定义复杂的测试数据,帮助您测试复杂数据的传递,执行复杂的检查功能,以帮助您确认输出值,并在嵌入的函数中执行复杂的检查功能,帮助您确认它们都得到了适当的操作。

图 13. 测试操作可以帮助您定义复杂的输入并确认复杂的输出
序列图与测试操作

调试测试用例

当一个测试用例失败时,您可以使用 Rational Rhapsody TestConductor Add On 的新调试选项,来使用活化菜单栏处理测试用例,以帮助您识别什么地方出现了问题。您可以使用 RTC_BREAK 状态性声明来在序列图上设置中断点 (参见图 14)。

图 14. 调试模式可以帮助您找到测试用例中存在的问题
调试模式切换

Rational Quality Manager Custom 用户界面

与 IBM® Rational® Quality Manager 的集成,被 Rational Quality 中的界面改进了,这个界面改进了执行测试用例的性能。它提供了一个所谓的“Rhapsody TestConductor”的新适配器类型,以为 Rational Quality Manager 指定测试的类型,一个交互性测试用例选择窗口,测试执行设置的按钮与列表框,使得指定测试选项变得更加容易,而保持 Rational Rhapsody 为开发状态的选项,可以改进运行多个测用例时的性能(图 15)。

图 15. 与 Rational Quality Manager 相集成的更新帮助您更快地运行测试
TestConductor 信息

Rational Rhapsody Gateway 中的新内容

Rational Rhapsody Gateway 作为 Rational Tools 和 Utilities Add On 的一部分也包含了进去。它提供了 Rational DOORS 所需要的双向同步化,并与其他的需求管理和获取工具集成到了一起。

需求管理视图

Rational Rhapsody Gateway 现在包含了一个操作板视图,管理员可以在这个视图中快速检查不同项目阶段的当前状态,例如追踪性成果、需求错误以及全局性质量工具(图 16)。

图 16. 管理操作板中的项目状态快速检查
视图项目状态

Rational DOORS 导入与导出方面的改进

现在可以更加容易地使来自 Rational Rhapsody Gateway 的Rational DOORS 软件相交流。您可以在导入与导出操作期间,在 Rational Rhapsody Gateway 中创建不同的服务器概述,这样处理不同的 Rational DOORS 版本与服务器变得更加容易。另外,对 Rational DOORS 操作的导出现在包含了以下的操作:

  • 显示 Project View
  • 在导出新文件时创建一个 DOORS 文件夹或者项目
  • 从导出结果中删除掉头号码
  • 创建一个显示导出属性的视图

与 Rational DOORS 的双向同步化

Rational Rhapsody 与 Rational DOORS 之间数据的双向同步化得到了改进,以更好地同步化数据。一个新的、统一的进展状态窗口显示了私人的与全体操作的当前进展。Rational Rhapsody Gateway 现在可以处理导出到 Rational DOORS 的 UML 模型的镜像所定义的链接同步化。操作会使用 Synchronization 窗口中“ 从其 DOORS 镜像中更新模型 ”来激活。

另外,当使用 <<fromDOORS>> 模板来创建与 Rational DOORS 文件相联系的 Rational Rhapsody 包 时,在 Rational DOORS 中创建高层次的需求是可能的。当您选中“ 从 Rhapsody 中更新高层次的需求”时,可以执行该操作(图 17)。

图 17. 更新数据同步化选项控制的逆转
Synchronization 窗口

有一些性能与使用方面的改进。对于新特性的完整列表,您可以查看 Rational Rhapsody Gateway 发布文本的 Help 部分。

其他的改进之处

XMI 更新

IBM 与 Sodius,一种 IBM 业务合伙者,会处理 Model Interchange Working Group (MIWG)以改进工具之间模型信息的交换。Rational Rhapsody Tools 与 Utilities Add On V7.5.2,提供了对 XMI 的导入与导出操作,从而改进与其他工具之间信息的交换以更好地满足 MIWG 目标。XMI 导入与导出得到改进,以支持 UML 2.2 XMI 文件以及活动图的新元素,以支持更多构造的交换。

Windows 7 支持

Rational Rhapsody 现在支持 Microsoft® Windows® 7,因此 Windows 7 向用户提供了其他的环境,在这种环境中用户可以使用 Rational Rhapsody。Windows 7 上的安装会将用户数据与程序文件隔离到不同的位置处,以满足 Window 7 的安装需求。

总结

通过可视化结构与行为,支持早期需求确认,以及嵌入式系统的自动化开发,IBM Rational Rhapsody V7.5.2 向系统工程师与嵌入软件开发员,提供了一些新的功能来帮助交付高质量复杂的系统和产品。这个版本为目标多核、 C#、DDS 与 Android 及参数化图分析,提供了一个可视化的开发环境。这可以帮助系统工程师去决定最优的系统结构与规格。

您可以在 Rational Rhapsody 信息中心 中找到关于新特性更多具体的信息。

参考资料

学习

获得产品和技术

讨论



基于模型的整车电子电气架构设计
嵌入式设备上的 Linux 系统开发
Linux 的并发可管理工作队列
ARM嵌入式系统的问题总结分析
嵌入式系统设计与实例开发
WinCE6.0的EBOOT概要
更多...   


UML +RoseRealtime+嵌入式
C++嵌入式系统开发
嵌入式白盒测试
手机软件测试
嵌入式软件测试
嵌入式操作系统VxWorks


中国航空 嵌入式C高质量编程
使用EA和UML进行嵌入式系统分析设计
基于SysML和EA的嵌入式系统建模
上海汽车 嵌入式软件架构设计
北京 嵌入式C高质量编程
北京 高质高效嵌入式开发
Nagra linux内核与设备驱动原理
更多...   
 
 
 
 
 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号