《面向对象的系统分析与设计(UML)》实验2 分析建模

  • 格式:pdf
  • 大小:2.04 MB
  • 文档页数:14

《面向对象的系统分析与设计(UML)》实验2 分析建模
[ 实验日期 ] 年 月 日
[ 实验目的 ]
(1) 理解面向对象系统分析和对象类建模(概念建模)的概念
(2)了解和掌握面向对象系统分析的方法和步骤
(3)了解和掌握寻找待开发系统中类(概念)的方法和技巧
(4) 掌握使用ROSE绘制概念模型的方法
[ 实验内容 ]
在用例分析的基础上,选择第一个迭代周期打算开发的用例,建立相关的概念模型。

[ 实验原理和步骤 ]
建模原理:
(1)使用概念目录列表(见下图)和非正式分析法(识别出问题域的文本描述中的名词短语,然后将其作为概念或
属性的候选对象。

)相结合的方法识别概念。

因此,待开发用例的文字描述中,名词可能成为概念或属性的候选对象;表示行为的动词词组有可能成为事务型或过程型对象;形容词词组有可能对应抽象的名词型概念。

采用的技术基本上就是:ER图+纯行为+OO的聚合、泛化。

(2)最终关联的数量介于“需要知道”型关联与【“需要知道”型关联+“需要理解”型(从通用关联列表中派生出的,见下图)】之间。

步骤:
(1) 识别关键用例作为第一个迭代周期的开发目标(一般是在用例图中被依赖得比较多的用例)。

可以选“企业综合信息管理系统” -> “进销存管理”子系统 -> “库存管理” -> “原材料出库” ->“领料单处理”主线中的“领料单处理”用例;也可以选“企业综合信息管理系统” -> “进销存管理”子系统 -> “销售管理” -> “合同管理” ->“收款单处理”主线中的“增加销售合同”或“收款单处理”用例。

(其实,选“库存管理”主线更合适;当然,如果要实现产销一体化,以销售订单指导生产和采购,并实现零库存目标,那么一切工作就以销售管理为中心。

即便如此,首选“增加合同”用例也更为合适。


(2)识别概念和重要属性。

(3)建立概念间的关联。

画图原理:
(1) 可以采用“逻辑视图”下的类图描述概念模型,只不过每个类中只有类名和属性,没有方法。

在概念建模阶段也没有必要确定属性的类型和访问属性。

(2) 概念间的关联可以采用一般关联(无方向实线),当然,对于聚合和泛化,应采用相应的连线(组合:实心菱形+实线;聚合:空心菱形+实线;泛化:空三角形+实线)
步骤:
(0)前提条件:第一个迭代周期可以选“企业综合信息管理系统” -> “进销存管理”子系统 -> “库存管理” -> “原材料出库” ->“领料单处理”主线中的“领料单处理”用例;也可以选“企业综合信息管理系统” -> “进销存管理”子系统 -> “销售管理” -> “合同管理” ->“收款单处理”主线中的“增加销售合同”
或“收款单处理”用例。

做好与此用例相关的概念模型
(1) 建立相关的概念模型的基础上,在“逻辑视图”下的类图中描述概念模型,可以直接在类图main中绘制,也可采用类似用例图中用过的分包机制
(2)绘制概念和重要属性。

(3)绘制概念间的关联。

[ 实验结果 ]
《学生填写》
采用ROSE绘制的,与待开发用例相关的概念模型。

《学生填写》
给出上述概念模型建立过程中,概念筛选与关联取舍的详细过程和理由。

[ 实验总结 ]
① 对重点实验结果进行分析;
② 实验中的问题和提高:对自己的分析或设计进行评价,指出合理和不足之处,提出改进的方案。

③ 收获与体会:筛选概念的要点;区分概念与属性的要点;关联取舍的要点;画图时如何防止关联重名。

附录1:相关的业务需求描述《其实,如果同学们已经写出用例的文字描述,那么就不需要看它了,直接分析用例的文字就行了》和概念筛选方案《注意,此方案中全是实体类,这与该项目更适合采用数据库解决方案有关,其实按OO 思想,还应包括事务型或过程型对象、抽象的名词型概念。

》。

附录2:用例建模的ROSE 操作
以“企业综合信息管理系统” -> “进销存管理”子系统 -> “销售管理” -> “合同管理” ->“收款单处理”为例。

(其实,选“库存管理”主线更合适;当然,如果要实现产销一体化,以销售订单指导生产和采购,并实现零库存目标,那么一切工作就以销售管理为中心。

即便如此,首选“增加合同”用例也更为合适。


逻辑视图下new 两个package “1.分析模型”、“2.设计模型”;在分析模型包下再建两个包“1.概念模型”、“2.系统顺序图”。

在概念模型下new一个类图,命名为“1.销售管理子系统概念模型”。

双击打开绘图区。

添加候选类“销售客户”。

双击图形打开规格说明,填写重要属性。

添加“销售大客户”,与“销售客户”形成派生关系,添加新增的属性。

为清晰起见,以下先屏蔽属性和方法的显示。

继续添加其他概念。

添加关联。

关于一般关联的命名、画法和阅读方向。

比如;打算在“销售客户”与“销售合同”之间画一一般关联,命名为“签订”,显然主语是“销售客户”,宾语是“销售合同”,画线时鼠标反而要从宾语拖向主语,这样,打开连线的规格说明,你就可以看到Role A是“销售客户”。

见下图。

你可以继续在此输入Role A的名字(将来它就是关联属性的名字)。

更多细节需进入Role A Detail标签,可以在此输入多重性Multiplic。

关于聚合与组合,首先,关联的读法是A聚合成B(因此菱形在大头),因此要从B画向A,比如,从“销售合同”画向“销售合同明细”。

这时Role B Detail中的Aggregate就已经选中(表示聚合,是空心菱形),如果再选中By Value,就变成组合了(实心菱形)。

对于刚才这个组合关联,不命名也问题不大,因为它无非就是“包含于”的含义,注意观察一下未命名关联的缺省名称。

泛化关系没有Role A, Role B之分,因此读作X泛化成Y,从X画向Y。

请继续完成剩余的重要属性、关联的多重性等。