Contents?目 录
译者序
本书作者
第1章 简介 1
1.1 软件工程的数据科学视角 1
1.2 软件分析与实际应用 4
1.3 归纳式软件工程的七个原则:我们做的是不同的 7
1.4 软件工程中对数据分析模式的需求 11
1.5 从软件数据到软件理论:到达的捷径 14
1.6 为何理论是重要的 17
第2章 成功案例与应用 21
2.1 挖掘应用中的异常 21
2.2 拥抱动态工件 25
2.3 移动应用商店分析 28
2.4 软件的自然性 30
2.5 版本发布就绪的研究进展 34
2.6 如何征服你的在线服务 37
2.7 评价个人生产率 40
2.8 基于堆栈跟踪的攻击面检测 43
2.9 软件工程数据的视觉分析 46
2.10 游戏数据分组后效果更佳 49
2.11 实践中应用数据科学的成功故事 52
2.12 从来没有足够的时间做所有需要的测试 56
2.13 能源开采的危险:多次衡量,一次比较 59
2.14 大规模商业软件中的错误文件定位 63
2.15 定制组件:个性化问题跟踪的机遇 66
2.16 至关重要的是决策而非数字:分析设计表 68
2.17 编程语言对代码质量影响的系统研究 72
2.18 代码审查不是为了寻找缺陷:即使已建立的工具也需要偶尔进行评估 74
第3章 技术 78
3.1 会谈 78
3.2 查找暂存数据中的状态转换 83
3.3 卡片分类:从文本到主题 85
3.4 工具!工具!我们需要工具 88
3.5 基于证据的软件工程 93
3.6 你需要哪种机器学习方法 96
3.7 首先结构化你的非结构化数据!用标签云概括非结构化数据的案例 99
3.8 解析数据!准备原始数据的实用技巧 105
3.9 自然语言处理不是免费的午餐 109
3.10 聚集经验证据进行更可信的决策 112
3.11 如果是软件工程,它可能是一个贝叶斯因子 117
3.12 隐私和数据共享都要有恰如其分的条件 120
3.13 软件工程可预测模型中的群体智慧 124
3.14 挖掘软件数据时兼顾定量方法和定性方法 128
3.15 为存活而调查设计的过程和为远航而调查部署的过程 132
第4章 智慧与技巧 138
4.1 记录一切? 138
4.2 起源的重要性 140
4.3 从一开始就保持开放 144
4.4 减少洞察时间 147
4.5 获取成功的五步:如何在组织中部署数据科学 150
4.6 发布过程如何影响软件分析 153
4.7 安全无价 156
4.8 挖掘错误报告中的陷阱 159
4.9 使可视化成为分析过程的一部分 163
4.10 不要忘记开发者(小心你的假设) 165
4.11 研究的局限性和语境 168
4.12 可执行的指标才是更好的指标 171
4.13 可复制的结果更可靠 175
4.14 软件工程研究的多样性 178
4.15 一次还不够:为什么需要重复 181
4.16 不仅仅是数字:可视化的需求 184
4.17 不要使自己尴尬:小心数据中的偏差 187
4.18 操作数据丢失、错误和脱离语境 193
4.19 数据科学在改进和评估过程中演化? 197
4.20 相关性不是因果关系(不要大叫“找到了!”) 199
4.21 小软件公司的软件分析:问题比答案更多 202
4.22 路灯下的软件分析(《星际迷航》教会我们提出正确问题的重要性) 205
4.23 软件工程实验中会出现哪些错误 208
4.24 同样的大小并不适合所有情况 211
4.25 对于好的模型,简单的解释更好 212
4.26 白衬衫效应:从失败的期望中学习 215
4.27 简单的问题能导致更好的见解 218
4.28 连续实验以尽早评估价值 222
4.29 谎言、可恶的谎言和分析:为什么大数据需要厚数据 225
4.30 整个世界都是你的测试套件 229