集成 IBM Rational Portfolio Manager 和 IBM Rational ClearQuest: 集成配置,第 1 部分
 

2009-09-18 作者:Debra L.K. Johnson, 来源:IBM

 
本文内容包括:
IBM® Rational® Portfolio Manager 和 IBM® Rational® ClearQuest®之间的集成利用 Rational Portfolio Manager 中的项目计划和跟踪连接了 ClearQuest 详细的开发活动。这是研究这个集成的四篇文章的第 1 篇。文章重点强调了 Rational Portfolio Manager 中 ClearQuest 概要文件 部分的 Task Mapping 的配置。

集成

IBM® Rational® Portfolio Manager 与 IBM® Rational® ClearQuest®之间集成的目的是利用 Rational Portfolio Manager 中的项目计划和跟踪连接 ClearQuest 详细的开发活动,从而有助于您达到以下的目标:

  • 导入并将 ClearQuest 记录同步至 Rational Portfolio Manager 作为任务概要、任务,以及范围元素
  • 提供给项目经理更大的可视性,并有助于对更加有效项目管理和资源性能规划的深刻见解。这可以通过自动操作状态或者来自 ClearQuest 的状态信息获取来实现,还能够在 Rational Portfolio Manager 中更新相应的任务实际情况。
  • 通过更详细的项目跟踪采取采用更好的治理实践,而不需要对现有的过程和实践进行重大的变更。
  • 运用适当的工具使合适的角色充分发挥作用(例如:项目管理者利用 Rational Portfolio Manager,而开发人员利用 ClearQuest)
  • 自动更新 Rational Portfolio Manager 范围元素,包括创建、修改,以及从链接的 ClearQuest 记录中删除

这是探讨这个集成四篇文章中的第 1 篇。这篇文章的重点是 Rational Portfolio Manager 中 ClearQuest 概要文件 的 Task Mapping 部分的配置问题。第2 篇文章将重点强调 ClearQuest 概要文件 的 Scope Mapping 组件的安装,同时为 Project, Task,以及 Scope Element定制布局。第 3 篇文章将涉及在 Rational Portfolio Manager 和 ClearQuest 工具中使用这个集成。最后一篇文章将讨论如何安装和配置所需的中间软件来支持这个集成。

配置 Rational Portfolio Manager 的目的是在 Rational Portfolio Manager 元素和 ClearQuest 记录类型之间创建一个映射。这些映射定义了这两个工具之间将要共享的信息。绝大多数的共享是从 ClearQuest 到 Rational Portfolio Manager,尽管在 ClearQuest 中可以看到一些来自 Rational Portfolio Manager 的信息。在 Rational Portfolio Manager Description 视图中有四个区域受到这些映射的影响:

  • 信息组件
  • 属性组件
  • ClearQuest Integration 组件
  • RTF 组件

在 ClearQuest 中有一个叫作 RPM Integrations 的标签。这个标签将包括来自 Rational Portfolio Manager 的信息。对于先前版本的 Rational Portfolio Manager,有另一个标签叫作RPM Schedule。如果您已经安装并使用了 Version 7.0.x.x 的集成,并且迁移到 V7.1.x,这标签将可以看到。但是在您开始之前,您需要了解这个集成的先决条件是什么。

先决条件

下面的列表是建立和使用这个集成的主要先决条件:

  • 要和 ClearQuest 一起使用这个集成,您的 Rational Portfolio Manager 版本必须是 7.1 或者更新的版本。 7.1版本大概是在2007年6月29日可用的。
  • IBM®WebSphere®(Versions 5.x, 6.x,或者更新版本) 或者 Apache Tomcat (Versions 5.0, 5.5,或者更新版本) 必须安装作为 Application Server。
  • Rational Portfolio Manager 中间件必须成功地部署。
  • 必须安装 ClearQuest。
    • ClearQuest 的支持版本是:
      • 2003.06.15
      • 2003.06.16
      • 7.0.0
      • 7.0.1 或者更新版本
    • ClearQuest 下面所列的 ClearQuest 组件都必须安装:
      • ClearQuest 数据库服务器
      • ClearQuest 客户机安装在 Windows 上®
      • ClearQuest Web 客户机
      • ClearQuest Designer
  • ClearQuest 支持数据库类型(用于与集成一起使用)是:
    • IBM®DB2®
    • Oracle
  • Rational Portfolio Manager-ClearQuest 包必须应用到本地的 ClearQuest 副本中(如果使用的是 IBM®Rational®ClearQuest MultiSite®)
  • 您已经对 ClearQuest 进行了以下的变更(这将在这个系列以后的文章中详细讨论)
    • 您已经创建了一个RPMCQOwner记录类型
    • 您已经专门为这个集成创建了一个 ClearQuest 用户
  • 数据必须存在与 ClearQuest 中

集成概述

Rational Portfolio Manager 与 ClearQuest 的集成延伸到 V7.1 版本。了解从 7.0.2.2 到 7.0.5.5 (将来会涉及到 7.0.x) 版本中这个集成所包含的内容,将为应用在V7.1中的变更起铺垫作用。在这个集成的第一个发布中:

  • 这个集成在以下的这些层次中可以从 Rational Portfolio Manager 中启动:
    • Proposal(提议)
    • Project(项目)
    • Summary Task(概要任务)
  • 任何有状态的 ClearQuest 记录都有一个 owner 字段,无论是什么类型的记录,都可以导入 Rational Portfolio Manager。
  • 所有导入的记录类型都将变为 Rational Portfolio Manager 中的 Task (这意味着这些都不能作为一个范围元素类型导入)。
  • 同步只能从 Rational Portfolio Manager 中触发,您可以随时触发它(也就是说,只能手动同步)。
  • 对于 ClearCase MultiSite 环境下的同步化,Rational Portfolio Manager 中的 API 将定位主要的记录(基于对所有复制访问的基础上,它已经通过 System Administrator 预先安装好了),并且更新了正确的记录。
  • 为防止冲突,您应该确定优先权。
  • 有两个集成情景是基于 Rational Portfolio Manager 对象(Proposal, Project, 或者 Summary Tasks)是如何安装的基础上的:
    • Duration-based with %Duration Complete
    • Effort-based with Actuals
  • 状态变更是由 ClearQuest 管理的
  • 当一个 ClearQuest 记录在 Rational Portfolio Manager 中具体化,这个所有者将由 ClearQuest 中 Owner字段提供的信息来决定:
    • 如果在 ClearQuest 中有一个所有者,那么这个将在 Rational Portfolio Manager 中变为 Task Responsible
    • 如果这个 Owner 字段是空白的,那么这个用户操作的这个导入将会变为 Rational Portfolio Manager (直到这个时间作为一个新资源分配到任务职责中)中的 Task Responsible

引入到 Rational Portfolio Manager V7.1 中的变更包括:

  • 所有状态化的 ClearQuest 记录类型都能够在 Rational Portfolio Manager 中作为以下这些对象进行导入
    • Tasks(任务)
    • Summary Tasks(概要任务)
    • Scope Elements(范围元素)
  • Rational Portfolio Manager 中的任务能够基于定义在 Rational Portfolio Manager 中的映射导出到Rational ClearQuest 中。
    • 如何导出是建立在与这个项目或者建议相关联的档案中的 Task Mappings 基础上的
  • 您可以在进度表中从 Rational Portfolio Manager 启动同步

确认 Rational Portfolio Manager-ClearQuest 页面

开始使用这个集成之前,确认正确的包已经应用到数据库是很好的。

利用设计优先权进行确认

如果您已经拥有了设计优先权,那么您就可以通过以下这些步骤在 ClearQuest Designer 中很容易地来核查:

  1. 开始选择 ClearQuest Designer Start > Program Files > IBM Rational > IBM Rational ClearQuest > ClearQuest Designer
  2. 用有设计优先权的 Username Password 来登陆。
  3. 选择模式要这个对话框。
  4. 点击 View > Schema Summary
  5. 选择您想要评审的计划名称。可以这样操作,利用定位在 Schema Name 中的滚动条来定位这个计划的名称。
  6. 展开这个文件夹并选择这个版本数字。一旦您做出这个选择,右边就会更新来反映被选择的计划,如图 1 所示。

    图 1. Rational ClearQuest Designer Schema Summary
    schema summary 窗口
     
  7. 利用 Associated Packages 窗口中的滚动条,定位 RPMCQIntegration 包(请看图 1)。
  8. 确认这个包版本是 1.3 或者更新的版本。
  9. 一旦您确认了这个计划中包的版本,就可以点击 OK 退出 Schema Summary 对话框。
  10. 点击 File > Exit 来关闭这个 ClearQuest Designer。

不用设计优先权来进行确认

如果您没有设计优先权,就不能查看安装在这个计划中的包,但是您仍然可以审核已经安装在 Rational ClearQuest 数据库中的正确集成包。可以按照以下步骤进行操作:

  1. 开始选择 Start ClearQuestStart > Program Files > IBM Rational > IBM Rational ClearQuest > ClearQuest
  2. 利用拥有数据访问优先权的 Username 和 Password 来登陆。
  3. 为在这个集成中激活的记录类型选择并运行一个查询(比如All Defects)。
  4. 从这个查询的结果中选择一个记录。
    1. 此时应该有一个可利用的页签叫作RPM Integration。点击这个页签。
    2. 如果这个 ClearQuest 包版本是 V1.3,,这个标签的形式就会分成三个部分。底部的区域(包含父记录 id字段) 是在这个版本重增加的,如图 2 所示。

      图 2. ClearQuest 客户端
      ClearQuest 客户端
       
  5. 一旦您确认了应用在 ClearQuest 数据库中的正确包,您就可以通过点击,File > Exit 退出这个应用软件。

确认将可以确保您能够创建档案,这些概要文件可以使用 Rational Portfolio Manager V7.1 中能够发现的所有新特性。

创建 ClearQuest-to-Rational Portfolio Manager 映射档案

既然您已经成功确认了应用在 ClearQuest 计划和数据库中的正确 RPMCQIntegration 包,您可以开始进行 Rational Portfolio Manager 配置工作。为了使用这个集成,您必须在 Rational Portfolio Manager 中按照以下步骤进行:

  • 创建 ClearQuest Integration 档案
  • 为包含 ClearQuest 集成信息的各种元素创建布局
  • 将档案映射到 Rational Portfolio Manager Projects

创建集成档案

按照这些步骤进行:

  1. 利用拥有应用管理优先权的 Username 和 Password 登陆,然后点击 Sign in,如图 3所示。

    图 3. Rational Portfolio Manager Login 界面
    Rational Portfolio Manager Login 界面
     
  2. 当这个应用软件完成装载以后,就要在这个导航树中确定 Application Administration 的位置。
    注意:这个树可能没有完全展开。如果没有,就要使用树顶端的伸缩条来展开这个树,如图 4 所示。一旦显现就可以点击 Application Administration。

    图 4. Rational Portfolio Manager 导航树
    Rational Portfolio Manager 导航树

    如果您不想使用这个伸缩条,您还可以点击 Application Administration 图标(参见图 4)。这个图标在这个导航树下面可见部分。要确定所要选择的图标,可以浏览所有图标和将显示的名称。点击 Application Administration(这个图标通常在最右端,如图 5 所示)图标。

    图 5. 显示名字的 Application Administration 图标
    显示名字的 Application Administration 图标
     
  3. 在 Application Administration 工作区的 General 页签(左边第一个),键入 ClearQuest Web 服务的 URL 地址。这将保存在这个页签底部叫作 ClearQuest Integration 的部分。
    您可能需要使用定位在右边的滚动条来显示这个区域。这个区域不能直接被编辑(即使看起来是可以的)。您必须选择这个区域右边的省略号(…),如图 6 所示。

    图 6. General 页签显示了 ClearQuest Integration 区域
     General 页签显示了 ClearQuest Integration 区域
     
  4. 一旦您点击了这个省略号,ClearQuest Integration 对话框就会显示,键入 ClearQuest Web 服务的 URL 地址到 WebService Address 区域,然后点击 OK,如图 7所示。

    图7. ClearQuest Integration URL 对话框
    ClearQuest Integration URL 对话框
     
  5. 利用滚动的箭头(定位在这个应用软件的右上方) 来定位 ClearQuest Integration 页签,如图 8所示。这个页签定位在页签列表的最右边。

    图 8. Application Administration 显示了 ClearQuest Integration 页签
    Application Administration 显示了 ClearQuest Integration 页签
     
  6. 点击这个页签可以将它提到最显著的位置(请看图 9)。

    图 9. Application Administration ClearQuest Integration 页签
     Application Administration ClearQuest Integration 页签

    有两个子页签在 ClearQuest Integration 中,Mapping 概要文件Integration Settings。这篇文章将首先在 Mapping 概要文件页签中见到。有两个主要部分在这个 Mapping 概要文件 子页签中。一个是 Task Mappings,另一个是 Scope Element Mappings。如果您想可以随意使用灵活性,您必须为同一个 概要文件 填充这两个部分。
  7. 为了达到这个目的,您必须首先创建一个 Category,它能够包含多个档案。将 Category 图标拖拽到左边的版面,如图 10 所示。

    图 10. 为 ClearQuest Integration 创建一个新的 Category
    为 ClearQuest Integration 创建一个新的 Category
     
  8. 一旦您创建了这个目录,键入一个名称到 Name 字段,然后按住 Enter
  9. 接下来您必须做的事情是创建一个档案。可以通过一下操作来实现,将概要文件图标拖拽到您刚才创建的目录上,如图 11 所示。这个工具将帮助您确定您是否获得了正确的位置。核对您的位置:
    1. 如果您看到 Drop 图标...
      drop icon
      ...您已经恰当地排列在一个目录之下。如果存在的不止一个,并确保您在放置它之前它是在这个正确目录之下的。您现在可以释放左边的鼠标按钮了。
    2. 如果您看到Do not Drop图标...
      do not drop icon
      ...说明您还没有正确的位置。移动鼠标,它会在您获得这个拖拽图标后才会移动这个档案。一旦您有了合适的位置,就可以释放鼠标的左按钮。
  10. 这个应用软件为 概要文件 创建了一个位置标志符,如图 11 所示。

    图 11. 在 ClearQuest Integration,Mapping 概要文件 页签上拖拽并释放档案
    在 ClearQuest Integration,Mapping 概要文件 页签上拖拽并释放档案
     
  11. 为这个 概要文件 键入一个名称到 Name 字段。您将拥有能够准确反映这个被创建档案类型的名称。在图 12 所示的例子中,给定的名称为 CQTasks 和 SE
  12. 点击 Enter 要点击 Publish 邻接的复选框。
  13. 一旦您创建了这个 概要文件,Add Remove 按钮在这个主要窗口中就会被激活(参见图 12)。

    图 12. 此时 Task Mappings 和 Scope Element Mappings 部分已经被激活
    此时 Task Mappings 和 Scope Element Mappings 部分已经被激活

这样允许您(就像管理员一样)添加或者移动定义在 ClearQuest 的记录类型。在这个屏幕之后,Rational Portfolio Manager 将会动态查询这个 ClearQuest 计划来确定什么样地记录类型是可利用的。下面是一些记录类型的例子:

  • Defects
  • Change Requests
  • Enhancement Requests
  • Test Cases
  • Test Plans

根据 ClearQuest Schema 的设计方式您可以看到许多其它的记录类型。

添加一个新的记录类型

启用Task Mappings部分,通过以下这些步骤添加一个新的记录类型。

  1. 在 Task Mappings 区域点击Add
  2. 利用这个下拉框选择想要的记录类型能够,如图 13所示。

    图13. 插入一个新的记录类型到档案中
    插入一个新的记录类型到档案中
     
  3. 一旦您选择了这个记录类型(在这个例子中,将会使用Defect),就可以到接下来的区域,使用下拉框来选择 Task Name在 Rational Portfolio Manager 中所要显示的项,如图 14 所示。在这个例子中,选择了Headline的任务名称。

    图 14. 选择 ClearQuest 区域,Task Name 在 Rational Portfolio Manager 中使用到它
    image of task name drop-down menu
     
  4. 切换到下一个区域右边,叫作 Resource Name,利用下拉框选择选择资源在 Rational Portfolio Manager 中将要被分配的方式(参见图 15)。
    有两个选项:Owner SubmitterOwner 映射到资源中,这些资源是通过像记录所有者一样对进行评估的过程而分配的(这完全取决于您的变更控制过程) 。Submitter 映射到在 ClearQuest 中创建记录的资源中。在这个例子中,使用了 Owner 字段。

    图 15. 映射显示了这个 Resource Name 区域下拉菜单
    image of resource name drop-down menu

    在接下来的区域中您将完成的是% Complete。这个区域中您将根据 ClearQuest 中任何特定时间这个记录的状态来定义完成的百分率。这个状态在 ClearQuest 中被创建和控制。这个值将在duration-based情景被选择时使用。
  5. 要访问这个对话框,点击% Complete字段。此时会显示一个省略号;点击它将会显示RPM % Complete对话框,如图 16所示。 (默认情况下,所有的 States 都会显示 0% 完成率。)

    图 16. 映射显示了 % Complete 的默认值
    image of RPM % Complete dialog

    这些百分数必须被确定并且在执行之前得到发起者和用户的赞同。这个例子使用了显示在图 17中的值。

    图 17. 填充 "% Complete" 表格
    填充 % Complete 表格
     
  6. 这些值都是范例,不必作为推荐使用在您的执行中。一旦这些值已经添加到每个 ClearQuest 状态,点击 OK
    接下来的字段用来将一些 ClearQuest 字段映射到 Rational Portfolio Manager 字段中。这些自定义字段就是短文本字段,并且最大只能显示400个字节的文本。这些字段能够很好地显示信息,像计划的迭代或者身份。这些字段也不推荐将字段显示为多行(像 Notes Log, Description,或者 CQTMTNotesLogs,来为一些例子命名)。
  7. 点击 Custom Fields 标签,它可以显示一个省略号。点击这个省略号,RPM Custom 字段对话框将会显示,如图 18所示。

    图18. Custom Fields 对话框
    Custom Fields 对话框

    显示在 RPM Custom 字段对话框中的列表是 ClearQuest 计划中所有可利用字段的列表,无论它们是什么类型(例如,短字符串整数型,等等)。
    注意:这些字段同时还在 Rational Portfolio Manager 中被创建为自定义字段。您将在Custom Field页签(定位在与 ClearQuest Integration 页签同等的级别上)> Fields 子表中看到它们(图 19)。
  8. Application Adminstration 对话框中,Custom Fields 页签,在 Fields 子页签中,展开WBS/Scope 并扩展 ClearQuest_Integration_WBS_Task 目录,如图 19所示。

    图 19: Custom Fields 页签显示了 ClearQuest 字段定义
    Custom Fields 页签显示了 ClearQuest 字段定义
     
  9. 默认情况下,在 RPM Custom 字段的对话框并没有选择这些字段。利用这个滚动条定位到对话框的右端来审核可利用选项的整个列表。当您做出选择的时候,选择那些定义为简短字符串或者数字的字段。
  10. 选择 ClearQuest 字段,这些字段的内容是您想要在 Rational Portfolio Manager Description 视图中显示的,服务于您将这个记录从 ClearQuest 中导出时创建的 Task,然后点击 OK,如图 20所示。

    图 20: 填充 RPM Custom Fields 对话框
    填充 RPM Custom Fields 对话框

    下一个需要填充的入口是RTF fields。 RTF 代表 Rich Text Format。每个任务类型有10个 RTF (比如 Task 或者 Summary Task)。这个字段能够包含高达 32K 字节的文本,利用这些字段来显示多行文本字段,比如Status Update或者Description
  11. 点击 RTF 字段将会显示一个省略号。点击这个省略号,将会显示 RPM RTF 字段对话框,如图 21 所示。

    图 21:RPM RTF Fields 对话框为 Tasks 和 Summary Tasks 列出了 RTF 字段
    image of dialog box

管理员在定义在 Rational Portfolio Manager 中的 RTF Field Label 栏目中对这个字段进行了描述。它们定位在 Datafields > RTF 页签,如图 22所示。页签定位在与 ClearQuest Integrations Tab 相同的水平线上(与 Custom Fields 和 ClearQuest Integrations 页签之间的关系相似)。

图 22: 页签列表显示了 Datafields
页签列表显示了 Datafields

如果这个列表不能满足您的需求(RTF Field Label),您就需要在创建档案之前定义这些 RTF 字段。

  1. 要完成这些字段的映射,点击您想要安装的 RTF Field 索引的。这样可以激活一个下拉菜单。
  2. 利用定位在这个列表右边的滚动条来确定您要使用的 ClearQuest 字段,如图 23所示。
  3. 点击这个字段名称。这稍后将被填充在 ClearQuest Fields 栏目。

    图 23: 填充 RTF Field Index 的 ClearQuest 字段
    填充 RTF Field Index 的 ClearQuest 字段
     
  4. 您将利用这种方式填充所有的 RTF 字段。如果您想用这种性能为 Tasks 和 Summary 所查看,您将在这两个索引类型中键入信息,如图 24所示。

    图 24: 填充 RTF Field 对话框将 RTF 字段映射到 ClearQuest 区域
    填充 RTF Field 对话框将 RTF 字段映射到 ClearQuest 区域
     
  5. 一旦您定义了所有的映射,点击 OK 来关闭这个对话框。
    这样就为一个记录类型完成了 Task Mapping,如图 25所示。

    图25:为缺陷记录类型完成映射
    为缺陷记录类型完成映射

如果您想定义更多的记录类型,需要为您想要定义的每个记录类型重复这些指令(从 Create Integration 概要文件部分的步骤 7开始)。

利用档案一起操作

在您设计这些档案时必须记住的有两件事。

  1. 一旦您出版了一个档案并使用了它,您就不能对这个档案进行任何修改(您也不能点击各种字段来查看您已经操作过的事件)。如果您浏览这个字段,您就能看到一个不完全的列表,如图 26 所示。

    图 26:停留并显示 RTF Fields
    停留并显示 RTF Fields
    注意:您可以展开在这个视图中展开这个栏目的宽度(参见图 25),它允许您了解更多的内容。 您可以利用这个水平滚动条来查看每个字段,如图 27所示。本文建议您在您发布之前以几种方式对这个档案进行存档,比如屏幕截图,并对它进行使用。

    图 27: 当栏目宽度已经展开就可以定位滚动条
    image of expanded column
     
  2. 利用 Rational Portfolio Manager V7.0.x 和 V7.1.x,您可以将一个 概要文件 分配到任何一个项目中。意思是说,如果您想从 ClearQuest 中联合多个记录类型映射到一个单一的项目,那么这个档案必须包含每个记录类型的任务映射。
    当您完成了所有的 Task Mappings,您的档案看起来可能与图 28 所示的例子很相似。

    图 28. 概要文件包含多个任务映射
    概要文件包含多个任务映射

这样就完成了 Task Mappings 部分。您的所有工作都要保存,即使您停止了这个应用软件。
重要提示:没有人,包括您,在这个档案发布之前能够访问它,并将它分配到项目中去。您只能在映射发布并分配到提议或者项目,之前对其进行修改和变更,以及添加新的 Task Mappings。

胜利

您已经成功地配置了这个 概要文件 的 Rational Portfolio Manager - ClearQuest Integration Task Mapping 部分。这将允许您把在 概要文件 中的 ClearQuest 记录类型导入 Rational Portfolio Manager 中的任务或者简略任务中。它还允许您从 Rational Portfolio Manager 导出,从而在中定义 ClearQuest 记录类型。

在这个例子中,您为缺陷记录类型创建了一个 Task Mapping。通过使用这些指令,您可以创建多个任务映射来满足您的要求。正如图 28所示,您没有局限于档案的一个记录类型。这样您就拥有了多种性能,可以根据您的过程需求为任何一个项目附上不同的 ClearQuest 记录类型。尽管您没有局限于一个 概要文件,但是您要切忌与档案部分的 Working 中的信息。

由于这个 概要文件 还没有完成,这个系列中接下来的一篇文章将讲述如何完成这个档案(包括 Scope Mapping 和 Resource Mapping 部分),同时还会讲述如何发布。这个系列的第三部分将讨论如何为一个项目,任务或者范围元素定制一个 Description View 布局。

这些定制将使您(将项目经理一样)能够查看通过档案才能看到的 ClearQuest 数据,因此您可以很轻松地访问您的开发数据。

参考资料

学习 获得产品和技术
  • 访问 developerWorks 的 Rational Portfolio Manager 产品页面,获得项目管理者的内容和资源。
  • ClearQuest 用户和管理员可以在 developerWorks Rational 专区 的 ClearQuest 部分找到更多的资源,包括 ClearQuest hook、Eclipse 插件、产品文档、文章和白皮书。
  • 下载 IBM 产品评估版本,并熟练掌握应用软件开发工具和来自 DB2®、Lotus®、Rational®、Tivoli®,以及 WebSphere® 的中间件产品。
讨论

火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织