這個系統要如何分析(100分)

  • 主题发起人 主题发起人 umlboy
  • 开始时间 开始时间
很好的创意 当然可以
 
UML没理解好的话,做项目时还是别太依赖UML而忽略了数据流程
其实就你说说的用类的继承来使到代码重用也就不错了,
 
[:(]
楼上说的有道理,也许是我对UML的理解和运用技术不熟练,所以会那样说。
但还是建议,如果对某一门工具不是很理解的话,就不要盲目采用它。
 
仓库管理器:一个库存的分析模式
Eduardo B. Fernandez 著,邓克译
1111 介绍
现代制造系统中,制造过程中所涉及信息的管理已经成为降低产品成本,提高产品质量的一个关键因
素。很多公司和机构在这个领域投入了大量的资源,制造资源计划系统(MRP)已经变得重要了[Salv92]。
库存是MRP 系统中最重要的一部分,用来跟踪目标对象的数量和位置。
这里,我们开发了一个库存模式-仓库管理器,它满足对可重用性和可扩展性所期望的要求。这个模
型不仅考虑了系统的静态视图,还考虑了它的动态方面。因为一个库存控制系统不能被完全地模型化(除非
顾及到整个制造系统中几个其他方面的问题),所以模型中也包含了制造系统的一些功能性部分(非库存方
面的)的作用。这个模型可以作为开发一个完整的制造系统模型的起点或是作为一个语义分析模式
(Semantic Analysis Pattern)[Fer00a]的实例,这种实例实际上是一个领域范围内可以使用的最小应用。这个
模式也是一个组装模式[Rie96],我们识别出了两个原子模式:基本库存(Basic Inventory)和物品分布(Item
Distribution)。
2 问题
商业活动、制造车间、图书馆怎样跟踪各种不同种类的物品和它们的位置?
3 环境
所有机构,不管是大型的,还是小型的,都使用零部件来构建产品或供应其他商家。他们需要能够跟
踪物品的数量。在制造车间里,这些物品是零部件和产品;在图书馆里,它们是书,磁带,或者是档案;
在服装店里,它们是服装及附属物,等等。这些机构也需要能够找到所需的物品。
4 约束
在一个公司里,物品可能是正在制造或已经完成产品的原材料。货物有损失或遭到破坏的可能。
机构必须能够跟踪仓库中物品的实际数目。
其他功能单元可以改变物品的数量:例如,物品无论何时、何地迁移或使用时,应该更新其相应
的库存数量。
解决方案必须描述一个基础的语义单元,这意味者它必须足够简单,以便应用到各种环境中。这
是可重用性的基础。
解决方案必须包括现实的文档解释。
5 解决方案
5.1 需求
一个库存系统的基本功能或用例(Use Case)可以总结如下:
把不同类型的货物分开,如:物料或零部件与成品。
跟踪仓库中的每个物品。可能需要几种类型的数量。手头(onHand)数量指示了物品的现存数量。
定购(onOrder)数量指示了将来有多少物品可以入库。保留(reserved)数量指示了为订单保留
的数量,它暗示了一个员工以后可以使用的数量(可获得数量)是手头数量与保留数量的差额。
在更复杂的系统中,可能还会用到其他类型的数量。
跟踪物品的位置。库存应该记录物品在特定位置上的分布。
由这些功能的本质所决定,几乎所有其他子系统都会对库存中记录的数量有影响。一些对库存系统有
直接影响并更新库存记录数据的功能是:采购、接收、物料的分发、审计、报废、发运、制造。
5.2 原子模式
我们从定义一个跟踪物品的库存模式—基本库存模式开始。
图1.基本库存模式的类图
库存系统的基本模式如图1 所示。物品是任何我们想知道它的存在位置和数量的东西。每一个物品属
于一个唯一的类型,这个类型提供了一个标识,如:物品号(物品编码,型号)。库存(Inventory)类持有每
个物品我们所关注的各种数量。这可以被认为是一个原子模式,如语义分析模式(SAP),它既可以单独存
在,又可以作为一个更大模型的一部分。它的动态方面在组装模式中显示。
图2 显示了物品分布模式的类模型。这是一个描述一系列物品的位置以及在那些位置上的分布的模
式。它是另一个原子模式,将和基本库存模式一起组装成仓库管理器模式。为了指示分布状态,我们需要
把库存数量分解成多个位置数量。(一个库存物品通常存放在几个不同的位置上)。这要求在库存(Inventory)
类和位置(Location)类之间定义多—多的关联关系,并且使用一个关联类-分布(Distribution)来指示物品在
位置上的分布。
图2 物品分布模式的类图
5.3 货物管理器的类模型
如下图所示:
图3 显示了满足需求5.1 的库存模型。仓库(Stock)和零部件/产品(Component/Product)通过一个聚合关
联发生关系。[1] 库存(Inventory)类中的数量(quantities)属性是仓库(Stock)与零部件/产品(Component/Product)
类的结合点,不同的链接,有不同的值。这个模型允许设计者定义不同类型的仓库,作为单独的物品集合;
例如,零部件仓库,产品仓库。库存的不同类型可以归纳为一个库存(Inventory)类。
1 这是一个松散的聚合类型,两个类都可以独立存在。[Booc99]
图3.仓库管理器分析模式的类图
【译者注:原图中关联类ComponentInventory 和ProductInventory 的关联目标搞反了。这幅图是译
者自己用Rational Rose 2000 作的。另外,原图中的的’/’符号,在UML 中没有,应该是作者的笔误。】
Location
- number
- location
- size
+ add_StockRoom()
+ delete_StockRoom()
Inventory
- onHand
+ transfer(qty, from, to)
+ add_to_stock()
+ remove_from_stock(qty)
+ adjust_discrepancy(qty)
*
*
Distribution
- localonHand
- localReserved
- cycle_count
- localAvailable
+ add_to_localStock(qty)
+ remove_from_localStock(qty)
+ localReserve(qty)
+ localUnreserve(qty)
+ verify_count()
+ adj_discrepancy()
+ set_cycle_count()
ComponentInventory
- available
- reserved
- receiving
- onOrder
- minQty
- maxQty
+ reserve()
+ unreserve()
+ receive()
+ unreceive()
+ order()
+ unorder()
+ check_lowerLimit()
ProductInventory
Product
- model
- color Stock
+ add_element()
+ remove_elment()
*
Component
- itemnum
- description
*
物品被划分成两个不同的类型:成品和用于制造产品的零部件。其他的划分方法也是可能的。产品
(Product)类中的“型号(model)”属性,用来作为一个唯一的标识符,其他属性描述了顾客选择时可能用到
的特征,如颜色等。零部件(Component)类具有物品序号,描述,类型等属性,物品序号用来做唯一的标识
符。产品(Product)和零部件(Component)通常是多-多的聚合关系(一个型号的产品使用几种类型的零部件,
一种类型的零部件可以被用在几种型号的产品中),不过这与库存模型无关,因此在图中没有标明。
物品(Item)类被划分成产品(Product) 和零部件(Component)子类的原因是:在这两个实体的管理中,存
在着很多不同。例如,产品是由一些零部件制成的,在制造过程中,库存系统需要跟踪零部件数量的变化。
换句话说,零部件库存比产品库存更复杂。另一方面,两者又在一些方面有相同之处,例如,都需要跟踪
手头(onHand)数量(合计的总数量)和实际的存放位置。这里可以应用泛化关系,定义库存(Inventory)
类为一个父类,含有共同的特征,而产品库存(ProductInventory)和零部件库存(ComponentInventory)类作为
子类,含有每一种不同库存类型的独特特征
 
todo
wn186
能否告诉具体的出处,没有图形,看不清楚。
拜托!
 
后退
顶部