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

第九章 面向对象分析

1
【简答题】
分析模型由哪些部分组成?并手工给出图示。
正确答案:
分析模型由代表该模型顶层包的分析系统组成;使用分析包将分析模型组织为更易于管理的若*分,这些部分代表了对子系统或某一层系统的抽象;分析类代表了对系统设计中的类或子系统的抽象;在分析模型中,用例是通过分析类及其对象实现的,由分析模型中的各种协作来表示,标记为用例实现—分析。具体组成如下图所示:
软件工程 张秋余等著 第九章课后习题部分答案

什么是实体类、边界类和控制类?请手工画出图形符号表示?
正确答案:
第1问答案:
实体类(entity class)用来对持久信息进行建模。
边界类(boundary class)用来对软件产品和参与者之间的交互进行建模。
控制类(control class)用来对复杂的计算和算法进行建模。在银行软件产品中,计算利息的算法就是一个控制类。
第2问答案:
以下两种都算正确。
![在这里插入图片描述](https://img-blog.****img.cn/20200810095957512.png

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

或>、<>、<>

为什么要划分用例等级?怎样划分?
正确答案:
第1问答案:
每个用例都要根据其风险、对用户和构架的重要性、对团队是否有能力开发等方面划分等级。一旦用例按这些类别来分类,就可以确定哪个用例的子集是最重要的,并适合在第一个迭代中实现。该过程包括一系列权衡和妥协的综合考虑。例如,一个用例的风险可能很高,就想在第一次选代中实现它,但是,如果开发团队对实现该用例完全没有把握,那么,作为妥协,就应该选择一个风险较低、容易实现的用例。
第2问答案:
通常,可以将用例的风险、重要性、适用性分成1~5个数字表示的等级。级别越高,该用例就越适合在第一次或者下一次选代中实现。

在进行包的设计中,有一条原则是“避免循环依赖”,如果设计时出现循环依赖,会有什么现象发生?
正确答案:
若出现循环依赖则使得任何一个包都不能独立的重用,修改任何一个包都会引起所有包的变化。

在一个“客户服务系统”中,需要管理的用户包括客户管理人员、维护人员、部门领导,他们都具有用户ID、姓名、性别、年龄、联系电话、部门、职位、密码、登录名。其中,维护人员具有三个操作,即接受派工任务、填写维护报告、查询派工任务;部门领导具有五个操作,即安排派工任务、修改派工任务、删除派工任务,查询派工任务,处理投诉;客户人员具有四个操作,增加客户、删除客户、修改客户和查找客户。根据这些描述信息,请手工画出客户管理人员、维护人员、部门领导三类用户的类的定义。
软件工程 张秋余等著 第九章课后习题部分答案
在上题中,客户人员,维护人员,部门领导都具有一些共同的属性,所以可以进行抽象出一个单独的抽象系统用户类,客户人员,维护人员,部门领导分别是从系统用户类进行继承(泛化)得到的,根据这些信息,请手工创建包括类关系的类图。
软件工程 张秋余等著 第九章课后习题部分答案
【简答题】
在客户服务系统中,可将客户业务处理的功能单独的作为一个包,在该包中嵌套两个子包,分别是客户咨询管理,和派工管理。请根据该描述手工画出该客户服务系统的包图。
软件工程 张秋余等著 第九章课后习题部分答案
【简答题】
根据上题画出的包图根据下述业务来细化包图。
具体描述:在客服咨询管理中嵌套三个子包,分别是咨询,投诉,保修;派工管理中嵌套两个子包,维护安排和回访安排。请手工画出细化后的包图。
软件工程 张秋余等著 第九章课后习题部分答案
【简答题】
对客户服务系统中的客服人员修改客户信息的用例进行动态建模,该交互操作的动态建模由客服人员、客户信息界面类、客户信息控制类、客户信息实体类组成,请在顺序图中手工创建这些对象的图符表示。
软件工程 张秋余等著 第九章课后习题部分答案
【简答题】
在上题创建的顺序图对象中,根据修改客户信息的用例,添加信息和脚本信息完成完整的顺序图建模,需要手工绘制。
软件工程 张秋余等著 第九章课后习题部分答案