集成 WebSphere Business Modeler 和 Rational Asset Manager
 

2009-08-05 作者:Murray Beaton,Scott Peddle,Alex Fernandes,Shili Yang 来源:IBM

 
本文内容包括:
本文讲解如何通过配置 IBM® WebSphere® Business Modeler V6.2 使用 Rational® Asset Manager V7.1.1.1 的存储库特性。本文演示如何管理存储库,以及如何添加、浏览和使用它的内容。资产重用有助于加快新资产的开发和提高开发过程的效率。

简介

Rational Asset Manager(以下称为 Asset Manager)是一个在 Object Management Group (OMG) Reusable Asset Specification (RAS) 上构建的资产管理存储库。Asset Manager 有助于定义、创建、治理、修改和管理可重用资产。一般地,开发工具会有用于日常源代码控制的存储库,通常是 Concurrent Versions System (CVS) 和 Rational Clearcase 等源代码管理 (SCM) 系统。大型开发组织很适合使用这种存储库管理需要经常同步的细粒度的更改。

但是,当工件达到一定的成熟度之后,组织可能希望共享这些工件,让用户能够按照名称或描述搜索它们、查看当前使用它们的上下文、查看其他用户的评级和评论以及预订工件(以便在以后更改时得到通知)。这些功能只是 Rational Asset Manager 与典型的 SCM 相比提供的一部分增值功能。WebSphere Business Modeler(以下称为 Business Modeler)支持这些功能,提供与 Asset Manager 的无缝集成。本文讨论如何配置和使用这些功能。

安装业务过程管理 (BPM) 库

使用资产存储库的第一步是配置 Asset Manager 服务器。Business Modeler 要求存储 Business Modeler 资产的服务器安装 BPM 库;否则,在试图把资产添加到存储库中时会出现错误消息。

为了安装 BPM 库,启动 Web 浏览器并访问 Asset Manager 主页。作为管理员登录,然后单击 Administration 选项卡和 Libraries。在 Import Libraries 部分中,指定 <WebSphere_Business_ Modeler_Install_folder>\WBModeler62\repositoryProfile\profile_6.2.0.000.zip。

图 1. BPM 库的名称和版本
BPM 库的名称和版本

单击 OK 之后,汇总页面显示已经导入的各种类型、属性和关系。为了启用库,单击页面右上边的 Enable。在下一个页面上,单击底部的 Enable 完成此任务。

在把资产添加到存储库中之前,Business Modeler 检查是否有新构造。下面将简要概述库内容;关于这些概念的更多信息,请参见 参考资料

如何组织资产

Asset Manager 存储库在获得资产时根据类型组织资产,并结合使用其他分类结构。

资产类型

资产类型是 Asset Manager 中主要的组织级别。在存储库中添加资产时,资产类型控制用户必须在资产中包含的信息和工件;然后,使用这些信息进行治理、搜索和资产重用。BPM 库包含许多资产类型,专门捕捉整个 BPM 解决方案的各个组件。对于 Business Modeler,库主要包含 Business Modeler 概念和 Asset Manager 资产类型(例如业务项、过程和资源)之间的一对一映射。除了与 Business Modeler 相关的资产类型之外,还有为 WebSphere Integration Developer(以下称为 Integration Developer)和 WebSphere Business Monitor(以下称为 Business Monitor)定义的其他资产类型,但是本文不讨论这些类型。

关系类型

关系类型描述资产之间关系的性质。资产类型可以通过约束在资产类型之间形成某些关系。表 1 描述 BPM 库中的各种关系概念。

表 1. BPM 库中的关系概念
 
概念 关系类型 描述
Aggregation Aggregates/Is Part Of 资产包含一个或更多资产,或是一个组的一部分。
Composition Composes/Is Owned By 资产由其他资产组成,或属于其他资产。
Dependency Depends On/Is Used By 资产依赖于另一个资产,或由另一个资产使用。
Evolution Next Version/ Previous Version 资产是从另一个资产发展出来的,或是另一个资产的祖先。
Origination Originated/Is Derived From 资产创建另一个资产,或是从另一个资产创建的。

属性

属性允许资产生产者提供适合特定上下文的额外分类信息。它们可以跨多个资产类型,属性对于它们所在的资产类型可以是必需的或可选的。BPM 库定义两个属性(见表 2),在所有 BPM 资产类型中都可以设置这两个属性。

表 2. 属性
 
属性名 描述
domainDescriptor 用来捕捉 Business Modeler 特有的资产相关信息,这些信息不适合包含在 Asset Manager 元数据中。
domainVersion 用来捕捉向存储库提交此资产的 Business Modeler 的版本。

尽管 Business Modeler 使用 domainDescriptor 和 domainVersion 属性,但是这些属性不是 Business Modeler 特有的,也不属于 Business Modeler。它们属于 BPM 库,因此套件中的其他 BPM 产品(比如 Integration Developer 和 Business Monitor)可以重用它们。

在成功地导入 BPM 库之后,在 Administration > Libraries 下面出现以下文本。版本号旁边的书堆图标表示库已经启用了。

图 2. BPM 库
Administration > Libraries 中列出 BPM 库

通过配置存储库使用社区

Asset Manager 提供丰富的管理功能,有助于以各种方式组织结构和管理资产。管理功能之一是定义社区。社区是一个存储库结构,允许用户以某种方式与相关的资产组交互。社区由资产、管理员、用户、用户组和评论过程组成。要想在存储库中添加资产,必须至少有一个社区。为了定义社区,返回到 Asset Manager Web 客户机中的 Administration 选项卡并单击 New Community。(如果不打算使用管理员账号生成和使用资产,就要添加计划使用的账号)。给这个账号分配 Asset Producer 和 Asset Consumer 角色。关于管理 Asset Manager 社区和用户账号的更多信息,请参见 参考资料

连接存储库

成功地配置 Asset Manager 服务器之后,可以从 Asset Repositories 视图连接它。如果现在在四面板模式的 Business Modeling 透视图中,Asset Repositories 视图在右下角。如果不是这样,那么单击工具栏上的面板布局图标,切换到四面板布局的 Business Modeler。另外,如果您不喜欢四面板布局,也可以通过选择 Window > Show View > Other > Asset Management Views > Asset Repositories 显示这个视图。

在 Asset Repositories 视图中,可以从弹出菜单中选择 New Repository Connection 或单击 New Connection 图标。在向导中,指定 URL、用户名、密码和可选的特定名。然后,选择 Validate connection on finishSave password(见图 3)。如果不确定为 URL 指定什么值,那么在 Asset Manager 主页中选择 Help > Extensions 并使用 Repository Location 值。单击 Finish

图 3. 添加新的资产存储库连接
添加新的资产存储库连接

在存储库中添加资产

资产的生命周期始于在存储库中添加一个业务工件(例如过程)。一般来说,如果业务工件已经准备好供除作者之外的其他人使用,它就可能成为可重用的资产。例如,过程可能已经准备好由更广泛的团队审查或传递给 IT 开发人员。

本节使用 Business Modeler 提供的 QuickstartFinance 示例。按照以下步骤导入示例文件:

  1. 打开 Business Modeler。如果没有看到 Project Tree 视图,那么单击工具栏上的面板布局图标,切换到四面板布局。
  2. 在 Project Tree 视图中,右键单击并选择 Import
  3. 选择 WebSphere Business Modeler project (.mar, .zip),单击 Next
  4. 单击 Browse。Browse for Folder 窗口打开。
  5. 找到 samples 文件夹并单击 OK。samples 文件夹位于 Business Modeler 安装文件夹下面。
  6. 选择 QuickstartFinance.mar 文件导入 QuickstartFinance 项目。
  7. 单击 Finish

在 Project Tree 视图中可以看到 QuickstartFinance 项目。它包含 ABC Bank 的贷款申请过程。Loan Application (As Is) 任务流批准或拒绝贷款申请。ABC Bank 的管理层希望允许有条件批准,从而吸引更多客户。

ABC Bank 的业务分析师编写了 Loan Application (To Be) 过程以实现业务目标。在实现之前,Loan Application (To Be) 过程要由 ABC Bank 的一位经理审查和批准。为了开始审查过程,要把 Loan Application (To Be) 添加到资产存储库中。

  • 在 Project Tree 视图中,展开 QuickstartFinance > Processes 并双击 Loan Application (To Be) 打开过程编辑器。在 Loan Application (To Be) 的 Attributes 视图中,单击 General 选项卡。在 Description 框中添加以下文本:
    The process task flow is:
    1. A loan application arrives for approval and is reviewed by a loan officer. 
    2. 50% of the time, the application is approved.
    3. 35% of the time, the application is approved with special conditions applied. 
    4. 15% of the time, the application is denied.
     
  • 保存 Loan Application (To Be) 过程。
  • 右键单击 Loan Application (To Be) 并选择 Add to Asset Repository(见图 4)。

    图 4. 把 Loan Application (To Be) 添加到存储库中
    右键单击 Loan Application (To Be) 并选择 Add to Asset Repository

    如果 Repository Connection 框中指定了有效的连接,就会填充资产树。在向导第一次启动时,Repository Connection 框是空的。

  • 单击 Repository Connection 框的下拉箭头并选择前一节中创建的连接。向导会记住这一选择。正如 安装 BPM 库 中提到的,所选的存储库不一定满足与 Business Modeler 集成的需求。在这种情况下,错误消息会指出纠正措施(见图 5)。

    图 5. 指出纠正措施的错误消息
    如果选择的存储库不满足需求,错误消息会指出纠正措施
  • 在 Confirm Assets 页面上,可以选择要添加到存储库中的资产并定制资产属性,比如名称和描述。在资产树中,展开 QuickstartFinance > Processes 并取消选择 Loan Application (As Is)
  • 选择 Loan Application (To Be)。资产属性编辑器中会填充 Loan Application (To Be) 过程中的数据。

    图 6. 选择要添加到存储库中的资产
    在 Confirm Assets 页面上,选择要添加到存储库中的资产并定制资产属性

    参考下表填写 Confirm Assets 页面上的设置:

    Name (必需)资产的名称。
    Version (必需)表示资产版本的生成的整数。
    Community (必需)资产所属的存储库社区。社区可以管理角色、用户和审查过程。提示:要想为所选的所有资产设置社区,应该修改顶级项目资产的社区。
    Short Description (必需)对资产的单行描述。
    Description (可选)对资产的详细描述。这个文本框可以接受链接、图片、表和文本格式。
    Related Assets 与所选资产相关的资产列表。这个列表来自模型中的语义关系,因此不能编辑。
    Tags (可选)定制的标签,表示资产的主要用途或特性。使用逗号分隔各个标签,两单词的标签应该放在引号(" ")中。这个框中可能已经包含一些预定义的 BPM 标签,比如 businessService、businessProcess 或 businessData。
  • 把名称改为 Loan Application。限定词 (To Be) 是不必要的,因为没有在存储库中添加 Loan Application (As Is) 过程。注意,树中的标签没有变,因为树链接到业务模型工件。还可以把短描述改为更有意义的文本,比如 “Loan Application with conditional approval branch”。
  • 单击 Related Assets 选项卡。Loan Application 过程资产依赖于几个业务项和资源,而且它属于 QuickstartFinance 项目。这些关系来自业务模型,并且由选择树实施它们。
  • 在树中展开 Loans 业务项目录并取消选择 Application。一条警告指出,其他资产需要 Application,如果继续操作,依赖资产将被清除。

    图 7. 指出资产依赖关系的警告消息
    指出其他资产依赖于 Application 的警告消息
  • 单击 Yes。注意,Loan Application 已经取消选择了。选择 Loan Application。同样,会实施资产关系,但是这一次会要求您选择依赖资产。

    图 8. 选择依赖资产
    选择依赖资产

    单击 Yes。选择 Application。单击 Next
  • Select Categories 页面上,把一个类别(由资产管理员定义)应用于添加的所有资产。对资产成功地分类有助于用户通过搜索找到资产。可以使用描述资产上下文所需的任意数量的类别。例如,图 9 对 QuickstartFinance 资产应用 Personal Loan 类别。单击 Next

    图 9. 对资产应用类别
    对资产应用类别
     
  • Solution 页面上,把 QuickstartFinance 添加到一个解决方案资产中。通过把资产组合成解决方案,可以把不相关的项目资产组合在一起。例如,可能有两个 Business Modeler 项目,它们都属于一个更大的业务活动。为了添加新的解决方案,单击 New。会看到在 Confirm Assets 页面上见过的属性。对于名称,输入 1Q Projects。对于短描述,输入 Projects targeted for first quarter delivery。然后单击 Finish
  • Available assets 树列出可发布的所有项目资产。双击 QuickstartFinance 资产,把它转移到 Solution assets 树中。也可以使用导航按钮在解决方案中添加或删除资产。Solution Name 下拉列表列出存储库中的所有解决方案。通过选择更多解决方案并使用导航按钮,可以把项目资产添加到多个解决方案中。单击 Next
    图 10. 把资产分配给解决方案
    把资产分配给解决方案
     
  • WebSphere Integration Developer 项目详细信息页面上,可以把与 Integration Developer 兼容的实现细节添加到 QuickstartFinance 项目资产中。单击 Next。在 WebSphere Business Monitor 项目详细信息页面上,可以把与 WebSphere Business Monitor 开发工具集兼容的监视模型添加到 QuickstartFinance 项目资产中。单击 NextSummary 页面列出将添加的资产。单击 Finish。在 Add Asset to Repository Results 窗口中单击 OK

QuickstartFinance 项目和它的资产现在已经存储在存储库中了。存储库中定义的治理策略会生效,从而审查 Loan Application 过程。ABC 的经理认为 Outcome of review? 通路的输出分支太严格了。为了改变这种情况,要添加一些特殊条款,让出现 Approve with Terms 分支的概率达到 40%。步骤如下:

  • 打开 Loan Application (To Be) 过程并选择 Outcome of review? 通路。
  • 切换到 Attributes 视图并选择 Output branches 选项卡。
  • Approve with Terms 概率改为 40%,把 Reject 概率改为 10%。另外,在 Attributes – General 选项卡上更新过程描述以匹配设置的新值。图 11 显示这些修改的结果。

    图 11. 编辑通路的输出分支
    编辑通路的输出分支
     
  • 保存过程。

现在,按以下步骤更新过程资产:

  • 右键单击 QuickstartFinance 项目并选择 Add to Asset Repository
  • 展开 Loans 业务项目录。不选择 ApplicationE-Mail NotificationFunds 业务项,因为并没有修改这些工件。Loan Application (To Be) 过程依赖于这些业务项。如果不选择业务项,Loan Application 等依赖资产就会建立对以前添加的 ApplicationE-Mail NotificationFunds 资产的依赖关系。
  • 选择 Application,单击 Version 框的下拉箭头,确认版本是默认值 1.0。可以通过设置新版本来更新资产。在这个示例中,没有修改 Application。在树中取消选择 Application
  • 展开 Processes 过程目录,取消选择 Loan Application (As Is)
  • 单击 Loan Application (To Be)。版本自动地改为 1.1。Version 下拉列表中不再出现 Version 1.0,因为自从上一次添加以来资产内容已经改变了。
  • 把名称改为 Loan Application,单击 Next,然后按前面的步骤对资产进行分类。
  • 单击 Next,然后单击 Solution Name [Version] 框的下拉箭头并选择 1Q Projects [1.0]。Solution assets 树中出现以前添加的 QuickstartFinance 项目资产。
  • 在 Available assets 列表中,选择 QuickstartFinance [1.1] 并单击 Add。这时会询问是否希望替换解决方案中现有的 QuickstartFinance 资产。单击 Yes

    图 12. 替换现有的 QuickstartFinance 资产
    替换现有的 QuickstartFinance 资产

    解决方案只能包含项目资产的一个版本。从这个方面说,解决方案相当于多个项目的配置。
  • 单击 Finish。这会添加新的 QuickstartFinance 和 Loan Application 资产并更新 1Q Projects 解决方案资产。

搜索和浏览存储库

可以以两种方式搜索和浏览 Asset Manager 存储库中的资产:

  • 使用 Asset Manager 工具集提供的 Eclipse 客户机(比如 Business Modeler)。
  • 使用 Web 浏览器。

这两种客户机都提供丰富的功能,支持浏览、搜索和其他任务。但是,Web 客户机提供比 Eclipse 客户机更多的管理和治理功能。

以前关于库安装和存储库配置的文章已经讨论过一些额外功能。本文主要关注 Eclipse 客户机。

在四面板布局的 Business Modeling 透视图中,可以在右下角找到 Asset Repositories 视图。在 Asset Repositories 视图中,单击 Refresh Repository Connection 刷新连接。然后,展开存储库连接并展开 Business Process ManagementBusiness Process Management 文件夹提供使用 BPM 产品套件添加的所有资产的结构树。如果在环境中两个产品在安装时共享一个包组,或者在当前产品中使用另一个产品中的资产,那么可能在 Business Process Management 文件夹中看到多个产品。BPM 产品中总是会出现 Solutions 文件夹。

展开 WebSphere Business Modeler 文件夹、QuickstartFinance [1.1] 和它下面的一些文件夹(图 13)。另外,展开 Solutions 文件夹。如果 Business Modeler 或 Solutions 文件夹中没有内容,那么单击 Refresh Repository Connection 再次刷新存储库连接。

图 13. Asset Repositories 视图中的 Business Process Management 资产
Asset Repositories 视图中的 Business Process Management 资产

注意,项目、目录和建模工件的布局与 Business Modeling project explorer 中的对象布局相似。如果想收集关于某一资产的更多信息,有许多方法。例如,把鼠标停留在资产上会显示高层详细信息(图 14)。

图 14. 把鼠标停留在 Loan Application [1.1] 上时显示的详细信息
把鼠标停留在 Loan Application [1.1] 上时显示的详细信息

在某些情况下,可能希望更仔细地检查资产,例如查看它的关系或内容。为此,从资产的弹出菜单中选择 Browse AssetOpen Asset in Web Browser。这两种方法提供相同级别的信息,但是布局和表示方式略有不同。通过使用 Browse Asset 操作或双击资产浏览 Loan Application [1.1] 资产。

图 15. 浏览 Loan Application 资产的详细信息
浏览 Loan Application 资产的详细信息

General Details 选项卡显示与图 14 相同的一些信息,还显示长描述、版本、修改历史和其他数据。Categories 选项卡显示以前添加资产时提供的类别信息 (ABC Bank > Loans > Personal)。Related Assets 选项卡显示此资产依赖的资产、使用此资产的地方、前一个版本等等。通过双击关系,可以快速浏览到与此资产相关的资产。关于其他选项卡的更多信息,请参见 参考资料

还可以以另一种结构化的方式查看存储库。在连接的弹出上下文菜单中选择 Visual Browse(见图 16)。

图 16. 启动 Visual Browse
右键单击存储库连接并启动 Visual Browse

打开的查看器有三个选项卡:OverviewCommunitiesVisual Browse。在默认情况下,选择的选项卡是 Visual BrowseOverview 选项卡提供存储库连接的详细信息和一些预定义的查询。Communities 选项卡提供存储库中可用的社区的汇总信息,还提供社区的超链接。

Visual Browse 选项卡包含三个部分:浏览器的左边用于搜索和筛选;右边上部显示搜索结果;右边下部显示一个图。

使用 Visual Browse 的起点是搜索面板。可以使用关键字、筛选器、标签、资产类型和类别搜索各种资产子集。搜索到的资产显示在搜索结果视图中。要想把资产添加到图中,只需在搜索结果视图中选择它。

下面是与图中的资产进行交互的一些提示:

  • 不同类型的资产以不同的颜色显示。
  • 当选择一个资产时,与它相关的资产显示在搜索结果区域中,按关系类型分组。可以使用 Back to Search 超链接返回到搜索结果。
  • 把鼠标停留在资产上,可以显示关于此资产的更多信息。
  • 图中的相关资产是连接的。把鼠标停留在连接上,可以显示关系的性质。
  • 要想从图中删除项目,只需在搜索结果视图中清除它们。要想清除整个图,可以使用 erase 按钮。

可以使用 Visual Browse 构造影响分析所需的图。例如,图 17 显示 1Q Project 解决方案中的 Loan Application [1.1] 过程使用的所有业务项。

按照以下步骤构造图:

  • 按解决方案资产类型进行筛选。
  • 在搜索结果中选择 1Q Project 资产,把它添加到图中。单击图中的资产并选择要显示的相关资产,从而构造图的其余部分。
图 17. 在 Visual Browse 中浏览相关资产
浏览与一个资产相关的各种资产

Asset Manager 还提供单独的搜索和筛选功能。从存储库连接的弹出菜单中选择 Search Repository(图 16)。显示另外两个视图:一个用来指定搜索条件和筛选器,另一个显示结果。可以使用包含文本、关键字、筛选器、标签、资产类型和类别的各种条件进行搜索。

在存储库中添加资产时,BPM 产品使用预定义的标签,这些标签支持跨资产类型和社区的正交搜索。如果在 Asset Search 视图中选择 Tag Cloud 选项卡,会看到两个可用标签:businessDatabusinessProcess。如果选择 businessProcessSearch Results 视图会显示 Loan Application 过程的 1.0 和 1.1 版本,见图 18。如果已经从 Integration Developer 添加了 Business Process Execution Language (BPEL) 类型的资产,也会在搜索结果中看到它们。

图 18. 基于 businessProcess 标签的搜索结果
基于 businessProcess 标签的搜索结果

从存储库导入资产

资产存储库的好处之一是能够重用资产,从而加快新资产的开发。重用可以是建立对现有资产的依赖而不进行修改,也可以是使用现有资产作为起点,根据新的需求调整它们。但是,后一种重用形式并不是典型的资产演化方式。在根据新需求调整现有资产时,实际上要复制资产,然后使用这个拷贝作为起点。在不同的环境中快速地重用资产有助于形成高效的开发文化。

在一个空的工作空间中,导入本文提供的 MortgageFinanceExample.mar 文件。注意,Mortgage Application 过程没有相关联的组织内容(见 Attributes 视图中的 Organizations 选项卡),这个工作空间中也没有组织单位。ABC Bank 决定由负责处理个人贷款的组织单位处理抵押贷款申请。

按照以下步骤使用存储库中当前可用的组织单位:

  • 通过浏览 Asset Repositories 视图或使用 Asset Search 视图找到 Midtown Branch 资产。
  • 从弹出菜单中选择 Import Asset。也可以选择 Import Asset With > WebSphere Business Modeler。如果选择 Import Asset,那么在提示选择产品时选择 WebSphere Business Modeler 并单击 Next
  • Dependencies 页面上,选择希望导入什么依赖(直接和间接)。导入向导自动地选择工作空间中不存在的资产依赖,或与相应存储库内容不一致的资产依赖。因为要把 Midtown Branch 资产导入一个还没有组织单位工件的项目,所以所有依赖都是必要的。图 19 显示依赖导入页面。接受默认选择并单击 Next

    图 19. Import Dependencies 页面
    Import Dependencies 页面
     
  • 选择要导入资产的目标项目,见图 20。潜在项目的列表只限于支持导入的资产类型的项目。

    图 20. 选择目标项目
    选择目标项目

    选择 MortgageFinanceExample 项目并单击 Next
    向导的最后一个页面提供要导入的资产的汇总信息(见图 21)。

    图 21. 要导入的资产的汇总信息
    要导入的资产的汇总信息

单击 Finish 开始导入过程。在工作空间中存在冲突时,用户可以通过选择 Conflict 窗口中的选项选择适当的措施。在这个场景中,没有冲突,导入过程会顺利完成。

在导入完成之后,可以更新 Mortgage Application 过程,在 Mortgage Application 的 Attributes 视图的 Organizations 选项卡中使用新的组织单位。如果以后把 Mortgage Application 过程添加到资产存储库中,在 Mortgage Application 和 Midtown Branch 之间会存在一个 Depends On 关系。因为在导入之后 Midtown Branch 和它的依赖没有修改过,所以不必重新添加到存储库中。因此,存储库显示这两个过程(Loan Application 和 Mortgage Application)依赖于组织信息的相同版本。

与其他 BPM 产品协作和共享资产

正如 在存储库中添加资产 中提到的,可以为 Integration Developer 和 Business Monitor 等其他 BPM 产品生成工件。以后的一篇文章将讨论如何使用这种功能在产品之间传递工件。还讨论如何跨产品同步存储库更改、执行影响分析和配置可跟踪性。

结束语

本文讨论了如何为 Business Modeler 配置和管理 Asset Manager 存储库。解释了资产的组织方式,演示了如何在存储库中浏览、搜索和导入资产。资产重用可以提高开发组织的效率,Asset Manager 与其他 IBM BPM 产品的集成有助于利用解决方案的其他资产。

下载

描述 名字 大小 下载方法
MortgageFinanceExample 项目
MortgageFinanceExample.mar
59KB

参考资料


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