1 课程设计的目的与要求 1
1.1 课程设计的目的与要求 1
1.2 课程设计实施步骤 1
1.2.1 选题 1
1.2.2 拟出具体的设计方案 2
1.2.3 设计与调试 2
1.2.4 撰写课程设计总结报告 2
1.3 上交材料 2
1.4 课程设计报告的撰写规范 2
1.5 软件工程课程设计课题验收 3
1.6 指导教师的主要工作 3
1.7 成绩评定 3
2 面向对象的概念与UML介绍 4
2.1 面向对象的概念 4
2.1.1 对象的概念 4
2.1.2 面向对象的特征 4
2.1.3 面向对象的要素 4
2.1.4 面向对象的软件分析与设计方法 5
2.1.5 面向对象方法具有的优越性 5
2.2 UML简介 5
2.2.1 标准建模语言UML的内容 5
2.2.2 UML建模过程 7
2.2.3 UML模型视图 8
2.3 用例图 8
2.3.1 用例图的元素 8
2.3.2 用例间的关系 9
2.4 静态图 10
2.4.1 类图 10
2.4.2 对象图 12
2.5 交互图 13
2.5.1 顺序图 13
2.5.2 协作图 14
2.6 行为图 15
2.6.1 状态图 15
2.6.2 活动图 16
2.7 实现图 17
2.7.1 组件图 17
2.7.2 配置图 18
习题 18
3 软件开发工具Rational Rose 20
3.1 Rational Rose的主要功能 20
3.2 Rational Rose的使用 21
3.2.1 使用Rose创建模型 21
3.2.2 系统主菜单窗口 23
3.2.3 在Rose中创建UML图的基本操作 26
习题 46
4 系统可行性分析 47
4.1 可行性分析的概念 47
4.2 可行性研究报告的编写目的及任务 47
4.2.1 可行性研究报告的编写目的 47
4.2.2 可行性研究报告的编写任务 48
4.3 学籍管理系统可行性分析实例 48
4.3.1 引言 48
4.3.2 可行性研究的前提 49
4.3.3 对现有系统的分析 51
4.3.4 所建议系统技术可行性分析 51
4.3.5 所建议系统经济可行性分析(投资及收益分析) 53
4.3.6 社会因素可行性分析 54
4.3.7 结论意见 54
习题 54
5 系统的需求分析 55
5.1 系统需求的分析过程 56
5.1.1 获取用户的需求 56
5.1.2 分析用户的需求 57
5.1.3 编写软件需求说明书 58
5.1.4 用户与开发人员共同验证需求 58
5.1.5 需求分析过程应注意的问题 59
5.2 系统功能和角色的识别 59
5.2.1 系统功能的识别 59
5.2.2 角色的识别 59
5.3 系统需求的UML静态建模 60
5.3.1 需求分析的过程 60
5.3.2 需求分析模型的组成 60
5.3.3 系统需求描述 61
5.3.4 需求分析 62
5.3.5 建立对象模型 67
5.4 系统需求的UML动态建模 72
5.4.1 对对象之间的交互关系进行建模:时序图 72
5.4.2 对对象之间的交互关系进行建模:协作图 74
5.4.3 针对单个对象重要行为和状态的建模:状态图 75
5.4.4 检查分析模型 77
习题 78
6 系统的总体设计 79
6.1 系统设计概述 79
6.2 软件体系架构 80
6.2.1 仓库体系结构 80
6.2.2 模型/视图/控制器体系结构 81
6.2.3 客户/服务器体系结构 82
6.2.4 B/S结构 85
6.2.5 对等体系结构 86
6.2.6 管道和过滤器体系结构 86
6.3 子系统设计和访问控制设计 87
6.3.1 定义系统设计目标 89
6.3.2 定义子系统和功能模块 89
6.3.3 确定系统设计目标 93
6.3.4 确定子系统 94
6.3.5 数据管理设计 95
6.3.6 定义访问控制 95
6.3.7 设计全局控制流 96
6.3.8 确定系统的功能范围 98
6.3.9 系统配置设计与映射到软/硬件平台 98
6.4 总体设计报告 101
6.4.1 系统设计报告内容 101
6.4.2 系统设计报告的不断优化 102
习题 102
7 系统的详细设计 103
7.1 详细设计概述 103
7.1.1 详细设计的任务 103
7.1.2 详细设计的原则 104
7.2 对象和类设计 104
7.2.1 对象和类设计 104
7.2.2 对象设计内容 104
7.2.3 对象设计过程 106
7.2.4 对象设计文档的编制方法和内容 110
7.3 用户界面设计 111
7.3.1 图形界面类型 111
7.3.2 用户界面设计过程 114
7.3.3 界面设计的技巧 115
7.4 数据库设计 115
7.4.1 数据模型 116
7.4.2 对象数据库模型 117
7.4.3 对象关系数据库模型 117
7.4.4 关系数据库模型 119
7.4.5 UML映射RDB 121
习题 122
8 系统编程 123
8.1 程序设计的基本概念 123
8.1.1 程序设计 123
8.1.2 程序设计语言的分类 123
8.1.3 程序设计语言的选择 124
8.1.4 程序设计的步骤 124
8.2 编码风格 124
8.3 面向对象的编程 125
8.4 学籍管理系统编程实例 125
8.4.1 编程语言的选择 125
8.4.2 编程步骤 126
8.4.3 系统编程实例 126
8.4.4 系统的改进 152
习题 153
9 系统测试 154
9.1 软件测试概述 154
9.2 自动化测试 156
9.2.1 自动化测试概念 156
9.2.2 自动化测试的工具介绍(1)——Rational Robot 157
9.2.3 自动化测试的工具介绍(2)——LoadRunner 158
9.3 学籍管理系统测试实例 162
9.3.1 系统开发背景 162
9.3.2 测试过程 163
9.3.3 测试计划 164
9.3.4 测试用例 165
9.3.5 缺陷报告 166
9.3.6 测试结果总结分析 167
习题 169
10 综合实例:图书管理系统的分析与设计 170
10.1 系统需求描述 170
10.1.1 系统的总体功能 170
10.1.2 系统的功能细化 170
10.2 系统的用例建模 171
10.2.1 识别参与者 171
10.2.2 识别用例 172
10.2.3 系统用例图 172
10.2.4 为用例编写文档 172
10.3 活动建模 174
10.3.1 创建用例“维护借阅者信息”活动图 175
10.3.2 创建用例“维护书刊信息”活动图 175
10.3.3 创建用例“维护物理书刊信息”活动图 176
10.4 静态结构建模 176
10.4.1 定义系统实体类 176
10.4.2 定义用户界面类 177
10.4.3 确定类之间的关系并建立类图 177
10.5 动态行为建模(交互建模) 179
10.5.1 建立顺序图 179
10.5.2 建立状态图 185
10.6 包设计 185
10.6.1 系统分解 185
10.6.2 系统包图 186
10.7 协作的设计 186
10.7.1 “登录”的协作图 186
10.7.2 “还书”的协作图 186
10.7.3 “借书”的协作图 187
10.8 建立物理模型 188
10.8.1 建立系统组件图 188
10.8.2 建立配置图 188
10.9 用户界面设计 189
10.10 数据库设计 189
11 综合实例:网上教学管理系统的分析与设计 190
11.1 系统需求描述 190
11.1.1 系统的总体功能 190
11.1.2 系统的功能细化 191
11.2 系统的用例建模 191
11.2.1 识别参与者 191
11.2.2 识别用例 192
11.2.3 系统用例图 192
11.2.4 为用例编写文档 193
11.3 活动建模 194
11.4 静态结构建模 196
11.4.1 定义实体类 196
11.4.2 定义类属性 196
11.4.3 确定类之间的关系 196
11.4.4 建立类图 197
11.5 动态行为建模(交互建模) 198
11.5.1 建立顺序图 198
11.5.2 建立状态图 200
11.6 包设计 202
11.7 协作设计 202
11.8 建立物理模型 203
11.8.1 建立系统组件图 204
11.8.2 建立配置图 204
11.9 用户界面设计 205
11.10 数据库设计 205
11.11 系统实施情况、测试和升级 206
附录 软件规格说明书文档模板 208
参考文献 225