UML软件工程组织

业务资源管理模式语言概述(1)(1)
作者:Rosana T. Vaccare Braga 等著,zhen_lei 译 本文选自:UMLChina 2002年11月26日

 

本文描述了一种处理业务资源管理的模式语言。该语言覆盖了业务系统中的大量应用,包括资源出租模式、交易模式和维护模式,并且是在实际信息系统开发的基础上设计的。在这种语言中采用了现有的可重用模式,是这些模式在这个特定的问题域的实例。我们的想法是尽可能地将这种语言设计完整,使其可以用于这个问题域中的各种应用设计。文中将15个模式放在同一张图中,用来检验它们使用的方便性。模式结构描述和实例描述中的对象模型都采用UML的描述方式。这种模式语言的应用表明它使分析变得容易,因为它是工作的指导。

最近发表了许多对信息系统开发有用的通用模式,如Type-Object[Joh 98],Association-Object[Boy 98],Specific-Item-Transaction,Transaction-Transaction Line Item 以及Item-Specific Item[Coa97]。这些可复用的模式可以被广泛地应用在跨领域的信息系统应用中。

我们展现的处理资源管理应用的模式语言针对一个特定领域的信息系统。该模式语言是在总结了在该领域中10多年中小规模信息系统的设计经验而得出的。这些系统中存在相似性,值得考虑建立一种模式语言,使分析员在开发类似系统时使用。本文描述的模式语言,叫做业务资源管理模式语言,是许多模式的组合,其中一些是上面提到的可复用模式的实际应用。实际上,该模式语言的定位是比那些可复用模式更高的抽象层次上。它应用在特定的领域并且包含该领域中应用系统的特定术语。它给没有经验的开发人员提供开发新系统所必要的充实的材料,它在开发过程中指导他们,提供可选择的解决方案并且指出下一步需要做的工作。

业务资源管理模式语言用来帮助软件工程师开发处理业务资源管理的应用,这些应用需要记录诸如资源出租、交易或维护等过程。对于事务(transctions),我们的定义与Coad[Coa 97]相同:一个重要的、需要记住的事件,也就是,一个系统必须按时间序列记忆的事件。资源出租主要关注物品满足某种临时需要,如内科医生的出诊时间或是为观看影片而使用的录象带。资源交易关注物品所有权的转移,例如,产品销售。资源维护关注一种特定物品的维护,使用劳动或产品,如电器维修商店。


业务资源管理模式语言


15种模式组成了这种语言。根据具体应用的特点,在许多情况下可以选择使用。图一表现了检查这些模式的先后顺序。虽然每个模式都提供了选择方向,但作为一个整体,图一的优点是非常明显的。语言中的主要模式是"资源出租(RentTheResource)"(7),"资源交易(TradeTheResource)"(8)和"资源维护(MaintainTheResource)"(9),以粗线表示。它们互相之间不是相互孤立,实际上,在应用中它们可以安装在一起。"资源维护"可能用到"资源出租"或"资源交易",例如在汽车维修店的应用系统中,部件是购买的,而劳力是出租的。


图1 模式间的依赖关系


第一个模式是"资源标识(IdentifyTheResource)"。模式11、12、13表示在一个方框内说明它们适用于箭头指向它们的所有情况。指向11的没有源头的箭头表示该模式首先被检查,紧跟着是模式11和模式12。每个模式的"下一模式"部分对图一进行详细说明。如图一所示,模式按照它们的目的分为三个部分。采用UML(统一建模语言)[Eri 98]描述这些模式。基础类方法,创建对象、设置获得属性、添加删除对象连接以及删除对象没有包含在略图中,因为它们将增加图的复杂程度,而且效果不明显。我们假设这些方法已经在每个类中都存在了。为了加强整个系统的可理解性,我们赋予系统操作到类方法中,在已有的类中选择适合的操作功能。实际上,系统操作不仅仅是方法,它们反映了真实世界的输入系统的事件,它们的功能通过调用多个不同的类中的多种方法实现。

最开始,关注应用中包括的资源。首先,必须标识资源(1),下一步,检查资源限定(2),同时量化资源(3)


模式1--IdentifyTheResource(资源定义)


上下文:

你的业务系统处理如下事务:定单、销售、采购、出租、租赁、转让、预订、修理或维护。这些业务涉及到,例如,商店中的商品,出租店中的录象带,图书馆中的图书,诊所中内科医生的时间或者机械修理场中的汽车,这些资源由特定的系统管理。

问题:

如何表示系统处理的事务中的业务资源?

约束:

· 业务资源经常具有相同的属性或特征。保存每一特定资源的信息对管理这些资源的组织非常重要。

· 如果资源只有少数属性,他们可能被放置在表示组织事务的类中,这将简化实施,尽管可能限制软件发展。

结论:

评价所有事务的主题,识别出那些可以认为是资源管理的部分。

解决方案:

为每种被管理的资源创建一个"Resource"类,定义它的所用重要属性。属性"IdCode"经常作为每个资源的唯一标识,属性"Description(描述)"用来描述资源的主要特征。其它属性根据特定资源设定。除了基础类方法没有在这里出现(原因前面已经解释了),提供了特定操作如根据IdCode显示资源和根据Description显示资源,这些方法经常被业务经理使用。

略图:

图2显示了IdentifyTheResource模式的略图。"Resource(资源)"类包括所有资源的公用属性和方法。


图2--IdentifyTheResource模式


示例:

图3表示了IdentifyTheResource模式的实例,其中"Product"扮演"Resource"角色。


图3 --IdentifyTheResource模式的实例


下一个模式:

完成IdentifyTheResource,下一个模式是QualifyTheResource(2)(限定资源)


模式2 --QualifyTheResource(限定资源)


上下文

你已经确定了系统所要处理的所有资源和它们的主要属性。其中一些属性可能由许多资源实例共有。例如,零售店里的许多部件可能是属于同一个制造商,或者上千辆汽车属于同一个型号。

问题:

如何确定作为分类的资源性质?

约束:

· 业务资源经常需要分类。例如,在一个录象带出租商店,录象带被分类为"探险"、"悬念"、"浪漫"、"喜剧"等。这些限定条件在获得有意义的报告时非常有用。例如,用户喜欢那一类影片,希望购买那些。这种分类可以通过在资源类中添加一个属性来实现。这种方法在分类本身只是一个描述而没有自身属性时可以采用。

  下一页



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