内容简介
第一部分 软件项目
第1章 软件开发生命周期
1.1 软件工程的精髓
1.1.1 软件系统比企业信息系统的范围小
1.1.2 软件过程是业务过程的一部分
1.1.3 软件工程不同于传统工程
1.1.4 软件工程不只是程序设计
1.1.5 软件工程需要建模
1.1.6 软件系统是复杂的
1.2 生命周期阶段
1.2.1 需求分析
1.2.2 系统设计
1.2.4 集成和部署
1.2.3 实现
1.2.5 运行和维护
1.3 生命周期模型
1.3.1 带反馈的瀑布式生命周期
1.3.2 迭代增量式的生命周期
小结
复习题
第2章 软件建模语言
2.1 结构化建模语言
2.1.1 数据流建模
2.1.2 实体-联系建模
2.2 面向对象建模语言
2.2.1 类图
2.2.2 用例图
2.2.3 交互图
2.2.4 状态图
2.2.5 活动图
2.2.6 实现图
小结
复习题
解答题
第3章 软件工程工具
3.1 项目管理工具
3.1.1 项目调度和控制
3.1.2 用战略眼光来安排项目和性能管理
3.1.3 项目管理与基于Web的协作及内容管理的统一
3.1.4 项目管理与基于Web的组合管理的统一
3.1.5 项目管理中的度量
3.1.6 项目管理中的风险管理
3.2 系统建模工具
3.2.1 需求管理
3.2.2 可视化UML建模
3.2.3 报表生成
3.2.4 数据库建模
3.3 集成开发环境
3.3.1 常规的编程任务
3.3.2 与软件建模集成
3.3.3 企业应用开发
3.3.4 与业务组件集成
3.3.5 与变更和配置管理集成
3.4 变更和配置管理工具
3.4.1 变更管理支持
3.4.2 版本管理支持
3.4.3 系统构建支持
3.4.4 再工程支持
小结
复习题
解答题
第4章 软件项目计划和跟踪
4.1 项目计划制定
4.2 项目进度安排
4.2.1 任务、里程碑和可交付成果
4.2.2 用条形图表示任务调度
4.2.3 资源和资源日历
4.2.4 用条形图表示人工量驱动的进度安排
4.2.5 资源分配不足和过度分配
4.3 项目预算估算
4.3.1 进度驱动的预算估算
4.3.2 算法预算估算
4.4 跟踪项目进展
4.4.1 跟踪进度
4.4.2 跟踪预算
小结
复习题
解答题
第5章 软件过程管理
5.1 人员管理
5.1.1 选拔和激励人员
5.1.2 项目沟通
5.2 风险管理
5.1.3 团队建设
5.2.1 风险识别
5.2.2 风险评估
5.2.3 风险处理
5.3 质量管理
5.3.1 软件质量
5.3.2 质量控制
5.3.3 质量保证
5.4 变更和配置管理
5.4.1 需求变更
5.4.2 工件的版本
5.4.3 缺陷和扩展
5.4.4 度量
小结
复习题
第二部分 从需求分析经由体系结构设计到软件发布
第6章 业务对象模型
6.1 广告费用评估——业务
6.2 业务环境图
6.3 业务用例模型
6.3.1 业务用例和业务执行者
6.3.2 AEM业务用例模型
6.3.3 AEM可替换业务用例模型
6.4 业务术语表
6.5 业务类模型
6.5.1 业务实体
6.5.2 AEM业务类模型
6.5.3 AEM业务类模型的替换模型
案例题
讨论题
复习题
小结
解答题
案例分析
小案例——广告费用评估
练习
第7章 领域对象模型
7.1 联系人管理——领域
7.2 领域用例模型
7.2.1 用例和执行者
7.2.2 用例联系
7.2.3 联系人管理的用例模型
7.2.4 联系人管理的可替换用例模型
7.3 领域术语表
7.4 领域类模型
7.4.1 类和属性
7.4.2 类之间的联系
7.4.3 联系人管理的类模型
7.4.4 联系人管理的可替换类模型
小结
复习题
讨论题
案例题
解答题
案例分析
小案例——时间日志
练习
第8章 第1次迭代需求和对象模型
8.1 用例模型
8.2 用例文档
8.2.1 概要描述、前置条件和后置条件
8.2.2 基本流程
8.2.3 子流程
8.2.4 异常流程
8.3 概念类
8.4 补充规格说明
小结
复习题
讨论题
案例题
小案例——时间日志
案例分析
解答题
第9章 体系结构设计
9.1 体系结构层和依赖性管理
9.1.1 体系结构模块
9.1.2 包依赖性
9.1.3 层依赖性
9.1.4 类依赖性
9.1.5 继承依赖性
9.1.6 方法依赖性
9.1.7 接口
9.1.8 事件处理
9.1.9 相识
9.2 体系结构框架
9.2.1 模型-视图-控制器
9.2.2 表示-控制-中介者-实体-基础
9.3 体系结构模式
9.3.1 外观
9.3.2 抽象工厂
9.3.3 责任链
9.3.4 观察者模式
9.3.5 中介者
小结
复习题
解答题
案例分析
小案例——联系人信息管理
练习
10.1 从软件工程角度介绍关系数据库
第10章 数据库设计和编程
10.1.1 表
10.1.2 引用完整性
10.1.3 概念和逻辑数据库模型
10.1.4 实现业务规则
10.1.5 数据库应用逻辑程序设计
10.1.6 索引
10.2 将临时对象映射成持久记录
10.2.1 对象数据库、SQL:1999和阻抗不匹配
10.2.2 对象-关系映射
10.3 用于电子邮件管理的数据库设计和创建
10.3.1 数据库模型
10.3.2 创建数据库模式
10.3.3 示例数据库内容
讨论题
复习题
小结
案例分析题
解答题
案例分析
小案例——联系人信息管理
第11章 类设计和交互设计
11.1 从用例需求中寻找类
11.1.1 从电子邮件管理系统的用例需求中寻找类
11.1.2 电子邮件管理系统的初始类设计
11.2 类设计的体系结构细化
11.2.1 电子邮件管理系统类设计的体系结构细化
11.2.2 体系结构细化后电子邮件管理系统的类设计
11.3 交互
11.2.3 类的实例化
11.3.1 序列图
11.3.2 通信图
11.3.3 交互概述图
11.4 电子邮件管理系统中的交互
11.4.1 “登录”交互
11.4.2 “退出”交互
11.4.3 “查看待发邮件”交互
11.4.4 “显示邮件文本”交互
11.4.5 “发送邮件”交互
11.4.6 “错误的用户名和密码”交互
11.4.7 “错误的选项”交互
11.4.8 “邮件过多”交互
11.4.9 “不能发送邮件”交互
小结
讨论题
复习题
案例分析题
解答题
案例分析练习
小案例——时间日志系统
小案例——联系人信息管理系统
第12章 编程和测试
12.1 基于软件工程的Java快速指南
12.1.1 类
12.1.2 类的关联与集合
12.1.3 Java中的数据库访问
12.2 测试驱动开发
12.2.1 JUnit框架
12.2.2 邮件管理系统测试驱动开发
12.3 验收测试和回归测试
12.3.1 电子邮件管理系统的测试脚本
12.3.2 测试输入、输出和电子邮件管理系统的回归测试
12.3.3 电子邮件管理系统中测试脚本的实现
12.4 第1次迭代运行时的截图
小结
复习题
解答题
指南和案例分析练习
小案例——时间日志系统
小案例——联系人信息管理系统
第13章 第1次迭代代码评注
13.1 代码概览
13.2.2 IAEmployee接口
13.2.1 IAConstants接口
13.2 acquaintance包
13.2.3 IAContact接口
13.2.4 IAOutMessage接口
13.3 presentation包
13.3.1 PMain类
13.3.2 PConsole类
13.4 control包
13.5 entity包
13.5.1 IEDataSupplier接口
13.5.2 EEmployee类
13.5.3 EContact类
13.5.4 EOutMessage类
13.6 mediator包
13.7.1 FConnection类
13.7 foundation包
13.7.2 FReader类
13.7.3 FWriter类
小结
第1次迭代问题和练习
第三部分 软件重构与用户界面设计
第14章 第2次迭代需求与对象模型
14.1 用例模型
14.2 用例文档
14.2.1 概要描述、前置条件和后置条件
14.2.2 基本流程
14.2.3 子流程
14.2.4 异常流程
14.3 概念类和关系表
14.4 补充规格说明
小结
复习题
第15章 体系结构重构
15.1 重构的目标代码
15.2 重构方法
15.2.1 提取类
15.2.2 方法归类
15.2.3 提取接口
15.3 重构模式
15.3.1 标识映射模式
15.3.2 数据映射器
15.3.3 可替换的数据映射器策略
15.3.4 延迟加载
15.3.5 工作单元
15.4 重构后的类模型
小结
复习题
讨论题
案例分析题
解答题
第16章 用户界面设计与编程
16.1 用户界面设计准则
16.1.1 用户控制
16.1.2 界面一致性
16.1.3 界面容错性
16.1.4 界面可适应性
16.2 用户界面组件
16.2.1 容器
16.2.2 菜单
16.2.3 控件
16.3 用户界面事件处理
16.4 模式与用户界面
16.4.1 观察者模式
16.4.2 装饰模式
16.4.3 责任链模式
16.4.4 命令模式
16.5 邮件管理的用户界面
小结
复习题
解答题
第17章 基于Web的用户界面的设计与编程
17.1.1 基本HTML
17.1 Web客户端层可用的技术
17.1.2 脚本语言
17.1.3 applet:轻量级和重量级
17.2 Web服务器层可用的技术
17.2.1 servlet
17.2.2 JSP
17.3 无状态因特网系统上的事务
17.4 模式与Web
17.4.1 观察者模式
17.4.2 组合模式
17.4.3 工厂方法模式
17.4.4 策略模式
17.4.5 装饰模式
17.4.6 模型-视图-控制器模式
17.4.8 JSP标签复用
17.4.7 前端控制器
17.4.9 控制解耦:Struts
17.5 电子邮件管理系统的servlet实现
小结
复习题
解答题
第18章 第2次迭代代码评注
18.1 代码概览
18.2 acquaintance包
18.3 presentation包
18.3.1 PWindow类
18.3.2 PMessageDetailWindow类
18.3.3 PMessageTableModel类
18.3.4 PDisplayList类
18.3.5 PDisplayList.Filter类
18.4 control包
18.4.1 CAdmin类
18.4.2 CMsgSeeker类
18.5 entity包
18.6 mediator包
18.6.1 MModerator类
18.6.2 MDataMapper类
18.7 表示层:applet版本
18.8 表示层:Servlet版本
18.8.1 PEMS类
18.8.2 PEMSEdit类
小结
第2次迭代的问题与练习
19.1 用例模型
第四部分 数据工程与业务组件
第19章 第3次迭代需求与对象模型
19.2 用例文档
19.2.1 概要描述、前置条件和后置条件
19.2.2 基本流程
19.2.3 子流程
19.2.4 异常流程
19.3 概念类和关系表
19.4 补充规格说明
19.5 数据库规格说明
小结
复习题
第20章 安全性与完整性
20.1 安全性设计
20.1.1 自主授权
20.1.2 强制授权
20.1.3 企业级授权
20.2 设计完整性
20.2.1 空值与默认值约束
20.2.2 域与check约束
20.2.3 唯一键与主键
20.2.4 外键
20.2.5 触发器
20.3 电子邮件管理系统的安全性与完整性
20.3.1 电子邮件管理系统的安全性
20.3.2 电子邮件管理系统的完整性
小结
复习题
解答题
第21章 事务与并发
21.1 系统事务的并发性
21.1.1 ACID特性
21.1.2 隔离级别
21.1.3 锁模式和级别
21.1.4 事务模型
21.1.5 并发控制模式
21.2 业务事务中的并发性
21.2.1 业务事务执行语境
21.2.2 业务事务和组件技术
21.2.3 跨层的事务服务
21.2.4 离线并发模式
21.3.1 单层事务模型
21.3 电子邮件管理系统中的事务和并发
21.3.2 工作单元和事务支持
小结
复习题
解答题
第22章 业务组件
22.1 企业级JavaBean
22.1.1 EJB基础
22.1.2 实体Bean
22.1.3 会话Bean
22.2 Java业务组件
22.2.1 创建实体组件
22.2.2 创建视图组件
22.2.3 创建一个应用模块
小结
复习题
第23章 第3次迭代代码评注
23.1 代码概览
23.2 acquaintance包
23.3 presentation包
23.3.1 PWindow类
23.3.2 PTableWindow类
23.4 control包
23.5 entity包
23.6 mediator包
23.6.1 MModerator类
23.6.2 MDataMapper类
23.6.3 MUnitOfWork类
23.7.1 FConnection中的事务
23.7 foundation包
23.7.2 执行FWriter中的语句
23.7.3 在FReader中查询数据库
23.8 数据库代码
23.8.1 Ref Cursor结果集
23.8.2 检索邮件
23.8.3 检索部门的邮件
23.8.4 删除一个邮件
23.8.5 创建一个邮件
23.8.6 报表生成
23.8.7 OutMessage表上的触发器
小结
第3次迭代的问题和练习
参考文献
索引