APP下载

浅析嵌入式实验中错误的文档化

2014-06-05戴莉萍黄龙军胡国雄

实验科学与技术 2014年5期
关键词:PC机内核文档

戴莉萍,黄龙军,胡国雄

浅析嵌入式实验中错误的文档化

戴莉萍,黄龙军,胡国雄

(江西师范大学 软件学院,南昌 330022)

通过分析嵌入式实验的特点,比较计算机语言实验与嵌入式实验中错误的区别,提出了实验过程中的错误文档化。介绍了错误文档化的必要性、处理元素和通用格式,并结合具体实例加以说明。实践结果证明:错误文档是对嵌入式实验教材的有力补充,可以成为实验指导教师的助手;而且学生对于错误有了更深入的了解,有利于个体软件工程师的能力培养。

嵌入式实验;错误;文档;能力

实验是计算机课程教学的重要组成部分。通过实验,学生可以将书本的理论知识转化为实际应用,进而提高技术水平;教师可以了解学生掌握的程度,进而适当调整与改进课堂教学内容[1-2]。一般的计算机主干课程的实验内容安排比较简单直接,例如,数据结构或C语言程序设计,整个过程中设备单一,一台PC机即可;软件工具单一,大多都是语言开发环境;实验教材较为丰富、步骤详尽、通用性较强。相比较这些传统课程的实验,嵌入式实验则体现较大不同。设备多样且复杂,例如,PC机和配置了不同操作系统和性能的实验板箱;使用工具众多,例如内核定制工具、同步通信工具、FTP下载工具等;适用的实验教材较少,通用性不强,甚至教师自行编写实验手册。在实验的执行过程中,实验的内容、目的、步骤、及其结果往往会被一一记录下来;而关于错误的相应记录保存却往往被忽视[3-4]。考虑到嵌入式实验自身的特点,错误的文档化其实显得尤为重要。本文着重讨论了江西师范大学软件学院错误文档化的必要性、处理要素以及格式。

1 错误文档化的必要性

普通计算机课程的实验错误一般都出现在软件环境上,硬件相关性较低。例如,大多数语言程序设计课程的实验过程中,大量的错误集中在语法错误或解题思路上,导致无法通过编译或得到正确的预期结果。因此,错误表现形式较为单一。例如,下面这段代码是PC机上使用VC++连接SQL Server的代码。

这段代码量很少,常见的错误主要在msa-do15.dll文件的引用、SQL Server启动服务和连接设置参数上,例如,msado15.dll文件没有引用、引用的位置不正确、SQL Server相应的服务没有开启、SQL Server身份验证和Windows身份验证使用混淆、连接字符串中各个参数书写错误等。参照实验教材的内容比较就能发现不同,进而修改。而且大多数错误产生时,编译器可以给予提示和错误定位,调试比较容易。对于这些错误再扩展一步来说,很多技术网站也给出了比较正确的解决思路和方法,都是可以通用的。总的来说,这些实验过程中出现的错误可以从教材、编译环境、技术交流网站等多种途径中找到解决方法。也正因为如此,错误往往不会被保存下来,或者根本没有必要保存下来。

嵌入式实验中的错误不仅出现在PC机上,还会出现嵌入式实验设备上;不仅有软件错误,还有硬件物理错误。实验设备的多样性和环境配置的复杂性使得错误的调试过程中面临着对象不确定、位置不确定、方法不确定、结果不确定等[5-6]。例如,以下这段代码是嵌入式数据库SQLCE连接语句的主体部分,嵌入式实验板箱是MagicARM2410,开发工具仍是VC++。

与SQL Server数据库连接代码相比较,该段SQLCE数据库连接代码行数较多、变量较多、参量设置较多,其中的错误体现了多样性和复杂性。

(1)涉及的软件工具众多。编程环境的Visual Studio、与设备配套的SDK、同步作用的Active-Sync、下载内核的Flash FTP、定制内核的Platform-Builder、嵌入式数据库应用的SQL CE Tools等。

(2)配置步骤繁杂。为成功运行,除了基本的编码工作,需要进行比较多的前期工作。例如,为支持SQL CE的应用,需要重新定制内核和生成对应的SDK,整个过程涉及20多个组件的选择;PC机上安装SQL CE Tools;设置ActiveSync的同步参数、IP地址设定等。配置不当则会造成程序运行中断,而且难以进行错误定位。

(3)软件错误出现次数较多。头文件的引用、变量的写法、参量定义的值、方法的调用等都容易潜在错误。例如,需要两个头文件,很可能就漏了一个;环境初始化语句遗漏;数据文件未创建就直接进行访问;数据库创建语句和连接语句混淆;SDK中遗漏“ATL for Windows CE application”选项使得编译无法通过等。错误容易产生,而且涉及因素较多,从而使得调试尤为困难。

(4)相关的硬件错误比较突出。在大多数情况下,错误可以被追踪到代码一级。但是一个构建好了的系统应用必须运行在一个存有其他系统应用的环境中,当出错时,必须考虑问题的所有因素,嵌入式程序的错误尤其如此。例如,MagciARM2410上电池没电会造成PC机与设备无法同步连接;断路器的放置错误会使得网线无用、或是无法通过PC机启动设备等。

当出现各种错误时,实验教材上往往并没有这些问题的描述和相应的解决方法;编译器给出的错误提示往往简单,无法说明原因,更无法进行错误定位和解决了;网络资源也是非常有限的。在这种情况下,错误的记录和保存就很有必要了。

2 错误文档化的要素

由于嵌入式实验中出现的错误体现出多样性、复杂性、难以解决等特点,因此除了一般的实验报告外,还必须具备错误报告。一是教师可以积累实验素材、为以后的实验提供一定的帮助;二是提高学生调试技能、培养良好的开发方法。在错误文档化的过程中,需要考虑4个基本要素,即3W1H(Who,When,What and How。)

1)Who。“谁来完成错误文档?”——做实验的人,即学生和教师。在实际实验中并没有团队实验,全部是个人单独完成,目的在于减少团队依赖性,增强个人交流。而且个人实验过程中出现的问题也不同,因此每个学生都必须进行错误记录。对于教师来说,所有的实验必须提前完成,以便能够对学生进行适当指导,错误必须文档化。学生的错误报告能对老师的错误报告起到非常好的补充作用。

2)When。“什么时候记录错误?”——当错误出现时,就立刻随手记录下来;而后进行调试过程中做必要的记录;最后实验完成后进行相应的整理。基本步骤如图1所示。

图1 错误文档化的基本步骤

3)What。“记录什么内容?”——总的来说,就是错误的表现形式、错误发生的原因和解决方法、结果等内容。在记录过程中应注意以下几点。

(1)不是所有的错误都需要记录下来。如果能够在实验教材中找到答案的,不需要记录。例如,在SQLCE数据库连接语句中,内核定制时没有选择必要的组件会使得代码运行中断,这时需要仔细阅读内核定制的基本步骤,重新定制即可。如果是代码书写错误,不需要记录。例如,变量名拼写错误、语句漏写等,可以通过代码复查技术调试。一般在配置步骤正确和代码书写基础上出现的错误,需要进行记录。例如,内核定制编译时需要关闭防火墙、上传内核时FlashFXP版本要合适、头文件引用要保证顺序性、全局变量定义位置要正确、内核与SDK需要配套等。

(2)重复错误不记录。实验安排一般都具有一定的循序渐进性,前面实验往往是后面实验的一个重要基础。错误文档一般都有实验编号和名称,如果在之前的程序实验中已经出现的错误,可以翻阅而不必记录。例如,SQLCE连接实验中需要重新定制WinCE内核和生成新的SDK,而内核定制需要安装的软件、补丁、需要添加的组件选项、生成步骤在前面的实验中已经具体描述过,相关的错误都已经记录下来,因此在这里可以进行错误的简单回顾,而不再做重复的记录。

(3)未能解决的错误需要记录。实验过程中错误出现的场合、时间、次数、表现形式都会令人颇为费解,进而影响排错的进展和结果。没有办法解决的问题也把它记录下来,供以后思考。

4)How。“怎样记录错误?”——错误文档化需要一定的格式和内容。在下一节中详细介绍。

3 错误文档化的格式规范

文档本就是软件开发实验过程中的自然组成部分,最主要的功能就是起到沟通作用。在这里学生之间以及师生之间都可以通过文档了解相应的实验过程和成果。文档也是一种帮助整理思路的工具,实验内容会在文档化的过程中被加以细化和规范化,错误文档也是如此[7-8]。不同文档、不同群体使用的文档格式各有不同。这里采用的格式如表1所示。

表1 错误记录表

根据表1所显示的内容,日期是错误出现的时间,可以具体到小时分钟。进行编号有助于将来的错误分析和数据统计;在后续实验中,编号也有利于进行错误的回溯。在错误描述中,尽量简洁、完整、准确,而且一图胜千言。错误修复步骤详尽,特别是关键操作。修复时间是从开始意识到错误的存在时算起,直到修复完成且检查无误的估计时间,最好以分钟计算。图2是一份SQLCE数据库连接实验中的一个错误描述。

图2 错误文档实例

错误文档中各个数据项的书写有利于提高实验技术水平、帮助改进编程方法、减少其后实验中的错误个数、节省未来实验时间、并培养良好的开发习惯。

4 结束语

本学院设有专门的嵌入式实验室,面向大三学生开放,实验教材由指导老师自己编写。由于教材本身比较详尽,因此一般的实验目的、步骤、结果并不要求学生写,但是期间发生的错误及其解决过程则要求学生尽可能地详细记录下来。整个过程中增强了学生软件工程的应用意识,教学效果较好。而且每一个实验给学生带来的信息量其实是比较多的,例如实验的规模数据、时间数据、错误数据等,个人日常开发数据的记录往往给下一步的团队开发的项目计划提供了相应的基础和依据。实验的开展不仅仅是技术的单纯提升,也可以个体软件过程和团队软件过程的小型实施,这也是我们下一步将要研究的内容。

[1]权宁一,权晓林.嵌入式系统专业实验教学改革的探索与实践[J].实验技术与管理,2011,28(3):146-148.

[2]吴磊.嵌入式教学与实验的研究[J].实验室研究与探索,2011,30(11):103-105.

[3]张明,沈勇,王阿娣.基于嵌入式系统课程体系的实验教学环节设置的研究[J].实验技术与管理,2008,25(5):147-149.

[4]罗钧,廖红华,付丽,黄勇.嵌入式实验教改与创新性人才培养的关系[J].实验室研究与探索,2006,25(8):958-960.

[5]李妍,崔永利.弹性学习制在嵌入式实验教学中的探索[J].中国现代教育装备,2010(19):79-81.

[6]陈佳闻.嵌入式实验教学系统开发与应用[J].山东农业大学学报:自然科学版,2011,42(3):448-450.

[7]刘钰,张燕,沈奇.计算机专业嵌入式系统方向人才培养探索[J].实验技术与管理,2010,27(9):164-167.

[8]李秀娟,张晓东,鲁可,等.“嵌入式系统”开发实验室建设与实践[J].实验室研究与探索,2011,30(5):156-158.

Research on Documentation about Errors for Embedded Experiments

DAILiping,HUANG Longjun,HU Guoxiong
(Software School of Jiangxi Normal University,Nanchang 330022,China)

By analyzing the features of embedded experiments,and pointing out the differences between the experiments for the common computer language and those for the special embedded experiments,we put forward the documentation abouterrors during the experimental process.With the actual examples,the necessity,factors and general formatof errors documentation are illustrated.Practical results have showed thaterrors documentation is very helpful to the textbooks of embedded experiments and the teachers'guidance. In addition,this hasmade the students paymore attention to the developmenterrors and capability building of a personal software engineer.

embedded experiments;errors;documentation;ability

TP399;G642.1

A

10.3969/j.issn.1672-4550.2014.05.017

2013-11-22

戴莉萍(1979-),女,讲师,研究方向:软件工程、数据库技术。

猜你喜欢

PC机内核文档
浅谈Matlab与Word文档的应用接口
强化『高新』内核 打造农业『硅谷』
有人一声不吭向你扔了个文档
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
基于RI码计算的Word复制文档鉴别
排除OLT设备登录故障
微生物内核 生态型农资