ad holder

软件工程入门经典

软件工程入门经典 下载 mobi epub pdf 电子书 2024


简体网页||繁体网页
[美] Rod Stephens 著,明道洋,曾庆红 译



点击这里下载
    


想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

发表于2024-04-27

类似图书 点击查看全场最低价

图书介绍

出版社: 清华大学出版社
ISBN:9787302439264
版次:1
商品编码:11995006
包装:平装
开本:16开
出版时间:2016-07-01
用纸:胶版纸
页数:376
字数:602000


相关图书





图书描述

产品特色

编辑推荐

  ◆详述软件工程概念

  ◆阐释参与软件工程项目的团队成员的角色和职责

  ◆指出软件工程项目都必须经历哪些重要阶段才能开发出功能卓越的可靠应用程序

  ◆详述主流软件开发方法及其处理重要开发任务的不同方式

  ◆提供从每章主要知识点引申的习题

  ◆附有详明的软件工程术语表


内容简介

  全面讲解如何构建稳定可靠的软件

  《软件工程入门经典》揭秘专业开发人员为设计和构建稳定、可靠、高效软件所运用的软件工程技术和方法。本书通俗易懂,在大量案例的引导下,演示适用于任何编程语言的重要概念和技术;即使你目前不具有编程、开发和管理经验,同样可以阅读和学习本书。每章末尾附有精选习题,以测试你对知识的理解程度,引导你悟透主要概念。本书全面介绍了瀑布、生鱼片、敏捷、RAD、Scrum、看板和极限编程等各种开发方法所涉及的基本任务。

  主要内容

  ◆详述软件工程概念

  ◆阐释参与软件工程项目的团队成员的角色和职责

  ◆指出软件工程项目都必须经历哪些重要阶段才能开发出功能卓越的可靠应用程序

  ◆详述主流软件开发方法及其处理重要开发任务的不同方式

  ◆提供从每章主要知识点引申的习题

  ◆附有详明的软件工程术语表


作者简介

  Rod Stephens儿时梦想成为数学家,但当在麻省理工学院学习时,他发现编程非常有趣,从此便开始了专业的编程生涯。在其职业生涯中,他从事过很多不同领域的应用程序开发,如电话交换、计费、维修调度、税务处理、污水处理、演唱会门票销售、制图以及专业足球运动员培训。

  十多年来,Rod 一直都是“微软Visual Basic 有价值专家(MVP)”,曾教授过一些编程的入门课程。他撰写过30 多本书,并且这些书籍还都被翻译成不同的语言。他撰写过250 多篇杂志文章,主要涉及Visual Basic、C#、Visual Basic for Applications、Delphi 以及Java。

  Rod 广受欢迎的VB Helper 站点(www.vb-helper.com)包含有数千个针对Visual Basic 程序开发人员的提示、技巧以及示例程序页面。他的C# Helper 站点(www.csharphelper.com)包含类似的一些C#开发资源。

  可以通过RodStephens@CSharpHelper.com 或RodStephens@vb-helper.com 和Rod 保持联系。


目录

第Ⅰ部分 进阶

第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 这并非一个bug 144

8.2.8 没有尽头 145

8.2.9 有总比没有好 145

8.2.10 修复 bug很危险 145

8.2.11 修复哪些bug 146

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 修复自己的bug 156

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 跟踪发现的bug 159

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


前言/序言

  前 言

  如今的编程是“程序员正努力创建一个更大更傻的程序”和“世界在尝试创造更多更傻的人”之间的一种角逐。到目前为止,后者是赢家。

  ——Rick Cook

  借助一些现代开发工具,不需要事先设计和计划,坐在键盘旁就可以敲打出一个可以工作的程序。某些情况下,这还是可行的。我的VB Helper(www.vb-helper.com)和C# Helper(www. csharphelper.com)站点就包含了数以千计的Visual Basic和C#示例程序——这些程序正是通过这样的方法进行创建的。每当我有一个想法(或是别人向我提出一个问题时),我都会敲击出一个简单示例程序。

  如果只有你自己使用而且只是短期使用这些程序,那么还好。如果只用于实验,演示一些编程技巧,那么也还好。

  如果是将这种草率粗糙的程序用于生产,其结果将是灾难性的。即便作最乐观的估计,使用这些程序的非编程员也将很快束手无策。最糟的情况下,它们可以破坏计算机,甚至严重影响你和朋友、同事之间的关系。

  即使经验最丰富的开发人员有时也会被这种不靠谱的程序弄得焦头烂额。我知道有人(我不想指名道姓,但我绝不会干这种事情)编写一些简单的递归脚本来删除某个目录层次中的文件。遗憾的是,这样的脚本将以递归方式爬行到目录树顶部,然后幸灾乐祸地删除系统中的每个文件。这种脚本在停止前仅运行大约5秒钟,但它已经破坏了足够多的文件,从而导致必须重新安装操作系统(实际上,一些开发人员认为每隔一年左右重装一次操作系统是在锻炼意志力。如果认同这样的看法,不妨尝试一下)。

  我还认识一位经验丰富的开发人员。她在测试Windows系统设置时,曾设法把每种系统颜色都设置为黑色,结果却导致黑色光标悬停在黑色的桌面上,显示的是带有黑色边框、菜单以及文本的黑色窗口。此人(不是我)最终通过重启的方式,通过另一台色彩正常的计算机,仅通过键盘快捷键修复了颜色设置。这确实是明智的胜利,但我怀疑她宁愿没有发生这件事,也不情愿白白浪费两天的时间。

  对于那些代码量比较大或者是面向可信赖终端用户的程序而言,这种自由散漫的开发方式并不适用。为编写出安全、有效、可靠的应用程序,不能只坐下来敲敲键盘。你需要“软件工程”。

  本书主要介绍软件工程。它将向我们阐释软件工程是什么以及如何借助它创建高效、灵活、健壮的应用程序。

  本书不能使你成为专家级的系统分析师、软件架构师、项目经理或程序员,却向我们阐释了这些人做什么,以及对于高质量的软件开发而言,他们为什么是不可或缺的。本书介绍了一些入门级工具。你不用一个人去“战斗”,或是带领1000人给FAA开发一个航空交通管制系统,但它的确有助于在不同规模的开发项目中高效工作(当你的老板意味深长地说“是啊,我们主要使用的是深度结合了XP技术的敏捷开发”时,它也有助于你悟透这句话中的“玄机”)。

  软件工程的概念

  软件工程的比较正式的一个概念可能为:“设计、开发、使用、维护软件的结构化分析方法。”

  更直观地讲,软件工程是成功的软件开发所需要的一切,它包含将可能模糊不清、不成熟的想法转变成为一个强大、直观的应用程序需要的所有步骤,从而能够更好地满足用户未来日益变化的需求。

  当设计应用程序时,可能仅把软件工程视为上述过程的开始部分。毕竟,一个航空工程师只是设计飞机但不建造 软件工程入门经典 下载 mobi epub pdf txt 电子书 格式


软件工程入门经典 mobi 下载 pdf 下载 pub 下载 txt 电子书 下载 2024

软件工程入门经典 下载 mobi pdf epub txt 电子书 格式 2024

软件工程入门经典 下载 mobi epub pdf 电子书
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

用户评价

评分

书到了 可是封皮都给我磨坏了 不开心

评分

很实用,工作中正需要,好书!!!!!

评分

很实用,工作中正需要,好书!!!!!

评分

很满意的一次购物,非常棒

评分

还可以

评分

还没看

评分

很不错,对于入门很有帮助

评分

学习,要进步就要学习,不断的学习

评分

学些理论很有用

类似图书 点击查看全场最低价

软件工程入门经典 mobi epub pdf txt 电子书 格式下载 2024


分享链接








相关图书


本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

友情链接

© 2024 book.qciss.net All Rights Reserved. 图书大百科 版权所有