工具向导:在 Rational Rose 中对 J2EE 应用程序的设计建模
此工具向导描述如何使用 Rational Rose 对 J2EE 应用程序的设计建模。
工具:Rational Rose
关系
相关元素
主要描述

用途

您还将在 J2EE 框架中设计 J2EE 组件,而在 Rose 中将这些 J2EE 组件表示成类和类协作。 

通常,J2EE 应用程序使用关系数据库的服务。您为该数据库设计数据模型,而在 Rose 中使用 Rose Data Modeler 表示这个模型。 

要在 Rose 中对 J2EE 应用程序建模,请执行以下步骤:

有关 J2EE 的更多信息,请参阅概念:Java 2 Platform Enterprise Edition(J2EE)概述。 

关于使用 J2EE 平台的基于组件的开发的概述,请参阅概念:开发组件解决方案

另请参阅:

为 J2EE 项目设置 Rational Rose

设置 Rational Rose,如工具向导:为项目设置 Rational Rose 中所述。

此外,您将需要启用 Rose Java 加载件和配置特定于项目的设置。

有关配置 Rose Java 的详细信息,请参阅 Rational Rose 联机帮助中的 “帮助手册”图标 Rose Java > 如何 > 设置项目属性

组织设计模型

在设计模型中创建包和层

工具向导:使用 Rational Rose 管理设计模型描述如何从随 Rose 提供的 RUP 模型模板开始,在工作产品:设计模型中创建包和层。此模板提供了设计模型的框架,包括一些占位符,这些占位符代表应在设计活动(任务:用例设计任务:类设计和任务:子系统实时设计)期间创建的各类包、子系统和图。   

另请参阅:

请注意,工作产品:设计模型中的包结构不必与工作产品:实施模型中的包结构匹配。在正向设计 Java 类时,实施模型中的包结构确定生成的 Java 类的包结构。

“帮助手册”图标  有关包的更多信息,请参阅 Rational Rose 联机帮助中的主题。

添加 Java 语言包

您必须为 Java 和 J2EE 添加 Java 语言包,以提供称为“系统层”的 J2EE 平台服务。当您在模型中创建自己的类时要用到这些包;例如,如果类定义返回 Java 类型 String 的操作,则包含类 String 的 Java 语言包 java.lang 必须存在于模型中。

有关详细信息,请参阅 Rational Rose 联机帮助主题:

  • “帮助手册”图标 Rose Java > 概念 > 使用 Java 框架

  • “帮助手册”图标  Rose Java > 如何 > 将 Java 类库装入到模型中

添加模式包

模式包包含应用程序中数据库表的设计。有关更多信息,请参阅 工具向导:使用 Rational Rose Data Modeler 设计数据库并对数据库建模

对 Java Bean 和 Java 类建模

该部分不涵盖如何对 EJB 建模(请参阅对 EJB 建模)或如何对表示类(如 HTML 和 JSP 页面)建模(请参阅对表示层建模)。

它提供关于如何与任何 Java 应用程序一样对其余 Java bean 和 Java 类(如实用工具类)建模的信息。有关详细信息,请参阅:

对 EJB 建模

有关 EJB 的更多信息,请参阅指南:Enterprise JavaBean(EJB)

以下是在 Rose 中对 EJB 建模的执行步骤摘要:

为 EJB 创建设计子系统

通常,EJB 被分组在设计子系统中。 

设计子系统用于封装“包”内部的行为,该包提供明确且正式的接口,并且按惯例不暴露任何内部内容。 

有关如何创建设计子系统的详细信息,请参阅工具向导:使用 Rational Rose 管理子系统

确定 EJB 类型和它的持久性机制

在 Rose 中创建 EJB 之前,必须确定 EJB 的类型,即实体 bean、会话 bean 还是消息驱动的 bean。对于实体 bean,必须在选择容器管理的持久性还是选择 bean 管理的持久性之间作出决定。对于会话 bean,必须选择此 bean 是有状态的还是无状态的。

请参阅指南:Enterprise JavaBean(EJB)

使用 Rose Java 创建 EJB 类

Rose Java 提供一组对话用于在 Rose 中创建和维护 EJB 类。

“帮助手册”图标  有关更多信息,请参阅 Rational Rose 联机帮助主题 Rose Java > 如何 > 使用 EJB 和 Servlet。 

您使用 Rose Java:

  • 从最初起创建新的 EJB

  • 将模型中的现有类转换成 EJB - Rose Java 将现有类转换成 EJB 远程接口,并为主接口和 bean 类创建新的类 

  • 向 EJB 添加 finder 方法

  • 使用 bean 实施类中定义的任何生命周期或 finder 方法更新主接口

  • 更新 EJB 的类属性(如主接口的名称)、持久性属性(诸如是 bean 管理的还是容器管理的)和部署描述符属性(如容器管理的字段或环境条目)。

使用 Rose Java 创建的实体 bean 或会话 bean 包含下列类:

  • 主接口类

  • 远程接口类

  • bean 类

  • 定义一般 EJB 部署描述符 ejb-jar.xml 且作为 EJB bean 类的属性进行存储的属性

  • EJB 规范(如回调方法)所需的操作和属性将已经创建在主接口、远程接口和 bean 类中

由 Rose Java EJB 实用工具创建的那些类被按照在 Sun 标准 JSR-000026 UML/EJB 映射规范中定义的映射进行建模。 “帮助手册”图标有关更多信息,请参阅 Rational Rose 联机帮助主题 Rose Java > 概念 > 关于 Java 2 Platform, Enterprise Edition(J2EE)支持。 

有关 EJB 1.1 或 2.0 规范的更多信息,请访问 http://java.sun.com/ 并进入链接 Docs & Training > Java 2 Platform, Enterprise Edition > Enterprise JavaBeans Specification

定义操作和属性

在创建 EJB 类之后,可以根据选择添加操作(如业务方法)和属性。

Rose Java 提供一组对话用于在 Rose 中创建和维护 EJB 类。

  “帮助手册”图标  请参阅 Rational Rose 联机帮助主题 Rose Java > 如何 > 使用 EJB 和 Servlet > 向 bean 类添加方法

有关定义操作和属性的更多信息,请参阅:

对类建模:关系

您作为任务:类设计的一部分创建类图,在这些图上为类之间的关系(如关联关系、依赖关系和继承关系)建模。

随 Rose 提供的 Rational Unified Process Rose 模型模板给出大体框架,作为应创建的类图的起点。

有关对类之间的关系建模的更多信息,请参阅任务:类设计

对类建模:交互

作为任务:用例设计的一部分,您在时序图上创建消息,然后这些消息用于描述设计对象之间的交互。创建一组时序图来描述设计模型中每个用例实现的主要和备用事件流。 

作为 EJB 设计人员,您使用时序图:

  • 确定交互中涉及的类的操作和操作实参

  • 记录在交互期间类将调用的操作

  • 记录对象在接收消息时执行的操作,例如将脚本附加给消息。 “帮助手册”图标  有关更多信息,请参阅 Rational Rose > 如何 > 创建和使用模型 > 在时序图上使用脚本帮助主题

另请参阅:

对 EJB 持久性建模

实体 EJB 表示应用程序的持久数据的面向对象视图。将 EJB 类建模成实体并将该类标记为“持久”,这表示角色:数据库设计人员任务:数据库设计期间需要将 EJB 对象映射到 数据模型上。

角色:数据库设计人员作为任务:数据库设计的一部分,创建应用程序的数据模型。

Rose 使用 Rational Rose Data Modeler 工具为数据库设计提供支持;通过该工具,您可以将对象模型中的持久类转换成数据模型,反之亦然。

对象模型中的类到数据模型中的表的映射被记录在数据模型表的 Rose 规范的映射自字段中。

另请参阅工作产品:数据模型指南:数据模型

有关 Rose Data Modeler 的详细信息,请参阅Tool 工具向导:使用 Rational Rose Data Modeler 设计数据库并对数据库建模

会话 EJB 的建模注意事项

会话 bean 可以读或写持久数据 - 请参阅指南:设计 Enterprise JavaBeans(EJB)- 直接访问与实体 EJB。  

在此情况下,应该使用数据访问对象(DAO)类来隔离 EJB 的数据库连接的详细信息并使用 javax.sql 接口访问。 

bean 管理的实体 EJB 的建模注意事项

Bean 管理的实体 bean 使用 JDBC API 读写数据库表。使用 DAO 类来隔离 EJB 的数据库连接的详细信息并使用 javax.sql 接口访问。 

容器管理的实体 EJB 的建模注意事项

不需要为容器管理的实体 EJB 设计 DAO 类,因为它的持久性是由 EJB 容器管理的。

对事务建模

事务定义一组原子操作调用 - 要么执行全部操作要么一个操作也不执行。在持久性环境中,事务为一组对象定义一组变更,同样要么执行全部变更要么一个变更也不执行。事务提供一致性,确保几组对象从一种状态转移到另一种状态。

请参阅“概念:Java 2 Platform Enterprise Edition(J2EE)概述 - 事务管理”以了解有关事务管理的概述。

如“任务:用例设计 - 对事务建模”中所述,对 EJB 事务建模。实施时,您根据您的设计模型来决定是否声明性地划分事务 - 在部署描述符中,通过将 EJB 方法的事务属性定义为 Required、RequiresNew、NotSupported、Supports、Mandatory 或 Never 之一,或者有计划地使用 Java 事务 API。

对安全性建模

作为设计的一部分,确定是否可声明性地处理应用程序安全性 - 在 EJB 部署描述符中使用安全性角色和方法许可,或者有计划地使用 J2EE 安全性 API。

使用时序图考虑安全性场景。如果必需,注释时序图来记录安全性需求。

请参阅“概念:Java 2 Platform Enterprise Edition(J2EE)概述 - 安全管理”以了解有关安全管理的概述。

正向设计 EJB 组件s

通过使用 Rose Java 进行正向设计来生成 EJB Java 类,如工具向导:使用 Rational Rose 从模型生成元素中所述。 EJB 部署描述符 ejb-jar.xml 将作为正向设计 EJB bean 类的结果而自动生成。

反向设计 EJB

可以使用 Rose Java 反向设计现有 EJB,如工具向导:使用 Rational Rose 反向设计代码中所述。必须反向设计包含 EJB 类和部署描述符的 .jar 文件,以便 Rose Java 可确定反向设计的类之间的关系(例如,哪个类是主接口)。 

对用户接口层建模

像对任何 Web 应用程序一样对 J2EE 应用程序的用户接口层建模。通常,构造型为 <<boundary>> 的分析类是用户接口层中的候选类和类协作。根据设计,边界类可作为诸如 JSP 页、servlet、HTML 页或独立 Java 客户端等进行实现。

有关更多信息,请参阅: 

相关活动:

另请参阅:

表示类的前向和反向设计

您可以前向和反向设计表示类。Rose Java 支持:

  • Web 应用程序的反向设计(.war)。“帮助手册”图标  有关更多信息,请参阅 Rational Rose 联机帮助主题 Rose Java > 如何 > 从 Java 源到 Rose 进行反向设计

  • 使用适当的方法创建新的 servlet 类。“帮助手册”图标 有关更多信息,请参阅 Rational Rose 联机帮助主题 Rose Java > 如何 > 使用 EJB 和 Servlet