UML软件工程组织

对代码、设计和开发之上的架构更多的控制
Joseph G. Noonan RRD Development Programmer Manager , IBM    

本文来自于 Rational Edge :作者讨论了 IBM Rational Rapid Developer 的主要特点,IBM Rational Rapid Developer 可以使我们对架构和构建进行更好的控制,从而保证高质量的业务应用。

应用程序开发从来都不是简单的事情。当软件变得越来越重要时,他的复杂性也在不断的增加。在减少这种复杂性和增加易用性的工作中,软件工具的提供者已经进行了多年的努力以创建允许开发人员快速的构建应用的快速应用开发(RAD)工具。最开始的产物并不是实际的工具,而是可以提供给开发人员使用的具有关键功能的库,主要是关注在用户接口的生成上。这些库最终被扩展到围绕通讯和关键功能的实现上。然而,虽然这些库加速了软件的开发,但是他们是私有的资产并且要求较高的技能来正确的使用。

为了使快速应用开发更具有实践性,并且向广大的程序员开放快速应用开发的能力,工具提供商开发出了例如 Microsoft® Visual Basic 和 Sybase® PowerBuilder 这样的产品,他们为开发人员提供了一个完整的开发环境。支持的语言也是非常简单易学的,并且工具本身提供了象 GUI 设计者这样的允许用户通过拖放控件到一个虚拟的面板上然后在控件上附加代码功能的方式加速应用开发的手段。这些开发环境快速的生成转换,并且使用这些工具可以自动产生大量的代码。

但是问题仍然存在。虽然这些工具被使用创建很多关键的应用,但是他们很少控制开发人员使用的方法。很多情况下,应用程序既不是基于模型的也没有一个健壮的架构做基础。因此,开发人员还必须要设计他们的应用。产生的应用通常是非结构化的、不够良好的设计和维护困难的。通常缺乏代码共享的实践意味着应用经常会在几个不同的方式(有时是相互冲突的)上产出相同基础功能集合。此外,当组织想跨越各部分来扩展一个非结构性的应用范围时,使用被给定的工具集创建出的应用是很难被度量的。同时这些工具集使用的是私有的技术,因此他们很难与其他技术进行集成。

为了消除这种混乱, Rational 软件公司(现在是 IBM Rational ,IBM 软件集团的一部分)已经为软件开发行业提供了针对应用开发生命周期的更加基于标准的方法。这个方法包括统一建模语言 (UML),工具(IBM® Rational Rose,® IBM® Rational ClearCase,® IBM® Rational ClearQuest,® 和 IBM® Rational XDE,™ )和行业领先的最佳实践(通过 Rational Unified Process ®, 或者 RUP® )。在 2003 年 5 月 IBM® Rational® Rapid Developer 加入了 Rational 产品资源和技术的著名行列。Rational Rapid Developer 针对快速应用开发提供了一种面向架构的方法,比如基于 J2EE 标准的架构。新的方法被称为“基于架构的快速应用开发 (architected RAD)”,并且提供了多种在应用开发之上的加速器和控制。使用 Rational Rapid Developer ,经验不多的开发人员也可以加入到具有高技能的架构师和开发人员的工作当中来创建良好设计的应用。

Gartner 组织认可了一些具有面向架构的快速应用开发或者“ARAD” 的工具。这些工具包括了一些特性:

  • 对工业标注比如 J2EE、UML、XML、SOAP 和 MDA 的支持。
  • 使用工业标准的设计和构建模式,比如 MVC2 。
  • 被创建的代码具有工程化的质量。
  • 跨越开发人员团队的架构上的一致性。

根据 Gartner 的报告显示,

如果不改变当前使用的软件开发方式,将不会有更好的改进生产力、降低成本和保证应用的可测量性和性能的方法

对于多数的企业和应用来说,ARAD 应该可以被证明是一种贴近思想的方法,这种方法可以通过“恰到好处的”应用质量和性能来对开发速度和成本进行平衡。

本文将介绍 IBM Rational Rapid Developer 的主要特性,这些特性可以使我们能够进行架构上的和构建上的控制,通过给开发团队在技术上、构建上和部署上的更大灵活性,从而保证高质量的业务应用。

面向架构的快速应用开发:插入 UML 基础模型
每一个应用系统的核心是描述了这个系统的基础模型 -- 领域模型、类模型、逻辑模型、实体模型等等。在所有的实例当中,这个基础模型都提供了关键类和这些类之间关系视图,IBM Rational Rapid Developer 就是通过使用基于 UML 的类架构师 (Class Architect)图形化的支持这样的视图的。见图 1 。

图 1: IBM Rational Rapid Developer 中的 UML 类模型

你可以通过几种方法来开发这个模型。你可以简单的使用 Rational Rapid Developer 的 “Class Architect” 中提供的友好的绘图工具来拖、放和连接类和包。这是最常用的方法,然而,开发团队也可能会利用已存在的资产。架构师和高级的开发人员可以将这些资产从几种资产来源中插入到 Rational Rapid Developer 的应用项目当中,第一个就是已存在的数据库。从工具菜单中使用数据库插入向导,架构师可以连接数据库,然后通过从数据库表和视图中进行选择来插入表和关系的定义。这可以在软件开发周期的许多时间被做。此外,架构师对在 Rational Rapid Developer 中的模型所做的变化能够被传播到数据库或者能够被数据库管理员运行的 DDL 脚本中。 Rational Rapid Developer 也提供了一系列的工具来插入遗留资产的定义,比如 IMS 或者 VSAM 数据库定义。

架构师也可以通过使用 IBM Rational Rapid Developer 中的模型同步的特性(见图 2)来创建类和信息模型。这个特性既可以连接在 IBM Rational Rose 中创建的模型,也可以连接在 IBM Rational XDE 建模工具中创建的模型,这些模型主要用于连接架构师和高级的开发人员;这些建模工具提供了基于统一建模语言 (UML)标准的非常丰富的建模环境。使用这种在 Rational Rapid Developer 访问这些已存在模型的连接性的特性,架构师可以将一个充分被开发的类模型交付给用户,并给他们在软件开发上的开始点。一旦最初的模型被插入,这些用户也可以开始进行增量式的更新;当架构师修改了模型时,客户在不必重新插入整个模型的情况下将收到改变。

图 2: IBM Rational Rapid Developer 提供访问在 IBM Rational Rose 或者 IBM Rational XDE 中创建的 UML 模型的能力

此外,架构师可以方便的过滤掉他们不准备使用或者时与团队开发的应用不相关的元素。

面向架构的快速应用开发:维护设计和商标的一致性
IBM Rational Rapid Developer 支持一个非常丰富的用户界面设计的环境。开发人员和美工设计师可以使用拖-放控件和特定的可嵌套的网格来布局一个应用的用户界面以管理和显示复杂的内容。

Rational Rapid Developer 也支持样式存储的创建,如果有多个创建应用的和添加内容到 Web 站点的团队成员同时工作的话,这种存储可以帮助确保统一的页面布局和一致的商标。一个样式存储包含颜色配置、字体样式、主题 (在下面被解释)、编辑和导航控件和页面样式的细节。一个美工设计人员可以创建一系列提供了各种样式、颜色和设计元素等的模板,这些模板悄悄的维护着站点商标的一致性。

在图 3 中,美工设计人员已经使用对按钮、制表符、网格和标签的说明创建了一个样式存储库,同时还有一些文档模板。其他的开发团队可以插入这个样式存储库到其他的使用 Rational Rapid Developer 创建的应用中,并且可以决定开发团队将使用什么控件和样式。

此外,设计人员可以使用 Theme Architect 为样式存储库创建主题。主题包含被命名的颜色集合、图集合和字体集合,他们既可以用于特定的页面也可以被用于动态加载用户选项的显示。

图 3: 使用 IBM Rational Rapid Developer 一个美工设计人员能够创建可以使多个团队成员能够维护设计和网站页面商标一致性的样式存储库

面向架构的快速应用开发:维护代码之上的控制
IBM Rational Rapid Developer 有很多提供了对代码的控制和一致性维护的特性,这些特性同时也使开发人员更加容易的编码。

对于多种技术的代码生成
通过基础模型、交互模型和用户界面模型的合并,IBM Rational Rapid Developer 能够为 J2EE 的所有层次大量的生成代码。当前,IBM Rational Rapid Developer 能够为非常广泛的部署技术生成应用,架构师/开发人员可以通过下拉菜单来选择。将一个应用从一个供应商技术移植到另一个供应商 -- 或者从一个技术的老版本移植到最新的版本 -- 就像选择另一个菜单选项并点击 构建按钮一样简单。这意味着开发人员能够在他们的桌面上拥有一个开发环境(比如,使用 SQL Server 和 Tomcat)和完全不同的产品环境(比如,IBM WebSphere 和 IBM DB2),而不必担心在这些技术之间的不同。

从应用系统维护的角度来说,这种能力可以确保开发团队能够将大部分的时间花费到通过为应用添加新的特性和能力来解决业务问题而不是将代码从一种技术移植到另一种技术上。

代码构建模式
IBM Rational Rapid Developer 的一个特色是它允许架构师和高级的开发人员为应用的构建定义设计模式。IBM Rational Rapid Developer 对于类、页面、消息和组件(Web 服务)具有指定的缺省模式集合,他们可以被每一个应用加载(见图 4 )。对于每一个分类,架构师和设计人员既可以选择这些缺省模型中的一个也可以混合和匹配他们以达到特定的结果。

图 4: IBM Rational Rapid Developer 中的缺省构建模式

每一个模式都有一个命名的描述符,它可以被分配给页面、消息或者组件。模式可以是事务的,也可以是非事务的,并且他们支持动态 SQL 或者存储过程。他们也能够支持实体 bean 、JSP (JSP Model II)或者 servlet 。这允许架构师选择对于应用最合适的模式并要求开发人员使用他们。

代码模板
Rational Rapid Developer 包括一个被称作为逻辑架构师(Logic Architect)的编码环境。这是开发人员实际编写业务逻辑的地方。为了使这个过程更加流畅并保证不同开发人员开发的代码的一致性,逻辑架构师(Logic Architect)提供了一系列的执行通用业务应用处理任务的代码模板。开发人员可以挑选一个模板并为模板回答向导的问题,然后架逻辑构师(Logic Architect)根据模板生成适当的代码(见图 5 和 6)。

图 5: 架逻辑构师(Logic Architect)的代码模板

 

图 6: 架逻辑构师(Logic Architect)自动装配代码模板

例如,如果开发人员选择了一个调用一个存储过程的模板,他或者她输入数据库的描述符的名字和存储过程的名字;然后,架逻辑构师(Logic Architect)自动的插入代码。这是一个可开发的系统,它允许架构师修改已存在的代码模板也允许添加一个新的代码模板。底线是架构师或者高级开发人员能够再开发人员跨项目使用的代码之上维护控制。

安全控制
IBM Rational Rapid Developer 也提供了更加高级的特性,比如经验丰富的开发人员扩展访问自定义的安全提供者和组件。它支持基于角色的安全,同时包括数据加密和通过使用 J2EE JCE (Java Cryptography Extender) 标准来许可自定义安全机制的累加。这就允许架构师既可以以 JCE provider 的方式创建自己的安全机制,也可以利用已有的第三方的 JCE 实现。

通过自定义组件进行控制
另一种架构师控制开发的方法是通过以 Java 包的形式使用组件和或者 EJB 。这些面向服务的组件能够表示 Rational Rapid Developer 用户可以从他们自己的方法中调用的通用的业务逻辑。

面向架构的快速应用开发:部署控制
多数的开发工具提供了开发人员可以部署应用和测试应用的本地的环境。然而,实际的目标产品环境通常是更加复杂的,并且你需要具有特定的技能来决定如何划分应用以进行部署。 IBM Rational Rapid Developer 提供给架构师和高级开发人员一个高级的工具,Partition Architect ,使用它可以为应用创建划分和部署定义。Rational Rapid Developer 提供了一个“本地”的模型,缺省的情况下是针对 Apache Tomcat 的,Apache Tomcat 是一个开放源码的 Servlet/JSP 引擎。 Rational Rapid Developer 也支持对多种 J2EE 平台的部署,比如 IBM WebSphere (versions 3.5, 4.0, and 5.0)。 Partition Architect 允许应用分割到不同的层(表示层、业务层和数据层)当中,也可以按照功能的方式(买主、卖主和管理员等)。见图 7 。

图 7: IBM Rational Rapid Developer 拥有提供高级部署控制的 Partition Architect

结论
不像过去的快速应用开发方法,IBM Rational Rapid Developer 给架构师和高级开发人员大量的应用开发上的控制。通过控制代码生成的过程架构师能够保证架构上的一致性,通过样式存储库和模板能够确保布局和商标的一致性,通过高级的应用划分控制可以确保应用部署的成功。他们也为经验不多的开发人员提供了模板和使他们能够更快速和更有效的工作的工具。最终的结果是针对目标平台使用最佳实践来构建高质量的应用。

 

来源:IBM


版权所有:UML软件工程组织