




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.,第四章 可重用性和可移植性,本章重点: 重用的概念; 可重用的软件成份; 重用对可维护性的影响; 重用的障碍; 可移植性的概念; 实现可移植性的技术。,.,4.1重用的概念,重用也叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用。在软件工程中,重用是指使用一个产品中的组件来简化另一个不同的产品的开发。,.,最早的软件重用技术:人们建造了子程序库,开发成运行时支持程序,使用时只需要调用相应的函数或方法即可,而不用从头开始建造相应的程序。 随着软件开发技术的不断发展和软件重用技术的需求,又提出软件构件和软件构件库的概念。,.,重用不但可以缩短开发过程、降低开发成本、提高软件产品的质量
2、,还可以减少维护的时间和降低维护成本。,.,大量使用可重用的组件来开发软件,可以从下述两个方面提高软件的可维护性: 第一方面,通常可重用的组件在开发时经过很严格的测试,可靠性比较高,且在每次重用过程中都会发现并清除一些错误,随着时间推移,这样的组件将变成实质上无错误的。 第二方面,很容易修改可重用的组件使之再次应用在新环境中,因此,软件中使用的可重用的组件越多,维护也就越容易。,.,图4-1面向软件构件复用的软件开发过程,.,4.1.1软件成分的重用级别,软件成分的重用划分成以下3个级别: (1) 代码重用 调用库中的模块。可以采用下列形式: 源代码剪贴:缺点是复制或修改原有代码时可能出错。
3、源代码包含:许多程序设计语言都提供包含(include)库中源代码的机制。 继承:重用类库中的类时无须修改已有的代码,就可扩充或具体化在库中找出的类。 (2) 设计结果重用 重用某个软件系统的设计模型(即求解域模型)。 (3) 分析结果重用 重用某个系统的分析模型。适用于用户需求未改变,但系统体系结构发生了根本变化的场合。,.,4.1.2 典型的可重用软件成分,(1)项目计划。跨项目重用软件项目计划的基本结构和许多内容,可以减少用于制定计划的时间,降低与建立进度表和进行风险分析等活动相关联的不确定性。 (2)成本估计。不同项目中常含有类似的功能,只做极少修改或根本不做修改就重用对该功能的成本估
4、计结果。 (3)体系结构。很少有截然不同的程序和数据体系结构,有可能创建一组类属的体系结构模板,把那些模板作为可重用的设计框架。 (4)需求模型和规格说明。用传统软件工程方法开发的分析模型,是可重用的。面向对象开发方法中,类和对象的模型及规格说明也是经常被重用的对象。 (5)设计。用传统方法开发的体系结构、数据、接口和过程设计结果,是重用的候选者;系统和对象设计也是可重用的。,.,(6)源代码。用兼容的程序设计语言书写的、经过验证的程序构件,是重用的候选者。 (7)用户文档和技术文档。即使针对不同的应用,也有可能重用用户文档和技术文档的大部分。 (8)用户界面。GUI(图形用户界面)软件可占到
5、一个应用程序的60%代码量,经常被重用,重用的效果非常显著,这可能是最广泛被重用的软件成分。 (9)数据。在大多数被重用的软件成分中,被重用的数据包括: 内部表、列表和记录结构,以及文件和完整的数据库。 (10)测试用例。如果设计或代码构件被重用,相关的测试用例也会一同被重用。,.,4.1.3软件成分重用的过程,.,4.1.3软件成分重用的过程,软件重用的一般过程如下: 抽象:对一个可重用的软件成分,首先要对其进行“抽象”概括,即描述该软件成分的本质、功能、适用范围和特点,以此作为关键字,方便使用者在调用时进行检索; 存储:以关键字作为索引,放置在“可重用的软件成分库”中备用; 检索:在组建(
6、集成)新系统时,利用关键字,根据需要从可重用的软件成分库检索挑选适合新系统功能要求的软件成分; 实例化:对选取的软件成分进行简单的修改调试,变成完全适合新系统要求的软件成分; 系统集成:最后进行系统集成,完成新系统的组建。,.,4.1.4软件重用形式的划分,1根据重用跨越的问题领域划分 (1)垂直式重用:在同一应用领域中重用。 采用这种重用方式的各个应用系统具有共性或相似性。对于这种形式,便于获得通用模型,重用面广;大多数软件组织采用这种重用形式。 (2)水平式重用:在不同领域中重用通用的软件元素。 由于各个应用系统一般差异较大,可重用的构件较少。常用的通用软件元素有数据结构、算法、人机界面等
7、。现在互联网中的中间构件及各种应用平台已经变成水平式重用的发展趋势。,.,2根据实现重用的途径划分 (1)组装(集成)式重用:建立可重用构件库,开发新的软件时从构件库中选取合适构件组装(集成)成新系统。 这种重用的基础是一个逐渐完善、高效率的构件库系统。在这种重用方式中,可重用的构件应该有简明的特征描述以便检索,并有标准接口;并且着重源代码的重用。 (2)生成式重用:通过形式化语言描述,利用程序自动生成器生成相应的软件系统。,.,3根据重用方式划分 (1)黑盒重用:对可重用的构件不加任何修改,直接重用。 这种重用的构件为通用型可重用构件,具有良好的封装性和标准的接口,并具有高可靠性和质量保证,
8、因此这种类型构件重用率很高。 (2)白盒重用:对可重用的构件进行部分修改,以适应新系统的要求。,.,4.1.5可重用软件构件的生产和使用,1软件构件的生产 开发者获取并生产可重用的构件,其基础工作是建立可重用构件库和构件分类检索方案。软件构件的生产步骤如下: 领域分析:分析和抽象该领域的通用成分和应用体系结构; 基准模型:构建领域基准体系结构模型,该模型应具有可扩充性; 寻找构件:在基准体系结构模型基础上寻找和确定可能的构件; 性能分析:挑选具有特殊性的构件,并从通用性和局部可修改性(通过消息传递、继承等方式)进行归并、扩充和完善; 创建构件:建立可重用构件; 构件测试:严格测试,提高可靠性。
9、其测试用例可以与构件一起被重用; 商业包装:特征描述,以方便客户对测试过的构件存储和检索,存入构件库。,.,2软件构件的使用 软件构件的使用步骤如下: 体系结构:以构件生产者提供的基准体系结构模型为基础,经裁剪或扩充而成。 寻找构件:从构件库、遗留软件或构件供应商中查询适合待开发软件要求的构件。 筛选构件:从寻找到的构件中进一步比较,挑选出最适合待开发软件要求的构件。 修改构件:调整和修改选中的构件,使之完全满足系统要求。 软件开发:对新的软件系统中不能重用的部分进行开发。 组装构件:将调整后的构件和新开发的部分组装成一个新的软件系统。 集成测试:对新组装成的软件系统进行集成测试。 构件评价:
10、对可重用构件提出改进意见,发现新的可重用构件并向生产者推荐。,.,4.2软件重用的实施与组织,系统地软件重用实施是指有目的地创建、管理、支持和重用软件资产。 软件资产是那些有价值的、高质量的软件工作制品、工具、模型、过程步骤、算法等。在系统地软件重用描述中,经常用软件资产代替构件。,.,系统地软件重用在实施过程中涉及的4个并发过程,.,1创建过程:其目标是标识和提供可重用软件资产。此过程的活动包括清理分析遗留的软件资产、领域分析、重用客户需求分析、定义体系结构、构建构件、测试和包装软件资产。 2支持过程:对可重用资产的获取、管理和维护提供全面支持。涉及的活动包括验证和分发可重用资产,为构件分类
11、编目、提供附加文档、收集反馈信息。 3重用过程:利用可重用资产生产应用软件产品。涉及的活动包括验证领域模型和用户需求、选择和修改可重用资产、组建和测试应用软件。 4管理过程:对系统地软件重用全过程进行统筹、计划和协调。涉及的活动包括制定和协调进度计划、安排资金使用方向和额度、组织培训等。,.,系统地进行软件重用的组织结构示意图,.,各职能部门职责如下: 1系统开发部门:可重用构件创建者。其职能是创建高质量的可重用资产,为众多重用者服务;与应用开发部门(重用者)并列,集中精力设计和创建可重用构件;尽量接近重用者,以保证其生产的可重用构件符合实际需要。 2应用开发部门:可重用构件使用者。其职能是更
12、多、更快、低成本地利用可重用资产完成应用项目的开发;将软件重用时发现的问题与修改意见及时反馈给系统开发部门,完善可重用构件。 3支持部门:用来完成前两个部门不能涉及而又必须作的工作,为可重用资产的获取、管理、维护提供全面的支持,与系统开发部门和应用开发部门并列。 4高层经理:在3个职能部门之上。其职责是关注总体目标,从总体目标高度上权衡创建者和重用者的得失;协调3个职能部门之间的工作,仲裁3个职能部门之间的发生的冲突;对于大公司,可设立重用管理委员会,设经理、体系结构设计师等职位,由委员会集体讨论和仲裁各部门之间的矛盾。,.,4.3重用的障碍,重用会面临这样的一些障碍: 1很多软件专业人员宁可
13、自己从头编写一个程序,也不愿重用别人编写的程序。 2重用的对象最好自身没有错误也不会给相关程序带来错误。 3可重用的组件很多,如何进行存储和管理以便进行检索去重用? 4对于合同软件会产生司法问题。 5重用的对象是现成的软件产品组件时,相应的源代码对软件开发组织来说是保密的。 6重用会增加成本。 这些障碍只是一些主要的障碍,在原则上是可以克服的。,.,4.4可移植性,软件可移植性指的是把程序从一种计算环境(硬件配置和操作系统)转移到另一种计算环境并使之正常运行的难易程度。可移植性有时也被描述为跨平台性。它从软件对新环境的适应性这一方面反映了软件的质量。,.,好的软件产品可以在它的整个生存期间,在
14、三个或更多的不同的硬件配置上实现。 为解决这个问题,可以采用不同的方法: 一种方法是购买向上兼容的硬件,这样做仅需要花钱购买相应的硬件产品,而不需要对软件作变动。 另一种方法是把与硬件、操作系统以及其他外部设备有关的程序代码集中放到特定的程序模块中,把因环境变化而必须修改的程序局限在少数程序模块中,从而降低修改的难度。,.,为提高软件的可移植性,应尽量使软件与具体的设备无关,即提高软件的设备独立性。 可移植性还意味着能够容易地修改文档以反映目标配置,而不需要重新写一个新的文档。,.,分析软件的可移植性需要考虑: 不同的体系结构之间二进制形式的应用软件是不可移植的,如果是源程序,必须对其进行重新
15、编译才可以在新的环境中运行。 相同体系结构的硬件平台上,如果操作系统也相同,二进制形式的应用软件可移植,否则必须对源程序进行相应的修改后重新编译链接生成新的可执行文件才可以在不同的操作系统下运行。 对于同一种语言编写的程序在不同版本编辑器之间的可移植性,取决于该语言的标准化程度和编译器实现时对语言标准的严格遵守程度。,.,软件的可移植性是软件共享的源程序文本资源的一个特性,它可以从两方面来解释:原程序可以从一台处理机转向另一台处理机,从一个编译程序转向另一个编译程序,只需要很小的改动或根本不需要修改;源程序模块只需要很小的改动或不需要改动就可以集结到不同的软件包中。,.,4.5实现可移植性的技术,对于可移植的系统软件,一种技术是可以隔离任何必须依赖于实现的程序段,而不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五年级体育课教学辅助计划他
- 新员工培训培优辅差工作计划
- 小学语文学科竞赛心得体会
- 第二学期小学教导处德育工作实施计划
- 电力系统员工学习张欣同志先进事迹心得体会
- 放射科医疗质量安全事件报告制度及流程
- 以形促言:聚焦于形任务在高中英语阅读课堂的效能探究
- 以客户为擎驱动增长:A集团大客户管理体系的深度剖析与创新实践
- 一年级兴趣发展与德育结合计划
- 2025年华中农业大学自主招生职业规划个人陈述范文
- 山东省中小学校档案管理暂行办法
- 班长述职ppt模版
- 普通高中物理课程标准
- 国家开放大学《监督学》形考任务( 1-4)试题和答案解析
- 完工付款最终付款申请表
- 人工动静脉内瘘
- 新版(七步法案例)PFMEA
- 慢阻肺随访记录表正式版
- 广西大学数学建模竞赛选拔赛题目
- 受戒申请表(共3页)
- 低钠血症的护理
评论
0/150
提交评论