《面向对象设计UML实践(第2版)部分课后习题答案》由会员分享,可在线阅读,更多相关《面向对象设计UML实践(第2版)部分课后习题答案(11页珍藏版)》请在金锄头文库上搜索。
1、第二章2.1 2.2 下图使用对象名称的代码中的变量的名称。虽然这可能是澄清当前的例子中,它运行对象名和变量名的两个截然不同的概念混淆的风险。 这是有潜在危险的环境中, 对象被重新分配到不同的变量。此图说明了不同的数字可以存在一个目录条目:零个,一个或多个部分对象。除了装配对象,此图中的所有对象已经出现答案(一)部分。客户对象已加入在这个图中所示,发送到组件的初始投资成本信息。2.3( a)数据重复,每个零件只能指向一个目录条目2.4 2.7 第八章8.1( a) “ INSTANCEOF ”定型只来作说明。一个事实,即对象的位置类的实例已经显示在标签中的每个对象。( b)我们假定该计数器保持
2、一个整数值,它被初始化为零。 “设置”和“复位”具有相同的效果,所以被建模为一个单一的操作, “ setToZero ” 。( c)一个枚举用于指定开关的可能状态。在这种特定的情况下,一个布尔状态变量可以被使用,但定义一个枚举,提供了更大的范围扩展。另外,由于该类接口,可以指定不指定记录的状态如何。( d)许多“多重属性,用于记录亮着的灯组,使用图 8.3 所示的颜色枚举。 OCL 收集文字符号已被用来显示此属性的值对象图标。8.2(a) 租借出去, 一个人可以拥有零个或更多的书籍, 每本书可以借由在任何给定的时间最多只有一个人。(b) 一个人可以有读了许多书,每本书的很多人可能已经被读出。(
3、c) 一块 只能在同一时间占据 一个方块 ,如果它已被捕获,它不占用广场。每平方可以最多有一个一块就可以了。 如果目的是只模拟棋盘上的棋子, 在 这种关联的 右侧 的多样性应该是刚好 1。(d) 下面的多重性是指在一个给定的时间内谁是已婚的人,假设没有一夫多妻或一妻多夫。的配偶关系是对称的,它可以简单地被标记关联的名称。(e) 一个人可以拥有零个或更多的孩子,但每个人都有正好有两个(生物)的父母。这种关系是不是对称的,因此增加角色的名字,使预期的诠释更清晰。8.5 8.16 第九章9.1 9.7 第十章10.11 10.15 第十二章12.1 任何对象的客户对象链接到两个 SavingsAcc
4、ount 和 DepositAccount 的实例图, 其中,将违反 XOR 约束。最简单的例如图如下所示。12.2 任何对象图所示, 其中一人作为主席的一个委员会, 他们不是会员将违反子集约束。 这一个简单的示意图如下图所示。 这是假设, 有没有 的 memberOf person 对象之间的联系及委员会 A,在图上没有显示。12.4 context Customer inv:savingsAccount-size() = 0 or depositAccount-size() = 0 异或约束可以用以下约束形式表示 context C inv:d-size() = 0 or e-size()
5、 = 0 12.8 12.9 context Employee inv:not manager-isEmpty() implies self.department = manager.department context Person inv:manager-forAll(e | e.contract.grade.salary self.contract.grade.salary) context Department inv:staff-exists(e | e.contract.grade.salary 100000) 12.10 表达式左边是个体,右边是聚集 context Person inv:not self.manager-includes(self) 12.11. context Customer inv:account-forAll(a | a.balance 100) 第十三章13.1 13.4 13.15 13.16 4.17 创建预约时输入所有餐桌号码。另外,餐桌太小例外可以提供增加另外餐桌来完成预约。 界面方面,需要表示多个餐桌属于一个预约的情况。可以使用相同颜色,并增加预约 ID 引用。