(计算机应用技术专业论文)ced领域构件复用技术的研究.pdf_第1页
(计算机应用技术专业论文)ced领域构件复用技术的研究.pdf_第2页
(计算机应用技术专业论文)ced领域构件复用技术的研究.pdf_第3页
(计算机应用技术专业论文)ced领域构件复用技术的研究.pdf_第4页
(计算机应用技术专业论文)ced领域构件复用技术的研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)ced领域构件复用技术的研究.pdf.pdf 免费下载

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

文档简介

摘要 软件构件技术、分布式对象技术对传统的系统开发方式产生了巨大的影响, 以其分布性、开放性、可配置性、高效性、易维护性等优点同构件复用技术被认 为是解决软件危机的有效途径。但己有的研究过多地考虑技术上的通用性,使得 这些成果在运用于特定领域时,往往无法达到理想效果。 目前在高校教育领域( c o l l e g ee d u c a t i o nd o m a i n ,简称c e d ) 中,全国许多 高校的各个部门都各自使用自己的子系统,一个部门一个系统,导致各学校、各 部门相互之间信息不一致,给数据交流带来困难,有用的信息不能及时共享,统 计分析。由于c e d 系统软件的开发总是针对特定学校“量身定制”,所以每次都 从头开始,不仅开发难度大、周期长、成本高,而且系统可重构、可扩展性能差, 严重阻碍了c e d 系统的推广和应用。 基于此现状,本文提出了建立基于构件的c e d 系统。研究和探讨把构件技术 与领域工程方法应用于c e d 领域中,使用软件产品线技术进行开发高校教育领域 应用系统。本文分析了构件技术和领域工程方法,讨论了基于构件的软件开发技 术,对c e d 领域的构件及构件管理进行了研究。研究了从c e d 领域中提取软构件的 有关问题。将领域工程应用于c e d 系统的开发,建立c e d 领域模型,然后结合u m l 建模技术,抽取并实现了c e d 领域的部分构件。这种抽取出来的构件,对于开发 c e d 领域应用系统是十分有用的,可以大大减少工作量,缩短开发周期,提高系 统的质量。 技术 关键词:构件复用:高校教育领域;领域工程方法;c e d 领域模型;u m l 建模 a bs t r a c t s o f t w a r ec o m p o n e n ta n dd i s t r i b u t i o n a lo b je c tt e c h n o l o g yh a sg r e a ti n f l u e n c et ot h e t r a d i t i o n a ld e v e l o p m e n tm e t h o d s w i t ht h e i rd i s t r i b u t i o na n do p e n n e s s ,d e p l o ya b i l i t y , h i g he f f i c i e n c y , e a s ym a i n t e n a n c e ,e t c ,t h e ya r ec o n s i d e r e dt ob et h ee f f e c t i v ew a yt o s o l v et h es o f t w a r ec r i s i st o g e t h e rw i t hc o m p o n e n tr e u s e a tp r e s e n t ,b e c a u s e o v e r e m p h a s i z e do nt h eg e n e r a l i t yo ft e c h n o l o g y , t h e e x i s t e n t s t u d ym a d et h e s e p r o d u c t i o n sc a n n o to b t a i ni d e a le f f e c to ns p e c i a ld o m a i n a tp r e s e n t ,i nc o l l e g ee d u c a t i o nd o m a i n ,n a t i o n a le a c hu n i v e r s i t y se a c hd e p a r t m e n t a l lr e s p e c t i v e l yu s e so w ns u b s y s t e m ,w h i c hc a u s e st h ei d e n t i c a li n f o r m a t i o ni sn o tt ob em u t u a l l y i n c o n s i s t e n t ,a n di sd i f f i c u l tt ob ee x c h a n g e d ,a n dt h eu s e f u li n f o r m a t i o nc a n n o tp r o m p t l ys h a r e , s t a t i s t i c a la n a l y s i s b e c a u s et h ed e v e l o p m e n to fc e ds y s t e ma l w a y sf o l l o wt h es t e r e o t y p e o fd e v e l o p i n gs p e c i a ls y s t e m sa i ma tas i n g l ec o r p o r a t i o n , e a c ht i m ew eh a v et o d e v e l o pn e wc e ds y s t e m sf r o ms c r a t c h ,w h i c hc a u s ed i f f i c u l td e v e l o p m e n t ,l o n g p e r i o d ,h i g hc o s t ,a n dt h es y s t e mc a nh a r d l yr e c o n f i g u r a b l ea n db em u s e d i tb l o c k s t h ed e v e l o p m e n to fc e ds y s t e m b a s e do nt h i s p r e s e n ts i t u a t i o n ,t h ep a p e rp r o p o s e s t h ei d e at o d e v e l o p c o m p o n e n t b a s e dc e ds y s t e m t h er e s e a r c ha n dt h ed i s c u s s i o no f t h ec e dd o m a i na p p l i e s t h ec o m p o n e n tt e c h n o l o g ya n dt h ed o m a i np r o j e c tm e t h o d ,u s e st h es o f t w a r ep r o d u c tl i n e t e c h n o l o g yt oc a r r yo nt h ed e v e l o p m e n to fe d u c a t et h ed o m a i na p p l i c a t i o ns y s t e mo ft h e 砌v e r s i 何 t h i sp a p e rh a sa n a l y z e dt h ec o m p o n e n tt e c h n o l o g ya n dt h ed o m a i np r o j e c tm e t h o d ,d i s c u s s e d 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 tt e c h n o l o g y , h a sc o n d u c t e dt h er e s e a r c ht ot h ec e d d o m a i nc o m p o n e n ta n dt h ec o m p o n e n tm a n a g e m e n t 。s t u d yh o wt oe x t r a c tt h es o f tc o m p o n e n t f r o mt h ec e dd o m m n a p p l yt h ed o m m np r o j e c tt ot h ec e ds y s t e md e v e l o p m e n t ,e s t a b l i s ht h e c e dd o m a i nm o d e l ,t h e nu n i f yt h eu m lm o d e lt e c h n o l o g y , e x t r a c ta n dr e a l i z ep a r t i a lt h ec e d d o m a i nc o m p o n e n t s t h i sk i n do fc o m p o n e n ti se x t r e m e l yu s e f u lf o rd e v e l o p i n gt h ec e dd o m a i n a p p l i c a t i o ns y s t e m ,a n di tm a yg r e a t l yr e d u c et h ew o r kl o a d ,r e d u c e st h ed e v e l o p m e n tc y c l e ,a n d e n h a n c e st h es y s t e mt h eq u a l i t y k e yw o r d s :c o m p o n e n tr e u s e ;c e d ;t h ed o m a i np r o j e c tm e t h o d ;d o m a i nm o d e l :u m l m o d e lt e c h n o l o g y i l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得或其他教育机构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表 示谢意。 学位论文作者签名:签字日期:年月 日 学位论文版权使用授权书 本学位论文作者完全了解江西师范大学研究生院有关保留、使用 学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印 件和磁盘,允许论文被查阅和借阅。本人授权江西师范大学研究生院 可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采 用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 签字日期:年月 日 导师签名: 签字日期:年月 日 c e d 领域构件复用技术的研究 己- i吉 j1 日 在国家大力推进信息化建设的浪潮中,教育信息化也在如火如荼的进行着, 传统的教育模式正面临挑战,随着我国高校教学体制改革的发展,根据教育部 办公厅关于开展教育系统办公自动化建设和应用试点工作的通知 教厅综 2 0 0 1 1 4 号 精神,教育部将按照“统一规划,相互协调”的原则,加快教育系 统办公自动化建设和工作的步伐,不断推进和完善各级教育行政部门、各级各类 学校的办公自动化建设,逐步建立覆盖全国教育系统的办公自动化和信息网络, 建立一批管理信息数据库,最终实现教育行政部门和学校办公业务电子化、自动 化和网络化,使教育行政管理、应急指挥和快速反应的能力进一步提高,高效率、 高质量地为各级教育行政部门和学校的管理和决策服务。 信息化不仅影响到高校的主要教学与科研活动,带来传统教学、科研的巨大 变化。同时也会给学校现行的运行体系与管理机制提出挑战,推动它们的变革。 推动这种变革的动力来自两个方面,一个是信息化带来传统教学、科研模式的变 化,需要新的管理机制;另一个是以信息技术为手段的校务管理,也需要新的机 制。 在软件开发技术方面,尽管当前社会的信息化过程对软件需求的增长非常迅 速,但目前软件的开发与生产能力却相对不足,这不仅造成许多急需的软件迟迟 不能被开发出来,而且形成了软件脱节现象。自2 0 世纪6 0 年代人们认识到软件 危机、并提出软件工程以来,己经对软件开发问题进行了不懈的研究。近几年来, 软件研究人员逐步认识到:要实现软件的工业化生产方式,达到软件产业发展所 需的软件生产效率和质量,软件复用是一条切实可行的途径。软件复用的概念最 初于1 9 6 8 年在北大西洋公约组织( n a t 0 ) 软件工程会议上提出,并同时制定了一 整套软件复用的指导性标准,引起了人们广泛关注。软件复用是指重复使用“为 了复用目的而设计的软件”的过程,其出发点是以现有的工作为基础,充分利用 从过去的应用系统开发中积累的知识和经验( 如需求分析结果、设计方案、源代 码、测试计划及测试案例等) ,从而将开发的重点集中于应用软件中的特有构成 成分。软件复用自从提出后己经得n - r 广泛的应用,软件构件技术是支持软件复 用的核心技术之,近几年来发展迅速并为越来越多的开发组织所采用,从而使 构件得到了更为普遍的关注。 当前,构件技术被学术界和产业界视为实现复用的主流技术。与其它复用方 式相比,基于构件的复用更为可行、实用。构件复用技术的广泛应用将促进软件 产业的变革,使其重组分工,软件构件生产必将成为独立的行业而存在。构件技 硕士学位论文 术和领域工程技术的发展对我国高校教育信息产业的发展将是一个很好的机遇。 2 c e d 领域构件复用技术的研究 第一章绪论 1 1c e d 领域建设现状和发展趋势 1 1 1c e d 领域软件建设现状 近年来我国高校信息化建设也取得了巨大的成就,所有高校都接入了 i n t e r n e t ,绝大部分高校建成了自己的校园网,主干网络达到1 0 0 m 甚至1 0 0 0 m , 高校信息化体系初现规模;主管部门和高校自身非常重视信息化建设,人、财、 物各方面的投入很大;制定了中长期规划,信息化的内容建设逐渐丰富。 然而在信息化建设历程中,各高校信息化建设初期普遍注重硬件建设。在软 件建设方面,由于各高校的具体情况,有的学校自己开发某些功能模块,有的学 校聘请公司开发某些功能模块;由于资金原因,高校普遍缺乏统一安排设计,从 而造成这些功能模块是局部的、独立的、离散的特点。各学校信息系统的差异性 较大,数据结构、系统功能也不相同。 随着高校数字化校园建设的不断深入,各个高校购买或者自行开发了许许多 多的管理信息系统对学校的各个信息,包括后勤、学生、职工、财务、图书等等 进行管理,上述应用子系统的问题和弊端随着信息化的加深不断暴露出来。各应 用系统缺乏数据交换标准,数据重复冗余,导致各部门、各学校相互之间信息不 一致,给部门、学校之间的数据交流带来困难,有用的信息不能及时共享,统计 分析、决策支持很难进行;用户操作、获取信息非常困难,安全性、可靠性也得 不到保证等等。而且这些软件的开发要花费巨大的人力和物力。由于这些软件由 不同的公司开发,开发这些软件几乎是从零开始,而这些软件的功能基本上大同 小异,因此花费在这些软件上的人力和物力有很大一部分浪费在重复开发上面。 1 1 2 高校教育软件发展趋势 子系统整合化,目前还有很多学校的部门各自使用着自己购买或者开发的软 件,这些软件存在着相互独立、数据不统一、重复输入等问题,这些给高校管理 带来的很大的麻烦。因此,目前越来越多的高校已经意识到这个问题,很多高校 硕士学位论文 目前已经在着手解决这个问题。将来,各个高校部门所使用的软件将是统一开发、 统一数据库、统一身份认证、统- - f - j 户的。同时,为了解决重复开发等问题,构 件技术将会越来越多的应用到c e d 领域中。以后的c e d 领域系统的开发不再是一 切从零开始的传统软件开发模式,而是基于已有构件的组装过程。 1 2 课题的来源、背景和意义 1 2 1 课题来源 来源于省重点新产品项目( 省科技厅立项) 高校资源管理系统和省重点 科研项目基于演绎的构件生成与组装平台 1 2 2 课题背景和意义 随着对构件的研究不断深入,构件技术已经同趋成熟,基于构件的领域研究 越来越受到人们的重视。但将构件技术与c e d 相结合进行研究的目前还很少。 基于构件复用的c e d 系统天然具有很好的r r s 特性( 即可重构、可复用性和 可扩展性) ,有利于推动c e d 系统的工程化和实用化。 ( 1 ) 可重构性 基于构件复用的c e d 应用系统,是在通用c e d 领域框架基础上,通过领域通 用构件和领域专用构件组装所形成的系统。c e d 领域框架和领域通用构件对于 c e d 领域是通用的,领域专用构件反映了c e d 应用系统的个性化需求。在设计针 对不同的高校应用环境的c e d 系统时,可以借用已经成熟的c e d 领域框架和c e d 领域通用构件,然后根据具体高校特殊要求进行检索、开发或购买领域专用构件, 组装构成新的c e d 应用系统,以满足不同高校的具体需求。c e d 应用系统的这种 灵活方便的可重构性是由基于构件的c e d 系统开发模式所保证的。 ( 2 ) 可复用性 传统c e d 系统需求发生变化时,必须重新进行需求分析、功能的分解和模块 设计,系统可复用性能差,最多只能实现代码级的少量复用。而基于构件复用的 c e d 系统可以实现多种级别和层次的复用:包括代码级、二进制级( 领域二进制 构件) 、领域分析、设计和测试等级别的复用。c e d 领域系统框架对于c e d 系统 领域中的所有系统是通用的,领域体系和系统框架的直接复用是领域最大粒度和 最高层次的软件复用。另外,c e d 领域分析、领域模型及文档、领域设计模式、 领域测试文档和数据等也可以复用。这种多层次和级别的软件复用,极大地提高 4 c e d 领域构件复用技术的研究 c e d 系统的软件开发效率,缩短开发周期和降低软件开发成本。 ( 3 ) 可扩展性 传统c e d 系统当需求发生变化导致系统功能的变化时,必须对系统重新进行 功能建模和分析、重新划分功能模块,导致修改工作量非常大,软件可扩展性能 差。而基于构件复用的c e d 系统对领域中基本固定不变的事领域基础对象进 行抽象,构成领域基础对象类及其协作并最终形成领域框架,c e d 领域功能通过 领域对象之间的联系和封装在领域对象内部的功能模块所实现。对c e d 应用系统 中的一些构件的修改和扩展不影响c e d 应用系统的整体,从而保持系统良好的的 可扩展性能。 基于构件复用的c e d 系统具有很好的可重构性、可扩展性和多层次的可复用 性,可以较好的满足各个高校对c e d 系统的需求。 为了解决高校教育领域系统中的数据冗余、重复输入、数据不一致性、许多 功能重复开发问题等等,本论文将构件技术与领域工程技术相结合,对开发基于 构件的高校教育领域应用系统进行研究。 硕士学位论文 2 1 概述 第二章软件构件及构件模型 软件复用是软件工程领域的研究热点,许多以复用为目的的技术层出不穷, 如函数库技术、对象技术、模式技术等。构件技术是近年来实践软件复用思想的 新兴技术,基于构件的软件开发通过组装预制、可配制的独立模块构造软件口儿2 i , 旨在提高软件的生产效率和产品质量、减少软件开发人员频繁流动造成的负面影 响、缩短产品的交付时间、增加产品的灵活性和适应能力s 因此,构件技术并不 仅仅局限于传统意义上的代码复用或高层抽象设计复用,而是将复用思想拓展到 了软件开发的各个层面和各个阶段。 构件技术的产生给软件复用技术带来了一些新的研究方向,如从注重复用的 通用性转向关注特定应用领域的复用整体性问题,从强调可复用性转向提高易复 用性及控制复用引起的副作用等问题。考察构件的定义和界定构件的基本性质, 有助于跟踪软件复用技术的研究新动向、明确构件技术的研究范围,而领域构件 模型的定义可以有效地提高可复用构件的粒度。 构件模型是构件技术的核心内容,是构件定义和构件性质的体现。构件模型 除定义构件的基本属性外,还要规定构件接口的结构以及构件与应用框架、构件 与构件之间的交互机制。构件模型通常还提供创建和实现构件的指导原则。一个 被构件生产者和使用者所共同接受的构件模型实际上起到了构件标准化的作用。 本章分别对构件的定义、构件的基本性质和构件模型等内容进行较为详细的 论述。 2 2 软件构件 2 2 1 构件的定义 在软件工程领域,构件技术的研究和实践活动得n t 迅速发展,但在不同学 术和应用背景下,对构件的定义也不尽相同。这种状况给构件技术的研究带来了 6 c e d 领域构件复用技术的研究 一些困难,因此本节首先总结了一些软件构件的定义,以明确构件的实质,并试 图在这些定义的基础上,对构件定义进行较全面的总结。以下是一些具有代表性 的构件定义。 定义1 : 一个软件构件是一个可独立交付的软件单元,封装了设计和实现的内容,并 向外提供接口,通过接口与其它构件组装成更大的整体。 定义2 : 一个软件构件是个仅通过契约化的接口和显式的语境依赖进行组装的单 元,能够被独立地部署和由第三方组装口3 。 定义3 : 一个构件是体现一个目标问题域的语义,并独立于复杂的实现技术。 定义4 : 一个构件代表一个自包含( s e l f - c o n t a i n e d :) 的实体,能够向其环境输出功 能并可通过定义明确的开放的接口从环境输入功能h 1 。 定义5 o 一个构件由一个动态变化的对象集组成,这些对象既可以在构件的内部也可 能是其接口的一部分。构件问既可以直接交互,也可以通过独立的对象进行胶合 碍3 。这是从对象实现技术的角度给出的构件定义: 定义6 : 一个通过接口向外提供服务的软件包。这是m i c r o s o f t 的技术文档给出的定 义。 这些是比较典型有代表性的定义。显然,由于定义者的应用背景、对构件的 抽象层面以及实现途径等方面的差异,导致了多种构件定义的出现。考察这些各 有侧重的构件定义,有利于全面、深入和透彻地理解构件的含义,界定构件的基 本性质。 综合上述几种典型的观点,可以概括出软件构件的一般性定义: 构件是一个可独立开发和交付的软件单位,其设计和实现封装在一起,通过 接口向外界提供服务。它可以脱离应用环境而独立应用,并能够被独立地部署和 由第三方组装 一个可独立开发的构件具有模块化的特点,但又区别于传统意义上的设计或 实现模块。构件应该要记录其开发过程中的每个阶段性成果,如设计信息、实现 细节甚至测试文档等内容的自包含实体。这使得构件可以被独立地设计、实现和 测试,并能在必要的时候依据这些信息对外界环境作出恰当的反应或通过接口向 外界提供这些信息。 一个可独立交付的构件,必须遵循一个标准化的构件连接机制,并尽可能地 7 硕士学位论文 对外隐藏设计和实现细节。通过接口与外界交互是实现信息屏蔽的有效手段。因 此,连接机制主要用于定义构件与构件之间、构件与应用框架之间的接口标准。 为了达到黑箱( b l a c k b o x ) 复用的理想效果,连接机制的具体实现也应作为构件 内容的一部分而对构件使用者透明。 构件存在的目的是向外界提供服务,或称功能( f u n c t i o n s ) 。为了完成这些 功能,构件往往需要调用应用框架或其它构件提供的部分功能。一个基于构件的 应用系统便是由应用框架和若干构件通过这种功能上的调用被调用关系组装而 成。因此,构件应同时具备向外界输出功能和从外界环境输入功能的能力。 2 2 2 构件的性质 从构件一般性定义的讨论中,可以界定出构件所应具备的几个相互关联的基 本性质:复用( r e u s a b i l i t y ) 、封装( c a p s u l i z a b i l i t y ) 、定制( c u s t o m i z a b i l i t y ) 、 组装( c o m p o s i t a b i l i t y ) 。 ( 1 ) 构件复用 复用是软件构件最基本的性质,只有可以被复用的构件才有其存在的价值, 只有容易被复用的构件才能更好地满足应用的需求。因此,复用应具有可复用性 和易复用性两层含义。 可复用性关注的是构件的复用规模,通常用复用粒度来衡量。与一些传统的 复用技术,如代码段复用、对象( 类) 复用等相比,构件技术更注重功能复用的完 整性( i n t e g r a lit y ) ,即更注意对由若干功能组成的任务的复用。因此从某种意 义上讲,构件复用是一种大粒度复用。 然而,程序构造的粒度与应用问题的范围是一对矛盾嘀1 。复用的粒度越大, 复用所适用的范围相对越小。这对根本性的矛盾,决定了构件复用只有在特定的 应用领域或特定的系统构造中才能获得成功。因此,构件复用常常是指领域( 系 统) 构件复用。当前,许多可视化软件开发工具和可视化构件的广泛应用正好说 明了这一点。从本质上讲,这些只是软件开发技术领域内的构件复用,而其他非 计算机领域,如防洪调度系统领域、c e d 领域等内的构件复用才是研究工作的重 点。 与传统的复用技术相比,构件技术更关注构件的易复用性问题。构件技术是 应软件产业化的要求而提出的软件工程技术,旨在提高软件系统的开发速度和质 量,以及降低软件系统的开发成本。显然仅有可以复用的构件是不够的,为了满 足这种软件开发的新形势,构件必须是易复用的。 ( 2 ) 构件封装 封装是指构件对“外界”隐藏设计和实现细节,仅通过某种交互机制与“外 c e d 领域构件复用技术的研究 界”交换信息,使构件对外呈现为一个相对独立的实体。“外界”既可以指应用 框架和其它构件,又可以指构件使用者。针对不同的“外界”,信息隐藏的要求 以及信息交互的机制也不尽相同。与传统的复用技术相比,构件封装注意到了这 种差别的存在。 对于应用框架和其它构件,构件封装遵循模块化设计的基本准则,即构件内 部的功能实现是“高内聚”的,构件与构件之间的关系是“低藕合”盯1 的。这不 仅保证了构件功能复用的完整性,同时也保证了构件开发和交付的独立性。 以接口和接口定义语言为主要内容的构件( 应用框架) 交互机制,实际上是一 种对构件结构及行为的描述和解释机制。描述与实现的分离,使构件的扩展简单 而灵活,并能很好地消除构件修改对应用系统其它部分带来的负面影响。 对于构件使用者,构件封装的目标是提高构件的易复用性。这对构件封装提 出了新的要求,构件不仅应该对使用者隐藏实现细节,而且应该隐藏构件复杂的 组装过程。因此,构件封装的内容除满足用户需求的功能和数据之外,还应包括 构件组装所必需的功能和数据,如环境的认识能力、构件连接协议、构件功能说 明等等。 ( 3 ) 构件定制 定制是指构件在组装过程中随组装环境的不同而作出适当的调整。构件可独 立交付的特点使“构件对将要参与的组装环境不可预知”( 或部分不可预知,预 知的内容越多,构件复用的范围越小) ,然而,构件复用的目标是构件能够在尽 可能多的组装环境中进行组装,这就需要对构件进行定制。定制过程大致分为识 别组装环境和作出相应的调整。 构件对组装环境的识别通常采用两种方式:一种是通过清晰定义的构件交互 机制来获得环境信息,如构件可以通过调用与应用框架约定的接口,获得应用框 架的内部结构和功能描述信息:另一种是通过人一机交互机制而获得环境信息, 如构件可以通过“人一机”交互界面询问构件使用者,获得特定应用系统的组装 要求。上述两种环境识别方式在实际的应用中同时存在,互为补充。但从构件易 复用性的角度考虑,研究的重点应在构件问交互接口的定义、描述信息格式的制 定和理解等方面,这些都是实现构件自主识别组装环境的关键内容。 在识别出组装环境之后,构件应作出恰当的反应,调整内部结构或外部接口 的状态,以完成与其它构件或应用框架的啮合。这种调整过程本质上是构件进行 特殊化的过程。通常在分析和设计构件时,需要将不同组装环境对构件的特殊要 求部分独立出来定义成插入点,在这一点上插入不同的内容可以改变构件的整体 行为,实现构件的特殊化。显然,辨认构件的插入点、制定插入机制和设计构件 开放式的内部结构等也都是构件定制要研究和解决的问题。 ( 4 ) 构件细装 9 硕士学位论文 构件是面向组装的,即构件并不是在组装成应用系统的过程中处于完全消极 的状态,而是主动参与和完成组装过程。这一点与传统的复用技术有着显著的区 别。 构件易复用的特点要求构件在组装过程中扮演积极的角色,能够半自动或自 动地完成组装任务。而构件大粒度复用的特点又使构件的主动组装成为可能,一 方面构件有足够的空间封装用于组装的功能和数据:另一方面只有大粒度的复用 才能使因组装而引起的效率损失变得可以接受,这也是传统的小粒度复用单位无 法面向组装的原因。 构件面向组装的本质是从传统复用技术所注重的静态组装向动态组装的转 变。静态组装以组装工具的使用为主要特征。当前基于控件的g u i 构造可以称得 上是组装工具的成功典范,确实降低了应用系统构造的复杂度。然而,这些工具 还远未达到普通用户能够轻松掌握和熟练使用的程度。动态组装以构件模型、构 件构架的建立和标准化以及开放系统技术的运用为主要特征。与静态组装相比, 动态组装虽然牺牲了应用系统的部分运行效率,但动态组装具有很高的灵活性, 并能实现构件组装的自动化。 将构件组装问题留在构件开发方,有利于构件开发者在构件设计和开发的过 程中,通盘考虑用户需求与构件组装需求,协调两者的关系,以提高构件的组装 效率。当然,组装工具的许多优点,如图形化表示和操纵、目标代码的自动化生 成等,都可以被构件辅助开发工具所借鉴和吸收。另外,一些传统的复用技术, 如对象( 建模) 技术、模块设计技术等,也可以用于提高构件的开发效率。 2 3 构件模型 构件模型是构件技术研究与应用的交汇点,既是构件技术研究的主要内容和 成果,又是构件技术运用于实际应用系统开发的主要依据。目前,学术界和产业 界都己出现了多种构件模型。对它们进行研究和探讨,有利于c e d 系统软件构件 模型的建立。 以下几节描述的是几种具有影响力的构件模型。目的是以此为基础,研究构 件基本性质,给出c e d 领域构件模型。 2 3 13 c 模型 3 c 模型是学术界普遍认同的一个具有指导性作用的构件模型,最早在8 0 年 代由“r e u s ei np r a c t i c e ”工作室提出。该模型从概念( c o n c e p t ) 、内容( c o n t e n t ) 和语境( c o n t e x t ) 三个不同的方面来描述构件。 1 0 c e d 领域构件复用技术的研究 ( 1 ) 概念:关于“构件做什么? ”的抽象描述,构件使用者可以通过概念去理 解构件的特征( s i g n a t u r e ) 、行为( b e h a v i o r ) 和功能( f u n c t i o n ) 。通常,概念应 包括接口说明和语义描述两个部分,前者用于描述构件的特征和行为,后者用于 描述构件的功能; ( 2 ) 内容:概念的具体实现,描述构件如何完成概念所刻画的功能,对于构件 复用者来说,这部分信息应是不可见的。当然,同一个构件概念可以对应多个不 同的内容( 实现) ,只要它们满足构件概念所描述的语义; ( 3 ) 语境:构件和外围环境在概念级和内容级上的关系。语境刻画了构件的应 用环境,为构件的选用和适应性修改提供指导。语境是构件最复杂的方面,根据 不同的抽象级别又可进一步分为: ( a ) 概念语境:在特定应用系统中,一个构件的接口和语义与另一构件( 的接 口和语义) 之间的关系; ( b ) 操作语境:构件之间功能执行上的顺序关系,主要用于刻划构件间的动态 ( ( d y n a m i c ) 连接关系; ( c ) 实现语境:构件实现内容上的相互依赖关系,即构件如何使用其它构件所 提供的功能,主要用于刻画构件间的静态( s t a t i c ) 连接关系。 3 c 模型将构件概括成概念、内容和语境等三个方面加以描述,简洁而清晰 地刻划出了构件的一般性特征。作为一个抽象模型,3 c 模型是许多实现级构件 模型的总结。 2 3 2r e b o o t 模型 r e b o o t 是一个始于1 9 9 0 年,由多家欧洲公司和研究机构历时四年时间合作 参与完成的软件复用技术研究项目。该项目研究了软件开发周期各阶段的特定复 用活动,提出了一个构件分类模型以及与之相关的构件开发过程模型、复用度评 估模型等,并提供了一套完整的工具( r e b o o t 环境) 以支持可复用构件库的组织 和管理。 。 r e b o o t 项目十分关注构件的可标识性问题,认为构件的良好分类 ( c l a s s i f i c a t i o n ) 是构件进行有效复用的前提。分类有助于构件的获取,同时, 分类就其本身而言也是一种富有成效的活动;当分类活动运用于某个特定的应用 领域( d o m a i n ) 时,将有助于识别那些隶属同一领域的多个应用( a p p l i c a t i o n s ) 在高层抽象面上的概念( c o n c e p t s ) 。 r e b o o t 构件模型最大的特色就是将刻面分类的方法运用于构件模型的建立。 因此,r e b o o t 模型也被称为刻面分类模型( f a c e t e dc l a s s i f i c a t i o nm o d e l ) 。 所谓刻面分类方法就是将关键词( 术语) 置于一定的语境中,并从反映构件本质特 硕士学位论文 性的不同视角( 刻面) 对构件进行分类。r e b o o t 模型考虑了四个与复用紧密相关 的刻面:抽象( a b s t r a c t i o n ) 、操作( o p e r a t i o n s ) ,实施( o p e r a t e so n ) 和依赖 ( d e p e n d e n c e ) 。每个刻面中有一组术语( 关键词) ,术语之间由于有一般关系、特 殊关系和同义词关系而形成结构化术语空间。构件描述术语仅限在给定的刻面之 中选取。术语空间可以帮助构件使用者理解相关的应用领域,进一步理解构件的 使用。一部分r e b o o t 模式( s c h e m a ) 被设计用来支持这些分类概念。在模式设计 时,考虑到了灵活性和可扩展性问题,即可以自由地增加新的刻面或在某个刻面 的术语空间中增加新的术语,并且在修改概念的层次( h i e r a r c h y ) 结构时不会影 响到己有构件的分类。因此,针对某个特定的应用领域,其所考虑的刻面以及相 应的术语空间不是一成不变的,而是可以随着领域应用面的拓宽而进行不断的充 实和演变。 构件的表示和检索机制的研究一直是构件库研究的主要问题。一方面,拥有 大量可复用构件的组织必须以一种易于分类管理而又方便复用者检索的机制来 表示和保存构件资产;另一方面,有效的构件检索机制能够降低构件查找和理解 的成本,而构件的合理表示和分类正是实现高效方便的检索的基础。r e b o o t 模 型所采用的刻面分类方法能够表达丰富的构件信息,为人们所关注。在构件模型 中考虑构件的表示和检索问题,是r e b o o t 模型所揭示的成功经验。 2 3 3f ris c o 模型 f r i s c o 是一个面向文档( d o c u m e n t o r i e n t e d ) 的软件工程工具原型。f r i s c o 项目的一个主要目标是开发一个图形化和文本化的编辑器框架,使其具有一定的 开放能力,即能够在加入新的编辑功能时,不必修改框架代码。这种框架被称为 开放式编辑框架( o p e ne d i tf r a m e w o r k ,o e f ) 。为了实现o e f 对编辑功能的动态 加载( l o a d ) 和卸载( u n l o a d ) ,f r i s c o 提出了一个基于面向对象系统的构件模型 以及相应的描述工具构件接口图( c i d ) ,并以此来结构化和描述组成框架的 不同实体。 f r i s c o 模型认为,构件是一个相对独立的对象系统。一个构件是由一组动 态变化,并且相互连接的对象组成。那些能够被外界环境直接访问的对象,称为 接口对象( i n t e r f a c eo b j e c t ) 。而在构件的整个生命周期中,不仅是组成构件的 对象数量、甚至是接口对象以及对象之间的连接关系都会发生变化。基于面向对 象系统的构件模型,其最大的优点是可以方便地使用面向对象建模语言u m l 中的 许多符号工具,如交互图( i n t e r a c t i o nd i a g r a m ) 、状态图( s t a t ed i a g r a m ) 、接 口和类定义、类图( c l a s sd i a g r a m ) 、对象图( o b j e c td i a g r a m ) 等,来描述构件 内部的动、静态结构及状态变化过程。 1 2 c e d 领域构件复用技术的研究 f r i s c o 模型在构造o e f 的过程中,并不是将应用系统的每个实体都定义为 构件,而是根据实际需求,允许有未被聚合成构件的独立对象存在。构件之间可 以直接进行交互,也可以通过一些独立存在的对象进行连接。构件( 对象的聚集 体) 和游离态对象,都是组成应用框架的元素。因此,f r i s c o 模型本质上是一个 对象和构件的混合模型。 f r i s c o 模型的主要研究工作在于,仔细考察了独立对象和由对象组成的构 件之间的差别,指出构件不仅具有一般对象( 类) 的特征,如可动态实例化、具备 定义清晰的接口和结构完整的状态集等,还具有一些额外的特征,如构件应具有 一个层次结构化的接口集和状态集,并且这些接口和状态的结构是可以动态变化 的。为了描述构件接口对象集及其结构的动态变化,f r i s c o 模型引入了构件内 部( i n t e r n a l ) 、构件环境( e n v i r o n m e n t ) 以及主对象( p r i n c i p a lo b j e c t ) 等概念。 主对象唯一地存在于每个构件之中,并控制着构件的行为。初始状态下构件环境 仅能通过主对象与构件交互,即除主对象以外的其它对象属于构件内部,但通过 主对象可以获得构件其它接口的引用( r e f e r e n c e ) 指针,依靠这种方式,构件的 复杂接口结构可以被构件环境所获得。当一个内部对象的引用指针被构件环境所 获得,该对象就不再属于构件内部,而是属于构件接口的一部分,这体现了构件 接口的动态变化。改进的u m l 图叫i d 用于描述接口的这种动态变化。 “如何利用当前已成熟的面向对象技术来发展和完善构件技术? ”一直是现 阶段构件技术研究所关心的问题。f r i s c o 模型在这方面做了许多有益的尝试, 关于多对象聚合体( 构件) 与独立对象在行为和性质上的差异性研究值得关注和 借鉴。 硕士学位论文 3 1 软件产品线技术 第三章c e d 领域工程 研究c e d 领域软件复用的目的是通过利用可复用的c e d 领域软件资产,避免 相关c e d 领域应用系统从零开始开发。为了成功地开发和利用c e d 领域可复用软 件资产,我们采用软件产品线技术对c e d 领域软件复用进行研究。软件产品线瞄 准的正是一组具有相似需求的软件系统。软件产品线作为设计一族相关软件系统 的方法,不仅降低软件开发成本,而且提高开发品质,缩短开发时间。 所谓软件产品线工程是指系统化开发可复用的软件资产并利用所生产的软 件资产进行装配的所有过程和活动的总称。这个定义覆盖了系统化复用的所有活 动。产品线过程分为领域工程和应用工程。 3 2 领域工程基本概念 在领域工程中有一些基本的概念,正确、深入地理解这些概念对于理解和实 施领域工程具有非常重要的意义。为避免混淆,首先对这些概念进行说明。 3 2 1 领域( d o m a ;n ) 领域是指共享某种功能性( f u n c t i o n a l i t y ) 的系统或应用程序的集合。这就 是说,领域是指一组计算机系统,是计算机域中的概念,而不是现实生活中“经 济领域”、“商业领域”等用语中“领域”的概念。领域的概念是领域工程中的 基础概念,领域概念的确定决定了领域工程中许多行为和方法的含义。例如,领 域工程师进行领域工程时,需要与“领域专家”( d o m a i ne x p e r t ) 进行交流,以 获得关于领域的知识。在一般的应用系统开发中,我们也会提到“领域专家”。 那时的“领域专家”是指那些了解现实领域的人,如会计师、管理人员等。而在 领域工程中,领域工程师要了解关于领域的知识,所以“领域专家”就是指懂得 计算机系统的人,由于进行领域工程的需要,“领域专家”又需要了解经过归纳 1 4 c e d 领域构件复用技术的研究 整理后的现实领域的知识。因此,“领域专家”常常是系统分析员。 3 2 2 领域模型( d o m a i nm o d e i ) 领域模型描述领域中系统之间的共同的需求阳。领域工程的实施是基于这样 一个事实:同一领域中的系统需求和功能必然具有显著的共性,其实现也常常具 有共性。领域模型就描述了需求上的共性。把领域模型所描述的需求称为“领域 需求 ( d o m a i nr e q u i r e m e n t ) 。 在进行应用工程时,通过将当前系统需求与领域需求进行比较,系统分析员 就可以很快地建立当前系统的需求模型。也就是说,领域模型可以辅助开发者理 解一个应用领域,并可以作为系统分析的起点。 领域需求是通过考察领域中已有的系统获得的。当在领域中存在大量系统 时,需要选择它们的一个子集作为样本系统。对样本系统需求的考察将显示领域 需求的一个变化范围。一些需求对所有被考察的系统是共同的,一些需求是单个 系统所独有的。依据已获取的领域需求,就可以建立起领域模型。 3 2 3 领域特定的软件构架 领域特定的软件构架( d o m a i n s p e c i f i cs o f t w a r ea r c h i t e c t u r e ,缩写为 d s s a ) 描述在领域模型中表示的需求的解决方案。同一领域中的系统的需求和功 能必然具有显著的共性,领域模型描述了需求上的共性。对于这样已生产了许多 系统或更新较为频繁的领域,建立基于共同功能的软件构架将因为促进了软件复 用而得到显著

温馨提示

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

评论

0/150

提交评论