基于COM航空试验软件组件的设计
- 格式:doc
- 大小:48.00 KB
- 文档页数:5
计算机软件技术基础复习题和思考题答案1.5.1 复习题1. 解释计算机程序的概念。
计算机程序(computer programs),简称程序,是指计算机的指令序列。
2. 什么是源代码程序?源代码是指以程序设计语言编写的、可读的语句和声明的集合,程序设计人员的工作就是使用程序设计语言编写源代码,源代码经过编译后转变为计算机可以执行的程序。
3. 什么是可执行程序?可执行程序是指包含了计算机可以直接执行的指令的文件。
为了与源代码相区别,可执行程序又被称为二进制代码。
4. 什么是计算机软件技术?计算机软件技术是与软件的设计、实施和使用相关的多种技术的统称。
软件的设计与实施涉及到程序设计语言、算法和数据结构、数据库系统、多媒体、软件工程等技术,软件的使用涉及到质量、可靠性、专利、知识产权、道德、法律等管理和技术。
5. 如何对软件进行分类?可以根据软件的功能进行分类,也可以根据软件的不同开发方式进行划分,还可以从软件的使用方式进行分类。
根据软件的功能来划分是一种主要的分类方式,可以把软件分为系统软件、编程软件和应用软件3大类型。
6. 什么是系统软件?系统软件(system software)指管理和控制计算机硬件、使计算机工作的软件。
系统软件是一种非常重要的软件类型,它为用户提供了一种操作计算机硬件的便捷方法,为其他程序提供了运行的基础。
7. 常见的系统软件有哪些?根据系统软件的功能特点,可以继续划分为操作系统、设备驱动程序、实用工具以及其他系统软件。
8. 什么是操作系统?操作系统(operating system,OS)是位于计算机系统中的硬件和软件之间的接口,负责管理和协调计算机硬件的操作和计算机有限资源的共享。
9. 列出3个典型的操作系统。
主要的操作系统包括微软公司的Windows系列操作系统、Unix和类Unix操作系统、苹果公司的Mac OS X操作系统、Linux操作系统等。
任意列出3个即可。
10. 什么是编程软件?编程软件(programming software)又称为编程工具(programming tool)或软件开发工具(software development tool),是一种软件开发人员用于创建、调试、维护其他程序和应用软件的软件工具。
基于com的工艺软件设计工艺软件是指应用于工艺制造过程中的软件系统,它可以帮助工艺师快速、准确地完成工艺制造任务。
基于com的工艺软件设计,主要是指利用Component Object Model(COM)技术来设计和开发工艺软件。
COM是一种面向对象的组件技术,它提供了一种机制,使得不同的应用程序可以通过接口和方法进行通信和交互。
基于COM的工艺软件设计可以实现不同的模块之间的协作和数据共享,提高工艺制造过程的效率和质量。
在基于COM的工艺软件设计中,首先需要进行系统分析和需求定义。
通过与用户的沟通和需求收集,确定工艺软件的功能和特性,并制定相应的开发计划和功能列表。
接下来,需要进行系统设计。
在系统设计阶段,通过分析需求和功能要求,确定软件的架构和组件的关系。
基于COM的工艺软件设计可以使用面向对象的设计方法,将系统划分为不同的组件和模块。
在组件设计方面,可以使用COM的接口和对象模型来定义和实现组件之间的通信机制。
通过COM接口,可以定义组件的方法和属性,并使用COM对象模型进行对象的创建和管理。
在基于COM的工艺软件设计中,还需要考虑通信和数据共享的问题。
可以通过COM接口来实现不同组件之间的通信和数据交换。
例如,可以定义一个数据接口,用于传输和处理工艺数据。
通过使用COM接口,可以使不同的组件之间实现数据共享和交互。
另外,基于COM的工艺软件设计还可以利用COM的服务和组件的重用性。
COM提供了一种灵活的组件机制,可以将组件进行打包和封装,并在不同的系统和应用程序中进行重用。
在工艺软件设计中,可以利用已有的COM组件来实现一些通用的功能,从而减少开发时间和成本。
在实施和测试阶段,需要根据设计文档和开发计划对软件进行编码和测试。
基于COM的工艺软件设计可以使用常见的编程语言,如C++、C#、VB等来实现。
通过对软件进行测试和调试,可以确保软件的功能和性能达到设计要求。
总之,基于COM的工艺软件设计可以提高工艺制造过程的效率和质量。
航空发动机飞行试验数据分析处理软件设计
雷杰;潘鹏飞
【期刊名称】《工程与试验》
【年(卷),期】2018(058)004
【摘要】航空发动机飞行试验长期缺乏专用的数据分析处理软件,试飞工程师只能采用人工手动方式处理海量试飞数据.随着试飞架次和试验数据的逐年增加,数据处理存在耗时长、效率低等缺点,严重影响试飞任务的高效进行.针对上述问题,本文设计了一种航空发动机飞行试验数据分析处理软件,实现了发动机飞行试验数据全自动处理,相比人工手动方式减少了95%以上数据处理时间,极大提高了试飞工程师的工作效率.
【总页数】5页(P54-58)
【作者】雷杰;潘鹏飞
【作者单位】中国飞行试验研究院,陕西西安710089;中国飞行试验研究院,陕西西安710089
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于飞行试验数据的双转子航空发动机加减速瞬态模型辨识 [J], 潘鹏飞;马明明;许艳芝
2.飞行试验数据自检测系统软件设计 [J], 许应康;彭国金;刘威
3.固体火箭发动机试验数据分析处理软件设计 [J], 侯志勇
4.环境因素导致避雷器直流试验数据异常案例分析处理 [J], 郑云海;彭炜文;黄云程;林涌艺;姚俊达
5.一种飞行试验数据预处理软件设计方法 [J], 牛绿伟
因版权原因,仅展示原文概要,查看原文内容请购买。
航空发动机试验台系统的设计和实现近年来,随着航空事业的快速发展,航空发动机已经成为航空装备的核心部件之一,对发动机的性能和安全性要求也越来越严格。
发动机试验台作为发动机研发的重要基础设施,其性能和稳定性对发动机研发和产业化有着至关重要的影响。
因此,航空工程领域的学者们,开发出了一系列高效可靠的航空发动机试验台系统,以实现对航空发动机的精细测试和分析。
本文将从发动机试验台系统的设计和实现两个方面,探讨现代航空发动机试验台系统相关的一些技术及其应用。
一、发动机试验台系统的设计思科的ELMT实验室管理服务器、热回流冷却技术、系统热管理和控制以及智能数据采集系统,是现代航空发动机试验台系统的主要组成部分。
其中,热回流冷却技术是目前发动机试验台系统中最先进、最可靠的技术之一。
它可以有效地控制试验台系统的温度,从而提高系统的稳定性和可靠性。
同时,该技术也可以减少空气流动的干扰,提高测试的准确度。
系统热管理是发动机试验台系统设计的关键之一,是保证系统正常工作和数据精度的前提。
为了实现系统热管理,试验台系统需要采用高效的散热系统并配合智能温度控制模块。
智能温度控制模块可以实时检测整个系统的温度变化,并根据系统热量的需求,自动进行散热。
这样,就可以在保证系统稳定性和可靠性的同时,避免因过度散热而造成的性能损失。
智能数据采集系统是发动机试验台系统的重要组成部分。
它可以采集试验过程中的各种数据,并将其传输到计算机端进行处理和分析。
采集到的数据包括发动机的参数、测试时间、温度、转速、油耗、功率、气体流量等。
这些数据可以被用来评估发动机的性能、燃烧特性、热效率和排放情况等。
二、发动机试验台系统的实现为了实现对发动机的全方位测试,现代发动机试验台系统通常由多个试验站台组成。
每个试验站台都可以独立进行测试,并且可以对发动机的不同方面进行测量,如动力性、效率性、燃料经济性等。
除此之外,试验站台的开发还涉及到试验站台的机械设计、电气设计和软件设计等多个方面。
双击代码全选1 H RESULT IUnknown::QueryInterface ( REFIID iid, void** ppv );双击代码全选1 2 3 HRESULT hr;IPersistFile* pIPF;hr = pISL->QueryInterface ( IID_IPersistFile, (void**) &pIPF );双击代码全选1 HRESULT CoCreateInstance ( REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID* ppv );双击代码全选1 2 3 4 5 6 7 8 9 10 11 HRESULT hr_COM;IShellLink* pISL_COM;hr_COM = CoCreateInstance ( CLSID_ShellLink, CLSID NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**) &pISL );if ( SUCCEEDED ( hr_COM ) ){// 用pISL_COM 调用方法}else{// 不能创建COM 对象,hr_COM 为出错代码}双击代码全选1 2 3 4 if ( SUCCEEDED ( hr ) ){pISL_COM->Release();}双击代码全选123456789 10 11 12 13 14 15 16 17 18 19 20 21 22 23WCHAR wszWallpaper [MAX_PATH]; CString strPath; HRESULT hr; IActiveDesktop* pIAD; CoInitialize ( NULL ); hr = CoCreateInstance ( CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER, IID_IActiveDesktop, (void**) &pIAD ); if ( SUCCEEDED(hr) ) {hr = pIAD->GetWallpaper ( wszWallpaper, MAX_PATH, 0 );if ( SUCCEEDED(hr) ){wcout << L"Wallpaper path is:/n " << wszWallpaper << endl << endl; }else{cout << _T("GetWallpaper() failed.") << endl << endl; } pIAD->Release(); }else{cout << _T("CoCreateInstance() failed.") << endl << endl;}}CoUninitialize();双击代码全选1 2 3 4 5 6 7 8 9 10 11 CString sWallpaper = wszWallpaper;ANSI IShellLink* pISL;IPersistFile* pIPF;CoInitialize ( NULL );hr = CoCreateInstance ( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**) &pISL );if ( SUCCEEDED(hr) ){hr = pISL->SetPath ( sWallpaper );if ( SUCCEEDED(hr) ){1213141516171819 20hr = pISL->QueryInterface ( IID_IPersistFile, (void**) &pIPF );if( SUCCEEDED(hr) ){hr = pIPF->Save ( L"C://wallpaper.lnk", FALSE );pIPF->Release();}}pISL->Release();}CoUninitialize();。
面向适航标准的机载软件测试验证工具综述机载软件是安装在航空设备中作为核心控制作用的计算机软件,是一种典型的嵌入式软件。
随着嵌入式技术在航空航天领域的广泛应用,软件所实现的功能比例也越来越高,航电系统80%的功能都依赖于机载软件实现,机载软件已经成为机载设备系统的核心,而因软件故障引起的事故时有发生。
2018年印尼狮航因为飞机搭载的自动防失速系统做出错误判断导致空难。
机载软件具有安全攸关(safety-critical)的特性,因此所有机载设备软件以及飞机交联的软件系统进行安全认证才能投入使用。
航空领域广泛采用的是美国航空无线电委员会(Radio Technical Commission for Aeronautics,RTCA)提出的航空适航认证标准DO-178C及其增补标准。
基于适航认证标准的软件验证能最大程度上发现软件中的错误,保障软件安全与质量,满足适航审定的要求。
机载嵌入式软件因其实时性、高安全可靠性和软硬件高耦合度等特点,验证的工作量和难度大大提升。
如何对日渐复杂的机载软件系统进行高效的验证成为了研究热点,对机载嵌入式验证工具的研究同样也变得十分迫切。
DO-178C中软件验证的方法包括了审查(review)、测试和分析。
而当前,国内外不少学者主要侧重于软件测试及其工具的研究。
Sneha K等[4]按照功能导向将测试工具划分为功能测试工具、测试管理工具、负载测试工具三类;Mustafa K M等[5]根据测试工具的适用范围将其划分为web应用、嵌入式软件、数据库、网络协议等八类,但仅给出两种适用于嵌入式软件测试的工具。
上述研究从不同角度对软件测试及其工具进行了研究,但是其主要研究对象并不是机载嵌入式软件,而且覆盖的工具也较少。
因此本文在系列适航标准的基础上对机载软件的验证工具进行全面的研究综述。
DO-178C及其增补标准包括了工具鉴定(DO-330)、基于模型的开发和验证(DO-331)、面对对象技术(DO-332)、形式化方法(DO-333)、常温问题的问答(DO-248)等,如图1所示。
航空航天工程师的设计软件和工具使用在航空航天领域的工程设计中,设计软件和工具的使用起着至关重要的作用。
这些软件和工具不仅帮助航空航天工程师提高工作效率,还能够确保设计的准确性和安全性。
本文将介绍几种常见的航空航天工程师使用的设计软件和工具。
一、计算机辅助设计(CAD)软件计算机辅助设计软件是航空航天工程师最常用的软件之一。
它可以帮助工程师创建、修改和分析航空航天工程的三维模型。
通过CAD软件,工程师可以进行结构设计、零部件装配和机械仿真等工作。
常见的CAD软件有CATIA、AutoCAD和SolidWorks等,它们具有强大的建模和分析功能,能够满足各种复杂设计需求。
二、飞行模拟软件在航空航天工程中,飞行模拟软件是必不可少的工具。
它可以通过计算机模拟飞行器在不同条件下的飞行情况,为工程师提供设计和测试的参考依据。
飞行模拟软件通常包括飞行动力学模型、气动模型和环境模型等,工程师可以根据需要调整参数和条件,模拟不同飞行场景下的飞行性能和飞行安全性。
三、结构分析软件在航空航天工程中,结构分析是一个关键的环节。
结构分析软件可以帮助工程师对航空航天器的结构进行静力学和动力学分析,评估结构的强度和刚度,以及预测和优化结构的振动响应。
常见的结构分析软件有ANSYS、NASTRAN和ABAQUS等,它们采用有限元分析方法,能够模拟实际结构的受力情况,并提供详细的分析结果。
四、风洞实验设备风洞实验是航空航天工程中不可或缺的一部分。
通过风洞实验,工程师可以研究飞行器在不同风速和空气动力条件下的气动性能。
风洞实验设备包括风洞模型、风洞平台和风洞控制及测量系统等。
工程师可以根据设计需求选择合适的风洞实验设备,并进行实验测试和数据分析。
综上所述,航空航天工程师在设计过程中需要使用各种设计软件和工具。
这些软件和工具能够帮助工程师进行三维建模、飞行模拟、结构分析和风洞实验等工作,提高设计效率、准确性和安全性。
随着技术的不断进步,未来的设计软件和工具将更加先进和智能化,为航空航天工程师带来更多便利和创新的可能性。
飞行试验管理系统的设计与软件实现飞行试验管理系统是航空领域中一个关键的组成部分,它负责协调和管理飞行试验的各个环节,确保试验的顺利进行和数据的准确收集。
本文将探讨飞行试验管理系统的设计原则、功能模块以及软件实现的策略。
首先,设计飞行试验管理系统时,需要考虑以下几个核心原则:安全性、可靠性、实时性和可扩展性。
系统必须能够确保飞行试验在安全的条件下进行,同时保证试验数据的准确性和可靠性。
此外,系统应能够实时响应试验过程中的各种变化,并具备良好的扩展性以适应未来技术的发展。
在功能模块方面,飞行试验管理系统主要包括以下几个部分:1. 试验计划管理:该模块负责制定和调整飞行试验计划,包括试验任务的分配、时间安排和资源配置。
2. 数据采集与处理:飞行试验会产生大量的数据,包括飞行参数、环境数据等。
该模块需要能够实时采集这些数据,并进行初步的处理和分析。
3. 试验监控与控制:通过实时监控飞行状态和试验参数,系统能够对试验过程进行控制,确保试验按照既定计划进行。
4. 风险评估与应急响应:系统需要能够评估试验过程中可能出现的风险,并制定相应的应急响应措施。
5. 报告生成与分析:试验结束后,系统应能够自动生成试验报告,并提供数据分析功能,帮助研究人员更好地理解试验结果。
在软件实现方面,飞行试验管理系统通常采用模块化的设计方法,以便于维护和升级。
软件架构通常包括以下几个层次:- 数据层:负责数据的存储和管理,通常使用数据库系统来实现。
- 逻辑层:包含业务逻辑和数据处理的算法,是系统的核心部分。
- 表示层:为用户提供操作界面,通常使用图形用户界面(GUI)技术来实现。
软件实现还需要考虑到系统的用户权限管理、数据安全和备份机制等。
此外,为了提高系统的可用性和用户体验,软件开发过程中还应进行严格的测试和用户反馈收集。
总之,飞行试验管理系统的设计和实现是一个复杂的过程,需要综合考虑多个方面的因素。
通过精心设计和实现,可以确保飞行试验的高效、安全和可靠。
2018年 第10期冷加工) 石 鑫 王忠建 王广运组件技术,采用三层C/S 结构,针对Access 建立花键轴参数信接口以及客户端应用程序的编写,最终实现了花键轴参数化设计扫码了解更多图1 系统总体结构图2 注册环境变量intelligent manufacture智能制造2018年第10期冷加工68COM_PART,如图3所示,并将该零件模板放在prt子文件夹中,随后创建程序所用的参数化表达式,如图4所示,至此花键轴模型建立完毕。
(3)建立A c c e s s数据库。
通过Access建立花键轴信息数据库文件spline_shaft.mdb。
在该文件中,共设置10个字段,分别为编号、直径1、直径2、齿数、齿宽、有效长度、内孔直径、内孔深度、轴直径和轴长度。
其中,指定“编号”为主键,最终创建的花键轴信息数据库文件如图5所示。
(4)U G菜单与对话框的创建。
在startup文件夹内建立菜单文件(.m e n)时,需要使用UG/MenuScript工具创建出自己所需的主菜单和子菜单。
本次所创建的文本菜单文件名为C O M_MENU.men,具体代码如下:VERSION 120E D I T U G_G AT E WAY_M A I N_MENUBARBEFORE UG_HELPCASCADE_BUTTON COMLABEL 基于COM组件的花键轴参数化设计END_OF_BEFOREMENU COMBUTTON COM_PARA_DESIGNLABEL 石鑫花键轴参数化设计ACTIONS Client_DIA.dlgEND_OF_MENU其中,ACTIONS后面为菜单要执行的动作,本次开发程序所设置的主菜单名为“基于COM组件的花键轴参数化设计”,启动UG后会出现如图6所示的菜单效果。
创建花键轴参数变量UIStyler对话框时,通过设置花键轴所需的关键参数,最后利用回调函数实现参数化设计,保存菜单后,会在application文件夹内自动生成Client_DIA.dlg.h、Client_DIA_template.c与Client_DIA.dlg三个文件,需将Client_DIA_template.c文件改为Client_DIA.cpp,以备程序设计时使用。
基于组件化建模技术的无人机仿真实验模型系统设计I. 引言A. 研究背景及意义B. 研究目的和方法C. 论文结构II. 组件化建模技术的理论基础A. 组件化建模技术简介B. 组件化建模技术在仿真实验中的应用C. 组件化建模技术的优势和局限性III. 无人机仿真实验模型系统设计A. 模型系统设计要点和过程B. 组件的设计和实现C. 系统的集成和测试IV. 实验结果分析A. 无人机仿真实验模型系统的性能测试B. 不同场景下系统的仿真表现C. 实验结果的分析和讨论V. 结论与展望A. 研究结论与意义B. 存在问题及改进方向C. 未来发展方向的展望VI. 参考文献I. 引言随着无人机技术的不断发展,无人机已经广泛应用于民用和军事领域,如航拍摄影、环境监测、快递配送、军事侦查等。
而无人机的研发和应用涉及到多个学科领域,其中仿真技术是无人机研发中不可或缺的一部分,可以有效降低研发成本和飞行风险,提高研发效率和飞行安全性。
随着仿真技术的不断发展和创新,越来越多的仿真技术被应用于无人机研发中,其中组件化建模技术是一种较为先进和有效的技术。
本文旨在介绍组件化建模技术在无人机仿真实验模型系统设计中的应用,通过对相关理论和方法的研究,探索出一种适合无人机仿真实验模型系统的设计方法和实现流程。
本文共分为五个章节,如下所述。
在本章中,将对研究背景和意义进行阐述。
首先介绍无人机的发展现状和应用领域,并着重阐述无人机研发中仿真技术的重要性和应用前景。
接着介绍组件化建模技术的理论基础和应用优势,并探讨其在无人机仿真实验中的应用前景。
最后介绍本文的研究目的和方法,并给出论文结构。
无人机作为一种具有高度灵活性和敏捷性的新型航空器,已经在各个领域得到了广泛的应用。
随着无人机技术的不断推进和普及,人们对无人机的需求也越来越多样化。
无人机研发中,仿真技术被广泛应用于无人机的试飞和测试中,可以有效地避免多次试飞和测试过程中产生的风险和挑战。
737—800型飞机控制显示组件模拟软件的编写摘要:基于737-800型飞机控制显示组件的仿真显示软件,通过在PPT平台上结合Visual Basic for Application编程软件实现,针对飞机维修类的培训,具有形象生动、可操作性强和可扩展性强等许多优点,适用飞机电子设备维修专业的教学过程中使用。
控制显示组件(CDU)是飞机上的重要设备,控制显示组件工作的正常与否直接关系着飞机的飞行安全。
计算机辅助教学克服了传统教学的缺点,具有形象、生动、可操作性强和可扩展性强等许多优点。
但是,航空类计算机辅助软件大部分是针对飞行训练开发的,而针对飞机维修类的计算机辅助软件非常少。
编写与航空电子设备维修课程配套的多媒体软件,对推动课程改革,提高教学质量非常必要的。
关键词:控制显示组件(CDU)PPT Visual Basic for Application1、737-800型飞机控制显示组件模拟软件的设计目标及特点工学结合的思想已被诸多职业院校所接受,课件除了满足知识点传授、演示等功能外,也要有可操作性、可实践性,同时教学课件内容必须具有权威性,规范性和系统性。
软件的设计以737-800型飞机控制显示组件为蓝本,设计过程中,在按键、程序逻辑及页面显示等方面保持和737-800型飞机控制显示组件高度的一致性。
软件所涉及到的模拟功能包括:维护页、识别页、位置页、导航数据库页等等。
所涉及到的系统包括:甚高频全向信标系统VOR、无线电高度表LRRA、自动定向机ADF、增强型近地警告系统GPWS、气象雷达WXR、测距机DME、仪表着陆系统ILS、大气数据与惯性导航系统ADIRS、飞行管理系统FMS、电子飞行仪表系统EFIS等[1]。
2、737-800型飞机控制显示组件模拟软件的设计与实现软件的功能通过在PPT平台上结合Visual Basic for Application编程软件实现。
PPT强大的演示功能,可以让教师的讲解变的更加生动、形象。
基于仿真组件模型(SCM)的航空电子组件仿真模型研究陈静杰;郜丽娜;耿宏【摘要】在飞机维修仿真中,针对航空电子组件仿真模型不统一、重用性差的问题,提出基于SCM (simulation component model)的规范化建模方法建立组件模型.采用SCM规范定义模型框架后,依据航空电子组件在维修过程中的特性和功能,将组件的输入信号归纳为开关量输入、功能信号输入、故障信号输入和拆装信号输入四类,输出信号定义为功能信号输出和驱动信号输出两类,然后进一步界定了模型输入信号、控制信号和输出信号之间的运算规则,以满足组件操作、测试、拆装、排故等维修行为.最后,以飞行增稳计算机组件为例,在自制的飞机维护训练器上实现其模型化表达,仿真结果表明该方法可行.【期刊名称】《科学技术与工程》【年(卷),期】2016(016)010【总页数】6页(P50-55)【关键词】飞机维修仿真;航空电子组件;仿真组件模型(SCM);仿真模型【作者】陈静杰;郜丽娜;耿宏【作者单位】中国民航大学电子信息与自动化学院,天津300300;中国民航大学电子信息与自动化学院,天津300300;中国民航大学电子信息与自动化学院,天津300300【正文语种】中文【中图分类】TP391.9航空电子组件仿真模型是飞机维修仿真的重要组成单元之一。
飞机维修仿真可满足操作、测试、拆装、排故等一系列维修行为,真实反映人机工程环境,有效增强维修训练效果[1—3]。
飞机维修仿真过程中,各机载系统的功能实现都基于航空电子仿真组件[4—6];并且,航空电子仿真组件也是飞机维修仿真的主要操作对象之一。
但从飞机维修仿真的模型结构角度看,航空电子组件仿真模型的研制各行其是、不统一、甚至不关联,模型重用性差。
因此,针对航空电子组件建立规范化的模型,对于飞机维修仿真开发具有重要意义。
近些年来,已有部分学者对航空组件建模进行了研究。
邹冰根据飞机环境控制系统中基本组件的工作原理、结构性能参数和部件试验曲线等,利用MATLAB/SIMULINK仿真平台开发了组件的仿真模型[7]。
基于COM航空试验软件组件的设计支超有, 李霞(第一飞机设计研究院,陕西西安 710089)摘要:基于COM设计的航空试验软件组件,不但具有更好的模块化,而且提高了软件的健壮性和可重用性,有利于测试软件开发效率的提高。
文章在讨论COM技术的基础上,提出了基于ActiveX控件航空试验软件组件的开发。
关键词:模块化;面向对象;软件组件;COM;ActiveX控件;接口1 软件模块化及面向对象程序设计随着以计算机技术为基础的虚拟仪器技术的发展,自动测试系统正朝着标准化、模块化的方向发展,出现了标准的测试总线,如VXI、PXI和PCI总线,这样在测试系统的组建时只需选择实现不同功能的标准模块。
硬件的标准化、模块化给测试系统的集成和使用带来极大的方便,那么软件能否象硬件那样设计成标准模块,通过组装实现完整的功能。
从软件的发展历程来看,程序设计方法经历了多次变革,从最初的功能分解法,到结构化程序设计方法,再到至今仍在广泛使用的面向对象程序设计方法。
对于大型、复杂系统的软件设计,从软件模型的角度来考虑,有效的办法就是把一个庞大的应用软件分成多个模块,每个模块保持一定的功能独立性,在协同工作时,通过相互之间的接口完成实际的任务。
由此提出了软件设计中模块化的思想。
软件设计的模块化降低了设计开发的复杂度并使设计步骤清晰,也有利于提高软件健壮性、灵活性、可复用性等。
进行模块化软件设计时应综合考虑模块的可分解性、可结合性、可理解性、连续性及模块保护几方面的要求。
模块的可分解性要求把一个大的、复杂的问题分解为一些小的、简单的问题,通过解决各个小问题来解决大问题;模块的可结合性要求不同时期、不同项目、不同环境下设计的模块应能自由地结合在一起构成新的系统;模块的可理解性要求通过某种方法设计的每个模块不需要参考相邻的模块就能被人看懂;模块的连续性要求通过某种方法设计出的模块,在需求发生变化时只影响一个或少数几个模块;模块保护则要求通过某种方法设计出的模块,在运行期间发生的错误被限制在这个模块内部或仅仅传播到少数几个摸块。
模块化设计时应将上述要求有机地结合起来。
在保证正确性和健壮性的基础上,应尽可能提高软件的可扩充性和可复用性。
通过模块化所实现的软件是由被加工的对象及其在该对象上所实现的有关功能构成。
在开发软件的过程中,一般采用两种方法:其一是把重点放在功能的实现上,其二是把重点放在对象上。
基于功能的软件开发方法中,其功能实现中考虑的“过程”和“操作”是多变和不稳定的,程序结构围绕事先确定好的功能,使得功能的扩充、删除及修改变得相当困难。
这样的软件结构脆弱、功能集中、耦合度大,很难满足可扩充性、可维护性的要求,软件的重用性也差。
面向对象的程序设计中考虑的“对象”和“数据结构”是相对稳定的。
尽管功能是千变万化的,但一个问题空间中的对象一般总能保持其相对稳定不变性,这样围绕对象构造的软件系统也自然会有好的稳定性。
面向对象方法把属性和服务封装在对象中,当外部功能发生变化时,这种封装可以保持对象结构的相对稳定,使得改动仅局限在一个对象内部,减小了因改动引起的系统波动效应,因此,面向对象方法开发的软件具有易于扩充、修改和维护的特性。
另外,面向对象方法具有的继承性和封装性也支持软件重用,并且易于扩充,能较好地适应复杂大系统不断发展和变化的要求。
模块化的思想和面向对象的程序设计方法为开发大型、复杂测试软件奠定了强有力的基础,而COM(即组件对象模型)正是上述思想和方法的成功实践。
2 基于COM组件化程序设计在组件化程序设计中,按照模块化的思想把航空测试软件划分成一些组件,这些组件可以单独编译,甚至单独调试和测试。
当所有的组件开发完成后,把它们组合在一起就得到完整的测试软件。
当外界测试环境发生变化或者用户的需求有所更改时,不再对所有的组件进行修改,只需对受影响的组件进行修改,然后重新组合得到新的升级测试软件。
所谓组件是软件的基本量子。
它具有一定的功能,可插用,同时又是可维护的,具有标准化的、可重用的公开接口。
以组件为发布单元的对象模型,可以使各软件组件用统一的方式进行交互。
也就是说组件可以在二进制级别上进行集成和重用,能被独立地生产、获得和配置。
在Windows系统平台上,一个COM组件可以是DLL文件形式,也可以是EXE文件形式。
一个组件内可以包含多个COM对象,并且每个COM对象可以实现多个接口。
从客户方面看,COM模型中的对象是不可见的,客户请求服务时,必须通过接口进行。
每一个接口由一个128位的全局唯一标识符GUID来标识,客户通过GUID获得接口指针,再通过接口指针调用其相应的成员函数。
软件组件的通讯是通过接口进行的,所以接口是软件组件设计的基础和关键。
这就要求软件组件遵从统一的标准,同一软件中的组件使用同样的接口标准,以便保证软件组件之间可靠的通讯。
接口是一组逻辑上相关的函数集合,实质是包含了一组函数的数据结构,通过这组数据结构,客户代码可以调用所有组件对象的功能。
接口中所定义的成员函数是组件对象提供给客户程序的所有信息,客户程序就是利用这些函数获得组件对象的服务。
接口结构如图1。
图1表明,客户程序通过指向接口数据结构的指针来调用接口成员函数。
而接口指针实际上又指向另一个指针pVtable ,指针pVtable 指向接口函数表vTable ,接口函数表包含着一组函数指针,每个函数指针为4个字节长,并且与对象的具体实现连接起来。
通过这种方式,客户程序只要获得了接口指针,就能调用到对象的实际功能。
上述对象和客户之间的相互作用是建立在客户/服务器模型基础上的,客户/服务器模型的一个很大优点是稳定性和可靠性好、软件的可扩展性更好。
而稳定性正是COM 模型的目标,尤其对于跨进程的程序通讯,稳定性更会带来性能上的高可靠性。
COM 除上述面向对象的特性和客户/服务器的两个基本特性外,还包括语言无关性、对进程的透明性和它的可重用机制。
详细介绍可参见文献[1]。
3 航空试验测试组件设计通常,航空试验测试软件系统需完成如下功能:人机界面接口功能、数据采集记录功能、图形曲线显示分析功能、远程网络化测试功能、参数辩识和数学建模功能、数据库存储管理功能。
上述功能分别以软件组件的形式实现,再进行集成组合得到航空试验测试组件软件。
如图2。
上述各功能组件的设计是基于COM 进行的,COM 组件软件的实现可以选择多种方法,其中ActiveX技术是选择之一。
ActiveX 技术是宽松定义的、基于组件对象模型(COM )的技术集合。
它是一个二进制标准,包含了一系列规则,能构建与语言无关的、面向对象的应用图2 航空试验测试组件软件程序,包括ActiveX自动化、ActiveX控件和ActiveX文档。
航空试验测试软件组件设计的实质就是ActiveX控件的开发。
在ActiveX控件形式的航空试验测试组件的开发中,由于LabWindows/CVI提供了满足虚拟仪器测试软件开发的各种功能,所以以LabWindows/CVI作为开发环境来开发能满足航空试验测试的ActiveX控件,能丰富航空试验测试组件种类,缩短测试应用软件开发和调试时间,提高测试系统的可靠性。
图形曲线显示分析是航空试验测试中必须完成的一项功能,以该软件组件的设计为例,讨论通过ActiveX控件实现其功能。
图3是图形曲线显示分析对象及其接口。
包括四个接口:IUnknown、ICurveSelectIAxiseScale和IGraph。
IUnknown接口的基础,它提供了COM生存期控制和接口查询,其它接口都是从IUnknown继承而来;ICurveSelect接口提供了选择测量通道的采集数据,对测量数据进行回放,生成多条图形曲线;IAxiseScale图3 图形曲线显示分析对象及其接口接口提供了对X轴和Y轴比例刻度的设置,以及图形曲线滚动操作参数的设置,以便进行图形曲线的细化、放大、平移等操作;IGraph提供了图形曲线分析过程中所要完成的各种操作,如图形曲线标题、日期、注释等信息的显示,通过对图形曲线上光标的操作控制,进行图形曲线的分析、标注,以及硬拷贝打印输出。
ActiveX控件是一系列属性、方法、事件呈现出来的对象。
控件属性可被设置和检索,并且可定义为整数、字符等各种类型值,它类似C++里的成员变量,通常用Get/Set方法来实现获取/设置。
控件方法是用户为执行某种功能而调用的过程,它作为控件的成员函数来实现的。
事件是控件为了表示发生了某类事件而向其父窗口发送的消息。
图形曲线显示分析控件的设计中,利用LabWindows/CVI提供的创建COM应用程序向导,通过在LabWindows/CVI中创建一个ActiveX服务器来实现,其方法如下:(1)新建并打开图形曲线显示分析工程文件。
(2)在Tools菜单运行创建ActiveX服务器向导,在LabWindows/CVI中设置图形曲线显示分析工程为ActiveX服务器工程。
并在通过Tools→Create ActiveX Server向导创建ActiveX服务器工程时完成对目标文件、服务器和服务器高级选项面板的设置。
在目标文件的设置中需要设置规范文件、源文件、头文件和IDL文件的设置;在服务器设置中需完成服务器名称、类型、帮助文件、帮助索引和帮助信息串的设置;在服务器高级选项面板的设置中需完成线程模式、回调函数、版本、命令行中的命令/自动化选择、地区标识、库标识设置。
(3)在Tools菜单运行编辑ActiveX服务器工具,编辑ActiveX接口和对象,并生成ActiveX服务器代码。
分别编辑ICurveSelect、IAxiseScale和IGraph接口,定义每个接口的名称以及生成对应该接口的标识符(IID),设置对应每个接口的帮助信息串和帮助索引标识符。
此外,定义对应当前接口的方法和属性。
ActiveX方法代表一个函数的实现,在ActiveX方法的定义和编辑中,需要定义函数名和设置帮助信息串与帮助索引,以及定义参数变量,函数的参数变量可设置为输入、输出或输入/输出;ActiveX属性用来表示与功能相对应的数据变量,与ActiveX方法一样,ActiveX特性也有相关名称、帮助信息串和帮助索引。
对应ICurveSelect接口的属性实现中用户通过属性设置选择测量通道,对应IAxiseScale接口的属性实现中用户通过设置坐标轴的范围、比例刻度等参数属性完成对图形显示参数的设置,而IGraph接口的方法实现中按照ICurveSelect接口和IAxiseScale接口所设置的参数,对测量数据进行格式化处理,完成图形的显示、标注和最终打印输出。
(4)在源文件中完成主函数、ActiveX服务器函数和回调函数的代码编辑,以及在生成的头文件中检查这些函数的原型。