软件的管理工作很重要的一点就是不断减小软件的复杂度,把这个复杂度搞成一个小模块,工程师可以驾驭的小模块。在完成【软件模块初步划分】之后,就可以评估软件的复杂度。

《代码大全》里面反复提到的观点:软件设计与开发的核心就在于控制复杂度

一、评估的目的

了解复杂度,用于评估工作量,安排不同的工程师负责不同复杂度的模块

二、评估的标准

暂时没有标准

三、评估的方法

依靠经验,个人对于某一类型的软件开发经验,以嵌入式产品为例。

对于我了解的嵌入式软件产品,我认为有如下几个等级的复杂度,分别:

A1 单片机类型:类似于鼠标、键盘等外设的软件,bug数量在0-10个

A2 简单无交互的电子产品:类似于摄像头,bug数量在10-100

A3 简单少交互的电子产品:类似于Android pad或者Android机顶盒

A4 复杂且交互多的电子产品,类似于手机,bug数量在2000+

四、重点在于数据结构和协议

在《代码大全》里面,要注意数据结构,保证数据结构定义完整,就算代码差一点,后续还有机会可以重构。

参考资料

1.《The Art of UNIX Programming》

2.《The Mythical Man-month, 人月神话》

3.《代码大全》

results matching ""

    No results matching ""