UML案例研究工具和业务视图.docx
《UML案例研究工具和业务视图.docx》由会员分享,可在线阅读,更多相关《UML案例研究工具和业务视图.docx(13页珍藏版)》请在冰豆网上搜索。
UML案例研究工具和业务视图
关于本系列
本系列详细地介绍了使用IBM®Rational®SoftwareArchitect工具为面向服务的体系结构(service-orientedarchitectures,SOA)建模。
虽然本教程主要面向软件架构师,但是也应该有助于软件开发过程中的其他角色。
这些角色可能包括业务分析人员(特别是对于第1部分),或者将架构作为输入来执行他们的活动(架构分析、设计,和实现)的软件设计人员和开发人员。
本系列还涵盖了许多有益于广大读者的核心的SOA概念。
本系列教程教您如何做以下三种东西:
∙架构:
描述架构是由什么组成的,以及它适合用在整个软件开发过程中的哪个地方。
∙服务:
用SOA构架系统。
服务是该架构的中心。
∙模型:
说明RationalSoftwareArchitect工具如何支持面向服务体系结构的规范的模型驱动开发(Model-DrivenDevelopment,MDD)方法。
本系列开始将介绍软件架构,并确定服务在软件架构中的位置。
然后将展示RationalSoftwareArchitect及其基于SOA和与架构相关的特性。
本系列将通过虚构的在线DVD租赁案例研究,进行以下工作:
∙说明作为服务架构活动的输入的工作产品,包括组件业务模型、业务过程模型、系统用例模型,和设计模型的外部系统部件。
∙逐步说明在RationalSoftwareArchitect中如何指定表现架构的服务模型,包括服务消费者、服务规范、服务划分、原子的和复合的服务提供方、服务、服务协作、服务交互,及服务通道。
∙说明在软件开发过程的后来阶段,例如设计和实现,中如何使用服务模型。
关于本教程
本教程,系列的第1部分,将介绍贯穿本系列所使用的视频租赁案例研究。
它还介绍了工具RationalSoftwareArchitect(Version7和之后的版本),以及您将用于服务架构建模的特性。
最后,它将介绍用作服务建模活动的输入的两个模型:
组件业务建模(componentbusinessmodeling,CBM)图,和业务过程模型。
视频租赁案例研究
本系列教程通篇使用了名为DVD2U的虚构公司的实例。
DVD2U是1998年成立的DVD销售及租赁公司。
它们的业务是向客户提供在主流视频商店中很难找到的电影,例如,外国的或特别兴趣的。
从建立公司起,DVD2U一直有两种主要的购买方式,一个是通过传统的视频磁带公司获得较广泛的客户基础,而另一个是通过许多外语DVD赢得客户,但只有一些新客户。
当您与CEO探讨时,他会解释说,一年前,他们开始提供新的在线产品。
这里说明了它的工作方式:
人们签约订购了该服务,并且每月支付订购费,从而成为DVD2U的会员。
会员在线构建他们想要的电影列表,根据DVD2U的可用标题,一般是一百个标题。
然后DVD2U通过邮件的方式将DVD发给会员。
会员看完电影之后,使用邮资已付的信封通过邮件返还DVD。
当DVD2U在仓库中收到DVD时,就会根据会员的列表,发送另一个DVD。
根据会员的订购类型(和价格),会员一次从仓库中得到的DVD的数量是有限的(一般的会员选择流行的3DVD计划)。
DVD2U相信在线沟通,并且争取通过它的Internet网站进行构建,在网站上,会员可以交互、评价电影、写评论,甚至可以找到看同样电影的人。
人们说DVD2U网站对约会来说非常有效!
然而,CEO告诉您,虽然在线租赁中有重大的商业机会,但是该服务还存在问题。
举例来说,人们抱怨似乎从来没有收到列表最开始的电影,或者有时候在别人邮寄回之后几个星期才收到DVD,或者Web站点出现故障,他们不能更新电影列表。
您讨论了许多当前IT解决方案的其他具体问题:
∙他们当前的解决方案是异构系统的点对点的集合。
∙现有IT解决方案的凑合在一起的特性导致整个业务过程中的许多连续性中断。
∙系统中有许多功能和数据的重复,以及解决同样业务问题的不一致的处理。
∙常常在进行变更以支持新的业务过程的变化时,这些变更破坏了现有的业务过程解决方案。
∙缺少规范文档,并且在IT中缺少对系统如何支持业务的一般理解,导致了引入变更的困难。
幸运的是,CIO的好朋友是专攻SOA的IBM的商业伙伴,并且是企业及解决方案架构的强力倡导者。
在与企业架构师一起参加了IBM执行官SOA首脑会议之后,他们决定雇佣IBM做一个SOA项目。
该项目随IBM在头三个月交付的商业价值而定,而这就是您要了解的!
服务架构定位
开发过程和方法
此部分讲的是本系列的核心内容,软件开发过程和方法的术语。
它定义了活动是什么,它属于哪里,谁执行它,以及用了什么工作产品。
∙工作产品:
本系列的核心工作产品是Servicemodel(服务模型)。
它在RationalSoftwareArchitect中表示为统一建模语言(UnifiedModelingLanguage,UML)模型。
服务模型使用UMLProfileforSoftwareServices(UPSS)描述了SOA的架构上重要的要素。
本系列的第1部分介绍了RationalSoftwareArchitect和UPSS。
第2部分详细介绍服务模型。
∙规程:
图1显示了软件开发过程和方法的IBM®RationalUnifiedProcess®(RUP®)规程和阶段。
Business(建模)、Analysis、Design,和Implementation也可以解释为抽象层次。
本教程着重于Analysis和Design的核心。
(更多关于这些内容的信息可以在参考资料部分中的Learn部分中找到)。
∙阶段:
项目的细化阶段过程中进行了大量的架构活动。
在初始阶段,您(架构师)选择了架构上重要的需求。
在细化阶段,您完成了架构“全景”,以及专注于高风险用例的详细的架构工件的代表集合。
您将迭代地完成详细架构的剩余部分,贯穿构造阶段的始终。
∙角色:
软件架构师执行本系列中例举的核心任务。
该角色负责制定关于被构建系统的主要技术决策,为了满足所有需求。
这些决策的结果在软件架构中指定。
注意,首先,本系列的第1部分(本教程)介绍了业务架构师和业务过程分析人员所执行的任务。
∙活动:
本系列中详细介绍的核心活动是面向服务的体系结构(SOA,或简称服务架构)的建模。
包含了在传统的RUP之上的SOA内容的RUPforSOMA(Service-OrientedModelingandArchitecture)插件,将该活动称为ServiceSpecification(服务规范)。
请查阅参考资料部分,获得RUPforSOMA插件的链接,它提供了将RUPforSOA的内容与IBM的GlobalBusinessServices(GBS)SOMA方法结合在一起的途径。
∙工具:
软件架构师建模用的工具是RationalSoftwareArchitect。
RationalSoftwareArchitectV7和之后的版本比以前的版本包含更多SOA能力。
教程的这个部分将介绍这些能力。
该部分还使用了另一个称为WebSphereBusinessModelerAdvancedEdition(V6.0.2和之后的版本)的工具,为业务分析人员对业务过程建模时使用。
请查阅参考资料部分,获得这些产品的试用下载的链接。
图1:
RUP规程
请参考ArchitectureandServicesdeveloperWorks文章系列(参考资料部分中的Learn之下),了解更多关于SOA和IBM产品的细节。
回页首
SOA解决方案栈
如SOA术语系列文章中定义的(参见参考资料部分的链接),SOA解决方案栈,如图2所示,是描述了SOA解决方案概念视图的SOA参考模型。
有时候称为SOAlayeredarchitecture(SOA分层架构),该模型引入了层(概念,例如业务过程、服务,或服务组件)及其之间的关系。
它独立于实现所用到的技术。
图2:
SOA解决方案层次
5个功能层如下(从底到顶):
∙可操作的系统(Operationalsystems)表示现有的IT资产(后面称为外部系统(externalsystems)),并且说明了以前的IT投资是有价值的,并且应该在SOA中加以利用。
∙服务组件(Servicecomponents)可能利用可操作的系统层中的一个或多个应用程序实现服务。
如您在图2中看到的,消费者和业务过程不直接访问组件:
它们访问服务。
如果合适,可以在SOA中内部复用,或利用现有的组件。
∙服务(Services)表示已经部署到环境中的服务。
这些服务是受治理的、可发现的实体。
在服务提供方那里分组,并且由服务消费者进行消费。
∙业务过程(BusinessProcess)表示将业务过程实现为服务安排的可操作工件。
∙消费者(Consumers)表示用于访问业务过程、服务,和应用程序的通道。
4个非功能层:
∙整合(Integration):
提供将服务请求中介转换、路由,及传递给正确的服务提供方的能力。
∙服务质量(QualityofService):
提供满足SOA的非功能需求(举例来说,可靠性、可用性)的能力。
∙信息架构(InformationArchitecture):
提供支持数据、元数据,和商业智能的能力。
∙治理(Governance):
提供支持SOA中业务可操作的生命周期管理的能力。
要说明SOA解决方案是什么,还需要更多详细内容。
请查阅参考资源部分中列出的文章“DesignanSOASolutionusingaReferenceArchitecture”,了解关于这个问题的详细内容。
本系列着重于中间的层,服务层。
在本系列的后面的教程中,您将花费时间来指定服务模型工作产品的模型要素。
第1部分(本教程)探讨业务过程层。
这常常称为自顶向下的方法。
详细的设计要素属于服务组件层。
利用来自可操作的系统层的现有(非SOA)系统称为自底向上的方法。
我们推荐自顶向下和自底向上的结合,称为meet-in-the-middle,(举例来说)业务过程设置了项目的范围,以及来自现有系统的要利用的功能和操作。
回页首
用作服务建模活动的输入的模型
以下模型用于执行服务建模活动:
∙组件业务模型(ComponentBusinessModel):
企业的战略业务层部件
∙业务过程模型(BusinessProcessModel):
活动及业务项的流,以及执行角色
∙领域模型(DomainModel):
商业信息的同一视图
∙系统用例模型(SystemUseCaseModel):
参与者(人和系统)之间的交互,及所涉及的IT系统
∙外部系统模型(ExternalSystemsModel):
您可以利用的非SOA系统
∙服务模型(ServiceModel)(分析层):
确定的且有效的概念服务组
在本教程中(本系列的第1篇),您将描述组件业务模型和业务过程模型。
RationalSoftwareArchitectV7及之后的版本
RationalSoftwareArchitect是高级的MDD工具,您可以用它在不同的抽象层次上为软件建模,用变换将模型从一个层次变化到下一个层次,并且生成、开发,及测试代码。
本部分将介绍与SOA和架构相关的RationalSoftwareArchitect特性。
如果您已经熟悉了RationalSoftwareArchitect,可以跳过此部分。
RationalSoftwareArchitect基于开源的Eclipse平台,而Version7基于EclipseVersion3.2。
它通过以下内容支持团队开发:
∙基于资产的开发(Asset-BasedDevelopment,ABD)
∙基于模型的工程(Pattern-BasedEngineering,PBE)
∙统一建模语言(UnifiedModelingLanguage,UML)
∙Java™StandardEdition
∙Java™EnterpriseEdition
∙可复用的资产规范(ReusableAssetSpecification,RAS)
∙Web服务互操作性(WebServicesInteroperability,WS-I)概要文件
RationalSoftwareArchitect的集成环境中包含IBM®Rational®SoftwareModeler和IBM®Rational®ApplicationDeveloper。
它还提供与其他产品的集成特性,例如WebSphereBusinessModeler、IBM®Rational®ClearCase®、CVS(版本控制系统)、IBM®Rational®ClearQuest®,和IBM®Rational®RequisitePro®。
如果您不熟悉RationalSoftwareArchitect,我们推荐您从Welcom页开始漫游(如图3所示),当您启动RationalSoftwareArchitect并使用新工作区时,它应该会显示出来。
您还可以通过Help>Welcome访问。
图3:
RationalSoftwareArchitectWelcome页
Welcome页可以让您根据角色(右下)启用并取消RationalSoftwareArchitect能力,并且提供关于RationalSoftwareArchitect的信息的指示,例如:
∙Overview:
RationalSoftwareArchitect支持的特性的描述
∙Tutorials:
教您如何使用UML建模或应用程序开发领域中的关键特性的教程
∙Samples:
包含模型或代码的示例工程,例举出与教程中涵盖的区域相同的,工具中的关键特性
∙What'snew:
在此版本中主要的先进特性的描述
∙Firststeps:
起始步骤提供了关于执行RationalSoftwareArchitect所支持的关键任务的逐步指导
∙Webresources:
到相关在线参考资料的链接,主要在IBM®developerWorks®Web站点或上
∙Migrate:
关于如何从其他版本(举例来说,RationalSoftwareArchitectV6)或工具(举例来说,IBM®RationalRose®)导入工程的信息
如果您是软件架构师并且对RationalSoftwareArchitect十分生疏,我们特别推荐您参阅以下Overview>ModelingBasics>Modelinglifecyclesupport>Integrationsforthedevelopmentlifecycle之下的内容。
执行以下步骤:
1.如果您还没有安装RationalSoftwareArchitect(RationalSoftwareArchitect)V7,请安装它(参见参考资料部分的下载链接)。
2.通过选择Start>AllPrograms>IBMSoftwareDeliveryPlatform>IBMRationalSoftwareArchitect>IBMRationalSoftwareArchitect启动RationalSoftwareArchitect。
3.在WorkspaceLauncher对话框中,为您的工作区指定目录(举例来说,C:
\rsa-workspace)并单击OK。
4.RationalSoftwareArchitect应该启动了,您应该看到Welcome窗口(图3)。
5.研究本部分中列出的文档。
建模透视图
在用户界面(UserInterface,UI)术语中,Eclipse透视图是一组支持具体角色或活动的视图。
RationalSoftwareArchitect包含内嵌的透视图(例如,Modeling、Plug-inDevelopment,或Java),而您还可以创建您自己的。
在本教程中,您大部分时间将处于Modeling透视图中,如图4所示。
图4:
RationalSoftwareArchitectModeling透视图
Modeling透视图包括4个主要的视图:
∙ProjectExplorer视图,在该视图中,您可以看到工程、模型,和包下面的模型要素和图
∙DiagramEditor视图,在该视图中,您可以查看并修改图,并且创建、删除或更新模型要素
∙Outline视图,它让您看到,diagram视图中当前显示的是大图的哪个部分
∙Properties视图,它提供关于所选模型要素的可编辑的详细信息
执行以下步骤:
1.在Welcome窗口中,单击Gototheworkbench,如图5所示。
2.您应该默认处于Resource透视图之下。
选择Window>OpenPerspective>Modeling,切换到Modeling透视图。
这是您在本教程中用RationalSoftwareArchitect做的最后的事情。
您现在可以将其关闭。
图5:
到达工作平台
回页首
V7中的SOA新特性
现在V7RationalSoftwareArchitect产品中有两个SOA特性。
在V6中,这些是可以从developerWorks上获得的资产。
随着SOA越来越成为主流,这些特性已经被集成到产品中,并且得到充分的支持,您将在本系列教程中利用它们:
∙UML2ProfileforSoftwareServices(UPSS):
此概要文件定义了您用于为服务架构建模的原型(举例来说,«serviceSpecification»、«serviceConsumer»、«serviceProvider»,和«service»。
本系列下一个部分将在您把该特性用于服务模型时,介绍每个原型。
如果您想要现在开始了解它,查阅以下参考资料部分中的任一文章,以了解更多详情:
o关于UML2ProfileforSoftwareServices的developerWorks的文章
oTheBuildingSOASolutionswiththeRationalSDPRedbook,第9章,服务模型部分
∙UMLtoWSDLtransformation:
MDD转换的核心允许您根据源模型或代码生成目标模型或代码。
RationalSoftwareArchitect提供了所支持的转换成品,以及构建您自己的转换的框架。
UMLtoWebServicesDefinitionLanguage(WSDL)允许您根据UML模型(不论它是否用了UPSS)生成WSDL和XLMSchema。
在这种情况下,您将把服务模型用作输入。
当服务模型描述系统的架构上的重要部分时,服务模型将用于生成实现的架构上重要的部分。
设计模型中加入了更多的细节,它可以用于生成进一步的实现细节(架构上重要的部分的内部实现)。
在写本文的时候,我们使用了V7及补丁001。
我们推荐您在学习本教程时使用最新的补丁。
ComponentBusinessModel(组件业务模型)
如在SOA术语系列文章中定义的(参见参考资料部分的链接),IBM®ComponentBusinessModel™是令商家着重于核心能力——区别于竞争者的业务部分——的战略方法,看资源是如何消耗的,最好将业务与IT目标结合。
面向服务实现了这些业务组件交互的必要集成,以及它们的灵活性(例如外包一个组件):
业务组件有独特的业务目的,并且通过一组提供给(或消费)其他组件的业务服务进行协作。
注意,创建成熟的组件业务模型通常不在软件开发项目的范围之内:
它通常由商业策略和变更工作生成。
当此输入不可用时,有时候值得创建一个基本的组件业务模型图来提供软件开发项目的业务建模工作的环境:
图6展示了DVD2U企业的组件业务模型图。
图6:
DVD2U组件业务模型图
业务组件(功能领域)属于三个责任等级之一(图的行):
∙指导(战略)
∙控制(管理)
∙执行
DVD2U有四个业务能力(图的列):
∙仓储:
库存、出货,和返还
∙销售:
邮件销售、店铺销售,和推销
∙租赁:
商店、在线,或邮件租赁
∙营销:
定价、营销活动,和广告
通过构建组件业务模型工作间,您已经确定OnlineRentals业务组件(在Rental和Execute之下)是关键的业务组件。
组件业务模型称之为hotcomponent,图6中显示它上附有星型图标。
因而OnlineRentals是业务功能领域,组件业务模型工作将对于它来观察人、过程、系统,和更重要的服务。
BusinessProcessModel(业务过程模型)
图7和图8显示了ReturnVideo业务过程,它属于OnlineRentals业务能力。
这是设置SOA项目(在本系列中您为之进行架构建模)的范围的业务过程。
图7:
ReturnVideo业务过程(1/2)
从图7中看,过程流如下:
1.DVD2U会员使用预付款的信封将视频邮寄回DVD2U仓库。
2.会员可以有选择地从Web浏览器上登录他的DVD2U帐户,通过标记哪些视频已经邮寄来更新电影列表。
3.当这件事发生时,系统将检索会员的声誉。
4.一两天之后,工作在DVD2U仓库的收货员收到了视频。
5.收货员检查视频。
图8:
ReturnVideo业务过程(2/2)
图8中的过程流:
1.如果会员通报视频已归还,并且该会员有良好的声誉,那么系统更新该会员的概要文件,说明该会员列表中的下一个视频可预定。
2.当检查完视频之后,收货员在系统中记录收到该视频。
3.系统将视频副本放回整个仓库的库存中。
请注意,业务过程建模工作确定并编写代码:
∙角色:
Member(顶端的泳道)和ReceivingClerk(中间的泳道)
∙自动化(作为分类符):
HumanOnly(橙色)、Human-System(蓝色)、System-Human(浅蓝,没显示),和SystemOnly(灰色)
∙IT系统(作为分类符):
Member