




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院学位论文 摘要 在轨测试软件是支持通信卫星有效载荷( 即转发器) 参数测试的软件,是通 信卫星在轨测试系统的核心。在轨测试软件运行需要一个非常复杂的硬件环境来 支撑,软件的核心功能就是通过与硬件系统交互,发射和接收测试信号并通过计 算获得卫星转发器的性能参数。目前常见的在轨测试软件都是针对具体的在轨测 试系统的硬件环境而专门设计的,这种设计特点决定了软件本身具有较强的针对 性,软件的通用性很差,这为软件的开发和维护带来极大的不便。因此,研究和 设计可重用的在轨测试软件模型具有重要实际意义。 本文深入研究了目前流行的软件开发技术面向对象技术和c o m 组件技术 对软件重用的支持方法、支持特点和实现途径,同时对在轨测试系统内在的工作 原理进行了深入的研究,提出了一个通用的在轨测试系统逻辑模型,然后在这个 逻辑模型的基础上利用c o m 组件技术和面向对象技术设计出了一组通用的c o m 组件和一个可重用的软件模型,目前该模型已经实现并在实际环境中得到了成功 应用。 【关键词】在轨测试软件重用c o m 里堕坠兰垫釜盔兰坚茎生竖兰! 垩j 耋芝一 a b s t r a c t t h el o ts o f t w a r e s u p p o r t i n gt h et e s to fp a r a m e t e r sf r o mac o m m u n i c a t i o n s s a t e l l i t e p a y l o a d ,i e i t st r a n s p o n d e r s ,i st h ec o r eo fa nl o ts y s t e mf o r a c o m m u n i c a t i o n ss a t e l l i t e ,t h e f u no fa nl o ts o f t w a r en e e d sa v e r y c o m p l i c a t e dh a r d w a r ee n v i r o n m e n t t h ek e r n e lf u n c t i o n so fa ni o ts o f t w a r e a r et ot r a n s m i ta n dr e c e i v ei e s ts i g n a l s a n da c q u i r ep e r f o r m a n c ep a r a m e t e r s s a t e l l i t et r a n s p o n d e r sb yc o m p u t a t i o n t h r o u g ht h ei n t e r a c t i o nw i t hh a r d w a r e c u r r e n tl o ts o f t w a r ei ss p e c i a l l yd e s i g n e da c c o r d i n gt ot h es p e c i f i ch a r d w a r e e n v i r o n m e n to fa n1 0 ts y s t e m t h i sk i n do fs o f t w a r ei sad e d i c a t e do n e s w i t h p o o rg e n e r a l i t y t h u sc a u s i n g al o to ft r o u b l e st ot h es o f t w a r ed e v e l o p m e n t a n d m a i n t e n a n c e t h e r e f o r e ,t h e r ei sa ni m p o r t a n ts i g n i f i c a n c ef o rr e s e a r c ha n d d e i g n o fr e u s a b l ei o ts o f t w a r em o d e l t h i s p a p e r r e s e a r c h e s d e e p l y t h e s u p p o r tm e t h o d ,c h a r a c t e r i s t i c s a n d i m p l e m e n t a t i o nw a y s o f o b j e c t o r i e n t e dt e c h n o l o g y a n dc o mc o m p o n e n t t e c h n o i o g y ,w h i c h a r e c u r r e n t l y f a s h i o n a b l e ,f o rs o f t w a r e r e u s e ,i ta l s o r e s e a r c h e sd e e p l yt h ei n h e r e n tw o r k i n gp r i n c i p l e s o ft h el o t s y s t e m a t m e a n w h i l ea n dw o r k so u tau n i v e r s a ll o ts y s t e ml o g i cm o d e l a sar e s u l t i t d e s i g n e das e to fc o mc o m p o n e n t sa n dar e u s a b l e s o f t w a r em o d e la n d , e v a l u a t e dt h er e u s a b l ec h a r a c t e r s t i c so ft h en e w s o f t w a r em o d e l k e y w o r d si no r b i tt e s t ;s o f t w a r er e u s e ;c o m 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国肪科学技术大学或其它 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所锹的任 何贡献均已在论文中作了明确的说明并表示谢意。 学位论文题目: 垄熟型达基往互重旦搓型煎堑究生亟盐 学位论文作者签名: 垄l 蛊坐查日期:z 。牛年月z 。日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留,使用学位论文的规定,本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅:可以梅学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印,缔印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书) 学位论文题目:一一查熟型遘煞佳互重围搓型鲍璺究皇遮盐 日期:和。q 年午月文。日 日期:0 0 u 乒年乒月庐s 日 , 图目录 图1在轨测试系统硬件组成示意图, 图2 在轨测试软件使用案例框图 图3 测试项目类图, 图4 仪器控制类图 图5 对象包容示意图 图6 对象聚合示意图 图7 在轨测试软件的结构模型 图8 在轨测试系统测试链路图, 图9 测试链路逻辑结构图 图1 0 转发器输入输出特性的测试序列图 第i i i 页 4 5 6 6幻加耵盯引 国防科学技术大学研究生院学位论文 第一章绪论 1 1 课题来源及意义 在轨测试软件是用于通信卫星地面测控站的一种支持通信卫星有效载荷( 即 转发器) 测试的软件,是通信卫星在轨测试系统的核心。它的主要任务是替代人 工操作,完成对通信卫星转发器性能参数的测试工作。 在轨测试软件的运行需要一个较为复杂的硬件环境来支撑,在轨测试软件内 部的功能实现受硬件环境的制约较大,相同功能的软件模块在不同系统中的实现 方法也会存在较大差别,所以目前的在轨测试软件都是为特定的应用环境量身定 制的,软件的针对性很强,一旦系统的硬件环境发生了某些变化,或者将现有的 系统应用到一个新的测试环境中,软件将不能正常工作;另外,随着技术的进步 和对在轨测试系统本身理解的逐步深入,系统中的某些测试方法和处理算法会由 更先进的解决方法来替代,此时就需要对原来软件版本进行升级,由于原来设计 的软件结构是一个整体,必须修改程序中相应的源代码,重新编译以后才能完成 软件的升级工作,工作量和难度都非常大。因此,为了增加在轨测试软件的通用 性和可扩展性,方便软件的开发和维护工作,必须利用先进的软件开发和设计技 术,对软件结构进行重新设计,增加程序构件的可重用性,使其能够满足不同应 用环境的测试要求。 从1 9 9 6 年至今,我们已先后开发完成了两套类似的软件,系统运行情况良好。 另外,从2 0 0 2 年开始的为战略通信卫星服务在轨测试软件的开发工作也已基本完 成,目前正处于现场调试阶段。在多次开发类似的在轨测试软件的过程中和对软 件的维护过程中,我们越来越感觉到研究和设计一个通用的、可重用的在轨测试 软件模型是非常必要和迫切的,因此,在开发战略通信卫星在轨测试软件的同时, 我们就开始着手进行相关技术的研究和知识的积累工作,探索设计具有较高重用 性的在轨测试软件模型的方法,希望设计出一个通用的在轨测试软件,为后续的 类似软件的开发打下一个良好的基础,同时也在软件的可重用性设计方面为其它 软件的开发工作积累经验。 第1 页 国舫科学技术人学研究生院学位论文 本文的内容共分为五个部分。 第一章,从描述在轨测试系统的任务和在轨测试软件的功能出发,详细介绍 了目前在轨测试软件的结构、组成及开发方法,分析了当前的在轨测试软件存在 的不足,最后指明了本文研究的对象、目的和内容。 第二章,对目前支持软件重用的主要技术和方法,特别是面向对象技术和 c o m 技术进行了简要的介绍,并提出结合两种可重用软件技术设计开发可重用的 在轨测试软件模型的新设想。 第三章,在通信卫星有效载荷的测试问题域内,有针对性地分析了在轨测试 软件和在轨测试系统的工作特点,并根据这些特点提炼出独立的、可重用的软件 组件。 第四章,则较为具体地描述了第三章提出的软件组件的设计方法。并给出一 个利用这些组件组装在轨测试软件的组件模型。 第五章,主要是从软件开发和软件维护方面对设计的软件模型进行初步的定 性分析,说明该模型对解决实际问题提供的支持程度。 1 。2 术语说明 在轨测试( 1 0 t ) :i n o r b i tt e s t ,针对入轨后的通信卫星的测试的总称 入网验证( e s v a ) :e a r t hs t a t i o nv e r i f i c a t i o n a c c e p t a n c e ,在允许使用 通信卫星转发器之前对入网地面站进行的技术测试 通信系统监视( c s m ) :c o m m u n i c a t i o ns y s t e mm o n i t o r ,有时也称为通信 业务监视,卫星地面测控站监视和管理用户载波等工作的总称 组件对象模型( c o m ) :c o m p o n e n to b j e c tm o d e l ,微软创建的一种组件通 信标准 i e e e - 4 8 8 :一种标准的仪器控制总线,连接到该总线上的计算机和仪器, 都被分配一个唯一的标识号,设备之间通过标识号进行通信 有效载荷,转发器:本文中的术语有效载荷和转发器表示的意义相同,都 是指通信卫星的转发器,可以互换使用 测试链路:指在轨测试系统中支持测试任务的硬件链路 组件软件和软件组件:组件软件是指按照组件模型而得到的软件,软件组 第2 页 ) ) ) ) ) ) ) ) 吃 盯擂 垦堕塑兰鍪童奎兰塑塞皇墼兰竺笙苎 件是指构成组件软件的每个组件。 1 3 研究现状概况 从第一颗商用卫星“晨鸟”开始,在轨测试系统已经成逐渐成为通信卫星地 面测控站的一个必不可少的组成部分。在在轨测试系统应用的开始阶段,测试工 作往往是由测试人员通过手工操作仪器完成,甚至到目前为止,有些在轨测试还 是采用这种方式。作为一种原始的测试手段,人z _ n 试也能够完成大多数的在轨 测试任务,但是它存在着明显的缺点: 进行次测试的周期较长( 一般需要一周到两周的时间) ; 手工测试有时候难以保证测试精度: 测试过程比较复杂,对操作人员的要求较高等。 因此,随着通信卫星应用范围的不断扩大,国际上各大卫星组织和卫星公司 都一直在研究新的测量仪器,改善测试方法,推出新的测试标准,以求提高测试 精度,缩短测试时间,特别是近年来,随着计算机技术和软件技术的发展以及测 试仪器性能的不断提高,在轨测试系统逐渐地由以计算机为中心的自动测试系统 取代了过去的手工测试,这种工作方式的改变极大地缩短了在轨测试的时间,而 且有效地提高了测试精度。随着我国通信卫星在社会各领域应用的增加,为了促 进和标准化通信卫星转发器的在轨测试工作,我国在1 9 9 0 年制定了国标通信 卫星有效载荷性能的在轨测试方法,而且于1 9 9 6 年在“鑫诺”卫星地面沾出现 了我国第一套自主开发的在轨测试系统和第一套在轨测试软件。 ( 1 ) 在轨测试系统简介 般情况下,通信卫星的在轨测试系统都是由硬件子系统和软件子系统组成。 硬件子系统主要包括天线系统、上下行测试链路( 包括高功率放大器、低噪声放 大器、上下变频器、连接电缆、耦合器等) 、测试仪器、开关矩阵和操作计算机等, 它是在轨测试系统完成测试任务的硬件基础,其主要功能是根据测试项目的需要 组成特定的测试链路,完成测试信号的发射和接收以及测试信号的测量等任务; 软件子系统包括在轨测试软件以及支持测试软件运行的操作系统、数据库系统等 ( 我们称之为软件支撑平台) ,是在轨测试系统的核心。 第3 吹 国防科学技术大学研究生院学位论文 对于不同的通信卫星,或者说对于不同的通信卫星的有效载荷,相应的在轨 测试系统的硬件组成情况会有所差别,但总体结构都是类似的。图1 所示是卫星 地面站在轨测试系统典型的硬件组成示意图。在该系统中,有两组独立的测试链 路,分别对应c 频段和k u 频段的卫星转发器;系统的测试仪器包括频谱仪、信 号源、功率计和频率计等;另外还有一台开关控制器专门控制开关矩阵,搭建各 种测试链路配合完成在轨测试;计算机与测试仪器通过i e e e4 8 8 总线连接起来。 图1 在轨测试系统硬件组成示意图 每 通信卫星 ( 2 ) 在轨测试软件的功能与结构 在轨测试软件是在轨测试系统的核心,其主要功能包括项目测试、 奂i 试链路 校准、测试报告输出、测试结果分析、参数维护和数据管理等。项目测试是在轨 测试软件的核心功能,负责完成所有的在轨测试任务;测试链路校准负责校准地 面测试链路,维护链路参数;测试报告输出用于将测试结果按照特定的格式输出 到打印机上,形成正式的测试报告;参数维护负责与测试相关的系统参数的输入、 查询和修改;测试结果分析主要用于在测试结束后,显示测试相关的一些参数、 仪器设置情况和部分中间值等数据,帮助用户分析测试结果;数据管理功能主要 包括数据的备份、恢复和转储功能。图2 所示是在轨测试软件的典型的使用案例 框图。 第4 页 里竖翌兰丝查叁兰竺窒皇堕兰堡篁兰 开关控铫软件泱| 斌仪器 一一、 、一, 管理j 壁i i 式结果 图2 在轨测试软件使用案例框图 在过去开发完成的在轨测试软件中,软件的开发平台如下: 操作系统:m i c r o s o f tw i n d o w sn ts e r v e r4 0 _ 数据库系统:m i c r o s o f ts q ls e r v e r6 5 软件开发工具:m i c r o s o f tv i s u a lc + + 6 0 _ 仪器控制:s i c l 标准仪器控制库 软件开发采用面向对象的技术,软件的功能被分散到多个规模较小的自定义 类中,例如软件中最重要的类是测试项目类,该类封装了项目测试、结果输出等 功能,对于每个测试项目都从该类中派生出一个子类,实现对应的测试方法、用 户交互界面和测试报告的控制输出;在仪器控制方面,将测试仪器的操作进行了 抽象和封装,定义一个测试仪器类包,统一完成仪器的控制和查询等操作;关于 数据库的存取操作,则是通过o d b c 来实现,对应每一个访问对象( 数据表) 建 立一个r e c o r d s e t 类,通过这些类对象实现数据的存储和读取。 图3 、图4 所示分别是测试项目类和仪器控制类的层次结构图。 第5 页 图3 测试项目类图 图4 仪器控制类图 ( 3 ) 研究现状 2 0 0 2 年,我们着手开始了一套新的在轨测试软件的开发工作,为了提高软件 的开发质量,也同步展开了本课题的研究工作,目前对于基础的c o m 组件技术 的研究已经完成,软件的基于c o m 组件的可重用的模型的设计工作也己进入细 化阶段,并已实现了部分组件的功能,下一步工作就是逐步完善各个软件组件的 接口定义与实现,最终构造一个完整的、可重用的在轨测试软件模型。 1 4 研究目标及内容 本课题的研究目标是通过创建一个可重用的在轨测试软件模型,使根据该模 第6 页 垦堕型竺垫查叁兰丝塞圭堕兰竺兰苎 型开发的在轨测试软件能够最大限度地满足大多数在轨测试系统的需要,达到以 后在开发新的在轨测试系统时,只需进行少量的适应性配置即可使软件正确运行 的目的,从而提高软件的开发效率和开发质量,降低软件的维护难度,减少系统 升级的工作量,并最终形成一个通用的在轨测试软件产品。 本课题的研究内容包括: 1 软件重用技术的研究,包括面向对象技术和c o m 组件技术,分析本课 题应该采用的较佳的解决方案。 2 研究和分析现有软件系统存在的不足以及软件系统与硬件系统之间的 关系,找出影响软件通用性的根本原因。 3 研究在轨测试系统的工作原理和硬件环境的特点,根据在轨测试软件 的工作特点,整理和总结系统的逻辑模型。 4 在系统逻辑模型的基础上,利用软件重用技术,设计一组功能独立的 软件组件,并利用这些组件构造出可重用的在轨测试软件模型。 第7 页 国防科学技术大学研究生院学位论文 第二章软件重用技术与方法 早在1 9 6 8 年在前联邦德国g a r m i s h 举行的n a t o 软件工程会议上,d o u g h m c l l r o y 在其论文“m a s sp r o d u c e ds o f t w a r ec o m p o n e n t ”中第一次正式提出了 软件重用的概念,希望通过代码重用达到软件的大规模生产【4 1 。从那以后在软件技 术的发展过程中,出现了许多重用技术的研究成果和成功的重用实践活动,但是 由于技术和非技术方面的种种原因,重用技术的发展一直没有大的突破,在整体 上对软件产业的影响并不尽如人意,其中最大的障碍还是技术不成熟;近十几年 来,随着面向对象技术的出现并逐步成为主流技术,为软件重用提供了基本的技 术支持,软件重用研究重新成为热点,并被视为解决软件危机,提高软件生产率 和软件质量的最有效的途径【9 】,特别是以c o m 为代表的组件技术的逐渐成熟,软 件开发也可以象硬件工程师集成元器件一样,通过利用可重用的软件组件,方便 快捷地组装完成新的软件系统,软件重用技术真正得到了快速发展。 本章的内容从软件重用的定义开始,分别介绍了面向对象技术和c o m 技术 的主要内容,特别是对软件重用的支持特性进行了较为详细的介绍,最后,结合 在轨测试系统的具体特点,对在轨测试软件将要采用的技术进行了合理选择。 2 1 软件重用的概念 软件重用的概念是随着软件开发方法的不断发展逐步建立起来的。软件重用 是在软件开发过程中避免重复劳动的解决方案,其出发点是新的应用系统的开发 不再采用一切“从零开始”的模式,而是以已有的工作为基础,充分利用过去应 用系统、特别是类似系统开发中积累的经验和知识,从而将开发的重点集中于应 用的特有构成成分【4 】。目前对于软件重用还没有一个准确的形式化的定义,许多研 究人员从各自不同的角度对软件重用概念做了见仁见智的说明,一个比较有代表 性的定义是:软件重用是指在两次或多次不同的软件开发过程中重复使用相同或 相似软件元素的过程p 】。 采用软件重用技术可以带来诸多优点:提高软件生产率,减少开发时间, 第8 页 国防科学技术大学研究生院学位论文 降低开发费用:提高软件质量,开发出来的软件可靠性高;降低开发风险; 简化软件开发流程,使得软件开发易于管理;降低软件维护的难度、工作量 和费用:便于积累软件开发资源,促进软件开发过程的标准化; 软件重用是一个软件开发过程,包括可重用软部件的开发与利用可重用软部 件组装应用系统两个主要过程。软部件的开发和积累是成功实施软件重用的基础, 基于可重用软部件构造应用系统则是软件重用的最终目的,只有解决好了这两个 问题才能实现真正的软件重用。 最初,可被重用的软件构件主要是指程序的源代码构件,而且,源代码构件 的重用也是目前研究最多、应用最成熟的部分。随着对软件重用理解的深入,可 重用构件的概念已不再局限于源代码构件,而是延伸到系统需求、软件架构、技 术文档、测试计划、测试案例以及其它对开发活动有用的所有信息,这些信息都 可以成为可重用软件构件。 尽管从原则上讲,软件重用与软件开发过程中采用那种编程技术没有直接的 关系,无论是采用结构化程序设计方法还是采用面向对象的方法都能够进行软件 重用,但是,如果程序设计方法能够对软件重用提供直接或较好的支持,那么重 用的困难程度也会大大降低,效果也会更好。本文无意去研究软件重用和软件开 发技术的发展历史,只是为了解决本系统的重用性问题,在后续几节中对目前公 认的能够对软件重用提供良好支持的面向对象技术和组件技术进行了研究,分析 两种技术对软件重用的支持特性,便于在后续的分析和设计中使用。 2 2 面向对象技术 面向对象0 0 ( o b j e c t o r i e n t e d ) 方法的提出是软件技术发展史上的一个重要 的里程碑,它的出现为软件重用开辟了一个崭新的时代。面向对象的方法与技术 是一种围绕现实世界概念来构造对象模型的全新的解决问题的方式,它可使软件 人员摆脱结构程序设计的束缚,从应用的角度来思考问题,建立直观形象的应用 模型。 2 2 1 面向对象技术的概念 传统的软件都是由一组被动的数据和一组具有某种功能的过程组成的,其中 第9 页 国防科学技术大学研究生院学位论文 数据表示某种信息,而过程表示对数据的处理。在面向对象技术中,对象是基本 的软件构件,它是在传统的数据结构中加入了一些称为成员函数的过程而构成的, 通过在这些对象之间传递消息构成一个完整的应用软件。 面向对象技术强调对象、类、继承和消息,对象是属性和方法的统一体;类 是一组相似对象的抽象表示;继承是对现实世界的直接反映,用于实现类的层次 划分,直接支持软件重用:消息传递是对象之间以及对象与外部世界关联的唯一 途径。 2 2 2 面向对象技术对软件重用的支持 从面向对象技术与软件重用的关系来看,面向对象技术对软件重用提供了良 好的支持,这种支持主要表现在概念上与方法上的支持【1 1 】。 概念上的支持: 1 1 对象与类 对象是对客观事物实体的描述,对象的描述包括属性和方法两种,属性描述 对象的状态,方法描述对象具备的行为;类是一组对象的抽象,表达一种“概念”。 它们都是系统构成的基本单位,因此可用于表示一个相对独立的问题,并且对问 题的描述比较完整,符合构件的独立性与完整性要求。 2 ) 封装与抽象 封装与抽象是处理对象的两个相反的方面。封装将属性与方法封装为一个独 立豹实体,将内部细节隐藏起来,数据不能被外部随意改变,而只能通过对象闻 消息的传递来相互影响,从而保证了对象与对象类的独立性:而抽象则和对象的 外部状态紧密相关,它通常用来描述对象所表示的具体概念,对象所能完成的任 务以及处理对象的外部接1 3 ,对象的“接1 3 ”将封装和抽象相互联系起来a 3 ) 继承性 面向对象的继承特性是指在原有类的基础上派生( d e r i v e d ) - - 种新类,该类直 接继承了原有类的属性和方法,另外重新定义一些新的属性和方法,以求更为准 确地表示具体的对象,在类的继承过程中,原来的类属于一般类,通常被称为父 类,新生成的类属于特殊类。通常被称为子类。通过继承可以实现类的层次划分, 一般类的属性和方法可被特殊类重用,因此信息及代码的重用可被方便地实现。 第1 0 页 国防科学技术大学研究生院学位论文 继承重用的关键在于组织合理的、具有一定深度的类构件层次结构。 4 ) 多态性 在面向对象技术中,多态性是指在一个类族中,一种方法可以具有多种实现 方式,程序的其它模块可以用同一个函数来处理不同的对象。每个类族都有一些 共同的动作,c + + 中的多态性允许这些共同的动作在每个类中可以有所不同,这 种特性通过多态成员函数来实现的,通常在基类中用关键词v i r t u a l 说明一个多态 成员函数,派生类可以对继承下来的行为以及自身包含的行为进行重新定义。 多态性增加了编程的灵活性,开发人员无需修改父类的代码,只要在子类中 实现了特定对象的方法,通过多态性使得消息可根据发送的对象类选择不同的服 务,使许多服务可以不加修改地被重用到不同的对象。 - 方法上的支持: 1 ) 面向对象分析( o o a ) 模型 根据o o a 的方法,对问题域进行分析,对比用户需求和领域知识,找出本系 统与领域的共性与特性,提取出可重用的构件与专用构件,定义组成问题域的各 种类及对象,最终形成一个描述问题域的o o a 模型。该模型与实现方法无关,因 此更容易被抽象为一个可重用的系统架构,应用于不同系统中;同时o o a 模型中 基本的构件就是类,这种表示方法便于分析构件的可重用性,产生可重用构件。 2 ) 结构表示 一般特殊结构表示允许将可重用构件作为一般类通过继承产生特殊类:还 可通过多态性的表示,使一个相似的类用于其它不同的系统之中。 整体一部分结构通过将规模较大的软件设计为众多较小的软件成分或者构件 来支持构件的重用,其结果是既增大了构件库,也增加了构件的使用范围及灵活 性。 2 2 3 面向对象技术对软件重用支持的特点 面向对象方法作为一种软件开发技术,无论对可重用构件还是应用系统的开 发都提供了良好的支持,是当前首选的软件开发技术。面向对象技术支持的软件 重用方式从本质上讲属于源代码一级的重用,重用形式主要有两种:直接使用源 第”页 国防科学技术大学研究生院学位论文 代码和使用类库。 由于面向对象技术的重用是源代码重用,在使用这种重用方式时对软件的开 发具有一些限制,例如通过类之间的继承关系,从类a 派生得到的类b 可以继承 类a 的方法和属性,但类b 与类a 有着紧密的派生和继承关系,当类a 的实现做 了修改时,则类b 必须重新编译或者需要修改相应的代码,当被重用的构件发生 变化或版本更新时,应用系统需要重新进行编译才能正常运行:另外这种重用方 式也决定了系统的开发工具( 编程语言) 也必须与可重用构件采用的语言一致, 才能成功重用,限制了编程语言的选择范围,降低了构件的可重用度;直接的源 代码重用自不必说,即使是采用类库的重用方式,可重用构件的更新也无法自动 完成,应用系统也必须同时更新。 另外,从十多年的发展历史来看,面向对象程序设计方法也表现出一些缺点。 首先面向对象程序设计方法在处理大型软件系统时,它的颗粒度粗细难以有效控 制。其次,现实世界中的许多问题领域包括影响多个对象的全局性处理,可以由 若干并行或串行执行的步骤组成,这种全局处理的概念并不从属于任何单个对象, 与面向对象的思想不统一,并且缺乏有效的表示方法。因此。需要发展新的软件 技术来解决这些问题,而c o m 就是这些新技术的代表之一。 2 3 组件技术 软件组件技术的发展,主要是借鉴了传统产业的生产模式。传统产业发展的 基本模式是符合标准的零部件( 构件) 生产及基于标准构件的产品生产( 组装) , 其中,构件是核心和基础,“重用”是必需的手段,标准零部件产业的独立存在是 产业形成规模经济的基础【4 】。软件产业要发展并形成规模经济,标准构件的生产和 构件的重用是关键因素,这正是组件技术受到高度重视的根本原因。 2 3 1 组件概念 有关组件,目前还没有一个严格的定义,一般认为:组件是一种能够提供某 种服务的白包含软件模块,它封装了一定的数据和方法,并提供特定的接口,开 发人员利用这些特定接口来使用组件,并使它与其它组件通信,以此来构造应用 系统【5 1 。 第1 2 页 国防科学技术大学研究生院学位论文 按照组件化程序的设计思想,一个大的应用系统被划分成多个模块,每一个 模块保持一定的功能独立性,在协同工作时,它们通过相互之间的接口完成实际 的任务,一个设计良好的应用系统往往被切分成多个组件,将它们装配在一起就 得到了完整的应用系统。当系统的软硬件环境发生变化或用户需求有所改变时, 只需对受影响的个别组件进行修改,即可使应用系统得到升级到。 使用组件开发软件产品具有许多优点,下面列出了几个优点和竞争优势【1 】: 组件易替换:在庞大复杂的企业级应用程序中,如果使用组件技术将程 序分成一个个组件模块,在进行程序修改或版本升级时,就可以只修改 或替换相关的组件,而不影响其它众多的程序组件。组件软件的这种特 点正是我们所需要的。 适应业务需求修改:软件的业务需求通常是不确定的,开发期间甚至在 软件部署运行之后,新的需求也会不断涌现。在基于组件的软件中,可 以将业务规划放在少数几个组件中,只需修改原组件或重新发布新组件 即可。更新是局部的,程序中出现问题的机会也限制在这个局部,使得 程序的调试和测试更为方便。 可实现二进制代码重用:组件之间可以在二进制级别上进行集成和重用, 这样一来只需一次编写代码而多处使用。以后对这个组件进行任何纠正 和修改,也不必改变使用这个组件的应用程序。 有助于并行开发:一个大的应用系统由许多组件组成,这些组件的实现 可以同时进行,只要接口设计正确,则建立这些组件以后它们就能顺利 地组装到一起。 2 3 2 组件对象模型c o m 在组件软件中,将各个独立的软件组件组合在一起的接口是组件软件的关键, 组件的接口是组件之间通信的基础,因此,组件应该遵守统一的标准,即组件必 须使用同样的接口标准才能保证组件之间可以进行通信。至于采用什么样的标准 则取决于系统设计者的选择:如果设计软件时不考虑与其它软件的通信,则可以 使用自定义的接口标准;否则的话,应该使用一些公用的标准【1 l 。c o m ( c o m p o n e n t o b j e c tm o d e l ,组件对象模型) 就是m i c r o s o f t 力推的、也是大家一致认可的组件 第1 3 页 国防科学技术大学研究生院学位论文 标准。 m i c r o s o f t 自9 0 年代初就进行了c o m 的开发,在不断完善w i n d o w s 环境中 对象之间的通信方法的过程中,历经d d e 、o l e l 、v b x 控件、o l e 2 、a c t i v e x 、 c o m + 等技术的变迁,逐步形成了目前的c o m 模型。 c o m 标准包括规范和实现两大部份,规范部分定义了怎样以一种独立于语言 和独立于位置的方式调用对象,怎样定位和标识组件,以及怎样创建对象。实现 部分是c o m 库( c o m 库主要包含在o l e 2 d l l 和r p c s s e x e 中) ,它提供了 系统服务,这些系统服务完成包括定位组件和将组件装入内存,执行进程间通信 等一些实际工作。 在c o m 标准中,一个组件包含一个或多个组件对象( 也称为c o m 对象) , 而组件则是提供c o m 对象的载体,在w i n d o w s 平台上,c o m 对象往往以动态 连接库( d 1 1 ) 或可执行程序( e x e ) 的形式存在。 2 3 2 1c o m 的基本概念 在c o m 规范中,对象与接口是最核心的部分。c o m 对象是c o m 规范中一 个非常活跃的元素,c o m 对象被很好地封装起来,客户访问对象的唯一途径是通 过c o m 接口:c o m 接口是c o m 规范中最关键的元素,c o m 有一个核心接口: i u n k n o w n 接口,每个c o m 组件都必须实现这个接口,而且其它所有接口都必须 从i u n k n o w n 接口派生。 1 ) c o m 对象 c o m 组件模型是面向对象的软件模型,对象是它的基本要素之一,类似于 c + + 中对象的概念,c o m 对象是c o m 类的一个实例。在c o m 规范中,没有对 c o m 对象进行严格的定义,c o m 对象包括属性( 也称为状态) 和方法( 也称为 操作) ,对象的状态反映了对象的存在,也是区别于其它对象的要素;c o m 对象 提供的方法就是对象提供给外界的接口,客户必须通过接口才能获得服务。对于 c o m 对象来说,接口是其与外界进行交互的唯一途径,因此封装是c o m 对象的 基本特征。 c o m 对象的位置对所服务的客户来说是透明的,客户不直接访问c o m 对象, 第1 4 页 国防科学技术火学研究生院学位论文 客户程序通过一个全局标识符进行对象的创建和初始4 j c i 作。在c o m 规范中, 这个全局标识符是一个1 2 8 位的全局唯一标识符g u i d ( g l o b a l l yu n i q u e i d e n t i f i e r ) 。不仅c o m 对象采用g u i o 进行标识,c o m 接口的标识符也是g u i d 。 尽管c o m 对象也是对象。但是c o m 对象的概念与我们熟悉的c + + 的对象 有很大差别: 封装特性 两者都具有封装特性,但其形式有所不同。c o m 对象的数据成员的封装以组 件模块为最终边界,对于对象用户是不可见的;而c + + 对象的封装特性只是语义 上的封装,对于对象用户是可见的。 可重用性 可重用性是面向对象系统的重要特征,因此也是c o m 对象和c + + 对象的共 同特征,但两者的表现形式不同。c o m 对象的可重用性表现在c o m 对象的包容 和聚合,一个对象可以完全使用另个对象的所有功能:而c + + 对象的可重用性 主要表现在类的继承性上,派生类完全可以继承其父类的属性和方法。 虽然c o m 对象和c + + 对象的重用性层次不同、机制不同,但由于在c + + 语 言中,通常用类来实现c o m 组件对象,因此,在c o m 应用开发中,这两种重用 机制都可能用到。在源代码一级使用c + + 的重用性,在组件一级使用c o m 对象 的重用性。 多态性 对态性是c + + 对象的重要特征,正是c + + 对象的多态性,才体现了c + + 语言 描述事物的高度抽象的特征。c + + 对象的多态性通过其虚拟函数实现。 c o m 对象也具有多态性,但这种多态性通过c o m 接口实现。c o m 规范允 许一个对象实现多个接口。因此c 0 m 对象的多态性可以在每个接口上得以实现。 2 ) c o m 接口 在c o m 规范中,c o m 接口是最重要的部分,因为c o m 对象的客户与对象 之间通过接口进行交互,客户请求服务必须通过接口才能进行。c o m 规范的核心 内容就是关于接口的定义。 c o m 接口是一组逻辑上相关的函数集合,其函数也被称为接口成员函数。按 照习惯,接口通常以“l 为前缀,例如c o m 的核心接口i u n k n o w n 。c o m 对象 第1 5 页 国防科学技术大学研究生院学位论文 可以提供多个接口,通过每个接口的成员函数为客户提供各种形式的服务。和 c o m 对象一样,每一个c o m 接口都由一个1 2 8 位的全局唯一标识符g u i d 来标 识。客户通过g u i d 获得接口的指针,再通过接口指针,客户就可以调用其相应 的成员函数。 c o m 接口具有如下特点: 二进制特性:接口规范并不建立在任何编程语言的基础上,而是规定了 二进制一级的标准。任何语言只要具有足够的数据表达能力,就可以对接口 进行描述,从而可以用于组件程序有关的应用开发。 接口不变性:接口是组件客户程序与组件对象之间的桥梁,接口如果经 常发生变化,则客户程序和组件程序也要跟着变化,这对于应用系统的开发 非常不利,也不符合组件化程序设计的思想,所以接口应该保持不变。 继承性:c o m 接1 3 具有不变性,但不变性并不意味着接口不再发展,随 着应用和组件程序的发展,接1 3 也需要发展。不过接口继承只是说明继承, 即派生的接口只继承了基接口的成员函数说明,并没有继承基接口的实现。 因为接1 :3 定义不包括函数的实现部分。 多态性:多态性是面向对象系统的重要特征。c o m 对象也具有多态性, 其多态性通过c o m 接口体现。只要实现了同样的接口,多态性使客户可以 用统一的方法处理不同的对象,甚至是不同类型的对象。 3 ) i u n k n o w n 接1 :3 i u n k n o w n 接口是c o m 的核心接1 3 ,所有其它c o m 接口都必须从i u n k n o w n 继承。i u n k n o w n 接口包含了三个成员函数:q u e r y i n t e r f a c e 、a d d d r e f 和 r e l e a s e 。下面是用接口描述语言i d l 定义的i u n k n o w n 接口: i n t e r f a c ei u n k n o w n t h r e s u l t q u e r y i n t e r f a c e ( 【i n r e f i i dl i d , o u t v o i d “p p v ) : u l o n ga d d r e f ( v o i d ) : u l o n gr e l e a s e ( v o i d ) : ) : 如果用c + + 语言定义i u n k n o w n 接口,形式如下: c l a s si u n k n o w n 国防科学技术大学研究生院学位论文 t p u b l i c : v i r t u a lh r e s u l t s t d c a l l q u e r y i n t e r f a c e ( c o n s tl i d & i i d ,v o i d + 。p p v ) = 0 : v i r t u a lu l o n g _ s t d c a l l a d d r e f 0 = 0 ; v i r t u a lu l o n g _ s t d c a l lr e l e a s e 0 = 0 ; ) : i u n k n o w n 接口的a d d r e f 和r e l e a s e 函数用于控制c o m 对象的生存期。 c o m 对象的客户程序要对对象进行操作,必须保证对象一直存在于内存中;如果 客户程序对对象的操作已经完成,以后也不需要该对象了,则必须及时地把对象 释放掉,以提高资源的利用率。i u n k n o w n 引入了“引用计数”( r e f e r e n c ec o u n t i n g ) 方法,记录客户程序获取c o m 接口的次数,创建时加1 ,引用完减1 ,当引用计 数减到0 时,c o m 对象就把自己从内存中清除掉,从而有效地控制对象的生存周 期。引用计数的实现有三个层次:组件、对象和接口。 q u e r y i n t e r f a c e 是接1 3 :3 查询函数,用于从对象的一个接口获得另一个接口指 针。因为一个c o m 对象可以实现多个接口,在初始阶段,客户程序成功创建c o m 对象后,得到的是一个指向某个接口的指针,如果要获得其它接口的指针,就可 以使用接口查询函数q u e r y i n t e r f a c e 完成接口函数之间的跳转。 由于i u n k n o w n 接1 :3 提供了生存期控制和接1 3 查询这两个非常重要的特征, 所以,c o m 定义的每一个接口都必须从i u n k n o w n 派生。 4 ) 全局唯一标识符g u i d 在c o m 应用中,客户通过一个全局唯一标识符( g u i d 。g l o b a l l yu n i q u e i n d e n t i f i e r ) 进行对象的创建和初始化工作,c o m 对象的g u i d 称为类标识符或 类i d ( c l s i d ,c l a s si n d e n t i f i e r ) 。每一个c o m 接口也是用一个g u l d 来标识, 称为l i d ( i n t e r f a c ei d e n t i f i e r ,接口标识符或接口i d ) 。 g u i d 实际上是一个1 2 8 位的随机数,由于它的空间很大,而且其生成方法 与时间有关,所以,从理论上讲,可以保证g u i d 不会重复或产生冲突。 第1 7 页 2 3 2 2c o m 应用模型 c o m 对象和客户之间的相互作用建立在客户朋臣务器模型的基础之上。c o m 服务器实际上是c o m 组件对象的容器,由c o m 服务器中的组件对象向c o m 客 户提供服务。然而,c o m 不仅仅是简单的客户明最务器模型,有时服务方也需要 其它对象的服务,在这些情况下,一个对象可能既是服务方也是客户方。 c o m 客户和c o m 服务器在建立通信连接之前是没有任何联系的,c o m 客 户并不知道c o m 服务器位于什么地方,甚至连有没有这样的服务器都不知道。 当客户请求某个对象的服务时,客户只需传递该对象类的标识符( c l s i d ) ,由 c o m 库负责找到组件的位置并返回接口指针给客户,然后客户就可以使用接口指 针获得对象的服务。 根
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校班班通管理制度
- 学生休闲室管理制度
- 学生科学生管理制度
- 宅急送薪酬管理制度
- 安全色标志管理制度
- 安生产责任管理制度
- 安装及维修管理制度
- 定制化服务管理制度
- 实训室考核管理制度
- 客服直播间管理制度
- 隐患排查五定制度
- BRCGS全球标准食品安全第9版标准要求
- 北京市初中《体育与健康知识》学业水平考试复习题库及答案
- 教师口语知到智慧树章节测试课后答案2024年秋成都师范学院
- 2024年福州第十一中学招聘笔试真题
- 小学生反分裂课件
- 2025年政府采购代理机构考试题及答案
- 《特种设备安全管理员》考试通关题库(600题 含参考答案)
- 公安警情处置流程
- 油罐换底工程施工及方案
- 大型展会展台搭建管理细则(3篇)
评论
0/150
提交评论