清华大学软件工程课程讲义软件复用
软件工程课件第十章

⑴ 选择特定的领域
⑵ 抽取具有最优复用的功能
⑶ 标识该功能 ⑷ 建立领域分析模型
⑸ 定义需求规约,得到由需求规约构件和子配置构成的领域模型
开发可复用构件
– 构件应具有的特征
⑴ 通用性 ⑵ 可变性
在建造构件时,应该提供构件的特化和调整机制。
⑶ 易组装性
• 构件的组装分为同构件的组装和异构件的组装。 • 构件应有良好的封装性和良好的接口。 • 构件间应有松散的耦合度 • 应提供便于组装的机制
收集和分析用户的需求,设计并实现需要另 加的构件,对所提供的可复用构件进行必要 的修改,建造和测试整个应用系统。
面向对象与软件复用
面向对象技术的核心概念是“类”,而类的主要特征 封装、继承和多态,都十分有利于复用。
面向对象方法对软件复用的支持
⑴ OOA模型
OOA模型分基础模型和详细模型,基础模型体现更 高层次的抽象,更容易复用。
软件复用的基本概念
领域工程 基于构件的软件开发 面向对象与软件复用
软件复用的基本概念
软件复用的定义 1983年,Freeman对软件复用给出了 这样的定义: “在构造新的软件系统过程中,对 已存在的软件人工制品的使用技 术。” 开发伴随复用,开发为了复用
领域 工程
领域分析
软件结构开发
可重用构件开发 可复用 构件库
领域模型
结构模型
基于构件 的开发
构件选用 构件调整 构件组合
构件更新 应用 软件
分析
结构设计
构件工程
测试
软件复用的重要性
软件复用的目的是能更快、更好、成 本更低地生产软件产品。 实现软件复用应解决的问题
– 建立支持复用的基础设施(如构件库)。 – 培训工程师和管理者使用复用软件。 – 采用促进软件复用的开发方法(如面向
软件工程课件复习swguide-软件复用

第八章软件复用一、复习要求1. 了解软件复用的概念、过程和意义。
2. 了解软件复用的类型、复用的目标和内容。
Strong3. 了解针对复用的过程模型和论域工程。
4. 了解可复用构件的构造原则和质量标准。
5. 了解可复用构件库的组织,包括可复用构件的3C模型。
6. 了解软件的分层式体系结构。
7. 了解软件构件的复用过程(包括构件的检索与提取、理解与评价和修改)8. 了解面向对象的软件复用技术9. 了解支持软件复用的CASE工具需求二、内容提要1.软件复用的概念、过程和意义(1) 软件复用的概念对建立软件目标系统而言,所谓复用(Reuse),就是利用某些早先开发的对建立新软件系统有用的软件元素来生产新系统。
它是一项活动,而不是一个对象。
这里所说的软件元素可以包括需求规格说明、设计过程、设计规格说明、程序代码、测试用例、度量等等。
对于新的软件开发项目而言,它们或者是构成新软件系统的构件,或者是在软件开发过程中发挥某种作用。
通常将这些软件元素称为可复用构件。
早在50年代用机器语言编写程序的时期,计算正弦、余弦、对数等的标准子程序包就开创了复用的先河。
到70年代的早期,在语言、数据结构、操作系统、程序变换等方面各种技术的发展,都与代码的复用有关。
当时,复用的应用领域有限,软件的复用问题没有提到很重要的位置上来讨论。
70年代的中期和后期开始,为了缓解软件危机,许多人寄希望于软件复用技术,因为在提高软件生产率与质量,以及减少软件开发时间和成本的努力中软件复用已经成了关键因素。
当前,美、日一些大公司的资料表明,软件复用率最高可望达到90%,而且软件复用使得企业在及时满足市场、软件质量、软件开发费用和维护费用等方面得到显著的改进。
为了保证软件的复用,需要注意解决的问题主要有:▪复用必须以对被复用对象的理解为基础;▪如何表达对软件构件的需求;▪如何寻找有关的软件构件;▪如何识别是否满足要求;▪如何调整或修改构件使之满足要求;▪如何组装到新系统中;▪如何保证结果的正确性;▪如何进行效益的定量估算。
软件工程中的软件复用技术分析

软件工程中的软件复用技术分析在当今快速发展的信息技术领域,软件工程面临着越来越高的要求和挑战。
为了提高软件开发的效率、质量和降低成本,软件复用技术逐渐成为软件工程中的重要手段。
软件复用,简单来说,就是在软件开发过程中,重复使用已有的软件资源,包括代码、设计、文档等。
这就好比在建造房屋时,不是每次都从制作砖头开始,而是可以直接使用已经生产好的砖头,从而节省时间和精力。
软件复用技术具有诸多显著的优势。
首先,它能够显著提高软件开发的效率。
通过复用已有的成熟组件和模块,开发人员无需从头开始构建每一个功能,从而大大缩短了开发周期。
想象一下,如果每次开发一个新的应用程序都要重新编写登录模块、用户管理模块等常见功能,那将是多么耗时费力的事情。
而有了软件复用,这些常见的功能模块可以直接拿来使用,或者在其基础上进行少量的修改和定制,就能满足新的需求。
其次,软件复用有助于提高软件的质量。
被复用的软件组件往往经过了多次的测试和优化,其稳定性和可靠性相对较高。
使用这些经过验证的组件,能够降低新开发软件中出现错误和缺陷的风险。
再者,软件复用还能降低开发成本。
由于减少了重复开发的工作量,相应的人力、时间和资源投入也会降低,从而使软件开发的成本得到有效控制。
在软件工程中,常见的软件复用形式多种多样。
代码复用是最基本的一种形式,开发人员可以直接复用他人编写的函数、类或者模块。
设计复用则是在更高层次上的复用,例如复用软件的架构设计、算法设计等。
还有一种是组件复用,这就像是在搭积木,将各种预定义好的组件组合在一起,构建出复杂的软件系统。
然而,要实现有效的软件复用,并非一帆风顺,也面临着一些挑战和问题。
首先是复用资源的查找和评估问题。
在庞大的软件资源库中,如何快速准确地找到符合需求的复用资源,并且评估其质量和适用性,是一个难题。
这需要建立有效的检索机制和评估标准。
其次,复用资源的适应性和兼容性也是需要考虑的。
不同的软件项目可能有不同的需求和环境,复用的资源可能需要进行一定的修改和调整才能适应新的情况。
软件工程中的软件复用与组件化设计

软件复用的类型
函数复用
重用封装好的功能 代码
组件复用
重用独立的、可替 换的软件构件
对象复用
重复利用现有的对 象模型
软件复用的方法
库的使用
高级语言的特性
模板的应用
使用现有的函数库 或类库
利用面向对象、泛 型等特性实现复用
利用模板生成重复 代码
组件化设计
软件复用在软件工程中扮演着重要角色,它不仅可以带 来业务创新,还能对企业经济效益产生积极影响。通过 软件复用,企业可以获得竞争优势,提高产品质量和交
付速度。
软件复用的实践案例分析
Google开源项目的 复用案例
阿里巴巴的软件复用 经验分享
微软的组件化设计实 践
开源项目利用
软件复用经验
组件化设计实践
软件开发过程
需求分析
编码
设计
明确用户需求,分 析系统功能和性能
要求。
根据设计方案进行 编码实现,编写符 合标准的程序代码。
制定软件架构和模 块设计,确定系统
的整体结构。
测试
验证软件功能是否 符合需求,发现并
修复缺陷。
软件质量管理
质量保证
制定质量标准和过程,确保软件产品符合标准。
质量控制
监控和调整开发过程,及时发现并解决问题。
质量评估
定期评估和审查软件质量,持续改进工作流程。
软件工程的重要性
软件工程是现代软件开发的重要方法论,它能够提高软件质 量、加快开发进度、降低成本,并提高软件可维护性。在当 今科技进步日新月异的环境下,软件工程的实践和应用变得
尤为重要。
软件工程的发展历史
第一阶段
软件工程中的软件复用与组件化

软件工程中的软件复用与组件化在软件工程领域中,软件复用和组件化是两个重要的概念。
它们旨在提高开发效率、减少重复工作,并增强软件的可维护性和可扩展性。
本文将深入探讨软件复用和组件化的概念、优势以及在软件开发中的应用。
一、软件复用软件复用是指在不同的项目中反复使用已有的软件资产,例如代码、模块、库等,以减少开发时间和资源成本。
它可以通过以下方式实现:1. 函数和类的复用:在软件开发过程中,我们可以将常用的功能封装成函数或类,并在其他项目中重复使用。
这样一来,我们不需要重复编写相同的代码,提高了开发效率。
2. 组件的复用:组件是一种可独立运行和替换的软件模块,具有明确定义的接口和功能。
在软件开发中,我们可以将常用的组件开发成独立的软件,然后在不同的项目中引用和复用。
这样不仅减少了重复开发的工作量,还提高了软件的可维护性和可扩展性。
二、组件化组件化是一种以组件为中心的软件开发方法,通过将软件拆分为独立的、可重用的组件来构建系统。
组件化的核心思想是将软件划分为功能独立的模块,并通过定义清晰的接口和通信机制来实现彼此之间的交互。
1. 组件的定义:组件是具有特定功能和接口的独立软件模块,它可以被独立开发、测试和部署。
每个组件都封装了一部分特定的功能,并提供了清晰的API供其他组件使用。
2. 组件的特点:组件具有高内聚性和低耦合性的特点。
高内聚性意味着组件内部的元素紧密相关且协同工作,而低耦合性表示组件之间的依赖关系较弱,可以独立修改和替换。
3. 组件间的通信:组件之间通过明确定义的接口和消息传递机制进行通信。
通过定义接口,组件可以揭示自己的功能和约定,其他组件可以通过接口调用其功能。
消息传递可以通过事件、消息队列等方式实现。
三、软件复用与组件化的优势软件复用和组件化在软件开发中具有诸多优势,包括:1. 提高开发效率:通过复用已有的软件资产,开发人员可以减少编码工作,专注于解决当前项目的特定需求,提高开发效率。
软件工程中的软件复用

软件工程中的软件复用软件复用是指在软件开发过程中,重复使用已有的软件组件、模块、库或其他可重用的资源来构建新的软件系统。
它是提高软件开发效率和质量的重要手段之一。
本文将从软件复用的定义、优势、实施方法以及存在的挑战等方面进行讨论。
一、软件复用的定义软件复用是指在软件开发过程中,通过合理组合已有的软件组件、模块、库等可重用资源,使得新的软件系统能够更高效、更快速地开发出来。
软件复用旨在降低开发成本、加快开发进度、提高软件质量和可靠性。
它可以通过不同的方式实现,如通过代码重用、组件复用、模块复用等。
二、软件复用的优势1. 提高开发效率:软件复用可以避免从头开始编写相同或相似功能的代码,减少了开发时间和工作量,提高了开发效率。
2. 提高软件质量:通过复用已经经过测试和验证的软件组件,可以减少错误和缺陷的可能性,提高软件的质量和可靠性。
3. 降低成本:软件复用避免了重复开发相同功能的成本,节约了开发资源和时间,并且可以通过合理的复用策略降低软件维护的成本。
4. 加快上市时间:软件复用可以减少开发周期,使得软件能够更快速地上市,占领市场先机,增加竞争力。
三、软件复用的实施方法1. 代码重用:通过将已经编写好的代码模块作为库文件或软件包,供其他项目重复使用,实现代码的复用。
2. 组件复用:将可独立使用的业务组件打包成可重用的组件库,由多个项目共享使用,避免重复研发相同的组件。
3. 模块复用:将软件系统中的功能模块抽象出来,形成独立的模块,供多个系统复用,实现模块级的复用。
四、软件复用存在的挑战1. 适用性问题:不是所有的软件都适合进行复用,有些软件需求特殊或定制化程度高,不适合直接进行复用。
2. 维护问题:复用的软件组件可能需要进行维护和升级,需要投入额外的人力和时间进行支持和维护。
3. 版本管理问题:多个项目同时复用同一个软件组件时,版本管理可能成为一个挑战,需要具备良好的版本管理机制。
4. 知识和沟通问题:开发团队需要具备相应的知识和技能才能进行有效的复用,同时需要加强团队间的沟通和协作。
清华大学郑人杰殷仁昆教软件工程讲义08
1. 数据组员是否满足数据封装旳要求
检验数据组员是否满足数据封装旳要求,就是检验 其数据组员是否能被外界(数据组员所属旳类或子 类以外旳调用)直接调用。更直观旳说,当变化数 据组员旳构造时,看其是否影响了类旳对外接口, 是否会造成相应外界必须改动。
值得注意,有时强制旳类型转换会破坏数据旳封装 特征。例如: class Hiden { private: int a = 1;
12
c) 高层旳类旳属性和服务是否完全体现下层 旳共性。
d) 低层旳类是否基于其上层类旳属性和服务 并具有自己旳特殊性。
2) 对复合构造旳测试从如下方面入手: a) 整体类和局部类旳复合(聚合)关系是否符 合现实旳关系。 b) 整体类旳局部类是否在问题领域中有实际应 用。 c) 整体类中是否漏掉了在问题领域中有用旳局 部类。
件旳功能实现,造成软件开发后期大量可防止旳修 补工作;而某些冗余旳对象或构造会影响类旳选定、 程序旳整体构造或增长程序员不必要旳工作量。所 以,OOA测试旳要点在其完整性和冗余性。 根据Coad和Yourdon措施所提出旳OOA实现环节, 对OOA阶段旳测试划分为下列五个方面: ✓对认定旳类旳测试 ✓对认定旳构造旳测试 ✓对认定旳主题旳测试
11
✓ 在Coad和Yourdon措施中,认定旳构造分为两 种:泛化构造和复合构造。泛化构造体现了问 题领域中对象旳一般与特殊旳关系,复合构造 体现了问题领域中对象旳整体与局部旳关系。
1) 对泛化构造旳测试可从如下方面着手: a) 对于构造中旳一种类,尤其是处于高层旳类, 看是否能在问题领域中派生出其下一层旳类。 b) 对于构造中旳一种类,尤其是处于同一低层 旳类,看是否能抽象出在现实世界中有意义 旳更一般旳上层旳类。
21
软件工程经典教程(清华大学用).ppt共48页
角色
岗位职责
PM
1、跟踪单元测试计划和用例的编写、编码和单元测试活动执行的进展情
况,并协调资源。
2、组织专家评审单元测试计划和用例。
3、组织专家评审代码。
4、组织归档。
5、汇总TL的缺陷数据,输出单元测试报告。
TL
1、编写单元测试计划,编写并评审单元测试用例。
2、分配编码工作,控制编码和单元测试进度。
3、协调组员完成编码、代码走读、测试数据准备与管理、单元测试、问 题的修改工作。
4、组织单元测试工作,
5、执行单元测试用例,记录、修改、验证单元测试中发现的缺陷,汇总 模块单元测试缺陷数据和原因分析给PM。
开发人员
1、编写并评审单元测试用例。 2、编码,走读代码,修改代码。 3、执行单元测试用例,记录、修改、验证单元测试中发现的缺陷 。
参加对产品需求、系统规格说明书/架构设计说明书,数据库设计说明书, 接口文档的评审工作。
参加对产品需求、系统规格说明书/架构设计说明书,数据库设计说明书, 接口文档的评审工作。
参加对产品需求、系统规格说明书/架构设计说明书,数据库设计说明书, 接口文档的评审工作。
参加对产品需求、系统规格说明书/架构设计说明书,数据库设计说明书, 接口文档的评审工作。
参加对产品需求、系统规格说明书/架构设计说明书,数据库设计说明书, 接口文档的评审工作。
三)需求分析★
需求变更流程
角色分配
角色
PM
岗位职责
组织项目组成员对需求文挡的评审。发生需求变更时,组织项目组成员对 项目变更进行实施。
SE
TL 开发人员
TC 测试人员
CCB 评审专家
组织开发人员和测试人员理解需求,提供技术支持,维护需求问题跟踪单 和需求矩阵,识别需求和其他工作产品及计划间的不一致。 和PM一同分 析需求变更,评定严重级别。 编写需求文档,组织预审、内审、外审,以及输出评审表 编写需求文档,参加评审 理解需求,参加评审 理解需求,参加评审 评估需求变更,对变更做出决策 评审需求文挡
软件复用知识点总结
1、为什么要复用?软件复用是在软件开发中避免重复劳动的解决方案,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及测试案例等,将开发的重点集中于应用的特有构成成分。
通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率,同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量。
2、复用的概念:软件复用是指重复使用“为了复用目的而设计的软件”的过程。
相应地,可复用软件是指为了复用目的而设计的软件.与软件复用的概念相关,重复使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程,或在一个应用系统的不同版本间重复使用代码的过程,这两类行为都不属于严格意义上的软件复用。
3、软件复用的分类:1)依据复用的对象,可以将软件复用分为产品复用和过程复用.•产品复用:指复用已有的软件构件,通过构件集成(组装)得到新系统;•过程复用:指复用已有的软件开发过程,使用可复用的应用生成器来自动或半自动地生成所需系统.过程复用依赖于软件自动化技术的发展,目前只适用于一些特殊的应用领域.产品复用是目前现实的、主流的途径.2)依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒(Black Box)复用和白盒(White Box)复用.黑盒复用:指对已有构件不需作任何修改,直接进行复用.这是理想的复用方式.白盒复用:指已有构件并不能完全符合用户需求,需要根据用户需求进行适应性修改后才可使用.而在大多数应用的组装过程中,构件的适应性修改是必需的。
灰盒复用:不允许直接修改构件源代码,但提供了可修改构件行为的扩展语言或编程接口。
可以是基于框架、基于连接子、基于粘连码的复用。
4、如何实现复用:实现复用的基本条件:一是必须有可以复用的对象;二是所复用的对象必须是有用的,三是复用者需要知道如何去使用被复用的对象.5、软件复用包括两个相关过程:可复用软件(构件)的开发和基于可复用软件(构件)的应用系统构造(集成和组装).6、实现软件复用的关键因素:1)软件构件技术:构件是指应用系统中可以明确辨识的构成成分。
软件工程中的软件复用与组件化设计
软件工程中的软件复用与组件化设计在软件开发中,软件复用和组件化设计是两个关键的概念。
它们旨在提高软件开发的效率、降低成本和增强软件质量。
本文将详细探讨软件工程中的软件复用和组件化设计,并通过实例说明其重要性和应用。
一、软件复用的定义与意义软件复用是指在新的软件开发中重复使用已经开发过的软件组件、模块或代码的过程。
它通过将已有的实现进行整理、封装和文档化,以供其他项目或团队使用。
软件复用的意义非常重大:1. 提高开发效率:软件复用避免了重复开发的过程,节省了开发人力和时间。
当一个模块或组件经过反复测试和使用后,其稳定性和可靠性得到验证,可以直接用于新的项目中。
2. 降低开发成本:通过软件复用,不需要每个项目都从零开始开发所有的模块,减少了资源和资金的浪费。
同时,对于一些核心模块或功能,可以由专门的团队进行开发和维护,进一步节约成本。
3. 提高软件质量:经过多次使用和测试的组件具有较高的稳定性和可靠性。
通过复用这些组件,可以减少新代码的错误和漏洞,提高整个软件系统的质量。
二、软件复用的实施方式软件复用有多种实施方式,下面将介绍几种常见的形式:1. 函数库复用:将常用的函数、算法或数据结构封装为函数库,供其他项目使用。
例如,一个日期处理函数库可以提供日期计算、日期格式化等功能。
2. 类库复用:将相关的类和方法封装为类库,供其他项目调用。
类库可以包含一系列的类、接口和数据结构,提供特定的功能模块。
3. 组件复用:将一组相关的类、配置文件和资源打包成一个可独立运行的组件,供多个项目使用。
组件可以提供一系列的接口和功能,如登录认证、文件上传等。
4. 微服务复用:通过将一个应用程序拆分为多个小型的独立服务,每个服务负责一个特定的功能模块。
这些服务可以独立部署和调用,提供灵活的组件复用方式。
三、组件化设计的概念与优势组件化设计是一种将软件系统划分为多个独立组件,并通过定义接口和实现细节实现组件间的通信和协作的方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16
1) 创建过程 界定和提供可复用资产, 以满足复用者的需要。可复用资产的 来源可以是新开发的、再工程的、购 置的。
第八章 软件复用
8.1 软件复用概念与复用分类 8.2 软件复用的过程 8.3 领域工程与应用工程 8.4 可复用构件的构造原则和质量标准 8.5 软件构件与可复用构件库
8.6 软件构件的复用
8.7 面向对象的软件复用技术
1
8.1 软件复用概念与复用分类
? 对建立软件目标系统而言,所谓复用, 就是 利用某些早先开发的对建立新软 件系统有用的软件元素来生产新系统 。
4
?这些可复用的软件元素作为软件构件创 建,并以软件构件的方式集成到新应用 系统中。
?所谓构件,是在一个系统中有价值的, 近似独立的,可替换的系统成分。它可 在仔细定义的体系结构环境中履行一个 显式定义的功能。
?所谓软件构件则是一个具有按契约定义 的、依赖上下文环境的组装单元。
5
软件复用需要解决的问题
? 可以从不同角度,对软件复用的形式进 行分类: ? 根据复用活动所跨越的领域,可以分 为横向复用和纵向复用。 ? 根据实现复用的途径,可以分为组装 式复用和生成式复用。 ? 根据复用的方式,可以分为黑盒复用 和白盒复用。
12
? 横向复用和纵向复用: ? 横向复用是复用不同应用领域中的软 件元素,如数据结构、排序算法、人 机界面构件等。为此建立标准函数库。 ? 纵向复用是在一类具有较多公共性的 应用领域之间复用软件构件。
产品需求与现有软件
复用
产品
挑选,客户化,组装
? 由于பைடு நூலகம்两个截然不同的应用领域之间进 行软件复用潜力不大,所以多数复用集 中在纵向复用。
13
? 组装式复用和生成式复用:
? 组装式复用是事先已有一个可复用构 件库,开发软件时从库中选择合适的 构件,组装成新系统。必要时还要开 发一些库中没有的构件。此类复用着 重于源代码级的复用。
? 生成式复用是根据待开发软件的形式 化描述,通过应用生成器自动生成相 应的应用软件。例如,典型的词法分 析和语法分析生成器Lex和Yacc 。
? 设计 体系结构、数据、接口和过程化 设计,面向对象系统和对象的设计都可 复用。
? 源程序代码 验证过的程序构件(用兼 容的程序设计语言书写)可以复用。
8
? 用户文档和技术文档 复用用户文档和 技术文档中的大部分内容。
? 用户界面 复用GUI的软件构件。 ? 数据结构 经常被复用的数据结构包括:
? 成本估计 由于不同项目中常包含类似 的功能,所以有可能在极少修改或不修 改的情况下,复用对该功能的成本估计。
? 体系结构 某些体系结构模板(如事务 处理结构), 可作为可复用的设计框架。
7
? 需求模型和规格说明 类和对象的模型 和规格说明, 用传统软件工程方法开发 的分析模型(如数据流图)都可以复用。
? 为了更快、更好、更省地开发和维护 软件,要有计划、有目的地开展软件 复用工作。
3
? 要实现软件复用,必须在分析和设计过 程中就加以考虑,将软件开发过程分解 为领域工程和应用系统工程。使现存软 件和新软件得到最大程度的复用。
? 可供复用的软件元素可有不同规模,如 ? 应用系统复用 作为产品整体复用; ? 构件复用 作为可复用构件,复用现 存软件中的某一成分; ? 功能复用 复用单一功能的函数。
10
Meyer将其归结到 5 个不同的抽象层次上。
?功能抽象 构件提供单一的功能; ?不规则的组合 构件是一组松散关联的
实体的集合。如数据声明或函数等; ?数据抽象 构件是ADT或对象类; ?聚合抽象 构件是一群能在一起工作的
相关的对象类,即框架; ?系统抽象 构件是一个完整的自包含系
统。
11
软件复用的种类
2) 复用过程 利用可复用资产来生产应 用软件产品。
3) 支持过程 全面支持可复用资产的获 取、管理和维护工作。
4) 管理过程 执行计划、启动、资源、 跟踪,并协调其他各个过程。
17
管理 计划, 基金, 优先顺序, 协同工作, 学习
创建 工程,领域,框架,构件,工具
支持 确认,分类,打包 分发,建议,维护
内部表、文件和完整的数据库。 ? 测试用例 只要将设计或代码构件定义
成可复用构件,相关的测试用例就应当 成为这些构件的“从属品”。
9
?从使用构件的角度,构件的关键特性为: ?构件是一个独立的可运行的实体,其 源代码是看不到的; ?所有的交互都通过构件接口完成,其 形式表现为带参数的函数;
?一般情况下,构件涉及两个关联的接口: ?构件提供的接口:定义构件可提供使 用的服务。 ?系统要求的接口:系统为使用此构件 需要的操作。
? 软件复用是一项活动,不是一个对象。 ? 复用的目的是想放弃那种原始的、一
切从头开始的软件开发方式,利用复 用,由共用的可复用构件来组装新的 系统。
2
? 所有可用于复用的软件元素构成 可复 用的资产 ,这些资产包括 高质量的软 件工作成果 (如代码、设计、体系结 构、接口、测试)和 文档、工具、过 程、经过编译的知识 (如指导原则、 模型、公式)等。
?复用需以对被复用对象的理解为基础; ?如何表达对软件构件的需求; ?如何寻找有关的软件构件; ?如何识别是否满足要求; ?如何调整或修改构件使之满足要求; ?如何组装到新系统中; ?如何保证结果的正确性; ?如何进行效益的定量估算。只有当复用
能带来效益时人们才会考虑复用。
6
可能复用的软件要素
? 项目计划 软件项目计划的基本结构和 许多内容都可以跨项目复用。
14
? 黑盒复用和白盒复用: ? 黑盒复用是指不对可复用构件做任何 修改,原封不动地复用。此类复用要 求可复用构件通用性、封装性、可靠 性强,具有标准接口。 ? 白盒复用是指在复用一个构件时需对 其进行部分修改,以适应具体应用的 需要。
15
8.2 软件复用的过程
? 为了取得系统的复用效果,新的开发方 法应将各种应用开发项目与界定、创建 可复用资产联系在一起。