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

下载本文档

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

文档简介

z a 7 0 硕 士 学 位 论 文 l % s【 f r 5 i l i e si 1 5 . 为提高构件的检索效率, 进一步提出了可复用构件的三维模型和相应的 实现算法。 6 . 针对构件的并发冲突问 题,运用p e t r i 网理论进行了形式化描述,并提 出了相应的解决方案和实现策略,同时给出了p e t r i 网的实现模型。 7 . 以 文中提出的思想和方法, 设计开发了一个基于构件的软件复用系统一 高 校实 验室信息管理系统, 从应用的角度证明了可复用构件及软件复用技术在 系统设计和快速实现方面所具有的突出优势和强大的生命力。 一 最后总结了 全文所做的工作, 并提出了 进一步 研究的方向。 i 关键词:软件工程;软件复用;构件;p e t r i网;二维模型;三维模型;并发 控制 刹 inser s i:f11 ab s t r a c t s o f t w a r e r e u s e i s a t e c h n i q u e t h a t s o f t w a r e r e s o u r c e s c r e a t e d i n p r e c e d i n g s o f t w a r e a c t i v i t i e s c a n b e r e - o r g a n i z e d a n d e m p l o y e d i n c u r r e n t s y s t e m d e v e l o p m e n t . t h e r e s o u r c e s i n c l u d e n o t o n ly p r o g r a m s b u t a l s o t h e me t h o d s , r e q u i r e m e n t s p e c i f i c a t i o n , d e s i g n c o n s t r u c t i o n , d e v e l o p m e n t t o o l s a n d e n v i r o n m e n t , t e s t i n g a n d a n a l y s i s d a t a a n d ma i n t a i n i n f o r m a t i o n , e t c . i t h a s b e e n p r o v e d t h a t s o f t w a r e r e u s e i s p r a c t i c a l a n d f e a s i b l e a p p r o a c h t o r e a l iz i n g s o f t w a r e s t a n d a r d i z a t i o n , r a i s i n g s o f t w a r e p r o d u c t i v i t y , i m p r o v i n g s o f t w a r e q u a l i ty , r e d u c i n g d e v e l o p m e n t c o s t a n d s h o r t i n g d e v e l o p m e n t c y c l e . mu c h a t t e n t i o n h a s n o w b e i n g p a i d t o t h i s t e c h n i q u e i n t h e f i e l d o f s o f t w a r e e n g ine e r i n g . a s p a r t i c u l a r i s s u e s o f s o f t w a r e r e u s e ,t h e c o m p o n e n t - b a s e d r e u s e t e c h n i q u e s w a s w i d e l y c o n s i d e r e d a n d u s e d i n s o f t w a r e e n g i n e e r i n g . b a s e d o n t h e s e t e c h n i q u e s , m u l t i f a r i o u s r e u s a b l e c o m p o n e n t s c o u l d b e p r o d u c e d e a s i l y f r o m e x i s t e d a p p l i c a t i o n s y s t e m s a n d s t o r e d f o r l a t e r u s e . t h e d e v e l o p e r s c a n d e v e l o p a n e w s y s t e m e x p e d i e n t l y b y e x t r a c t i n g t h e s u i t a b l e c o m p o n e n t s f r o m c o mp o n e n t w a r e h o u s e s a n d m a k i n g u p t h e m . i t i s p r e d i c t e d t h a t t h e c o m p o n e n t - b a s e d r e u s e w i l l l e a d t o a f u n d a m e n t a l r e v o l u t i o n i n s o f t w a r e i n d u s t r y a n d b r i n g a n e w w a y f o r s o f t w a r e e n g i n e e r i n g i n t h e 2 1 s t c e n t u r y . a c c o r d i n g t o t h e s t a t e - o f - t h e - a r t s o f t w a r e r e u s e a n d t h e t h e o r i e s a n d t e c h n i q u e s o f s o f t w a r e c o m p o n e n t , 比e c o m p o n e n t - b a s e d s o f t w a r e r e u s e w a s s t u d i e d i n d e t a i l i n t h i s p a p e r . t h e m a i n p o i n t s a r e a s t h e f o l l o w s . 1 . we d e s c r i b e t h e d e v e l o p m e n t s t a t e o f s o f t w a r e r e u s e t e c h n i q u e s , a n d p o i n t o u t t h a t s o f t w a r e r e u s e w i l l b e a m i l e s t o n e o f s o f t w a r e e n g i n e e r i n g . 2 . t h e c o m mo n d e v e l o p m e n t m o d e s a n d s o f t w a r e r e u s e f o r m s o f s o f t w a r e e n g i n e e r i n g s u mm a r i l y a r e i n t r o d u c e d . t h e c l a s s i f i c a t i o n o f s o f t w a r e r e u s e i s a l s o m a d e a c c o r d i n g t o r e u s e s iz e . 3 . we i l l u s t r a t e s o m e c o m p o n e n t s t a n d a r d s l i k e c o m, c o m , d c o m, o l e , a c t iv e x c o n t r o l s , e t c . a n d t h e m a n a g e m e n t t e c h n i q u e s i n c l u d i n g c l a s s i f i c a t i o n , f o r m a l iz e d m a t c h i n g a l g o r i t h m s , a n d r e t r i e v a l m e t h o d s o f r e u s a b l e c o m p o n e n t s . 4 . c o m p o n e n t - b a s e d s y s t e m d e s i g n me t h o d s a r e s t u d i e d i n d e t a i l . a t t h e s a me t i m e , a t w o - d i m e n s i o n a l c o m p o n e n t m o d e l a n d t h e r e l a t e d a l g o r i t h m a r e p r e s e n t e d . 5 . i n o r d e r t o i m p rov e c o m p o n e n t r e t r i e v a l e f f i c i e n c y , w e p r e s e n t a t h r e e - d i m e n s i o n a l mo d e l a n d t h e r e l a t e d a l g o r i t h m . 6 . f o r t h e i s s u e s o n c o mp o n e n t c o n c u r r e n t c o n fl i c t o c c u r r e d d u r i n g c o m p o n e n t r e u s e , w e p r e s e n t t h e s o l u t i o n s t r a t e g i e s b a s e d o n p e t r i n e t a n d t h e r e l a t e d p e t r i mo d e l s . f i n a l l y , a u s a b l e r e u s e s y s t e m n a m e d i n f o r ma t i o n m a n a g e m e n t s y s t e m u s e d f o r u n i v e r s i t y l a b o r a t o r y d e p e n d i n g o n t h e c o m p o n e n t t e c h n i q u e s m e n t i o n e d a b o v e i s d e s i g n e d a n d d e v e l o p e d . i t i s t h e f a c t t h a t s o f t w a r e r e u s e a n d r e u s a b l e c o m p o n e n t a r e p o w e r f u l a n d s i g n i f i c a n t t e c h n i q u e s i n a p p l i c a t i o n s y s t e m d e s i g n a n d i m p l e m e n t a t i o n . wh a t h a v e b e e n d o n e a n d w h a t t o b e d o n e b y t h e a u t h o r i n t h e f u t u r e b r i n g s t h i s t h e s i s t o 伍e e n d . k e y w o r d s : s o f t w a r ee n g ine e r ing ;s o f t wa r e r e u s e ;c o mp o n e n t ; t w o - d i m e n s i o n a l mo d e l ; t h r e e - d i me n s i o n a l mo d e l ; c o n t r o l p e t r i n e t ; co n c ur r e n t 爵 石 万 士学位论文 , 丁 e r ti t i i f si s 第一章绪 论 1 . 1引言 西方计算机界科学家把软件开发和维护过程中遇到的一系列严重问题统 称为 “ 软件危机” 。软件危机最早出现于六十年代末期,主要表现是:软件质 量差, 可靠性不能保证; 软件成本的增长难以 控制, 在成本预算内 往往不能完 成任务;软件开发进度不易控制,周期延长;软件维护困难,维护人员和维护 费 用不断增 加1 4 2 1 。 例如, i b m公司开 发的o s / 3 6 0 系统, 耗资数 千万美 元, 花费五千多人年,拖延了几年才交付使用, 之后还不断发现错误。有的软件在 耗费了大量的人力物力后,无果而终。 更为严重的是, 用错误方法开发出来的 许多大型软件几乎无法维护,只好提前报废,造成了巨大损失。 软件危机的另一个突出表现是: 一方面有大量的软件需要开发和维护, 另 一方面却存在 大量的重复工作, 导致软件成本逐年上升、 软件生产率远远跟不 上计算机应用普及的要求。 据美国加州进行的一项调查结果显示, 同类软件公 司设计的商业、 银行及保险业务应用系统中, 7 5 %以上的功能是重复的。 重复 劳动使软件的社会成本居高不下。 软件危机的严重影响迫使人们不断研究和探索更好的软件开发技术和方 法。 面向对象概念的提出和理论技术的不断发展,为缓解软件危机提供了一条 有效的技术途径,其中一个主要原因在于它为软件复用提供了 有力支持13 , 4 1 软件复用思想的提出及软件复用技术的发展, 对软件界乃至于整个计算机 技术的发展有着深远的历史意义和现实意义15 1 。 据估计, 一个有8 0 %可复用能 力的软件开发公司将比同等规模但只有 2 0 %可复用能力的公司具有更大的生 产能力。这意味着能在更短的时间内生产出更多的软件产品。一般而言,利用 可靠的复用成分设计和开发的应用系统, 将得到质量上的总体保证,由此而带 来的市场机遇将直接提高公司的经济效益和社会效益16 1 0士学位 论之 一 肇 1 . 2软件复用技术的发展 1 . 2 . 1软件复用技术的发展 软件复用并不是一个新概念, 它的首次提出可追溯至二十世纪六十年代末 期。截至目前,共经历了四个标志性的研究、发展阶段: 1 . 1 9 6 8 -1 9 7 8 年:萌芽、潜伏期 在1 9 6 8 年德国g a r m i s h 举行的n a t o ( 北大 西 洋公 约组 织 ) 软 件工 程会议 上, d o u g h mc i l r o y 在其论文“ m a s s p r o d u c e s o f t w a r e c o m p o n e n t s ”中提出 软件复用概念。希望 通过代码复用实现软件开发的大规模生产。 mc i l r o y设想 软构件可根据它们的通用性、 性能、应用平台等进行分类, 使复杂的软件系统 可以象硬件设计一样, 通过标准的构件进行识别、组装,这也是类构件软件复 用思想的雏形, 但以 后的 十 年, 软件复用的 研究并 未 取得 实 质进展 17 , 8 1 2 . 1 9 7 9 -1 9 8 3 年:再发现期 1 9 7 9 年l a n e r g a n 发表论文, 对其在r a y t h e r m i s s i c e d i v i s o n 的一项软件 复用项目 进行总结, 使得软件复用技术重新引起了 人们关注, l a n e r g a n项目 小组分析了5 0 0 0 个c o b o l源程序,发现设计和代码中有6 0 %的冗余,因此 可标准化并被复用。 此后的几年,其他软件工程者也通过研究发现商业、金融 等系统的大部分逻辑结构和设计模式都属于编辑、维护、报表等类型的模块, 可通过对这些模块重新设计和标准化而得到较高的复用率。 3 . 1 9 8 3 -1 9 9 4 年:发展期 1 9 8 3 年, h e d b i g g e r s t u f f a 和a l a n p e t i s 在美国 的n e w p o r t 组织了 第一次 有关软件复用的研讨会,随后在1 9 8 4 , 1 9 8 7 年,美国i e e e t r a n s a c t i o n s o n s o f t w a r e e n g i n e e r i n g 和i e e e s o f t w a r e 分别出 版了 有关软件复用的专辑。 1 9 9 1 年第一届软件复 用国际 研讨会( i ws r ) 在德国举行, 之后在1 9 9 3 年又举行了 第 二次研讨会。在此期间,欧洲实施了几个有关软件复用的重点项目,如 e s f ( e u r e k a s o f t w a r e f a c t o r y ) ,主要目 标是提供软 件复用的i具支持。 4 . 1 9 9 4 年至今:成熟期 1 9 9 4 年的软件复用国际研讨会议改称软件复用国际会议, 此时软件复用技 术已引起了计算机科学界的广泛重视,越来越多的人投入到这一技术的研究 暑夕 afi f 怒 中。 面向对象技术的崛起给软件复用技术以新的希望,出现了类库、 构件等新 的复用方式, 微软的a c t i v e x是其典型代表。互联网的出现以及由此引发的全 球化分工给软件复用技术的应用提供了又一次良 好机遇, 很多学者正着手研究 网上软件类库的实现、 应用软件的网上组合生产等问题, 这一切都预示着软件 复用技术正逐步走向成熟。 1 .2 . 2国内外研究现状及预测 国际上,软件复用在领域工程、构件及构件库的标准化、构件组装技术、 基于复用的软件开发过程和复用成熟度模型等方面取得了重大成功。 如: 卡内 基 梅隆大学的软件工程研究所( c mu / s e i ) 提出了面向 特征的领域分析方法 ( f e a t u r e - o r i e n t e d d o m a i n a n a l y s i s m 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 项目 组于 1 9 9 2 年提 交了a l o a f ( a s s e s l i b r a r y o p e n a r c h i t e c t u r e f r a m e w o r k , 开 放体系结构的 构 件 库框架 ) v e r s i o n 1 .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 提出了 基于复用的软件开发过程。 i b m 和l o r a l f e d e r a l s y s t e m公司研究出了 复用成 熟度模型等等i9 , i o i 国外大型软件公司在所提供的集成开发环境中也蕴含有软件复用技术, 为 开发者提供了 使用方便、 性能可靠的软件构件。 例如, mi c r o s o f t 公司的系列 可 视 化产品 、 e s r i 公 司的m a p o b j e c t s . i n t e r g r a p h 公司 的g e o m e d i a 等。 在国内, 杨芙清院士主 持的国家重点科技攻关项目 青鸟工程, 重点研究了 软件的工业化生产流程和软件复用的相关技术, 并取得了可喜的研究成果。 他 们己将该技术应用于桂林百货大楼、北京前门商场等p o s 系统。 软件复用技术现已在国内应用于许多领域, 如小型探测卫星系统软件的可 复用性结构设计, 它不仅缩短了 开发周期, 节省了大量的 人力和财力, 而且使 得当 需要在卫星上采用一 种新技术或改变原系统结构时, 不会出 现整个星载软 件 系 统的 大量改 动 或重 新设 计 ii i 。 又 如“ 基于 构 件 技 术的 商 业d d s , 应用了 软件复用思想,开发了“ 保本保利分析” 、 “ 商品适销率分析” 等商业 d d s构 口,., 几 ! 已 士于 三 件, 取 得了 令 人 满 意的 效 果 四。 i n t e r n e t 的广泛传播,提供了一种比较标准的方法连接地理分散的实体。 i n t e r n e t 用户众多,方便快捷,交互性好,费用低,功能强大,给软构件工业 提供了机遇11 3 , 1 4 1 。 随着i n t e r n e t 的发展, 软件产业的发展形态也发生了 变化, 基于计算机网络的软件产业,己从封闭的自 给自 足软件开发方式, 逐渐演变为 基于软件复用的开发模式。目 前, 在美、日 等国家已 产生通过电子商务将构件 取出、 整合、组装,从而形成应用软件系统的软件开发产业。国内由 于种种原 因,在这方面进展缓慢。 在再利用、 组装、 加工、 构筑标准构件市场等方面还 有待进一步发展。 展望未来, 软件复用技术和活动将变得系统化和规范化, 会出现更多的组 织使用复用技术,产生可支持复用和领域( d o m a i n ) 分析的软件开发环境和 c a s e工具, 涌现特定领域的可复用软件构件工厂, 形成支持领域或领域间复 用软件的开发标准等11 5 1 。软件复用将越来越成为软件开发中的重要技术手段。 可以预计,在不远的将来,可复用技术将为软件开发带来革命性的变化。 1 .3研究背景与意义 软件复用技术的实质在于它能显著提高软件的生产效率, 增强软件可维护 性和鲁棒性, 从而达到延长软件的生命周期, 降低开发成本和缩短开发周期的 效果, 因此对软 件复用方法的 研究一直是软件工程中的重点和热点 1 6 1 。 传统上 的软件复用一般是指程序源代码的复用( 存在于大量的己 有系统开发实践中 ) , 但这并不能给软件开发效率带来数量级上的提高。 事实上, 复用还包括软件的 分析、设计、实现、维护阶段以及相应的文档、知识等一切与软件开发过程有 关的内容。为更好地利用前期的开发成果, 在最初的分析、设计过程中就应该 以一种复用的思想来指导整个建设过程。 对于一个特定领域来说, 通常其工作 流程和规范大多是相同或相似的。当软件开发人员为该领域中的某个企业设 计、开发系统后,其大多数成果可以经过重新整合、提炼,再运用到同领域的 其他企业, 不必对类似的项目 从零开始开发1 1 7 , 1 8 1 。 这样既可以 解决功能方面的 需求问题,又能提高系统的灵活性和可靠性, 缩短开发周期。这在当今的许多 系统建设中己得到检验。 骑) 、学 位 、 文 为了 使应用软件有良 好的平台 兼容性( 互操作性) 、结构开 放性、 规模可变 性( 可扩展性) 及软件的复用等,国际 上成立了许多标准化组织来对系统和处理 方式加以标准化, 但这只是增强软件可操作性和复用性的一种权宜之计, 并不 能彻底解决问题。 在这种情况下,出现了具有互操作能力和可复用能力的构件 对象设计模式及构件技术p 9 -2 2 1 软件产业要达到工业生产的工程化水平, 构件的生产和使用起着重要的作 用。 软件的生产可以象硬件的生产一样, 在设计好框架后通过标准的构件组装 而成。 一般认为, 构件是具有一定功能、 能够独立工作或同其他构件组合起来协 调工作的程序体,一经产生,就与它的具体实现语言无关。 利用构件可方便地 构造出应用系统, 是实现软件复用的现实可行的技术。 现在许多大中型系统的 研制正从过程化、 模块化生产模式逐步转向构件化组装模式。 研究部门也将软 件复用技术的研究重点转移到构件实现规范制定和构件研制上来。 当前关于构 件的 标准 主 要 有m i c r o s o f t 公 司的o l e ( o b j e c t l i n k i n g a n d e m b e d d i n g , 对 象 链接与嵌入) 、c o m ( c o m p o n e n t o b j e c t m o d e l ) , o m g 组织( o b j e c t m a n a g e m e n t g r o u p , 国际 对象管 理集团 ) 的c o r b a ( c o m m o n o b j e c t r e q u e s t b r o k e r a r c h i t e c t u r e , 公共对象请求中介结构) 等。而构件的 研制因其与具体的 应用领域密切相关, 涉及到构件分类、 存储、检索及应用模型等一系列理论和 技术上的问题,因此成为软件复用技术的一个研究热点和难点。 1 . 4本文的研究内容与组织 根据软件复用理论和技术的发展动态, 本文将研究基于构件的软件复用技 术,旨 在通过构造相应的复用系统模型, 为实际系统的建立和工程建设提供理 论和方法上的指导依据。 全文内容组织如下: 第一章对国内外软件复用技术的发展现状进行了综述和预测分析, 指出软 件复用技术将为软件开发和工程建设带来革命性的变化。 第二章概要地介绍了软件工程的几种开发模式及软件复用的技术形式, 并 根据复用粒度的大小对软件复用进行分类。 摹 石 币 士学位 论文 k l a ti r r s下 只 厂 ( 气 第三 章阐 述了 构 件实 现的 规范与 标 准( 如c o m, c o w、dcom , ole, a c t i v e x 、 控件等技术 ) , 分析了 可复用构件的 管理方 法 ( 如构件分类、 匹配及检 索等) ,研究、设计了 构件检索机制和形式化匹配算法。 第四章给出了基于构件的软件复用系统设计方法, 提出可复用构件的二维 模型和实现算法。 为提高构件的检索效率, 还提出了可复用构件的三维模型和 相应的实现算法。 p e t r i网是一种可以用图形表示的组合模型,具有直观、易懂和易用的优 点。在第四章,深入地研究了构件的并发冲突问题,运用 p e t r i 网对该问题进 行理论分析和形式化描述,并提出了相应的解决方案和实现策略,同时给出了 p e t r i 网实现模型。 第五章以文中提出的思想和方法, 设计开发了一个基于构件的软件复用系 统一高校实验室信息管理系统, 从实用的角度证明了 可复用构件及软件复用技 术在系统设计和快速实现方面所具有的突出优势和强大的生命力。 最后总结了全文所做的工作,并提出了进一步研究的方向。 一肇 硕士学 二 ; 全 又 第二章软件复用技术 2 . 1软件工程发展概况 软件工程自 提出以来, 发展了许多有价值的软件开发模型, 较著名的有爆 布模型、 快速原型 模型、自 动程序设计模型、 螺旋模型等12 3 1 。 时至今日 , 这些 开发模型仍被各种应用软件系统建设所采纳。 1 . 瀑布模型 瀑布模型是最常用的软件开发模型,如图2 . 1 所示。 组装测试分析报告 手册 确认测试分析报告 图2 . 1 瀑布模型流程 它采用分阶段任务划分方式,形如瀑布,飞流逐级而下。其显著特点是, 各阶段间具有顺序性和依赖性, 前一阶段的输出是后一阶段的输入; 推迟实现 的特点,即推迟具体的工程开发过程;质量保证特点,每阶段均形成规范、齐 全的文档,并进行审查、 确认。阶段性审查( 管理复审和技术复审 ) 可以 发现并 纠正当前阶段的错误, 避免其在后续阶段传递和放大。 硕士学 几 2 . 快速原型模型 这种模型适合用户需求不明确或欲快速了解用户需求的场合。 它把软件开 发分为两个阶段:原型开发阶段和目 标系统实现阶段,如图2 . 2 所示。 图2 . 2 快速原型模型 快速原型法第一阶段任务是快速开发一个原型, 它包含目 标软件的关键问 题, 反映目 标软件的大致面貌,也可以反映目 标软件开发的可行性,即开发目 标软件的风险程度, 从而可以正确作出下一步的决策。 该阶段可通过加深对用 户需求的理解, 充分反映用户对系统的功能要求,为开发实用系统奠定可靠基 础。 第二阶段将依据前一阶段形成的界面甚至部分算法、 代码来构造实用系统。 这种模型较适宜开发中小型软件, 对大型软件来说, 快速原型法可能会非 常复杂而难以快速形成。 与瀑布模型相比, 快速原型设计模型更符合人类认识问题和思维过程, 是 目前较流行的一种实用软件开发方法。 在许多应用软件的开发建设中,由于客 观上存在开发者和用户之间难以充分沟通的现象, 开发者不能完全了解用户的 确切需求, 导致系统设计不能很好地反映实际要求。 采用快速原型法架起了开 发者和用户之间沟通的桥梁,可使系统的建设有条不紊地进行。 3 .自 动程序设计模型 用户指导 图2 . 3自 动程序设计模型 最 石 万 士罕位论文 l ( 1 、了 f i t 了 r f . s了 5 自 动程序设计模型把软件开发流程分为两个基本阶段: 软件规格说明开发 和在机器辅助下自 动地转化为代码。 该开发模型以形式化的软件规格说明为核 心。软件的整个开发过程包括规格说明开发、规格说明确认、 规格说明维护、 交互式转换、自 动编译与设计调整等阶段,如图2 . 3 所示。 4 . 螺旋模型 螺旋模型是在快速原型设计模型的基础上扩展而成的。 这种模型把整个软 件开发流程分成了多个由 风险分析和原型开发组成的阶段。 也有人把这种模型 归作快速原型设计模型。 螺旋模型各个阶段均从确定阶段目标、 制定可选方案 和约束条件开始; 然后评估可选方案, 对风险进行识别和制定解决办法,开发 出一个原型;在此基础上开发和验证下一级产品,同时制定下一阶段的计划。 以上各模型中,瀑布模型对用户需求要求最高, 且不能随意改动。 快速原 型法及螺旋模型可在开发过程中不断完善用户需求,但滞后于用户需求的提 出。 自 动程序设计模型可紧随用户环境及用户需求的变化而改变, 开发出实际 系统。 但由于受多方面因素影响, 例如, 需求的正确理解、 规格的标准化问题、 自 动编译系统的设计等,导致目前该模型还不是一种实用模型, 缺乏典型的成 功实例予以佐证。 图2 .4 所示为上述部分模型的对比 情况描述。 功能 用户需求 、自动程序设计 ,快速原型 传统方法 时间 t , t ,朽 图 2 . 4 软件开发模型比较 爵 a s 士一 二 、 、 叹; 人 丁丈 图中, 横坐标表示时间, 纵坐标表示软件功能, “ 用户需求” 斜线表示随 着时间的推移用户对软件功能的要求越来越高。 2 .2软件复用的技术形式 传统的软件工程基本上都包含可行性研究、需求分析、总体设计、详细设 计、 编 码( 开 发 ) 、 系 统 测 试、 系 统维 护等 几 个阶 段 12 4 1 。 如 果 每 个 应 用系 统的 开 发都从头开始, 在开发过程中 将存在大量的重复劳动。 人们开始考虑能否充分 利用以往软件工程建设和应用系统开发中积累的知识、经验和成果呢?自 m c i l r o y 提出 软 件复 用概念之后, 1 9 8 3 年, f r e e m a n 进一 步 拓宽了 这一 概念, 指出可复用的构件不仅可以是源代码片段, 而且可以是模块设计结构、 规格说 明 和文档等12 5 1 。 随着研究的不断深入, 特别是构件实现规范的 制定和构件技术 的成功实现,软件复用技术正在取得积极进展。 软件复用又称软件再用、软件重用,是指重复使用 “ 为了重复使用目的而 设 计的 软 件 ( 可复 用 软 件 ) ” 的 过 程12 6 1 。 广义 上 讲, 软 件复 用可 分为以 下 三 个 层 次: ( 1 )知识复用 ( 2 ) 方法和标准复用 ( 3 ) 软件成分复用 前两种复用层次属于知识工程研究的范畴。 本文主要关注的是软件成分复 用。 2 . 2 . 1软件成分复用的形式 软件成分复用的形式如图2 .5 所示。 1 . 源代码的复用 属最低级复用, 无论软件复用技术发展到何种程度, 这种复用方式将一直 存在12 7 1 。 不过它的 缺点也很明 显, 一是程序员 需要花费 大量的精力读懂源代码; 二是程序员经常会在复用过程中因不适当地更改源代码而导致错误的结果。 2 .目标代码级复用 、 肇 b士学位; 全叉 up sf i k t , : 、 图 2 . 5 软件复用形式 这是目前用得最多的一种复用方式。 几乎所有的计算机高级语言都支持这 种方式,它通常以函数库的 方式来体现12 8 1 。 这些函数库均能提供清晰的 接口, 程序员只需弄清函数库的 接口 及其功能即可使用, 减少了 软件开发人员研读源 代码的时间,有利于提高软件开发效率。此外,这些函数库一般都经过编译, 程序员对其不需做任何修改, 从而减少了因 修改 源代码带来的 错误, 可极大地 提高应用系统的可靠性。 但这种形式的复用可能会受限于所用语言,很难做到与开发平台完全无 关。 同时由 于程序员 无 法修改函 数库 源代码, 软件复 用的灵 活性将降 低12 9 1目 标代码级复用最根本的缺点是无法与数据结合在一起, 软件开发人员无法在软 件工程实践活动中大规模引用。 3 . 设计结果复用 这种形式是 对某个 应用系 统的 设计 模型 ( 即 求解域模型 ) 的复 用。 它有助于 把一个应用系统移植到不同的软硬件平台上。 例如, 当某一应用程序的用户需 求与另一系统相同或相近时,可以采用此种软件复用方式,以加快工程进度, 节约建设成本。 4 . 分析结果复用 这是更高级别的软件复用。当用户需求未改变, 而系统体系结构发生根本 改变时,可以复用系统的分析模型。 c ! 士r 一止 戈 途- 5 . 类模块复用 类模块复用是随着面向对象技术的发展而产生的一种新的软件复用技术 形式3 0 1 。 面向 对象的程序设计语言 一 般都提供类库。 类库与库函 数一样, 都是 经过特定开发语言编译后的二进制代码, 然而它与库函数有着本质的区别,主 要表现在: ( 1 ) 独立性强 类模块都是经过反复测试、 具有完整功能的封装体, 其内部实现过程对外 界是不可见的。 (2 )高 度可塑性 一个可复用软件不可能满足任何一个应用系统的所有设计需求, 这就要求 可复用的软件必须具备良 好的可塑性,能够根据系统需求进行适应性修改。 类 可以继承、封装和派生, 这使得类模块能够根据特定需求进行扩充和修改,使 得软件的复用性及可维护性得到大大增强,大规模的软件复用也将得以实现。 ( 3 ) 接口 清晰、简明 类具有封装性, 软件开发人员勿需了解类的实现细节, 只需清楚类提供的 对外接口, 就可复用类提供的功能( 方法) 。 根据类的特性,可将类模块复用分为以下三种方式: ( 1 )实例复用 这是类最基本的复用方式。软件开发人员只需使用适当的构造函数, 就可 创建类的实例, 然后向所创建的实例发送消息,启动类提供的相应的服务,完 成需要的工作。 ( 2 )继承复用 类的继承性, 允许子类在继承父类的属性和方法的基础上, 可以添入新的 属性和方法x3 1 1 。 这样, 软件开发人员不仅可以 对类进行安全的 扩充、 修改以 满 足系统需求, 而且还可降低每个类模块的接口复杂度, 呈现出一个清晰的继承 过程,也使子类的可理解性得到提高。 ( 3 ) 多 态复用 在应用系统运行时,由类的多态性机制启动正确的方法, 去响应相应的消 息,从而使得对象的对外接口更加简单,降低了消息连接的复杂程度,使软件 a , 士甘 : 之二/y e ti 肇 二 z 复用更加简单可靠。 6 . 构件技术 构件一词是从英 文单词“ c o m p o n e n t ” 翻译而来, 也可译为部件、 组件等, 目前还没有统一的中文译名。 它是指应用系统中可明确分辨的相对独立并具有 复用价值的构成成分。基于构件的软件复用是迄今为止最优秀的软件复用手 段, 是支持软件复用的核心技术, 并在近几年迅速发展成为受到高度重视的一 门学科分支。许多基于构件技术的产品己陆续问世。 2 .2 . 2软件复用的分类 根据k r u e g e r 等人的分类标准, 可将软件复用按复用粒度大小和抽象层次 的不同,分为小 粒度、中 粒度和大粒度复用三类13 2 1 . t . 小粒度复用 即小规模复用, 例如程序代码的复用。主要表现为函数、子程序、面向对 象中的类、方法的复用。 源代码复用和目 标代码复用属于小粒度复用。 2 . 中粒度复用 即中等规模复用,例如软件设计结果的复用。进一步按复用粒度的大小, 又分为两种: 微体系结构的复用和宏体系结构的复用。前者是注重于如何对系 统的局部行为进行要领建模和解释, 而后者则以宏体系结构为基础, 注重系统 的全局结构的建立。 在面向对象的程序设计中, 微体系结构由描述相关的类及 其相互关系的设计和代码两部分组成。 而宏体系结构的复用对象则是组成系统 的各微体系结构及其相互关系。 设计结果复用和分析结果复用均属于中粒度复用。 3 . 大粒度复用 即大规模复用, 例如应用子系统的复用。 复用对象是独立开发的应用程序 或子系统。在复用过程中,它们不能作任何修改和扩充。通过一些标准协议, 可使这些大粒度构件( 应用程序) 协同 工作, 共同实现某些功能。 类模块复用和构件技术属于大粒度复用。 肇-肇) 、学 位 :兮 丈 i % 5i h 、 , 曰、 到目 前为止, 人们对小粒度复用进行了长期的研究和实践, 发现这类复用 方式有许多局限性。 近年来, 人们开始转向中、大粒度复用研究,并且发现, 通过中粒度复用, 软件设计者们在开发一个新的软件系统时, 可以利用己有的 需求分析、设计的思想和结果。 通过大粒度复用,可以 利用己有的系统来组建 新的应用系统。 设计新的应用系统时, 只需考虑各子系统相互作用的框架结构, 而不必关心设计和实现的细节,从而缩短了开发时期,降低了开发成本。 2 . 3本章小结 本章概要地介绍了软件工程的瀑布模型、 快速原型模型、自 动程序设计模 型和螺旋模型等常用的开发模型, 描述了软件复用的六种技术形式, 并根据这 些形式和复用规模的大小按小粒度复用、 中粒度复用和大粒度复用对软件复用 进行了分类分析。 、 肇 b 5 士学位 s i 1 c 丁 j r 第三章构件技术 近年来,构件和基于构件的软件工程( 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 in g , 缩写 为c b s e ) 是 软 件工 程的 研究 热 点 13 3 1 。 构 件的 概 念实 际 上 是 从许多软件领域中产生的, 如软件体系结构、 面向对象程序设计、 分布式计算 等。 构件技术把构件从系统逻辑中清晰地分离出来, 可以 用来分析复杂的系统, 组织大规模的开发,达到高效、廉价开发软件系统的目 的。据有关专家预测, c b s e将可能成为软件发展史上又一个新的里程碑。 构件技术研究的主要内 容包括13 4 1 . ( 1 ) 构件获取 有目的的构件生产和从己有系统中挖掘提取构件。 ( 2 )构件模型 研究构件的本质特征及构件间的关系。 ( 3 )构件描述语言 以构件模型为基础, 解决构件的精确描述、 理解和组装等问 题。 常采用标 准的描述语言来描述构件,以便正确理解、组装、分类和构造构件。 ( 4 ) 构件分类与 检索 研究构件分类策略、组织模式及检索策略,建立构件库及其管理系统, 支 持对构件的有效管理和使用。 ( 5 ) 构件复合组装 在构件模型的基础上研究构件组装机制, 包括源代码级的组装和基于构件 对象互操作性的运行级组装。 ( 6 ) 构件标准化 研究构件模型的标准化和构件库系统的标准化问题。 只有符合标准的构件 才能适应更广泛的应用领域。 随着对软件复用理解的深入, 构件的概念己不再局限于源代码级, 而是延 伸到用户需求、系统和软件需求规约、系统构架、文档、测试计划、 测试案例 和数据以及其他对工程建设和软件开发活动有用的信息。 这些信息都可以 称为 可复用软件的 “ 构件” 。 拿 6 ,6 士学二 ; 全 又 、 ! s日k; 卜 3 . 1构件实现规范与标准 一般认为构件是具有一定功能、 能够独立工作或同其他构件组合起来协调 工作的程序体, 一经产生, 就与它的具体实现语言无关。 许多软件厂商由于提 高软件生产率的需要纷纷致力于构件技术的发展, 由 此产生了几种不同的构件 实 现 规范 和构 件模 型。 如 微 软的c o m. c o w, d c o m ( d i s t r ib u t e d c o m p o n e n t o b j e c t m o d e l , 分布式构件对象模型 ) 和a c t iv e x系 列11

温馨提示

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

评论

0/150

提交评论