基于构件的开放式网络化自动测试技术研究
2017-01-13刘福军1汤宫民1孙香冰1汤潇奕2梁清果1
刘福军1,汤宫民1,孙香冰1,汤潇奕2,梁清果1
(1.中国人民解放军72465部队,济南 250022;2.华中师范大学,武汉 430079)
基于构件的开放式网络化自动测试技术研究
刘福军1,汤宫民1,孙香冰1,汤潇奕2,梁清果1
(1.中国人民解放军72465部队,济南 250022;2.华中师范大学,武汉 430079)
针对当前网络化自动测试系统的软件复用局限于代码复用的问题,提出基于构件的开放式网络化自动测试系统软件开发方法,实现测试软件的更高层次复用;引入领域工程的思想,将软件开发过程划分为三个阶段:领域分析阶段运用UML建模语言对网络化自动测试系统进行需求分析、静态分析和动态分析;领域设计阶段完成可复用构件的辨识和提取,并建立可复用构件框架模型;领域实现阶段对关键的可复用构件进行实现。
构件;网络化;自动测试系统;统一建模语言
0 引言
随着武器装备测试需求的不断增加,网络化自动测试系统的规模和结构也日趋复杂,在这种情况下,系统开发中的软件可复用性是系统能否实现开放性的重要保证。目前,网络化自动测试领域内的软件复用基本局限于代码复用,而不是对整个体系结构的设计复用,这势必造成开发人员花费大量时间来处理对象之间的控制流,从而为系统的维护与升级带来了困难[1]。
目前,较大规模的复杂应用系统一般采用现代软件工程中基于构件的软件开发方法,这种方法不仅具有方便开发和维护、可移植性强、复用性好等优势,而且有利于积累开发复杂系统的丰富经验和方法模式。因此,本文将基于构件的软件开发技术运用到网络化自动测试系统的软件开发中,使得测试软件的复用不局限于基础源代码的复用,而更重要的是设计过程、设计框架和体系结构等更高层次的复用。
本章首先给出了基于构件的网络化自动测试系统软件开发的阶段划分方法,在领域分析阶段和领域设计阶段运用UML建模语言对网络化自动测试领域内的可复用构件进行辨识和抽取,在领域实现阶段对识别出的部分关键构件进行实现。整个软件开发过程中采用了面向信号的软件设计方法,从而保证了测试软件的可移植性和仪器的可互换性。
1 构件和基于构件的软件开发
构件[2]是按照一定规范编写的、近乎独立的、可替换的满足一定功能的软件模块,是语义描述、通信接口和实现代码的复合体。构件技术继承并发展了面向对象的思想,它更强调真正的软件复用和高度的互操作性。
基于构件的软件开发过程分为两部分:开发可复用的构件和利用可复用的构件开发应用系统[3]。本文开展的基于构件的开放式网络化自动测试系统软件研究集中在开发过程的前一部分,即通过对网络化自动测试系统进行分析,辨识出领域中可复用的构件元素;并对辨识出的可复用构件采用组件对象模型COM加以实现。
整个软件开发过程可分为3个阶段:领域分析阶段、领域设计阶段和领域实现阶段。
1)领域分析阶段:领域分析是识别、捕捉和组织系统可重用信息的过程,其主要任务是通过对网络化自动测试领域内知识的抽象,区分出共性和可变性,形成领域模型。
2)领域设计阶段:领域设计阶段是对领域模型进行技术延伸,在领域需求的基础上严格区分出通用功能点、可选功能点和差异点,把各个通用功能点作为领域的特征,并把该特征抽象成共性的特征模型,以此为基础抽取出可复用构件,设计出基于构件的领域软件框架结构。
3)领域实现阶段:领域实现阶段的主要目的是依据领域模型和领域软件框架结构开发和组织可复用信息。这个阶段也可以看作是复用基础设施的实现阶段。
2 网络化自动测试系统领域分析
领域分析是系统进行成功复用的第一步,也是最重要的一步。本文在领域分析过程中引入了UML建模方法[4]。基于UML的领域分析过程如图1所示,整个领域分析过程分为标识域、分析域和描述域3个阶段。与之对应的UML建模过程可概括为:首先由需求分析建立用例模型,得到系统的功能;其次对用例模型进行细化,建立系统的静态模型;然后将系统要完成的功能在类之间进行分配,得到对类的操作,建立系统的动态模型。
图1 基于UML的领域分析过程
2.1 网络化自动测试系统需求分析
用例图是从用户的观点来描述系统功能的一种高级视图。针对不同的使用者,网络化自动测试系统的用例图主要包括:浏览器端用例图、客户端测试执行人员用例图、系统管理人员用例图、网络化自动测试系统核心用例图。远程测试任务的执行是网络化自动测试系统的核心功能,因此本文重点对网络化自动测试系统的核心用例图进行介绍,如图2所示。
图2 网络化自动测试系统核心用例图
该核心用例图中体现了面向信号的思想。远程对象厂用例的功能是:测试任务执行过程中,测试执行人员通过远程对象厂在指定IP地址的测试服务器上创建资源管理器对象进程,并返回资源管理器对象的接口指针;资源管理器用例则用来创建测试过程中所需要的各种信号对象;信号功能用例、信号参数用例、信号调理用例、信号状态用例及信号连接用例分别用来设置和描述信号功能、物理参数值、信号调理、信号状态以及信号与被测对象的连接关系;测试引擎用例则负责根据信号所描述的测试需求信息和资源配置描述信息优选真实资源,调用选中的仪器驱动器控制仪器,通过测试通道进行测试,并把测试结果进行相应的处理;资源配置描述用例用来描述测试资源能力、测试平台通道连接关系、测试适配器信号变换和通道转接关系以及UUT测试配置等相关信息。
2.2 网络化自动测试系统静态分析
静态模型描述了系统的静态结构,提供了系统中的结构成员及其相互关系。系统静态分析可用类图来实现,主要包括网络化自动测试系统类图和信号类图。
根据面向对象原则以及用例图所界定的网络化自动测试系统的特征及功能,建立的网络化自动测试系统类图如图3所示,图中给出了每个类的主要方法。部分类的功能如下:UserInterface类:用户操作界面类主要向用户提供交互式操作界面。
图3 网络化自动测试系统类图
Task Manage类:任务管理类主要负责系统中各种任务的管理,实现具体功能。
DeviceNetwork Manage类:设备入网管理类用来完成测试设备入网的注册和管理。
DataOperation类:数据操作类用来完成对数据库的操作。
SystemConfig Manage类:系统配置类管理的是测试资源配置信息、测试平台通道连接关系、测试适配器信号变换和通道转接关系以及UUT测试配置的信息描述内容。
RemObjFactory类:远程对象厂类用于在指定IP地址的测试服务器上创建资源管理器对象进程。
Engine类:测试引擎类根据所描述的测试需求信息和配置信息优选真实资源,调用选中的仪器驱动器类控制仪器,通过测试通道进行测试。
2.3 网络化自动测试系统动态分析
顺序图描述了对象之间的动态协作关系,展示对象之间传递消息的时间顺序,反映对象之间的一次特定的交互过程。
本文仍以网络化自动测试系统的核心功能,用户执行远程测试任务为例,以顺序图的方式对测试任务执行的动态过程进行分析。根据信号功能的不同,网络化自动测试系统所执行的测试任务可分为信号激励与信号测试两大类。图4为信号激励的顺序图。整个信号激励的过程可简单描述为客户端用户在远程测试服务器上产生一个激励信号,并输出到指定端口。图中清晰地表达了网络化自动测试系统在执行信号激励任务过程中的主要控制流。
图4 信号激励的顺序图
3 网络化自动测试系统领域设计
领域设计阶段的主要任务是根据领域分析的结果,抽取领域中的可复用构件。基于UML的构件抽取过程可描述如下:
步骤1:通过用例图映射系统的需求图,得到系统的功能描述。
步骤2:通过分析类图,来描述系统的静态结构和完成功能的实体。
步骤3:通过分析顺序图,描述类对象之间的动态协作关系,可以更加清晰地找出多余的或是遗漏的类;
步骤4:通过上述分析,抽象出系统的构件模型。在类图的基础上,结合实际需求对分析得到的类进行重组,对关系紧密的类组成构件。
本文采用上述方法,完成了网络化自动测试领域内可复用构件的辨识,并以此为基础建立了基于构件的网络化自动测试系统软件结构框图,如图5所示。
图5 基于构件的软件结构框图
针对构件的功能特点,本文对辨识出的可复用构件进行了层次划分。
1)用户界面层:用户界面层主要由用户界面构件组成。用户界面构件封装了用户操作界面类,通过接口实现系统与用户的交互。
2)管理层:管理层由任务管理构件组成。任务管理构件封装了任务管理相关的类。用户通过任务管理构件实现系统中各种任务的管理。
3)应用层:应用层由用户管理构件、网络管理构件等功能构件组成。这些构件通过上层程序的调用,以完成相应的功能。
4)测试执行层:测试执行层由远程对象厂构件、资源管理器构件、测试引擎构件等组成。这些构件共同作用以完成远程测试任务。
5)仪器驱动层:仪器驱动层由各种仪器驱动器构件组成,仪器驱动器构件实现测试程序与硬件资源的通讯并能驱动硬件资源执行相应的功能。
4 网络化自动测试系统领域实现
领域实现阶段的主要任务是对经过领域分析和领域设计阶段识别出的可复用构件进行设计和实现。本文以网络化自动测试系统中的关键构件资源管理器构件为例,介绍其实现过程。
资源管理器 (ResourceManager)构件主要完成测试任务执行过程中各种信号构件对象的创建。工厂方法(Factory Method)模式定义了一个创建对象的接口,该接口被称为工厂方法。工厂方法模式的设计意图是为了适应被创建对象可能发生变化的情况。在面向信号的网络化自动测试系统软件平台上,考虑到信号构件将来升级的需要,采用工厂方法设计资源管理器构件的IResource Manager接口来完成各种信号构件对象的创建。这样最大的好处是:当信号构件升级或改变时,只需要修改IResourceManager接口,测试程序不用修改。IResource Manager接口的IDL描述如下:
该接口只有Require一个方法,用来根据信号描述信息完成对应信号构件接口的创建,其关键实现代码如下所示。
5 结论
本文首先介绍了构件和基于构件的软件开发方法,建立了基于构件的网络化自动测试系统软件开发模型,将整个软件开发过程划分为领域分析、领域设计和领域实现3个阶段。运用UML建模语言从需求分析、静态分析和动态分析三个方面完成了对网络化自动测试系统的领域分析。以此为基础,在领域设计阶段辨识和抽取了领域内的可复用构件,并建立了基于构件的网络化自动测试系统软件结构框图。在领域实现阶段对测试系统中关键的可复用构件进行了实现。整个软件开发过程实现了软件更高层次的复用,具体体现在概念级需求阶段的可复用、逻辑级框架结构的可复用和物理级业务构件的可复用。从而保证了测试软件的可移植性和仪器的可互换性。
[1]徐小良.自动测试系统的面向对象框架开发方法研究[D].杭州:浙江大学,2003.
[2]冯 冲,江 贺,冯 静.软件体系结构理论与实践[M].北京:人民邮电出版社,2004,4.
[3]杨振勇.基于构件的工控软件设计与研究[D].上海:上海师范大学,2004.
[4]别文群.UML统一的建模语言的研究与实践[D].武汉:武汉大学,2004.
Research on Open Networked Automatic Test Technology Based on Components
Liu Fujun1,Tang Gongmin1,Sun Xiangbing1,Tang Xiaoyi2,Liang Qingguo1(1.72465 Unit of PLA,Jinan 250022,China;2.Central China Normal University,Wuhan 43007,China)
Implementation methods of component-based software are put forward in the open Networked Automatic Test System (ATS),which lays the foundation for the system software reuse.The thought of Domain Engineering is introduced into the development process and divides the whole process into three phases.In the domain analysis phase,the Unified Modeling Language(UML)is used to perform requirement analysis,static analysis and dynamic analysis of the test system.In the domain design phase,identification and extraction of reusable components are accomplished on the basis of the achievements in domain analysis.In the domain realization phase,key reusable components in the test system have been realized.
component;networked;ATS;UML
1671-4598(2016)08-0012-04
10.16526/j.cnki.11-4762/tp.2016.08.004
:TP274
:A
2016-01-31;
:2016-02-16。
国防预研项目(51317030104)。
刘福军(1964-),男,山东莱州人,博士,高级工程师,主要从事复杂武器装备的维修与故障诊断、自动测试技术等方向的研究。