
| 统一建模语言UML已被OMG组织采纳为标准,UML几乎已经成为软件工程师必须掌握的核心技术之一。意识到学生们对了解UML的需求与日俱增,我们引入UML作为两门重新设计的大学课程的建模语言。遗憾的是我们发现没有合适的教科书。有关UML的教材多为原理性的,主要的对象是有经验的开发者而不是学生。因此,我们决定自己编写教科书,由此产生了这本书。 |
| 第一部分 基本概念和背景知识 第1章 关于组件化技术软件工程3 1.1 什么是好系统3 1.2 我们拥有好系统吗4 1.2.1 问题4 1.2.2 灾难性故障5 1.2.3 一个又一个的承诺6 1.3 好系统是什么样的6 1.3.1 封装:低耦合8 1.3.2 抽象:高内聚10 1.3.3 结构及组件11 1.3.4 基于组件的设计:可插入性12 1.4 如何构造好的系统12 1.5 小结13 第2章 对象概念15 2.1 什么是对象15 2.1.1 举例16 2.1.2 消息17 2.1.3 接口17 2.1.4 类18 .2.2 与上一章目标的关系20 2.3 继承22 2.4 多态性与动态绑定23 2.5 小结25 第3章 用例方法介绍27 3.1 问题提出27 3.1.1 需求澄清27 3.1.2 用例(use case)模型28 3.2 范围界定和迭代30 3.3 标识类32 3.4 类间关系33 3.5 系统中的交互35 panel 3.1 契约设计137 3.5.1 系统中的变化:状态图39 3.5.2 进一步的工作39 panel 3.2 持久性40 3.6 小结41 3.7 讨论题41 第4章 开发过程43 4.1 术语定义43 4.1.1 模型与建模语言44 4.1.2 过程与质量45 4.2 开发过程45 4.2.1 有统一的方法学吗47 4.2.2 使用uml的过程48 4.3 系统、设计、建模与图50 4.4 小结51 第二部分 uml语言详述 第5章 类模型基础55 5.1 标识对象和类55 5.1.1 好的类模型具备的条件55 5.1.2 如何建立良好的类模型56 5.1.3 什么样的实体是类58 5.1.4 现实世界对象与它们的系统表示58 5.2 关联59 5.3 属性和操作61 5.3.1 操作61 5.3.2 属性62 5.4 泛化63 panel 5.1 按照约定2设计:替代性63 5.4.1 使用英语检查是否存在泛化65 5.4.2 实现泛化:继承65 5.5 开发中的类模型66 5.6 crc卡67 5.6.1 建立crc卡67 5.6.2 在开发设计中使用crc卡技术67 5.6.3 crc卡的例子68 5.6.4 重构69 5.7 小结69 5.8 讨论题69 第6章 类模型的进一步讨论71 6.1 关联的进一步讨论71 6.1.1 聚合与组合71 6.1.2 角色73 6.1.3 导航性73 6.1.4 限定关联75 6.1.5 导出关联76 6.1.6 约束77 panel 6.1 ocl对象约束语言79 6.1.7 关联类79 6.2 类的进一步讨论80 panel 6.2 构造型81 6.2.1 接口81 6.2.2 抽象类83 panel 6.3 特性与标记值83 6.3 参数化类84 6.4 依赖85 6.5 组件和包85 6.6 可见性,保护性85 6.7 小结86 第7章 用例模型要点87 7.1 执行者详述89 7.2 用例详述91 7.3 系统边界91 7.4 用例的使用92 7.4.1 用于需求捕获过程中的用例92 7.4.2 开发过程中的用例93 7.5 用例可能存在的问题94 panel 7.1 用例驱动开发吗?95 7.6 小结95 7.7 讨论问题96 第8章 用例模型的深入讨论97 8.1 用例之间的关系97 8.1.1 用例重用:《include》97 8.1.2 组件和用例99 8.1.3 分离出不同的行为:《extend》101 8.2 泛化101 8.3 执行者与类103 8.4 小结104 8.5 讨论问题104 第9章 交互图要点105 9.1 协同106 9.2 协同图中的交互107 9.3 顺序图109 panel 9.1 消息应走向哪里?demeter定理110 9.4 高级特征111 9.4.1 从对象发往对象自身的消息111 9.4.2 隐匿行为细节112 9.4.3 返回值113 9.4.4 对象的生成和删除114 9.4.5 时序116 9.5 交互图的其他用途117 9.5.1 说明一个类如何提供一个操作117 9.5.2 描述一个设计模式如何工作117 9.5.3 描述如何使用一个组件117 9.6 小结118 第10章 交互图高级讨论119 10.1 类交互图119 10.1.1 条件行为119 10.1.2 迭代121 10.2 并发123 10.3 小结126 第11章 状态图和活动图要素127 11.1 状态图127 11.1.1 意外消息129 11.1.2 抽象程度129 11.1.3 状态、转移、事件130 11.1.4 动作130 11.1.5 警戒门限132 panel 11.1 用状态图设计类133 11.2 活动图134 11.3 小结136 第12章 深入研究状态图和活动图137 12.1 其他类型的事件137 12.2 其他类型的动作138 12.3 深入研究状态图139 12.4 状态图中的并发性140 12.5 小结141 第13章 实现图143 13.1 组件模型143 panel13.1 总结:分类器和实例145 13.2 配置模型146 13.2.1 物理层146 13.2.2 在硬件上配置软件147 panel 13.2 项目中的配置模型148 13.3 小结148 第14章 包、子系统和模型149 14.1 包149 14.2 子系统153 14.3 模型154 14.4 小结154 第三部分 用例学习 第15章 cs4管理157 15.1 用例学习157 15.1.1 类模型160 15.1.2 动态特性161 15.1.3 状态图162 15.1.4 活动图162 15.2 讨论162 第16章 点棋盘游戏165 16.1 研究范围和初步分析166 16.1.1 noughts和crosses游戏(tic-tac-toe)166 16.1.2 chess(国际象棋)游戏167 16.2 交互动作170 16.3 进一步研究框架172 16.4 状态174 16.5 讨论题175 第17章 离散事件仿真177 17.1 需求177 17.2 类模型的轮廓179 17.3 用例181 17.3.1 create model小结181 17.3.2 observe behavior小结182 17.3.3 collect statistics小结182 17.3.4 run a model小结182 17.4 基于仿真过程的标准机制182 17.5 关联和导航183 17.6 详细的类186 17.6.1 类scheduler186 17.6.2 类activeentity187 17.6.3 类passiveentity188 17.6.4 类resource188 17.7 类report190 17.8 类statistic191 17.9 构造一个完整的仿真模型192 17.10 有关哲学家用餐问题192 第四部分 实践应用 第18章 重用:组件与模式197 18.1 重用的实用性197 18.1.1 什么可以被重用,如何重用197 panel 18.1 什么是一个真正的组件?这是个有争议的问题!198 18.1.2 为什么重用199 18.1.3 为什么重用很困难200 18.1.4 哪些组件是真正可重用的201 18.1.5 如何创建自己的组件202 18.1.6 重用在面向对象中有什么不同之处202 18.2 设计模式203 18.2.1 例子:fa?ade205 18.2.2 uml和模式206 18.3 框架207 18.4 小结207 第19章 产品质量:验证、确认与测试209 19.1 关于质量的概述209 19.2 如何获取高质量210 19.2.1 关注产品质量210 19.2.2 关注过程210 19.2.3 进一步的参考资料210 19.3 验证210 19.4 确认211 19.5 测试212 19.5.1 选择并实施测试214 19.5.2 面向对象所特有的问题215 19.5.3 为什么测试经常完成得很差217 19.6 评审及检查217 19.7 小结219 第20章 过程质量:管理、团队与质量保证221 20.1 管理221 20.1.1 项目管理222 20.1.2 评估迭代式开发的项目223 20.1.3 基于开发的组件管理224 20.1.4 人员管理224 20.2 团队225 20.3 领导能力226 20.4 质量保证227 20.4.1 迭代式开发项目的质量保证228 20.4.2 整体质量管理229 panel 20.1 质量保证:反面的案例229 20.5 进一步阅读的资料230 20.6 小结230 20.7 讨论问题230 参考文献233 索引237 |
商品评论(0条)