软件工程导论第11章软件重用
软件工程导论复习重点总结很全第六版

第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。
软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。
1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。
应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。
应当开发和使用更好旳软件工具。
总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。
1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。
(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。
软件工程导论第11章

【还可以把适配接口再进一步细分为转换接口和扩充接口。转换接口, 是为了克服与表示方法、数据结构或硬件特点相关的操作给重用带来 的困难而设计的,这类接口是每个类构件在重用时都必须重新定义的 服务的集合。当使用C++语言编程时,应该在根类(或适当的基类)中, 把属于转换接口的服务定义为纯虚函数。如果某个服务有多种可能的 实现算法,则应该把它当作扩充接口。扩充接口与转换接口不同,并 不需要强迫用户在派生类中重新定义它们,相反,如果在派生类中没 有给出扩充接口的新算法,则将继承父类中的算法。当用C++语言实现 时,在基类中把这类服务定义为普通的虚函数。】
4. 弱耦合 耦合:指一个软件结构内不同模块之间互连的紧 密程度。 在面向对象方法中,对象是最基本的模块,因此, 耦合主要指不同对象之间相互关联的紧密程度。 弱耦合是优秀设计的一个重要标准。
5
对象之间的耦合分为两大类: (1) 交互耦合: 对象之间的耦合通过消息连接来实现。 使交互耦合尽可能松散,应遵守下述准则: 尽量降低消息连接的复杂程度。 应该尽量减少消息中包含的参数个数,降低参数的复 杂程度。 减少对象发送(或接收)的消息数。 (2) 继承耦合 与交互耦合相反,应该提高继承耦合程度。 通过继承关系结合起来的基类和派生类,构成系统中 粒度更大的模块。设计时应该使特殊类尽量多继承并 使用其一般化类的属性和服务,从而更紧密地耦合到 其一般化类。
13
2. 软件成分的重用级别 (1) 代码重用 源代码剪贴:最原始的重用形式。 复制或修改原有代码时可能出错,存在严重的配臵 管理问题,人们几乎无法跟踪原始代码块多次修改 重用的过程。 源代码包含:许多程序设计语言都提供包含库中 源代码的机制。配臵管理问题有所缓解,修改了库 中源代码之后,所有包含它的程序自然都必须重新 编译。 继承:利用继承机制重用类库中的类时,无须修 改已有的代码,就可以扩充或具体化在库中找出的 类,基本上不存在配臵管理问题。
《软件工程》第11章 软件重用技术

3. 分析的复用 这是比设计结果更高级别的复用,可复用的分析 构件是针对问题域的某些事物或某些问题的抽 象程度更高的解法,受设计技术及实现条件的 影响很少。 4. 测试信息的复用 主要包括测试用例的复用和测试过程信息的复用。 前者是把一个软件的测试用例在新的软件测试 中使用,或者在软件作出修改时在新的一轮测 试中使用。
11.4 小结
软件重用(Software Reuse,又称软件复用或软件再用)就是将已有的 软件成分用于构造新的软件系统。可以被复用的软件成分一般称作可复 用构件,无论对可复用构件原封不动地使用还是作适当的修改后再使用, 只要是用来构造新软件,则都可称作复用。软件复用不仅仅是对程序的 复用,它还包括对软件生产过程中任何活动所产生的制成品的复用,如 项目计划、可行性报告、需求定义、分析模型、设计模型、详细说明、 源程序、测试用例等等。 目前及近期的未来最有可能产生显著效益的复用是对软件生命周期中一 些主要开发阶段的软件制品的复用,按抽象程度的高低,可以划分为如 下的复用级别:
软部件库组织与检索的关键子任务及其支持工具 关键子任务 软部件库的组织与存储 浏览 检索 结构化查询 基于语义的检索 支持工具 关系数据库或面向对象的数据库系统,类库 超文本浏览工具 自然语言的语法分析与语义理解工具 关系数据库系3 面向对象的软件重用技术
从抽象程度来看,面向对象技术已达到 了类级重用(代码重用),它以类为封装的 单位。这样的重用粒度还太小,不足以 解决异构互操作和效率更高的重用。近 几年来,构件技术的发展, 构件技术已形 成三个流派:Sun的Java平台、Microsoft 的COM+、IBM的CORBA。
11.1.1软件重用定义 软件重用是利用事先建立好的软部品创建新软 件系统的过程。这个定义蕴含着软件重用所必 须包含的两个方面: 1. 系统地开发可重用的软部品。这些软部 品可以是代码,但不应该仅仅局限在代码。我 们必须从更广泛和更高层次来理解,这样才会 带来更大的重用收益。比如软部品还可以是: 分析,设计,测试数据,原型,计划,文档, 模板,框架等等。 2. 系统地使用这些软部品作为构筑模块, 来建立新的系统。
软件工程导论第11章软件重用

软件工程导论第11章:软件重用概述软件重用是软件工程中一个重要的概念。
随着软件行业的快速发展,为了提高软件的开发效率和质量,软件工程师们开始关注如何使用已经存在的软件组件或模块进行开发,而不是重复进行相同的编码工作。
软件重用可以极大地减少软件开发的时间和成本,并提高软件的可维护性和可靠性。
本文将介绍软件工程导论中的第11章内容,主要围绕软件重用展开,包括重用的概念、重用的类型、重用的方法和重用的优势等。
重用的概念软件重用是指在开发新软件的过程中利用已经存在的软件组件或模块。
这些组件或模块可以是已存在于软件开发组织的库中,也可以是来自开源社区或第三方供应商的软件。
重用的关键是将现有的软件资源整理成易于使用和理解的形式,以便在新项目中重复使用。
软件工程师们可以通过各种手段来实现软件重用,例如使用类库、框架、组件等。
重用的类型在软件工程中,重用可以分为三种类型:黑盒重用、白盒重用和灰盒重用。
•黑盒重用:黑盒重用是通过直接使用已存在的二进制或源代码来重用软件。
在黑盒重用中,重用过程不需要了解组件或模块的内部实现细节,只需要知道如何正确地集成和调用已有的组件即可。
•白盒重用:白盒重用是通过理解和修改已存在的源代码或二进制来重用软件。
在白盒重用中,重用过程需要对组件或模块的内部实现细节有一定的了解,并且可能需要对其进行修改以适应新项目的需求。
•灰盒重用:灰盒重用是黑盒重用和白盒重用的一个折中方案。
在灰盒重用中,重用过程需要了解组件或模块的一部分内部实现细节,并且可能需要对其进行修改或扩展以适应新项目的需求。
重用的方法在软件重用中,有几种常见的重用方法:•类库重用:使用已存在的类库,这些类库提供了一组已经实现的功能,包括数据结构、算法、用户界面等。
通过使用类库,开发人员可以节省大量的开发时间和精力。
•框架重用:使用提供了基本架构和组件的框架。
框架通常提供了一整套结构和规范,用于帮助开发人员构建特定类型的应用程序。
《软件工程导论》课后习题答案

*
作业及解答(第1-2章)
05
03
01
在1985年对计算机存储容量的需求,估计是
如果字长为16位,则这个存储器的价格是
如果一条指令的长度为一个字,则使存储器装满程序共需4474263条指令。
储户的属性主要有姓名、住址、电话号码和身份证号码,储蓄所的属性主要是名称、地址和电话号码,而数额、类型、到期日期、利率和密码则是关系类型存取款的属性。
*
作业及解答(第3章)
*
作业及解答(第3章)
3-6 复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。
在上列公式中Y代表年份,M是存储容量(字数),P1和P2代表价格。
基于上述假设可以比较计算机硬件和软件成本的变化趋势。要求计算:
*
作业及解答(第1-2章)
在1985年对计算机存储容量的需求估计是多少?如果字长为16位,这个存储器的价格是多少?
假设在1985年一名程序员每天可开发出10条指令,程序员的平均工资是每月4000美元。如果一条指令为一个字长,计算使存储器装满程序所需用的成本。
如果字长为32位,则这个存储器的价格是:
在1995年对存储容量的需求估计为:
在1995年一名程序员每天可开发出30条指令,每月可开发出600条指令,为了开发出可装满整个存储器的程序,需要的工作量为
软件工程软件重用名词解释

软件工程软件重用名词解释
软件重用 (Software 重用) 是指在软件开发过程中,利用已经开发完成并被验证过的代码或组件来构建新的应用程序或功能。
重用可以提高软件开发的效率和质量,减少开发时间和成本,同时也是遵循软件工程中模块化、组件化、可复用性等原则的重要体现之一。
软件重用可以分为多种形式,包括代码重用、组件重用、文档重用、测试重用等。
其中代码重用是最为普遍的重用形式之一,是指在新的应用程序或功能中,直接使用已有的代码模块或库,而不是重新编写。
这种方式可以减少代码冗余和错误,提高代码的可读性和可维护性。
除了代码重用,软件重用还包括其他形式,例如组件重用、测试重用等。
组件重用是指将已经开发完成的部分组件或模块重新用于新的应用程序或功能中,以实现更高效的代码复用。
测试重用则是指将已经测试好的测试用例或测试数据用于新的测试任务中,以节省时间和成本。
软件重用是软件工程中的重要原则之一,可以提高软件开发的效率和质量,减少开发时间和成本。
开发者应该尽可能利用已有的代码和组件来构建新的应用程序或功能,而不是从头开始编写。
同时,为了保障重用的安全性和可靠性,开发者需要对重用的代码和组件进行仔细的审核和测试。
《软件工程》第11章软件重用技术

《软件工程》第11章软件重用技术在当今的软件开发领域,软件重用技术正发挥着日益重要的作用。
它就像是一把神奇的钥匙,能够为开发者打开高效、高质量软件开发的大门。
软件重用,简单来说,就是在新的软件开发过程中,重复使用已有的软件元素,这些元素可以是代码片段、设计模式、架构,甚至是整个软件组件。
想象一下,如果你每次做饭都要从头开始种植蔬菜、磨面粉,那会是多么繁琐和低效。
而软件重用就像是拥有一个储备丰富的食材库,你可以随时从中选取你需要的材料,快速地烹饪出美味佳肴。
为什么软件重用如此重要呢?首先,它能够显著提高软件开发的效率。
当我们可以直接使用已经经过验证和优化的软件组件时,就不必花费大量的时间和精力去重新开发类似的功能。
这就好比站在巨人的肩膀上,能够更快地达到目标。
其次,软件重用有助于提高软件的质量。
经过多次使用和优化的软件元素往往具有更高的可靠性和稳定性,因为它们已经在不同的场景中经受了考验。
此外,软件重用还能够降低开发成本,使得软件开发能够在更有限的资源下实现更多的功能。
软件重用的方式多种多样。
代码重用是其中最常见的一种形式。
比如,一个用于计算平均值的函数,在多个项目中都可能被需要,如果每次都重新编写这个函数,不仅浪费时间,还容易引入错误。
而将这个函数封装好,在需要的时候直接调用,就能大大提高开发效率。
设计重用则是在更高层次上的重用。
比如,某种特定类型的软件架构,如客户服务器架构,在很多应用中都被证明是有效的,那么在新的项目中,如果条件适合,就可以直接采用这种架构,而不必重新设计。
软件组件的重用也是非常重要的一种方式。
软件组件就像是一个个独立的“小模块”,它们具有明确的功能和接口。
这些组件可以在不同的系统中被重复使用,只要它们的接口与新系统兼容。
例如,一个用于图像压缩的组件,可以在图像编辑软件、网页设计工具等多种不同的应用中发挥作用。
然而,要实现有效的软件重用并不是一件轻而易举的事情。
首先,需要有良好的软件设计和规划。
软件工程导论第11章

2、实现单向关联 1)用指针可以方便地实现单向关联。 2)如果关联的阶是一元的,则实现关联的指
针是一个简单指针;如果阶是多元的,则 需要用一个指针集合实现关联。
39
3、实现双向关联
实现双向关联有下列三种方法:
1. 只用属性实现一个方向的关联,当需要反向 遍历时就执行一次正向查找。
2. 两个方向的关联都用属性实现,这种方法能 实现快速访问。
2、提供一种简便可靠的软构件组合机制。 3、设计类时,应注意以下可能影响重用性的操作:
? 与表示方法有关的操作。例如,不同实例的比较、显 示、擦除等等。
? 与数据结构、数据大小等有关的操作。 ? 与外部设备有关的操作。例如,设备控制。 ? 实现算法在将来可能会改进(或改变)的核心操作 19
11.3.3 软件重用的效益
)、(
)和(
)。
2、软件重用是提高软件(
)和目标系统(
)的重要
途径,它基本上始于设计。其中软件成分重用可划分成以下 3个
级别即代码重用、设计成果重用和分析结果重用。
3、面向对象设计的 6个准则:( )、( )、( )、弱耦合 、( )和( )。
4、一般来说,对象之间的耦合分为两大类:( )和( )。
2. 一般—特殊结构的深度应适当 中等规模的系统中,类等级层次数应保持
为7±2。不是必要情况,不应该随意创建派生类;
3. 设计简单的类:设计小而简单的类,便于 开发和管理; 1)避免包含过多的属性; 2)有明确的定义; 3)尽量简化对象之间的合作关系; 4)不要提供太多服务。
4. 使用简单的协议:设计简单的类接口,发送 的消息中参数要少。
5. 使用简单的服务:编写实现每一个服务时, 避免复杂的语句和结构;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)人的因素
喜欢自己创造而不喜欢使用别人的东西。
软件复用的困难
(3)管理因素
把复用构件和一般软件构件同等看待,把复用看作可有可
无的事。
(4)教育因素
软件科学技术的教育与培训中,缺乏关于软件复用的内容, 缺少专门教材和课程。
11.1 可重用的软件成分 11.2 软件重用过程 11.3 领域工程 11.4 开发可重用的构件 11.5 分类和检索构件
采用结构化方法和面向对象方法,而后者将成为主流。
11.3.2
领域特征
为了确定一个可能可重用的软件成分在特定情况 下是否确实可以被使用,有必要定义一组领域特征, 这些特征是该领域中所有软件共有的。领域特征定义 了该领域中所有产品共有的类属属性,例如,安全(或
可靠性)的重要性,程序设计语言,处理中的并发性等。
件和完整的数据库。 · 测试用例。一旦设计或代码构件将被重用,相 关的测试用例应该“附属于”它们。
11.2
11.2.1
软件重用过程
构件组装模型
“重用”应该是每个软件过程的一个不可缺少的 组成部分。图11.1所示的构件组装模型,举例说明了 怎样把一个可重用的软件构件库集成到典型的演化过 程模型中。
· 用户文档和技术文档。即使针对的应用是不同
的,也经常有可能重用用户文档和技术文档的大部分。 · 用户界面。这可能是最广泛被重用的软件成分, GUI(图形用户界面)软件经常被重用。因为它可占到一 个应用程序的60%代码量,因此,重用的效果非常显著。
· 数据。在大多数经常被重用的软件成分中,被
重用的数据包括:内部表、列表和记录结构,以及文
二、基于软件复用的软件开发过程的角度分
1.生产者复用(product reuse)
指建立、获取或者重新设计可复用构件的活动。涉及到的活 动包括:复用的规划、领域分析、构件的开发、构件库的组织和 管理。 2.消费者复用(consumer reuse) 指使用可复用的构件建立新的系统的活动。涉及到的活动包 括:应用系统的规划、构件的检索和选择、应用系统中非复用部 分的开发、应用系统的组装。
的某些事物或某些问题的抽象程度 更高的解法。 受实际环境影响小,可复用机会多, 所需修改少。 包括目标代码,也包括文本形式的 源代码。
设计结果的复用
低
代码的复用
软件成分的重用可以进一步划分成以下三个级别。
(1) 代码重用 (2) 设计结果重用 设计结果重用指的是,重用某个软件系统的设计模型(即求解域 模型)。这个级别的重用有助于把一个应用系统移植到完全不同的 软/硬件平台上。
11.4
11.4.1
开发可重用的构件
为了重用的分析与设计
2. 类构件的重用方式 (1) 实例重用 (2) 继承重用 面向对象方法特有的继承性,提供了一种对已有 的类构件进行裁剪的机制。当已有的类构件不能通过 实例重用完全满足当前系统需求时,继承重用提供了 一种安全地修改已有类构件,以便在当前系统中重用 的手段 (3) 多态重用 利用多态性不仅可以使对象的对外接口更加一般 化(基类与派生类的许多对外接口是相同的),从而降 低了消息连接的复杂程度,而且还提供了一种简便可 靠的软构件组合机制,系统运行时,根据接收消息的 对象类型,由多态性机制启动正确的方法,去响应一 个一般化的消息,从而简化了消息界面和软构件连接 过程。
高
测试信息的复用 抽
象
程 度
分析结果的复用
从现有系统的分析结果中提取可复 用构件用于新系统的分析; 主要包括测试用例(test case) 用一份完整的分析文档作为输入, 的复用和测试过程信息的复用。 成生针对不通软硬件平台和其它实现条 件的多项设计; 独立于具体应用,专门开发一些 可被复用的分析结果是针对问题域 可复用的分析构件。
第11章 软件重用
重用(reuse)也称为再用或复用,是指同一事物不做 修改或稍加改动就多次重复使用。
软件重用的优点:
(1)提高软件生产率,降低软件生产代价; (2)提高软件质量; (3)互操作性好; (4)推动标准化; (5)支持原型开发。
退出
软件复用就是将已有的软件成分用于构造新的软件系统, 以达到提高软件系统的开发质量与效率,降低开发成本的目 的。
图11.2
一个强调重用的过程模型
11.3 领域工程
领域工程的目的是,标识、构造、分类和传播一
组软件成分,在特定的应用领域中这些软件成分可适 用于现有的和未来的软件系统。其总体目标是,建立 相应的机制,使得软件工程师可以在新的或现有的系 统中分享这些软件成分——重用它们。 领域工程包括三个主要的活动,它们是分析、构 造和传播。
11.2.3
重用过程模型
为了实现软件重用,已经提出了许多过程模型, 这些模型都强调领域工程与软件工程同时进行。领域 工程完成一系列工作,以建立一组可以被软件工程师 重用的软件成分。 图11.2给出了一个典型的明显适用于重用的过程 模型。领域工程创建应用领域的模型,在软件工程流 中使用该模型作为分析用户需求的基础。软件体系结 构及相应的结构点(见11.3.3节)为应用系统的设计提 供了输入信息。最后,在可重用的软件成分作为领域 工程的一部分被构造出来之后,它们可以在软件开发 活动中被软件工程师使用。
· 成本估计。因为在不同项目中经常含有类似的
功能,所以有可能在只做极少修改或根本不做修改的 情况下,重用对该功能的成本估计结果。 · 体系结构。即使在考虑不同的应用领域时,也 很少有截然不同的程序和数据体系结构。因此,有可 能创建一组类属的体系结构模板(例如,事务处理体系 结构),并把那些模板作为可重用的设计框架。 · 需求模型和规格说明。类和对象的模型及规格
· 分析每个应用样本。
· 开发对象的分析模型。
领域分析是对特定应用领域中共同的特征、知识、需
求的标识、分析和规约。领域分析是特定领域内软件重用的
基础,它的目标就是:发现和挖掘在特定领域内可以被复用 的构件。领域分析活动中输入和输出如图所示:
输入信息
技术文献 已有应用 专家经验/建议 当前与未来的需求
一个可重用的软件成分的领域特征集可以表示为 {DP},集合中每一项DPi表示一个特定的领域特征。
赋给DPi的值表示等级,它指出该特征与软件成分P的 相关性。典型的等级如下。
· 与重用是否合适不相关。 · 仅在特殊情况下才相关。 · 相关,但存在差异无关紧要,该软件成分经过 修改后仍然可以被使用。 · 明显相关,如果新软件不具有此特征,虽然重 用仍然是可能的,但却是低效的。 · 很相关,如果新软件不具有此特征,重用将是 非常低效的,此时不推荐重用。 当在该应用领域中要开发一个新软件w时,可以为 它导出一组领域特征{Dw},然后比较DPi与Dwi,以决 定是否现存的软件成分P可以在应用系统w中有效地重 用。 表11.1列出了可能对软件重用有影响的典型的领 域特征,为了有效地重用软件成分,必须考虑这些领 域特征。
可 复 用 的 软 件 成 分 , 也 称 为 可 复 用 构 件 (Reusable Component)可从旧软件中提取,也可以专门为复用而开发。
软件复用不仅是对程序的复用,它包括对软件生产过程 中任何活动所产生的制成品的复用。如:项目计划、可行性 报告、需求定义、分析模型、详细说明、源程序和测试用例 等等。
即使待开发的软件明显属于某个应用领域,对该 领域中可重用的软件成分也必须加以分析,以确定它 们在当前项目中的可重用性。在少数情况下,从头开 发可能仍然是成本最低的途径。 11.3.3 结构建模和结构点
每个应用领域都可以用一个结构模型来刻画(例如,
不同飞行器飞行控制系统的细节差别很大,但是在该 领域的所有现代软件都具有相同的结构模型),因此, 结构模型是一种体系结构制品,它可以也应该在该领 域内的所有应用系统中被重用。
图2
典型的重用的过程模型,描述了领域工程与软件工程的关系。
领域工程
领域分析 设计软件 体系结构 开发可重用 的软件成分
领域 模型
结构 模型
中心库
可重用软件 成分/构件
软件工程
系统分析 用户 需求
规格说明 与设计
建造
系统规 格说明
分析与 设计模型
应用 软件
重用的过程模型
11.3.1
分析过程
领域分析过程基本上由下述步骤组成。 · 定义被研究的领域。 · 把从该领域中抽取出来的项分类。 · 收集该领域中有代表性的应用样本。
软件生产过程主要是正向过程,即软件产品从抽象级别较高
的形态向抽象级别较低的形态演化,所以较高级别的复用容易带
动较低级别的复用,反之则不然。 复用级别越高,可得到的回报也越大,因此分析软件 (Analysis Ware)和设计软件(Design Ware)的复用备受重视。
软件复用的形式
一、按照重用活动所跨越的应用领域的类型分
表 11.1 影响重用的领域特征 产品 需求稳定性 并发软件 内存限制 应用大小 用户界面复杂性 程序设计语言 安全/可靠性 寿命需求 产品质量 产品可靠性 过程 过程模型 过程符合性 项目环境 进度限制 预算限制 生产率 人员 动机 教育 经验/培训 · 应用领域 · 过程 · 平台 · 语言 开发队伍 生产率
输出信息
领域分析 领域语言 复用标准 分类方法 功能/行为模型
领域分析的输入和输出
领域分析不是针对某个特定的软件系统,而是针对一类
软件系统的共同的特征、知识和需求。比需求分析更一般、更 抽象、更广泛的特征。 领域分析(Domain Analysis)是对一类应用系统的共同应 用领域进行系统化分析,以发现该领域的共同知识、需求及其应 用系统的共同特征。 领域分析又称领域工程(Domain Engineering),是软件工 程的发展与延伸。 领域分析是一项比系统分析更难的工作。领域分析方法可
(3) 分析结果重用
这是一种更高级别的重用,即重用某个系统的分析模型。这种 重用特别适用于用户需求未改变,但系统体系结构发生了根本变化 的场合。更具体地说,可能被重用的软件成分主要有以下10种。