UML软件工程组织

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

 

当分类属性本身具有共同的属性和方法时,将分类属性独立为一个类更加合适。为每个资源都保留相同的属性描述会导致冗余。但是,分开处理可能增加系统的处理时间。在优化系统性能时需要考虑这些问题。

结论:

评价所有业务资源的属性,确定那些起到分类作用的属性。

解决方案:

为每一个作为分类的属性建立一个"资源类型(Resource Type)"类,并且与"资源(Resource)"类相连接,它

它们之间的关系必须是"多对一",说明多个资源共享相同的资源类型。

略图:

图4表示QualifyTheResource 模式。"Resource(资源)"类中添加了一个方法,根据类型列出资源。新创建的"Resource Type(资源类型)"类具有"Code(代码)"属性(可选),"Description(描述)"和由特定情况决定的其它属性。



图4--QualifyTheResource 模式


示例:

图5表示QualifyTheResource 模式的一个实例,其中其中"Product(产品)"扮演"Resource(资源)"的角色,其中"Manufacturer(制造商)"扮演"Resource Type(资源类型)"角色。



图5--QualifyTheResource 模式实例


变体:

为了实现多种分类,资源可以有多种分类方式,例如在会计系统中。为实现这种需求,可以根据分类的不同角度,引入新的类。例如,在录象带出租中,除了上面提到的分类方式,可能存在另一种分类方式,按出租率进行分类(例如,"A"表示经常出租,"B"表示出租率中等,"C"表示很少有人租)。根据这种分类就可以确定出租价。

相关模式:

"QualifyTheResource"是"Type-Object"模式[Joh 98]和Accountability Type[Fow 97]的一个应用。

下一模式:

完成了QualifyTheResource(或者没完成),可以进行QuatifyTheResource(3)(量化资源)。

模式3 --QuantifyTheResource(量化资源)


上下文

你已经确定了系统所要处理的所有资源并且可能也确定了资源相关的性质。现在需要考虑的一个重要问题是资源的量化形式,在许多实际应用中,跟踪资源的每个实例非常重要,因为它们每个个体会独立处理。例如,图书馆中的一本图书可能有多个样本,可以借给不同的读者。一些应用处理资源的量,在这些应用中,不需要知道被处理的具体的资源实例。例如,买了一定数量的铁。在其它应用中,资源作为一个整体处理,例如,需要维护的汽车或给病人看病的医生。

问题:

如何量化资源?

约束:

· 确切地知道应用系统采用什么量化方式在分析过程中非常重要。在这个问题上的错误结果会危及以后的进展。

· 在需要跟踪资源的特定实例的情况下,冗余信息可能储存在一个资源的多个实例中,但这种冗余是非常不明智的。

· 为了避免冗余,创建一个新类用来储存相同资源所有实例的信息。但是这种方法的代价是需要处理两个类而不是一个,例如,需要更多的处理时间。

结论:

确定如何处理资源,并采用三种QuantifyTheResource模式中的一种建立量化模式。

解决方案:

针对这个问题,根据量化方式的不同有三种略有区别的解决方案。当识别资源实例非常重要时,需要创建一个新的附加类"ResourceInstance(资源实例)"。属性"Status(状态)"被加到"ResourceInstance(资源实例)"类中,为了控制其独立的生命周期。例如,一本书的样本的生命周期状态包括四种可能的状态:"可以使用"、"预订"、"借出"、"预订并且借出"。

当资源采用特定量进行管理时,为了处理总量控制,属性"Quantity in stock(存货量)"应该被加到"Resource(资源中)"。在这种情况下,属性"Status(状态)"不适用,因为这种情况下,系统一次处理大量的资源,不能独立地控制一个资源的生命周期。

当资源是唯一时,属性"Status(状态)"应该加到"Resource(资源)"类中用来控制生命周期,例如,一个汽车修理商店,汽车的状态可能是:"工作"、"报废"和"修理"。

略图:

图6表示了QuantifyTheResource模式的三种子模式。采用图6(a)的子模式,叫做"ResourceInstance"。当区分资源实例非常重要时;当资源采用定量管理时采用图6(b)的子模式,叫做"ResourceMeasurement"。当资源唯一时,采用图6(c)中的子模式,叫做"SingleResource"。



图6--QuantifyTheResource模式


示例:

图7表示了QuantifyTheResource模式的实例。在图7(a),"Video(影片)"扮演"Resource(资源)","Videotape(影带)"扮演"ResourceInstance(资源实例)"。在图7(b)中,"Product"是被控制的资源,在图7(c),"车辆"是独立管理的资源。



图7 QuantifyTheResource模式


相关模式:

ResourceInstance是"Type-Object"模式[Joh98],the ItemDescription模式[Coa92]和the Item-Specific Item 模式[Coa 97]的实例。

下一模式:

完成QuantifyTheResource模式后,应该检查所开发的应用用来处理什么类型的资源事务。如果应用关心资源交易,也就是资源的买卖,你应该采用TradeTheResource(8)(交易资源),可能还有QuoteTheTrade(5)(交易询价)和CheckResourceDelivery((10)检查资源交付)。如果应用关心出租或租赁资源,你应该采用RentTheResource(7)(出租资源),可能还有BookTheResource(4)(预订资源)。如果应用处理资源修理,你应该采用MaintainTheResource(9)(维护资源)和QuoteTheMaintenance(6)(维护询价)。注意,有许多应用需要几种模式的组合。例如,汽车出租系统,除了预订和出租汽车,我们还要控制购买、维修和报废车辆。

上一页  



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