可重用性和可移植性.ppt

上传人:小飞机 文档编号:6251785 上传时间:2023-10-10 格式:PPT 页数:30 大小:360.82KB
返回 下载 相关 举报
可重用性和可移植性.ppt_第1页
第1页 / 共30页
可重用性和可移植性.ppt_第2页
第2页 / 共30页
可重用性和可移植性.ppt_第3页
第3页 / 共30页
可重用性和可移植性.ppt_第4页
第4页 / 共30页
可重用性和可移植性.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《可重用性和可移植性.ppt》由会员分享,可在线阅读,更多相关《可重用性和可移植性.ppt(30页珍藏版)》请在三一办公上搜索。

1、第四章 可重用性和可移植性,本章重点:重用的概念;可重用的软件成份;重用对可维护性的影响;重用的障碍;可移植性的概念;实现可移植性的技术。,4.1重用的概念,重用也叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用。在软件工程中,重用是指使用一个产品中的组件来简化另一个不同的产品的开发。,最早的软件重用技术:人们建造了子程序库,开发成运行时支持程序,使用时只需要调用相应的函数或方法即可,而不用从头开始建造相应的程序。随着软件开发技术的不断发展和软件重用技术的需求,又提出软件构件和软件构件库的概念。,重用不但可以缩短开发过程、降低开发成本、提高软件产品的质量,还可以减少维护的时间和降低维

2、护成本。,大量使用可重用的组件来开发软件,可以从下述两个方面提高软件的可维护性:第一方面,通常可重用的组件在开发时经过很严格的测试,可靠性比较高,且在每次重用过程中都会发现并清除一些错误,随着时间推移,这样的组件将变成实质上无错误的。第二方面,很容易修改可重用的组件使之再次应用在新环境中,因此,软件中使用的可重用的组件越多,维护也就越容易。,图4-1面向软件构件复用的软件开发过程,4.1.1软件成分的重用级别,软件成分的重用划分成以下3个级别:(1)代码重用调用库中的模块。可以采用下列形式:源代码剪贴:缺点是复制或修改原有代码时可能出错。源代码包含:许多程序设计语言都提供包含(include)

3、库中源代码的机制。继承:重用类库中的类时无须修改已有的代码,就可扩充或具体化在库中找出的类。(2)设计结果重用重用某个软件系统的设计模型(即求解域模型)。(3)分析结果重用重用某个系统的分析模型。适用于用户需求未改变,但系统体系结构发生了根本变化的场合。,4.1.2 典型的可重用软件成分,(1)项目计划。跨项目重用软件项目计划的基本结构和许多内容,可以减少用于制定计划的时间,降低与建立进度表和进行风险分析等活动相关联的不确定性。(2)成本估计。不同项目中常含有类似的功能,只做极少修改或根本不做修改就重用对该功能的成本估计结果。(3)体系结构。很少有截然不同的程序和数据体系结构,有可能创建一组类

4、属的体系结构模板,把那些模板作为可重用的设计框架。(4)需求模型和规格说明。用传统软件工程方法开发的分析模型,是可重用的。面向对象开发方法中,类和对象的模型及规格说明也是经常被重用的对象。(5)设计。用传统方法开发的体系结构、数据、接口和过程设计结果,是重用的候选者;系统和对象设计也是可重用的。,(6)源代码。用兼容的程序设计语言书写的、经过验证的程序构件,是重用的候选者。(7)用户文档和技术文档。即使针对不同的应用,也有可能重用用户文档和技术文档的大部分。(8)用户界面。GUI(图形用户界面)软件可占到一个应用程序的60%代码量,经常被重用,重用的效果非常显著,这可能是最广泛被重用的软件成分

5、。(9)数据。在大多数被重用的软件成分中,被重用的数据包括:内部表、列表和记录结构,以及文件和完整的数据库。(10)测试用例。如果设计或代码构件被重用,相关的测试用例也会一同被重用。,4.1.3软件成分重用的过程,4.1.3软件成分重用的过程,软件重用的一般过程如下:抽象:对一个可重用的软件成分,首先要对其进行“抽象”概括,即描述该软件成分的本质、功能、适用范围和特点,以此作为关键字,方便使用者在调用时进行检索;存储:以关键字作为索引,放置在“可重用的软件成分库”中备用;检索:在组建(集成)新系统时,利用关键字,根据需要从可重用的软件成分库检索挑选适合新系统功能要求的软件成分;实例化:对选取的

6、软件成分进行简单的修改调试,变成完全适合新系统要求的软件成分;系统集成:最后进行系统集成,完成新系统的组建。,4.1.4软件重用形式的划分,1根据重用跨越的问题领域划分(1)垂直式重用:在同一应用领域中重用。采用这种重用方式的各个应用系统具有共性或相似性。对于这种形式,便于获得通用模型,重用面广;大多数软件组织采用这种重用形式。(2)水平式重用:在不同领域中重用通用的软件元素。由于各个应用系统一般差异较大,可重用的构件较少。常用的通用软件元素有数据结构、算法、人机界面等。现在互联网中的中间构件及各种应用平台已经变成水平式重用的发展趋势。,2根据实现重用的途径划分(1)组装(集成)式重用:建立可

7、重用构件库,开发新的软件时从构件库中选取合适构件组装(集成)成新系统。这种重用的基础是一个逐渐完善、高效率的构件库系统。在这种重用方式中,可重用的构件应该有简明的特征描述以便检索,并有标准接口;并且着重源代码的重用。(2)生成式重用:通过形式化语言描述,利用程序自动生成器生成相应的软件系统。,3根据重用方式划分(1)黑盒重用:对可重用的构件不加任何修改,直接重用。这种重用的构件为通用型可重用构件,具有良好的封装性和标准的接口,并具有高可靠性和质量保证,因此这种类型构件重用率很高。(2)白盒重用:对可重用的构件进行部分修改,以适应新系统的要求。,4.1.5可重用软件构件的生产和使用,1软件构件的

8、生产开发者获取并生产可重用的构件,其基础工作是建立可重用构件库和构件分类检索方案。软件构件的生产步骤如下:领域分析:分析和抽象该领域的通用成分和应用体系结构;基准模型:构建领域基准体系结构模型,该模型应具有可扩充性;寻找构件:在基准体系结构模型基础上寻找和确定可能的构件;性能分析:挑选具有特殊性的构件,并从通用性和局部可修改性(通过消息传递、继承等方式)进行归并、扩充和完善;创建构件:建立可重用构件;构件测试:严格测试,提高可靠性。其测试用例可以与构件一起被重用;商业包装:特征描述,以方便客户对测试过的构件存储和检索,存入构件库。,2软件构件的使用软件构件的使用步骤如下:体系结构:以构件生产者

9、提供的基准体系结构模型为基础,经裁剪或扩充而成。寻找构件:从构件库、遗留软件或构件供应商中查询适合待开发软件要求的构件。筛选构件:从寻找到的构件中进一步比较,挑选出最适合待开发软件要求的构件。修改构件:调整和修改选中的构件,使之完全满足系统要求。软件开发:对新的软件系统中不能重用的部分进行开发。组装构件:将调整后的构件和新开发的部分组装成一个新的软件系统。集成测试:对新组装成的软件系统进行集成测试。构件评价:对可重用构件提出改进意见,发现新的可重用构件并向生产者推荐。,4.2软件重用的实施与组织,系统地软件重用实施是指有目的地创建、管理、支持和重用软件资产。软件资产是那些有价值的、高质量的软件

10、工作制品、工具、模型、过程步骤、算法等。在系统地软件重用描述中,经常用软件资产代替构件。,系统地软件重用在实施过程中涉及的4个并发过程,1创建过程:其目标是标识和提供可重用软件资产。此过程的活动包括清理分析遗留的软件资产、领域分析、重用客户需求分析、定义体系结构、构建构件、测试和包装软件资产。2支持过程:对可重用资产的获取、管理和维护提供全面支持。涉及的活动包括验证和分发可重用资产,为构件分类编目、提供附加文档、收集反馈信息。3重用过程:利用可重用资产生产应用软件产品。涉及的活动包括验证领域模型和用户需求、选择和修改可重用资产、组建和测试应用软件。4管理过程:对系统地软件重用全过程进行统筹、计

11、划和协调。涉及的活动包括制定和协调进度计划、安排资金使用方向和额度、组织培训等。,系统地进行软件重用的组织结构示意图,各职能部门职责如下:1系统开发部门:可重用构件创建者。其职能是创建高质量的可重用资产,为众多重用者服务;与应用开发部门(重用者)并列,集中精力设计和创建可重用构件;尽量接近重用者,以保证其生产的可重用构件符合实际需要。2应用开发部门:可重用构件使用者。其职能是更多、更快、低成本地利用可重用资产完成应用项目的开发;将软件重用时发现的问题与修改意见及时反馈给系统开发部门,完善可重用构件。3支持部门:用来完成前两个部门不能涉及而又必须作的工作,为可重用资产的获取、管理、维护提供全面的

12、支持,与系统开发部门和应用开发部门并列。4高层经理:在3个职能部门之上。其职责是关注总体目标,从总体目标高度上权衡创建者和重用者的得失;协调3个职能部门之间的工作,仲裁3个职能部门之间的发生的冲突;对于大公司,可设立重用管理委员会,设经理、体系结构设计师等职位,由委员会集体讨论和仲裁各部门之间的矛盾。,4.3重用的障碍,重用会面临这样的一些障碍:1很多软件专业人员宁可自己从头编写一个程序,也不愿重用别人编写的程序。2重用的对象最好自身没有错误也不会给相关程序带来错误。3可重用的组件很多,如何进行存储和管理以便进行检索去重用?4对于合同软件会产生司法问题。5重用的对象是现成的软件产品组件时,相应

13、的源代码对软件开发组织来说是保密的。6重用会增加成本。这些障碍只是一些主要的障碍,在原则上是可以克服的。,4.4可移植性,软件可移植性指的是把程序从一种计算环境(硬件配置和操作系统)转移到另一种计算环境并使之正常运行的难易程度。可移植性有时也被描述为跨平台性。它从软件对新环境的适应性这一方面反映了软件的质量。,好的软件产品可以在它的整个生存期间,在三个或更多的不同的硬件配置上实现。为解决这个问题,可以采用不同的方法:一种方法是购买向上兼容的硬件,这样做仅需要花钱购买相应的硬件产品,而不需要对软件作变动。另一种方法是把与硬件、操作系统以及其他外部设备有关的程序代码集中放到特定的程序模块中,把因环

14、境变化而必须修改的程序局限在少数程序模块中,从而降低修改的难度。,为提高软件的可移植性,应尽量使软件与具体的设备无关,即提高软件的设备独立性。可移植性还意味着能够容易地修改文档以反映目标配置,而不需要重新写一个新的文档。,分析软件的可移植性需要考虑:不同的体系结构之间二进制形式的应用软件是不可移植的,如果是源程序,必须对其进行重新编译才可以在新的环境中运行。相同体系结构的硬件平台上,如果操作系统也相同,二进制形式的应用软件可移植,否则必须对源程序进行相应的修改后重新编译链接生成新的可执行文件才可以在不同的操作系统下运行。对于同一种语言编写的程序在不同版本编辑器之间的可移植性,取决于该语言的标准

15、化程度和编译器实现时对语言标准的严格遵守程度。,软件的可移植性是软件共享的源程序文本资源的一个特性,它可以从两方面来解释:原程序可以从一台处理机转向另一台处理机,从一个编译程序转向另一个编译程序,只需要很小的改动或根本不需要修改;源程序模块只需要很小的改动或不需要改动就可以集结到不同的软件包中。,4.5实现可移植性的技术,对于可移植的系统软件,一种技术是可以隔离任何必须依赖于实现的程序段,而不是禁止所有依赖于实现的特性方面。另一种有用的技术是使用抽象层次来实现可移植性。,对于应用软件,由于通常使用高级语言进行编写,在进行选择实现的语言时,应考虑到可移植性这个因素,应该选择普遍实现的编程语言。,对于数据,最安全的方式就是构造一个非结构化的文件,对该文件进行移植。从非结构化的文件可以重新构建结构化文件,只需要编写两个特定的转换程序。一个运行在原机器上,将原来的结构化文件转换为顺序文件形式。另一个运行在目标机器上,将移植过来的顺序文件重新构建结构化文件。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号