APP下载

基于SQL Server2000图像算法评测软件设计

2011-04-23梁树为

电子科技 2011年6期
关键词:对话框数据库软件

梁树为

(西安电子科技大学电子工程学院,陕西西安 710071)

随着计算机、通信和网络技术的发展,用户对图像传输和存储中的数据压缩要求变得更高。图像压缩算法是图像压缩过程中的核心内容。图像压缩传输后再解压得到图像质量的好坏,直接用于评价压缩算法的优劣。因此,在研究算法时关于算法的测试评选过程必不可少。文中的算法评测软件主要用于图像压缩算法研究过程中的算法测试以及算法对某些图像和参数的效果差异的统计记录。

1 设计要求及设计策略

1.1 设计要求

软件设计的算法质量测评过程是:先进行大范围遍历测试,通过统计图形或数据找出效果较好的参数组合,然后使用这些较好的参数进行测试,这次测试将保存解压缩后的图像数据,可以进行主观评价,最后得出结论,便于以后查询。具体软件流程图如图1所示[1]。

1.2 设计策略

以数据为中心的分布式计算为主导思想,强调代码的重用性,在整体上将软件分为几个部分,各个部分相互独立,把通用对象单独封装,形成较为独立的程序库,可以在其他项目中调用[2]。

图1 软件流程图

采用面向对象的思想操作数据库,把数据对象化,就是使用类封装同属性数据集合,真正数据的使用者看不到数据的物理结构,仅仅能看到其中的逻辑关系。软件依托SQL Server2000实现对测试数据的存储和管理,将软件用到的算法内容、算法参数、图像数据以及结果数据都交给数据库维护[3]。

图像压缩算法以及各个辅助算法是独立的可执行文件,而且必须是DOS提示符下运行的无界面程序,软件将不断启动执行算法进程,遍历执行算法的所有参数组合。

软件将以工程的形式来进行操作,它将包含软件应用中所有的数据和设置。整个算法的评估过程和在其中用到、产生的各类数据,都将以一个工程的形式进行保存,工程的概念将作为软件的主框架来实现。

2 软件总体设计

2.1 软件结构层次

软件实现大致分为三层:第一层,负责最底层的数据维护和算法执行,具体包括数据库的管理和测试算法的执行进程。第二层,是将软件执行时存在于内存中的数据维护起来的一些类,具体包括维护从数据库中取出数据的工程数据管理类、算法数据管理类、图像数据管理类以及保存查找行为所得到数据的算法列表类和工程列表类。第三层,就是软件与用户间的接口界面,主要负责接受用户的输入以及实时显示软件执行进程。各层之间的关系如图2所示[4]。

图2 软件结构层次图

2.2 类的继承关系

软件根据各模块实现功能的相似性和多样性,可利用类的继承性很好地将各个功能模块表示出来,为后面其他模块的扩展或修改提供了良好的结构基础。

首先定义软件中的多个基础类,包括管理数据的数据管理类、负责查找功能的数据查找器以及保存查找结果的数据列表类和数据内容类。然后根据不同数据的不同性质,从基础类派生出各种派生类。它们虽然通过不同的方法实现,但其具有很多相同的对外接口,这为后面模块多态地调用各模块功能提供了方便。其具体的继承关系如图3所示[5-6]。

图3 类继承关系图

3 主要功能模块介绍

如图4所示,软件功能直接依赖于5个模块,其中左边3个模块与软件操作流程相关,有明显的先后顺序;右边的两个模块属于辅助模块,向主要操作提供数据支持。

3.1 工程管理模块

图4 软件功能模块

工程管理模块不仅负责对历史工程的查找、查看和删除操作,而且包含了对当前正在执行工程的进度管理。因为软件设计时将整个算法评测过程定义为一个工程,无论是评测过程中用到的算法、算法参数,还是评测完毕后的算法执行结果、结果统计筛选以及算法的执行过程和与数据库的交互,都将在工程管理的大框架下完成。工程查看界面将是软件的主要界面,用户在上面可以完整地看到工程的各项详细内容,并在其上进行工程编辑。

图5 工程管理模块流程图

图中描述了工程管理模块的界面操作流程,从左边的菜单开始,是用户点击菜单后出现的对话框。图中体现出两个主要界面,显示工程列表对话框和查看编辑工程窗口。工程列表对话框提供查找功能,可以按照工程各项参数数据查找工程,支持在查找结果中再次查找。工程查看窗口是整个软件的主窗口,工程打开后,该窗口被显示出来,作为主窗口直到软件关闭。

3.2 算法执行模块

算法执行模块功能简单,从数据库中读取参数,然后执行参数中指定的算法程序,最后把结果保存到数据库中,并在界面上提示用户。

算法执行模块有两个类,状态显示对话框类和算法执行线程类。其中状态显示对话框负责与用户交互,向线程提供数据,控制线程的执行;而算法执行线程类只负责执行算法程序以及获取执行结果。算法执行模块的主要功能是启动算法执行线程,在软件后台执行算法的所有遍历,将结果随时存入数据库,并在界面上实时显示执行过程。该模块主要将算法执行时出现的错误或崩溃限制在模块内,不使其扩散到软件其他部分导致整个软件的崩溃。

3.3 统计与筛选模块

统计筛选模块主要实现评测算法遍历完毕后的数据分析工作。该模块主要的操作对象是数据库中的遍历参数表,通过对该表的分析可以了解到算法在各种参数组合下的性能表现。软件通过对某些结果值随参数变化趋势的观察,可以客观地做出对算法的评价。该模块在界面上主要有两个对话框组成:绘图对话框和参数筛选对话框。

绘图对话框主要用于显示测试参数与测试结果的关系曲线图,使算法测试用户能够直观地观察到算法的某些性能。通过绘制两种参数的关系曲线图,可以很快获取算法在某些方面某些参数区间的优劣性能。

参数筛选对话框主要是评价数据的统计,能让用户筛选需要的组合。其具体功能是将统计出符合的参数组合数据显示在界面上。统计功能相当于查找,能够让用户找到符合条件的参数组合。

3.4 算法管理模块

算法管理是对待测算法和其他辅助算法程序的管理。本模块实现了算法的添加、导入、查看和删除功能。模块中主要有5个对话框,这些对话框的关系如图6所示,图中历史工程列表和工程查看两个对话框是工程管理的对话框,不包括在算法管理模块中。

图6 算法管理模块流程图

添加算法对话框实现了用户添加算法的接口,用户只需填入算法描述脚本文件即可。对话框打开指定的脚本文件,解析文件内容,把解析正确的内容显示在对话框上。添加算法成功后,算法相关的各种数据将在数据库的相应项目中保存,从而实现算法在数据库的添加。

算法列表对话框实现快速查找算法的手段,按一定条件查找符合的算法,并支持在结果中查找。查找成功后在对话框列表中显示符合条件算法的名称、版本、添加时间等基本内容。

算法详细内容对话框查看对话框显示算法的所有内容信息,主要功能是以列表的方式逐一显示算法的详细信息,提供算法的“删除”和“导入”工程的功能。

测试参数列表对话框显示所有与当前算法相关的测试参数概要,主要功能有:提供测试参数的查找功能以缩小参数的范围;显示测试参数对应的各项工程内容数据。

测试参数详细内容查看窗口用于查看测试参数的所有内容。窗口以非模式对话框的形式实现,以便用户在观察窗口时,能够同时操作前一个对话框。

3.5 图像管理模块

图像管理模块将通过“图像管理软件”以com组件的形式,通过图像管理软件将待测图像以及算法测试中产生的中间临时图像和结果图像保存维护起来,供软件的其他模块使用。

4 结束语

本文主要对基于数据库算法评测软件的具体设计开发进行了说明。软件利用数据库管理纷繁复杂的测试数据,而且通过不断地启动新的进程快速的遍历测试算法所有参数,为算法研究人员提供了便利的辅助工具。软件以面向对象作为软件设计的主题思想,将数据封装为对象并建立各数据对象之间的逻辑关系,将实现功能的各部分建立为一个个独立的模块,所以在后面的算法研究中对功能扩展升级要求实现就变得十分方便。

[1] 孙鑫.VC++深入详解[M].北京:电子工业出版社,2006.

[2] Comp-U-Learn Tech India Ltd.UML系统分析设计[M].王强,译.北京:高等教育出版社,2005.

[3] CHUCK W.Visual C++6.0数据库编程大全[M].北京:电子工业出版社,2000.

[4] STEVE R.代码大全[M].2版.金戈,汤凌,译.北京:电子工业出版社,2006.

[5] 刘刀桂.Visual C++实践与提高:数据库篇[M].北京:中国铁道出版社,2001.

[6] 叶蓓.SQL Server2000关系数据库特性分析[J].现代电子技术,2003(23):72-73,76.

猜你喜欢

对话框数据库软件
禅宗软件
正常恢复虚拟机
软件对对碰
Bootlace Worms’Secret etc.
What Is Beauty?
数据库
数据库
浅谈VB的通用对话框《CommonDialog》控件的使用
数据库
数据库