代码大全
Code Complete by Steve McConnell
一、创建的定义
Detail Design Coding and Debugging UnitTesting
枢纽地位 不可缺少 代码往往是唯一精确描述
二、用隐喻理解
系统积累:只需要成为一个坚实的骨架结构,以便能承受将要在它之上发展的真实
系统。
建造软件:如果样样都自己动手是很不明智的。Building Software
建筑工程方法。
智能工具箱:如果你拥有的唯一工具就是一把锤子,那么你就会把整个世界都当作
一个钉子。
三、软件创建的先决条件
1、重要性:
优秀程序员的一个突出特点是他们采用高质量的过程来创建软件。这种过程在计划的开始,中间和末尾都强调高质量。
论据:计划是弄清楚你要干什么。食物链。一次完成是最好的选择,不必要的修改是非常昂贵的。过分的使用计算机往往与低生产率紧密相连。
2、问题定义的先决条件:
弄清楚要解决的问题是什么。问题定义应该从用户的观点出发,使用用户的语言进行定义。一般来说,它不应该用计算机术语进行定义,因为最好的解决方法可能不是一个计算机程序。
3、需求分析的先决条件
需求详细描述了一个软件系统要解决的问题。
明确的需求可以保证是由用户而不是程序员决定系统的功能。
4、需求变动控制
用户对自己想要的东西,也是随着项目的进行而越来越清楚的。
原型à对付变化。
让每个人都知道由于变化需求所付出的代价。
建立一套更改控制过程。
放弃项目。
5、结构设计先决条件
软件结构设计是较高意义上的软件设计,它是支持详细设计的框架。
典型的结构要素
A、程序的组织形式
定义主要模块:一个模块是能完成某一高级功能的子程序的组合。 模块化
定义模块做什么:一个模块应该只完成一项任务而且圆满完成。 高内聚
定义模块间的界面:调用关系。 低耦合
B、变动策略
C、购买而不是建造的决定
D、主要的数据结构----存取控制,信息隐蔽
E、关键算法
F、主要对象
G、通用功能
用户界面
输入输出
内存管理
字符