background image

外发布的版本等文件都是

 代码管理的范畴。可以说,无论是何种性质

研发团队

研发文

件体系的建立都是必须的,否则隐患太大。

2:过程信息化体系的建立。

过程信息化体系的建立,尽管不是必须但却很有必要。研发工作是包含了各种各样的复杂活
动,相对于其它类型而言,研发工作者对信息的依赖更加大些。

 在授权管理下研发相关的

各项信息的最大化共享对促进研发工作高效开展非常重要。借助于信息化系统,通过提供统
一的工作入口,完全一致的工作方式,最大化的

 知识共享与沉淀等来高效的提升研发效率

显得尤为必要。如果贵公司正好有研发过程信息化方面的需要,不妨评估一下集成式研发管
理协作平台,如

TOPO 研发管 理系统。

3:开发自动化体系的建立。

相对于过程信息化而言,开发自动化体系的建立容易被忽视。其实,随着计算机技术的不断
发展,在开发自动化支持方面已经有了不少成熟的解决方案。对

 软件开发而言,最典型的

莫过于自动构建与持续集成,其它还包括代码自动走查,自动测试工具等。对硬件而言,也
有不少自动测试手段,研发在生产加工的自动化

 支持方面同样有不少工作可做。其实,这

里之所以提出自动化体系的建立,是

研发团队

该不停审视所有的研发过程,尽量将能

够自动化的过程自动化。如果能够

 通过一个系统或计算机自动完成,就不要用人工的方法

来完成这个工作。尽管很多研发过程自动化的建立相对而言比较耗费时间,但是为企业

研发

团队

带来的效率的

 提升却往往非常明显。当然,自动化体系的建立是一个长期而艰苦的过

程,但是真正优秀的公司的研发核心竞争力也往往会体现在这个方面。

对于文档体系和信息化体系的建立,我想不用过多的阐述大家都很容易理解,但是对于

“开

发自动化体系的建立

”的这个概念,或许只是我的一点个人看 法,为了便于大家理解,我

这里就用一个对电子通讯和仪器仪表等行业研发团队在嵌入式软件开发领域非常适用的具
体实例来阐述一下何谓开发自动化思想,如果您

 负责的团队正好也包含嵌入式软件研发,

我想你会更加容易理解下面的内容:

对嵌入式软件来说,堆栈空间有严格的大小限制,而堆栈的使用状况对编程人员来说又不
能够直观的被观察,这直接导致在嵌入式软件系统中经常会遇到堆

 栈溢出问题,一些低水

平的开发人员总是容易在这上面犯错。而这种问题一旦被引入到最终的产品中,其隐蔽性强,
导致的后果严重,且不易跟踪重现。我们具体来

 分析一下原因,从事过嵌入式软件开发的

人都知道,函数参数和函数内的局部变量以及函数的递归调用层次等在函数运行时都会对
堆栈的占用产生影响,而一些编程

 经验不足的开发人员往往容易在函数实现时在内部定义

空间要求过大的局部变量

(诸如多维数组)。

大多数研发团队的解决思路是:将这个定义成编程规范,或者写

 成经典案例,或者将这个

检查作为代码审查的

CheckList 的一部分。但是,我要说的是这些方法都不是最优的终极解

决方案。这里我推荐我以前负责的研发

 团队中采用的一种做法给大家参考:函数对堆栈的

大小依赖是可以被静态检查的,在函数编译的中间过程文件中,你可以分析一下里面的汇
编语言,然后通过正则表

 达式匹配找出函数实现的地方,并分析出函数对堆栈的使用情况。

通过写一小段堆栈使用检测的扫描脚本,在每次软件编译后,自动运行该脚本,然后将扫