《代码大全》阅读笔记 第三章,软件创建的先决条件

《Coding complete 代码大全》 阅读笔记12/9/1


第三章  软件创建的先决条件


一. 前期准备的重要性


如题,在本节中主要讲述了前期准备在整个软件开发过程中的重要性。
创造出高质量的项目的实践方法是在项目的前期,中期和后期都强调质量。
项目的后期主要是测试,只是质量保证的一个策略,虽然会发现一些Bug,但是类似“程序的结构
错误”,“使用错误的方法制造了这个产品”。
项目的中期,主要是项目的构建环节,项目的构建的依据在哪儿,依据还是前期准备的需求说明
书和设计说明书。所以说,前期准备的是否充分,已经为整个项目的成功或者失败打下了基础。
项目的前期,既然项目的中期和后期的质量很大程度上都依赖于前期的准备,那么前期的准备理
所当然需要强调质量了。

前期准备是否适用于现代软件项目?


作者的答案是肯定的。他通过一些数据来证明这个论点,而且还表明前期准备的中心目标是:降
低项目开发的风险。

准备不周全的诱因?


1)没有专业的职业技能。不具备完成前期工作的能力。
2)不能抵抗“尽快开始编码”的诱惑。觉得只有敲代码才是真正的开发。
3)管理者或者负责人的错误认识,对前期工作的冷淡态度。

关于开始构建之前做前期准备的论据?


作者从逻辑,类比和数据三个角度,分别描述了做前期准备的重要性。
总结:前期准备很重要,非常需要准备充分,非常需要高质量。为什么呢?因为这样可以降低项
目开发的风险,直接一点就是,为高质量的中期后期的项目开发奠定扎实的基础。

二. 辨明你所从事的软件的类型


???前面一段关于“软件项目种类”的文字和图,未能看懂。有点抽象。

迭代开发法对前期准备的影响?


      什么是序列式开发法?
也称传统瀑布开发模式,就是将项目的生命周期分成几个阶段,完成一个阶段之后,进入下一个
阶段。在项目初期西化所有的需求,并希望不再改变。
      什么是迭代式开发法?
也成增量式的开发,一点一点的添加。在这个过程中项目的需求是可以不断的变化,开发者在变
化的需求下,不停的调整项目的开发计划,使之更符合需求。
迭代开发可以减少前期准备的损失,但是并不是完全的减少。
无论使用序列式的开发还是迭代式的开发,只要进行前期准备,都可以减少成本。迭代式的开发
通常有很多的理由去选择,但是有前期准备的迭代式往往比没有前期准备的迭代式更具优势,更吸引人。

在序列式开发和迭代式开发之间做出选择?


需要考虑各自的特点,各有千秋。不过实际应用过程中,迭代式开发被选择的比较多。

三. 问题定义的先决条件


讲述如何辨认是否已经写好问题定义。
• 要使用描述一个问题一样去描述,不得加入任何解决方案。
• 问题定义,应该使用客户的语言去写,尽量避免专业性的语言与术语。
错误的问题定义产生的后果:花大量时间去解决无关紧要的问题。

四. 需求的先决条件


为什么要有正式的需求?


给程序员确定目标,而不用程序员猜测用户想要什么。
避免争论。当需求不明确的时候,每个人对需求的理解可能都不一样,很容易引起争论。面红耳赤。
有助于减少编程开发之后程序的变更。
总结:需求是程序员对问题定义的提出解决方案的第一步。掌握着整个项目开发的发展方向。


稳定需求的神话


需求变更的主要来源:随着客户参与项目的时间增长,他们对项目的理解也就越深入,也让他们
自己更清楚的了解自己的需求。

在构建期间处理需求的变更


• 使用本节末尾的需求核对表来评估你的需求的质量。
• 确保每一个人都知道需求变更的代价。这里包括客户与开发人员。
• 建立一套变更控制程序。一个专门处理需求变更的机制。方便合作与交流。
• 使用能适应变更的开发方法。分阶段交付系统的方法。增量式的开发方法。
• 放弃这个项目。特别糟糕的时候,放弃吧。
• 注意项目的商业案例。考虑其需求形成功能之后,存在的商业价值有哪些。

五. 架构的先决条件


看的不是很明白,觉得内容很多。读着书,觉得每一句都很有道理,但是除了这个感觉其他就没啥收获
了。可能是新人,可能是架构里面的学问太深......决定跳过这部分。以后再补上。

posted @ 2012-09-05 18:05  zhouzidan  阅读(468)  评论(0编辑  收藏  举报