第一篇 软件工程知识储备 3
第1章 软件工程 3
1.1 软件工程概述 4
1.1.1 软件工程的定义 4
1.1.2 软件工程的目标 5
1.1.3 软件工程的基本原则 6
1.1.4 软件工程的作用 6
1.1.5 软件工程基本流程ERCM 7
1.2 现代软件工程 8
1.2.1 开源软件运动 9
1.2.2 SaaS 10
1.3 学习笔记 11
第2章 软件过程 12
2.1 软件过程的定义 13
2.2 软件生命周期 13
2.3 软件过程的模型 14
2.3.1 传统模型 14
2.3.2 快速应用开发模型(RAD) 14
2.3.3 演化模型 15
2.4 软件过程管理 15
2.5 软件工程常用定义及名词 16
2.6 学习笔记 18
第二篇 软件项目启动阶段 21
第3章 项目可行性研究 21
3.1 可行性研究的目的与意义 22
3.1.1 可行性研究的目的 22
3.1.2 可行性研究的意义 22
3.2 可行性研究的内容 22
3.2.1 可行性研究的总体要求 22
3.2.2 可行性研究的内容 23
3.2.3 项目可行性研究分析报告 24
3.3 实践项目可行性研究 29
3.4 学习笔记 34
第4章 软件需求分析 35
4.1 软件需求概述 36
4.1.1 软件需求的三个层次 36
4.1.2 软件需求的主要内容 37
4.1.3 软件需求的主要特征 38
4.1.4 软件需求的Kano模型 38
4.2 需求分析的目标与过程 39
4.2.1 需求分析的目标 39
4.2.2 需求分析的过程 40
4.2.3 需求分析方法 41
4.3 需求管理 43
4.4 实践项目需求分析实例 43
4.4.1 背景 43
4.4.2 概述 44
4.4.3 主要功能 44
4.5 学习笔记 45
第5章 项目实施的成本效益分析 46
5.1 软件项目实施的成本 47
5.1.1 软件项目实施成本的相关概念 47
5.1.2 软件项目实施成本估算的类型与支持工具 48
5.1.3 软件项目实施成本构成及相应的指标体系 49
5.1.4 软件项目实施成本估算方法 51
5.2 软件项目实施的效益 52
5.2.1 软件项目实施效益的相关概念 52
5.2.2 软件项目实施效益指标体系组成 54
5.2.3 软件项目实施效益分析方法 55
5.3 学习笔记 59
第6章 项目计划与团队建立 60
6.1 制定项目计划 61
6.1.1 为何要制定项目计划 61
6.1.2 怎样设计项目计划 61
6.1.3 项目计划设计实例 65
6.1.4 项目计划修改与维护 71
6.2 建立项目团队 71
6.2.1 项目团队的定义 71
6.2.2 为何要建立项目团队 71
6.2.3 如何建立和管理项目团队 72
6.2.4 项目团队的组织结构 74
6.3 学习笔记 74
第三篇 软件项目实施阶段 77
第7章 面向对象分析与建模 77
7.1 面向对象需求分析方法 78
7.1.1 面向对象需求分析的基本过程 78
7.1.2 需求陈述 79
7.1.3 对象模型 80
7.1.4 动态模型 84
7.1.5 功能模型 85
7.1.6 定义服务 86
7.2 实践项目面向对象需求分析 87
7.2.1 UML简介 87
7.2.2 核心UML模型图 88
7.2.3 Rational Rose 94
7.2.4 Enterprise Architect 95
7.2.5 开始实践 97
7.3 学习笔记 102
第8章 总体设计 103
8.1 软件总体设计的目的 104
8.2 软件设计应遵循的基本原理 104
8.2.1 抽象 104
8.2.2 逐步细化 105
8.2.3 模块化 105
8.2.4 模块独立性 106
8.2.5 信息隐藏 106
8.3 总体设计的过程 106
8.4 软件设计原则 107
8.5 总体设计的图形描述工具 108
8.5.1 层次图 108
8.5.2 HIPO图 109
8.5.3 结构图 109
8.6 总体设计例程 110
8.7 学习笔记 118
第9章 详细设计 119
9.1 详细设计的任务与原则 120
9.2 结构程序设计 120
9.2.1 结构程序设计概述 120
9.2.2 控制结构 120
9.2.3 结构化设计优点 121
9.3 详细设计的描述工具 122
9.3.1 程序流程图 122
9.3.2 盒图(N-S图) 123
9.3.3 PAD 123
9.3.4 判定表 124
9.3.5 判定树 125
9.3.6 PDL 126
9.4 人机界面设计 128
9.5 详细设计规格说明与复审 129
9.5.1 详细设计说明书 129
9.5.2 详细设计复审 130
9.6 实践项目详细设计 130
9.6.1 实践项目功能设计 131
9.6.2 实践项目界面设计 132
9.7 实践项目详细设计说明书 133
9.8 学习笔记 139
第10章 编码实现 140
10.1 编码概述 141
10.1.1 编码语言的选择 141
10.1.2 ASP.NETMVC简述 141
10.1.3 ADO.NET EntityFramework简述 142
10.2 ASP.NET MVC、Entity Framework项目实践 142
10.2.1 准备工作 142
10.2.2 创建接口 143
10.2.3 建立数据持久化层 143
10.2.4 建立DAO层 152
10.2.5 业务逻辑层 164
10.2.6 创建Controller控制器类 169
10.2.7 Web页面 175
10.2.8 配置URL路由 180
10.2.9 web.config文件配置 182
10.2.10 其他扩展 184
10.3 学习笔记 185
第11章 项目测试 186
11.1 测试计划的制定 187
11.1.1 为何要制定测试计划 187
11.1.2 如何制定测试计划 187
11.1.3 测试计划设计实例 189
11.1.4 测试计划修改与维护 196
11.2 单元测试 196
11.2.1 分析单元测试的任务和目标 196
11.2.2 设计单元测试用例 197
11.3 集成测试 197
11.3.1 分析集成测试的任务和目标 198
11.3.2 设计集成测试用例 203
11.3.3 选择集成测试工具 208
11.3.4 执行集成测试 215
11.3.5 集成测试报告 219
11.4 确认测试 220
11.4.1 分析确认测试的任务和目标 220
11.4.2 设计确认测试用例 221
11.4.3 选择确认测试工具 223
11.4.4 执行确认测试用例 223
11.4.5 编写确认测试报告 228
11.5 系统测试 230
11.5.1 分析系统测试的任务和目标 230
11.5.2 设计系统测试用例 231
11.5.3 系统测试报告 234
11.6 验收测试 236
11.6.1 制订项目验收标准 237
11.6.2 设计验收测试用例 240
11.6.3 执行验收测试 242
11.6.4 编写验收质量报告 244
11.7 产品发布报告ER Report 249
11.8 学习笔记 251
第12章 软件工程项目管理 252
12.1 软件项目管理的特点、职能和活动 253
12.2 项目计划和组织 254
12.2.1 项目计划的制定 254
12.2.2 项目成员的组织和管理 256
12.3 项目进度计划 258
12.4 项目风险管理 259
12.5 项目质量管理 260
12.5.1 软件质量特性 260
12.5.2 软件质量保证 261
12.5.3 技术评审 261
12.5.4 软件质量管理体系 263
12.6 应用Project 2007进行项目管理 264
12.6.1 Project 2007简介 264
12.6.2 Project 2007工作界面 264
12.6.3 项目管理专用术语概览 268
12.7 Project操作入门 270
12.8 利用Project制定实践项目计划 272
12.9 学习笔记 278
第四篇 软件项目部署和维护阶段 281
第13章 软件项目部署 281
13.1 项目部署任务和目标 282
13.1.1 什么是项目部署 282
13.1.2 项目部署的步骤 282
13.1.3 项目部署需求分析 284
13.2 制定项目部署计划 285
13.3 安全部署项目 286
13.4 部署实践项目 287
13.4.1 项目部署的准备工作 287
13.4.2 项目部署 287
13.4.3 验证部署项目 296
13.5 系统的维护 296
13.5.1 维护的内容 297
13.5.2 系统维护的类型 297
13.5.3 系统维护的组织和管理 298
13.6 学习笔记 299
附录A IBloger博客系统安装部署说明书 300
A.1 安装配置.NET 300
A.2 安装IIS 301
A.3 安装MS-SQLServer 306
A.4 数据库的使用 312
A.4.1 SQLServer控制台 312
A.4.2 建立数据库 313
A.5 部署IBloger博客系统 316
A.6 故障解析 323
附录B IBloger博客系统产品规格说明书V1.0 326
B.1 概述 326
B.2 主要功能 326
B.2.1 功能列表 326
B.2.2 功能详解 327
附录C 大学图书管理系统产品需求文档(PRD)V1.0 339
C.1 简介 339
C.1.1 目的 339
C.1.2 背景 339
C.2 需求 339
C.2.1 产品的潜在收益 339
C.2.2 开发该产品的已知难题 339
C.2.3 名词解释 339
C.2.4 产品功能 340
C.3 功能需求分析 340
C.4 操作和维护要求 341
附录D 大学图书管理系统产品规格说明书 342
D.1 概述 342
D.2 主要功能 342
D.2.1 功能列表 342
D.2.2 功能详解 343
附录E 作者简介 350
附录F 实践者简介 353
参考文献 355