(计算机软件与理论专业论文)基于组件的软件开发方法的研究.pdf_第1页
(计算机软件与理论专业论文)基于组件的软件开发方法的研究.pdf_第2页
(计算机软件与理论专业论文)基于组件的软件开发方法的研究.pdf_第3页
(计算机软件与理论专业论文)基于组件的软件开发方法的研究.pdf_第4页
(计算机软件与理论专业论文)基于组件的软件开发方法的研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机软件与理论专业论文)基于组件的软件开发方法的研究.pdf.pdf 免费下载

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

文档简介

l 海交通大学硕j :学位论文 基于组件的软件开发方法的研究 摘要 i 到了9 0 年代,软件开发技术的一个重要进展就是组件化。这是 由于现在的系统规模越来越大,一个系统要求完成的功能很多,因 此软件复用和开发效率更加具有非同寻常的意义。基于组件的软件 开发技术是新一代软件技术发展的标志。为了提高软件生产力,设 计开发人员应尽可能地利用组件技术,组装构造新的应用软件系统。 本文旨在阐述基于组件的开发方法和理论。并在此基础上设计并实 、 现了一个多媒体计算机辅助教学应用系统。心 本文首先介绍了组件技术的重要理论基础,给出了组件的定义 和设计构造组件的原则,以及组件的分类。之后详细阐述了在开发 应用软件系统中采用组件技术的意义。研究组件技术的核心之一是: 如何组装成系统并能实现互操作。我们用“互操作性”这词来描述 两个或多个组件合作的能力。目前比较成功的两个组件标准是o m g 的c o r b a 和微软公司的c o m d c o m 。我们分别描述了两者的体 系结构,然后根据集成性,可扩展性,可用性的原则给出了两种组 件标准之间的比较。基于组件的软件工程( c o m p o n e n t b a s e d s o f t w a r ee n g i n e e r i n g ) 是指用装配组件的方法来构造应用程序。 它包含了系统分析,构造,维护和测试的各个方面,在这些方面中 都是以组件方法为核心的。基于组件的软件工程给软件开发带来了 新的思路。 上海交通大学硕士学位论文 基于组件技术的开发方法可以应用在各种不同类型的软件开发 一一 当中。但是由于多媒体应用系统本身的模块化特性,组件技术尤其 适用于多媒体应用系统开发。目前的多媒体应用系统的开发由于多 媒体软件本身的特点存在着开发周期长,对软件开发人员要求过高, 系统在升级和维护上不够灵活等等不足。将基于组件技术的开发方 法应用到多媒体应用系统开发中可以很好的解决上诉的问题。在上 述讨论的基础上,我们实现了多媒体计算机辅助教学系统二十一 世纪汉语。根据需求分析,我们将整个系统划分为多个子系统,每 个子系统都再由多个子组件构成。我们采用基于c o m 标准的组件, 设计并实现了多媒体声音播放组件,汉字显示组件,选题组件以及 、一一 连接点组件等等。通过这些不同的组件的搭配,构成一个完整的多 媒体应用系统。 关键诃 组件,多媒体,基于组件的软件其程,计算机辅助教学。 一f - 海交通大学硕士学位论文 r e a s e r c ho nc o m p o n e n t - b a s e d s o f t w a r ed e v e l o p m e n t a b s t r a c t c o m p o n e n tt e c h n o l o g yi st h em o s ti m p o r t a n ta d v a n c e m e n to f t h es o f t w a r e d e v e l o p m e n t a f t e r9 0 s w i t ht h ea p p l i c a t i o ns y s t e m sb e i n gl a r g e ra n d l a r g e rs c a l ea n d r e q u i r i n gm o r ea n dm o r ef u n c t i o n a l i t i e s ,t h e s o t t w a r er e u s ea n dt h e e f f i c i e n c yo f s o f t w a r e d e v e l o p m e n t h a v em o r e e x t r a o r d i n a r ys i g n i f i c a n c e c o m p o n e n t b a s e d s o f t w a r ed e v e l o p m e n ti st h es i g no ft h en e wd e v e l o p m e n to fs o f t w a r et e c h n o l o g y i n o r d e rt oi n c r e a s et h e p r o d u c t i v i t y o fs o f t w a r e d e v e l o p m e n t ,t h ep r o f e s s i o n a l s , m a n a g e r sa n dd e v e l o p e r ss h o u l dm a k e t h em o s to f c o m p o n e n tt e c h n o l o g yt ob u i l dt h e n e w a p p l i c a t i o ns o f t w a r es y s t e m t h i sp a p e re x p a t i a t e st h et h e o r ya n d t h ea p p r o a c ho f c o m p o n e n t - b a s e dd e v e l o p m e n to nt h eb a s i so fw h i c hw ec o n s t r u c t am u l t i m e d i a c o m p u t e r a i d e di n s t r u c t i o na p p l i c a t i o ns y s t e m a b o v ea l lab r i e fi n t r o d u c t i o no ft h ef u n d a m e n t a l t h e o r y o fc o m p o n e n t t e c h n o l o g y , i n c l u d i n gt h ed e f i n i t i o no ft h ec o m p o n e n t ,t h ep r i n c i p l eo fc o n s t r u c t i n g t h e c o m p o n e n t ,t h ec a t e g o r y o ft h e c o m p o n e n t a n dt h e s i g n i f i c a n c e o ft h e c o m p o n e n t se m e r g e n c e ,i sp r e s e n t e d o n eo ft h ek e yr e s e a r c h e s o nc o m p o n e n t t e c h n o l o g y i sh o wt oc o n s t r u c ts y s t e mv i at h ec o m p o n e n ta n dt h ei n t e r o p e r a t i o n a m o n gc o m p o n e n t s t h et e r m ”i n t e r o p e r a b i l i t y ”d e s c r i b e st h ea b i l i t yt h a th o w t w oo r m o r ec o m p o n e n t sc o i l a b o r a t ee a c ho t h e r a tp r e s e n t ,o m g sc o r b aa n dm i c r o s o f t s c o m d o c ma r et h em o s tp o p u l a rc o m p o n e n ts t a n d a r d w ed i s c u s st h ea r c h i t e c t u r e o fb o t ht h ec o m p o n e n ts t a n d a r da sw e l la st h ed i f f e r e n c eb e t w e e nt h e m a c c o r d i n g t o i n t e g r a t i o n ,e x p a n s i b i l i t y ,u s a b i l i t y c o m p o n e n t b a s e d s o f t w a r e e n g i n e e r i n g i st o b u i l d a p p l i c a t i o ns y s t e mb ya s s e m b l i n gc o m p o n e n t s c o m p o n e n t b a s e d s o f t w a r e e n g i n e e r i n gi sc o m p o s e do fs y s t e ma n a l y s i s ,c o n s t r u c t i o n ,m a i n t e n a n c ea n dt e s t i n g , w h i c ha l la r eb a s e do nt h ec o m p o n e n tt e c h n o l o g y c o m p o n e n t b a s e d s o f t w a r e e n g i n e e r i n gp r e s e n t sa n e w a p p r o a c h o f s o f t w a r ed e v e l o p m e n t c o m p o n e n t - b a s e dd e v e l o p m e n t c a nb e a d o p t e d t ob u i l dm a n yk i n d so fs o f t w a r e a p p l i c a t i o ns y s t e m e s p e c i a l l y t h e c o m p o n e n tt e c h n o l o g y , h o w e v e r , a d a p t s t o m u l t i m e d i as o f t w a r ed e v e l o p m e n tb e c a u s eo ft h en a t u r eo fm u l t i m e d i aa p p l i c a t i o n 上海交通大学硕士学位论文 s y s t e m f o r t h em o m e n tt h e r ea r es o m e d i s a d v a n t a g e s s u c ha s l o n gp e r i o d o f d e v e l o p m e n t ,t o om u c hd e v e l o p e rh a st ok n o wa n di n f l e x i b i l i t yo fs y s t e ma n d s oo n t h e r e f o r ec o m p o n e n t b a s e dm u l t i m e d i aa p p l i c a t i o ns o f t w a r ed e v e l o p m e n tc a nb et h e s o l u t i o nt ot h ep r o b l e m s b a s e do nw h a tw eh a v ed i s c u s s e da b o v e ,w ei m p l e m e n ta m u l t i m e d i a c o m p u t e r a i d e d i n s t r u m e n t s y s t e m 一“2 1c e n t u r y c h i n e s ec o u r s e ” a c c o r d i n g t ot h er e q u i r e m e n t s p e c i f i c a t i o n ,t h ew h o l ea p p l i c a t i o ns y s t e m i sc o m p o s e d o fs o m ep a n st h a ta r eb u i l to nc o m p o n e n t s u s i n gc o m ,w ed e s i g na n di m p l e m e n t t h o s ec o m p o n e n t ss u c ha sm u l t i m e d i as o u n dp l a yc o m p o n e n t ,t e s t i n gc o m p o n e n t , c o n n e c t i o nc o m p o n e n ta n dc h i n e s ec h a r a c t e rd i s p l a yc o m p o n e n t b ya s s e m b l i n g t h o s ec o m p o n e n t s ,w eb u i l dt h ew h o l em u l t i m e d i a a p p l i c a t i o ns y s t e m k e y w o r d s c o m p o n e n t ,m u lt i m e d i a ,c o m p o n e n tb a s e ds o f t w a r ee n g i n e e r i n g ,c a i 海交通人学硕。f j 学位论文 1 1 绪论 第一章组件技术概论 软件开发是一门综合性学科,它包括哲学、基础科学、技术科学、工程管 理四个知识层次。哲学决定着整个学科建立的指导思想、认识论和世界观。认 识论就是人们认识客观世界的规律和方法,我们称它为认知体系川t2 0 0 0 。 应用软件开发时,有自己必须遵循的哲理和认知观,对基础理论、研究方 向以及采用的技术措施起着指导作用。从软件发展的几个里程碑中可看出,认 知观起到了决定性的作用。 软件开发的初期阶段,我们称为程序设计时代,软件开发处于小作坊个体 生产方式水平。到了6 0 年代中期,出现了一些大型复杂的软件系统,人们认识 到以个人的能力难以完成一个大系统的任务。w e d i j k s t r a 首先提出了一种解决 方案,采用结构程序设计方法,就是把软件开发看作数学求解,沿用数学上的 牧举、抽象、归纳、类比等思维方式,把问题简化。用工程的概念、方法、原 理和技术来开发和维护软件,产生了结构化分析和设计的方法。这种开发方法 长期左右着我国的软件开发,无疑起到了重要作用,然而它仍然存在着认知上 的缺陷,如开发周期长、成本高、质量差,特别是所开发的软件不能适应系统 的不断演化。 到7 0 年代,人们认识到,仅从软件结构上脉络清晰是远远不够的,这只是 ”表”,不是”里”,软件在结构上还应该适应客观世界的自然结构。m a j a c k s o n 认为应用软件应该忠于现实、高于现实,提出j s d 系统开发方法,其指导思想 是”仿真客观世界”,采用自底向上的设计步骤。j s d 方法第一次揭示了客观世 界与软件系统之间的关系,因而所开发的软件适应性好、实用性强。然而j s d 方法也存在着固有的缺陷:如何仿真要确定系统的实体和活动,它没有给出准 则可循;没有区分客观世界的模型和软件系统模型,不能直接映射过去,其结 果是系统结构混乱、效率低,软件成份复用性差。 到了8 0 年代,面向对象重新崛起,面向对象的认识论是将系统看成由多个 对象组成,通过对象之间的通信形成了系统,为客观世界过渡到软件系统提供 了途径和编程的思维方法。其主要特征是: 1 ) 类和封装性,实现数据抽象和信息隐蔽,给出了对象类型和参数化, 通过生成实例后组装成系统,提供了实现复用的手段。 2 ) 继承性,提高了代码复用性。 3 ) 多态性。 面向对象的编程技术已经存在了很长的时间。面向对象软件开发技术在8 0 年代 得到得长足的进步,由此出现了许多面向对象的软件开发工具和应用程序。 到了9 0 年代,软件开发技术的一个重要进展就是组件化。这是由于现在的 系统规模越来越大,一个系统要求完成的功能很多,因此软件复用和系统集成 更加具有非同寻常的意义。基于组件的软件开发技术是新一代软件技术发展的 标志。为了提高软件生产力、不草率地开发应用程序,设计开发人员应尽可能 海交通人学硕| :学位论文 地利用可复用的组件,组装构造新的应用软件系统。 1 2 组件基本概念 1 2 1 定义 什么是组件。这同什么是“对象”一样,是大家都理解但是却难以定义准 确的问题。在软件工业界和学术界出现的一些概念只勾画了这个复杂概念的轮 廓。下面列举几个典型的定义 a l a n1 9 9 8 : 定义1 :一个组件是一个系统中重要的、基本上独立的、可替换的部分。在 已定义好的软件体系中执行清楚的功能。适合提供一系列接口的物理实现。 定义2 :一个可运行的组件是一个或者多个程序的动态捆绑包。它作为一个 单元进行管理,通过合约化的接口进行访问。这个接口会在程序运行时出 现。 定义3 :组件是由合约化的接口和明确的上下文依赖所构成的合成体。它可 以独立地被调度,并可被第三方所合成。 定义4 :一个商业组件表示一个“自主的”商业概念或者商业过程的软件实 现。它包含一个商业系统的可复用元素概念。以及用来表示、实现、调度 这个元素所需要的软件工艺。 定义5 :组件是具有一定的功能,能够独立工作或者能同其他组件装配起来 协调工作的程序体。组件的使用同它的开发、生产无关。 这些定义既有联系也有区别,他们的不同部分可以作为彼此的补充。 一个组件的本质是什么? 直觉上,我们将组件看作一个计算单元,它具有 其自身的内部状态并提供了一组操作来对这个状态读出和写入。组件的状态是 不可见的,它只能通过调用组件中的操作才能访问到 a d l e r1 9 9 5 。在这里,我 们规定读操作返回组件当前的状态且不对状态进行修改;而写操作对当前状态 进行修改但不返回任何值。 由于基于组件的设计需要一种机制来保障子组件之间可以相互合作并能够 同时开发。为此,通常的做法是将每个组件的描述分成两个层次 云1 9 9 9 : 接口:接口就是不同的组件之间连接的方法。组件的接口不仅要提供外部 物理实现接口,而且还要提供一个外部逻辑接口,或者说是合约化的接口。 这样通过外部逻辑接口可以给用户提供一个非形式化的该组件的功能描 述,这样更能方便用户了解和使用组件。 实现:接口中描述的具体实现。 1 2 2 接口 一个组件的抽象描述包括语法级和语义级两个层次。语法级描述刻画了怎 样调用一个组件的操作;而语义级描述则刻画了对于组件中操作的期望结果。 对于组件的语义,我们主要关心组件的初始特性以及一个操作的执行所导致的 组件特性的变化。我们使用一阶逻辑( f i r s t o r d e rl o g i c ) g o r d o n1 9 8 8 i 言来描述 :海交通大学硕:l 学位论文 组件的特性: 定义6 :一个特性p 指的是对应于读操作的一个命题公式。它或者是一个布尔 真值t ,或者是一个原子特性p ,或者是一个反特性一p ,或者是一个合取特性 p i u p 2 ,或者是一个析取特性p 1 u p 2 ,或者是一个暗指特性p l j p 2 。即: p 口t ip i ,p i p l d p 2 ip i 3 p 2 ip 1 专p 2 其中原子特性指的是对应于读操作的一个关系表达式。例如:假设x ,y r 是某个组件的读操作,则类似于x = l ,r 集成性 集成性主要反映在基础平台对应用程序互操作能力的支持上。它要求分布 在不同机器平台和操作系统上、采用不同的语言或者开发工具生成的各类 商业应用必须能集成在一起,构成一个统一的企业计算框架。这一集成框 j 二海交通大学硕j :学位论文 架必须建立在网络的基础之上,并且具备对于遗留应用的集成能力; 可用性 要求所采用的软件组件技术必须是成熟的技术,相应的产品也必须是成熟 的产品,在至关重要的企业应用中能够稳定、安全、可靠地运行。另外, 由于数据库在企业计算中扮演着重要角色,软件组件技术应能与数据库技 术紧密集成; 可扩展性 集成框架必须是可扩展的,能够协调不同的设计模式和实现策略,可以根 掘企业计算的需求进行裁剪,并能迅速反应市场的变化和技术的发展趋势。通 过保证当前应用的可复用性,最大程度地保护企业的投资。 2 3 2 两种组件标准的比较 c o r b a ,o r bc o m ,c o m + 集跨语言操作支持支持 成跨平台操作 比较好相对较差 性 网络通信基于t c p ,效率较高基于d e c r p c ,效率较低 公共服务组件提供了一系列的公共服务规仅提供事务服务器m t s 和消 范( c o s s ) ,息队列服务器m s m q 可事务处理对事务处理的支持比较有效 对事务处理的支持相对比较弱 用消息处理 对消息处理的支持相对比较对消息处理的支持比较有效 性 弱 安全服务安全服务功能较强安全服务仅基于n t 的安全机 制,相对较弱 目录服务有较好的支持支持比较薄弱 容错性不强不强 产品成熟性比较成熟相对来说,不太成熟 软件开发商的没有足够的开发工具的支持开发环境和开发工具都比较好 支持度 可扩展性较强一般 表2 - 1 两种组件标准的比较 t a b l e2 - 1t h ec o m p a r i s i o no f t w os t a n d a r d 表2 1 中进一步细化了对于每种原则的要求,给出了两种分布式组件模型的 比较。 通过以上的对比分析,我们知道从功能上来说,c o r b a 技术功能相当齐全, 适合于开发大型的分布式系统,但是,对于c o r b a 而言,开发工具的缺乏, 繁冗的开发过程,巨大的开发、测试投入,使得大量的用户望而却步。相比而 言,尽管c o m c o m + 技术在集成性上,功能的完善性上,可扩展性上,与c o r b a 相比较都略显不足,但是,由于其相对来说的成熟性,开发的方便性,成本的 低廉性,使得对于很多用户还是具有很大的吸引力。目前大批用户都比较熟悉 c o m ,这样它们选择c o m 是很自然的。在这种情况下,作者认为中小型系统 中采用c o m 技术还是可行的,尤其当系统运行的主要平台是w i n t e l 时,这 种优势就更加明显了。 上海交通大学硕士学位论文 第三章基于组件的软件工程开发方法 在上文中我们曾提到过随着计算机技术的飞速发展,各行各业对软件开发 的速度和质量要求都有了很大提高。然而,传统的“手工作坊”式的软件开发状 况未得到根本改变,软件技术的进步远远落后于硬件技术的进步。值得庆幸的 是,九十年代发展起来的“基于组件的软件工程”有望从根本上解决这一问题, 从而成为软件工程进步中的一个里程碑。基于组件软件工程的出现改变了软件 丌发的各个环节,它是软件生产技术的巨大进步。由于九十年代c o m d c o m 、 c o r b a 等组件标准的出现,基于组件软件工程也愈加趋向成熟,它有望从根 本上解决大粒度的软件复用问题和大大提高软件的可维护性、可扩展性,并有 效保护已有的投资。 3 1 基于组件的软件工程与传统技术的比较 3 1 1 基于组件的软件工程与传统软件开发的比较 3 1 1 1 面向数据流的s d 方法 s d 方法,即结构化设计方法,其理论核心,是早期的软件“瀑布模型“ 史 1 9 9 9 。此方法在进行系统的需求分析时,以数据流的流向、次序、格式内容为 软件系统的基本思考点,所画的数据流图( d f d ) 即是通过对输入数据持续加工 处理,而最终得到期望的输出流。此方法以早期的结构化程序设计为基础,总 结归纳出一套内容完整、步骤清晰的文档设计规范( 是后期各种分析设计方法 的基础) 。他支持自顶向下、由底向上、逐步细化的分析设计方法,即s d 方法 首先制定系统的总体框架,然后分层细化出结构化的各个子系统,同时在形成 的各个子系统内部,也允许软件开发者首先解决关键问题,然后将子系统自身 的剩余部分加以丰富,最终形成这一完整的子系统( 即由底向上) ,这种有机的 结合,为大型软件的开发规划奠定了良好的基础,为系统总体规划、子系统之 间的互相协调提供了可靠保证。 但s d 方法也由明显的缺点,早期的瀑布模型要求系统分析员和用户在软件版 本使用之前,精确地对一个现代软件产品提出要求,而这种要求并不符合人们 认识问题时由浅入深、由模糊到清晰的客观特点。同时改模型没有留出足够的 修改余地,对系统分析、设计人员要求较高,所以开发周期长,系统复杂,维 护起来更加繁琐。 3 1 1 2 快速原型开发 原型化的核心是原型模型,于之相适应的方法是两步设计法。第一步是原型设 计,即充分利用现有软件来形成新系统,以便用最快的速度实现用户的反馈和 对软件系统理解的加深,不断地对原型进行补充与细化。第二步是最终设计, 在对原型已做完善的基础上,保留第一步中能够完成有关任务并达到所需性能 j :海交_ i 匝大学硕士学位论文 的那些模块,对其余部分作废并重新设计 速原型法反映了不断更迭的快速修改过程 定义技术。 最终完成全部软件系统的设计。快 从分析和设计的意义上是一种动态 但是该方法与s d 方法向比较,能大大减少系统的后期维护费用,并使得软件系 统能正确反映用户的需求。该法的不足之处有两点:其一,如果对原型本身的 设计描述失当或者功能不全,则使得原型本身的改进和使用超过预期代价。其 二,对快速的软件开发工具或者环境要求过高,许多系统开发者可能感觉困难。 3 1 1 3 喷泉模型和螺旋模型 喷泉模型认为软件生命周期的各个阶段是相互重叠和多次反复的。就像水喷上 去又可以落下来,即可以落在中间,也可以落在最底部。类似一个喷泉。喷泉 模型是在面向对象方法中发展而得到的。 螺旋模型是在原型模型基础上,引入多次原型反复并增加风险评估的螺旋式开 发模型。在原型模型中,由于需要对原型进行多次评价、改进、可能会引入其 他风险,诸如计划的调整,需求的增加等,需进行基于初始需求的风险分析。 3 1 1 4 结论 下表表示了基于组件软件工程与传统软件开发的比较 l传统软件开发l基于组件软件工程 软件结构 紧耦合松耦合,模块化 软件成分 重点在于实现;重点在于接口; 组件的特白盒;黑盒: 点 i 开发流壬旱 ;9 u 大( w a 爆t e r 炸f a l 式1 ) 饵i g _ b a n g 和瀑布式 ) d 式( e v o l u t i o n a l ) 和并发式 | 方法学l i 从小粒度的“软件片”开始构造i 装配 i - 开发组织9 开发组l 磊篓制造商服务代理组件集 3 1 2 基于组件的软件工程和面向对象技术的联系和区别 基于组件软件工程与面向对象技术有着密切的联系,因此往往有人将两者 混淆起来。实际上面向对象技术对于基于组件软件工程既不是必要条件,也不 是充分条件。 首先,组件不一定要用面向对象语言编写,任何一种可以实现组件标准接 口和所需功能的语言都可以用来编写组件。虽然由于面向对象语言的种种特点, 一般认为它是编定组件的最自然的语言。但国外有一些专家反而认为目前使用 的面向对象技术如j a v a ,c o r b a 和a c t i v e x 并不稳定和足够成熟,并不是最佳选 择。 而且,基于组件软件工程扬弃了面向对象技术的某些特点。多态性和继承 性是面向对象技术的重要特点。但是,对象之间的继承性可能造成系统间的级 上海交通大学硕士学位论文 联影响,即父类的改动会引起相应的子类的性质的自动变化。这些性质对于基 于组件软件工程显然是不利的。基于组件软件工程更重视的是封装性,它希望 将程序修改导致的影响严格限制在组件的内部。 另外,基于组件软件工程的涵盖面要广于面向对象技术。基于组件软件工 程包括了系统分析,系统的设计与建模,项目组织,组件的开发的管理等各个 方面,而面向对象技术通常只包含面向对象分析,面向对象设计,面向对象编 程这三个方面。 3 2 基于组件软件工程的开发过程 基于组件软件工程( c o m p o n e n tb a s e ds o f t w a r ee n g i n e e r i n g ) 是指用装 配组件的方法来构造应用程序。它包含了系统分析,构造,维护和扩展的各个 方面,在这些方面中都是以组件方法为核心的 m i k i o1 9 9 8 k o z a c z y n s k i1 9 9 8 。 与传统的软件复用方法比较,基于组件软件工程有以下特点 王2 0 0 0 : 即插即用:组件可以方便地集成于框架中,不用修改代码,也不用重新 编译。 以接口为核心:组件的接口和实现是分离的。组件通过接口实现与其他 组件和框架的交互,组件的具体实现被封装在内部,组装者只关心接口, 不必知道其实现细节。 标准化:组件的接口必须严格地标准化,这是组件技术成熟的标志之一。 目前主要的组件标准有:m i c r o s o f t 的c o m d c o m ,j a v a 的j a v a b e a n s 和e j b , o m g 组织的c o r b a 。可以说,计算机界很久以前就有用组件来装配成应用软 件的想法,但始终未能成为现实,其中的一个主要原因是组件标准的缺乏。 正是由于出现了以上较为成熟的组件标准,才使得基于组件软件工程由梦 想走向现实。 组件通过市场销售和分发:大量成熟的组件可以通过市场购得,市场的 竞争机制也可以促进组件生产的质量的提高、种类的增加和价格的降低。 图3 - 1 显示了传统的开发过程。 l需求分析 j l l系统设计 lj r l实现 上 i测试 j 上 维护 图3 - 1 传统技术的开发过程 f i g 3 1t r a d i t i o n a ls o f t w a r ed e v e l o p m e n t 、 上海交通大学硕士学位论文 图3 2 给出了基于组件软件工程的开发方法。通过比较可知:基于组件软件工 程的开发以组件为核心,而且在需求分析阶段就可着手进行组件收集工作,增 加了开发的并行程度,这从另一个方面提高了开发效率。 组件开发 应用程序的开发 图3 - 2 基于组件软件工程 f i g 3 - 2t h ec 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 从图中可以看出。基于组件软件工程的开发包括两部分: 组件的开发; 应用程序的开发。 整个基于组件的软件工程的设计过程包括: 1 ) 需求分析阶段。该阶段主要是进行问题定义,给出需求规范说明。 2 ) 系统组件和组织组件的建立: 根据需求规范说明确定该应用系统需要哪种系统组件及组织组件:分 别从系统组件库、组织组件库中查询,查询后可能出现下面三种情况: a ) 直接重用; b ) 间接重用: c ) 重新创建( 创建完毕后将其扩充到系统组件库中) 。重新创建时。一 般应由用户向软件制造商提供需求规范,由他们生产实现。当然, 也可由用户自己在组件规范下创建,重新创建阶段应尽量重用现有 的组织件和分子、原子组件。 3 ) 组装阶段。通过组装平台将系统组件和各种组织组件组装成应用系统的原 型,组装过程包括事件驱动组件的过程。由于组装平台上的组件都是大粒度 的,没有小粒度的组件,因此节省了组装时间,也提高了组装的可靠性。 4 ) 原型反馈,或者说是测试阶段。若原型满足用户需求,则转到第5 步,否 则转到第1 步。 上海交通大学硕士学位论文 5 ) 运行阶段。 6 ) 维护阶段。 另外组件库在基于组件的软件开发方法中也起着重要的作用。所谓组件库,是 一种特殊数据库应用系统。主要储存组件的相关信息。它应该包括以下几个功 能。 向组件库加入组件,删除组件。 支持组件的分类描述。 支持组件的分类查找和关键字查找。 支持组件的版本管理。 3 3 测试 要用组件来快速构造一个可靠的系统、测试是必不可少的,否则将带来灾 难性的后果。软件系统至少应该进行三种测试 w e y u k e r1 9 9 8 : 单元测试:测试单元组件; 集成测试:测试由组件构成的子系统; 系统测试:测试出子系统构成的整个系统。 下面分两种情况讨论基于组件的软件系统的测试问题 翁2 0 0 0 。 3 3 1 复用为某个项目开发的组件 首先,一个为某个特定项目或者应用开发的组件再未经过附加的严格测试 之前,不能在别的项目中复用。这是由于为某个特定项目而开发的组件,在最 初的测试时并没有考虑到要被别的项目所复用,而关于这个特定的软件通常怎 么用,或者期望它应该怎么用的先验知识往往影响测试用例的选择:测试者通 常对怎样使用这个软件都有一点知识或者指导,这在潜意识里使得测试者着重 于测试其认为是重要或者核心的部分。而当把这个组件复用用于其他系统时, 新的系统对这个组件使用的侧重点可能发生了变化,而原来的测试者可能并没 有重视新的侧重点,没有严格的测试。所以在把这个组件集成到新的系统之中 之前,需要另外进行严格而系统的测试。 其次,为某个特定系统而开发的组件,当系统的环境发生了变化的时候, 需要重新进行测试,否则将导致很严重的后果。实际上,这一点对所有类型的 组件都是适用的。美国的a r i n e 5 发射失败的例子是一个很好的教训。a r i n e 5 发 射失败的原因就是复用了a r i n e 4 系统中的组件,而没有重新进行测试。 3 3 2 复用为多个用户开发的组件 为不同应用的环境而开发的软件组件可分为两类:一是家用的( i n h o u s e ) 组 件库;二是商用的o f f - t h e ,s h e l f ( c o t s ) 组件。 家用的组件库和c o t s 组件在开发时都考虑到了不同的应用场合和使用模 式,这两类组件最初的开发测试者自然了解这种情况,因此努力挖掘组件可能 的应用,并开发了许多测试环境。但是尽管如此,开发测试者也不能穷尽所有 、 j 二海交通大学硕士学位论文 可能的潜在的应用场合。所以组件的用户在把这些组件集成到他们的系统中时 还要根据应用环境进行大量的测试。 对两类组件的测试面临着许多困难,例如: 缺乏源代码,无法修改组件; 无法同组件最初的开发者进行交流; 对组件的内部机制缺乏细节的知识; 对c o t s 组件来说,还要考虑某个特定系统所不需要的大量额外功能, 这些额外的代码可能导致互操作性问题,并对系统产生的负面的影响。 所以这两类组件的测试是相当困难而昂贵的。 3 4 维护 基于组件的软件系统由于其自身的特点,因此必须重新考虑软件的维护问 题 v o a s1 9 9 8 。一个基于组件的软件系统采用的组件可以是c o t s 组件、公开 软件、自用软件、共享软件等。对组件继承者来说,当把这些组件集成到系统 中时,由于缺乏部分或全部源代码,使得维护变得十分困难。如果组件全部是 “黑盒”,其可见部分仅仅局限于描述组件使用和功能的文档上,那么这对全部 由黑盒构成的系统的维护,又增添了新的难度。对组件卖主来说,不能只考虑 特定应用领域的某一源代码块,而应维护被不同用户所使用的所有代码。因为 每个应用可能在需求上有一点差别,修改后的组件必须对所有的应用都适用。 c o t s 组件的维护 维护包含c o t s 组件的系统会遇到许多困难,如:功能冻结,不兼容升级, c o t s 组件有缺陷或者不可靠。用来在c o t s 组件和用户软件之间进行代 理的中间件太复杂或者有缺陷等。 家用组件库的维护 家用组件时那些存储在复用库里的组件。组件库的体系结构会影响到所有 适用的库内组件的系统的维护过程。基本上,结构化的库更难以维护,因 为它们是根据信息类型来组织的。应用可能同库内的任何事物发生联系, 而不仅仅是某个特定组件的信息。维护家用组件库所面l 临的问题是必须确 保组件的修改同使用组件的应用都是兼容的。维护可复用组件库的一种方 法是对软件库施加不同的访问原则。通过加入关于组件修改的逻辑原则, 可以更好地组织组件开发和维护。然而,根据库访问原则开发软件会挫伤 开发者的创造性。因为开发者在修改组件之前必须先检查修改的源代码的 正确性,在把组件重新放回库里之前,必须先测试修改可能导致的改变情 况。同时在测试者监测到这些组件时,必须把这些组件锁起来,以防止其 他人同时修改组件,因此影响了使用了这些组件的系统的维护。 除此之外,维护可复用的组件的另一种方法是“提升法”。它对所有应用都 由三种层次:开发,维护、测试和公开;各个组件开发者在开发维护的层次上对 组件进行修改,并加入到自己的个人库中。当他确信修改无误时,把代码交给 开发管理者,管理者把所有的修改集成,并提升到测试层。在测试认可了这些 修改之后,管理者把软件提升到公开层,共一般人使用。 、 上海交通大学硕士学位论文 3 5 基于组件的软件工程开发中的管理 正如大规模工业化生产给工业生产的管理带来了巨大变革一样,基于组件 软件工程的出现也使软件生产的管理产生了重大变化。 软件开发中的瓶颈由个人技术转向开发管理。由于工业化生产替代了作坊 式生产,在专业化分工的前提下,除了极少数岗位( 如组件开发员) 外,不再需 要很高深的编程技术,而只需本岗位的相关知识。个人技术不再是软件开发的 瓶颈。相反,如何使各个岗位协调工作,提高效率,发挥每个人的积极性,成 为最主要的课题。 软件生产中出现了许多新的岗位。我们必须按照基于组件软件工程的要求 建立一条类似于汽车生产流水线的软件生产流水线,设置相应的岗位。它应包 含以下的岗位:系统分析员,基于组件的系统设计员,组件库的维护与管理员, 组件开发员,组件测试员。组件评价与组件采购员,组件应用装( 组件装配) 员。 系统测试员。 编程人员的观念应该得到改变。目前,编程人员开发的软件难以被复用, 往往是因为程序员将开发的软件视为自己的“私有财产”。而且在开发中他们不 愿意使用其它人编写的可复用成份,认为难以理解和难以维护。这种观点在基 于组件软件工程中必须改变。首先,在软件开发中应充分考虑可复用性,充分 考虑通用性和互操作性。应当认识到:牺性局部的效率而换来可复用性,牺性 局部的- 丌发速度而换来整体的进度是值得的。另外,经过严格测试和符合接口 标准的商业化软件是可靠和可以信任的。 3 7 基于组件的软件工程的意义 1 ) 基于组件的软件工程从根本上改变了软件生产方式 我们知道,正是福特创造了汽车的流水线制造法,才开创了工业化大规 模生产的新纪元。而福特制造法的精髓就是改变以往的手工作坊方式, 将汽车生产的重点从制造每一个零件转到装配,汽车制造者不必自己设 计制造每一个零件。大部分零件由外购而来。福特制造法大大提高汽车 的产量和质量,大幅度降低了汽车价格。过去的软件生产方式与旧的汽 车生产方式十分相似,开发者往往要编写程序中的绝大多数代码。因此, 如果能实现象组装汽车或机器一样地进行软件开发。将是软件工程的巨 大进步。 2 ) 基于组件的软件工程提高了软件复用率,保护了已有的投资。 生产好的组件可以分发销售给多个其他用户,一方面大大降低单个组件 的成本,另一方面大大降低软件开发中的重复劳动。目前在各家企事业 单位中存在着许多旧的计算机软件系统,可以将这些系统分成模块后通 过组件技术封装起来,成为新系统的组成部分。这种通过标准的接口将 旧的程序代码隐蔽起来的做法,巧妙地保护了已有的软件投 3 ) 基于组件的软件工程使开发者将更多的注意力放到业务流程和业务规则 上去。由于开发者的主要工作是构造框架和装配组件,使他们可以摆脱 编程的细节问题,将更多的精力投入到与用户交流。另外,开发者和业 务管理者也可以在更高的层次上,用偏近于业务而不是偏近于计算机的 j 海交通大学硕j :学位论文 语言进行讨论。 4 ) 用基于组件软件工程开发的系统灵活,便于维护和升级。 由于基于组件软件工程是模块化开发,如果某个模块需要修改,只需用 修改好的模块替换掉以前的模块,不用重新编译整个系统。若想扩展系 统的功能,也只需将符合框架约束条件和接口要求的扩展模块直接加入 到该系统即可。由此可见,基于组件软件工程开发的系统的维护和升级 都十分方便。 5 ) 基于组件软件工程降低了对系统开发者的要求。 尽管基于组件软件工程没有消除系统开发者和使用者之间的分界线,但 却移动了这条分界线。这是因为基于组件软件工程的丌发者主要任务是 装配已有的模块,不需要有很高的编程技巧。从而使更多的人可以构造 适用于自己的系统。在开发环境中,仅仅在构造组件时才需要对编程语 言的熟悉和高超的技巧。 上海交通大学硕士学位论文 第四章基于组件的二十一世纪汉语系统设计 4 1 目前多媒体应用系统中的不足 多媒体技术是9 0 年代兴起的一股热潮,近年来它的发展非常迅速,前景十 分诱人。多媒体技术改变了计算机多年来生硬、呆板的脸孔,换上了丰富多彩、 形声并茂的漂亮面容、正在人们工作、生活的各个领域发挥着越来越大的作用。 多媒体技术为计算机应用开拓了更广阔的领域。多媒体系统不仅涉及到计算机 的各应用领域,也涉及到消费性电子产品( 小家电、电子游戏、交互光盘等) 、 通信、传播、出版、商业广告及购物、文化娱乐、各种设计等领域或行业。综 合起来,多媒体已成功地应用于以下几个领域中。 多媒体通信 教育与培训 多媒体电子出版物 多媒体声光艺术品的创作 桌面出版物( d e s k t o pp u b l i s h i n g ) 与办公室自动化 目前多媒体应用系统往往都是由不同的软件开发公司或者研究机构独立开 发。所采用的方法也不尽相同。但是很多的基本的多媒体应用功能都是类似或 者是重复开发的。例如声音和图像的压缩解压缩技术。这样的做法无疑会带来 很多的弊端。 开发周期长,对软件开发人员要求过高 多媒体应用系统的开发实际上牵涉的范围很广,网络技术,硬件知识, 软件开

温馨提示

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

评论

0/150

提交评论