软件工程入门经典

副标题:无

作   者:[美]Rod Stephens 著 明道洋 曾庆红 译

分类号:

ISBN:9787302439264

微信扫一扫,移动浏览光盘

简介

全面讲解如何构建稳定可靠的软件 本书揭秘专业开发人员为设计和构建稳定、可靠、高效软件所运用的软件工程技术和方法。本书通俗易懂,在大量案例的引导下,演示适用于任何编程语言的重要概念和技术;即使你目前不具有编程、开发和管理经验,同样可以阅读和学习本书。每章末尾附有精选习题,以测试你对知识的理解程度,引导你悟透主要概念。本书全面介绍了瀑布、生鱼片、敏捷、RAD、Scrum、看板和极限编程等各种开发方法所涉及的基本任务。主要内容◆ 详述软件工程概念◆ 阐释参与软件工程项目的团队成员的角色和职责◆ 指出软件工程项目都必须经历哪些重要阶段才能开发出功能卓越的可靠应用程序◆ 详述主流软件开发方法及其处理重要开发任务的不同方式◆ 提供从每章主要知识点引申的习题◆ 附有详明的软件工程术语表

目录

第Ⅰ部分  进阶
第1章  软件工程概览 3
1.1  需求收集 3
1.2  概要设计 4
1.3  详细设计 5
1.4  开发 5
1.5  测试 6
1.6  部署 7
1.7  维护 8
1.8  总结和反思 8
1.9  一次性处理所有事项 8
1.10  本章小结 9
第2章  入手之前 13
2.1  文档管理 13
2.2  历史文档 15
2.3  电子邮件 16
2.4  代码 18
2.5  代码文档 18
2.6  应用程序文档 21
2.7  本章小结 21
第3章  项目管理 25
3.1  管理支持 26
3.2  项目管理 27
3.2.1  PERT图 28
3.2.2  关键路径方法 33
3.2.3  甘特图 35
3.2.4  软件日程安排 36
3.2.5  估算时间 36
3.3  风险管理 41
3.4  本章小结 42
第4章  需求收集 45
4.1  需求定义 46
4.1.1  清晰 46
4.1.2  没有歧义 46
4.1.3  一致 47
4.1.4  优先级排序 47
4.1.5  可验证 50
4.1.6  应避免使用的词 51
4.2  需求分类 51
4.2.1  受众导向的需求 51
4.2.2  FURPS 54
4.2.3  FURPS 54
4.2.4  通用需求 56
4.3  收集需求 57
4.3.1  倾听客户(和用户)的需要 57
4.3.2  使用5W(和一个H) 57
4.3.3  研究用户 59
4.4  细化需求 60
4.4.1  复制现有系统 60
4.4.2  未卜先知 61
4.4.3  头脑风暴 62
4.5  记录需求 64
4.5.1  UML 64
4.5.2  用户故事 65
4.5.3  用例 65
4.5.4  原型 66
4.5.5  需求说明 67
4.6  确认和验证 67
4.7  更改需求 67
4.8  本章小结 68
第5章  概要设计 71
5.1  纵览全局 72
5.2  指定的事项 73
5.2.1  安全性 73
5.2.2  硬件 74
5.2.3  用户接口 75
5.2.4  内部接口 76
5.2.5  外部接口 76
5.2.6  架构 77
5.2.7  报表 83
5.2.8  其他输出 83
5.2.9  数据库 84
5.2.10  配置数据 86
5.2.11  数据流及状态 86
5.2.12  培训 87
5.3  UML 87
5.3.1  结构图 88
5.3.2  行为图 90
5.3.3  交互图 93
5.4  本章小结 95
第6章  详细设计 97
6.1  面向对象设计 98
6.1.1  识别类 99
6.1.2  创建继承体系 99
6.1.3  对象组合 103
6.2  数据库设计 104
6.2.1  关系数据库 104
6.2.2  第一范式 106
6.2.3  第二范式 109
6.2.4  第三范式 111
6.2.5  更高级的规范化112
6.3  本章小结 113
第7章  开发 117
7.1  使用正确的工具 118
7.1.1  硬件 118
7.1.2  网络 119
7.1.3  开发环境 119
7.1.4  源代码控制 120
7.1.5  分析器 120
7.1.6  静态分析工具 120
7.1.7  测试工具 121
7.1.8  源代码格式器 121
7.1.9  重构工具 121
7.1.10  培训 121
7.2  选择算法 121
7.2.1  有效果 122
7.2.2  有效率 122
7.2.3  可预测 124
7.2.4  简洁 124
7.2.5  预包装 125
7.3  自上而下的设计 125
7.4  编程提示和技巧 127
7.4.1  保持清醒 127
7.4.2  为人编写代码,并非计算机 127
7.4.3  注释优先 128
7.4.4  编写自文档化的代码130
7.4.5  保持小巧 131
7.4.6  保持专注 132
7.4.7  避免副作用 132
7.4.8  验证结果 133
7.4.9  实践“进攻式”编程135
7.4.10  使用异常 136
7.4.11  首先编写异常处理程序 136
7.4.12  切勿重复代码137
7.4.13  推迟优化 137
7.5  本章小结 138
第8章  测试 141
8.1  测试的目的 142
8.2  永不消亡的bug 143
8.2.1  收益递减 143
8.2.2  最后期限 143
8.2.3  影响 143
8.2.4  为时尚早 143
8.2.5  有用性 144
8.2.6  过时 144
8.2.7  这并非一个bug144
8.2.8  没有尽头 145
8.2.9  有总比没有好 145
8.2.10  修复 bug很危险 145
8.2.11  修复哪些bug146
8.3  测试级别 146
8.3.1  单元测试 146
8.3.2  集成测试 148
8.3.3  自动化测试 148
8.3.4  组件接口测试 149
8.3.5  系统测试 150
8.3.6  验收性测试 150
8.3.7  其他测试类型 151
8.4  测试技术 152
8.4.1  穷举测试 152
8.4.2  黑盒测试 153
8.4.3  白盒测试 153
8.4.4  灰盒测试 153
8.5  测试习惯 154
8.5.1  清醒时再进行测试和调试 154
8.5.2  测试自己的代码154
8.5.3  让其他人测试你的代码155
8.5.4  修复自己的bug156
8.5.5  修改前请“三思”157
8.5.6  不要相信魔法 157
8.5.7  查看改变之处 157
8.5.8  修复bug,并非症状 158
8.5.9  对测试用例进行测试158
8.6  如何修复bug 158
8.7  估算bug的数量 159
8.7.1  跟踪发现的bug159
8.7.2  播种 160
8.7.3  林肯指数 161
8.8  本章小结 162
第9章  部署 165
9.1  范围 166
9.2  计划 166
9.3  切换 167
9.3.1  阶段性部署 167
9.3.2  逐步切换 168
9.3.3  增量部署 169
9.3.4  并行测试 170
9.4  部署任务 170
9.5  部署错误 171
9.6  本章小结 172
第10章  度量 175
10.1  庆祝会 176
10.2  缺陷分析 176
10.2.1  bug的种类176
10.2.2  石川图 178
10.3  软件度量 181
10.3.1  好的属性和度量指标的一些特征 182
10.3.2  度量的用途 182
10.3.3  需要度量的对象184
10.3.4  规模标准化 186
10.3.5  功能点标准化188
10.4  本章小结 192
第11章  维护 195
11.1  维护成本 196
11.2  任务分类 197
11.2.1  完成性任务 197
11.2.2  适应性任务 200
11.2.3  纠正性任务 201
11.2.4  预防性任务 203
11.2.5  个别bug 207
11.2.6  “非我发明”207
11.3  任务执行 208
11.4  本章小结 208
第Ⅱ部分  模型
第12章  预测模型 215
12.1  模型 215
12.2  预备知识 216
12.3  预测和自适应 216
12.3.1  成功和失败的标志217
12.3.2  利与弊 218
12.4  瀑布 219
12.5  带有反馈的瀑布 220
12.6  生鱼片 221
12.7  增量瀑布 222
12.8  V模型 224
12.9  系统开发生命周期224
12.10  本章小结 227
第13章  迭代模型 229
13.1  迭代与预测 230
13.2  迭代与增量 231
13.3  原型 232
13.3.1  原型的类型 233
13.3.2  优缺点 234
13.4  螺旋模型 235
13.4.1  澄清 237
13.4.2  优势和不足 238
13.5  统一过程 239
13.5.1  优势和不足 240
13.5.2  RUP 241
13.6  洁净室模型 241
13.7  本章小结 242
第14章  RAD 245
14.1  RAD的主要原则246
14.2  James Martin RAD 249
14.3  敏捷开发 249
14.3.1  自组织团队 252
14.3.2  敏捷方法 253
14.4  XP 256
14.4.1  XP的角色 257
14.4.2  XP的价值观257
14.4.3  XP实践 258
14.5  Scrum 264
14.5.1  Scrum角色264
14.5.2  Scrum冲刺265
14.5.3  计划扑克 266
14.5.4  燃尽图 267
14.5.5  速率 268
14.6  精益软件开发 268
14.7  水晶方法 269
14.7.1  透明水晶 271
14.7.2  黄色水晶 272
14.7.3  橙色水晶 272
14.8  功能驱动开发 274
14.8.1  FDD角色 274
14.8.2  FDD阶段 275
14.8.3  FDD迭代里程碑277
14.9  敏捷统一过程 278
14.10  规范敏捷交付 280
14.10.1  DAD原则280
14.10.2  DAD角色280
14.10.3  DAD阶段281
14.11  动态系统开发方法282
14.11.1  DSDM阶段282
14.11.2  DSDM原则283
14.11.3  DSDM角色284
14.12  看板软件开发方法285
14.12.1  看板的一些原则285
14.12.2  和看板有关的一些实践 286
14.12.3  看板图 286
14.13  本章小结 287
附录A  习题答案 293
术语表 337

?能力是必不可缺的一环,但仅仅依靠语言是不够的,还需要有一定的组织能力、总结能力以及团队合作意识,才能让分析出来的现象和得出的结论有一个好"归宿"。
1.3.7  熟知--企业业务
  不同的企业有不同的业务,数据分析师必须要熟知自己所在企业的业务,只有这样才能实现高效、实用的数据分析操作。若数据分析师脱离了企业业务背景,那么分析出来的结果必然会偏离原本的轨道,导致实用性不强。
  对于刚进企业的新手而言,想要一蹴而就地熟知企业业务是很难实现的,数据分析新手,可以通过以下几点来了解,如图1-15所示。

图1-15  数据分析新手入门要点

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

软件工程入门经典
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon