您好,欢迎来到聚文网。 登录 免费注册
现代软件工程

现代软件工程

本书力图反映软件工程领域的*新发展;提供课程教学进度表和相关习题的参考答案。
  • 字数: 488000
  • 装帧: 平装
  • 出版社: 机械工业出版社
  • 作者: 周苏 等 编著
  • 出版日期: 2016-01-01
  • 商品条码: 9787111526346
  • 版次: 1
  • 开本: 16开
  • 页数: 304
  • 出版年份: 2016
定价:¥49 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
软件工程学是一门理论性和实践性都很强的学科,它采用工程化的概念、理论、技术和方法来指导开发与维护计算机软件。本书系统、全面地介绍了现代软件工程技术,在软件工程的概念、原理、方法及其应用等方面有较详尽的论述,具有较强的系统性和可读性。本书较为详细地介绍了软件生存周期、传统软件工程、软件工程过程、面向对象软件工程和软件体系结构等的思想和实现方法,力图反映软件工程领域的新发展,内容包括:软件和软件工程、软件过程、需求工程、设计的概念、体系结构设计、构件级设计、用户界面设计、基于模式的设计、WebApp设计、软件质量管理、软件测试、软件配置管理、软件项目管理和软件维护与再工程。
本书可作为高等院校“软件工程”课程的教材和教学参考书,也可供有一定实践经验的软件开发人员和管理人员参考,或作为继续教育的教材。
目录
出版说明
前言
课程教学进度表

第1章软件和软件工程1
1.1计算机系统与软件1
1.1.1软件的本质2
1.1.2定义软件3
1.1.3软件应用领域4
1.1.4WebApp的特性6
1.2软件工程定义7
1.2.1软件工程的内容7
1.2.2软件工程的基本目标和原则8
1.2.3软件工程与一般工程的差异9
1.3软件生存周期及其过程10
1.4软件工具与开发环境11
1.4.1软件工具11
1.4.2软件开发环境12
1.5软件工程发展的4个阶段13
1.6软件工程师的责任13
小结14
习题15
第2章软件过程17
2.1通用过程模型17
2.1.1定义框架活动18
2.1.2明确任务集19
2.1.3过程模式20
2.1.4过程评估与改进21
2.2传统过程模型22
2.2.1软件生存周期模型22
2.2.2瀑布模型23
2.2.3增量模型24
2.2.4演化模型25
2.2.5协同模型28
2.2.6喷泉模型29
2.2.7智能模型29
2.3软件生存周期过程与软件过程
工程30
2.4软件生存周期基本过程31
2.4.1获取过程31
2.4.2供应过程32
2.4.3开发过程33
2.4.4运作过程34
2.4.5维护过程34
2.5软件生存周期支持过程35
2.5.1文档编制过程35
2.5.2配置管理过程35
2.5.3质量保证过程35
2.5.4验证过程36
2.5.5确认过程36
2.5.6联合评审过程36
2.5.7审核过程36
2.5.8问题解决过程36
2.6软件生存周期组织过程36
2.6.1管理过程37
2.6.2基础设施过程37
2.6.3改进过程37
2.6.4培训过程37
2.7剪裁过程37
2.8过程与组织的关系38
2.9Rational统一过程41
2.10敏捷开发42
2.10.1什么是敏捷43
2.10.2敏捷及变更的成本费用44
2.10.3什么是敏捷过程44
2.10.4极限编程46
2.10.5工业极限编程48
小结49
习题50
第3章需求工程53
3.1理解需求53
3.1.1建立根基53
3.1.2导出需求54
3.1.3开发用例56
3.1.4构建需求模型56
3.1.5协商需求58
3.1.6确认需求59
3.2需求分析59
3.2.1总体目标和原理60
3.2.2域分析61
3.2.3需求建模的方法61
3.2.4需求建模策略62
3.3基于场景建模62
3.3.1新建初始用例62
3.3.2细化初始用例63
3.3.3编写正规用例63
3.4补充用例的UML模型64
3.4.1开发活动图64
3.4.2泳道图64
3.5数据建模概念65
3.5.1数据对象65
3.5.2数据属性66
3.5.3关系66
3.6基于类的建模67
3.6.1识别分析类67
3.6.2描述属性68
3.6.3定义操作68
3.6.4类?职责?协作者建模68
3.6.5关联和依赖71
3.7面向数据流建模71
3.7.1创建数据流模型71
3.7.2创建控制流模型73
3.7.3控制规格说明73
3.7.4处理规格说明75
3.8生成行为模型75
3.9需求建模的模式77
3.10Web应用系统的需求建模78
3.10.1需求建模的输入78
3.10.2需求建模的输出79
3.10.3Web应用系统内容建模79
3.10.4Web应用系统的交互模型80
3.10.5Web应用系统的功能模型80
3.10.6Web应用系统的配置模型81
3.10.7导航建模81
小结81
习题83
第4章设计的概念86
4.1软件工程中的设计86
4.2设计过程87
4.2.1软件质量指导原则和属性88
4.2.2软件设计的演化89
4.3关注点分离89
4.4关于设计的概念91
4.4.1抽象91
4.4.2体系结构91
4.4.3模式92
4.4.4模块化92
4.4.5信息隐蔽92
4.4.6功能独立93
4.4.7求精93
4.4.8方面93
4.4.9重构94
4.4.10设计类94
4.5设计模型95
4.5.1数据设计元素96
4.5.2体系结构设计元素96
4.5.3接口设计元素97
4.5.4构件级设计元素97
4.5.5部署级设计元素98
4.6模块的划分98
4.6.1软件结构99
4.6.2模块划分的基本原则99
4.6.3内聚度100
4.6.4耦合度100
4.6.5高内聚和低耦合101
4.7Parnas方法101
4.7.1信息隐蔽原则101
4.7.2加强系统各成分间的检查102
4.8软件详细设计102
4.8.1结构化构造103
4.8.2程序流程图103
4.8.3方块图(N?S)104
4.8.4PAD图105
小结106
习题107
第5章体系结构设计110
5.1概述110
5.1.1什么是体系结构110
5.1.2软件体系结构的定义111
5.1.3体系结构描述112
5.1.4体系结构决策113
5.2体系结构的类型113
5.3体系结构的风格115
5.3.1体系结构风格的简单分类116
5.3.2体系结构模式118
5.3.3组织和求精118
5.4体系结构的设计118
5.4.1系统环境的表示119
5.4.2定义原型120
5.4.3将体系结构精化为构件121
5.4.4描述系统实例122
5.5评估可选的体系结构设计122
5.5.1体系结构权衡分析方法122
5.5.2体系结构复杂性123
5.5.3体系结构描述语言124
小结124
习题124
第6章构件级设计127
6.1什么是构件127
6.1.1面向对象的观点127
6.1.2传统观点129
6.1.3过程相关的观点130
6.2设计基于类的构件131
6.2.1基本设计原则131
6.2.2构件级设计指导方针132
6.2.3内聚性133
6.2.4耦合性134
6.3实施构件级设计134
6.4WebApp的构件级设计137
6.4.1构件级内容设计137
6.4.2构件级功能设计138
6.5设计传统构件138
6.6基于构件的开发139
6.6.1领域工程139
6.6.2构件合格性检验、适应性修改
与组合140
6.6.3复用的分析与设计141
6.6.4构件分类与检索142
小结142
习题143
第7章用户界面设计145
7.1黄金规则145
7.1.1用户操纵控制145
7.1.2减轻用户记忆负担146
7.1.3保持界面一致146
7.2用户界面的分析与设计147
7.2.1用户界面分析和设计模型147
7.2.2过程148
7.3界面分析148
7.3.1用户分析149
7.3.2任务分析和建模149
7.3.3显示内容分析151
7.3.4工作环境分析151
7.4界面设计步骤151
7.4.1应用界面设计步骤152
7.4.2用户界面设计模式153
7.4.3设计问题153
7.5WebApp界面设计154
7.5.1界面设计的原则与指导方针155
7.5.2WebApp的界面设计工作流156
7.6设计评估157
小结158
习题159
第8章基于模式的设计160
8.1模式设计160
8.1.1模式的种类160
8.1.2框架162
8.1.3描述模式162
8.1.4模式语言和存储库163
8.2基于模式的软件设计163
8.2.1不同环境下基于模式的设计163
8.2.2在模式中思考164
8.2.3设计任务165
8.2.4建立模式组织表166
8.3体系结构模式166
8.4构件级设计模式167
8.5用户界面设计模式168
8.6WebApp设计模式170
8.6.1设计焦点170
8.6.2设计粒度171
小结171
习题172
第9章WebApp设计174
9.1WebApp设计质量174
9.2设计目标176
9.3WebApp界面设计177
9.4美学设计177
9.5内容设计178
9.5.1内容对象178
9.5.2设计问题179
9.6体系结构设计179
9.6.1内容体系结构180
9.6.2WebApp体系结构181
9.7导航设计182
9.7.1导航语义182
9.7.2导航语法183
9.8构件级设计183
9.9面向对象的超媒体设计方法183
9.9.1OOHDM的概念设计184
9.9.2OOHDM的导航设计185
9.9.3抽象界面设计与实现185
小结185
习题186
第10章软件质量管理188
10.1对软件质量的需求188
10.2软件质量度量189
10.2.1软件质量框架模型189
10.2.2软件质量特性190
10.2.3评估指标的选取原则191
10.3软件质量评估指标体系191
10.3.1功能度指标191
10.3.2可靠性指标192
10.3.3易用性指标192
10.3.4效率特征指标193
10.4软件评价193
10.4.1复杂性度量193
10.4.2可靠性评价194
10.4.3性能评价195
10.4.4运行评价195
10.5CMM:软件能力成熟度模型197
10.6质量管理文件198
小结199
习题199
第11章软件测试203
11.1软件测试策略203
11.1.1策略问题203
11.1.2验证与确认204
11.1.3宏观策略204
11.2传统软件的测试策略206
11.2.1单元测试206
11.2.2集成测试207
11.2.3冒烟测试209
11.2.4回归测试209
11.3面向对象的测试策略210
11.3.1面向对象环境中的单元测试210
11.3.2面向对象环境中的集成测试210
11.3.3面向对象环境中的确认测试211
11.4WebApp的测试策略211
11.5确认测试212
11.5.1确认测试准则212
11.5.2?测试与?测试212
11.6系统测试213
11.6.1恢复测试213
11.6.2安全测试213
11.6.3压力测试213
11.6.4性能测试214
11.6.5部署测试214
11.7调试技巧214
11.7.1调试过程214
11.7.2调试策略215
11.8测试传统应用系统215
11.8.1静态测试技术216
11.8.2动态测试技术216
11.8.3白盒测试方法217
11.8.4黑盒测试方法217
11.8.5模糊测试方法218
11.8.6极限测试219
11.8.7基于风险的测试219
11.9测试面向对象应用系统219
11.9.1扩展测试的视野220
11.9.2测试OOA和OOD模型221
11.9.3面向对象测试方法221
11.10测试Web应用系统221
11.10.1WebApp环境中的错误222
11.10.2内容测试222
11.10.3界面测试223
11.10.4构件测试225
11.10.5导航测试226
11.10.6配置测试227
11.10.7安全测试227
11.10.8性能测试228
小结228
习题229
第12章软件配置管理233
12.1概述233
12.1.1SCM场景234
12.1.2配置管理系统元素234
12.1.3基线235
12.1.4软件配置项236
12.2SCM中心存储库237
12.2.1中心存储库的作用238
12.2.2一般特征和内容238
12.2.3SCM特征239
12.3SCM过程239
12.3.1配置标识240
12.3.2版本控制240
12.3.3变更控制241
12.4WebApp配置管理242
小结243
习题243
第13章软件项目管理245
13.1软件项目的特点245
13.1.1软件管理的特殊困难245
13.1.2软件管理涉及的范围246
13.1.3W5HH原则247
13.2软件开发组织247
13.2.1软件设计小组的形式247
13.2.2对项目经理人员的要求248
13.2.3评价软件人员的条件249
13.3软件项目估算249
13.3.1对估算的观察249
13.3.2项目策划过程250
13.3.3软件范围和可行性250
13.3.4资源251
13.3.5项目估算252
13.3.6自行开发或购买的决策253
13.4安排项目进度254
13.4.1项目进度的安排254
13.4.2为软件项目定义任务集255
13.4.3定义任务网络257
13.5风险管理257
13.5.1软件风险258
13.5.2风险识别259
13.5.3风险预测259
13.5.4风险缓解、监测和管理261
13.6标准化管理261
13.6.1软件工程标准化261
13.6.2软件工程标准化的意义262
13.6.3软件工程国家标准262
小结264
习题265
第14章软件维护与再工程268
14.1概述268
14.1.1软件维护工作的必要性269
14.1.2改正(纠错)性维护270
14.1.3适应性维护270
14.1.4完善性维护270
14.1.5维护工作的过程271
14.2维护策略272
14.2.1控制维护问题和成本的策略272
14.2.2将维护成本和延误减少到
低限度的措施273
14.3软件的可维护性276
14.3.1可维护性的度量276
14.3.2提高软件的可维护性281
14.4业务过程再工程285
14.4.1业务过程285
14.4.2BPR模型286
14.5软件再工程287
14.6正向工程288
14.6.1客户/服务器体系结构的正向
工程289
14.6.2面向对象体系结构的正向工程290
14.7维护管理与文件290
14.7.1软件维护的管理290
14.7.2软件问题报告291
14.7.3软件修改报告293
小结294
习题295
附录习题参考答案298
参考文献304
摘要
软件工程学是用来指导计算机软件开发和维护的工程性学科,它主要研究软件结构、软件设计方法、软件工具、软件工程标准和规范,以及软件工程的有关理论。采用工程化的概念、原理、技术和方法来开发与维护软件,把经过时间考验并证明正确的管理技术和当前能够得到的好的开发方法结合起来,这就是软件工程。
1992年以来,结合软件开发技术和软件工程学科的发展,我们先后在国内多家出版社出版了10多本软件工程、人机交互技术、软件测试技术和软件体系结构的大学专业教材,受到了高等院校相关专业师生的普遍欢迎。
与时俱进,是软件工程专业教材不断发展的需要。本书就是在教学研究、教学改革和软件工程丰富实践的基础上而形成的新的知识结晶。本书针对计算机和其他IT专业学生的发展需求,系统、全面地介绍了软件工程的概念、原理、方法及其应用,详细介绍了软件生存周期、传统软件工程、面向对象软件工程、软件过程工程和软件体系结构设计的思想与实现方法,力图反映软件工程领域的新发展,具有较强的系统性和可读性。本书内容包括:软件和软件工程、软件过程、需求工程、设计的概念、体系结构设计、构件级设计、用户界面设计、基于模式的设计、WebApp设计、软件质量管理、软件测试、软件配置管理、软件项目管理和软件维护与再工程共14章。
本书选编了大量的习题,并在附录中提供了相关习题的参考答案。
朱卓越、张丽娜和蔡建平等参加了本书的部分编写工作。本书的编撰得到了浙江大学城市学院、浙江商业职业技术学院及中船重工集团第七六〇研究所等院校及科研院所的大力支持,在此一并表示感谢!欢迎教师索取本书教学配套的思考与习题解答和多媒体辅助教学课件。作者的联系方式是:zhousu@qq.com,QQ81505050,个人博客http://blog.sina.com.cn/zhousu58。

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网