(计算机应用技术专业论文)嵌入式软构件技术的研究与应用.pdf_第1页
(计算机应用技术专业论文)嵌入式软构件技术的研究与应用.pdf_第2页
(计算机应用技术专业论文)嵌入式软构件技术的研究与应用.pdf_第3页
(计算机应用技术专业论文)嵌入式软构件技术的研究与应用.pdf_第4页
(计算机应用技术专业论文)嵌入式软构件技术的研究与应用.pdf_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 软构件技术已经广泛渗透到传统软件的开发之中,使得开发的效率大大提 高,而在嵌入式领域却没有引入类似的技术,研究嵌入式软构件的目的是将软 构件技术应用到嵌入式软件的开发中去。嵌入式开发的现状是硬件平台差异使 模块难以重用,对相同的功能需要基于不同的平台进行重复开发。如果采用构 件技术,提高模块的重用性则可以提高嵌入式开发的效率,降低开发难度和 成本。本文结合国家8 6 3 课题“网络化嵌入式支撑技术”,对嵌入式构件进行了 研究和总结。 本文提出了嵌入式构件的一种实现模型给出了嵌入式构件管理系统的设 计原理和方案。该嵌入式模型是基于构件模型j a v a b e a n s 改造而成的,通过扩充 配置接口和加入嵌入式虚拟机的选择机制,实现了对嵌入式构件硬件特性的配 置。嵌入式构件库管理系统是应用构件时不可缺少的观测配置工具,课题开发 的嵌入式构件库管理系统能够实例化一个构件、对构件进行动态观察和可视化 的配置。 本文详细阐述了软构件的特点和组成要素,然后结合课题所参考的几个模 型进行了实例说明,提出了嵌入式构件模型及其管理库系统的设计方案,并论 述了模型的设计理由,介绍了嵌入式模型和管理库系统的实现。 操作系统的构件化也是嵌入式构件研究的一部分,本文也阐述了操作系统 构件化的研究思路。 关键词嵌入式构件可配制软件重用 构件管理库构件化操作系统j a v a b e a n s 摘要 a b s t r a c t s o f t w a r ec o m p o n e n tt e c h n o l o g yw a sw i d e l yu s e dn o w a d a y si nt h ep r o c e s so f t r a d i t i o n a is o f t w a r ed e v e l o p m e n t , t h u sm a k et h es o f t w a r ed e v e l o p i n gm o r ee f f i c i e n t t h a ne v e r t h ea i mi nr e s e a r c h i n ge m b e d d e dc o m p o n e n t si st oi n t r o d u c es o f t w a r e c o m p o n e n tt e c h n o l o g yi nt h ea r e ao fe m b e d d e da p p l i c a t i o n s i nt h a ta i e a m o d u l e s a r eh a r dt ob er e u s e db e c a u s eo f 也ed i f l e f e n c e sb e t w e e nt h o s eh a r d w a r ep l a t f o r m s t l l e yd e p e n do n s o ac e l t a i nf u n o t i o nm a y b ei m p l e m e n t e dm a n yt i m e si nd i f f e r e n t p l a t f o r m s i f c o m p o n e n to o n c e :p ti si n t r o d u c e da n d e m b e d d e ds o t b , v a r ei sb u i l da b o v e t h e s e t o m p o n e n t s ,t h er e u s a b i l i t y o fe m b e d d e ds o f t w a r em o d u l e sw o u l db e i m p r o v e d 1 1 缸si si m p o r t a n tt ot h ee 筒c i e n c yo fs o f t w a r ed e v e l o p m e n la n d 、杭l i r e d u c et h ec o m p l e x i t ya n dc o s td u r i n gt h ed e v e l o p m e n to fe m b e d d e da p p l i c a t i o n s , w i t ht h eb a c k g r o u n do ft h ew o r ki no u rp r o j e c t “t h ek e yt e c h n o l o g i e si nn e t w o r k e d e m b e d d e da p p l i c a t i o n s ”w h i c hb e l o n g st on a t i o n a l8 6 3h i 曲t e c hp r o g r a m ( 9 6 3 p r o g r a m ) ,t h i sp a p e rm a i n l yf o c u so nt h er e s e a r c ho ft h ee m b e d d e dc o m p o n e n t t e c h n o l o g y , a n dg i v ea n s u m m a r i z eo ft h er e s e a r c h t h i sp a p e rs h o w sam o d e lt oc o n s t r u c tt h ee m b e d d e dc o m p o n e n tw h i c hi s b a s e do nj a v a b e a n sm o d e l ,a n d e x p l a i n sh o w t h eh a r d w a r ep r o p e r t i e si se x p o r t e d a n dm a d ec o n f i g u r a b l ei nt h ec o m p o n e n tb ye n l a r g i n g 廿l ec o m p o n e n ti n t e r f a c ea n d a d d i n gt h em e c h a n i s mf o rt h es e l e c t i o no fj a v ae m b e d d e dv i r t u em a c h i n e a st h e e m b e d d e dc o m l 3 0 n e n tm a n a g e m e n tl i b r a r yi san e c e s s a r yt o o lt ov i e wa n dc o n f i g u r e e m b e d d e dc o m p o n e n t ,t h ee m b e d d e dc o m p o n e n tm a n a g e m e n ts y s t e m ( 1 i b r a r y ) i s d e v e l o p e d t h a tc a ni n s t a n t i a t ea ne m b e d d e d c o m p o n e n t ,v i e wi t sd y n a m i ce f f e c ta n d c o n f i g u r e i tv i s u a l l y m sp a d e rs h o w sh o wt od e s i g nt h es y s t e m t h i sp a p e rd e s c r i b e st h ef e a t u r e so ft h ee m b e d d e d c o m p o n e n t a n dg i v e $ d e t a i l s o fi t sf a c t o r s s e v e r a lm o d e l sr e f e r e n c e da r eg i v e na se x a m p l e st oi l l u s t r a t et h e s e f a c t o r s a n dt h eb l u e p r i n to fb o t ht h ee m b e d d e dc o m p o n e n ta n di t sm a n a g e m e n t i i b r a r yi sg i v e n ,a n d t h er e a s o nt om a k es u c had e s i g ni sd i s c u s s e d f i n a l l y , t h i sp a 口e r s h o w sh o wt oi m p l e m e n tt h ee m b e d d e dc o m p o n e n ta n di t sm a n a g e m e n t l i b r a r y t h e c o m p o n e n t - b a s e do p e r a t i n gs y t s t e m i sa n o t h e ri s s u ei ne m b e d d e d c o m p o n e n tt e c h n o l o g y a r e a t h i s p a p e rp r e s e n t s t h ef o u n d a t i o n a lm e t h o df o r c o n s t r u c t i n gt h ec o m p o n e n t - b a s e do p e r a t i o ns y s t e m k e y w o r d e m b e d d e d c o m p o n e n tc o n f i g u r a b l e s o f t w a r ei t u s ej a v a b e a n s c o m p o n e n tm a n a g e m e n tl i b r a r yc o m p o n e n t - b a s e do p e r a t i n gs y s t e m 1 l 西北工业大学 学位论文知识产权声明书 本人完全了解学校有关保护知彭! 产权的胤定,即:研究生在校攻读 学位期m 论文工作的知t 15 产权m 位属于西北工业大学。学校有权保留并 向国家有关部门或机构送交论文的复印件和电子版。本人允许论文被查 阅和借阅。学校可以将本学位论文的全部或部分内容编入有关数掘库进 行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律注明作 者单位为西北工业大学。 保密论文待解密后适用本声明。 学位论文作者躲哆秘军 2 口d 3 年3 月2 d 日 指导教师签名:趁耋l 艾 矽岁年乡月肋日 西北工业大学 学位论文原创性声明 秉承学校严谨的学风和优良的科学道德,本人郑重声明:所呈交的 学位论文,是本人在导师的指导下进行研究工作所取得的成果。尽我所 知,除文中已经注明引用的内容和致谢的地方外,本论文不包含任何其 他个人或集体已经公开发表或撰写过的研究成果,不包含本人或他人已 申请学位或其它用途使用过的成果。对本文的研究做出重要贡献的个人 和集体,均已在文中以明确方式标明。 本人学位论文与资料若有不实,愿意承担一切相关的法律责任。 学位论文作者签名:三潋 2o o 岁年3 月2 0 日 第一章总述 第一章总述 1 研究背景 软构件( s o f t w a r ec o m p o n e n t ,又译作软组件) 是指封装的、规范的、可 重用的软件模块,是软件系统的一种基本组织单位。它使得软件功能模块得以 重用,使得系统易于调试和集成,提高了软件的健壮性,缩短了开发周期,避 免了重复编程,是现代程序开发中的基本方式。随着程序开发规模的不断扩大, 一个系统要分成若干个子系统、一个子系统又要分为若干个模块来组织,一个 完成复杂任务的应用是由若干个功能单一的模块组合而成。这些被分解的模块 中许多具有通用性,于是它们就被抽取出来,按照一定的规范进行封装,形成 构件,在其它软件系统的开发中重用,这样就降低了开发的难度,并确保了系 统的稳定性和可维护性。软件复用的思想由来已久,刚开始人们复用一些代码 段,如汇编或c 语言的子程序和库函数,面向对象概念发展起来以后,“类” 成了复用的重要手段,但是,虽然避免了许多重复的编程工作,但是以类为基 础的复用手段还是不能满足要求。比如我们复用某一功能模块,首先得有它的 源代码,而后修改程序嵌入这段代码、然后重编译,这依然是较为麻烦的。人 们希望有朝一日复用一个功能模块就像更换一个机器零件那样便捷,虽然是否 成功还有待进一步探索1 ,但是复用思想有了新的发展,对模块复用的要求变为: 知道它能做什么,可以方便地得到它的服务,方便地加入到现有的系统中来, 可以通过一些参数的配置来调整模块的行为模式,而不需要也不必要掌握它的 实现细节,这就是构件的大体思想。 在现今所谓的“后p c 时代”,计算机技术和越来越多的技术相结合,软件 应用从单一的p c 应用向各个领域纵深发展,许多行业都需要计算机来完成特定 的任务,如自动化制造、通讯服务、消费类电子设备等,与桌面应用相比,它 们虽然需要借助计算机的控制,但却不是总要和一台电脑相连接,它们所实现 的功能控制较为单一,而不需要支持多种应用,我们称这一类计算技术为嵌入 式计算技术。关于嵌入式系统,一个完整的定义是:嵌入式系统是以应用为中 心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成 本、体积、功耗严格要求的专用计算机系统。为嵌入式应用编制的程序软件称 为嵌入式软件它和一般软件的不同之处是:由于嵌入式设备资源有限,因而 嵌入式软件对资源分配更加严格程序规模不能太大:嵌入式软件和硬件设备 的关系较密切,平台相关性高;有些应用还要求较高的实时性:嵌入式软件的 健壮性要求也较高。 当前的嵌入式开发手段还较原始。一个应用的开发,往往需要从底层做起, 针对特定设备和c p u 平台编制驱动程序,裁减操作系统,而后基于这些再开发 应用程序。这种开发方式使得嵌入式软件的生产周期长,成本高,软件不通用, 重复开发多。所以,嵌入式开发也面临着软件模块如何重用的问题。 嵌入式应用是多种多样的,不同程序之间差别大、共性小,硬件平台种类 1 重用模块从理论上讲是否能做到象零件那样来使用这是还在研究的问题,参考书目【1 2 l 就这一问 胚进行了讨论。 l 第一章 也比p c 机多,这些因素都使得嵌入式软件的重用比传统软件难度大的多。尽管 嵌入式软件具有多样化、与特定硬件密切相关等特性,但面向特定领域的嵌入 式软件各组成部分,仍然具有其共有特点和构成要素,能够采用构件技术,支 持嵌入应用系统的高效开发,关键之处是软构件要充分刻画和适应嵌入系统的 资源有限、硬件相关等固有特性。 2 研究综述 本文所做的工作,就是结合8 6 3 课题“网络化嵌入式支撑技术”,研究了 嵌入式软构件技术,提出了种嵌入式构件的实现模型,并且开发出了亟向嵌 入式软构件的管理库,以提供嵌入式软构件的管理和定制功能。 嵌入式软构件是本课题组所提出的一个新概念。国内尚无提及的文献,国外 有近似的思想和一些研究工作,但没有成熟的理论和规范产生。在研究和摸索 中,我们提出了一种基于j a v a b e a n s l 的嵌入式构件的实现模型,具体是将 j a v a b e a n s 的属性和对属性的操作作为嵌入式构件规范的核心,利用j a v a 的对 象续列化机制实现嵌入式构件的定制保存,通过对它的配置内容的扩充,使它能 够完成对硬件特性的刻划。这些技术的含义是什么我们是如何借鉴的,我们 是如何扩充的,这将在以下相关章节详缅介绍。基于嵌入式构件上的探索结果, 我们对s u n 公司示例性工具软件j a v ab e a n sd e v e l o p m e n tk i t ( b d k ) 进行了改 造扩充,完成了嵌入式构件库的开发。 嵌入式搡作系统的构件化研究也是嵌入式构件的研究内容之一,因为时间、 精力所限,只对研究思路和研究方法进行了探索,并在文中论述。 3 论文结构 本文共分五章第一章是研究综述,第二章介绍了构件概念的具体内容, 并附以实例来说明构件的实现模型,提出嵌入式构件和构件库的设计,论述了 设计理由,第三章介绍构件管理库,第四章介绍嵌入式构件的封装方法第五章 论述了嵌入式操作系统构件化的思路。 j a v a b e a n s 是s u n 公司提比的一种软构件模型。对它及下文所述的b d k 介绍请参阅参考书目【9 l 和【1 6 1 2 第二帝研究内容和方案论述 第二章研究内容和方案论述 1 研究内容 1 ) 嵌入式系统和嵌入式软件 嵌入式系统是指以应用为中心、以计算机技术为基础、软件硬件可裁剪、 适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 嵌入式应用的体系设计,可以追溯到单片机体系的设计单片机所能完成的是 单一应用,不需要并发执行的任务,而随着控制规模增大和控制复杂度提高, 就需要具有支持并发运行、可以调度多任务等性能的高级执行环境,因而就有 了嵌入式操作系统的这一层次。通常,在嵌入式系统中都要有一个嵌入式的操 作系统作为系统管理的底层支持,在其上运行完成特定功能的程序,这样的程 序叫做嵌入式软件。可见,嵌入式系统的发展,和p c 机的发展是相似的。本章 的讨论对象是嵌入式软件的构件化问题,对于操作系统的构件化讨论,在第五 章中详述。 尽管在体系结构的层次布局上,我们可以用p c 机来类比说明嵌入式系统, 但是二者的差别也是显著的。比如在内存使用上,几百k 对p c 机来说不算什么, 而对于嵌入式系统则是绝对不可忽略的数目,这是在资源使用上的差别:又如 程序的异常可能对p c 应用无所谓,重新运行一次就行了,而这样的程序如果控 制着某台生产设备的运转,程序随便的异常中止可能会造成很大的损失,这是 在程序健壮性上的差别。具体来说,嵌入式软件有以下一些特点: 软件体系结构设计上对嵌入式特性的考虑。 某些嵌入式特性在软件的系统级设计时就需予以体现和落实,比如如果是 一个处理实时任务的软件,那么它的系统结构就要设计得使模块间交互尽量高 效,如采用函数调用方式而非消息传递机制。 突出了硬件驱动在整个系统中的地位。 这表现在两个方面:一是嵌入式软件具有多样的硬件驱动模块。这是由品 种繁多而又千差万别的嵌入式设备决定的。硬件驱动模块完全针对设备,专用 性强。传统的驱动程序主要是在同一设备不同型号之间的差别,差别较小;而 嵌入式驱动模块不仅是型号之蚓豹差别,更主要是不同设备种类之间的差别, 驱动模块的专用性增强了。二是嵌入式软件是面向硬件的。由于嵌入式软件是 应用在嵌入式设备上的应用软件,这就决定了它比传统p c 机上的软件更多地暴 露给用户对硬件的操作接口,因而多数嵌入式软件与硬件联系紧密。 软件开发环境的嵌入式特性。 这里的开发环境是指编程语言、使用的库函数。开发环境的嵌入式特性也决 定着软件的嵌入式特性。比如j a v a 为嵌入式j 丌发而推出的j 2 m e ,它是j 2 s e 的 嵌入式版本,用于丌发出运行于嵌入式设备的j a v a 嵌入式软件。又如q t 库的 嵌入式版本q t e m b e d d e d 库。 软件设计时对资源有限的充分考虑。 这一点是嵌入式软件和传统软件主要的区别之处。嵌入式设备大多资源有 限,软件设计时是否要对此充分考虑是软件是否能在嵌入式上设备运行的关键 环节。 第二章研究内容和方案论述 软件代码健壮性要求进一步提高。 如前边例子所述,嵌入式应用对软件的健壮性提出了更高的要求,追求更 高的健壮性是嵌入式软件的特点之一。 在设计嵌入式软构件时,要充分考虑和体现这些特点。 2 ) 软构件 软构件( s o f t w a r ec o m p o n e n t ,又译作软组件) 是指封装的、规范的、可 重用的软件模块。它是预先被独立开发出来的代码通常是由第三方提供,用 以组装进系统,实现重用,提高开发效率。软构件之所以有用,其根本在于它 的重用性它具有比其它复用手段更高更易使用的重用性。软件的重用是软 构件研究的重点内容。可以说软构件要求的重用级别是最高的,我们可以从构 件复用与其它复用方式的对比中明确它的含义。在下一节里,本文详述这一内 容。 软构件有它基本的结构组成,一般包括接口和框架两个部分。如何从代码 中提取接口信息,如何暴露给应用方,这是接口设计的研究内容;框架是支持 构件运行、构件通讯以及构件与系统通讯的底层软件设施,框架与构件如何分 离,框架应该如何实现,这是框架部分要考虑的内容。 我们使用构件时涉及到构件的定制,构件的定制是指配置构件的某些参数, 并使配置结果能够保存下来,以使构件具有不同的行为和服务的技术,构件的 定制技术增强了构件的灵活性和重用性。构件的定制包括配置构件和保存构件 两个方面。 对于大量的构件,需要将其组建成库进行管理,构件库的研究内容包括构 件库的分类,构件信息的获取,构件的测试等。 以上所述构成了本文在软构件方面需要研究的内容。 2 软件的重用手段归纳 重用的目标:软件重用是一个宽泛的概念,比如,可以把拷贝段源代码 称作重用,也可以把动态加载一个插件叫做重用,显然,重用是有层次之分的。 结合对嵌入式构件的使用需求,我认为本文所述的重用应该这样来解释: 1 ) 仅通过接口交互。客户在重用该构件时所关心的是它的功能,它们由接 口暴露出来,无需知道其内部实现。除了调用关系,客户的代码( 调用构件的 代码) 和构件不应有其它的关联,客户代码在实现时不应该依赖构件的内部实 现信息。比如客户代码需要知道构件的大小,才能完成对构件的初始化,如果 双方存在类似这种依赖关系,那重用是“不自由”、“不彻底”的。 2 ) 接口可配置模块可更新。当构件的配置发生改动时,比如u i 界面改 变了或是当构件的实现发生改动时,比如某个功能得到了更好的扩充,客户 代码不需要修改,也刁i 需要与构件重新编译,就能表现出新的配置效果,使用 新的功能。即构件的改动和升级不应对使用它的客户代码有影响,而客户代码 可以直接使用升级后的构件。这使得软件的维护变得简单方便。 为了对软件重用进行更充分的说明,下面对软件重用的各种手段作一个归 纳。这些方法是按复用程度由低级到高级的顺序给出的。 重用源代码 即对代码进行拷贝和粘贴,这种原始的方式只能在极为有限的条件下实现 4 第二章研究内容和方案论述 复用,几乎是没有用处的。 静态链接库 即应用与库程序连接成整体。比源码重用的优点是库( 重用的部分) 以二 进制代码提供,可以使库程序的提供方不再暴露源代码。缺点是库代码如有修 改,则全部应用程序要重连接,而且库的重用方式具有编译器版本及编程语言 的依赖性。这种复用方式也耗费内存资源,因为库代码是在应用程序调入内存 时一同调入,驻留于内存的,有多少进程引用,就有多少它的拷贝。 动态链接库 如果使用动态连接库技术,则直到运行程序时需要调入该库的情况下这 段被复用的二进制代码( 即这个库) 才进驻内存。这种复用方式的优点是减小 了程序相同功能的冗余,也降低内存开销,多进程可以共享一段调入的代码, 不必生成多个拷贝。但它仍未解决对编译器版本和编程语言的依赖性问题。 函数指针表 指针表被定义成一个结构类型: c y p e d e fs t r u c l t a g d r v e n a b l e d a t a f d h p d e v ( $ d r v e n a l b l _ e p d e v ) ( ) : v o l d ( $ d r v d i s a bl e p d e v ) ( ) : h s u r f ( 术d r v e n a b 【e s u r f a c e ) ( ) : ) d r v e n a b l e d a t a ,* p d r v e n a b l e d a t a : 库代码提供一个柄:准格式的函数,该函数的功能是把指向以上结构的表指 针提供给调用他的应用程序。整个应用程序只知道该表的结构而不需要知道里 边的实际方法名,在调用时,应用程序得到表的指针而后只需要用与这些方 法相同的一个格式来调用。格式包括函数参数和函数类型,即s i g n a t u r e 。该方 法的显著优点是函数的引用不是通过函数名而是通过位置和格式来定位,这就 使代码的重用不再受编译器种类的限制,因为一般说来,不同的编译器对同一 函数生成的内部引用名称是不同的,而函数指针表绕丌了使用函数名来调用函 数的做法,做到了函数调用与编译器的版本无关。函数指针的缺点是没有引进 面向对象的思想,刁i 适用于面向对象的编程方式。 v t b l 方法【v jr u a lt a b l e ) 将函数指针表的思想引入面向对象编程中,就得到了v t b l 技术,它是由类 对象来实现的。众所周知,在类中可以定义一组方法,即成员函数。比如下边 的类结构: c l a s sc a n i m a l l o n gm - 一a p p e t i t e : s h o r t 】t l t o le r a n c e ? o r h u m a n s : p u b l i c : v i r t u a lv o i de a t 0 : v i r t u a lv o i ds l e e p ( ) : s 第二章研究内容和方案论述 v o i dr o l l o v e r 0 : v o i dp l a y d e a d 0 : v o idb e a t d r u m s ( ) 在编译器生成类实例时,定义的这些方法都通过一个指针访问指针及这 些函数实际就够成了上述的函数指针表。但是该指针又是通过指向类实例的指 针来引用的。以下图2 1 说明了函数表和对象指针的引用关系: a a 憎t d l 一 i 0 c m _ t :璺晰 皿a 萍* 培 c 州- r 一:r | o 坤o m l t mr “w h m c h m a l :h d “轴d c h m :知i d r t 憎 实例指针实例对象函数表 图2 1 实例对象在内存中的布局及引用关系 接口技术 将类定义成一个抽象基类,那末v t b l 技术就成了接口技术。 如定义如下接口: c l a s si d o g f p u b l i c : v i r t u a lv o i db a r k 0 = 0 : v i r t u a lv o i dc h a s e c a r ( ) = o : v i r t u a lv o i dc h e w u p f a v o r i t e s l i p p e r s 0 = o : ,: 我们用以下具体的c p o o d l e 类来实现i d o g 接口: c l a s sc p o o d l e :p u b l i ei d o g p u b l i c : v i r t u a lv o i db a r k ( ) c o u t ”y i p e ! y i p e ! ” e n d l :) v i r t u a lv o i dc h a s e c a r ( ) e o u t ( ”y o u r eg o t t ab e k i d d i n g ! ” e n d l :) v i r t u a lv o i dc h e w s l i p p e r s0 c o u t ”m m m m i l l mc o o k i e ! e r r r s 1 i p p e r s ! y u m 肺n ! ” e n d l : 6 矾“似” 第二章研究内容和方案论述 : 我们可以编写一个提供给调用者指向i d o g 指针的函数( 这和d l l 的做法 相同) ,然后让调用者用此指针来访问c p o o d l e 的函数功能,这就是接口 技术。它通过接口分离了调用者与实现者的耦合关系,实现者的改动( 如: 增加函数功能) 不影响调用者的代码,调用者也无需知道接口的实现细节。 通过多重继承,可以实现在一个实现类上的多个接口。如以下c p o o d l e 实现了两个接口i d o g $ l a n i m a l : c l a s sc p o o d l e :p u b li c i d o g ,p u b li c l a n i m a l i n t e r f a c ei d o g p u b l i c : v i r t u a lv o i db a r k0 c o u t ”y i p e ! y i p e ” e n d l :) v i r t u a lv o i dc h a s e c a r ( ) c o u t ”y o u r eg o t t ab ek i d d i n g ! ” e n d l : v i r t u a lv o i dc h e w s l i p p e r s0 c o u t ”m m n m mc o o k i e ! e r r r s 1 i p p e r s ! y u m m y ! ” e n d l ;) i a n i m a l p u b l i c : v i r t u a lv o i de a t ( j ( c o u t ( ”y u m m r e n d l :l v i r t u a lv o i ds l e e p 0 c o u t ”z z z z z z z z z z ” e n d l :) v i r t u a lv o i dr o l l o v e r ( ) c o u t ”w h o o o a a ar e n d l : v i r t u a lv o i dp l a y d e a d ( ) c o u t ”i mm e l t i n g w h a taw o r l d ! ” e n d l : v i r t u a lv o i db e a t d r u m s0 c o u t ”a h h h h ! m ee a td r u m s ! y e a h h h h ! ” 对备选包中的各配置项进行选择或赋值,配置工具把选择结果用c d l 记录, 保存在e c c 文件中。 配置工具通过1 c l 将e c c 转化成数条预编译命令,连同源代码一起编译。 编译后得到库文件形式的系统代码。 系统库生成以后,编写自己的程序然后在编译该程序时与库文件进行链接, 生成可执行的系统应用。 3 ) c o m 构件模型 c o m ( c o m p o n e n to b j e c tm o d e l ) ,即构件对象模型,它引入了面向对象的 思想,主要是由对象和接口两部分组成,对象是某个类( c l a s s ) 的一个实例;而类 则是一组相关的数据和功能的定义及实现的组合,接口是一组逻辑上相关的函 数集合,其函数称为接口成员函数。在c o m 规范中,把对象称为c o m 对象,使用 c o m 对象的应用( 或另一个对象) 称为客户,有时也称为对象的客户。对象通过 接口和成员函数为客户提供各种形式的服务类似于c + + 语言中类( c l a s s ) 的 概念,c o m 对象也包括属性( 也包括状态) 和方法( 也称为操作) ,对象的状态 反映了对象的存在也是区别于其他对象的要素;而对象所提供的方法就是对 象提供给外界的接川,客户必须通过接口才能获得对象的服务。对于c o m 对象 来说,接口是它与外界交互的唯一途径,因此c o m 对象具有很好的封装性。c o m 构件由一个或多个c o m 对象组成,构件模型为c o m 对象提供了活动的空

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论