任务1软件工程概述1
1.1软件认知2
1.1.1软件的概念和特点2
1.1.2软件的分类2
1.1.3软件的发展过程4
1.2对软件危机的认知5
1.2.1软件危机的主要表现5
1.2.2软件危机产生的原因6
1.2.3软件危机的解决途径6
1.3对软件工程的认知6
1.3.1软件工程的基本概念7
1.3.2软件工程的目标7
1.3.3软件工程的发展历程8
1.3.4软件工程的原则9
1.3.5软件工程方法学9
1.3.6软件工程过程10
1.4软件生命周期11
1.4.1软件生命周期的基本概念11
1.4.2软件生命周期的八个阶段11
1.5软件开发过程模型12
1.5.1瀑布模型12
1.5.2快速原型模型13
1.5.3螺旋模型14
1.5.4增量模型15
1.5.5喷泉模型16
1.5.6基于构件的开发模型17
1.6计算机辅助软件工程17
1.7习题19软件工程与UML项目化实用教程目录任务2认识统一建模语言21
2.1初识UML22
2.1.1UML简介22
2.1.2UML发展简史22
2.1.3UML的特点和用途23
2.2UML的表示方法25
2.2.1UML视图25
2.2.2图25
2.2.3UML模型元素26
2.2.4UML通用机制30
2.3UML静态建模31
2.3.1用例图31
2.3.2类图33
2.3.3对象图34
2.3.4包图36
2.3.5组件图37
2.3.6配置图38
2.4UML动态建模40
2.4.1状态图40
2.4.2活动图43
2.4.3顺序图47
2.4.4协作图50
2.5统一过程RUP51
2.6习题53
任务3新闻发布系统可行性研究与软件开发计划54
3.1案例——新闻发布系统可行性分析报告55
3.1.1引言55
3.1.2可行性研究的前提55
3.1.3所建议技术可行性研究56
3.1.4经济可行性分析56
3.1.5社会因素可行性分析57
3.1.6结论57
3.2软件定义57
3.3项目的可行性研究57
3.3.1可行性研究的任务58
3.3.2可行性研究的步骤58
3.3.3可行性研究的结果59
3.4可行性研究工具的使用60
3.4.1绘制系统流程图60
3.4.2绘制业务流程图61
3.5制订软件开发计划64
3.6习题64
任务4新闻发布系统需求分析与建模66
4.1案例——新闻发布系统产品需求规格说明书67
4.1.1系统说明67
4.1.2功能性需求67
4.1.3非功能性需求72
4.2需求分析任务、步骤和方法74
4.2.1需求获取74
4.2.2需求建模76
4.2.3需求描述76
4.2.4需求验证77
4.3面向对象需求分析78
4.3.1基于用例的需求分析方法79
4.3.2绘制活动图81
4.3.3绘制实体—关系图82
4.4结构化分析方法85
4.4.1绘制数据流图85
4.4.2编制数据字典87
4.5习题91
任务5新闻发布系统概要设计92
5.1案例——新闻发布系统模块设计报告93
5.1.1文档介绍93
5.1.2模块命名规则93
5.1.3模块设计94
5.2面向对象设计103
5.2.1面向对象设计内容104
5.2.2面向对象设计原则104
5.3新闻发布系统体系结构设计106
5.4开发环境及运行平台的选择107
5.5新闻发布系统模式设计107
5.5.1MVC设计模式107
5.5.2DAO设计模式110
5.6新闻发布系统类设计111
5.7新闻发布系统包设计112
5.8新闻发布系统接口设计114
5.9新闻发布系统数据库设计115
5.10新闻发布系统动态结构设计117
5.10.1绘制状态图117
5.10.2绘制顺序图119
5.10.3绘制协作图121
5.11编写文档122
5.11.1编制软件测试计划122
5.11.2编制软件概要设计说明123
5.11.3编制数据库设计说明123
5.12习题124
任务6新闻发布系统详细设计125
6.1案例——新闻发布系统用户界面设计报告126
6.1.1应当遵循的界面设计规范126
6.1.2界面设计127
6.2绘制新闻发布系统程序流程图134
6.2.1程序流程图基本知识134
6.2.2绘制程序流程图的方法134
6.3设计数据代码136
6.4输入、输出设计138
6.4.1输入设计138
6.4.2输出设计139
6.4.3新闻发布系统部分输入输出数据说明139
6.5用户界面设计140
6.6数据安全设计144
6.7编写软件详细设计说明并复审145
6.8拓展提高146
6.9习题149
任务7新闻发布系统编码的实现151
7.1代码结构建模——绘制新闻发布系统组件图152
7.1.1组件图的用途152
7.1.2组件图建模技术152
7.1.3新闻发布系统组件图152
7.2系统物理结构建模——绘制新闻发布系统配置图153
7.2.1配置图建模技术154
7.2.2新闻发布系统配置图154
7.3选择程序设计语言154
7.3.1程序设计语言的分类155
7.3.2选择程序设计语言的标准156
7.4熟悉编码规范,编写符合要求的代码158
7.5面向对象程序设计160
7.5.1面向对象程序设计概念160
7.5.2面向对象程序设计准则160
7.6拓展提高161
7.7习题163
任务8新闻发布系统软件的测试164
8.1案例——新闻发布系统测试用例设计165
8.1.1测试环境165
8.1.2测试用例165
8.2软件测试基础知识169
8.2.1测试的概念、目标和对象169
8.2.2软件测试的基本原则169
8.2.3软件测试方法170
8.2.4软件测试步骤171
8.2.5设计测试方案173
8.3面向对象测试179
8.3.1面向对象语境对测试的影响179
8.3.2面向对象的测试策略180
8.3.3面向对象测试用例设计180
8.4使用软件测试工具181
8.4.1白盒测试工具181
8.4.2黑盒测试工具182
8.4.3测试管理工具183
8.5软件调试184
8.5.1软件调试方法184
8.5.2常用调试策略184
8.6编写软件测试分析文档185
8.7拓展提高186
8.8习题188
任务9新闻发布系统项目的发布与维护189
9.1案例——新闻发布系统用户手册190
9.1.1新闻栏目管理190
9.1.2类别管理191
9.1.3新闻管理192
9.2发布产品193
9.3维护软件194
9.3.1软件维护类型194
9.3.2软件维护方式195
9.3.3软件维护实施196
9.3.4软件可维护性度量199
9.3.5软件维护的副作用200
9.4软件重用201
9.4.1软件重用的优点与级别201
9.4.2软件构件标准规范、组织和检索202
9.4.3基于构件的软件开发过程204
9.4.4面向对象软件重用技术205
9.5习题206
任务10软件项目管理208
10.1软件项目管理概述209
10.2估算软件规模210
10.2.1代码行技术210
10.2.2功能点技术211
10.3使用COCOMO 2模型估算软件开发工作量212
10.4进度管理214
10.4.1估算开发时间214
10.4.2进度控制215
10.4.3甘特图216
10.4.4工程网络图216
10.5人员组织217
10.5.1确定项目组成员217
10.5.2确定项目组组织方式218
10.6软件质量保证220
10.6.1软件质量220
10.6.2软件质量保证措施221
10.7软件配置管理222
10.8软件工程文档的编写224
10.9软件项目管理计划225
10.10习题227
参考文献228