万本电子书0元读

万本电子书0元读

顶部广告

编程卓越之道(卷3):软件工程化电子书

媲美高德纳TAOCP的程序设计领域经典系列||100本书都没有讲明白的事情被这本书说清楚了||机器原理→底层语言→高级代码→团队生产力

售       价:¥

纸质售价:¥101.10购买纸书

28人正在读 | 0人评论 6.6

作       者:(美)Randall Hyde(兰德尔·海德)

出  版  社:电子工业出版社

出版时间:2022-08-01

字       数:20.5万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书深介绍了从发方法、生产力到面向对象的设计需求和系统文档的方方面面。通过本书,你将学习到:为什么遵循软件匠艺模型可以让你做到最好;如何利用可追溯性来加强文档的一致性;如何通过用例分析来创建自己的UML需求;如何利用IEEE文档标准发出更好的软件。通过对高质量软件发中技能、态度和道德方面的深讲解,本书揭示了如何将工程原理应用于编程的正确方法。在这个过程中,Hyde不仅会教给你规则,还会告诉你什么时候该破规则。他不仅会启发你认识什么是最佳实践,同时还会让你发现适合自己的最佳实践。本书中包含了大量的资源和示例,它是你编写代码的首选指南,将让你从同行中脱颖而出。<br/>【推荐语】<br/>软件工程领域可能更加重视团队的生产力,而不是个人的成长,但是传奇的计算机科学家Randall Hyde想让优秀的程序员成为这个领域中的大师。为此,Hyde编写了备受推崇的《编程卓越之道》系列的最新一卷——《软件工程化》,深介绍了从发方法、生产力到面向对象的设计需求和系统文档的方方面面。你将从本书中学习到: ·为什么遵循软件匠艺模型可以让你做得更好 ·如何利用可追溯性来加强文档的一致性 ·如何通过用例分析来创建自己的UML需求 ·如何利用IEEE文档标准来创建更好的软件 通过对高质量软件发中技能、态度和道德方面的深讲解,本书揭示了如何将工程原理应用于编程的正确方法。在这个过程中,Hyde不仅会教给你规则,还会告诉你什么时候该破规则。他不仅会启发你认识什么是最佳实践,同时还会让你发现适合自己的最佳实践。 《软件工程化》一书中包含了大量的资源和示例,它是你编写代码的优选指南,将让你从同行中脱颖而出。<br/>【作者】<br/>Randall Hyde是The Art of Assembly Language(《汇编语言的编程艺术》)和Write Great Code(《编程卓越之道》)第1~3卷(均由No Starch Press出版),以及Using 6502 Assembly Language和P-Source(由Datamost出版)的作者。他也是Microsoft Macro Assembler 6.0 Bible(由Waite Group出版)一书的合著者。在过去的40年里,Hyde一直从事嵌式软件/硬件工程师的工作,为核反应堆、交通控制系统和其他电子设备发相关指令集。他还在加州理工大学波莫纳分校和加州大学河滨分校教授计算机科学课程。 张若飞,曾任多家互联网金融公司CTO,在宜人贷、雅虎北研、金山云等知名公司担任架构师。十余年互联网研发及技术管理经验,对搭建海量数据、大型分布式系统有丰富经验。著有十余本技术译著,包括《Grails权威指南》《给大忙人看的JavaSE 8》《代码不朽:编写可维护软件的十大原则》《面向可伸缩架构》《云原生Java》等书,总计400余万字。<br/>
目录展开

内容简介

推荐序1

推荐序2

推荐语

前言

第1部分 个人软件工程

1 软件开发的比喻

1.1 什么是软件

1.1.1 软件不是被制造出来的

1.1.2 软件不会磨损

1.1.3 大多数软件都是定制化的

1.1.4 软件可以很容易升级

1.1.5 软件不是一个独立的实体

1.2 与其他领域的相似性

1.2.1 程序员像艺术家一样

1.2.2 程序员像建筑师一样

1.2.3 程序员像工程师一样

1.2.4 程序员像工匠一样

1.2.5 究竟是艺术家、建筑师、工程师还是工匠

1.3 软件工程

1.3.1 一个正式的定义

1.3.2 项目规模

1.3.3 软件工程的问题

1.4 软件匠艺

1.4.1 教育

1.4.2 学徒阶段

1.4.3 软件熟练工

1.4.4 大师级工匠

1.4.5 软件匠艺的不足

1.5 通往卓越编程的道路

1.6 获取更多信息

2 生产力

2.1 什么是生产力

2.2 程序员生产力与团队生产力的比较

2.3 工时和实际时间

2.4 概念复杂性和范围复杂性

2.5 预测生产力

2.6 度量指标,以及我们为什么需要它们

2.6.1 可执行文件大小度量指标

2.6.2 机器指令度量指标

2.6.3 代码行数度量指标

2.6.4 语句数量度量指标

2.6.5 功能点分析

2.6.6 McCabe圈复杂度度量指标

2.6.7 其他度量指标

2.6.8 度量指标的问题

2.7 我们怎样才能每天写出10行代码

2.8 估计开发时间

2.8.1 估计小型项目的开发时间

2.8.2 估计中型项目和大型项目的开发时间

2.8.3 估计开发时间的问题

2.9 危机模式项目管理

2.10 如何提高工作效率

2.10.1 合理选择软件开发工具

2.10.2 管理开销

2.10.3 设置明确的目标和里程碑

2.10.4 练习自我激励

2.10.5 集中注意力,消除干扰

2.10.6 如果你觉得无聊,那么就做点别的事情

2.10.7 尽可能自立

2.10.8 识别何时需要帮助

2.10.9 克服士气低落

2.11 获取更多信息

3 软件开发模型

3.1 软件开发生命周期

3.2 软件开发模型

3.2.1 非正式模型

3.2.2 瀑布模型

3.2.3 V模型

3.2.4 迭代模型

3.2.5 螺旋模型

3.2.6 快速应用程序开发模型

3.2.7 增量模型

3.3 软件开发方法论

3.3.1 传统的(预测型)方法论

3.3.2 自适应型方法论

3.3.3 敏捷开发

3.3.4 极限编程

3.3.5 Scrum

3.3.6 功能驱动开发

3.4 卓越程序员的模型和方法论

3.5 获取更多信息

第2部分 UML

4 UML和用例介绍

4.1 UML标准

4.2 UML用例模型

4.2.1 用例图的元素

4.2.2 用例包

4.2.3 用例包含

4.2.4 用例泛化

4.2.5 用例扩展

4.2.6 用例故事

4.2.7 用例场景

4.3 UML系统边界图

4.4 除用例以外

4.5 获取更多信息

5 UML活动图

5.1 UML活动状态符号

5.1.1 开始和结束状态

5.1.2 活动

5.1.3 状态

5.1.4 转移

5.1.5 条件

5.1.6 合并点

5.1.7 事件和触发器

5.1.8 分叉和合并(同步)

5.1.9 调用符号

5.1.10 分区

5.1.11 注释和注解

5.1.12 连接器

5.1.13 其他活动图符号

5.2 扩展UML活动图

5.3 获取更多信息

6 UML类图

6.1 UML中的面向对象分析与设计

6.2 类图中的可见性

6.2.1 公共的类可见性

6.2.2 私有的类可见性

6.2.3 受保护的类可见性

6.2.4 包级别的类可见性

6.2.5 不支持的可见性类型

6.3 类属性

6.3.1 属性可见性

6.3.2 属性派生值

6.3.3 属性名称

6.3.4 属性数据类型

6.3.5 操作数据类型(返回值)

6.3.6 属性多重性

6.3.7 属性初始值

6.3.8 属性字符串

6.3.9 属性语法

6.4 类操作

6.5 UML的类关系

6.5.1 类的依赖关系

6.5.2 类的关联关系

6.5.3 类的聚合关系

6.5.4 类的组合关系

6.5.5 关系特性

6.5.6 类的继承关系

6.6 对象

6.7 获取更多信息

7 UML交互图

7.1 时序图

7.1.1 生命线

7.1.2 消息类型

7.1.3 消息标签

7.1.4 消息序号

7.1.5 守卫条件

7.1.6 迭代

7.1.7 长延迟和时间约束

7.1.8 外部对象

7.1.9 激活条

7.1.10 分支

7.1.11 可选流

7.1.12 对象的创建和销毁

7.1.13 时序片段

7.2 协作图

7.3 获取更多信息

8 其他UML图

8.1 组件图

8.2 包图

8.3 部署图

8.4 合成结构图

8.5 状态图

8.6 关于UML的更多信息

8.7 获取更多信息

第3部分 文档

9 系统文档

9.1 系统文档类型

9.2 可追溯性

9.2.1 建立文档可追溯性的方法

9.2.2 标签格式

9.2.3 需求/反向可追溯性矩阵

9.3 确认、验证和审查

9.4 通过文档降低开发成本

9.4.1 通过确认降低成本

9.4.2 通过验证降低成本

9.5 获取更多信息

10 需求文档

10.1 需求的来源和可追溯性

10.1.1 建议的需求格式

10.1.2 好需求的特点

10.2 设计目标

10.3 系统需求规范文档

10.4 软件需求规范文档

10.4.1 介绍

10.4.2 总体描述

10.4.3 具体需求

10.4.4 支持信息

10.4.5 软件需求规范示例

10.5 创建需求

10.6 用例

10.6.1 启用/禁用调试模式

10.6.2 启用/禁用以太网

10.6.3 启用/禁用RS-232

10.6.4 启用/禁用测试模式

10.6.5 启用/禁用USB

10.6.6 读取拨码开关

10.7 根据用例创建DAQ软件需求

10.8 (从SRS中选择的)DAQ软件需求

10.9 用需求信息更新可追溯性矩阵

10.9.1 通过审查验证的需求

10.9.2 通过测试验证的需求

10.10 获取更多信息

11 软件设计描述文档

11.1 IEEE Std 1016-1998和IEEE Std 1016-2009

11.2 IEEE 1016-2009的概念模型

11.2.1 设计关注点和设计利益相关方

11.2.2 设计观点和设计元素

11.2.3 设计视图、设计覆盖和设计原理

11.2.4 IEEE Std 1016-2009的概念模型

11.3 SDD所需内容

11.3.1 SDD标识

11.3.2 设计利益相关方和设计关注点

11.3.3 设计视图、设计观点、设计覆盖和设计原理

11.4 SDD的可追溯性和标签

11.5 建议的SDD大纲

11.6 SDD文档示例

11.7 用设计信息更新可追溯性矩阵

11.8 创建软件设计

11.9 获取更多信息

12 软件测试文档

12.1 Std 829中的软件测试文档

12.1.1 流程支持

12.1.2 完整性级别和风险评估

12.1.3 软件开发测试级别

12.2 测试计划

12.2.1 主测试计划

12.2.2 级别测试计划

12.2.3 级别测试设计文档

12.3 软件审查列表文档

12.3.1 SRL大纲示例

12.3.2 SRL文档示例

12.3.3 将SRL项添加到可追溯性矩阵中

12.4 软件测试用例文档

12.4.1 STC文档中的介绍

12.4.2 详细说明

12.4.3 其他

12.4.4 软件测试用例文档示例

12.4.5 用STC信息更新RTM文档

12.5 软件测试过程文档

12.5.1 IEEE Std 829-2009软件测试过程

12.5.2 软件测试过程的大纲扩展

12.5.3 STP文档中的介绍

12.5.4 测试过程

12.5.5 其他

12.5.6 索引

12.5.7 STP文档示例

12.5.8 用STP信息更新RTM文档

12.6 级别测试日志

12.6.1 级别测试日志文档中的介绍

12.6.2 详细说明

12.6.3 术语表

12.6.4 关于测试日志的一些注释

12.7 异常报告

12.7.1 异常报告文档中的介绍

12.7.2 详细说明

12.7.3 对异常报告的几点建议

12.8 测试报告

12.8.1 主测试报告的简要介绍

12.8.2 级别测试报告

12.9 你真的需要这些吗

12.10 获取更多信息

后记:如何设计卓越的代码

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部