1.1 一个简单的问题
- 程序需求:定义和限定程序需要做什么的声明。
- 设计约束:限制软件设计和实现方式的生命。
一个完整的问题描述包括程序需求(说明和限定程序的作用)和设计约束(描述了设计和实现程序的方式)。
- 功能需求:一个程序需要做什么(程序的作用)。
- 非功能需求:实现功能需求需要达到的方式(程序应该具备的特性,ilities)。
功能需求
- 输入格式
- 排序
- 特殊情况、edge case
非功能需求
- 性能需求
- 实时性需求
- 可修改性需求
- 安全性需求
- 可用性需求
设计约束
- 用户界面:用户从系统看见、感知和听到的内容,CLI/GUI
- 典型和最大输入规模(参考输入规模极大的外部排序)
- 平台?
- 进度需求
设计决策
- 编程语言
- 算法
1.2 测试
- 黑盒测试:测试用例基于需求规约
- 白盒测试:在查看设计和代码实现时设计测试用例
- 混合测试
1.3 估计工作量
(规划工作量与追踪工作进度的一些基本方式,略)
1.4 实现
实现的几个要点:
- 一致的编程约定
- 仔细选择名称
- 使用函数或方法前进行测试
- 了解标准库
- 进行代码审查
1.5 总结
编写程序必须考虑的问题:
- 需求
- 设计
- 代码实现
- 单元测试
- 个人工作量估算
- 用户界面
Loading Comments By Disqus