在进行软件开发的过程中,单纯的利用集成开发环境(IDE)往往不够充分,而若能利用一些辅助软件则可以极大地方便软件的开发,提高开发的效率和质量。大多具有数有工作经验的软件工程师都有较长的利用辅助工具的历史,而许多初级入门者则还没有接触过这类工具。本文将会对目前应用最广泛的开发辅助软件进行一个系统的介绍以帮助初级程序员快速的领悟和掌握这些工具,以便应用于平时的软件开发。如果您已经是大虾级的开发高手,则本文对您没有任何意义。
开发辅助软件大致分为如下几类:
代码编辑工具--UltraEdit UltraEdit 是能够满足你一切编辑需要的编辑器。UltraEdit 是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII 码,可以取代记事本,内建英文单字检查、C++ 及 VB 指令突显,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。软件附有 HTML 标签颜色显示、搜寻替换以及无限制的还原功能,一般大家喜欢用其来修改EXE 或 DLL 文件。 [简介] [使用技巧] [下载]
代码阅读工具--SourceInsight 代码阅读工具中的最强者便是大名鼎鼎的SourceInsight,为无数程序员所称道,其强大的功能令人折服!它的使用非常简单:先选择Project菜单下的new,新建一个工程,输入工程名,接着把欲读的源代码加入(可以整个目录加),该软件会自动分析我们添加的源代码。 [简介] [集成版本管理工具] [下载]
代码格式化工具--SourceFormatX SourceFormatX 是一个强大的源代码自动格式化、缩进、排版、美化工具。它可以格式化 C、C++、Java、C#、Object Pascal、PHP、ASP、JSP、VB、VB.NET、VBScript、javascript和HTML Components源代码。它还可以将源代码输出为语法高亮显示的 HTML 或 RTF 文件。 [简介] [分析] [JCreator中使用] [下载]
代码静态检查工具--PC-Lint PC-Lint是一种静态代码检测工具,它可以检查出那些虽然完全合乎语法要求,但很可能存在潜在的、不易发现的错误;PC-lint可以在检查当前文件的同时检查所有与之相关的文件,从而从整个项目的角度来检测问题;PC-lint支持几乎所有流行的编辑环境和编译器,比如Borland C++、GCC、VC,VC.net、Source insight等等,支持16/32/64的平台环境;PC-lint支持Scott Meyes的名著(Effective C++/More Effective C++)中说描述的各种提高效率和防止错误的方法。 [简介] [四步速成] [下载]
版本控制工具--CVS 当一个团队进行软件开发时(甚至个人软件开发),我们需要进行版本控制,应用最广泛的版本控制软件是开放源代码的CVS。CVS有UNIX和Windows版本的,本文仅介绍Windows版本的。 [简介] [基础讲义] [下载]
虚拟软件--VMware 虚拟软件中最著名的是VMware公司的VMware workstation,它可以虚拟出新的计算机,可以在虚拟的计算机上安装DOS、Windows、Linux、Vxworks等操作系统。使用VMware将使得用户象拥有多台电脑一样,对于Linux程序员来说,简直是无比方便。用户从Windows上进入与退出Linux,根本不需要重新启动! [简介] [常用窍门] [下载]
专业辅助软件 专业辅助软件专门用于某些特定场合的调试和辅助,下面我们来看几个常用的软件。 [简介]
下面我们针对上述各种类型,一一介绍其对应的最常用工具。
优秀专题推荐
 .NET沉思集 ASP.NET入门猜想
 流氓修炼之谜 揭开流氓软件的技术原理
 GIS系统三维地景仿真设计教程
 Visual C# 轻松入门全攻略
1. 代码编辑工具
集成开发环境一般已经提供了代码编辑窗口,但是不一定方便,所以程序员们经常借助一些外部编辑工具,这其中最著名的就是UltraEdit。
UltraEdit 几乎是许多程序员每天必用的工具之一,其支持语法高亮和多种灵活的编辑方式,界面如下:
下面我们介绍一下它的特色功能:
(1)列操作:依次选择菜单column->column mode-->insert/fills columns可以很方便的插入列,在列操作中支持类似于Excel的自增;
(2)二进制文件:以16进制方式显示二进制文件,支持二进制文件操作;
(3)可编辑汇编源程序、汇编、连接、调用TDebug调试;
(4)支持正则表达式,看看使用正则表达式的例子:
删除包含某一字符串的行
按下CTRL+R 调出来替换(Replace)窗口,选中"使用正则表达式";然后查找" %*你的字符串*^p"(其中的^p 是 DOS 文件类型的换行符;如果是 Unix 类型文件,则用 ^n),替换成空内容即可。如要去掉包含"http"这个字符串的行,只需替换"%*http*^p"为空即可;
删除空行
参考上"删除包含某一字符串的行"的例子,删除空行只需要查找 "^p$ "替换为空即可。 另一个声名仅仅次于UltraEdit的工具是EditPlus,功能与UltraEdit较为类似。
除了上述通用小工具外,还有一些专门针对特定开发环境编写的插件,如为Visual C++编写的插件Visual Assist(Visual助手),安装后VC++的代码编辑功能将更加强劲:
(1) 选中多行代码一次性以/* */ 或 //注释
(2) 当输入"{"其"}"就会自动出现;
(3) 对于已经定义的变量和函数,当对名称输入一半的时候,整个名称会自动提示。
随着软件开发IDE环境的发展,目前新的集成开发环境的代码编辑能力已经远远超过从前,如Visual Studio 2005的代码查看和编辑操作就要比Visual Studio 6.0友善很多。
2. 代码阅读工具
代码阅读工具中的最强者便是大名鼎鼎的SourceInsight,为无数程序员所称道,其强大的功能令人折服!
它的使用非常简单:先选择Project菜单下的new,新建一个工程,输入工程名,接着把欲读的源代码加入(可以整个目录加),该软件会自动分析我们添加的源代码。分析完后,就可以进行阅读了。其强大的功能体现在:
(1) 代码关联:
SourceInsight具备超强的代码分析能力,其会将工程中的所有代码进行关联性检查,建立纵横复杂的代码关联,提供类似超文本的代码视图能力。例如,在SourceInsight中,如果想看某一变量、函数或宏的定义,只需把光标定位于该变量、函数或宏,然后点击工具条上的跳转,该变量、函数或宏的定义就显示出来;对于函数,我们还可以跳转到引用它的地方。
例如在下面图中代码的"msg_rmid"宏上,右击"Jump to Definition":
"msg_rmid"宏的定义自然呈现:
(2)变量/数据结构/函数视图方式:
一般的阅读软件只能以文件的方式视图,但是SourceInsight会自动分析代码,并以树的形式列出变量、数据结构和函数,非常类似于Visual C++的类视图方式,如下图:
(3)具有类似于IE浏览器的在代码中前进与返回功能,自由穿梭于复杂的代码。
SourceNavigator是RedHat出品的一款Linux环境下的代码阅读工具,功能如同SourceInsight一般强,但速度稍慢。在安装过程中,要给所有的文件建立索引,花费的时间很长。
3. 代码格式化工具--SourceFormatX
众所周知,代码应该有正确的空格和缩进,如果我们编写的代码散乱不堪,其可读性将非常差,有没有什么工具能格式化代码呢?
回答是肯定的,SourceFormatX就是这样的一款软件,其版权属于"十字弓软件"。
SourceFormatX 是一个强大的源代码自动格式化、缩进、排版、美化工具。它可以格式化 C、C++、Java、C#、Object Pascal、PHP、ASP、JSP、VB、VB.NET、VBScript、JavaScript和HTML Components源代码。它还可以将源代码输出为语法高亮显示的 HTML 或 RTF 文件。
例如下面的一段代码:
int add(int a,int b) { int i,j; int sum; for(i=0;i<a;i++){ for(j=0;j<b;j++) {sum=i*10+j; }} return sum; } 基本上是惨不忍睹!我们用SourceFormatX来调整一下:
int add(int a, int b) { int i, j; int sum; for (i = 0; i < a; i++) { for (j = 0; j < b; j++) { sum = i * 10+j; } } return sum; } 只需要按一下按钮,就自动调整地这么漂亮了,给人赏心悦目的感觉,岂不爽哉?
SourceFormatX的用户界面如下图:
SourceFormatX可以同时打开多个源文件,当按下 按钮就会格式化当前文件,而按下 则能格式化所有打开的文件。
这个软件没有注册时也能使用,但是会在每个文件的开头添加:
/* 这份源代码文件已被未注册的SourceFormatX格式化过 */ /* 如果您想不再添加此类信息,请您注册这个共享软件 */ /* 更多相关信息请访问网站: http://cn.textrush.com */
而且对代码的长度也有限制,所以您最好注册后使用。
严谨良好的代码风格是软件稳定可靠的必要保障,可是通常您从前任同行手中继承、或从网上下载数量庞大的代码之代码风格大多和您的风格迥异甚至堪称混乱:缩进空格的个数不同,指针符号的位置不同,关键字随意大小写…… 这给阅读和修改源代码造成不少困难,手工整理的工作量几乎不可想像……
SourceFormatX 将您从这些既枯燥无聊,又大量重复的机械劳动中解放出来了。它可以快速大批量地格式化和美化多种源代码,这将会大大加快阁下的项目进度,提高团队协同工作效率,节约大量的时间,并统一项目所有代码的风格,利于以后维护和发布风格统一的代码。
4. 代码静态检查工具
开发环境只会指出语法错误,但是有的代码尽管语法是正确的,但是不"好",例如不符合Effective C++或More Effective C++的条款,这个时候我们可以借助静态检查工具对代码进行更严格的检查。
这其中的经典是PC-Lint,它是GIMPEL SOFTWARE公司的产品。
PC-Lint是一种静态代码检测工具,它可以检查出那些虽然完全合乎语法要求,但很可能存在潜在的、不易发现的错误;PC-lint可以在检查当前文件的同时检查所有与之相关的文件,从而从整个项目的角度来检测问题;PC-lint支持几乎所有流行的编辑环境和编译器,比如Borland C++、GCC、VC,VC.net、Source insight等等,支持16/32/64的平台环境;PC-lint支持Scott Meyes的名著(Effective C++/More Effective C++)中说描述的各种提高效率和防止错误的方法。
使用PC-Lint的一般步骤为:
(1) 安装与设置PC-Lint
如果在安装过程中选定了使用某个开发环境,安装程序会在你安装的目录下生成一个env-xxx.lnt的文件,这个文件在编译环境整个PC-Lint的时候要用到。
(2) 整合PC-Lint到选定的编译环境
在UltraEditor中集成PC-Lint的步骤为:
a.选取 Menu Advanced Tool Configuration
b.点按"Insert"
c.在command line:中填写:c:\lint\lint-nt c:\lint\std.lnt %f
d.在Menu Item中填写:PC-LINT
e.在Command Output中选择: (x) Output to List Box 和 (x) Capture Output
f.点按"OK"
在VC++ 6.0中集成PC-Lint的步骤为:
a.选取 menu tools customize..... b.选取 Tools Tab:
c.点按主对话框上方的虚线小方框 New a tool item
d.入 name: PC-LINT
f. Command: c:\lint\lint-nt.exe
g. Arguments: c:\lint\std.lnt $(FilePath)
h.选择(x) Use Output Window
i.Close
完成后,在VC++ 6.0 tools菜单下就会有一项PC-LINT选项。
(3)检查单个或多个C/C++文件
PC-Lint整合到Visual C++、SourceInsight、Ultra Editor等软件中后,便可对代码进行更加严格的检查。例如下面的代码没有语法错误,VC编译不会提示错误或警告:
char *getString(void) { char str[100]; return str; } 但是getString返回的是局部变量的地址,函数返回后,char str[100]的空间已经被自动释放,虽然语法无错,但是可能导致潜在的错误,PC-Lint会检测出这里的"错误"!
最后,我们有必要指出的是,PC-Lint是一种工具软件,而"Lint"则是软件开发技术发展的一个专有名词,指的是比语法"正确"更严厉的语法"合理"检查。"Lint"除了可以统一代码的风格,提高代码质量外,还可减少潜在的bug,这个名词的重要性几乎要与"预处理"、"编译"、"连接"并驾齐驱!目前有的软件公司明文规定一定要对代码进行"Lint",这实在是颇富远见的。
5. 版本控制工具
当一个团队进行软件开发时(甚至个人软件开发),我们需要进行版本控制,应用最广泛的版本控制软件是开放源代码的CVS。CVS包括服务器端和客户端两部分,服务器端进行代码仓库和账号的管理,客户端从服务器端下载或上传代码,其原理如图:
CVS有UNIX和Windows版本的,本文仅介绍Windows版本的。
服务器端安装的是CVSNT,可以从http://www.CVSNT.org免费下载最新版本。
CVSNT以代码仓库的方式管理代码(又称为主拷贝),仓库是代码的每个版本和所有相关记录在服务器端的存放位置。
创建仓库之前,我们首先需要新建一个文件夹用于充当仓库。然后,点击"开始"――"程序"――"CVS for NT"――"configure server",出现对话框后选择"Repositories"选项卡,在相应的地方增加文件夹为代码仓库。
增加账号的最好方法是:创建Windows用户,这个用户同时也是CVS的帐户。
客户端使用的软件是WINCVS,可以在www.WINCVS.org免费下载。安装WINCVS后,需要对客户端进行配置,目的在于让CVS客户端根据配置信息找到服务器上需要访问的仓库。在WINCVS窗口菜单栏中选择"Admin"->"Preferences"中设置CVSROOT为:
:pserver:username@hostname(或IP地址):CVS仓库路径 其中的"pserver" 是最常用的一直CVS远程访问方式,、"username"是指客户端在服务器上的用户名; "hostname" 是CVS服务器的主机名或IP地址;"CVS仓库路径" 是一个CVS仓库所在的目录。
如何在客户端将代码与服务器端进行交互呢?
先在客户端创建一个文件夹,用于存放工作拷贝(工作拷贝与主拷贝对应,主拷贝只有一份,放在CVS仓库里,而工作拷贝却可以有很多份,分别放在不同的客户端)。创建完文件夹后,需将它的路径添加到WINCVS窗口上方的输入框中。
为了开始一个新的项目,首先我们要进行"checkout"过程,这个过程是将主拷贝中的目录及文件拷贝到你指定的客户端目录中。
点击eXPlore页,选择要上传的文件夹;点击菜单栏的"create"――"import module from selection",跳出一个import filter窗体,接下来会跳出import setting窗体,在select the module name and path on the remote server里面填上一个名称,当文件夹上传到服务器后,cvs服务器里就会以这个文件夹名建立一个代码库,存放刚才传上来的文件。
本地文件、文件夹被修改后,在wincvs里,就会变成红色。这个时候我们若要提交代码,最好要更新一下,因为有可能别的开发者在你修改这个文件的同时,也可能也修改了这个文件,这就有可能会存在冲突,CVS可以在提交前先处理冲突。如果可以提交成功,最好每次提交都能填写"log messages"。
Microsoft Visual Studio程序员还可以使用配套的SourceSafe工具,该工具的使用也非常简单。如SourceSafe 6.0由Visual SourceSafe 6.0 Admin、Microsoft Visual SourceSafe 6.0、Analyze VSS DB、Analyze & Fix VSS DB四部分组成。Analyze VSS DB、Analyze & Fix VSS DB两个工具不是很常用,前者用于检查SourceSafe数据库文件的完整性,后者主要是修正SourceSafe数据库文件存在的错误。Visual SourceSafe 6.0 Admin的功能类似于Windows的用户管理器,软件配置管理人员用它来分配用户和设定相应的权限。而Microsoft Visual SourceSafe 6.0是SourceSafe的主要使用平台,界面类似Windows的文件管理器,它所显示的路经是以'$'符号为根节点的相对路径。可以在其中添加项目、浏览Source Safe Server中的文件、设置工作文件夹(working folder),并对工作文件夹进行check out(下载文件到工作文件夹),在本地修改文件后,可以把修改后的文件check in到服务器中。
6. 虚拟软件
目前,许多的虚拟软件被开发出来。所谓虚拟,首先它是"虚"的,也就是假的,是不是假的就没有用呢?那就涉及到虚拟的第二重含义,"拟",它像真的,跟真的功能一样!评价一个虚拟软件的power就应该看它"拟"了多少,"拟"得真不真了。目前的虚拟软件什么都能虚拟,虚拟机(虚拟PC)、虚拟磁盘、虚拟光驱、虚拟网卡等等等,几乎什么都能以假乱真。这些假冒伪劣商品极大地方便了软件开发者。
虚拟机中最著名的是VMware公司的VMware workstation,它可以虚拟出新的计算机,可以在虚拟的计算机上安装DOS、Windows、Linux、Vxworks等操作系统。使用VMware将使得用户象拥有多台电脑一样,对于Linux程序员来说,简直是无比方便。用户从Windows上进入与退出Linux,根本不需要重新启动!
VMware的界面如下图:
使用VMware的一般步骤为:
(1)新建一个虚拟机
譬如我们新建一个要安装Redhat Linux的虚拟机,首先要打开新建虚拟机向导:
然后进行一系列关于虚拟机的配置:
(2)在虚拟机上安装操作系统
虚拟出的计算机也有BIOS,为从光盘安装操作系统,我们应该设置为从光盘启动:
(3)使用虚拟机上的操作系统
虚拟机顶部的右键菜单可以打开、关闭虚拟机的电源,或进行重新启动:
我们也可以生成虚拟机的快照,这样下次启动的时候会直接启动到上次关机的地方!
鼠标双击虚拟机的区域,鼠标就作用于虚拟机。按下CTRL+ALT键后,鼠标就又作用于Windows区域了。
在VMware的安装过程中,也安装了虚拟网卡,如下图:
虚拟网卡可以使用如下三种模式中的一种:
·桥接模式:如果物理主机在一个以太网中,适宜选择这种模式。虚拟机就像一个新增加的、与真实主机有着同等物理地位的一台电脑,桥接模式可以享受所有可用的服务(如文件服务、打印服务等),在此模式下非常容易从真实主机获取资源;
·host only(仅主机)模式:Host-only模式用来建立隔离的虚拟机环境,这这种模式下,虚拟机与真实主机通过虚拟私有网络进行连接,只有同为Host-only模式下的且在一个虚拟交换机的连接下才可以互相访问,外界无法访问;
·NAT(network address translation)模式:网络地址转换模式,很象使用某些代理软件上网。
软盘现在大家已经很少用了,新配置的电脑基本上都没有软驱了。但是在某些开发情况下,我们偏偏要软盘,连软驱都没有,怎么办?ramdiskNT 1.5具有虚拟软盘的功能,可以用来虚拟出1.44M或2.88M的软盘,可以运行于windows 2000、Windows XP、Windows 2000 SERVER、Windows 2003 SERVER等,非常方便与实在。
ramdiskNT 1.5的用户界面如下:
虚拟光驱中的经典damon,想必大家都已经用过了,笔者就不再赘述了。Damon基于托盘管理:

目前,在嵌入式系统领域,为了方便许多没有目标开发板的人(毕竟一块ARM、DSP或PowerPC的电路板需要不少米,学生朋友们要支付起来还是很困难的),就有好心的工程师们在开发虚拟电路板了,这真是一件惠泽天下的好事。在这里,先表达笔者的景仰,再为你们的义举鼓掌!
7. 专业辅助软件
专业辅助软件专门用于某些特定场合的调试和辅助,我们来看几个常用的软件。
字模提取
在某些场合的编程中,我们需要提取数字、字母、汉字和图片的点阵,这个时候我们可以使用"字模提取程序",该程序由自由软件撰稿人HORSE2000编写。支持文字和图片的C51、A51方式取模,文字可以设置字体和大小。另外还可以模拟动画!
其用户界面为:
如我们提取出"天极网"的字模为:
/*-- 文字: 天 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFE,0x01,0x00, 0x01,0x00,0x02,0x80,0x02,0x40,0x04,0x20,0x08,0x18,0x10,0x0E,0x20,0x04,0x40,0x00 /*-- 文字: 极 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x10,0x00,0x13,0xFC,0x10,0x88,0xFE,0x88,0x10,0x90,0x10,0xA0,0x38,0xBC,0x34,0xC4, 0x55,0x48,0x51,0x28,0x91,0x10,0x12,0x10,0x12,0x28,0x14,0xCE,0x1B,0x04,0x10,0x00
/*-- 文字: 网 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x7F,0xFC,0x40,0x04,0x41,0x04,0x51,0x14,0x4A,0x9C,0x44,0x54,0x44,0x24, 0x4A,0x24,0x4A,0x54,0x51,0x94,0x61,0x04,0x40,0x04,0x40,0x1C,0x40,0x08,0x00,0x00 提取出来的字模符合标准C的语法,直接拷贝到程序中就可以用了。
串口调试助手
串口调试助手是由《Visual C++/Turbo C串口通信编程实践》一书作者龚建伟编写的共享软件,可以方便地进行串口上的数据收发、显示(16进制和ASCII码方式)和串口参数的设置,在串口调试领域应用广泛,其用户界面为:
网络性能测试:netperf
netperf可用于测试网络性能,从而找出网络程序中的问题,改善软件的质量。Netperf可测试的参数包括:可用性(availability)、响应时间(response time)、网络利用率(network utilization)、网络吞吐量(network throughput)、网络带宽容量(network bandwidth capacity)等。
软件测试工具
软件测试工具包括白盒测试工具、黑盒功能测试工具和白盒性能测试工具,常用的有:
(1)Parasoft白盒测试工具集
包括Jtest(支持Java的代码分析和动态类、组件测试)、Jcontract(支持Java的实时性能监控以及分析优化)、C++ Test(支持C、C++的代码分析和动态测试)、 CodeWizard(支持C、C++代码静态分析)、Insure++(支持C、C++实时性能监控以及分析优化)、test(支持.Net代码分析和动态测试)等。
(2)Compuware白盒测试工具集
包括BoundsChecker(支持C++、Delphi API和OLE错误检查、指针和泄露错误检查、内存错误检查)、TrueTime(支持C++、Java、Visual Basic代码运行效率检查、组件性能分析)、FailSafe(支持Visual Basic自动错误处理和系统恢复)、Jcheck MS(支持Visual J++的图形化事件分析工具)、TrueCoverage(支持C++、Java、Visual Basic函数调用次数、所占比率统计以及稳定性跟踪)、SmartCheck(支持Visual Basic函数调用次数、所占比率统计以及稳定性跟踪)、CodeReview(支持Visual Basic自动源代码分析)。
(3)Xunit白盒测试工具集
包括Aunit(支持Ada)、CppUnit(支持C++)、DotUnit(支持.Net)、HttpUnit(支持Web测试)、JsUnit(支持Javascript)、PhpUnit(支持PHP)、PerlUnit(支持Perl)、XmlUnit(支持Xml)等。
(4)黑盒测试工具集
主流的黑盒功能测试产品有WinRunner、Astra Quicktest、Robot、QARun、SilkTest、e-Test等,性能测试产品有WAS、LoadRunner、Astra Quicktest、Qaload Compuware、TeamTest:SiteLoad、Webload、Silkperformer、e-Load、OpenSTA等。
8. 总结
在硬件设计领域,有一句众所周知的名言:"世界上只有两类硬件设计师,一类是已经遇到信号完整性问题的,一类是即将遇到这个问题的"。
同样的,世界上只有两类软件设计师,一类是已经使用了辅助工具的,一类是即将使用辅助工具的。如果您还没有使用过本文所述的工具软件,那么看完本文,您已经迫不及待地要下载了。
(出处:网侠)
|