代码大全 读书笔记.pdf
文本预览下载声明
目 录
第1章 欢迎进入软件构建的世界
第2章 用隐喻来更充分的理解软件开发
第3章 三四而后行 前期准备
第4章 关键的构建决策
第5章 软件构建中的设计
第6章 可以工作的类
第7章 :高质量的子程序
第8章 :防御式编程
第9章 伪代码编程过程
杂记
本文档使用 看云 构建 - 2 -
第1章 欢迎进入软件构建的世界
第1章 欢迎进入软件构建的世界
第1章 欢迎进入软件构建的世界
checklist for Requirements
–核对表 :需求
这张需求核对表包含了一系列的问题–问问自己项目的需求工作做得如何。本书并不会告诉你如何做出好
的需求分析 ,所以列表里面也不会有这样的问题。在开始构建之前 ,用这份列表做一次 “心智健全”检
查 ,看看你的地基到底有多坚固–用 “需求里氏地震”来衡量。
并不是核对表中所有的问题都适用于你的项目。如果你做的是一个非正式的项目 ,那么你会发现有些东西
根本就不需要考虑。你还会发现一些问题你需要考虑 ,但并不需要做出正式的回答 ,如果你是在做一个大
型的、正式的项目 ,你也许就要逐条考虑了。
针对功能需求
是否详细定义了系统的全部输入 ,包括其来源、精度、取值范围、出现的频率等 ?
是否详细定义了系统的全部输出 ,包括目的地、精度、取值范围、出现频率、格式等 ?
是否详细定义了所有输出格式 (WEB页面、报表等 )?
是否详细定义了全部外部通信接口 ,包括握手协议、纠错协议、通信协议等 ?
是否列出了用户想要做的全部事情 ?
是否详细定义了每个任务所用的数据 ,以及每个任务得到的数据 ?
针对非功能需求 (质量需求 )
是否为全部必要的操作 ,从用户的视角 ,详细描述了期望响应时间 ?
是否详细描述了其他与计时有关的考虑 ,例如处理时间、数据传输率、系统吞吐量 ?
是否详细定义了安全级别 ?
否详细定义了可靠性 ,包括软件失灵的后果、发生故障时需要保护的至关重要的信息、错误检测与恢
复的策略等?
是否详细定义了机器内存和剩余磁盘空间的最小值 ?
是否详细定义了系统的可维护性 ,包括适应特定功能的变更、操作系统的变更、与其他软件的接口的
变更能力 ?
是否包含对 “成功”的定义 ? “失败”的定义呢 ?
需求的质量
需求是用用户的语言书写的吗 ?用户也这么认为吗 ?
每条需求都不与其他需求冲突吗 ?
是否详细定义了相互竞争的特性之间的权衡—例如 ,健壮性与正确性之间的权衡 ?
是否避免在需求中规定设计 (方案 )?
需求是否在详细程度上保持相当一致的水平 ?有些需求应该更详细地描述吗 ?有些需求应该更粗略地
本文档使用 看云 构建 - 3 -
第1章 欢迎进入软件构建的世界
描述吗?
需求是否足够清晰 ,即使转交给一个独立的小组去构建 ,他们也能理解吗 ?开发者也这么想吗 ?
每个条款都与待解决的问题及其解决方案相关吗 ?能从每个条款上溯到它在问题域中对应的根源吗 ?
是否每条需求都市可测试的 ?是否可能进行独立的测试 ,以检测满不满足各项需求 ?
是否详细描述了所有可能的对需求的改动 ,包括各项改动的可能性吗 ?
需求的完备性
对于在开始开发之前无法获知的信息 ,是否详细描述了信息不完全的区域 ?
需求的完备度能否达到这种程度 :如果产品满足所有的需求 ,那么它就是可接受的 ?
你对全部需求都感到舒服吗 ?你是否已经去掉了那些不可能实现的需求—那些只是为了安抚客户和老
板的东西 ?
中文要点 :
软件构建是软件开发的核心活动;构建活动是每个项目中唯一一项必不可少的工作.
软件构建的主要活动包括 详细设计,编码,调试,集成,开发者测试(包括单元测试和集成测试).
构建也常被称作”编码”和”编程”.
构建活动的质量对软件的质量有着实质性的影响.
最后,你对”如何进行构建”的理解程度,决定了你这名程序员的优秀程度.
English Key Points :
显示全部