UML软件工程组织

 

 

模式解决方案
 
出处:IBM
 

概述

作为软件开发人员,您必须非常高效地满足不断增长的软件需求。许多 IT 专业人员还在继续花费很多时间重复手动地在低抽象层次上开发相似的解决方案。我们必须采用软件构建中的新方法,将熟练的 IT 专业人员从这些重复的任务中解放出来,并且将抽象层次提升到更强大的概念上。我们必须利用更好的工具来支持这些更高的抽象层次,并且通过将已证实的经验封装为工具可用的资产和工件,让开发人员交付更高的生产力。

该 Web 站点包含了已经构建了的,可以免费使用的模式和资产,还包含了有关如何利用 IBM Rational Software Architect 构建您自己的定制模式的信息。描述了在允许有经验的开发人员工作于较高抽象层次上时,模式如何提供解决方案来重现问题。通过获取设计经验和最佳实践,将它们作为工具可用的资产和工件,模式可以大大地简化面向服务的体系结构(Service-Oriented Architecture,SOA)的开发 —— 形成了生产力上的重大提高。

您可以利用 IBM® Rational® Software Architect 编写、应用,并复用模式,从而改进设计和开发。告诉我们您对模式解决方案的想法。发送反馈到patterns@us.ibm.com。

模型驱动的软件开发

模型驱动软件开发(Model-driven software development,MDSD)将模型用作主要的软件工件,由这些模型可以生成其他工件,例如低层次的模型和代码。MDSD 可以让您工作于更高层次的抽象上,使您关注设计中基本的变量,并且将表达这些变量的标准、算法,且重复的活动委托给工具。MDSD 是可以得益于模式的方法,然而,使用模式不一定需要 MDSD 方法。

更多参考资料:

模式

模式开始是作为一种思想,或者是在许多项目中使用的一种最佳实践。模式可以存在于各种各样的层次上 —— 从业务到架构、设计,以及从程序设计到部署和运行时管理 —— 并且在解决方案开发生命周期的所有阶段中,根据最佳实践,参与工件的创建。

模式首先是从提供对于特定环境中问题的最佳可用解决方案的样本中抽象出来的。关于解决方案的这些内容编制在称为 模式规范(pattern specification)的形式描述中。

现在有了新的方法,可以让我们通过在工具(通称为 microtools)中获取模式来实现它们。因此,我们能够以可复用软件工件的其他形式来使用模式,它帮助改进了软件开发过程。这些可复用的软件工件,或者模式实现(pattern implementation)的获取是由工具的能力辅助的,例如,那些 Rational Software Architect 中的功能,并且可以使模式更容易共享和应用。

当大量的模式和其他工件存在时,您可以使用“配方(处方s)”将它们进行组合,以形成大粒度的可复用资产。配方描述了成分(模式和其他工件),以及将成分放在一起来迅速解决问题的过程指导。


发现模式图像

 
样本

解决方案样本是模式的基础,并且表现出针对特定环境中已知问题的最佳解决方案,因此,它们必须由目标领域中的专家来开发。高质量的样本应该包含反应在模式,以及模式的应用中的最佳实践,包括模式自动化支持的所有变体。

样本为模式实现提供基础。

  • 规范:样本是用于指定模式要生成的内容的。
  • 测试用例:样本是用作针对模式输出的测试用例。
模式规范

传统上,模式是以文档的形式获取的,称为模式规范。模式规范是以概念术语(考虑到传达及其他人的复用)对模式进行的精确定义和描述。模式规范提供形式化的文档:

  • Context(上下文):应用模式以及什么时候使用应用的策略
  • Problem(问题):模式解决的问题的精确陈述
  • Solution(解决方案):模式提供的解决方案的描述
  • Results(结果):应用模式的结果和优缺点
模式实现

现在,可以利用软件开发工具来实现模式了。模式实现是大大简化了模式在特殊环境中应用的工件,它提供了对真实问题的已实现的解决方案,并且使模式可共享且可复用。在实现了模式之后,这些模式会成为具体的工件,例如 Rational Software Architect Patterns、Rational Software Architect Transformations、插件、alphaWorks Design Pattern Toolkit (DPTK) 模式等等。

工具技术

Rational Software ArchitectDPTK/JET2 提供了编写并应用模式实现的工具。模式(规范和实现)帮助创建软件解决方案所需的各种软件工件。模式本身,一旦应用了,就成为解决方案的一部分了。

实现模式的优点

通过识别出可以在工具中获取的,并且用于复用的最佳实践和设计经验,模式提供了一种强大的方式来改进产品的开发。

通过模式的使用,您的组织可以:

  • 提高生产力。将高度重复,算法性的过程自动化,从而解放您的开发人员,以执行高层次的任务。
  • 减少开发时间。消除从头开始项目的需要,利用可重用资产。
  • 将复杂度最小化。去除冗长易错的任务,减少混乱,并且将您的项目分割成容易管理的模式。
  • 提高质量。将最佳实践封装到工具中,从而让您的开发人员一致地交付最佳实践输出。
  • 改进治理。提出实践和策略,加入到工具中,将对法规的遵从自动化。
  • 获得业务灵活性。以增加的灵活性来更快速地响应变更的业务需求。
  • 利用 IT 技术。让您的有经验的开发人员着重于开发可复用的模式,为了让新的团队成员能够复用模式。
  • 促进开放标准。减小对特殊工具的依赖,并且令日常开发与平台无关。
  • 消除业务与 IT 之间的鸿沟。将开发重点从技术语法提升到业务变量上来,从而减少错译的可能性。
  • 改善成本问题。利用更少的复杂度、可重用资产,及更少的项目时间来减少整个的开发成本。

资产

模式存储库

以下的模式目录可以在 developerWorks 模式存储库中找到,并且可以用 IBM® Rational® Software Architect 或通过该页面上的直接下载链接进行访问。单击教程,获得更多关于访问、导入和应用模式的信息,并且今天就开始定制您自己的解决方案。

注意:目前的模式存储库只与 Rational Software Architect (RSx),Version 6.x 兼容。到 RSx 7 时,将正式更新这一支持。 7.0 产品的测试客户,本次请不要使用该存储库。

模式类型

根据解决方案设计及开发生命周期的不同阶段将模式进行分类。以下模式目录可以免费下载。经常查看开发并出现在这里的新模式。

  • 定义业务系统策略
    • 解决方案设想
    • 计划指导
  • 模式:定义架构策略
    • 解决方案架构
  • 定义解决方案
    • 业务过程和业务对象
    • 现有的服务
    • 解决方案用途
  • 模式:构建、测试,并部署
    • 软件实现
    • 构建配置
    • 应用程序实现
    • 解决方案测试
    • 部署配置
  • 操作及维护
    • 解决方案管理
模式:定义架构策略

用于电子商务的 IBM 模式(英文),是一组高级的业务、架构,及拓扑模式,它们有助于加速电子商务应用程序的开发过程。

模式:构建、测试,及部署

面向服务的体系结构(Service-Oriented Architecture,SOA)模式

SOA 模式是一组模式规范和模式实现,它们可以用于简化 SOA 中间件应用程序的开发。

最佳实践:

模式规范:

现在就下载免费的 SOA 模式。

说明 名称 大小 下载方法
SOA Catalog Legacy Design Model Asset
 
SOACatalogLegacyDesignModel.ras
4KB
SOA Imp. and Opt. of Services 处方 Asset
 
SOAImplementationandOptimizationofServices处方.ras
194KB
SOA Inventory Enterprise IT Design Model Asset
 
SOAInventoryEnterpriseITDesignModel.ras
31KB
SOA Inventory Service Design Model Asset
 
SOAInventoryServiceDesignModel.ras
19KB
SOA Lookup Item Use Case Model Asset
 
SOALookupItemUseCaseModel.ras
24KB

信息服务模式

解决了与信息管理相关的难题 —— 例如,对不同类的数据提供整合并一致的观察 —— 的信息服务模式还必须满足面向服务的体系结构。这些模式帮助架构师制定内容丰富且一致的决策。选择最恰当的方法有助于极大减少开发时间,并且符合非常苛刻的服务层协议。

企业模式

企业模式资产是包含了有名的模式的 RAS 资产,例如 Session Facade、Business Delegate、Message Facade,和 Data Access Object。您可以将这些模式应用于您的 UML 模型中,并且生成代码,从而将 Java 2 Platform, Enterprise Edition (J2EE) 应用程序的实现自动化。

现在就下载免费的企业模式。

说明 名称 大小 下载方法
Enterprise Patterns Asset
 
EnterprisePatterns.ras
1756KB

WebSphere Platform Messaging 模式

WebSphere Platform Messaging 模式资产是一种 RAS 资产,它扩展了企业模式资产,以增加对 WebSphere® Application Server V6.0 中所包含的新增的消息传递引擎的支持。它包括有名的调节模式,例如消息记录、消息转换,以及拓扑模式来配置服务集成总线和消息队列。

现在就下载免费的 WebSphere Platform Messaging 模式。

说明 名称 大小 下载方法
WebSphere Platform Messaging Patterns Asset
 
WSPlatformMessagingPatterns.ras
1756KB
WebSphere Response Template Pattern Asset
 
WSResponseTemplatePattern.ras
2800KB

State-Oriented Portlet 模式

State-Oriented Portlet 模式资产是利用 UML 状态机为 portlet 状态转移建模的 RAS 资产。它包括获取 portlet 视图及 portlet 转移数据的模式。它支持流行的门户特性,例如 portlet 模式,以及 click-to-action。使用该资产,可以生成完整的门户应用程序。用户可以在构架的某些地方上添加其自己的业务逻辑。该模式所编入的最佳实践是来自于IBM Software Services 经验的。

现在就下载免费的 State-Oriented Portlet 模式。

说明 名称 大小 下载方法
State-Oriented Portlet Patterns RAS Asset
 
StateOrientedPortletPatterns.ras
1756KB

TSA Failover Configuration 模式

TSA Failover Configuration 模式资产是 RAS 资产,它可以帮助您配置 Tivoli® System Automation (TSA),以支持利用 IBM HTTP Server、WebSphere Application Server,和 DB2®的高可用性的企业解决方案。使用该模式,您可以生成管理失败群集的 TSA 脚本。该模式中编入的最佳实践来自于High Performance On Demand Solution Team 在部署高可用性解决方案时的经验。

现在就下载免费的 Tivoli System Automation (TSA) Failover Configuration 模式。

说明 名称 大小 下载方法
TSA Failover Configuration Pattern Asset
 
FailoverConfigurationPatternImplementationforTSA.ras
736KB

Security 模式

Security 模式资产是扩展了企业模式资产的 RAS 资产。它使您在为应用程序建模时结合安全规则。该资产包括两个 EJB 安全配置模式,以及一个应用模式。您可以利用安全配置模式来更新具有方法级授权的 EJB 部署描述符,并且确定出授权规则。当您将应用模式用于类时,它会生成利用 Common Event Infrastructure 提交 Common Base Events 的代码。

现在就下载免费的 security 模式。

说明 名称 大小 下载方法
Security Patterns Asset
 
SecurityPatterns.ras
873KB

WebSphere Cluster Creation 模式

WebSphere Cluster Creation 模式资产是符合 SOA 部署类别的 RAS 资产。当您为部署配置建模时,它使您可以描绘出 WebSphere 群集元素(包括单元、群集、节点、J2EE 应用程序)。该资产包括群集模式和转换,用来生成群集部署脚本,为了使用 WebSphere Application Server 5.x 或 6.x,要用 JACL 或 Jython 编写脚本。该模式大大地减少了生成为了管理 WebSphere 部署所使用的部署脚本的时间和复杂度。

现在就下载免费的 WebSphere Cluster Creation 模式。

说明 名称 大小 下载方法
WebSphere Cluster Creation Pattern Asset
 
WSClusterCreationPattern.ras
1756KB

 

教程

模式开发过程

以下步骤概括了模式开发过程。

分析目标领域

确定环境,分析再现问题,并找到再现样本解决方案。对于更复杂问题的解决方案可能会涉及多个模式。分析目标领域,以获得输入、输出(您试图生成的东西),及可变点(输入应该留给用户的东西,以及模式应该提供的东西)的清晰定义。模式描述了以前做过的事情,因此,收集您想要生成的产品的真实实例,以及最佳实践。

设计配方

确定问题的最佳解决方案,以及设计的固有且实际的入口点。找出开始时可用的信息是什么,每个阶段需要的是什么。生成每个阶段将要发生的事情的概要。

实现模式

到此,您已经定义了一系列设计活动,并且了解了入口点和退出点处的信息内容。对于每个模式都有一个模式实现,它是一种类型的 micro-tool,可以用来推进个别的模式应用程序。需要建立调用环境来提供配置、触发和执行模式的应用的机制。对于模式实现的一个关键决策点是确定是否将输出表示为模型还是文本。

打包及部署

一旦开发了模式实现,就需要为了发布,及适合预期用户团体的文档,将结果打包。应该考虑将可复用资产规范(Reusable Asset Specification,RAS)与 RAS 存储库一同使用。


模式开发过程图

 
模式实现:框架

对模式实现的技术选择取决于输入和输出的特性。目标是生成一组解决方案工件(Java 源文件、XML 文件等),利用输入模型(UML 模型、XML schema 实例等)来指导所生成工件的自定义。该目标经常用连续的“应用模式”步骤增量地实现,生成更接近最终解决方案的中间模型。


模式开发过程图
 

模式本来就是独立于技术的,因此没有限制哪些技术可以用来实现模式。设想是构建 micro-tools,它们要能够:

  • 跨团体重现
  • 作为可复用资产分布,并且存储在存储库中
  • 很容易地集成到整个开发环境中,并且与其他工具能够很好地协作

许多 meta-tooling 技术能够符合不同的需求。

Design Pattern Toolkit (DPTK)/JET2

  • 根据可定制的,“模型到文本”的转换生成应用程序的模板引擎
  • 特性样本分析工具,模板编辑器

寻找更多关于 Design Pattern Toolkit (DPTK)/JET2的信息。

Rational 软件设计及构造工具(RSx)

Rational Software Architect 和 Rational Software Modeler(RSx)建立在 Eclipse 的基础上,为更专用的基于模式的 micro-tool 开发提供充足的环境。Rational Software Architect 提供了将设计和构造自动化的内嵌框架。

  • Rational Software Architect Patterns Framework: 通过简单地定义模式、模式参数,并实现代码来编写模式。在单个模型及相同抽象层中应用模式是很容易的,且可以通过拖拽及绑定模式参数来可视化地完成。Rational Software Architect 还提供 Pattern Explorer View,该视图可以让您连接到其他模式存储库去导入附加的模式。
  • Rational Software Architect Transform Framework:编写您自己的转换。转换与模式不同,因为转换是跨源模型、模型,及不同的抽象层来应用的,转换为其他工件(代码、脚本、其他模型)。Rational Software Architect 包含了转换(UML to Java、UML to EJB、Java to UML)。
  • Pluglets、建模框架、RAS 框架

Rational 专区寻找更多关于软件开发工具的信息。

模式实现:选择框架

一般都将输入作为模型。当一个没有对应的模型的文本文件必须用作输入时,需要首先进行语法分析,并且放入适当的模型中。关键的决策点是确定模式实现将要生成的是什么工件输出

  • 模型:修改输入模型,或由输入模型生成新的模型
  • 文本:由输入模型生成工件,例如代码、脚本、描述符、数据文件

模式实现决策树


模型输出:RSx 模式和转换

如果您的模式实现生成UML 模型作为输出:

使用 RSx 模式和转换

  • 使用 RSx 模式如果原地扩展模式的话,为您的模式使用具有简单、交互性的,可拖放的,图形介面的 RSx 模式,其中,问题和解决方案区域是相同的 UML 模型。向模型中添加细节。
  • 使用 RSx 转换如果输入参数不能在 RSx Patterns 框架中表示出来,或者如果执行其他跨模型或源模型的模型到模型的模式,那么就使用 RSx 转换。RSx 转换可以以标准的方式由较抽象的工件生成较详细的软件工件(包括 UML to UML、UML to Java、UML to EJB)。
    RSx Framework View 图

使用 RSx 的另一种方案

在任何可能的地方使用 RSx 中的生产工具。如果不能使用 RSx 时,考虑这些选择:

  • 当允许接受文本文件输入时,使用 IBM 的 Design Pattern Tool Kit (DPTK)/Java Emitter Templates (JET)。(JET2 是 Eclipse 3.2 中 DPTK 的一组新特性。)
  • 如果需要图形建模能力,就添加 Graphical Modeling Framework (GMF)/Eclipse Modeling Framework (EMF)。图形模型编辑比基于文本的方法要更复杂,并且得益于 RSx 中的生产特性。

附加的参考资料

文本输出:DPTK /JET2

如果您的模式实现生成文本作为输出:

使用 DPTK/JET2 模式和转换

  • RSx 转换支持 Model2Text,但是不予推荐,因为太复杂,并且不便于复用。当不允许 DPTK 时,使用带有 JET1 的 RSx。
  • 默认情况下,应该将工件作为文本处理(而不是模型)并且用 JET2 来生成/操纵工件。
  • 如果您的输入模型已经是文本格式的,或者输入模型是已经接近于转换所需的 EMF 模型的形式,那么就选择 JET2。
  • 如果输入模型是 UML 的,或是带有转换所不需要的重要内容的 EMF 模型,那么就开发一个 RSx 转换,从输入模型中抽取恰当的信息,放入直接匹配转换需求的中间文本或 EMF 模型中,并使用 JET2。

该图展示了 DPTK/JET2 框架视图。
DPTK/JET2 Framework View 图

在此您可以看到 DPTK/JET2 代码视图。
DPTK/JET2 Code View 图

附加的参考资料

打包及部署

可重用资产规范资产

模式开发的一个重要方面是采用标准的方法来组织、描述,及对资产打包。可重用资产规范(Reusable Asset Specification,RAS),作为 2004 年的 OMG 标准,定义了一种标准的方法来描述并将可复用的软件资产打包。可重用资产为已知环境的问题提供解决方案,并且它拥有可以由资产消费者定制的可变点。

每个可重用资产都必须包括:

  • 清单文件
  • 一个或多个工件

工件可以是:

  • 模型、源代码、脚本
  • 文档、部署描述符
  • 测试用例

良好的资产应该拥有:

  • 可变点
  • 可以由资产消费者定制的特性

RAS 是可扩展的

  • 使用专门的概要文件

附加的参考资料

Rational Software Architect

Rational Software Architect 使您将资产打包为 RAS 资产,从而浏览、搜索、导入,并导出 RAS 资产存储库中存储的资产。

应用模式

使用 Rational Software Architect 来连接 developerWorks 上面的 RAS 存储库。

DPTK/JET2 Code View 图

使用 Asset Explorer 浏览 developerWorks 存储库中的资产。定位并导入您想应用的模式资产。

选择 Pattern Explorer 中的模式。

创建 UML 模型,应用一个或多个模式,并指定模式参数。

运行转换,将模型变换为工件(代码、脚本、文档)。

快速开始

现在由这些简单的步骤开始,利用模式来构建!*
 
  1. 下载并安装Rational Software Architect V7.0 的试用版。
  1. 资产部分下载免费的企业模式,并将其导入到 IBM Rational Software Architect V7.0中。
  1. 阅读相应的文章,“利用 IBM Rational Software Architect Enterprise Patterns 构建 J2EE 应用程序”并观看企业模式演示
  1. 阅读免费的在线课程DEV510: Applying the Enterprise Patterns in IBM Rational Software Architect。(持续时间:大约 2 小时)
  1. 开始利用企业模式进行构建,或者从资产部分下载其他免费模式。
  1. 访问教程 参考资料及社区部分,学习如何定制并编写您自己的模式。
  1. 加入不断发展壮大的模式社区,分享、贡献、请求,并提供关于模式的反馈。

查明如何添加 Design Pattern Toolkit (DPTK),从而很容易地生成基于文本的工件。

(* 企业模式是作为简单实例使用的,但您可以下载并应用任意免费的模式。)

参考资料/社区

模式论坛

这是关于模式的讨论论坛的一部分。寻找如何编写并实现模式,来提高软件开发的生产力。与您的同事集体讨论并共同研究新的模式思想。查找现有模式的故障。共享模式、文章,或思想。

加入不断发展壮大的模式社区!

提交模式解决方案

提交模式解决方案资产、文章或思想

模式课程
附加的文章及教程
红皮书
新闻稿
模式术语词汇表
词汇表
术语 定义
工件(Artifact) 资产的逻辑或物理元素(一个逻辑资产是至少一个物理工件的容器,物理工件对应文件系统中的一个文件,并且表现为工作区产品。)
资产(Asset) 软件开发问题的解决方案(该问题可以与系统工件的演进相关,或者与目标领域的问题相关。)
框架(Framework) 为领域中的应用程序提供可扩展的结构的架构模式
习惯用语(Idiom) 具体到特定程序设计语言或开发文化的实现模式,它表示语言的习惯用法
原地替代(In-situ substitution) 模式编写时间替代规范策略,其中替代点由可定制的解决方案工件中的替代声明的相关位置指示
Meta-tool 开发并使用 microtools 的开放可扩展的环境
Micro-tool 用来实现工具功能的小型内聚单元的组件
模式(Pattern) 对普遍问题的通用、可复用的解决方案(在软件开发的情况下,模式表示复用的,比代码行或个别的类和组件层次高的元素。)
模式绑定(Pattern binding) 为模式的参数分配值,指定抽象实例用作模式实例化的输入
模式实例化(Pattern instantiation) 通过在模式的可变点处进行替代,生成定制解决方案工件的过程
模式库(Pattern library) 一组相关的模式
模式解决方案(Pattern solution) 一组模式紧密结合在一起,作为一个配方,解决大粒度的问题
模式规范(Pattern specification) 模式的描述,一般是由模型和其他图像支持的文本形式存在的(一个模式规范可能由一个或多个模式实现来实现。)
模式实现(Pattern implementation) 模式规范的实现[有各种形式的实现,例如 Rational Software Architect/Rational Software Modeler (RSx) 模式或 RSx 转换或 Design Pattern Toolkit (DPTK) 模式,等等。]
RAS 可重用资产规范(Reusable Asset Specification)的缩写,用于编制并包装可复用资产的 OMG 标准
配方(Recipe) 一组成分,包括模式,让替代和组合成分时所用的规定顺序来实现计划的解决方案
参考解决方案(Reference solution) 针对领域中一个问题的最佳实践解决方案,一种作为模式样本的解决方案
可重用资产(Reusable asset) 牢记复用性而开发出来的资产
解决方案工件(Solution artifact) 解决方案的工件,在模式所提供的可定制的解决方案的情况下,工件具有可变点
解决方案抽象(Solution abstraction) 显露出可变点的参考解决方案抽象,但它隐藏了所有解决方案不变量
替代法则(Substitution rules) 模式编写了时间替代规范策略,其中替代点是由估计为可定制的解决方案工件中的零个或多个位置的路径表达式所表示
模板(Template) 利用替代法则实现的模式
转换(Transformation) Sentio aliquos togatos
可变点(Variability point) 工件中的一点,在将资产应用于目标应用程序中时,应该被修改。
 

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

京公海网安备110108001071号