软件工程 张秋余等著 第八章课后习题部分答案

第八章 用例驱动

  1. 为什么使用用例?
    正确答案:
    用例被普遍采用的原因主要有:
    1)为用户提供了捕获业务功能需求的系统方法。
    2)可驱动整个开发过程(从用例捕获开始项目的开发过程),大部分开发活动如分析、设计和测试都是从用例开始执行的,而设计和测试则可根据用例的重要性(优先级)进行规划和协调——目的是实现重要的核心业务。
    3)正确的用例捕获,可以反映用户的真实需求。
    4)用例有助于设计构架。
    5)用例可作为编写测试计划、用户手册的起点。

  2. 什么是业务模型?如何建立业务模型?
    正确答案:
    第一问答案:
    业务模型是理解一个组织中业务过程的技术。业务模型(business model)对应用领域的业务过程进行描述,例如,银行的业务过程包括存款、贷款以及投资等。业务模型主要通过业务用例模型和业务对象模型来体现,业务模型提供对客户业务的整体了解。
    第二问答案:
    业务模型分两步来建立:
    1)建立业务用例模型——业务对外所提供的价值
    1)识别业务参与者,找出业务活动的服务对象;
    2)识别业务用例,业务活动的操作序列;
    3)详述业务用例,建立文档与UML模型;
    2、建立业务对象模型——业务内部的实现机制
    1)识别工作人员,承担一系列职责的人;
    2)识别业务实体,业务内部所访问和操纵的事物;
    3)实现工作单元,从实现角度来展示业务用例如何得到满足,表现为工作人员与业务实体之间的交互过程。

  3. 怎样描述用例?
    正确答案:
    答:
    描述用例可利用用例模型图和用例规约文档来进行描述,用例模型图是由业务系统中的业务用例建立的用例图,而用例规约文档主要包含如下内容:
    1)用例名称:动词短语(动宾结构),描述用例目的的简短动词短语。
    2)描述:介绍用例目的,强调用例为参与者提供的价值。
    3)前置条件:描述在哪些用例成功执行之后,该用例才会被触发,并描述其中的依赖关系。
    4)部署约束:描述如何使用该系统来完成用例。
    5)正常事件流:交互动作的有序序列,描述所有的系统输入以及系统响应,组成了该用例的正常流程:该正常事件流表明事件按计划进行时的交互动作,揭示了用例的目的。
    6)可选事件流:交互动作的有序序列,描述组成该用例的一个可选流程的所有系统输入及其响应。
    7)异常或错误事件流:交互动作的有序序列,描述组成该用例的一个异常流程的所有系统输入及其响应。
    8)活动图:在图中显示事件流的所有流程,能够完整地描述事件流,为度量用例的复杂度提供方法。
    9)非功能性需求:用一两个简短的段落来介绍用例成功执行的判断准则,该准则不适合在事件流中描述。
    10)说明(可选):确定不符合上面类别的其他事务,其中可能包括对系统功能的限制。
    11)未解决的问题(可选):需要进一步询问相关人员的问题列表。

  4. 有哪些用例关系?如何确定?
    正确答案:
    第1问答案:
    用例关系主要有:泛化、扩展、包含
    第2问答案:
    泛化:在确定并概括每个用例的动作时,还应该确定公用的或共享的动作。要想减少冗余,可以将共享的部分提取出来放到单独用例中进行描述,以便重用,可以用泛化表示这种重用关系。
    扩展:在原用例的基础上,对原用例进行功能补充,表现为“补充的用例说明”,主要体现为确定扩展的功能;
    包含:对原用例提供明显的、无条件的扩展——注意:离开被包含的用例,原用例就不能构成一个完整的用例——即提取公共用例,以便实现多个用例的复用。

  5. 教材P235图示的图8.25或第8章PPT的97页中(如下图所示)所述的考勤系统中的“登录”用例活动图中没有登录次数的限制,现在需要对登录重试的次数限制为3次(只能登陆3次,超过3次就退出系统),请修正该模型并依据原来的活动图画出新的“登录”用例的活动图,以满足需求的变更。
    软件工程 张秋余等著 第八章课后习题部分答案
    软件工程 张秋余等著 第八章课后习题部分答案

补充题1:

业务描述:旅行但汽车的油不足以应付全部路程。那么为汽车加油的动作在旅行的每个场景(事件流)中必然都会出现,不加油就不会完成旅行。吃饭则可以由司机决定是否进行,不吃饭不会影响旅行的完成。用例图如何画?
软件工程 张秋余等著 第八章课后习题部分答案
补充题2:

在下列用例图中,哪些是系统的参与者?系统的用例有哪几个?
软件工程 张秋余等著 第八章课后习题部分答案
答:参与者(Actor):(1)Bank network; (2)Manageer; (3)Clerk

用例(Use Case):(1)Authorize ;(2)Open store ;(3)Log onto redister ;(4)Sell goods;(5)Restorck inventory。