列表

详情


阅读以下关于系统设计的叙述,在答题纸上回答问题1至问题3。
某软件公司为电子商务企业开发一套网上交易订单管理系统,以提升服务的质量和效率。在项目之初,项目组决定采用面向对象的开发方法进行系统开发,并对系统的核心业务功能进行了分析,具体描述如下:

注册用户通过商品信息页面在线浏览商品,将需要购买的商品添加进购物车内, 点击“结算”按钮后开始录入订单信息。
用户在订单信息录入页面上选择支付方式,填写并确认收货人、收货地址和联系方式等信息。点击“提交订单”按钮后产生订单,并开始进行订单结算。
订单需要在30分钟内进行支付,否则会自动取消,用户也可以手工取消订单。
用户支付完成,经确认后,系统开始备货,扣除该商品可接单数量,并移除用户购物车中的所有商品资料。
生成订单表单,出货完毕,订单生效。为用户快递商品,等待用户接收。
用户签收商品,交易完成。

【问题1】(12分)
识别设计类是面向对象设计过程中的重要工作,设计类表达了类的职责,即该类所担任的任务。请用300字以内的文字说明设计类通常分为哪三种类型,每种类型的主要职责,并针对题干描述案例涉及的具体类为每种类型的设计类举出2个实例。 
【问题2】(3分)
在面向对象的设计过程中,活动图(activity diagram)阐明了业务用例实现的工作流程。请用300字以内的文字给出活动图与流程图(flow chart)的三个主要区别。
【问题3】(10分)
在面向对象的设计过程中,状态图(statechart diagram)描述了一个实体基于事件反应的动态行为。请根据题干描述,填写图2-1中的(a)-(e)空白,完成订单处理的状态图。
    
图2-1  订单处理状态图

参考答案:

【问题1】
(1)实体类。实体类映射需求中的每个实体,保存需要存储在永久存储体中的信息,例如,用户、商品等。
(2)控制类。控制类是用于控制用例工作的类,用于对一个或几个用例所特有的控制行为进行建模。例如,结算、备货等。
(3)边界类。边界类用于封装在用例内、外流动的信息或数据流。例如,浏览器、购物车等。
【问题2】
(1)活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现系统的行为,而非处理过程;而流程图着重描述处理过程。
(2)流程图一般都限于顺序进程,而活动图则可以支持并发进程。
(3)活动图是面向对象的,而流程图是面向过程的。
【问题3】
(a)取消
(b)待结算
(c)大于30分钟
(d)订单生效
(e)用户签收

详细解析:

本题主要考查考生对于软件系统设计的理解、掌握和应用。在解答该问题时,应认真阅读题干中给出的需求描述,然后进行类、活动图和状态图建模。
【问题1】
识别设计类是面向对象设计过程中的重要工作,设计类表达了类的职责,即该类所担任的任务。在系统设计过程中,类可以分为三种类型:实体类、边界类(或接口类)和控制类。
实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息。题干描述中商品、订单、注册用户、送货信息、购物车等都是实体类。
边界类用于封装在用例内、外流动的信息或数据流。题干描述中商品信息页面、订单信息录入页面和订单表单都属于边界类。
控制类是用于控制用例工作的类,一般是由动宾结构的短语(“动词+名词”或“名词+动词”)转化来的名词。题干描述中订单结算、订单支付、备货、出货等都属于控制类。
【问题2】
本问题主要考查考生对活动图和流程图基础概念的理解。
活动图和流程图的主要区别是:
(1)活动图是面向对象的,而流程图是面向过程的。
(2)活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系。
(3)活动图能够表示并发活动的情形,而流程图不能。
【问题3】
本问题主要考查状态图建模的理解和应用。在面向对象的设计过程中,状态图(ststechart diagram)描述了一个实体基于事件反应的动态行为。考生需要对需求进行分析,特别是业务处理过程进行深入理解的前提下完成状态图模型。具体结果如下图所示。

上一题