用FREEBSD作开发的一些实现方式( 三 )


5.2 利用CVS进行测试版本的控制工作,防止测试版本的混乱;
5.3 虚拟测试环境(这是一个前卫的项目)
7、项目开发环境选择
7.1 推荐字符界面,相信大家喜欢一个干净的环境;
7.2 开发采用client/server的方式,也是一种较好的方案 。Client采用win或bsd,在server上进行编译,在单机进行测试或者在server进行测试;
7.3 推荐开发者不要维护一个GUI界面,这样会浪费大量的时间 。最好拥有一个独立的GUI测试平台;
7.4 相信一个reference目录是非常重要的 。里面拥有的文档、书籍、例程在缺乏灵感的时候可以助你一臂之力,并且保持你的项目的标准 。
F、软件项目快速分析
1、密集度分析模型
相信大家一定使用了某种软件项目分析技术来分析我们需要从事的编程项目 。下面介绍一种快速、实用的分析模型:密集度分析模型 。
实际上,对于编程人员来说,不需要掌握非常精确的分析方式,使用密集度模型,可以轻松的定义软件的特性,并且安排好一个项目的任务分配和开发进度 。
密集度分析模型,可以用来快速分析软件项目,也可以分析软件的不同的模块,以下为软件项目为例:
首先,我们将软件项目分类为如下的类别:
类别名称
特征
实例
开发特性
界面密集类
繁多的界面反馈
GUI应用程序、终端前端
需要良好的用户设计以及界面功能的支持 。
功能密集类
对于各种功能要求齐备和多样
数字编辑软件
需要编写大量的功能函数以及插件,对于界面要求相对低
理论密集类
要求程序体现很多编程理论
概念程序、C复写程序、软件的第一实现版、B/S、C/S软件、算法程序
要求理论基础扎实,并且对于各种理论的实现具有经验 。这类项目,非常依赖文档 。
工作密集类
需要大量的工作时间和效率
成熟的应用软件
设计一般比较成熟,功能比较简单,需要花费时间去完善 。可能依赖项目管理 。
执行密集类
要求短时间执行的软件
网络响应、高速算法
需要优化和代码短小,往往是为了解决某些速度瓶颈问题 。
I/O密集类
在短时间拥有大量的I/O操作
大规模数据传输、索引、数据存储处理
需要更多的缓冲,并且处理好多线程的问题
异常处理密集类
防止各种错误出现,并且试图从错误中恢复
硬件驱动、控制、系统软件
对于异常的捕捉、处理、恢复,以及对于新的异常的处理补丁 。测试的成本相当高 。
我们拿到一个软件项目(模块),只需要进行简单的判断,我们就可以确定个人需要作的主要的工作,确定工作的计划 。
2、清晰度分析模型
清晰度分析模型,就是看相关的开发人员,对于需要开发的项目的清晰程序 。一般来说,清晰度越高,包括设计、编程、经验,则项目的成功率越高 。项目的进展速度也会更快 。清晰度,实际上也反映了项目的难易度 。
这样,利用一个简单的清晰度分析,就可以大致的清晰开发组成员的能力和发展方向 。对于新加入的成员,也会产生良好的效果 。
更多的,如果有些成员的清晰度不高,则需要重新的测试技术和培养能力,则可能需要一段时间进行适应 。
3、确立高级的最终产品设计
对于开发产品而言,我们需要借鉴各种国际上的开源产品的代码 。我们往往会发现很多产品,哪怕是非常简单的编辑软件,都可能使用了高级的编程技术 。例如:CORBA、C/S、XML、嵌入式汇编、编译器适应、非公开的调用、多进程文件锁、多CPU总线锁、分布式构件以及独特的C设计视角等等 。

推荐阅读