




已阅读5页,还剩90页未读, 继续免费阅读
(计算机软件与理论专业论文)面向数控软件产品线的产品开发技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
捅登 摘要 数控技术是制造业发展的核心力量,数控产品多种多样,不同的数控系统之间 又存在极大的相似性和共同点。本课题就是从数控系统的特点出发,采用目前制造 业普遍使用的软件产品线技术来开发出满足用户特定需求的数控系统软件产品。 基于构件的软件开发方法体现了软件开发方法的趋势,若想真正实现最大范围 的软件复用,就必须要开发出一种跨语言、跨平台且以二进制形式提供的对象部件。 本文采用m s c o m 组件规范,利用c o m 组件技术完成了现有系统中相关模块的组 件打包。鉴于c o m 组件模块化程度高、模块间耦合度低、语言无关、交互能力强等 特点,可以方便地通过对组件的替换和对组件功能的修改和扩充实现数控系统的升 级换代,较好的满足了数控系统软件的开放性要求。 软件产品线是一种基于架构的软件复用技术,是一种有目的、有计划和系统化 的基于构件的软件工程。产品线中的产品是根据基本用户需求对产品线架构进行定 制,将可复用部分和系统独特部分集成而得到的。为此,本文设计并实现了数控软 件产品线需求引导系统和产品集成工具来实现数控软件产品线的产品开发。 合理的构架描述与组件描述对产品的集成至关重要,本文采用刻面分类模式对 数控领域的组件进行分类和组织,对已有的产品族体系结构进行分析,找出体系结 构中可能存在的变化点,并且利用x m l 对产品族体系结构和组件的刻面信息进行了 描述。 产品线核心资源是产品线中产品构造的基础,本课题所涉及的产品线核心资源 主要包括三个部分需求库,构架模板库和组件库。本文利用x m l 中的d o m ( 文 档对象模型) 来实现对x m l 文档的读写操作,完成用户需求的规格化存储,并且利 用x p a t h 技术实现了特定构架下组件的检索与匹配。通过具体的产品集成过程体现 了产品线中三个核心库之间的联系。 本文最后介绍了利用需求引导系统和产品集成工具集成出的数控系统产品范 例,证明了利用软件产品线开发模式开发数控软件产品的可行性。 关键词数控系统;软件产品线;组件:需求引导;产品集成 a b s t r a c t 曼量曼寡皇! 曼曼曼i i - _ i 一_ m 曼曼曼鼍曼 a bs t r a c t n u m e r i c a lc o n t r o lt e c h n o l o g yi st h ec o r ef o r c ei nt h ed e v e l o p m e n to ft h em a n u f a c t u r i n gi n d u s t r y t h ep r o d u c t so f n ca r ev a r i o u s ,a n dt h e r ea r eg r e a ts i m i l a r i t i e sa n dc o m m o n g r o u n d sb e t w e e nd i f f e r e n t n cs y s t e m s f r o mt h e s ec h a r a c t e r i s t i c so fn cs y s t e m ,t h i s p a p e ra d o p t ss o f t w a r ep r o d u c tl i n e s t e c h n o l o g yw h i c hc u r r e n t l yu s e db yt h em a n u f a c t u r i n gi n d u s t r yt od e v e l o pn cs y s t e ms o f t w a r ei n o r d e rt om e e tt h es p e c i f i cr e q u i r e m e n t so fn cu s e r s c o m p o n e n t - b a s e ds o f t w a r ed e v e l o p m e n tm e t h o dr e f l e c t st h et r e n do fs o f t w a r ed e v e l o p m e n t m e t h o d s i no r d e rt oa c h i e v et h eg r e a t e s tr a n g eo fs o f t w a r er e u s e ,i ti sn e c e s s a r yt od e v e l o pak i n do f o b j e c tc o m p o n e n t sw h i c hi sc r o s s l a n g u a g e ,c r o s s p l a t f o r ma n dg i v e ni nt h ef o r mo fb i n a r y i nt h i s p a p e r , w eu s es t a n d a r dm s c o mc o m p o n e n t sc r i t e r i o na n dc o mt e c h n o l o g yt oc o m p l e t et h e c o m p o n e n tp a c k a g eo ft h er e l a t e dm o d u l e si nt h ee x i s t i n gs y s t e m b e c a u s eo fh i r g hd e g r e eo f m o d u l a r i t y , l o wc o u p l i n gb e t w e e nm o d u l e s ,l a n g u a g ei n d e p e n d e n ta n db e r e ri n t e r a c t i v ec a p a b i l i t yf o r c o mc o m p o n e n t s ,t h en cs y s t e mc o u l db ee a s i l y u p g r a d e db yt h em e a n so fc o m p o n e n t s r e p l a c e m e n t ,r e v i s i o na n df u n c t i o n a le x p a n s i o n s o f t w a r ep r o d u c tl i n e si sa na r c h i t e c t u r e - b a s e ds o f t w a r er e u s et e c h n o l o g y i ti sa ni n t e n t i o n a l , s c h e m i n g , s y s t e m a t i ca n dc o m p o n e n t - b a s e ds o f t w a r ee n g i n e e r i n g a c c o r d i n g t ot h es o f t w a r e p r o d u c tl i n e sa r c h i t e c t u r ec u s t o m i z e db yb a s i cu s e r s r e q u i r e m e n t ,w ec a nu t i l i z er e u s a b l ep a r t sa n d s p e c i a l i z e dp a r t st oi n t e g r a t es p e c i f i cn cs o f t w a r ep r o d u c t s t h e r e f o r e ,w ed e s i g n e da n di m p l e m e n t e d t h en cs o f t w a r ep r o d u c tl i n e sr e q u i r e m e n tg u i d a n c es y s t e ma n dp r o d u c ti n t e g r a t i o nt o o l st o a c c o m p l i s ht h ep r o d u c t sd e v e l o p m e n ti nt h ed o m a i no fn cs o f t w a r ep r o d u c tl i n e s r e a s o n a b l ea r c h i t e c t u r e sa n dc o m p o n e n td e s c d p t i o n sa r ee s s e n t i a lt ot h ep r o d u c t si n t e g r a t i o n t h i sp a p e ra d o p t sf a c e tc l a s s i f i c a t i o np a t t e mt oc l a s s i f ya n do r g a n i z ed i f f e r e n tc o m p o n e n t si nn cf i e l d a f t e ra n a l y z i n ga c q u i r e dp r o d u c tf a m i l ya r c h i t e c t u r ea n df i n d i n gv a r i a n tp o i n t sw h i c hm a ye x i s ti n a r c h i t e c t u r e ,w eu s ex m l t od e s c r i b ep r o d u c tf a m i l ya r c h i t e c t u r ea n dc o m p o n e n tf a c e ti n f o r m a t i o n c o r ea s s e t sa r et h eb a s i so fp r o d u c t s c o n f o r m a t i o ni ns o f t w a r ep r o d u c tl i n e s t h e r ea r et h r e e p a r t so fc o r ea s s e t si no u rs y s t e m - - - r e q u i r e m e n tl i b r a r y , a r c h i t e c t u r et e m p l a t el i b r a r ya n dc o m p o n e n t l i b r a r y i nt h i sp a p e r , w eu s ex m l t od e s c r i b et h e ma n da l s ou s ed o c u m e n to b j e c tm o d e lt o i m p l e m e n tt h er e a d i n ga n dw r i t i n go p e r a t i o nf o rx m ld o c u m e n t ,a n dt h e nw eu s ex p a t ht oc o m p l e t e - i i i - 北京丁业大学丁学硕l :学位论文 t h es e a r c ha n dm a t c hf o rt h e s ec o m p o n e n t si ns p e c i f i cf r a m e w o r k t h er e l a t i o n s h i po ft h et h r e ec o r e l i b r a r i e si sp r e s e n t e di nt h ep r o c e s so fs p e c i f i cp r o d u c ti n t e g r a t i o n i nt h ee n d ,w ei n t r o d u c e dt h ee x a m p l eo nh o wt ou s e0 1 1 1 r e q u i r e m e n tg u i d a n c es y s t e ma n d p r o d u c ti n t e g r a t i o nt o o l st oi n t e g r a t en cs y s t e mp r o d u c t , w h i c hp r o v e dt h ef e a s i b i l i t yi nu t i l i z i n g s o f t w a r ep r o d u c tl i n e sp a t t e r nt od e v e l o pn cs o f t w a r ep r o d u c t s k e yw o r d sn u m e r i c a lc o n t r o ls y s t e m ;s o f t w a r ep r o d u c tl i n e s ;c o m p o n e n t ;r e q u i r e m e n tg u i d a n c e ; p r o d u c ti n t e g r a t i o n i v 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名:望堑日期:迦:兰:吵 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 第1 章绪论 第1 章绪论 1 1 课题研究背景与研究意义 数控技术作为制造业实现自动化、柔性化、集成化生产的基础,已成为先进制 造技术的重要组成部分,是发展现代集成制造和智能制造的主体技术,也是当今各 种先进制造系统的基础和前提条件。数控系统是数控技术的核心,其功能强弱、性 能优劣直接影响着数控设备的加工质量和效能发挥,对整个制造系统的集成控制、 高效运行、更新发展都具有至关重要的影响。 传统封闭式的数控系统的主要弱点是专用性强,通用性差,软件为制造商所有, 互不兼容,所采用的体系结构、标准、通信协议和数据结构也不相同,这样不便于 系统功能的扩展和各种软件的支撑和更新,软件移植性较差,对机床制造商和用户 的水平也要求较高。然而,随着市场需求的逐步变化,现代制造工业对适合中、小 型加工且具有良好柔性和多功能的机床与制造系统的需求日益增加,原有封闭式体 系结构的数控系统越来越不能满足数控系统用户、数控系统生产厂商和系统集成厂 商日益多变的生产要求【l - 3 】。 而现代制造业的发展,对数控系统又提出了更高的要求:从完成功能上看,一 方面数控系统必须适应d n c ,c a d c m ,f m s 及c i m s 的发展,有一个可以集成 不同开发商提供的软件并适合联网需要的平台;另一方面,随着中小批量生产趋势 目益增强,以及数控系统在多行业应用的日益增多,必须根据不同的用户需求,迅 速、高效、低成本地构筑面向用户的控制系统。这就要求数控系统具有模块化和可 重新配置的特点【4 - 5 】。从使用的角度看,新型数控系统应能运行于各种计算机软硬件 平台上,并提供统一风格的用户交互环境,以便于用户的操作、维护和更新换代。 新一代数控系统开放式数控系统的提出正是适应了数控技术这一发展的需要。 面对数控机床种类繁多,且有很多共性而言,利用软件产品线技术有利于数控 软件开发商和集成商及时、灵活地适应市场变化和竞争需求。软件产品线技术以开 放式的构架、可复用的构件库为基础,通过建立完善的用户需求引导系统,用户可 以最大限度地按照自己的需要选择产品,配备合适的功能部件,实现系统的集成和 扩展。 北京t 业人学t 学硕卜学位论文 软件产品线是一种有目的、有计划和系统化的基于构件的软件工程【6 7 1 。早期的 基于构件的软件工程,着眼于通用构件的研究,如g u i ,o d b c 等。这些通用构件 的应用曾对软件的快速开发有过很大的推动作用,但由于通用构件不包含领域知识, 仅仅复用通用构件还无法达到通过装配方式开发软件的目的。只有把领域知识封装 到领域构件中,通过复用大粒度的领域构件,才能真正实现以装配方式生产软件的 目标,软件产品线正是实现这个目标的先进技术。 随着数控技术朝着开放性不断发展和产品线技术的逐渐成熟,两者的结合成为 当今数控系统发展的趋势。建立一个具有全面的开发功能的数控系统集成开发环境, 可以更好的实现组件重用,从而减少开发人员的工作量,缩短数控产品的开发周期, 促使数控厂商将精力集中到一些特定功能的组件上,提高数控系统领域的分工,从 而实现更好的产品质量和更高的生产率,对我国数控产业的发展具有重大的现实意 义。 1 2 构件与构件库介绍 1 2 1 构件技术 基于构件的软件开发被认为是最有希望的软件开发方法 s - g l 。尽管软件构件在很 多文献中提到,但是对于软件构件,还没有一个确切的统一的定义,目前比较认同 的是:“软件构件是一个具有明确接口、自包含的装配单元,可以独立的部署,并且 可以与第三方软件进行装配 t l o 。 软件构件本身又可分为技术部分和商业部分,也可以叫做技术构件和商业构件。 技术构件为构件开发提供技术支持,如网络通讯、持久性等服务。而商业构件则为 构件开发提供领域知识的支持,如客户、供应商等业务实体及其属性和方法。 研究表明,试图找到像数学函数库那样标准的通用构件,并用它来组装应用软 件是没有出路的,必须从每个领域着手寻找适合该领域的可复用的领域构件。现在 更多的研究兴趣已经从寻找可以在不同领域应用的公共构件转到基于特定领域知识 的构件方面j 。 第1 章绪论 1 2 2 构件库中构件的表示和提取 构件库包含着大量的可复用构件,是支持软件复用的必要设施。随着构件库中 构件数量的增加,复用者在检索和选取构件时会遇到困难,这就要求必须对构件库 进行有效的组织和管理,因为这将直接关系到软件复用的成功与否。 构件功能与封装的领域知识密切相关,目前还没有获得广泛认同的通用构件表 示模型,需要根据不同的领域特点,构造适合该领域的领域构件表示模型。目前已 有的构件表示方法主要有四大类,它们是库分类方法,基于人工智能的方法,基于 形式化的方法和超文本方法。构件的提取方法有关键字提取法、刻面提取法、枚举 提取法和全文提取法 1 2 - 1 3 】。 1 2 3 构件库的研究现状 目前,国内外学术界对构件库及其相关问题进行了一系列深入的研究,取得了 一些进展【6 】。 ( 1 ) 复用库可互操作性组织( r e u s el i b r a r yi n t e r o p e r a b i l i t yg r o u p ,r l i g ) r l i g 定义了构件库之间共享的软件构件和互操作的标准,开发了支持构件库之 间进行软件构件交换的数据模型( u n i f o r md a t am o d e l ,u d m ) 。 ( 2 ) 北大西洋公约组织( n o r t ha t l a n t i ct r e a t yo r g a n i z a t i o n ,n a t o ) n a t o 制定了可复用软件构件库管理指南,阐述了构件库系统相关的问题, 主要是原则性的构件库开发的指导意见。 ( 3 ) s t a r s ( s o f t w a r et e c h n o l o g yf o ra d a p t a b l er e l i a b l es y s t e m s ) 项目 由美国军方支持发起,研究了在构件库之间共享资源和实现无缝互操作的问题, 提出了开放体系结构的软件构件框架( a s s e tl i b r a r yo p e na r c h i t e c t u r ef r a m e w o r k , a l o a f ) 。 ( 4 ) 青鸟构件库管理系统 由北京大学软件工程研究所开发,也是国内比较有影响的构件库管理系统。在 软件构件的描述、管理、存储和检索方面进行了深入研究。 上述组织都是针对通用领域构件库进行的研究,在构件库的体系结构、开发步 骤、构件表示和构件库之间的互操作性等方面都取得了不少成果,为构件库的实际 北京t 业大学t 学硕十学位论文 应用奠定了基础。但由于构件库的结构与领域构件的分类、表示和检索方法密切相 关,通用构件库往往无法满足不同领域对构件库的需求,需要结合领域和领域构件 的特点,对领域构件库进行研究。 1 3 软件产品线技术 1 3 1 软件产品线的相关概念 软件产品线是一种基于架构的软件复用技术,它的理论基础是【1 7 - 1 8 】:特定领域 ( 产品线) 内的相似产品具有大量的公共部分和特征,通过识别和描述这些公共部 分和特征,可以开发需求规范、测试用例、软件组件等产品线的公共资源。软件产 品线定义中,有几个重要的概念: 相关的软件系统 通过软件产品线技术开发出的软件是在同一领域里的软件系统,它们满足不同 用户需要,例如波音7 4 7 、7 5 7 和7 7 7 等系列控制软件可以构成波音飞机控制软件 产品线。 共享的特征 通过软件产品线开发的软件,它们之间的相同和不同之处可以用一组特征来表 述,通过选择特征,也就选择了不同的构件,最后组装成用户需要的软件。 共同的核心组件 通过软件产品线开发的软件具有相同的核心构件,这些核心构件与不同的特征 决定的辅助构件一起组装成用户需要的软件系统。 软件产品线主要由两部分组成:核心资源和产品集合。核心资源【1 9 2 0 1 ( c o r e a s s e t s ) 是领域工程中所有结果的集合,是产品线中产品构造的基础。也有组织将核 心资源库称为“平台”。产品线的核心资源主要包括以下几个方面: 产品线中所有产品共享的产品线体系结构。 新设计开发的或者通过对现有系统的再工程得到的、需要在整个产品线中系 统化重用的软件组件。 第1 帝绪论 与产品线体系结构相关的实时性能模型或者其他体系结构评估结果。 与软件组件相关的测试计划、测试实例以及所有设计文档。 需求说明书,领域模型还有领域范围的定义。 采用的c o t s 组件。 在所有核心资源中,产品线体系结构和组件是用于软件产品线中产品构建 和进化的最重要的核心资源。 1 3 2 软件产品线基本活动和组织结构 软件产品线的活动包括核心资产的开发,即可复用组件的开发以及产品族体系 结构的开发,和利用了核心资产的产品开发,即基于产品族体系结构的,使用可复 用组件的应用系统的集成和组装。通常可以从核心资产构建新产品,或从现有产品 中提取核心资产,核心资产的开发被称为领域工程或产品线开发,利用核心资产的 产品开发被称为应用工程或产品开发,二者均需要组织和技术管理。这三个基本活 训1 7 2 1 ,2 2 】如图1 1 所示。 产品线基本活动的主要特点是: ( 1 ) 循环重复是产品线开发过程的内在特征,也是核心资源开发、产品线开发 以及核心资源和产品之间协作的特征; ( 2 ) 核心资源开发和产品开发没有先后之分; ( 3 ) 管理活动协调整个产品线开发过程的各个活动,为产品线的成败负责; ( 4 ) 核心资源开发和产品开发是两个互动的过程,三个活动和整个产品线开发 之间也是双向互动的。 北京工业大学t 学硕十学位论文 _-,i _i i ! i 量曼曼曼曼皇曼曼曼曼曼曼皇曼量曼曼曼舅 产品线开发 产品开发 图1 - l 软件产品线基本活动 f i g u r e l - 1s o f t w a r ep r o d u c tl i n e sb a s i ca c t i v i t y 既然产品线开发过程分为领域工程和应用工程,那么相应的软件开发的组织结 构也应该有两个基本组成部分:负责核心资源的小组和负责产品开发的小组。这也 是产品线开发与独立系统开发的主要区别。 基于对产品线开发的认识不同以及开发组织背景不同,有很多组织结构方式。 但可以根据是否设立有独立的负责核心资源开发的小组进行分类。其中设立独立小 组的典型的组织结构如图1 2 所示。这是最早在洛克西德马丁( l o c k h e e dm a r t i n ) 公 司使用的一种组织结构【2 3 2 4 】。其中,管理者控制体系结构组和配置管理组,负责整 个产品线的管理活动;体系结构组监控核心资源开发组和产品开发组以保证核心资 源和产品能够遵循体系结构,同时负责体系结构的进化;配置管理组维护每个资源 的版本。体系结构组、核心资源开发组与负责独立产品开发的小组互相独立。 图1 2 典型产品线开发组织结构 f i g u r el - 2t y p i c a lp r o d u c tl i n e sd e v e l o p m e n ts t r u c t u r e 管理 第1 章绪论 1 3 3 本课题中的产品线组织结构 对于本课题所要建立的数控领域软件产品线,其组织结构如下图所示: 产晶 数据库管理员 应用囊雾集成 图1 - 3 数控软件产品线组织结构 f i g u r e l 一3o r g a n i z a t i o ns t r u c t u r eo fn cs p l ( 1 ) 产品线管理员 员 产品线管理员包括数据库管理员和应用产品集成维护人员两部分。产品线 管理员主要负责产品线的组织和技术管理工作,尤其是对产品线中核心资产库 的建立和维护,包括产品线中的组件以及其他相应文档的管理,还有后期的w e b 发布和维护。 ( 2 ) 核心资产开发商 北京t 业大学工学硕i :学位论文 产品开发商包括产品构架设计师和构件开发人员。产品构架设计师主要负 责产品线领域分析、领域构架设计与领域构件的划分。构件开发人员主要负责 数控系统中特定构件的设计与开发,主要是利用产品线核心资源进行的数控产 品开发。 ( 3 ) 数控系统集成商 数控系统集成商包括构件装配人员和定制开发人员。数控系统集成商的主 要职责是根据应用系统的要求进行需求分析和用户需求的获取,并把用户的需 求信息存储在核心资源的需求库中加以保存。在产品集成阶段,集成商根据用 户具体的需求信息进行构架的适配,组件的检索与匹配,以及组件的打包和下 载,最后把各个独立的组件整合成完整的数控软件产品。对于资产库中没有满 足用户要求的构件,由定制开发人员对该类构件重新进行定制开发。 ( 4 ) 产品测试评估专家 产品测试评估专家包括组件级测试评估人员和应用系统级测试评估人员, 他们的主要职责是对构成产品线中的核心资源进行测试,以保证产品线的开发 得以顺利进行。其中包括对产品线构架模板的测试,对不同功能的独立组件的 测试,对集成商集成出的数控软件产品的测试,以及由于组件开发可能来自第 三方,所以在加入资源库前有必要进行测试评估等等。 ( 5 ) 数控机床终端用户 数控系统集成商集成出来的数控软件产品最终要交付给用户使用,终端用 户利用该产品来实现他们在集成阶段提出的与数控产品具体需求所对应的功 能。 1 3 4 软件产品线的研究现状 国内在软件产品线方面的工作仍停留在构件级别的重用上,知名的有国家8 6 3 项目支持的由北京大学信息科学学院软件研究所软件工程研究室,和北京大学软件 工程国家工程研究中心共同研发的公共软件构件库,国家8 6 3 计划和上海市科委资 助的上海构件库。 第l 幸绪论 曼皇曼曼曼曼鼍鼍曼皇皇量曼詈曼舅舅i _ ! 一, n , n m ! _ mn u n 一_ 蔓曼曼曼曼曼量曼曼寡 北京大学软件工程国家工程研究中心在软件工程基础理论和软件复用与软件构 件技术等方面取得了一定的成果,在软件产品线方面也在做相关的研究。其开发的 青鸟软件产品线系统1 6 , 2 5 , 2 6 】,采用面向对象范型,从两个维度确定领域及其子领域, 在分析阶段关注共性处理,在设计阶段关注个性处理,并采用构建领域模型和d s s a 来组织领域构件库。 图1 - 4青鸟软件产品线规划和管理活动 f ig u r e l 。4l a y o u ta n dm a n a g e m e n ta c t i v it yo fj a d eb i r ds p l 1 4 课题主要研究内容 本课题是在课题组现有研究成果的基础上,抽取出数控系统产品族体系结构框 架,利用软件产品线技术实现数控系统的产品开发。在整个产品线的开发活动中, 我的工作主要是利用产品线的核心资产进行数控软件的产品开发,研究重点在软件 产品线的需求引导和集成组装部分。 本课题主要研究以下内容: 对数控领域进行领域分析,确定数控软件产品线范围,对原有系统的体系结 构进行适应性修改,并用可扩展标记语言( x m l ) 来描述产品族体系结构框架,记 录构架信息。 根据确定的产品族体系结构,根据不同系统之间的共性个性信息,对系统进 北京t 业大学t 学硕上学位论文 鲁曼曼曼曼曼皇曼曼曼曼曼! 曼曼量曼寰i 一_ i 曼曼曼曼曼鼍曼曼皇曼曼曼曼曼曼曼曼曼曼曼曼曼曼曼 行模块划分,打包成c o m 组件形式。 明确用户需求范围,建立用户需求引导系统,完成用户需求的收集和存储。 按照体系结构模式实例化规则,根据获取的用户需求,在构架模板库中选择 合适的产品族体系结构,实现用户对系统的个性化定制。 采用组件的刻面分类方法,利用x p a m 技术完成组件的匹配和检索。 第2 章c o m 组件技术概述 第2 章c o m 组件技术概述 数控系统软件的开放性可通过软件重用来实现。然而,不同的软件开发方法获 得软件的重用性差异很大。若想实现最大范围的软件复用,必须要开发出一种跨语 言、跨平台且以二进制形式提供的对象部件,软件组件正是这种新型的对象部件。 本章首先阐述了基于组件的软件开发方法和m s c o m 组件的规范,并且利用 c o m 组件技术完成了现有系统中相关模块的组件打包。通过与面向对象等传统软 件开发方法进行对比,这种基于c o m 技术的组件开发方法确实为开发数控系统软 件带来了很多优势。 2 1 基于组件的软件开发方法 传统的结构化程序设计方法着眼于局部的程序结构,难以用发展的眼光指导应 用程序设计,因此,采用结构化程序设计方法实现软件重用收到很大限制。面向对 象的程序设计方法采用继承和封装支持软件的重用,但面向对象软件的重用仅仅局 限在源代码级,与开发语言和相应的编译环境有关,不能独立于开发语言,软件重 用的范围和实用性也受到很大限制。组件化程序设计方法继承并发展了面向对象程 序设计方法,它将对象技术应用于系统设计,对面向对象程序设计过程作了进一步 的抽象,组件化程序设计方法强调真正的软件重用和高度的软件互操作。 2 1 1 组件的概念和特点 一个应用程序可以分成多个功能模块,各个模块保持一定的功能独立性,在协 同工作时,通过模块之间的接口进行信息交互,共同完成系统的一定功能,这样的 功能模块称为组件。通常可以认为组件就是可以插入到不同应用程序中的一段二进 制代码【z r l 。关于组件有下面一些属性【2 8 。2 9 】: ( 1 ) 组件是软件的基本量子,是软件开发中一个可替换的软件单元,它具有一 定的功能,可插用、可维护。组件封装了设计决策,并作为一个大单元或大系统的 一部分和其它组件组合起来。 ( 2 ) 组件可被分离出来,具有标准化的、可重用的公开接口。 北京t 业大学t 学硕十学位论文 ( 3 ) 组件是具有特定功能的、能够跨越进程边界,实现网络、语言、应用程序、 开发工具和操作系统的“即插即用 的独立对象。 ( 4 ) 组件以接口为核心,组件的接口和组件的实现相分离。组件的接口对外提 供组件功能的调用方法,组件的实现被封装在组件的内部,组件的用户不用关心组 件的具体实现,只需理解组件的功能及其通过接口的调用方法。 组件通常具有以下几个重要特征: ( 1 ) 组件之间可以在二进制级别上进行集成和重用。在一个成熟的应用系统 中,组件往往是来自不同的软件开发商,在这种情况下,要获得全部或者部分的源 代码几乎是不可能的,二进制级别上的集成和重用可以在不需要获得软件的源代码 情况下进行组件的集成和重用。 ( 2 ) 组件具有封装性,组件可以被独立地生产、获得和装配。与环境和上下文 无关是组件封装性的体现。 ( 3 ) 组件的接口必须使用与组件实现无关的语言进行描述,而且必须实现接口 的自我描述。组件的接口不依赖具体实现,将接口与实现分离彻底消除了接口用户 和接1 3 实现者之间的耦合关系,增强了信息的封装程度。 2 1 2 组件化程序设计方法及要点 一个基于组件的应用软件可由若干个可重用的组件组成,组件是应用软件构造、 开发、装配、维护的基本单位,用户可以选用不同的组件构建应用软件系统,在对 应用软件进行维护和修改时只需以组件为单位,对其中某些组件进行修改或用新版 本组件替换即可。 组件的产生和装配构成了组件程序设计的核心,基于组件的程序设计方法使得 软件产品可能用类似搭积木的方法快速地建立起来。软件开发时,从组件库中选用 合适的组件进行适当的修改、裁剪和配置就可以快速地搭建出一个新的应用软件, 这样缩短了软件的开发周期,提高了应用系统的稳定性和可靠性。拥有了丰富的、 功能强大的组件库,应用软件开发工作就可基于可重用组件库进行。 基于可重用组件库的软件开发模式一般包括六个彼此相互联系的过程【2 9 铷1 : 标识过程:标识一个可重用的组件。 第2 审c o m 组件技术概述 鲁曼曼曼曼曼鼍皇曼曼曼曼量曼曼舅曼寡i nil i 一一 i 葛 验证过程:判定可重用组件所声明的功能特性和性能特性。 分类过程:对已有组件根据它们的功能、使用方法、使用范围、接口等进 行说明性的描述,以便日后可以高效准确的检索。 检索过程:利用标准的方法根据指定的属性找到指定的组件。 定制过程:通过对检索得到的组件进行修改、裁剪和配置使其满足用户的 需求。如果组件库中没有相关的组件可以利用,软件开发人员需要自己编写新的组 件,并将新组件装入组件库,以便后续开发进行重用。 组合过程:将已经定制好的组件集成在一起形成应用系统。 这六个过程构成基于组件库的软件开发的基本过程,其示意图如图2 1 所示。 图2 1 基于可重用组件库的软件开发模式 f i g u r e 2 - 1s o f t w a r ed e v e l o p m e n tm o d eb a s e do nr e u s a b l ec o m p o n e tl i b r a r y 基于组件的软件开发从根本上改变了软件的生产方式,它把软件的生产方式提 升到“软件工厂 的模式,不同的“软件工厂 可以根据自身的优势生产不同的“软 件部件,“软件装配车间可以选用来自不同“软件工厂”的产品进行装配集成得 到最终的可供用户使用的产品。基于组件的软件开发方法具有如下一些基本特点: ( 1 ) 实现了二进制级别上的代码重用。软件组件以一种新的方式扩展了代码重 用,提高了软件重用性。在进行软件开发时,无需了解已有组件的源代码,也无需 北京t 业大学t 学硕士学位论文 知道已有组件的具体实现,只需按照组件开发方法对已有软件进行二进制级别的重 用即可。 ( 2 ) 提高了软件的利用率。传统开发方法开发的功能模块受到重用性的限制, 使得对模块的利用率不高,组件可以在程序运行时即插即用,任何应用软件都可以 按照一定的方法使用组件,一旦组件开发完毕,它就可以被多数个应用程序使用。 ( 3 ) 降低了应用软件的复杂程度。软件组件可以通过“拆分”帮助程序员控制 程序的复杂性,可把一个应用程序分成几个组成部分,每一个部分独立进行编码和 调试,这样可降低软件的复杂程度。 ( 4 ) 使应用软件更易于维护和升级。以组件为单位的应用软件的维护和升级只 需进行组件的修改或组件版本的替换即可。 ( 5 ) 有利于对软件开发商知识产权的保护。对软件开发商来说,公开源代码就 意味着放弃了产权,二进制代码重用,相当于将组件封装在“黑匣子中,既重用 了软件又保护了知识产权。 2 2c o m 组件规范 c o m 实际上是一组指导人们如何编程,建立可互操作组件的规范。c o m 的核 心思想是定义一组组件链接的标准和为这一标准提供的实现环境,其它高层的软件 遵照这种标准来构造应用程序,以使符合c o m 规范的组件具有很强的互操作性。 按照c o m 规范实现的组件可以达到较大范围的复用。 2 2 1c o m 的基本概念 c o m ( c o m p o n e n to b j e c tm o d e l ,组件对象模型) 是m i c r o s o f t 公司提出的组 件标准,它定义了组件程序之间交互的标准,也提供了组件程序运行所需的环境。 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 + + 语言中类( c l a s s ) 的概念,c o m 对象也包括属性和方法, 第2 章c o m 组件技术概述 曼曼曼量皇鼍i1 1 _ _ i_i -, i ! 寰 对象的属性反映了对象的存在,也是区别于其它对象的要素;对象所提供的方法就 是对象提供给外界的接口,客户必须通过接口才能获得对象的服务。在c o m 中每 一个对象用一个唯一的对象标识号c l s i d 来标识。 2 2 2c o m 的技术特性 c o m 规范所定义的组件模型,除了面向对象和客户服务器这两个基本特性外, 还具有以下几个重要的特性【2 8 , 3 1 】: ( 1 ) 语言无关性 c o m 规范的定义不依赖于特定的语言,因此,编写组件对象所使用的语言与 编写客户程序所使用的语言可以不同,只要它们都能够生成符合c o m 规范的可执 行代码即可。c o m 标准与面向对象的编程语言不同,它所采用的是一种二进制代 码级的重用。c o m 对象把o o p 语言中的对象封装起来,并提供一致的接口,使得 它可以被各种不同的语言所使用。 ( 2 ) 进程透明性 在客户服务器模型的软件结构中,运行在客户端的代码和运行在服务器端的代 码,既可以在同一个进程中,也可以在不同的进程中。如果它们运行在同一个进程 中,则由于组件和客户共享了进程的资源,因而无论对于编程还是运行效率都是很 有益的。但实际情况往往并不是这么简单,因为服务程序并不总是作为d l l 被装入 到客户进程中,它也经常是一个e x e 可执行程序,因此,跨进程操作是必须的。 ( 3 ) 封装性 c o m 的封装性与c h 的封装性有着本质的区别。c o m 对象对成员的封装是以 组件模块为最终边界的,对象对用户是透明的、不可见的,客户程序无需关心对象 的具体实现细节与内存布局。而c + + 对象的封装特性只是语义上的封装,对象对于 用户是可见的。 ( 4 ) 多态性 多态性是面向对象系统的重要特性,c o m 对象也具有多态性,其多态性通过 c o m 接口体现。多态性使得客户程序可以用统一的方法处理不同的对象,只要它 们实现了同样的接口即可。 ( 5 ) 可重用性 北京t 业大学t 学硕十学位论文 c o m 规范的可重用性与一般的面向对象语言对象的重用有着本质的区别。对 于c o m 对象的客户程序来说,它只是通过接口使用对象提供的服务,它并不知道 对象内部的实现细节和过程,因此,组件对象的重用性是建立在组件对象的行为方 式上,而不是具体的实现上,这是它同以往重用机制的本质区别即二进制基础 上的重用。 2 2 3c o m 的实现机制 ( 1 ) c o m 的三个基本接口 c o m 接口是c o m 中非常重要的概念,c o m 接口的定义是c o m 规范的核心 内容。c o m 接口是与外界之间的约定,是与外界进行交互的信道。接口可以理解 成包含了一组函数的数据结构,客户代码可以( 也只能) 通过这组数据结构,调用 组件对象的功能,因此,接口实现了客户外部请求与内部实现的分离。c o m 接口 结构如图2 2 所示,客户程序通过接口指针调用接口成员函数,接口指针指向另一 个指向虚函数表( v t a b l e ) 的指针( p v t a b l e ) ,虚函数表中的函数指针与对象的具体 实现联系起来。因此,通过接口指针用户就能调用c o m 对象提供的实际功能。为 区别不同的接口,c o m 中用全局唯一的接口标识号( i i d ,i n t e r f a c ei d e n t i f i e r ) 标识 每一个接口。 p v t a b l e 厂、 l捧n 士匕抖 七b z :l 指针函数l i 恢酐。r i 佰钉 指针函数2 对象内部实现 图2 - 2 c o m 接口结构 f i g u r e 2 - 2c o m i n t e r f a c es t r u c t u r e c o m 组件实际上就是一个c + + 类,而接口则是纯虚类,c o m 对象都是从接口 派生而来的。在c o m 组件中有三个最基本的接口类,分别是i u n k o w n ,i c l a s s f a c t o r y , i d i s p a t c h 。c o m 规范中组件、对象和接口之间的关系可用图2 3 来表示。每个c o m 组件可以只有一个对象或多个对象,每个对象可以只有一个接口或多个接口。c o m 第2 章c o m 组件技术概述 曼i i 。l l i ii_i_i 皇曼曼鼍葛 规定每个对象都必须支持i u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 曹县社工招聘考试真题及答案
- 2025自愿租房合同协议范本房屋租赁合同
- 2025购销铝材合同范文
- 2025经济适用房购房合同范本
- 物体沉浮条件试题及答案
- 2025电子产品销售租赁合同
- 《2025租赁协议及房产出租合同范本》
- 2025肉牛养殖合作协议范本
- 2025酒店员工劳动合同协议书
- 2025年租赁房屋转租协议模板
- 科技论文写作 第2版 课件 第1-5章 科技论文写作概述-英文科技论文的写作
- 2025年教师参加初中英语新教材培训心得体会
- 2025鸡舍建设承包合同书样本版
- 2025年中考化学一轮复习全册1-12单元22个必考实验大全(背诵+默写)含答案
- DBJ04T 447-2023 装配式农村住房建筑技术标准
- 2025年惠州市国资本投资集团限公司招聘29人高频重点提升(共500题)附带答案详解
- 医院未来人才培养与引进策略
- 医院感染管理制度培训
- 【MOOC】研究生学术规范与学术诚信-南京大学 中国大学慕课MOOC答案
- 宁德时代应聘笔试题库及答案
- 旅游公司与导游合作协议书
评论
0/150
提交评论