你可以另找一份工作。优秀的程序员是非常短缺的。可以找到更好的工作,干吗非
要呆在一个很不开明的程序店里,徒损生命呢?
让每个人都知道由于变化需求所付出的代价
需求内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| · 系统的所有输入都定义了吗?包括它们的来源、精度、取值范围和频率? · 系统所有的输出都定义了吗?包括它们的目标、精度、取值范围、频率和格式? · 所有的报告格式都定义了吗? · 所有的硬件与软件接口都定义了吗? · 所有的通信交界面都定义了吗?包括握手、错误检查以及通信约定? · 是否从用户的观点出发,定义了所有必要操作的反应时间? · 是否定义了时间问题,如处理时间、数据传输率以及系统吞吐能力? · 是否对用户所要求完成的任务部作出了规定? · 每项任务所需用到和产生的数据都规定了吗? · 规定保密级别了吗? · 规定可靠性了吗?包括软件出错的后果、在出错时要保护的至关重要的信息、以及错误测试和恢复策略。 · 规定所需最大内存了吗? · 所需最大存储容量规定了吗? · 对系统的维护性是否作出了规定?包括系统对运行环境、精度、性能以其与其它软件的接口等方面变化的适应能力规定了吗? · 是否规定了相互冲突的设计之间的折衷原则,例如,在坚固性与准确性之间如何进行折衷? · 是否制定了系统成败的标准?
|
程序的组织形式
一个模块是一个能完成某一高级功能的子程序的组合,例如,对输出结果进行格式化,解释命令,从文件中读取数据等.
建立子程序的步骤
Program Design Language
模块化设计
布局和风格
The Elements of Programming Style
代码调试技术