软件复用的粒度

http://www.sytm.net/ruanjiankaifa/20140215113129.html

可供复用的软件产品包含了10种,其中除源代码外,还包括体系结构、需求模型和规约、各种设计、用户界面、数据、测试用例、用户文档、技术文档、项目计划和成本估计等。按照可复用的粒度的大小,可以将这些软件制品从小到大分为以下几类。

1.源代码复用

源代码的复用是最常见的一种复用形式,指对构件库中用高级语言编写的源代码构件的复用。源代码构件本身就是为复用而开发的,存放在可供访问的构件库中。使用者通过对构件库的检索找到满足用户需求的构件,并设置参数值使之具有新的适应性,即可调用构件完成既定计算任务。不难看出,这类复用的特点是:一方面由于构件是经过充分测试的,因此具有较高的可靠性,而且使用者只需设置参数而无需介入构件内部,降低了复用的难度;但另一方面,正因为构件是为复用而开发的,因此,其通用性、抽象性成为具体使用时必须要面对的问题。

2.软件体系结构复用

软件体系结构复用是指对已有的软件体系结构的复用。这类复用既可以支持高层次的复用,也可以支持层次的复用。要求存放体系结构的库能提供有效的检索功能,使用者通过良好定义的接口进行集成。

这类复用的特点是:一方面,可复用较大粒度的软件制品,其修改具有局部性;另一方面,因为难以抽象出简明的描述,存放体系结构的库往往不易管理。

3.应用程序生成器

应用程序生成器用于对整个软件系统的复用,包括整个软件体系结构、相应的子系统和特定的数据结构和算法的复用。理论上来说,应用程序生成器可以用特定领域的需求规约作为输入,生成器根据输入的规约填充原来不具备的细节,并产生一个完整的可执行系统,但这种方法一般仅针对一些成熟的领域。

这类复用的特点是:一方面,自动化程度高,能获取某个特定领域的标准和以黑盒形式输出结果(应用程序);另一方面,特定的应用程序生成器不易构造。

4.特定领域的软件体系结构复用

这类复用是指对特定领域中存在的一个公共体系结构及其构件的复用。

这类复用的特点是:一方面,复用的程度高,对可复用构件的组合提供了一个通用框架;另一方面,前期投资很大。

时间: 2024-12-20 19:32:29

软件复用的粒度的相关文章

android 边学边记 2015.10.16

1.Menu.FIRST在reference中描述为:First value for group and item identifier integers.我们可以理解为ID设置的最小数值. 2.setDefaultKeyMode (int mode) 用来设置一个Activity的默认的按键模式, 也就是指这种情况,当Activity中发生了一些按键事件,但是这些事件没有被任何控件Listen到时(截获时), 系统应该如何处理这些按键事件. mode一共有五种 DEFAULT_KEYS_DIS

Intent 传值和 Bundle传值的区别

http://blog.csdn.net/yanzi1225627/article/details/7802819 举个例子  我现在要从A界面   跳转到B界面或者C界面   这样的话 我就需要写2个Intent  如果你还要涉及的传值的话 你的Intent就要写两遍添加值的方法 那么 如果我用1个Bundle  直接把值先存里边 然后再存到Intent中 不就更简洁吗? 另外一个例子  如果我现在有  Activity A ,B ,C:现在我要把值通过A经过B传给C你怎么传 如果用Inten

Bundle、Intent、SharedPreferences

Intent与Bundle的共同点:都继承Parcelable Intent传值与Bundle传值的区别 eg:我现在要从A界面   跳转到B界面或者C界面   这样的话 我就需要写2个Intent  如果你还要涉及的传值的话 你的Intent就要写两遍添加值的方法 那么 如果我用1个Bundle  直接把值先存里边 然后再存到Intent中 就更简洁吗? eg:  如果我现在有  Activity A ,B ,C:现在我要把值通过A经过B传给C你怎么传 如果用Intent的话   A-B先写一

关于软件复用领域中一些词的定义

程学先 在代码类软件复用领域中有子程序.宏.函数.类.方法.软构件.软部件.组件等等名词,关于它们的定义有许多不同的说法. 一.百度词条或当前各类文献中的定义 1 类 1)类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体.类具有更高的抽象性,类中的数据具有隐藏性,类还具有封装性.类的结构(也即类的组成)是用来确定一类对象的行为的,而这些行为是通过类的内部数据结构和相关的操作来确定的.这些行为是通过一种操作接口来描述的(也即平时我们所看到的类的成员函数),使用者

网络安全区域划分&&网络管控粒度思考

2个问题的思考,1.网络安全区域划分的必要性:2.网络管控的粒度在哪里? 第一个问题:网络安全区域划分的必要性 由于资金.网络规模.管理方便等历史原因,网络安全分区总是不那么合理.往往一个区域混杂多种流量,各个流量相互影响,容易由于某个业务遭受攻击连带影响到其他业务.当规模不断扩大时,就像一个隐形炸弹,管理人员光是梳理楚流量都要耗费大量的精力,甚至有时候由于人员变动,没有人分得清楚流量间的关系,给后续的运维带来非常大的成本.一旦发生故障将要耗费大量的时间排错.网络设计宗旨:越简单越好. 近期处理

S++的服务治理与服务颗粒度

最近经常与人探讨服务颗粒度的问题,大家总是觉得这个问题难以捉摸,各种各样的方法论.模型让人困惑.那么从S++的方法来看,服务的颗粒度是怎么确定的呢? 让我们先从服务治理开始,从几个典型的例子来看如何梳理服务. 服务治理的目标是建立理想的业务模型,其方法就是通过理解业务.划分业务.定义业务最终完成业务模型的建立.在治理之前,你可以对业务有所了解,也可以完全不懂,但治理之后你一定是个业务专家. S++治理的实施方法论 S++提出服务的抽象过程是业务与技术分离的过程,其推论是抽象后的服务具有时空不变性

关于不同版本软件复用同一个脚本的问题

由于项目的软件版本会逐渐递增,原来的测试脚本在新版本上执行的时候会出现 错误1."The "App(1.0.1.0)-T(0.0.0." Dialog object was not found in the Object Repository." 错误2."Cannot identify the object "App(1.0.1.0)-T(1.1.4" (of class Dialog). Verify that this objec

唯品会、滴滴、沪江架构师,关于微服务粒度、高可用、持续交互的实践分享交流(下)

架构师小组交流会:每期选择一个时下最热门的技术话题进行实践经验分享. 本期小组交流会邀请到了沪江黄凯.唯品会郑明华.滴滴赵伟.七牛云肖勤,对微服务粒度.高可用.持续交互展开了交流. 本期接着上期唯品会.滴滴.沪江架构师,关于微服务粒度.高可用.持续交互的实践分享交流(上)进行了交流. 第一轮:话题交流 滴滴赵伟:在整个服务,从单体服务到微服务的演进过程当中,如何去影响业务的这种正常发展? 唯品会郑明华:从单体服务到微服务的改造,有两种方式,一种是小打小闹,每次稍微改一点,这个时间会非常长,有时候

【转】内存分配粒度vs内存分页大小vs内存空间

原帖地址 分配粒度:表示每次请求内存的时候最小给分配多少,比如32位操作系统基本上每次分配的是64K大小. 分页大小:表示的是页面的大小,32位操作系统是4K是内存管理的最小单位. 例如: 假设你要请求6k = 4K + 2K的空间,操作系统会一次分配64K的空间放着,又因为内存最小操作单位是4K,所以实际上给你分配了8K=4K + 4K,剩下的56K放着有需要了再给你. WIN32 操作系统为每个进程分配4G的内存空间,程序的代码,常量变量都分配在这4G内存空间上. 这里提到的内存空间跟内存条