从软件工程的角度介绍以下十分重要的编程原则(大型程序设计问题):1 问题提出2 需求分析3 选择数据结构4 设计、分析算法5 程序编码6 软件测试(测试和验证)7程序维护
C++语言支持软件工程方法的主要特色(a) 数据抽象(Data abstraction)(b) 面向对象设计(Object-oriented design)(c) 自顶向下设计(Top-down approach) (d) 可能重用代码(Reusable code)
命名规则Guidelines for Choosing Name,文档格式Documentation Guideline,逐步求精及模块化中的编程准则Refinement and Modularit,自顶向下Top-down design and Refinement,工作分配Division of work
数据分类Categories of Dat:Input parameters,Outputparameters,Inoutparameters,Localvariables,Globalvariables
编码用某种程序设计语言,例如C++的正确语法形式表达算法。n
对每一个类和函数一旦编码完成就进行测试,为了完成编译的测试要使用存根stub即短小的哑函数。
n因经常要对邻居进行计数定义一个私有成员函数neighbor_count(),由此给出类life的定义存放在lif
对邻居进行计数算法的求精与实现为了不必对边界条件进行特殊处理,利用(Sentinel)技术简化计数处理。n
update()方法的实现基于每个格子的邻居计数检查其是否满足其中的某条生存规则的条件并做相应的处理。n
输入和输出initialize()方法以及print()方法的实现
为了调试各个函数可以编写每个函数的驱动程序driver其功能是n
提供输入数据给函数n
调用函数n
评价测试结
调试程序的几种方法:小组讨论n在程序的关键点插入打印语句n在函数的开头用if语句测试某些条件是否满足n使用静态分析程序找出无使用的变量代码段或可能不正确的出
程序测试的原则:n测试数据的质量比数量更为重要n测试只能发现错误而不能证明程序的正确
程序测试的方法:n黑盒法n白盒
程序交付使用后一半以上的工作就是进行维护。n给出用于评价Evaluation程序的6个问题,并以“生存游戏”程序为例进行说明。n程序的改进及进一步的开发