




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京信息工程大学硕士论文基于软件复用技术的招聘网站开发的研究 摘要 软件复用是在开发一种新的应用系统时,重复使用以前开发活动中曾经积累或使用过 的软件资源。利用软件复用技术,可以提高软件开发的效率和质量。 本文论述了基于软件复用技术以江苏校园招聘网一期系统为复用原型的二期系统开发 的设计与实现。首先介绍了软件复用的概念、意义、过程、类型以及软件复用技术的发展 概况;其次结合公式计算说明了软件复用在提高软件成本和软件生产率方面的作用;接着 具体介绍了江苏校园招聘网二期开发这个实例中应用到的软件复用的关键技术:框架复用、 代码复用和设计模式复用技术;然后引用了少量实例开发中的源代码以配合说明从一期系 统中复用来的两种开发技巧叫e s s i o n 对象的引用和对象化网页数据编程以及这两个编 程技巧在实例二期开发中的重要性;最后是对本文的总结和对软件复用产业将来发展趋势 的展望。 本文以江苏省人事厅重点投资项目江苏校园招聘网为例讲述软件复用技术在软件开发 过程中的应用、研究,以及软件复用技术在软件开发过程中的可行性和重要性。笔者在开 发系统的过程中充分并灵活地运用复用思想,切身体会到如果能合理地在开发中贯彻复用 思想开发人员的工作量会减少很多,开发效率也将会得到大幅度的提高。 本文立足于软件开发过程中的实例,很好的论证了笔者对复用思想的理解。并且笔者 认为软件复用一定不要拘泥于固定的套路,重要的是领会和运用软件复用的思想,灵活地 运用各种软件复用技术。 关键字:软件复用,框架,设计模式,江苏校园招聘网 南京信息工程大学硕士论文 基于软件复用技术的招聘网站开发的研究 a b s t r a c t s o f t w a r er e u s ei st h ei d e aw h e nan e wa p p l i c a t i o ns y s t e mi si nd e v e l o p m e n t ,r e 。u s e a c t i v i t i e sw h i c hh a v eb e e np r e v i o u s l yd e v e l o p e do rt h ea c c u m u l a t i o no fr e s o u r c e s m a k i n gu s eo f s o f t w a r er e u s et e c h n o l o g y , y o uc a ni m p r o v et h ee f f i c i e n c ya n dq u a l i t yo fs o f t w a r ed e v e l o p m e n t i n t h i sa r t i c l e ,id e s i g nt h ei m p l e m e n t a t i o no ft h ej i a n g s uc a m p u sr e c r u i t m e n ts i t e s s e c o n dp e r i o dw h i c ht a k e st h ej i a n g s uc a m p u sr e c r u i t m e n ts i t e sf i r s tp e r i o da sa sm u l t i p l y i n g p r o t o t y p eb a s e do ns o f t w a r er e u s e f i r s tii n t r o d u c et h ec o n c e p t ,m e a n i n g ,p r o c e s s ,t y p eo f s o f t w a r er e u s e ,a n dt h ed e v e l o p m e n to fs o f t w a r er e u s e t h en e x tf o r m u l ac o m p u t a t i o ni s u n i o n e dt os h o wt h es o f t w a r er e u s ew h i c hi se n h a n c i n gt h es o f t w a r ec o s ta n dt h es o f t w a r e p r o d u c t i v i t ya s p e c tf u n c t i o n t h e nid i s c u s et h ek e yt e c h n o l o g i e sw h i c hs u p p o as o f t w a r er e u s e i n c l u d i n g :t h ef r a m e w o r kr e u s e ,c o d er e u s ea n dd e s i g np a t t e r n sr e u s et e c h n o l o g y t h e niq u o t ea f e wd e v e l o p m e n ts o u r c ec o d ea se x a m p l et oc o o r d i n a t et h ee x p l a n a t i o nt h et w ok i n do f d e v e l o p m e n ts k i l l _ _ s e s s i o no b j e c tq u o t a t i o na n do b j e c t e dh o m e p a g ed a t ap r o g r a m m i n ga s w e l la st h ei m p o r t a n c e so ft h e s et w op r o g r a m m i n gs k i l li nt h ei nt h es e c o n dp e r i o do f d e v e l o p m e n tf i n a l l y1w i l ls u m m a r yt h i sa r t i c l ea n df o r e c a s tt h e 仃e n do fd e v e l o p m e n to ft h e s o f t w a r er e u s ei n d u s t r yi nt h ef u t u r e it a k ea se x a m p l ew h i c hi st h ei m p o r t a n ti n v e s t m e n tp r o j e c ti n v e s t m e n t i n gb yt h ee d u c a t i o n d e p a r t m e n to fj i a n g s up r o v i n c e ,d i s c o u r s et h ef e a s i b i l i t ya n di m p o r t a n c eo fs o f t w a r er e u s ei n s o f t w a r ea p p l i c a t i o nd e v e l o p m e n t ,r e s e a r c h ,a n ds o f t w a r ed e v e l o p m e n tp r o c e s s d i s c o u r s i n g j i a n g s uc a m p u sr e c r u i t m e n ts i t e ss e c o n dp e r i o ds y s t e md e v e l o p m e n tp r o c e s sc o m b i n e d w i t h t h es p e c i f i cm o d e lo fs o f t w a r er e u s e if u l l ya n dn i m b l yu t i l i z e st h er e u s et h o u g h tt h o u g h ti n d e v e l o p m e n ts y s t e m sp r o c e s s ,i n t i m a t l tu n d e r s t a n dt h a t ,i ft h er e u s i n gt h o u g h ti si m p l e m e n t e d , d e v e l o p m e n tp e r s o n n e l sw o r kl o a d i nt h ed e v e l o p m e n tw i l lr e d u c er e a s o n a b l ym u c h ,t h e d e v e l o p m e n te f f i c i e n c yw i l la l s oh a v et h el a r g es c a l ee n h a n c e m e n t t h i sa r t i c l ei sb a s e do nt h ee x a m p l e so ft h es o f t w a r ed e v e l o p m e n tp r o c e s s ,d e m o n s t r a t i n g t h ea u t h o r sp o i n ti nav e r yg o o dw a y ib e l i e v et h a ts o f t w a r er e u s ed o e sn o tn e c e s s a r i l yh a v et o r i g i d l ya d h e r et oaf i x e dr o u t i n e ,i ti si m p o r t a n tt ou n d e r s t a n da n da p p l yt h ei d e ao fs o f t w a r e r e u s e ,a n du t i l i z ee a c hk i n do fs o f t w a r er e u s et e c h n o l o g yn i m b l y k e y w o r d s : s o f t w a r er e u s e ,f r a m e w o r k , d e s i g np a t t e r n s ,j i a n g s uc a m p u sr e c r u i t m e n ts i t e i i 学位论文独创性声明 本人郑重声明: 1 、坚持以“求实、创新的科学精神从事研究工作。 2 、本论文是我个人在导师指导下进行的研究工作和取得的研究 成果。 3 、本论文中除引文外,所有实验、数据和有关材料均是真实的。 4 、本论文中除引文和致谢的内容外,不包含其他人或其它机构 已经发表或撰写过的研究成果。 5 、其他同志对本研究所做的贡献均已在论文中作了声明并表示 了谢意。 作者签名:塞壹鸥 e t 期:堡2 :二墨 学位论文使用授权声明 本人完全了解南京信息工程大学有关保留、使用学位论文的规 定,学校有权保留学位论文并向国家主管部门或其指定机构送交论 文的电子版和纸质版:有权将学位论文用于非赢利目的的少量复制 并允许论文进入学校图书馆被查阅;有权将学位论文的内容编入有 关数据库进行检索:有权将学位论文的标题和摘要汇编出版。保密 的学位论文在解密后适用本规定。 作者答幺署永峭 作者签名:! ! :! 型 日期:型幺:里 关于学位论文使用授权的说明 本人完全了解南京信息工程大学有关保留、使用学位论文的规定,即:学 校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的 全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守次规定) 导师签名:五蔓仨 e t 期:一立驾盟l 南京信息工程大学硕士论文基于软件复用技术的招聘网站开发的研究 1 1 研究意义及背景 第1 章绪论 随着计算机应用领域的不断扩展,以及人们对软件要求的不断提高,系统的规模和复 杂度也随之空前地扩大,软件的复杂性和其中包含的错误已经达到了开发人员无法控制的 程度,这便是所谓的“软件危机”。1 9 6 8 年北大西洋公约组织的计算机科学家在联邦德国 召开的国际学术会议上第一次提出了“软件危机”( s o f t w a r e c r i s i s ) j 塞个名词。 软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括来 说,软件危机包含两方面问题:一、如何开发软件,以满足不断增长,日趋复杂的需求; 二、如何维护数量不断膨胀的软件产品。 6 0 年代的软件危机的出现,使人们认识到软件开发不是某种个体劳动的神秘技巧,而 应是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目;必须充分吸收 和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、技术和方法。提出了必 须以工程学的原理、技术和方法来指导和从事软件生产,从而产生了“软件工程学川2 1 , 也引起了有关软件复用的研究。 软件复用,广义的说,就是运用现存系统的人工制品或工程知识构造新的系统。简单 地说,软件复用就是在构造新软件系统的过程中使用现存的软件制品。软件复用是指在开 发新的软件系统时,对已有软件的重新使用,该软件可以是已存在的软件,也可以是专门 设计的可复用构件。能够被复用得知品种类不限于程序源代码,还可以包括设计结构、模 块级实现结构、规格说明、文档、变换等。软件复用被视为解决软件危机、提高软件生产 率和质量的现实可行的途径。 软件复用被视为解决软件危机、提高软件生产率和质量的一条可行途径。pj 据统计, 在软件项目的开发过程中,若复用程度达到5 0 ,则其生产率可提高4 0 ,开发成本降低 约4 0 ,软件出错率降低近5 0 。近十年来软件复用己成为解决软件危机、提高软件生产 率和软件质量的最有效、最具潜力的手段。软件复用思想的提出及软件复用技术的发展, 对软件界乃至于整个计算机技术的发展有着深远的历史意义和现实意义。 1 2 国内外发展现状 国际上,软件复用在领域工程、构件及构件库的标准化、构件组装技术、基于复用的 南京信息工程大学硕士论文 基于软件复用技术的招聘网站开发的研究 软件开发过程和复用成熟度模型等方面取得了重大成功。如:卡内基梅隆大学的软件工 程研究所( c m l e s ) 提出了面向特征的领域分析方法1 4 1 ,并将该方法成功地运用于美国空军 运动控制等领域。美国军方与政府资助的项目中,已建立了若干构件库系统,如:以c a r d s , a s s e t ,d s r s 等。 国外大型软件公司在所提供的集成开发环境中也蕴含有软件复用技术,为开发者提供 了使用方便、性能可靠的软件构件。例如,m i 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 j 。 在国内,杨芙清院士主持的国家重点科技攻关项目青鸟工程1 6 】,重点研究了软件的工 业化生产流程和软件复用的相关技术,并取得了可喜的研究成果。他们己将该技术应用于 桂林百货大楼、北京前门商场等p o s 系统。 软件复用技术现己在国内应用于许多领域,如小型探测卫星系统软件的可复用性结构 设计,它不仅缩短了开发周期,节省了大量的人力和财力,而且使得当需要在卫星上采用 一种新技术或改变原系统结构时,不会出现整个星载软件系统的大量改动或重新设计。1 7 j 又如“基于构件技术的商业d d s ”,应用了软件复用思想,开发了“保本保利分析”、“商 品适销率分析”等商业d d s 构件,取得了令人满意的效果。 i n t e r n e t 的广泛传播,提供了一种比较标准的方法连接地理分散的实体【s 】。i n t e m e t 用户 众多,方便快捷,交互性好,费用低,功能强大,给软构件工业提供了机遇。随着i n t e m e t 的发展,软件产业的发展形态也发生了变化,基于计算机网络的软件产业,己从封闭的自 给自足软件开发方式,逐渐演变为基于软件复用的开发模式。目前,在美、日等国家已产 生通过电子商务将构件取出、整合、组装,从而形成应用软件系统的软件开发产业。国内 由于种种原因,在这方面进展缓慢。在再利用、组装、加工、构筑标准构件市场等方面还 有待进一步发展。 目前最现实、主流的软件复用方式是复用已有的软件构件。随着对软件复用理解的深 入,构件的概念已经不再局限于源代码构件,而是延伸到系统和软件的需求规约、系统和 软件的构架、文档、测试计划、测试案例和数据以及其他对开发活动有用的信息。这些信 息都可以称为可复用软件构件。随着软件产业工业化的发展,也许未来会出现这样一种产 业模式:构件生产商专门生产构件,然后再由零售商等构件管理者将它们拿到市场上销售, 系统集成商则根据自己应用系统的需求进行构件的采购、集成和组装。只有这样明晰地分 工,软件复用才能真正得以发展和推广。 展望未来,软件复用技术和活动将变得系统化和规范化,会出现更多的组织使用复用 技术,产生可支持复用和领域( d o m a i n ) 分析的软件开发环境和c a s e 工具,涌现特定领域 的可复用软件构件工厂,形成支持领域或领域间复用软件的开发标准等。软件复用将越来 2 南京信息工程大学硕士论文基于软件复用技术的招聘网站开发的研究 越成为软件开发中的重要技术手段。可以预计,在不远的将来,可复用技术将为软件开发 带来革命性的变化。 1 3 本文课题来源 本课题来源自江苏省人事厅投资项目,与南京信息工程大学网络中心联手合作的省重 点项目:江苏校园招聘网。江苏校园招聘网是江苏省人事厅为广大江苏高校毕业生提供的 一个电子就业招聘平台。本电子招聘平台在开发时就本着为高校毕业生服务的原则,促进 高校毕业生充分就业为主要职责,转变服务观念,创新服务方式,狠抓校园招聘工作,加 强校园网络建设,不断提高招聘工作的针对性和实效性,扩大了网络的覆盖面。切实加强 高校毕业生就业信息网络建设,促进江苏省高校毕业生就业资源有效整合,构筑政府人事 部门、高校、用人单位和毕业生四位一体的网络交流平台。坚持毕业生会员免费使用,具 有5 1 j o b 、中华英才网等商业招聘网站的特点以及自主开发的网络视频交流招聘等功能, 并且还设有江苏各个地市地区的分站点,为毕业生就业招聘提供了方便的途径渠道,受到 广大江苏高校毕业生的好评。 1 4 本文研究内容及组织结构 1 4 1 研究内容 本文详细地研究了软件复用技术,以江苏校园招聘网为实例,围绕着江苏校园招聘网 二期开发对开发中使用到的软件复用技术进行了详细的讲解。 1 4 2 论文组织结构 全文共分五章: 第一章绪论,主要介绍本文的选题背景、研究意义,对相关国内国外研究现状进行综 合性描述,最后简单介绍全文的研究内容与方法以及全文结构。 第二章主要介绍了软件复用的概念,分类,复用过程以及复用的成本分析。 第三章主要对江苏校园招聘网二期开发中用到的复用技术进行了详细的研究。 第四章主要对第三章提到的复用方法如何应用到实例中进行了详细的讲解。 第五章是对本文的总结以及对软件复用技术的展望。 3 南京信息工程大学硕士论文基于软件复用技术的招聘网站开发的研究 第2 章软件复用理论 2 1 软件复用的概念 目前对于软件复用还没有一个形式化的定义,许多研究人员从各自不同角度对软件复 用这个概念作了说明。b i g g e r s t a f f 和r i t c h e r 认为软件复用( s o f t w a r er e u s e ) 是在新的 开发项目中使用以前已有的概念和对象【9 】。t r a c z 对软件复用定义是:复用特别为复用目 的而设计的软件的过程,这个定义认为软件复用具有事先性,而把使用不是特别为复用目 的的设计的软件称为软件挽划1 0 l ,g a l n b h i :把在多个应用中使用相同的构件称作软件复 用,不区分软件复用和软件挽救之间的区别f l 。 软件复用又称软件重用或软件再用,它是利用已有的软件成份来构造新的软件i l2 1 。它 可以大大减少软件开发所需的费用和时间,且有利于提高软件的可维护性和可靠性。软件 复用从广义上说,就是运用现有软件系统的成品或工程知识构造新的系统。简单地说,软 件复用就是指在开发新的系统时,对已有软件的重新使用,该软件可以是已存在的软件, 也可以是专门设计的可复用构件。能够被复用的制品种类不限于源代码段,还可以包括设 计结构,模块级实现结构,规格说明,文档,变换等。 软件复用要解决三个基本问题【l3 】:一是必须有可复用的对象,二是可复用的对象必须 是有用的,三是使用者知道如何去使用被复用的对象。可复用对象包含范围广阔,公用函 数或公用子程序属于最早也是最成熟的复用,现在对可复用对象可以统称为可复用构件, 对可复用构件的管理,近年来研究较多的是可复用构件库。构件库由不同层次的可复用的 各种构件及相关构件管理工具组成,软件开发时可复用该构件库中的各种构件。近年来, 构件技术、构件库和面向对象方法学使软件复用技术具有了更广泛的内涵。 2 2 软件复用的分类 目前对软件复用的研究范围很广,可以按复用内容、范围、方法和应用等标准对软件 复用进行分类依据复用的对象,可以将软件复用分为产品复用和过程复用l l 4 1 。 ( 1 ) 产品复用又称组装式复用,指复用已有的软件构件,通过构件集成( 组装) 得到新系 统。产品复用是目前比较现实的、主流的途径。 ( 2 ) 过程复用又称生成式复用,指复用已有的软件开发过程,使用可复用的应用生成器 来自动或半自动地生成所需系统。过程复用依赖于软件自动化技术的发展,目前只适用于 4 南京信息工程大学硕上论文基于软件复用技术的招聘网站开发的研究 一些特殊的应用领域。 依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒复用和白盒复用【l 引。 ( 1 ) 黑盒复用指对已有构件不需作任何修改,直接进行复用。这是理想的复用方式。 ( 2 ) 白盒复用指已有构件并不能完全符合用户需求,需要根据用户需求进行适应性修改 后才可使用。在大多数应用系统的组装过程中,构件的适应性修改是必需的。 按照软件复用所应用的领域范围,可把复用划分为横向复用和纵向复用。 ( 1 ) 横向复用是指复用不同应用领域中的软件元素,例如数据结构、分类算法、人机界 面构件等。标准函数库是一种典型的原始的横向复用机制。 ( 2 ) 纵向复用是指在一类具有较多公共性的应用领域之间进行软部件复用。因为在两个 截然不同的应用领域之间实施软件复用非常困难,潜力不大,所以纵向复用广受瞩目,并 成为软件复用技术的真正所在。 根据k r u e g e r t l 6 1 等人的分类标准,可将软件复用按复用粒度大小和抽象层次的不同, 分为小粒度、中粒度和大粒度复用三类: ( 1 ) 小粒度复用:即小规模复用,如程序代码的复用。主要表现为函数、子程序面向对 象中的类、方法的复用。源代码复用和目标代码复用属于小粒度复用。 ( 2 ) 中粒度复用:即中等规模复用,如软件设计结果的复用。进一步按复用粒度的大小, 又分为两种:微体系结构复用和宏体系结构复用。前者是注重于如何对系统的局部行为进 行要领建模和解释,而后者则以宏体系结构为基础,注重系统的全局结构的建立。设计结 果复用和分析结果复用均属于中粒度复用。 ( 3 ) 大粒度复用:即大规模复用,如应用子系统的复用。复用对象是独立开发的应用程 序或子系统。在复用过程中,它们不能做任何修改和扩充。通过一些标准协议,可使这些 大粒度构件( 应用程序) 协同工作,共同实现某些功能。类模块复用和构件技术属于大粒度 复用。 到目前为止,人们对小粒度复用进行了长期的研究和实践,发现这类复用方式有许多 局限性。近年来,人们开始转向中、大粒度复用研究,并且发现,通过中粒度复用,软件 设计者们在开发一个新的软件系统时,可以利用已有的需求分析、设计的思想和结果。通 过大粒度复用,可以利用已有的系统来组建新的应用系统。设计新的应用系统时,只需考 虑各子系统相互作用的框架结构,而不必关心设计和实现的细节,从而缩短了开发时期, 降低了开发成本。 按抽象程度的高低,划分为如下的复用级别【l7 】: ( 1 ) 代码的复用 包括目标代码和源代码的复用,其中目标代码的复用级别最低。当前大部分编程语言 5 南京信息工程大学硕士论文基于软件复用技术的招聘网站开发的研究 的运行支持系统都提供了连接( l i n k ) 、绑定( b i n d i n g ) 等功能来支持这种复用( 标准函数的 应用即是典型例子) 。源代码的复用级别略高于目标代码的复用,程序员在编程时把一些想 复用的代码段复制到自己的程序中,但这样往往会产生一些新旧代码不匹配的错误( 自定义 函数的应用即是此类例子) 。此类复用对环境的依赖性较强。 ( 2 ) 设计的复用 设计结果比源程序的抽象级别更高,因此它的复用受实现环境的影响较少,从而使可 复用构件被复用的机会更多,并且所需的修改更少。这种复用主要通过以下三种途径实现, 第一种途径是从现有系统的设计结果中提取一些可复用的设计构件,并把这些构件应用于 新系统的设计;第二种途径是把一个现有系统的全部设计文档在新的软硬件平台上重新实 现,也就是把一个设计运用于多个具体的实现;第三种途径是独立于任何具体的应用,有 计划地开发一些可复用的设计构件。 ( 3 ) 需求分析的复用 这是比设计结果更高级别的复用,可复用的分析构件是针对问题域的某些事物或某些 问题的抽象程度更高的解法,受设计技术及实现条件的影响很少,所以可复用的机会更大。 复用的途径也有三种,即从现有系统的分析结果中提取可复用构件用于新系统的分析:用 一份完整的分析文档作输入产生针对不同软硬件平台和其它实现条件的多项设计;独立于 具体应用,专门开发一些可复用的分析构件。 ( 4 ) 测试信息的复用 主要包括测试用例的复用和测试过程信息的复用。前者是把一个软件的测试用例在新 的软件测试中使用,或者在软件作修改时在新的一轮测试中使用。后者是在测试过程中通 过软件工具自动地记录测试的过程信息,包括测试员的每一个操作、输入参数、测试用例 及运行环境等一切信息。 2 3 软件复用的过程 2 3 1 复用是一种过程 复用不是一种指导软件开发的方法,而是软件开发过程中的一种过程【1 8 】。复用过程包 括:创造可复用机会、创建、管理可复用资源。可复用资源是指能够直接或经过适当修改 后在不同软件的开发过程中被重复利用的各种资源。与其他过程不同,复用过程是一种相 对独立、并且是跨软件项目的过程。在个软件项目中,创建的可复用资源并不一定能够 在该软件项目活动中得到使用,而通常是在其它软件项目活动中被利用;而其所使用到的 6 南京信息工程大学硕士论文基于软件复用技术的招聘网站开发的研究 可复用资源也通常是来自其它软件项目活动所产生的。另外,可复用资源的管理也是相对 独立于各个软件项目活动,因为它是面向整个软件企业,只有这样才能体现复用的价值。 复用成分的获取、管理和利用是构成软件复用的3 个基本要烈1 9 】。复用成分的获取包 括将现有的软件成分抽象成可复用的,以便构成新的软件系统,以及从复用成分库中选取 某个具体问题的可复用成分。复用成分的管理完成对复用成分库的组织,以便有效地组织、 管理和扩充软件复用成分。复用成分的利用是获取和管理的目的所在,包括根据需要选择 抽象的可复用成分,并对其进行适应性修改,以将其集成到现行开发的软件系统中去。 2 3 2 创造可复用机会 图2 软件复用过程 可复用机会有两方面含义【2 0 】:一、指能够创建可复用资源的机会,这种可复用资源在 后续阶段或者在其它软件项目中能够被重复使用;二、指能够直接使用已经存在的可复用 资源的机会。 ( 1 ) 创造可复用机会要有主动性 创造可复用机会就包括创造利用机会和创造创建机会,前者是指为本软件创造利用已 经存在的可复用资源的机会,后者是指为其它软件创建可复用资源,因而创造可复用机会 可能是复用过程的开始,也可能是结束。可复用资源是指能够直接或经过适当修改后在不 7 南京信息工程大学硕士论文基于软件复用技术的招聘网站开发的研究 同软件的生命周期中被重复利用的各种资源,包括源代码、组件、系统、设计结果、分析 结果、测试资源、维护信息等。 创造可复用机会要有主动性包括两层含意:一、可复用机会是开发人员主动地去创造 出来的,而不是被动产生的。可复用机会是需要花费一定人力、物力、财力和时间才能创 造出来,而并非被动存在的。对于创造利用机会来说,可复用资源的使用一般来说都是有 一定的条件,这就要求新软件系统进行适当改变以满足可复用资源的使用,例如在组件的 复用过程中,就必须考虑到原来组件的各个属性,它的输入输出都是什么,新的软件系统 需要哪些改变才能满足原来组件的使用条件;而对于创造创建机会来说,就更加费时费事 了,因为需要考虑以后其它软件项目的需求情况。二、创造可复用机会要有主动性还包括 企业要主动建立一整套复用制度来鼓励开发人员识别可复用机会,并且提供必要的技术和 管理支持。因为是否能够创造可复用机会,与当时的软件技术、开发人员所使用的各种工 具、以及企业的管理水平有密切关系。例如n e t 的出现,使得跨程序语言的代码复用变为 可能;文档管理水平的提升能够大大提高需求分析、系统设计和系统维护的复用。 ( 2 ) 创造可复用机会要有全局观 创造可复用机会要有全局观首先是指由于复用过程具有相对独立性和跨软件项目的特 点,而且一个软件项目中产生的可复用资源往往是在其它软件项目中被复用,这就要求我 们在创造可复用机会时要从企业整体出发,要考虑到软件的发展,要考虑到其它软件项目, 不能仅仅局限当前。 另外,软件生命周期中每个阶段都是相互联系,互相影响的有机整体。创造可复用机 会要有全局观也要求开发人员要从整个软件项目来考虑,而不能局限在一个具体的阶段。 例如,需求的复用往往引起设计的复用,而设计的复用通常能够大大提高代码的复用率。 2 3 3 创建可复用资源 可复用资源的来源有三种方式【2 1 1 :( 1 ) 自行开发;( 2 ) 从现有系统中抽取得到;( 3 ) 来 自第三方。每种方式都有其优缺点,因此在创建可复用资源时要综合考虑各种方式,选取 最合适的种。 ( 1 ) 自行开发。自行开发的优点就是对可复用资源熟悉,这有利于将来对其做适当的修 改;缺点就是为了以后的复用,在某些方面可能会做出一些妥协让步,这增加了开发量需 要较长的开发时间。 ( 2 ) 从现有系统中抽取。如果能够快速简便的从现有系统中抽取出可复用资源,那当然 是高效低成本的;然而,往往事与愿违,从现有系统中抽取需要重新熟悉现有系统,然后 8 南京信息工程大学硕士论文基于软件复用技术的招聘网站开发的研究 修改使其适用于当前,如果再考虑到现有系统是不同人员开发的,这些过程在多数情况下 会相当复杂,甚至不可行。 ( 3 ) 来自第三方l z z 】。这类可复用资源主要是指代码类的可复用资源,当然像设计、分 析类的可复用资源也是可以来自第三方。目前已经有比较成熟的组件市场,在类似 w w w c o m p o n e n t s o u r c e c o m 网站上提供了大量的第三方开发的组件。选用第三方可复用资 源的优点就是方便快捷,缺点就是对其实现细节不了解,修改起来比较困难。 2 3 4 管理可复用资源 可复用资源被创建后【2 3 】,需要对其进行有效的管理。管理可复用资源包括:新增,修 改,删除,查询,获取可复用资源。其中最关键的是如何对可复用资源进行分类,以便能 够快速查询并获取。 2 4 软件复用的成本估算 2 4 1 软件复用对质量、生产率和成本的影响 ( 1 ) 复用对质量的影响【2 4 1 可复用构件在生产过程中都经过严格的测试,虽然测试并不能发现所有错误,但在复 用过程中,可复用构件的错误不断地被发现和排除。随着复用次数的增加,可复用构件几 乎可看成是无错误的。 ( 2 ) 复用对生产率的影响 复用应该渗透到开发的各个阶段,在开发的各阶段都有可复用的软件制品,复用这些 软制品都能提高相应工作的生产率。由于不同的应用中影响其生产率的因素不同,所以复 用对生产率的提高程度也不同。一般来说,大约3 0 到5 0 的复用可使生产率提高2 5 至u 4 0 。 ( 3 ) 复用对生产成本的影响 假定不采用软件复用技术开发一个软件系统所需的成本为c ,采用软件复用技术开发 同一个软件系统所需的成本为c l ,那么采用软件复用技术所节省的成本并非为c c 1 。节 省的成本还应扣除与复用相关的成本。 c a p e o o n e s 定义了可作为复用候选的十种软件制品:项目计划,成本估计,体系结构, 需求模型和规约,设计,源代码,用户和技术文档,用户界面,数据,测试用例【6 j 。表2 1 给出了一些来自军事及系统项目的数据,这些数据显示了针对上面列出的每个软件制品1 9 南京信息工程大学硕士论文 基于软件复用技术的招聘网站开发的研究 美元投资在4 年后的回报【2 5 1 。 与复用相关的成本包括【2 6 j : 领域分析和建模 领域体系结构开发 为促进复用所增加的文档量 可复用软件制品的维护和改进 令对从外部获取的构件的版税和许可证费 令可复用构件库的创建或者获得以及操作 令对设计和构造复用的人员的培 j 可复用软件制品品4 年后的回报可复用软件制品4 年后的同报 项目计划 $ 2 0 源代码 $ 6 o 成本估计 $ 3 0用户和技术文档 $ 1 5 体系结构 $ 1 5 用户界面 $ l 。o 需求模型和规约约 $ 3 o 数据 $ 3 5 设计 $ 5 0测试用例 $ 3 5 表2 11 美元投资在4 年后的回报 与复用有关的成本应由多个采用复用技术的项目来分担,通常要经过2 到3 个采用复 用的生产周期复用才能带来显著的效益。 2 4 。2 复用成本估计 ( 1 ) 复用成本估计方法之一【2 7 】 假设c l 是开发一个不采用复用技术的应用系统的成本;r 为复用度,则r = 复用构件 的总规模应用系统的总规模( 软件规模可以用功能点或代码行来度量) 。假设f l 是复用一个 构件的相关成本系数,通常取o 。2 ;c 2 表示采用复用技术开发一个应用系统的成本;c 3 是 一个应用系统中采用复用部分的成本;c 4 是未采用复用部分的成本。则有: c 3 = c 1x ( r xf 1 ) ( 2 - 1 ) c 4 = c 1 ( 1 一r )( 2 2 ) c 2 = c 3 + c 4 = 1 2 1 皿f 1 + ( 1 一r ) )( 2 3 ) 在上式中,如果令r = 5 0 ,f i = 0 2 ,则可得出c 2 = c ix6 0 ,即采用5 0 复用的开发 成本是不采用复用的开发成本的6 0 。假设c 5 为因复用而节省的成本,则有: 1 0 南京信息工程大学硕士论文基于软件复用技术的招聘网站开发的研究 c 5 = c l c 2 = c l ( 1 - ( r x f i + ( 1 一r ) ) ) = c lx r x ( 1 f 1 ) ( 2 4 ) 那么因构件复用而相关的开发成本效益r o i 可用下式估算: r o i = c 5 c1 = r x ( 1 一f 1 )( 2 - 5 ) 在式2 - 5 中,如果令r = 5 0 ,f i = 0 2 ,则r o i = 5 0 ( 1 0 2 ) = 4 0 。即采用5 0 复用的 开发成本可节省不采用复用的开发成本的4 0 。 ( 2 ) 开发应用系统族的成本估计方法之二 假设f 2 是与创建和管理一个可复用构件系统相关成本的系数,同时每个应用系统的 百分比为r 的部分都复用了所有已开发的构件系统,那么开发构件系统的成本 c 6 = c 1 r x f 2 ( 2 6 ) f 的值通常必须大于f 1 ,f 2 和f l 的值依赖于特定的语言、问题领域的复杂度、工作 人员的经验和遵循的过程。取f 2 的默认值为1 5 ,f l 的默认值为0 2 。如果在应用系统族中 有n 个应用系统,贝应用系统族所节省的成本c 7 为: c 7 = n c 5 c 6 lx ( n x r x ( 1 一f 1 ) - r f 2 ) ( 2 - 7 ) 投资创建一组构件的回报是: r o i = c 7 c 6 = ( 1 1 ( 1 一f d - f 2 ) f 2( 2 8 ) 在式2 8 中,如果令f i = 0 2 ,f 2 = 1 5 ,则 r o i = ( n 0 8 1 5 ) 1 - 5 ,当n _ 2 时无亏损。 南京信息工程大学硕士论文基于软件复用技术的招聘网站开发的研究 第3 章实例开发中应用到的复用技术的研究 本论文讨论的是江苏校园招聘网一期系统完成后,经投资方甲方也就是江苏省人事厅 的要求,需要在一期主站的基础上开发每个地市的分站点,以使高校毕业生更加方便的进 行就业招聘的选择。在为期半年的一期主站开发完成之后,甲方提出的开发期限两个月的 二期系统建设的方案。面对工作量不小于一期主站开发的地市分站方案,复用技术成为该 项目的不二选择。如果对待二期系统的开发还是像期主站时开发那样,项目组长重新做 需求分析并设计网站的框架,大家重新进行数据库的开发,开发小组成员每人负责很小的 一部分模块,毫无疑问,对于工作量比一期主站系统还要火的二期来说,要耗费更多的人 力物力并且很难在甲方要求的截止日期前成功完成并提交系统。 随着二期系统按时交付与投资方并得到了投资方的肯定,证明了复用技术在软件开发 过程中的正确性和重要性:不仅大大减少了新系统的开发工作量,提高了开发效率,而且 由于复用技术用户在使用主站和分站时丝毫不会感到是在使用两个不同的系统,提高了系 统的使用连贯性和视觉的统一性。 江苏校园招聘网二期开发过程中应用到的复用技术有如下几个:代码复用、组件复用、 设计的复用、框架复用、需求分析复用、测试的复用和系统维护信息的复用。这些复用技 术是二期分站系统开发过程中用到的主要复用技术。其中面向对象的框架复用技术是设计 复用和代码复用相结合的一种最为重要的形式。下面分别介绍这几种二期开发过程中的重 要技术。 3 1 代码复用 代码复用是指利用已经存在的程序代码直接或经过适当修改后复制过来满足当前的需 要【2 剐,是在自己编写的代码中插入己经存在的代码。已经存在的代码可能是自己以前编写 的,也可能是企业内其他员工编写的,也可能是其他企业开发人员所编写的。总之,一切 能够找得到的代码都可以被复用。代码复用能够减少开发人员的重复劳动,提高开发速度 和质量;能够增加开发人员之间的交流与合作,不断优化代码质量,提高开发人员的技术 技能和团队合作能力。 现在的软件系统越来越复杂,用户需求变化越来越快,仅仅靠代码复用很难满足市场 对软件开发提出的快速开发、迅速响应客户需求变化的要求。很多企业领导也由此常常忽 视代码复用,认为代码复用只是程序员自己需要考虑的事情与企业无关,因此没有投入足 1 2 南京信息工程大学硕士论文基于软件复用技术的招聘网站开发的研究 够的资源和建立完善的制度来保证和鼓励在全公司范围内的代码共享和复用。 虽然代码复用对提高软件开发速度和迅速相应客户需求变化的直接贡献不大,但缺少 代码复用却可能造成严重的开发延期和质量问题。在软件开发过程中会用到各种各样的技 术技巧,有的技术技巧其实很简单( 比如调用w i n d o w sa p i ) ,但对于一个以前没有用过该 技术技巧的开发人员来说可能就很复杂了,因为他需要从堆积如山的帮助文档中寻找。代 码复用在这些方面所起的作用是十分明显的。 代码复用,其实也是一种学习经验知识,复用经验知识的过程,也是开发人员之间相 互较量相互学习的过程。因为要想复用别人的代码,就得先看懂代码,而在看懂代码的过 程就是学习代码中所包含的各种各样的知识,包括程序语言语法知识、编程规范、编程技 巧、组件使用、设计模式、算法、数据结构、软件技术、计算机技术等等。另外,代码复 用常常是需要在理解了源代码基础上进行适当的修改以适应当前的需要,在不断的修改过 程中开发人员的技能和代码质量都得到提高。因而代码复用对于提高开发者技能、开发团 队的一致性有很大帮助,而这些因素的提高对满足市场需要提高企业竞争力是很重要的。 要提高代码复用,需要企业能够提供一个很好的代码交流平台,并制定一套完整的编 码规范,便于代码阅读;并且还要有专人负责定期将优秀的代码收集起来分类管理以便程 序员查阅。此外,企业还可以举办编程大赛,鼓励开发人员写出更加优美的代码。 3 2 组件复用 本文中所说的组件是指能够在一种或多种开发环境中被当作函数体或类使用的程序 块,组件复用其实质是一种规模更大有组织的代码复用【2 9 1 。但与代码复用不同的是,开发 人员可以不必了解组件的实现过程,也就是说开发人员可以不必看懂组件的源代码,有些 组件可能就没有源代码,而是已经编译好的程序块。 编程语言从低级到高级的发展过程就是代码复用率越来越高的发展过程,同时也是从 无意识的复用到有意识的大量复用发展的过程。汇编语言可以通过转移指令来偶然复用代 码。c 语言中出现了函数,可以有意识的将常用的功能表示为函数而提高了复用率。而在 面向对象的语言中出现的类,是一种在更高层次上的抽象和封装,以便更好的复用。 组件复用相对于代码复用来说,大大提高了复用率,而且也不要求开发人员在复用组 件前了解组件实现的细节,提高了开发效率。基于平台的软件开发方式就是一种在大量已 经存在的具有一定功能的组件基础上进行开发,如m i c r o s o f t 公司的v b 、n e t ,b o r l a n d 公司的d e l p h i ,s u n 公司的j a v a 等,都提供了能够实现不同功能的大量可复用组件并由此 构成一个开发平台,从而提高了软件开发速度。开发平台根据针对的应用不同,可分为高 1 3 南京信息工程大学硕十论文基于软件复用技术的招聘网站开发的研究 层平台和低层平台。高层平台针对某一特定领域,具有复用率高开发速度快优点,但是缺 乏灵活性,系统运行效率低。低层平台则正好相反。高层平台是通过低层平台开发出来的。 从技术
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年军供站医护人员招聘笔试答题技巧与案例分析
- 2025年中职英语专业的教师资格证面试模拟题及答案
- 2025年抽纱刺绣工艺品项目发展计划
- 2025年液压气压刹车系统项目建议书
- 2025-2026学年北师大版(2024)小学数学三年级上册《捐书》教学设计
- 吉林省长春市榆树市2025-2026学年九年级上学期开学五校联考语文试卷(含答案)
- 第二章 有理数及其运算 单元测试 培优卷(含答案) 2025-2026北师大版八上
- 2025年江西省吉安市吉州区中考数学一模试卷(含部分答案)
- 教育学与教学法基础知识试题及答案
- 古琴等级考试试题及答案
- 胸部肿瘤并发症与防治
- TCRHA 063.2-2024 消毒供应质量管理及评价 第2部分:区域化消毒供应业务
- 2024年新人教版化学九年级上册全册课件(新版教材)
- CA6140车床后托架(831001型号)的机械加工工艺规程及夹具设计774262
- 人教版部编道德与法治一年级上册《全册完整》课件
- 血管外科运用PDCA降低介入手术穿刺点并发症
- 三级公立医院绩效考核微创手术目录(2022版)
- 危险驾驶罪课件讲解
- 地质灾害危险性评估收费标准
- 幼儿园中班数学课件:《图形的组合与分解-欢欢的礼物》
- 医院检验科实验室生物安全程序文件SOP
评论
0/150
提交评论