程序设计需要系统化的方法 一方面要写大型程序,一方面要精确到 细枝末节,这极具挑战性 一细节上的微小差错可带来巨大灾难, 例如1996年阿丽亚娜5火箭首次鉴定发射 失败的原因是将一个浮点数转换为整数的 代码有问题 3
3
软件开发过程 需求分析 一问题是什么?(尽可能多地去理解) 制定程序规格 程序要做什么?(而不是怎么做) ■对简单程序描述输入输出即可 设计 程序怎么做? ■主要任务是设计出满足规格的算法 ■一般用伪代码给出总体结构,不纠缠细节 5
5
软件开发过程 实现 一用某种程序设计语言翻译设计 测试与排错 测试程序是否如预期 -9 排除bug(debugging):定位和修正错误 维护 一运行中还会不断有问题 一大部分程序是永远都不会真正完成了 6
6
例温度转换 需求:预报摄氏度,想知道对应华氏度 规格:输入摄氏度,显示输出华氏度.两 者对应关系是F=(9/5)C+32. 设计算法:简单的IPO(详见下页) 实现:翻译成Pythoni程序(详见下页) 测试:常用边界数据.如输入0,100 7
7