1.调研,完成一份详细的需求文档
(1)系统实现什么功能?(2)对性能有什么特殊要求吗?
(3)技术难点是什么?如果可能,先测试技术难点。
2. 确定系统的运行环境
(1)系统的操作系统:windows、linux、unix等。(2)使用什么编程语言:c/c、java、C#等。
(3)使用什么界面交互环境:控制台、MFC、WTL等。
(4)需要使用哪些第三方库:如openCV、STL、Boost等。
3. 划分系统模块,设计总体框图
(1)如果从大的方向来划分整个系统,可以划分哪些模块,每个模块可以继续划分哪些小模块?(2)各模块提供哪些功能?
(3)模块如何交互?
4. 分析模块的需求,抽象出实现模块功能的各个类
(1)这个模块可以设计哪些类,哪些类是这个模块的外部接口?(2)模块内的类如何相互作用?模块之间的类如何相互作用?
(3)在设计类时,需要考虑设计是否可以通过继承和组合来简化。
(4)绘制简单的UML设计图。
00-1010 (1)每个类的成员变量是什么?提供了哪些功能?
(2)哪些函数是通过继承获得的,哪些函数需要重载,哪些函数需要多态?
(3)完成类头文件的定义
5. 设计每个类的属性和方法
(1)代码实现了每个类的功能。(2)按照之前的设计,完成类与类之间的交互代码,实现系统所需的功能。
(3)集成测试,优化代码,修改bug。