(系统工程专业论文)软件构件技术在汉语学习系统中的研究与应用.pdf_第1页
(系统工程专业论文)软件构件技术在汉语学习系统中的研究与应用.pdf_第2页
(系统工程专业论文)软件构件技术在汉语学习系统中的研究与应用.pdf_第3页
(系统工程专业论文)软件构件技术在汉语学习系统中的研究与应用.pdf_第4页
(系统工程专业论文)软件构件技术在汉语学习系统中的研究与应用.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(系统工程专业论文)软件构件技术在汉语学习系统中的研究与应用.pdf.pdf 免费下载

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

文档简介

摘要 随着软件开发规模和复杂性不断提高,随着社会对软件开发速度和数量要求 不断提高,“软件危机愈加明显的暴露出来,提高软件生产率成为软件产业当 务之急。为了解决“软件危机”,人们提出了软件复用思想并对其进行了不懈的 研究。软件构件技术被认为是解决软件危机,提高软件生产率和软件质量,增强 软件开发性和对外部扰动适应性的主要途径。 同时,随着经济全球化的发展和中国在国际上地位的日益提升,越来越多的 人开始进行汉语的学习,同时伴随着网络的飞速进步和电脑的普及,越来越多的 人通过网络学习,在线汉语学习系统便显得越来越迫切,目前网络上存在很多汉 语学习系统,已经在很大程度上满足人们在线学习的需求,但是同时也存在一些 问题。 基于以上两方面原因,本文提出将软件构件技术引入到在线汉语学习系统的 开发中。首先,本文探讨了软件构件和基于构件的软件开发,系统研究了构件的 定义、结构,分类、模型、构件技术,分析了构件库以及构件的演化,研究了基 于构件软件开发基本思路和生命周期模型,开发构件的设计原则,构件组装软件 系统的方法等。 最后,就基于构件软件开发技术在在线汉语学习系统中的应用作了探讨,给 出了具体的开发实例。从需求分析,总体设计,构件的抽取和设计等方面详细介 绍了系统的设计和实现过程。从实践应用上证明了这种技术在系统设计和快速实 现方面所具有的优势。 关键字:软件构件;c b d ;汉语学习 a b s t r a c t w i t ht h ei n c r e a s eo fs o r w a r ed e v e l o p m e n ts c a l ea n dc o m p l e x i t y , a sw e l la st h e b o o s tt ot h en e e do fs o r w a r ed e v e l o p m e n ts p e e da n dq u a n t i t y , s o f t w a r ec r i s i sh a s b e e ne x p o s e di n c r e a s i n g i t se m e r g e n c yt oi n c r e a s et h ee f f i c i e n c yo fs o r w a r e t o c o n q u e rs o f t w a r ec r i s i s ,t h e o r yo fs o f t w a r er e u s ei sp r e s e n t e da n dh a sb e e nu n d e r s t u d y t h es o r w a r ec o m p o n e n t si sc o n s i d e r e da st h em a i nm e a s u r et os o l v es o f t w a r e c r i s i s ,i m p r o v es o f t w a r ep r o d u c t i v i t ye f f n c i e n c ya n ds o f t w a r eq u a l i t y , a n de n h a n c et h e a d a p t a b i l i t yt oo u t s i d en o i s e a st h ed e v e l o p m e n to ft h ew o r l da n do u rc o u n t r yb e c o m i n gm o r ea n dm o r e s t r o n g ,m o r ea n dm o r ep e o p l eb e g i nt ol e a mc h i n e s e a st h er a p i d l yd e v e l o p m e n to f n e t w o r kt e c h n o l o g ya n dp o p u l a r i z a t i o no fc o m p u t e r m o r ea n dm o r ep e o p l eb e g i nt o s t u d yo nl i n e o n l i n ec h i n e s e - s t u d ys y s t e mb e c o m eu r g e n t l y t h e r ea r es o m e c h i n e s e s t u d ys y s t e m sa n dt h e yh a v em e tt h en e e d so ft h el e a r n e r st oag r e a te x t e n t , b u tt h e r ea r es t i l ls o m ep r o b l e m sn e e d st os o l v e b a s e do nt h et w of a c t o r sa b o v e ,t h i st h e s i sd ot h ed e e p l yr e s e a r c ho ns o f t w a r e c o m p o n e n ta n 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 yb a s e do nc o m p o n e n t s t h i st h e s i si s d e t a i la b o u tt h ed e f i n i t i o no fc o m p o n e n ta n di n c l u d e sd e f i n i t i o n ,c l a s s i f y , d e s c r i b i n g m e t h o d ,r e a l i z a t i o na n ds t u d i e st h ef u n d a m e n t a li d e aa n dt h el i f e c y c l em o d e lo f s o f t w a r ed e v e l o p m e n tb a s e do nc o m p o n e n t s i td e v e l o p st h ed e s i g n i n gp r i n c i p l eo f c o m p o n e n t sa n dc o m p o n e n t si n t e g r a t i o ns o r w a r es y s t e me t c f i n a l l y , i ng i v i n gc o r r e s p o n d i n gd e v e l o p i n ge x a m p l e s ,t h et h e s i sd i s c u s s e st h e a p p l i c a t i o no fs 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 yb a s e do nc o m p o n e n t si no n l i n e c h i n e s e s t u d ys y s t e m p u t t i n gi ti n t ot om a k eg o o du s eo ft h i st e c h n o l o g yi np r a c t i c e , a n dt e s tt h a tt h i st e c h n o l o g yh a sg r e a ta d v a n t a g ef o rs o f t w a r ed e s i g nr a p i d l y k e yw o r d s :s o f t w a r ec o m p o n e n t ;c b d ;c h i n e s e s t u d y 厦门大学学位论文原创性声明 本人呈交的学位论文是本人在导师指导下,独立完成的研究成果。本人 在论文写作中参考其他个人或集体已经发表的研究成果,均在文中以适当方 式明确标明,并符合法律规范和厦门大学研究生学术活动规范( 试行) 。 另外,该学位论文为() 课题( 组) 的 研究成果,获得() 课题( 组) 经费或实验室的资助,在 ( ) 实验室完成。( 请在以上括号内填写课题或课题组负责 人或实验室名称,未有此项声明内容的,可以不作特别声明。) 声明人( 签名) :苏- g 朋暇 尸明八l 佥铂l :w 、f ”a 跏归6 月a 日 厦门大学学位论文著作权使用声明 本人同意厦门大学根据中华人民共和国学位条例暂行实施办 法等规定保留和使用此学位论文,并向主管部门或其指定机构送交 学位论文( 包括纸质版和电子版) ,允许学位论文进入厦门大学图书 馆及其数据库被查阅、借阅。本人同意厦门大学将学位论文加入全国 博士、硕士学位论文共建单位数据库进行检索,将学位论文的标题和 摘要汇编出版,采用影印、缩印或者其它方式合理复制学位论文。 本学位论文属于: () 1 经厦门大学保密委员会审查核定的保密学位论文, 于年月日解密,解密后适用上述授权。 f ( ) 2 不保密,适用上述授权。 ( 请在以上相应括号内打“”或填上相应内容。保密学位论文 应是已经厦门大学保密委员会审定过的学位论文,未经厦门大学保密 委员会审定的学位论文均为公开学位论文。此声明栏不填写的,默认 为公开学位论文,均适用上述授权。) 声明人( 签名) :絮文7 曰i :邀 舢椤年6 月a 日 第一章绪论 1 1 论文研究背景 第一章绪论 1 1 1 技术研究背景 随着社会信息化程度越来越高,人们抽象的经验、知识越来越多的以软件形 式予以精确的体现n 引,因此软件的规模和复杂性也不断提高;同时随着计算机技 术的飞速发展,i n t e m e t i n t r a n e t 迅速普及,以及与之相适应的新技术不断涌现, 各行各业对软件开发的数量和速度有了更高要求。但目前软件开发与生产能力相 对不足,这不仅造成了许多急需的软件迟迟不能开发出来,而且形成了软件脱节 现象n7 1 ,再加上大量存在的遗留软件系统,形成了所谓的“软件危机 。据美国 国家标准和技术研究院的一份报告显示,占据世界软件销售额8 5 的是大型的专 用软件,而其开发的失败率却高达7 0 。其失败的原因与应用系统传统的、落后 的生产组织方式有着莫大的关系。 回顾经典的工业化革命,不难得出一些有益的启示:功能再复杂的产品也都 是由大量标准的零件( 尽管零件可能只在本领域内有用) 组成,零件在生产线上装 配成一个成品,所有零件在成品中共同发挥作用。分工越细致、专业生产的程度 越高,总体生产效率就越高。因此,要想从根本上解决“软件危机,必须采用 工程化的开发方法与工业化的生产技术,实现软件工业化生产。这包括技术与管 理两方面的问题:在技术上,应该采用基于复用的软件生产技术;在管理上,应 该采用多维的工程管理模式啼1 。软件复用通常可以分为产品复用和过程复用两条 途径,基于软件构件的复用是产品复用的主要形式呻1 ,也是当前实现软件工业化 的热点技术。软件构件技术为软件复用提供了技术基础,使得软件复用从个体性、 不确定性行为上升为群体性、形式化行为,从而使得大规模产品线式的软件工业 化生产成为可能。同时,在分布对象研究领域,软件构件技术也是一项重要内容, 适应了当前软件开发从单机模式向网络模式发展的需要。 软件构件技术的出现,极大程度上满足了多个应用领域的要求,使得各种技 术形成的软件构件可以最大程度地进行复用。使用构件技术可以减少软件开发活 动中大量的重复性工作,这样就能够提高软件生产率,降低开发成本,提高互操 作性和缩短开发周期。同时,由于软件构件大都经过严格的质量认证,并在实际 运行环境中得到检验。因此,复用构件有助于改善软件质量。此外,大量使用现 软件构件技术在汉语学习系统中的研究和应用 成软件构件,软件的灵活性和标准化程度也得到了提高。总之,通过对通用构件 的复用,可以消除开发过程中的重复性劳动,避免重新开发可能产生的错误,从 而提高了软件开发效率和系统的稳定性。据有关调查机构统计显示,构件技术可 以使软件的投放市场时间缩短到原来的1 2 至1 5 ,使软件的缺陷密度降低到原 来的1 5 至1 1 0 ,使软件的维护成本降低到原来的1 5 至1 1 0 ,使整体软件的开 发成本降低了大约1 5 ,长期项目甚至可降低高达7 5 的成本。 以软件构件复用为代表,基于构件的工程技术正在使软件开发方式产生巨大 的改变。采用基于软件构件的软件复用技术,将使软件设计生产工厂化成为可能, 是未来软件开发的发展方向。 1 1 2 应用研究背景 汉语作为了解中国和同中国交往的重要工具和文化载体,越来越受n ; i - 国政 府、教育机构、企业和民众的重视,其实用价值正在不断提升,世界范围内出现 了学习汉语的热潮,目前海外学习汉语的人数已超过4 0 0 0 万。 英国、泰国、印度尼西亚等许多国家都把汉语纳入了正规教育体系;美国希 望开设汉语课程的中学超过2 4 0 0 所;韩国有1 4 2 所大学开设了中文课,学习汉 语的人数超过1 0 0 万;拉美、中东和非洲国家学习汉语的人数也在迅猛增长。 随着计算机的迅速发展和网络应用的普及,越来越多的人通过网络来进行学 习。采用这种学习方式一方面可以找到大量的学习资源,另一方面可以在线和其 他的学习者进行交流,共同学习。越来越多的汉语学习者也通过网络来进行汉语 的学习。为了能够满足日益增多的汉语学习者可以通过网络的平台进行学习和交 流,因此设计并实现了该汉语教学系统。 1 2 国内外现状 1 2 1 软件构件技术研究现状 早在1 9 6 8 年软件构件与“软件组装生产线思想就在国际n a t o 软件工程 会议上被提出来。从那以后,采用构件技术实现软件复用,采用“搭积木”的方 式生产软件,成为软件业长期的梦想。然而,由于技术水平限制,在很长一段时 间内构件技术只是作为一种思想存在,直到c o r b a ,j 2 e e 和c o m d c o m 出现, 中间件兴起以后,构件技术才逐渐走向现实。 2 第一章绪论 近年来,基于构件的软件工程对软件产业以及其它很多领域产生了巨大的影 响,复用层次不断提高是当今软件工程中最广泛、意义最深远的影响之一。在国 际上,软件复用在领域工程、构件及构件库的标准化、构件组装技术、基于复用 的软件开发过程和复用成熟度模型等方面取得了重大成功。如:卡内基梅隆大 学的软件工程研究所( c m u s e d 提出了面向特征的领域分析方法 ( f e a t u r e o r i e n t e dd o m m na n a l y s i sm e t h o d ,f o d a ) ,一并将该方法成功地运用于 美国空军运动控制等领域。美国军方在政府资助下,已建立了若干个构件库系统, 如:c a r d s ,a s s e t ,d s r s 等。s t a r s 项目组于19 9 2 年提交了a l o a f ( a s s e s l 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 ,开放体系结构的构件库框架) v e r s i o n1 2 。 这份报告体现了a l o a f 对可复用构件库系统的认识,并就此实现了a l o a f 规 约作为该参考模型的实例。c a l d i e r i 和b a s i l i 提出基于复用的软件开发过程。m m 和l o r a l f e d e r a l s y s t e m 公司研究出了复用成熟度模型等等口引。 国外大型软件公司在所提供的集成开发环境中也蕴含有软件复用技术,为开 发者提供了使用方便、性能可靠的软件构件。例如,m i c r o s o f t 公司的系列可视 化产品、e s r i 公司的m a p o b j e c t ,i n t e r g r a p h 公司的g e o m e d i a 等口3 1 。 在国内,杨关清院士支持的国家重点科技攻关项目青乌工程,重点研究了软 件的工业化生产流程和软件复用的相关技术,并取得了可喜的研究成果。清华大 学与m m 、印度、白俄罗斯等组建了虚拟实验室,进行构件技术方面的研究工 作。国内许多大工程、大项目都纷纷采用软件构件技术,如8 6 3 计划近一半的项 目、通信投资的许多大项目、金融行业的业务处理系统等。 由此可以看出,全世界的软件行业特别是在应用领域中的软件技术,正在酝 酿着一次飞跃,这次飞跃将会对软件行业的生产方式产生根本性的变革。 1 2 2 应用研究现状 针对目前汉语在国际上的发展趋势,在i n t e r n e t 上已经有很多学习中文的网 站,他们各有特点,对汉语的教学发挥了很大的作用。通过对现有汉语教学网站 的分析。现行的国内外已有汉语教学网站大致可以分为以下几类: 第一类:以练习听力为主,这类网站提供一些通过在线收听录音或者对话来 达到学习中文的目的:如:w w w c h i n e s e p o d c o m 第二类,以学习词汇为主,这类网站通过学习汉语的词语和文字,来达到学 习的中文的目的:如:w 、) l m r n c i k u c o r n 3 软件构件技术在汉语学习系统中的研究和应用 第三类,以文化语言为主。这类网站内容中既有中国文化知识又有汉语知识, 其主体结构通常以前者为主。页面基本上是一些文字和图片。如: w w w c h i c u l t u r e n e t 。 通过对这些网站的比较和分析,我们认为现行的网站还存在以下一些欠缺: ( 1 ) 没有提供系统和规范的教学内容和对汉语深入学习的引导; ( 2 ) 没有提供用户可以自己定制的个性化的服务,不能为自己学过的词汇做 标记,不能添加自己的学习笔记; ( 3 ) 在学习的过程中,不能提供多样式的学习模式,以方便学习者的学习; ( 4 ) 欠缺评价部分,无法对学习的效果进行评价。在进行完学习之后,没有 办法多学习过的内容进行练习或者测试。 总之,目前很少有系统可以兼顾这几方面的问题,提供一个良好的在线汉语 教学系统的解决方案。 1 3 研究内容 本文主要探讨了软件构件技术,了解该技术的概念和基本思想,在此基础之 上对基于软件构件的软件开发进行了研究,研究该方法的含义特点,具体的实行 方式以及其与传统开发模式的区别。最后以汉语学习系统为实例,将基于构件的 软件开发引入到该系统的设计和实现过程中,详细描述了基于构件的汉语学习系 统的分析设计和实现。 该汉语学习系统,作为一个成熟的产品,在美国夏威夷大学试用之后,已经 正式上线投入使用,网址为w w w a g il e c h i n e s e c o i l l ,目前该系统处于免费使用 阶段。针对该系统,我们有一个3 个人的小团队在开发。一个组员负责与出版商 和学校进行沟通获取用户需求和相关材料,一个组员负责用户界面的美化和设计 并承担系统的测试工作。我作为整个系统的核心开发人员,主要负责确定系统架 构,设计系统的数据库结构及系统功能模块的划分并完成了系统核心代码的开 发。目前,该系统的改进版本正在开发之中,新的版本将包含听力阅读词汇语法 等多方面的内容,并将提供更加实用和人性化的功能。 1 4 论文的组织结构 第一章介绍了课题的研究背景及意义以及在线汉语教学系统现阶段的现状 和存在的一些问题等,最后叙述了本文的研究内容和特色。 4 第一章绪论 第二章主要介绍了构件技术、软件构件技术的基本概念和理论。 第三章介绍了基于构件的软件开发的含义和优点,研究了基于构件的软件 开发的基本思路和生命周期模型,并对构建构件的分析方法、设计原则及开发方 法进行了研究,同时也对基于构件的软件开发过程及技术进行了探讨。 第四章在研究了基于构件的软件开发之后,将构件技术应用到了汉语学习 系统的开发过程中。介绍了系统的需求,系统的总体设计,系统构件的抽取和设 计及系统的实现。 第五章对全文工作的总结以及对未来研究的展望。 软件构件技术在汉语学习系统中的研究和应用 第二章软件构件技术 2 1 构件定义与体系结构 2 1 1 构件定义 软件构件( 简称构件,c o m p o n e n t ) 共生于软件复用。1 9 6 8 年的n a t o ( 北大西 洋公约组织) 软件工程会议上,m c i i r o y 在论文“大量生产的软件构件”中第一 次提出了软件复用的概念,认为软件复用的基础是软构件( s o f t w a r e c o m p o n e n t ) ,可以通过建立可复用的软构件库来促进大规模软件的开发。2 0 世 纪9 0 年代中期以后,随着分布对象、i n t e r n e t ,j a v a ,c s ,4 g l 和可视化开发 工具等技术以及基于构件组装的软件开发模式的发展,人们对构件技术进行研究 和实践8 3 2 引。 由于构件自身固有的特性,对构件的定义也不尽相同。这里列举了一些具有 代表性的构件定义,并在这些定义基础上,对构件定义进行较全面的总结。 构件是一个独立的可传递的操作的集合。 构件是软件开发中一个可替换的软件单元,它封装了设计决策,并作为一个 大单元的一部分和其它构件组合起来。 构件是由对象类组合起来的物理意义上的包。 构件是具有特定功能,能够跨越进程的边界实现网络、语言、应用程序、开 发工具和操作系统的“即插即用 的独立的对象。 构件在通常意义上是指任何被分离出来的,具有标准化的和可重用性的公开 接口的软件粒子乜3 i 。 对象管理组织o m g ( o b j e c tm a n a g e m e n tg r o u p ) 对构件的定义是: 构件是一段具有自己的数据和逻辑的自包含的软件代码,并且具有良好的与 外界通信接口。 纵观上述观点,构件的一般定义为:构件是指应用系统中可以明确辨识的构 成成分,它将设计和实现封装在一起,通过接口对外提供服务,与其它构件组成 更大的整体。 构件一般是在设计和实现阶段由一些类或者模块组成的群组,每个构件完成 一个独立的功能,并且都有一个和其他构件的良好接口。所有的构件联合起来共 同实现软件的功能。建立一个构件时应该考虑:构件应该是完整的;构件应该重 6 第二章软件构件技术 点解决一个问题;构件及其对象方法、属性和事件应该容易理解;构件应该具有 新功能;在安装构件之前应该调试它们;考虑实用第三方构件开发工具n 6 1 。 构件是一个功能单元:符合构件模型( 或具有规范接口) :允许不同构件开发 商开发构件进行组装,这些因素体现了研究人员对构件如何促进软件产业化发展 的新认识,通过接口与外界交互有利于降低构件理解的难度,同时避免了由于内 部修改而可能带来的影响。符合同一构件模型的要求是构件生产和组装的基础, 构件接口是构件使用者理解构件和构件组装的桥梁。 2 1 2 体系结构 软件体系的设计是整个软件开发过程中关键的一步,不同类型的系统需要不 同的体系结构,体系结构没有明确的定义,只有代表性的概念:软件体系结构包 括一个或一组软件部件、软件部件的外部的可见特性及其相互关系,是依赖于框 架存在的。 框架( f r a m e w o r k ) 是一组抽象构件及构件实例间交互的方法:是可以被应用 开发者定制的应用骨架。它表现为一组抽象类以及它们的实例之间如何进行合 作,阐明这个设计、协作构件之间的依赖关系、责任分配和控制线程,它为构件 提供了被复用的语境。软件领域框架方法在很大程度上借鉴了硬件技术发展的成 就,它是构件技术、软件体系结构与应用软件开发三者发展结合的产物,在很多 情况下框架通常以构件库的形式出现,但构件库只是框架的一个重要部分1 。 2 2 构件技术与构件类型 2 2 1 构件技术 构件技术是面向对象技术的一个发展。构件与对象最基本的不同是:一个对 象是源代码的一部分或者是一个规范,用来执行应用程序的一部分;而构件不仅 仅是一个规范,也不是一定需要编译才能使用的一部分代码,而是可实际运行的 软件模块n 8 1 。 从广义上讲,构件技术是基于面向对象的,以嵌入后马上可以使用的即插即 用型软件构件概念为中心,通过构件的组合来建立应用的技术体系;狭义上讲, 它是通过构件组合支持应用的开发环境和系统的总称。 7 软件构件技术在汉语学习系统中的研究和应用 2 2 2 构件类型 在软件开发过程中,只要是符合可重用性原则得模块、程序模版、模型、文 档、程序等,都可以作为软件构件,国内外对软件构件的分类方法,有以下几种: ( 1 ) 根据可重用方式,可以分为黑箱构件和白箱构件。 ( 2 ) 根据使用的范围,可以分为通用构件和专用构件。 ( 3 ) 根据构件粒度的大小,可以分为数据结构构件、功能构件和子系统构件。 ( 4 ) 根据功能用途,可以分为系统构件、支撑构件和领域构件。 ( 5 ) 根据构件的结构,可以分为原子构件和组合构件。 ( 6 ) 根据构件重用的状态,可分为动态构件和静态构件。 另外,从构件的外部形态来看,构成一个系统的构件可分为5 类: ( 1 ) 独立而成熟的构件。独立而成熟的构件得到了实际运行环境的多次检验, 该类构件隐藏了所有接口,用户只需用规定好的命令使用即可。如数据库管理系 统和操作系统等。 ( 2 ) 有限制的构件。有限制的构件提供了接口,指出了使用的条件和前提。 这种构件在装配时,会产生资源冲突、覆盖等影响,在使用时需要加以测试。如 各种面向对象程序设计语言中的基础类库等。 ( 3 ) 适用性构件。适用性构件对构件进行了包装或使用了接口技术,把不兼 容性、资源冲突等进行了处理,可以直接使用。这种构件可以不加修改地使用在 各种环境中,如a c t i v ex 等。 ( 4 ) 装配的构件。装配的构件在安装前,已经装配在操作系统、数据库管理 系统或信息系统不同层次上,使用胶水( 粘) 代码就可以进行连接使用。目前一些 软件商提供的大多数软件产品都属于这一类。 ( 5 ) 可修改的构件。可修改的构件可以进行版本替换。如果对原构件修改错 误、增加新功能,可以利用重新“包装”或写接口来实现构件的替换。这种构件 在应用系统开发中使用得比较多。 2 3 构件模型与描述方法 2 3 1 构件模型 构件模型定义了构件的本质属性,规定了构件接口的结构以及构件与软件构 架、构件与构件之间的交互机制。构件模型通常还提供创建和实现构件的指导原 第二章软件构件技术 则。c b d 工具可以识别和组装来自不同开发者的符合同一构件模型的构件。一个 被所有构件生产者和构件复用者所接受的构件模型实际上起到了构件标准化的 作用。在学术界和产业界已经出现了多种构件模型,其中3 c 模型是学术界普遍 认同的一个具有指导性作用的构件模型。该模型从概念( c o n c e p t ) 、内容 ( c o n t e n t ) 、语境( c o n t e x t ) 三个不同方面来描述构件。 构件模型包含两个关键元素:属性和接口。 构件属性用来表述构件的元信息,如构件类型、编程语言、执行流程等。构 件模型的属性一般分为功能属性和非功能属性两种。功能属性是指与具体构件的 功能实现相关的属性,这些属性一般会在构件实例化时被指定,并且在构建内部 动态执行过程中被改变。描述属性、约束属性、配置属性和服务质量属性可以统 称为非功能属性。 构件接口是最底层的设计实体和重用单元,用于对构件的服务进行明确的规 定,构件可以视为黑盒,即只需要知道其功能而不必了解其内部结构的软件设备。 按接口所实现的功能,可分为配置接口和功能调用接口。配置接口又称为非功能 性接口。配置接口主要处理构件内部的属性,是提取和修改构件配置参数及获取 配置信息的接口;功能调用接口是一组用户自定义的可供调用的方法集,构件的 功能通过这些方法实现的。 2 3 2 构件的描述方法 2 0 世纪7 0 年代,p a r n a s 提出模块概念标志着构件描述与组装研究的开始。 在这一研究方向上,早期主要研究模块互联语言( m o d u l ei n t e r c o n n e c t i o n l a n g u a g e ,m i l ) 2 0 世纪8 0 年代起,研究的重点开始转向描述语言( c o m p o n e n t d e s c r i p t i o nl a n g u a g e ,c d l ) 。2 0 世纪9 0 年代以后,模块互联语言与构件描 述语言开始融合,以期增强构件描述语言的描述能力,使构件描述语言同时具有 描述构件和构件子系统的能力。目前,由于可扩展标记语言( e x t e n s i b l em a r k u p l a n g u a g e ,x m l ) 的广泛使用,出现了利用) ( m l 来描述构件的研究,利用x m l 技术, 可以大大提高构件描述语言的开放性和扩展性。 构件的描述方法是指对构件的功能与接口进行说明,为构件的组装提供必要 的信息。描述构件的方法有多种,可以采用形式化的规格描述方法,也可以用其 它非形式化的描述方法。 构件可以用个四元组来表示: q 软件构件技术在汉语学习系统中的研究和应用 构件:= ( 构件标识符,构件说明,构件体,接口) 把构件说明和构件体分开的原因是考虑到同一个构件说明可以用不同的程 序设计语言来实现,即使同一个构件可以有多个不同语言实现的构件体,构件的 接口不仅要提供外部物理实现接口,而且还要提供一个外部逻辑接口,外部逻辑 接口是给用户提供一个非形式化的该构件的功能描述,这样更能方便用户了解和 使用构件。构件说明就是对构件功能深入、明确的刻画,这将有利于构件的复用, 而构件功能的描述,就是通过构件的外部逻辑接口提供给用户的。构件的逻辑设 计须在构件设计规范下进行,利用规范所提供的构件定义语言( c d l ) 和构件操作 语言( c o l ) 来进行逻辑设计。 2 4 构件库 构件库( c o m p o n e n tl i b r a r y ) :可复用软件构件的集合,包括向用户提供构件 时所需的过程和函数。构件库是基于构件的软件系统的一个重要部分,它对构件 的提取、分类、存储及检索、组装等过程进行了有效的管理。 构件库是具有一定语义关系的某领域构件类和构件的集合,这可以从两方面 来理解,其一是构件库是构件类和构件的集合,其二是集合的元素。构件类和构 件不是任意的堆积,而是具有本领域语义关系的构件类和构件的组合。组织和管 理领域构件库的软件系统称为d c m s ,d c m s 提供了内存构件和外存永久构件的管 理,并以统一的界面供不同的用户和工具使用构件库,构件库的构造和演化活动 包括选择、分类和查改库中的构件和增加新的构件等n 7 1 。 构件库的管理系统必须能够存储构件和构件的相关信息: ( 1 ) 构件的语义描述:描述构件功能和用途,精确定义构件。 ( 2 ) 构件的分类:对构件相同特征的聚类。 ( 3 ) 构件的形态:构件的类型,广义构件包括类、类树、框架、模块等;构件 的技术环境,包括构件的开发工具、配置方法和部署环境等:构件的形式包括源 代码、二进制代码等。 ( 4 ) 构件的状态:构件的版本、历史等。 为了能够管理和维护构件信息,构件库管理系统必须能够提供如下的操作: ( 1 ) 构件的添加:主要是构件的测试和认证方法,只有合格的构件才能添加到 构件库中。 1 0 第二章软件构件技术 ( 2 ) 构件的检索:也就是构件的需求匹配,与一般的数据库不同,构件匹配通 常不能得到完全满意的构件,对与需求相关或相近的构件,需要通过适应使之满 足需求:由于构件的粒度不同,需求问题分解和构件合成是两种配合检索的方法。 ( 3 ) 其他构件库管理手段:构件的删除、备份、用户登记和存取控制、使用跟 踪和统计分析、异构构件库的连接等。 2 5 小结 对软件构件进行了详细的研究,包括构件的定义及其体系结构,构件的类型, 构件的模型和构建的描述方法,最后描述了构件库。通过对构件这些属性的详细 描述,增加了对构件的认识和了解,为以后能够恰当的使用构件技术打下了基础。 软件构件技术在汉语学习系统中的研究和应用 第三章基于构件的软件开发 3 1 基于构件的软件开发含义和优点 兴起于2 0 世纪9 0 年代的基于构件的软件开发( c o m p o n e n t b a s e d d e v e l o p m e n t ,c b d ) 1 6 是一种软件开发新范型,集软件复用、分布式对象技术、 客户服务器结构和构件技术于一身,以软件构架为组装蓝图,以可复用软件构 件为组装预制块,支持组装式软件复用,是提高软件生产效率和产品质量、缩短 产品交付时间的现实有效的途径之一。软件开发的目标是软件具备很强的自适应 性、互操作性、可扩展性和可复用性,软件开发强调采用构件化技术和体系结构 技术。 由于传统的软件开发方法没有考虑复用问题,因而所开发的软件系统很难用 于复用。软件构件的出现改变了传统的软件开发方法,基于构件的开发方法( c b d ) 建立在过去长期的结构化方法中的模块系统,以及近年来的面向对象系统的基础 上的。采用基于构件的软件开发方法进行软件开发,可以提高软件的可复用性, 使软件开发摆脱以往小作坊式的生产方式,按照大规模的上业化方式进行。c b d 是软件工程发展的新阶段,吸收和发扬了面向对象技术、分布计算技术和软件复 用中的许多优秀思想,作为一种将软件构件技术运用于应用系统开发中的一种新 兴的软件开发方法,c b d 推动了软件产业的发展,满足了计算机应用新形势的需 要,其主要优点表现为: ( 1 ) 可以以构件( 模块) 为单位独立地进行设计和实现,使大规模的软件生产 成为可能。 ( 2 ) 缩短了应用开发的周期,降低了开发费用,提高了生产率。 ( 3 ) c b d 技术以构件模型和构件构架为系统开发者之间的协议标准,极大地 提高了应用系统各部分的开发独立性和系统开发的并行性。 ( 4 ) 更易配置最优的解决方案,构件市场上丰富的构件使得对功能的支持更 具可选性,懒件提供者的竞争也会使价格变得更低。 ( 5 ) 减少了出错风险,因为用于组装的各构件都已各自通过了测试和验证, 同时基于构件的系统开发更有利于渐进的增量式开发测试。这些都保证了软件开 发的质量。 1 2 第三章基于构件的软件开发 ( 6 ) 提高了软件系统的灵活性,缩短了软件系统的开发时间,减少了软件系 统的开发和维护费用。 3 2 基于构件的软件开发基本思想和模型 3 2 1 基本思路 基于构件软件开发方法的思路是借鉴传统上业生产模式,首先是分析用户需 求,设计整体结构框架,根据需要到构件库中选择能完成相应功能的构件,之后 组装应用系统。如果所需构件不存在,就去购买、定制或自行开发新构件乜3 | 。见 图3 1 所示: 类比与传统上业生产模式,构件库好像零件库。生产过程中需要什么零件就 到库中取,库中没有的零件就去买,市场上还没有的,就去定做或自行开发。有 了零件就按照预先设计好的图纸去组装。就是这样简单,就像大工业生产。 赫娲蔫;式壤护 卫 鬃缝歼j ! 乏的e 爨1 :俸 翰撵痒 何野发耨梅锋 霰l l ;i 薇掬件 扶已f i 乐缝笈 瓣挺慷拗锋 均馆篱零、镀城诊昕 树件蹬i l 和霞琨 竺竺兰圣i 一 梭件驿黢i 壤铲 图3 1 基于构件的软件开发的基本思路 3 2 。2 生命周期模型 生命周期模型也被称为软件过程模型,表示软件开发和维护过程中所有相关 活动的组织、计划和控制模型。在大多数情况下,软件过程确定了所有的开发任 务,以及任务之间的中间工作产品,并包括这些产品的评估标准,而软件生命周 期模型正是基于这些进行分类。口前,软件生命周期模型主要包括瀑布模型、喷 泉模型和快速模型,虽然这些模型都涉及分析、设计、编码和测试几个阶段,然 而,瀑布模型要求在每一个阶段的上作开始之前,必须确保上一阶段的上作己经 1 3 软件构件技术在汉语学习系统中的研究和应用 完整地完成,喷泉模型和快速原型通过增量式方法,实现从分析到测试的多次迭 代。 对于基于构件的软件开发,这里需要考虑两个生命周期,称之为双重生命周 期模型( t w ol i f ec y c l em o d e l ) :复用构件开发生命周期和基于构件开发生命周 期5 i 。复用构件的开发既可以并行于特定的产品开发,也可以独立于特定的产品 开发。当采用并行的方式进行开发时,可以采用与传统软件开发相同的生命周期 模型,但是在开发过程中需要将它们打包成可复用的构件形式。但采用独立的方 式进行开发时,这一活动通常被称为领域分析( d o m a i na n a l y s i s ) 或领域工程 ( d o m a i ne n g i n e e r i n g ) 。领域工程中,可复用构件开发的目标是针对于某一特定 的应用领域,对该领域中一组已开发的系统进行领域分析,确定目标领域的公共 特性,进行抽象并编码实现,包装为可复用构件。如果存在足够的文档,公共 特性的确定和抽象可以在开发的早期阶段进行。使用可复用构件进行开发,需要 采用与传统软件开发完全不同的生命周期模型。基于构件的软件开发,其基本活 动包括: ( 1 ) 检索:根据构件需求规格说明( 如构件应用领域、功能说明、约束条件及 版本信息) ,向构件库提交检索请求。针对检索结果调整约束条件,扩大或缩小 候选构件集规模,确定候选构件集。 ( 2 ) 判断:获得候选构件的功能、领域及接口语法语义,初步判断候选构件 与需求的匹配程度,筛选候选构件集。 ( 3 ) 验证:在满足约束条件的上下文环境中测试构件语法、语义的正确性和一 致性。验证过程要求在可视化测试环境中公开构件接口及语法,并提供交互式手 段接受用户命令或脚本,将执行语义可视化地反馈给测试者。 ( 4 ) 适应:经过理解和验证的候选构件并不能完全保证满足需求规格说明或 是开发人员的真正意图,可能只是近似匹配,对构件进行配置或修改,使其符合 当前应用环境的过程称为适应。构件的适应可通过参数化、封装或聚集等途径进 行,适应后的构件可作为新的版本或条口插入构件中。 ( 5 ) 装配:适应后的构件被拼装到组合系统框架中,装配为系统的功能模块。 根据不同的软件开发模式,构件的装配可能基于手上、自动或半自动方式实现。 1 4 第三章基于构件的软件开发 ( 6 ) 调试:验证构件的装配是否符合系统的设计口标,排除特定上下文及构件 搭配可能出现的错误。调试过程侧重于分析、定位,并排除应用系统全局行为特 征及可能的异常。 ( 7 ) 运行:构件形成最终系统的构件部件。为了配合系统的管理和进化,构件 在运行时不仅需要提供稳定的应用服务,而且必须被有效地控制和协调,包括监 测构件的状态和性能、构件故障的定位,恢复及通知机制。 ( 8 ) 进化:系统的需求日益多样化,软件生命周期内不同时间和空间上会产生 新的功能或非功能需求,应用系统适应新需求的过程称为进化。进化阶段的内涵 较为广泛,可以看作是复用周期结束和开始的连接点。 其中,阶段( 1 ) 一( 4 ) 是一个逐步迭代的构件获取过程。基于构件的软件开发 需要有一个l o o k - a h e a d 过程,检索现有的可复用构件,以判定是否具有可复用 机会,系统设计需要根据构件获取的结果不断地调整设计方案,并产生新的构件 需求规格描述,迭代过程在系统设计最终达到稳定状态时结束。 3 ,3 开发可复用构件 基于构件的软件开发方法包括两个相关的过程:建造可复用构件 ( d e v e l o p m e n tf o rr e u s e ) 和基于构件应用系统的构造( d e v e l o p m e n tw i t hr e u s e ) 也就是集成和组装。建造可复用构件是整个开发过程的基础,关于创建可复用的 软件并没有任何神秘之处。抽象、隐蔽、功能独立性、求精、以及结构化程序设 计等设计概念,连同面向对象方法、测试、s q a 以及正确性验证方法一所有均对 可复用软件构件的创建有贡献。 建造软件构件之前,我们应当先了解软件构件应该具备的几个特征: ( 1 ) 自描性:构件必须能够识别其属性、存取方法和事件,这些信息可以使开 发环境将第三方软件构件无缝地结合起来。 ( 2 ) 可定制:提供一个典型的图形方式环境,软件构件的属性只能通过控制面 板来设置。 ( 3 ) 可集成:构件必须可以被编程语言自接控制。构件也可以和脚本语言连接 或者与从代码级访问构件的环境连接,这个特性使得软件构件可以在非可视化开 发项口中使用。 软件构件技术在汉语学习系统中的研究和应用 ( 4 ) 连接机制:构件必须能产生事件或者具有让程序员从语义上实现相互连 接的其他机制。这意味着程序员可以很容易地向按钮添加代码,使点中按钮就可 以影响其他构件的动作。 3 3 1 可复用构件分析和设计 与传统的软件开发不同,在基于构件对象的软件工程中应着重进行构件的规 划、设计与开发。如何将传统的软件工程学和构件对象合理地结合在一起,至今 还处在不断的发展和完善阶段,达成共识仍须时日。一般而言,在软件开发的过 程中,首先应逐步深入地对构件进行功能分析、规划,进行对外接口的设计,进 而落实内部细节的实现,最终完成构件的部署与管理。 数据、功能和行为模型可以被创建以描述特定应用必须完成的任务,书面的 规约被用于描述这些模型并生成完整的需求描述。 理想的分析模型用以确定模型中的那些指向现存的可复用软件制品的元素。 问题是以能够导致“规约匹配的形式从需求模型中抽取信息。b e l l i n z o n i 及 其同事描述了一种针对面向对象系统的方法: 构件被在不同的抽象层次定义和存储为规约、设计和实现类一每个类是来自以前 应用的某产品的工程化描述。规约知识一开发知识一被以复用建议 ( r e u s e s u g g e s t i o n ) 类的形式存储,它们包括对以构件的描述为基础检索可复用 构件及检索后组装和剪裁构件的指导。 使用自动化上具浏览构件库,以试图匹配当前规约中所标记的需求和那些为 现存,可复用构件( 类) 描述的需求。领域特征和关键词被用于发现潜在的,可复 用构件。 如果规约匹配生成符合当前应用需要的构件,设计者可以从可复用构件库中 提取这

温馨提示

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

评论

0/150

提交评论