软件复用度量综述

合集下载

软件复用

软件复用
火龙果整理
复用技术对oo方法的支持
面向对象的软件开发和软件复用之间的关系是相辅 相成的。一方面,00方法的基本概念、原则与技 术提供了实现软件复用的有利条件;另一方面,软 件复用技术也对面向对象的软件开发提供了有力的 支持。
面向对象技术通过方法、消息、类、继承、封装和
实例等机制构造软件系统,并为软件复用提供强有 力的支持。很多面面向对象语言为应用程序开发着
火龙果整理
(3)分析的复用
这是比设计结果更高级别的复用,可复用的分析 构件是针对问题域的某些事物或某些问题的抽象程 度更高的解法,受设计技术及实现条件的影响很少, 所以可复用的机会更大。复用的途径也有三种,即 从现有系统的分析结果中提取可复用构件用于新系 统的分析;用一份完整的分析文档作输入,产生针 对不同软硬件平台和其它实现条件的多项设计;独 立于具体应用,专门开发一些可复用的分析构件。
火龙果整理
小例子:
一位程序员编写了一些排序程序,通过 不同的参数传递来实现多次调用; C程序员编写了解三角方程的程序,整 个程序共调用了12次正弦函数; 一位Ada程序员编写了一个一段模拟程 序,涉及处理队列和一个处理器数组, 为此查找通用Ada队列和数组程序包, 并将其插入运行Ada环境中,并实例化 队列两次(就绪队列和阻塞队列),实 例化数组一次(处理器数组)。
火龙果整理
按照重用活动所跨越的应用领域类型可以分为横 向复用和纵向复用两种类型。
•横向复用:也成为水平重用,是指复 用活动范围跨越了几个不同应用领域, 如数据结构、算法、人机界面构件等。 •纵向复用:也称为垂直重用,是指重 用活动的范围限制在同一个应用领域或 者是一类具有较多共性的应用领域内。
确定同义词
复审
计算机及信息工程学院Copyright10

软件工程中的软件质量度量与改进工具介绍(九)

软件工程中的软件质量度量与改进工具介绍(九)

软件工程中的软件质量度量与改进工具介绍概述软件质量是衡量软件产品优劣的重要标准,而软件质量度量是评估和监控软件质量的手段。

本文将介绍软件工程中常用的软件质量度量方法以及相关的改进工具,帮助读者了解和应用这些工具来提升软件质量。

一、静态代码分析工具静态代码分析工具通过检查代码的语法、结构和规范性,发现潜在的错误和缺陷。

常用的静态代码分析工具有Lint、PMD和FindBugs 等。

这些工具可以自动分析源代码,并给出相应的警告或错误信息。

通过使用静态代码分析工具,开发人员可以提前发现潜在的问题,从而减少后期的调试和修复工作。

二、代码复杂度度量工具代码复杂度是指代码的结构和逻辑的复杂程度,对于软件的可读性和可维护性有很大影响。

常用的代码复杂度度量工具有Cyclomatic Complexity、Halstead Complexity等。

这些工具可以分析代码中的条件分支、循环和函数调用等,计算出代码的复杂度指标,并给出相应的评估结果。

通过对代码复杂度的度量,开发人员可以评估代码的可维护性和可读性,针对性地进行优化和改进。

三、代码覆盖率工具代码覆盖率是指在测试过程中对代码的测试范围,包括语句覆盖率、分支覆盖率、函数覆盖率等。

常用的代码覆盖率工具有JaCoCo、Cobertura等。

这些工具可以分析测试用例对代码的覆盖情况,并给出相应的覆盖率报告。

通过使用代码覆盖率工具,开发人员可以评估测试用例的充分性,发现测试遗漏的代码块,并进行相应的补充。

四、缺陷跟踪工具缺陷跟踪工具可以帮助开发人员记录、跟踪和解决软件中的缺陷和问题。

常用的缺陷跟踪工具有Bugzilla、JIRA等。

这些工具可以让开发人员创建缺陷报告、分配责任人、跟踪解决进度,并提供统计和报表功能。

通过使用缺陷跟踪工具,开发人员可以更好地管理和解决软件中的问题,提高软件质量。

五、持续集成工具持续集成工具是一种自动化软件构建和测试的工具。

常用的持续集成工具有Jenkins、Travis CI等。

浅析软件复用技术及其在软件开发中的应用2500字

浅析软件复用技术及其在软件开发中的应用2500字

浅析软件复用技术及其在软件开发中的应用2500字软件复用思想其实是对已有软件中的一次再次利用。

很多新系统的研发也会有极大成分是对过去经验技术的借鉴和复用,软件复用给人们的工作带来了很多便利。

人们可以减少不必要的机械重复工作,节约更多的时间精力投入到软件创新部分,这种方式将会改善软件的标准化和灵活可靠性。

本文将对软件复用技术的基本概念进行一个阐述,其过程、发展状况也会在本文中谈到,针对当前软件技术的优势劣势本文也将提出一些观点,以供相关工作者参考。

软件复用技术;软件开发;应用;发展软件复用技术能够降低生产成本、提高软件产品的质量、提高系统兼容性等等,在研发人员的努力下,软件开发的风险逐渐减少,系统功能也在增长。

这个过程是不断积累和不断完善的过程,软件复用将会带来软件产业的合理分工专业化、标准化发展,我国倘若能够抓住这个机遇必将成为一个软件强国。

一、软件复用概述(一)软件的概念。

软件复用的主要目的是减少开发与维护的资金投入,这种以原有软件知识为基础而建立的新软件技术能够有效提高生产率。

软件复用概念的提出主要来源于软件危机之后人们意识到软件复用是解决高昂的维护费的一种最佳方法。

软件规模随着经济的发展不断扩大,为了从本质上来改变软件产品质量的维护工作,软件复用技术被广泛用于计算机行业中。

软件复用的使用软件通常被叫做可复用构件,复用的方式有两种,一种是原原本本使用原构件,另一种是将构件进行一定修改了再使用。

我们对软件复用的理解不能仅仅停留在程序复用层面,其实它还涉及分析模型、详细说明、测试用例等等。

值得注意的是软件复用和共享不是一个概念,我们要将两者区别开来。

二、软件复用技术(一)代码的复用。

软件复用级别不同所代表的效益也是不同的。

代码的复用包括两个内容,意识源代码,另一个是目标代码。

源代码级别比目标代码更高一些,代码复用主要依靠大量的可复用构件,其运用及其灵活,能够被广泛运用。

(二)设计的复用。

设计复用较少受环境影响,运用设计复用能减少修改次数,还能增加可复用构件复用机会。

基于软件复用技术的C语言题库系统的设计【文献综述】

基于软件复用技术的C语言题库系统的设计【文献综述】

毕业论文文献综述计算机科学与技术基于软件复用技术的C语言题库系统的设计一.软件复用软件重用[1-3]是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。

软件元素包括程序代码、测试用例、设计文档、设计过程、需要分析文档甚至领域知识。

对于新的软件开发项目而言,它们或者是构成整个目标软件系统的部件,或者在软件开发过程中发挥某种作用。

通常将这些软件元素称为软部件。

软件成分的重用可以进一步划分成以下 3 个级别:(1) 代码重用人们谈论得最多的是代码重用,通常把它理解为调用库中的模块。

实际上,代码重用也可以采用下列几种形式中的任何一种:源代码剪贴:这是最原始的重用形式。

这种重用方式的缺点,是复制或修改原有代码时可能出错,更糟糕的是,存在严重的配置管理问题,人们几乎无法跟踪原始代码块多次修改重用的过程。

源代码包含:许多程序设计语言都提供包含库中源代码的机制。

使用这种重用形式时,配置管理问题有所缓解,因为修改了库中源代码之后,所有包含它的程序自然都必须重新编译。

继承:利用继承机制重用类库中的类时,无须修改已有的代码,就可以扩充或具体化在库中找出的类,因此,基本上不存在配置管理问题。

(2) 设计结果重用设计结果重用指的是,重用某个软件系统的设计模型 ( 即求解域模型 ) 。

这个级别的重用有助于把一个应用系统移植到完全不同的软硬件平台上。

(3) 分析结果重用这是一种更高级别的重用,即重用某个系统的分析模型。

这种重用特别适用于用户需求未改变,但系统体系结构发生了根本变化的场。

更具体地说,可能被重用的软件成分主要有以下10 种:(1)项目计划。

软件项目计划的基本结构和许多内容(例如,软件质量保证计划)都是可以跨项目重用的。

这样做减少了用于制定计划的时间,也降低了与建立进度表和进行风险分析等活动相关联的不确定性。

(2)成本估计。

因为在不同项目中经常含有类似的功能,所以有可能在只做极少修改或根本不做修改的情况下,重用对该功能的成本估计结果。

军用型号项目软件复用成本度量模型

军用型号项目软件复用成本度量模型

军用型号项目软件复用成本度量模型张圆圆1,刘琪2,王颖1【摘要】针对军用型号项目软件研制过程中普遍存在的软件复用行为,提出了一种复用成本度量方法,对传统的COCOMO2.0成本度量模型进行了改进,采用改进的功能点法估计软件实际规模,适当调整模型中的评估项,增加了度量系统复用的成本驱动因子及系统通用特性统计项(GSC),建立了相应的量化评估及DI分级表,形成了军用型号项目软件进度、成本估计模型,使用改进的度量模型对某军用型号项目进行了成本度量,验证了方法的有效性。

【期刊名称】计算机工程与应用【年(卷),期】2015(000)005【总页数】6【关键词】COCOMO2.0;复用度量;军用型号项目1 引言近年来,我军武器装备更新步伐不断加快,对军工装备研制需求不断增长。

军工科研项目是普遍按照产品型号及系列进行研发的大型复杂系统工程[1],具有安全可靠性高、投资规模巨大、建设周期长等特点[2]。

软件研发是军工项目研制的一部分,随着计算机技术越来越广泛地应用于武器装备,军用软件在规模和功能重要性上均呈急剧上升趋势,软件研发已成为军工型号项目研制的关键[3]。

“软件活动是可控、可度量和可改进的过程”(Watts Humphrey),为了提高软件质量、控制进度,军用软件开发组织必须在项目过程中持续度量,持续跟踪,持续改进,不断提高软件项目管理水平。

目前,各武器装备型号都积累了一大批成熟的软件产品,型号项目的系列化研制方式,使得软件产品的重用也越来越普遍[4],对存在复用的型号项目软件进行有效、准确的软件规模/成本估计(Software Measurement),是软件研制过程中进行任务、资源分配,以及进度安排等项目策划(Project Plan)活动的重要前提和基础。

软件复用开发与传统的软件开发方式不同,导致了新的软件复用度量方法及度量模型的需求[5],本文根据军用型号项目软件研制特点,分析了软件开发过程中的复用行为对成本度量结果的影响,并结合项目实施的实际过程及经验数据,对COCOMO2.0(Constructive Cost Model,建设成本分析模型)进行了改进,形成了适用于军用型号项目的改进型软件复用进度/成本估计模型。

软件复用

软件复用

第十章软件复用10.1软件复用概述10.1.1 软件复用目的软件复用使得应用系统的开发不再采用一切从“零”开始的模式,可以充分利用过去应用系统开发中积累的知识和经验,从而可以高效、高质地开发和维护软件系统,主要表现在以下几个方面:1、缩短软件开发和维护的时间;2、降低软件开发和维护的成本;3、保证软件的可靠性;4、保证软件的一致性;5、保护投资者的利益。

10.1.2 软件复用的类型软件复用可以分为横向复用和纵向复用两种类型。

横向复用是指复用不同应用领域中的软件成份,如数据结构、算法、人机界面构件等。

纵向复用活动的关键在于领域分析:根据应用领域的特征和相似性,预测软件成份的可复用性。

一旦确认了软件成份的可复用价值,便进行开发,然后将开发得到的软件制品存入可复用构件库,供未来开发项目使用。

10.1.3 软件复用的内容软件复用的内容,除了源程序代码外,还有许多其它软件制品,甚至特定的分析建模方法、检查技术、质量保证过程等,均可以被复用。

C.Jones定义了10种可能复用的软件制品:(1)项目计划:软件项目计划的基本结构和许多内容,如SQA计划,均可以跨项目复用。

(2)成本估计:由于不同项目中常包含类似的功能,所以有可能在极少修改或不修改的情况下,复用对该功能的成本估计。

(3)体系结构:即使应用论域千差万别,但程序和数据的体系结构很少有截然不同的情形。

因此,有可能创建一组类属的体系结构模板,如事务处理结构,将这些模板作为可复用涉及的框架。

(4)需求模型和规格说明:数据流图、类模型等均可以复用。

(5)设计:系统和对象设计等是常见的复用成份。

(6)源代码(7)用户文档和技术文档:即使特定的应用不同,也有可能复用用户文档和技术文档中的大部分内容。

(8)用户界面:用户界面可能是最广泛地被复用的软件制品。

由于它可能占一个应用软件的60%的代码量,所以复用的效果最明显。

(9)数据:在大多数经常被复用的软件制品中,数据包括:内部表、列表和记录结构,以及文件和完整的数据库。

软件重用-NATO-标准简介-P17

软件重用-NATO-标准简介-P17

NATO软件复用标准简介摘要实践证明,软件复用可以有效地提高软件的质量和生产率,它包括开发可复用软件构件和基于可复用构件的开发两个生命周期。

在这两个生命周期中,采用一个适当的标准以识别和开发可复用软件将大大促进软件复用的实践。

为此,NATO(北大西洋公约组织)制定了一整套软件复用的指导性标准,以帮助NATO及其参与国和承包商的项目管理部门进行有效的软件复用。

这套标准包括《可复用软件构件开发指南》、《可复用软件构件库管理指南》和《软件复用过程指南》三个文档,分别从软件生命周期的各个阶段对软件复用进行了指导和帮助。

关键词:NATO,软件复用,可复用构件开发,构件库管理,复用过程一、前言1.背景与目的自从McIlroy在1968年的NATO软件工程会议上正式提出软件复用的概念以来,软件复用已有了近三十年的发展历程,复用的对象也从早期的代码复用扩展到对软件开发过程中一切有价值的信息的复用,包括需求、需求规约、设计、源代码、测试计划和测试案例等。

近三十年的实践证明,软件复用可以有效地提高软件的质量和生产率,是解决当前“软件危机”的一条比较现实可行的途径。

软件复用包括开发可复用软件构件和基于可复用构件的开发两个生命周期。

在这两个生命周期中,采用一个适当的标准以识别和开发可复用软件将大大促进软件复用的实践。

为此,NATO(北大西洋公约组织)制定了一整套软件复用的指导性标准,以帮助NATO及其参与国和承包商的项目管理部门进行有效的软件复用。

这套标准包括《可复用软件构件开发指南》、《可复用软件构件库管理指南》和《软件复用过程指南》三个文档,分别从软件生命周期的各个阶段对软件复用进行指导,以便最大限度地减少复用代价和增加复用收益。

青鸟工程是国家“九五”重点科技攻关项目,其中研究的主要内容之一便是软件复用和软件构件技术。

为了吸收和利用国外软件复用的最新研究成果,我们对国际上相关研究和实践工作进行了深入分析,以期能拓宽思路,取长补短,使我们的工作能和国际主流接轨。

软件度量综述

软件度量综述

项目的顾客满意度度量
确定各类信息、数据、资料来源的准确性、客 观性、合理性、有效性,并以此建立产品、服 务质量的衡量指标和标准。
企业的顾客满意度度量
标准会因为各企业的经营理念、经营战略、经 营重点、价值取向、顾客满意度调查结果等因 素而有所不同。
26
软件度量综述
美国专家斯蒂芬(Stephen H.Kan)在《软件质量工程的 度量与模型》(Metrics and Models in Software Quality Engineering)中给出的企业的顾客满意度要素:
E=60.62*7.728*10^(-8)*FP^3
Maston、Barnett和 Mellichamp
E=585.7+5.12FP
15
软件度量综述
德尔菲法(Delphi technique)
德尔菲法的步骤是:
(1)协调人向各专家提供项目规格和估算表格;
(2)协调人召集小组会和各专家讨论与规模相关的 因素;
8
软件度量综述
代码行(LOC:lines of code)
代码行(LOC):所有可执行源代码行数,包括可交付的工作控制语言 (JCL:job control language)语句、数据定义、数据类型声明、等 价声明、输入/输出格式声明等。
一代码行(1LOC)的价值和人月均代码行数可以体现一个软件组织的生 产能力。
(3)各专家匿名填写迭代表格;
(4)协调人整理出一个估算总结,以迭代表的形式 返回给专家;
(5)协调人召集小组会,讨论较大的估算差异;
(6)专家复查估算总结并在迭代表上提交另一个匿 名估算;
(7)重复4~6,直到最低估算和最高估算一致。
16

软件复用

软件复用

第十章软件复用10.1软件复用概述10.1.1 软件复用目的软件复用使得应用系统的开发不再采用一切从“零”开始的模式,可以充分利用过去应用系统开发中积累的知识和经验,从而可以高效、高质地开发和维护软件系统,主要表现在以下几个方面:1、缩短软件开发和维护的时间;2、降低软件开发和维护的成本;3、保证软件的可靠性;4、保证软件的一致性;5、保护投资者的利益。

10.1.2 软件复用的类型软件复用可以分为横向复用和纵向复用两种类型。

横向复用是指复用不同应用领域中的软件成份,如数据结构、算法、人机界面构件等。

纵向复用活动的关键在于领域分析:根据应用领域的特征和相似性,预测软件成份的可复用性。

一旦确认了软件成份的可复用价值,便进行开发,然后将开发得到的软件制品存入可复用构件库,供未来开发项目使用。

10.1.3 软件复用的内容软件复用的内容,除了源程序代码外,还有许多其它软件制品,甚至特定的分析建模方法、检查技术、质量保证过程等,均可以被复用。

C.Jones定义了10种可能复用的软件制品:(1)项目计划:软件项目计划的基本结构和许多内容,如SQA计划,均可以跨项目复用。

(2)成本估计:由于不同项目中常包含类似的功能,所以有可能在极少修改或不修改的情况下,复用对该功能的成本估计。

(3)体系结构:即使应用论域千差万别,但程序和数据的体系结构很少有截然不同的情形。

因此,有可能创建一组类属的体系结构模板,如事务处理结构,将这些模板作为可复用涉及的框架。

(4)需求模型和规格说明:数据流图、类模型等均可以复用。

(5)设计:系统和对象设计等是常见的复用成份。

(6)源代码(7)用户文档和技术文档:即使特定的应用不同,也有可能复用用户文档和技术文档中的大部分内容。

(8)用户界面:用户界面可能是最广泛地被复用的软件制品。

由于它可能占一个应用软件的60%的代码量,所以复用的效果最明显。

(9)数据:在大多数经常被复用的软件制品中,数据包括:内部表、列表和记录结构,以及文件和完整的数据库。

软件复用知识点总结

软件复用知识点总结

1、为什么要复用?软件复用是在软件开发中避免重复劳动的解决方案,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及测试案例等,将开发的重点集中于应用的特有构成成分。

通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率,同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量。

2、复用的概念:软件复用是指重复使用“为了复用目的而设计的软件”的过程。

相应地,可复用软件是指为了复用目的而设计的软件.与软件复用的概念相关,重复使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程,或在一个应用系统的不同版本间重复使用代码的过程,这两类行为都不属于严格意义上的软件复用。

3、软件复用的分类:1)依据复用的对象,可以将软件复用分为产品复用和过程复用.•产品复用:指复用已有的软件构件,通过构件集成(组装)得到新系统;•过程复用:指复用已有的软件开发过程,使用可复用的应用生成器来自动或半自动地生成所需系统.过程复用依赖于软件自动化技术的发展,目前只适用于一些特殊的应用领域.产品复用是目前现实的、主流的途径.2)依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒(Black Box)复用和白盒(White Box)复用.黑盒复用:指对已有构件不需作任何修改,直接进行复用.这是理想的复用方式.白盒复用:指已有构件并不能完全符合用户需求,需要根据用户需求进行适应性修改后才可使用.而在大多数应用的组装过程中,构件的适应性修改是必需的。

灰盒复用:不允许直接修改构件源代码,但提供了可修改构件行为的扩展语言或编程接口。

可以是基于框架、基于连接子、基于粘连码的复用。

4、如何实现复用:实现复用的基本条件:一是必须有可以复用的对象;二是所复用的对象必须是有用的,三是复用者需要知道如何去使用被复用的对象.5、软件复用包括两个相关过程:可复用软件(构件)的开发和基于可复用软件(构件)的应用系统构造(集成和组装).6、实现软件复用的关键因素:1)软件构件技术:构件是指应用系统中可以明确辨识的构成成分。

NATO软件复用标准简介

NATO软件复用标准简介

NATO软件‎复用标准简介‎摘要实践证明,软件复用可以‎有效地提高软‎件的质量和生‎产率,它包括开发可‎复用软件构件‎和基于可复用‎构件的开发两‎个生命周期。

在这两个生命‎周期中,采用一个适当‎的标准以识别‎和开发可复用‎软件将大大促‎进软件复用的‎实践。

为此,NA TO(北大西洋公约‎组织)制定了一整套‎软件复用的指‎导性标准,以帮助NA T‎O及其参与国‎和承包商的项‎目管理部门进‎行有效的软件‎复用。

这套标准包括‎《可复用软件构‎件开发指南》、《可复用软件构‎件库管理指南‎》和《软件复用过程‎指南》三个文档,分别从软件生‎命周期的各个‎阶段对软件复‎用进行了指导‎和帮助。

关键词:NA TO,软件复用,可复用构件开‎发,构件库管理,复用过程一、前言1.背景与目的自从McIl‎roy在19‎68年的NA‎T O软件工程‎会议上正式提‎出软件复用的‎概念以来,软件复用已有‎了近三十年的‎发展历程,复用的对象也‎从早期的代码‎复用扩展到对‎软件开发过程‎中一切有价值‎的信息的复用‎,包括需求、需求规约、设计、源代码、测试计划和测‎试案例等。

近三十年的实‎践证明,软件复用可以‎有效地提高软‎件的质量和生‎产率,是解决当前“软件危机”的一条比较现‎实可行的途径‎。

软件复用包括‎开发可复用软‎件构件和基于‎可复用构件的‎开发两个生命‎周期。

在这两个生命‎周期中,采用一个适当‎的标准以识别‎和开发可复用‎软件将大大促‎进软件复用的‎实践。

为此,NA TO(北大西洋公约‎组织)制定了一整套‎软件复用的指‎导性标准,以帮助NA T‎O及其参与国‎和承包商的项‎目管理部门进‎行有效的软件‎复用。

这套标准包括‎《可复用软件构‎件开发指南》、《可复用软件构‎件库管理指南‎》和《软件复用过程‎指南》三个文档,分别从软件生‎命周期的各个‎阶段对软件复‎用进行指导,以便最大限度‎地减少复用代‎价和增加复用‎收益。

青鸟工程是国‎家“九五”重点科技攻关‎项目,其中研究的主‎要内容之一便‎是软件复用和‎软件构件技术‎。

第17章软件的复用

第17章软件的复用
29
建立可复用构件
4. 对构件的质量进行验证,使它成为可复用的。 验证信息应该跟可复用构件放在一起,作为它 的文档的一部分。
5. 为构件建立复用文档。
可复用构件的文档包括:
构件的名称和简短的描述;
分类信息
构件适用的领域
复用说明
测试工具
质量信息;建议
复用历史信息
30
建立可复用构件
6. 准备一个可能复用的构件。可能复用的设 计目标是在不影响项目进度或者预算的前 提下,使构件朝着可复用的方向迈进。
5
第一节 软件复用概述
复用的代价问题
➢ 建造可复用组件的成本 ➢ 复用它的成本 ➢ 实现一个复用过程的成本
复用的合法性问题
6
第二节 软件复用相关案例分析
✓ 案例一: Toshiba Fuchu Works, Tokyo (东芝软件工厂)
✓ 案例二: NASA Software (NASA 软件) ✓ 案例三: GTE Data Services
code Overall fault rate decreased 51% Productivity increased 57% Cost $1 million, savings $4.1 million (1983–92)
11
Hewlett-Packard (contd)
San Diego Technical Graphics (STG)
Cash incentives when module was accepted for reuse
Cash incentive when module was reused
Accidental reuse of
Modules
Reuse rate

软件复用与软件构件技术

软件复用与软件构件技术

软件复用与软件构件技术X杨芙清梅宏李克勤(北京大学计算机科学技术系,北京100871=提要>软件复用是在软件开发中避免重复劳动的解决方案.通过软件复用,可以提高软件开发的效率和质量.近十几年来,面向对象技术出现并逐步成为主流技术,为软件复用提供了基本的技术支持.软件复用研究重新成为热点,被视为解决软件危机,提高软件生产效率和质量的现实可行的途径.它通常可分为产品复用和过程复用两条途径.基于构件的复用是产品复用的主要形式,也是当前复用研究的焦点.同时,在分布对象研究领域,软件构件技术也是一个重要内容.当前软件构件技术被视为实现成功复用的关键因素之一.软件复用技术的广泛应用将促进软件产业的变革,使其重组分工,软件构件生产必将成为独立的行业而存在.这种变革对我国软件产业的发展将是一个很好的机遇.本文将对软件复用技术的发展作一全面综述,介绍软件复用的基本概念及关键技术,同时介绍国内外在软件复用方面的成功的研究和实践活动,包括我国政府支持的国家重点科技攻关项目青鸟工程,并对我国如何加强相关技术研究和应用,推动软件产业发展提出一些思路.关键词:软件工程,软件复用,软件构件技术,计算机辅助软件工程(CASESoftware Reuse and Software Compon ent Techn ologyYang Fuqing,M ei Hong,Li Keqin(Dept.of Computer Science&T echnology,Peking U niversity,Beijing100871Abstract:Software reuse offers a solution to eliminate r epeated work and improve efficiency and quality in the software development.In the recent ten years,object-oriented technology has appeared and become a mainstream technolog y,thereby providing fundamental technology suppor t for software reuse.Software r euse regains more attention in softw ar e engineer ing research and is consider ed a pratical and feasibleapproach to solving the software crisis.Software reuse i s gener ally classified into tw o catalogues:pro duct reuse and process r euse.Reuse based on software components is the important form o f product reuse and i s the major area of software reuse resear ch.A t the same time,softw are component technology plays an important role in distr ibuted object research.T herefore,software component technology is regarded as a key factor of successful software reuse.T he development and application of software r euse technology w ill facilitate the revolution of software development and reor ganize softw are industry.As a result,the dev elopment o f software components w ill become an independent and insepar able industr y.T he r evo lution offers a good chance for Chinese software development.T his paper i s a summarizat ion on the develop-ment of software reuse technology.It presents fundamental concepts and key techniques of software r euse.After introducing sev eral successful resear ch and pr actice in software reuse,including Jade Bird Project,a Chinese national key project suppor ted by the go ver nment,it proposes some ideas on how to reinforce research and application of related techniques and facilitate t he development of software industry in China.Key words:Softw ar e Engineering,Softw ar e Reuse,Softw ar e Component T echnology,CASE一、引言11为什么要复用通常情况下,应用软件系统的开发过程包含以下几个阶段:需求分析、设计、编码、测试、维护等.当每个应用系统的开发都是从头开始时,在系统开发过程中就必然存在大量的重复劳动,如:用户需求获取的重复、需求分析和设计的重复、编码的重复、测试的重复和文档工作的重复等.探讨应用系统的本质,可以发现其中通常包含三类成分:¹通用基本构件:是特定于计算机系统的构成成分,如基本的数据结构、用户界面元素等,它们可以存在于各种应用系统中;º领域共性构件:是应用系统所属领域的共性构成成分,它们存在于该领域的各个应用系统中;»应用专用构件:是每个应用系统的特有构成成分.应用系统开发中的重复劳动主要在于前两类构成成分的重复开发.第2期1999年2月电子学报ACT A ELECTRONICA SINICAVol.27No.2Feb.1999X1998年6月收到,1998年10月修改定稿.国家/九五0科技攻关项目及863高技术计划资助课题软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统的开发不再采用一切/从零开始0的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析结果、设计方案、源代码、测试计划及测试案例等,从而将开发的重点集中于应用的特有构成成分.通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率,同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量.21复用的基本概念软件复用是指重复使用/为了复用目的而设计的软件0的过程[22].相应地,可复用软件是指为了复用目的而设计的软件.与软件复用的概念相关,重复使用软件的行为还可能是重复使用/并非为了复用目的而设计的软件0的过程,或在一个应用系统的不同版本间重复使用代码的过程,这两类行为都不属于严格意义上的软件复用.以下的类比有助于进一步说明软件复用的概念.在软件演化的过程中,重复使用的行为可能发生在三个维上:(1时间维:使用以前的软件版本作为新版本的基础,加入新功能,适应新需求,即软件维护.(2平台维:以某平台上的软件为基础,修改其和运行平台相关的部分,使其运行于新平台,即软件移植.(3应用维:将某软件(或其中构件用于其他应用系统中,新系统具有不同功能和用途,即真正的软件复用.这三种行为中都重复使用了现有的软件,但是,真正的复用是为了支持软件在应用维的演化,使用/为复用而开发的软件(构件0来更快、更好地开发新的应用系统.复用概念的第一次引入是在1968年N AT O 软件工程会议上,M cIlroy 的论文/大量生产的软件构件0中.在此以前,子程序的概念也体现了复用的思想.但其目的是为了节省当时昂贵的机器内存资源,并不是为了节省开发软件所需的人力资源.然而子程序的概念可以用于节省人力资源的目的,从而出现了通用子程序库,供程序员在编程时使用.例如,数学程序库就是非常成功的子程序复用的例子.在其后的发展过程中,有许多复用技术的研究成果和成功的复用实践活动.但是,复用技术在整体上对软件产业的影响却并不尽如人意.这是由于技术方面和非技术方面的种种因素造成的,其中技术上的不成熟是一个主要原因.近十几年来,面向对象技术出现并逐步成为主流技术,为软件复用提供了基本的技术支持.软件复用研究重新成为热点,被视为解决软件危机,提高软件生产效率和质量的现实可行的途径[12].分析传统产业的发展,其基本模式均是符合标准的零部件(构件生产以及基于标准构件的产品生产(组装,其中,构件是核心和基础,/复用0是必需的手段.实践表明,这种模式是产业工程化、工业化的必由之路.标准零部件生产业的独立存在和发展是产业形成规模经济的前提.机械、建筑等传统行业以及年轻的计算机硬件产业的成功发展均是基于这种模式并充分证明了这种模式的可行性和正确性.这种模式是软件产业发展的良好借鉴,软件产业要发展并形成规模经济,标准构件的生产和构件的复用是关键因素.这正是软件复用受到高度重视的根本原因.软件复用可以从多个角度进行考察[18].依据复用的对象,可以将软件复用分为产品复用和过程复用.产品复用指复用已有的软件构件,通过构件集成(组装得到新系统.过程复用指复用已有的软件开发过程,使用可复用的应用生成器来自动或半自动地生成所需系统.过程复用依赖于软件自动化技术的发展,目前只适用于一些特殊的应用领域.产品复用是目前现实的、主流的途径.依据对可复用信息进行复用的方式,可以将软件复用区分为黑盒(Black -box 复用和白盒(White -box 复用.黑盒复用指对已有构件不需作任何修改,直接进行复用.这是理想的复用方式.白盒复用指已有构件并不能完全符合用户需求,需要根据用户需求进行适应性修改后才可使用.而在大多数应用的组装过程中,构件的适应性修改是必需的.31如何实现复用软件复用有三个基本问题,一是必须有可以复用的对象;二是所复用的对象必须是有用的,三是复用者需要知道如何去使用被复用的对象.软件复用包括两个相关过程:可复用软件(构件的开发(Development for Reuse和基于可复用软件(构件的应用系统构造(集成和组装(Dev elo pment with Reuse.解决好这几个方面的问题才能实现真正成功的软件复用.与以上几个方面的问题相联系,实现软件复用的关键因素(技术和非技术因素主要包括:软件构件技术(Software Component T echnolo gy、领域工程(Do main Eng ineering、软件构架(Software Architecture、软件再工程(Softw are Reeng-i neering、开放系统(Open System、软件过程(Software Pro -cess、CASE 技术等以及各种非技术因素.二、实现软件复用的关键因素实现软件复用的各种技术因素和非技术因素是互相联系的.如图1所示,它们结合在一起,共同影响软件复用的实现.图1 实现软件复用的关键因素11软件构件技术构件(Component是指应用系统中可以明确辨识的构成69第 2 期杨芙清:软件复用与软件构件技术成分.而可复用构件(Reusable Component 是指具有相对独立的功能和可复用价值的构件.可复用构件应具备以下属性[22]:¹有用性(U sefulness:构件必须提供有用的功能;º可用性(U sability :构件必须易于理解和使用;»质量(Quality:构件及其变形必须能正确工作;¼适应性(A daptability:构件应该易于通过参数化等方式在不同语境中进行配置;½可移植性(Por tabilit y:构件应能在不同的硬件运行平台和软件环境中工作.随着对软件复用理解的深入,构件的概念已不再局限于源代码构件,而是延伸到需求、系统和软件的需求规则约、系统和软件的构架、文档、测试计划、测试案例和数据以及其他对开发活动有用的信息.这些信息都可以称为可复用软件构件.软件构件技术是支持软件复用的核心技术,是近几年来迅速发展并受到高度重视的一个学科分支.其主要研究内容包括:(1构件获取:有目的的构件生产和从已有系统中挖掘提取构件;(2构件模型:研究构件的本质特征及构件间的关系;(3构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组装问题;(4构件分类与检索:研究构件分类策略、组织模式及检索策略,建立构件库系统,支持构件的有效管理;(5构件复合组装:在构件模型的基础上研究构件组装机制,包括源代码级的组装和基于构件对象互操作性的运行级组装;(6标准化:构件模型的标准化和构件库系统的标准化.21软件构架软件构架是对系统整体结构设计的刻划,包括全局组织与控制结构,构件间通讯、同步和数据访问的协议,设计元素间的功能分配,物理分布,设计元素集成,伸缩性和性能,设计选择等[9].研究软件构架对于进行高效的软件工程具有非常重要的意义:通过对软件构架的研究,有利于发现不同系统在较高级别上的共同特性;获得正确的构架对于进行正确的系统设计非常关键;对各种软件构架的深入了解,使得软件工程师可以根据一些原则在不同的软件构架之间作出选择;从构架的层次上表示系统,有利于系统较高级别性质的描述和分析.特别重要的是,在基于复用的软件开发中,为复用而开发的软件构架可以作为一种大粒度的、抽象级别较高的软件构件进行复用,而且软件构架还为构件的组装提供了基础和上下文,对于成功的复用具有非常重要的意义.软件构架研究如何快速、可靠地从可复用构件构造系统的方式,着重于软件系统自身的整体结构和构件间的互联.其中主要包括:软件构架原理和风格,软件构架的描述和规约,特定领域软件构架,构件向软件构架的集成机制等.31领域工程领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动[22].领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能区域.领域工程包括三个主要的阶段.(1领域分析:这个阶段的主要目标是获得领域模型(Do -main M odel.领域模型描述领域中系统之间的共同的需求[17].这个阶段的主要活动包括确定领域边界,识别信息源,分析领域中系统的需求,确定哪些需求是被领域中的系统广泛共享的,哪些是可变的,从而建立领域模型.(2领域设计:这个阶段的目标是获得领域构架(Domain -Specific Software Architecture,缩写为DSSA .DSSA 描述在领域模型中表示的需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计[17].建立了领域模型之后,就可以派生出满足这些被建模的领域需求的DSSA.由于领域模型中的领域需求具有一定的变化性,DSSA 也要相应地具有变化性.(3领域实现:这个阶段的主要行为是定义将需求翻译到由可复用构件创建的系统的机制.根据所采用的复用策略和领域的成熟和稳定程度,这种机制可能是一组与领域模型和DSSA 相联系的可复用构件,也可能是应用系统的生成器.这些活动的产品(可复用的软件构件包括:领域模型、领域构架、领域特定的语言、代码生成器和代码构件等.在领域工程的实施过程中,可能涉及的人员包括[5]:(1最终用户:使用某领域中具体系统的人员;(2领域专家:提供关于领域中系统信息的人员,他应该熟悉该领域中系统的软件设计和实现、硬件限制、未来的用户需求及技术走向;(3领域分析员:收集领域信息、完成领域分析并提炼出领域产品(可复用软件构件的人员,他应该具有完备的关于复用的知识,并对分析的领域有一定程度的了解.(4领域分析产品(构件、构架的使用者:包括最终用户、应用系统的需求分析员和软件设计者.领域工程的主要产品和人员如图2所示.图2 领域工程41软件再工程软件复用中的一些问题与现有系统密切相关,如:现有软件系统如何适应当前技术的发展及需求的变化,采用更易于理解的、适应变化的、可复用的系统软件构架并提炼出可复用的软件构件?现存大量的遗产软件系统(Legacy Software由于技术的发展,正逐渐退出使用,如何对这些系统进行挖掘、整理,得到有用的软件构件?已有的软件构件随着时间的流逝会逐渐变得不可使用,如何对它们进行维护,以延长其生命70 电子学报1999年期,充分利用这些可复用构件?等等.软件再工程(Software R eengineering正是解决这些问题的主要技术手段.软件再工程是一个工程过程,它将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式[7].再工程的基础是系统理解,包括对运行系统、源代码、设计、分析、文档等的全面理解.但在很多情况下,由于各类文档的丢失,只能对源代码进行理解,即程序理解.再工程的主要行为如图3所示.图3 软件再工程51开放系统技术开放系统技术的基本原则是在系统的开发中使用接口标准,同时使用符合接口标准的实现.这些为系统开发中的设计决策,特别是对于系统的演化,提供了一个稳定的基础,同时,也为系统(子系统间的互操作提供了保证.开放系统技术具有在保持(甚至是提高系统效率的前提下降低开发成本、缩短开发周期的可能.对于稳定的接口标准的依赖,使得开发系统更容易适应技术的进步[8].当前,以解决异构环境中的互操作为目标的分布对象技术是开放系统技术中新的主流技术.开放系统技术为软件复用提供了良好的支持.特别是分布对象技术使得符合接口标准的构件可以方便地以/即插即用0的方式组装到系统中,实现黑盒复用.这样,在符合接口标准的前提下,构件就可以独立地进行开发,从而形成独立的构件制造业.61软件过程软件过程又称软件生存周期过程,是软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合.一个良好定义的软件过程对软件开发的质量和效率有着重要影响.当前,软件过程研究以及企业的软件过程改善已成为软件工程界的热点,并已出现了一些实用的过程模型标准,如CM M 、ISO 9001/T ickIT 等.然而,基于构件复用的软件开发过程和传统的一切从头开始的软件开发过程有着实质性的不同,探讨适应于软件复用的软件过程自然就成为一个迫切的问题.71C ASE 技术随着软件工程思想的日益深入人心,以计算机辅助开发软件为目标的CASE(Computer Aided Software Engineer ing 技术越来越为众多的软件开发人员所接受,CA SE 工具和CASE 环境得到越来越广泛的应用.CASE 技术对软件工程的很多方面,例如分析、设计、代码生成、测试、版本控制和配置管理、再工程、软件过程、项目管理等等,都可以提供有力的自动或半自动支持.CA SE 技术的应用,可以帮助软件开发人员控制软件开发中的复杂性,有利于提高软件开发的效率和质量.软件复用同样需要CASE 技术的支持.CA SE 技术中与软件复用相关的主要研究内容包括:在面向复用的软件开发中,可复用构件的抽取、描述、分类和存储;在基于复用的软件开发中,可复用构件的检索、提取和组装;可复用构件的度量等等.81非技术因素除了上述的技术因素以外,软件复用还涉及众多的非技术因素,如:机构组织如何适应复用的需求;管理方法如何适应复用的需求;开发人员知识的更新;创造性和工程化的关系;开发人员的心理障碍;知识产权问题;保守商业秘密的问题;复用前期投入的经济考虑;标准化问题等等.这些因素超出了本文的范围,这里不再详细讨论.三、复用的研究与实践活动11领域工程研究实践表明,软件复用在特定领域内更容易获得成功.因此,领域工程受到高度重视,已有许多研究成果.这里将介绍三个有代表性的工作.卡内基#梅隆大学的软件工程研究所(CM U /SEI提出了面向特征的领域分析方法(F eature -O riented Domain AnalysisM ethod,缩写为FODA 方法[8].它支持对某领域中系统共性和个性的发现、分析和文档记录.FODA 的过程分为三个阶段:上下文分析(Context A nalysis、领域建模(Domain M ode-l ing、构架建模(A rchitecture M odeling.(1上下文分析:上下文分析的目标是定义领域的范围.在这个阶段要分析领域与外部元素间的关系,例如不同的操作环境,不同的数据需求等,还要对可变性进行评价.上下文分析的结果是上下文模型.(2领域建模:领域的范围确定后,领域建模阶段提供了一些步骤来分析领域中的应用的共同性和差异,并产生领域模型.领域建模阶段主要包含三种行为:#特征分析(F eature Analysis.在特征分析阶段,要获得客户或最终用户对一类系统的一般能力的理解,即特征.特征描述了领域应用的上下文、需要的操作和属性、以及表示的变化.#信息分析(I nformation A nalysis.在信息分析中,要定义和分析为实现领域中应用所需的领域知识和数据需求.信息分析的目标是用领域实体及其相互之间的关系表示领域知识,并使它们在操作分析和构架建模中可以用来派生对象和数据定义.#操作分析(Oper ational A nalysis.在操作分析中,要识别领域中应用的行为特性,例如数据流和控制流的共同性和差异、有限状态自动机模型等.(3构架建模:这个阶段为领域中的应用提供软件解决方案.在这个阶段中开发出构架模型,即领域中应用的高层设计.这个阶段的焦点是识别并发进程和面向领域的共同模块.这个阶段中定义进程,并将定义在领域模型中的特征、功能和数据对象分配到进程和模块中.F ODA 方法已成功地应用于美国空军运动控制等领域.71第 2 期杨芙清:软件复用与软件构件技术在美国国防部高级研究项目署(AR PA 资助下,W ill T racz 提出了领域构架方法(Domain -Specific Software Arch-itecture,缩写为(DSSA 方法[22].在最高的级别上,该方法有五个阶段.每个阶段可以进一步划分为一些步骤或子阶段.每个阶段包括一组需要回答的问题,一组需要的输入、一组将产生的输出和验证标准.该方法的领域工程过程是并发的(con -curr ent、递归的(recursive和反复的(iterativ e.或者可以说,它是螺旋型的(spiral.完成该过程可能需要对每个阶段经历几遍,每次增加更多的细节.该领域工程过程的五个阶段是:(1定义领域范围:重点是确定领域中包含哪些元素以及领域工程过程到何时结束.这个阶段的一个主要输出是领域中的应用需要满足的一系列用户的需求;(2定义领域特定的元素:目标是制订领域字典和领域术语的同义词词典.在领域工程过程的前一个阶段产生的高层次块图中增加更多的细节,特别是识别领域中应用间的共同性和差异性;(3定义领域特定的设计和实现需求约束:目标是描述解空间中的特性.不仅要识别约束,并且要记录约束对设计和实现决定造成的后果,还要记录对处理这些问题时产生的所有问题的讨论;(4定义领域模型和构架:目标是产生DSSA,并说明构成它的模块或构件的语法和语义;(5产生、搜集可复用产品:目标是为DSSA 增加构件使得它可以被用来产生问题域中的新应用.ST AR S 领域分析过程(Domain A nalysis Process分四个阶段,每个阶段用结构化分析与设计技术描述,使用SADT 图[22]:(1准备领域信息:定义领域,按自顶向下方式完成高级功能分析;(2分类领域实体:按自底向上方式识别和描述对象及操作,并构造领域字典;(3导出领域模型:结合上述信息,构造基于可复用构件的类属功能模型;(4扩展模型并分类:应用并确认模型.21产品线系统产品线系统(Product L ine System是CM U /SEI 提出的产品开发的组织方式.产品线集中体现了软件复用思想.经验表明,单靠技术方法并不能保证成功的产品线生产能力,经济、组织、管理和过程在建立和维护产品线中起到了关键作用.一个产品线是共享一组共同设计及标准的产品族,从市场角度看是在某市场片断中的一组相似的产品.建立产品线是根据生产的经济学,使产品族可复用构件能达到最大限度的复用目的.产品线方法可以通过各种可复用软件构件,如需求、需求规约、构架、代码构件、文档、测试策略和计划、测试案例和数据、开发人员的知识和技能、过程、方法及工具等,支持最大限度的软件复用.产品线也是基于在相同产品价格条件下提高竞争力的商业考虑.产品线系统已有成功的应用实例.图4和图5分别是瑞典CelsiusT ech System 公司和美国空军电子系统中心(ESC的产品线系统[3、6].这两个产品线系统的共同特点是构架组、构件组和集成组的分离.构架组负责产品线系统构架的定义和演化.构件组负责根据产品线系统构架,生产和管理可复用构件.集成组则根据具体客户的需求,利用产品线系统构架和可复用构件进行具体的系统集成。

浅谈软件复用技术及其应用

浅谈软件复用技术及其应用

浅谈软件复用技术及其应用陈思[上海烟草(集团)公司计算机信息中心]_______________________________________________________________________________【摘要】随着企业信息化建设的不断深入,集团公司多个烟厂生产指挥系统建设将相继展开。

在企业中充分运用软件复用技术,不仅可以规范企业的业务流程,进而对企业的业务过程进行优化重组,而且构建可复用的软件系统本身就是企业非常重要的知识库和规则库,可以成为指导企业实施和扩展管理信息系统的模型。

在深入分析企业需求基础上建立可复用的企业业务模型可以在最大程度上提高企业实施ERP的成功率,降低信息化投资的成本,缩短建设周期。

所以大力发展并推广软件复用技术对于促进集团化规模下的多个烟厂信息化建设有重要的现实意义。

【关键词】软件复用模块化生产指挥系统_______________________________________________________________________________1 软件复用技术概述1.1 软件复用技术的概念大多数情况下所讨论的软件可复用性指软件本身的可重用性,即软件代码实现的可重用性。

而实际上,软件复用远不止这些,软件开发的全生命周期都有可重用的价值,包括项目的组织、软件需求、设计、文档、实现、测试方法和测试用例都是可以被重复利用或借鉴的有效资源。

软件较强的可复用一直是软件工程所追求的目标之一,软件工程界希望有一天能和其它工业领域一样,利用标准化的软件模块快速构建特定的应用系统。

事实上,这种努力也取得了相当大的进展,但是与人们所期望的目标还是有不少差距,软件模块还远没有机械设备的零部件那样拆卸、维修、更换方便和简单。

1.2软件复用技术对企业信息化建设的意义在企业中软件复用技术的运用,不仅可以规范企业的业务流程,发现业务流程中不合理的环节,进而对企业的业务过程进行优化重纽,而且构建可复用的软件系统本身就是企业非常重要的知识库和规则库,可以成为指导企业实施和扩展管理信息系统的模型。

软件的可维护性与可复用性

软件的可维护性与可复用性

软件的可维护性与可复用性模式:模式,即Pattern。

事实上确实是解决某一类问题的方法论。

把解决某类问题的方法总结归纳到理论高度,那确实是模式。

Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断显现的问题,然后描述了该问题的解决方案的核心。

通过这种方式,你能够许多次地使用那些已有的解决方案,无需再重复相同的工作。

模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。

当一个领域逐步成熟的时候,自然会显现专门多模式。

设计模式和面向对象的设计模式:设计模式〔Design pattern〕是一套被反复使用、多数人知晓的、通过分类编目的、代码设计体会的总结。

使用设计模式是为了可重用代码、让代码更容易被他人明白得、保证代码可靠性。

设计模式最初来源于建筑学。

GOF〔〝四人帮〞,指Gamma, Helm, Johnson & Vliss ides, Addison-Wesley四人〕的«设计模式»〔1995年出版〕是第一次将设计模式提升到理论高度,并将之规范化,本系列文章要紧确实是讲解这23种经典的设计模式。

面向对象设计的模式,顾名思义,确实是在面向对象分析与设计中使用的设计模式,GOF2 3种设计模式同时也是面向对象的设计模式,本文不做区分。

良好的设计模式运用能够实现软件设计的〝高内聚、低耦合〞,提高软件的复用性和可扩展性。

框架:框架,即Framework。

事实上确实是某种应用的半成品,确实是一组组件,供你选用完成你自己的系统。

简单说确实是使用别人搭好的舞台,你来做表演。

而且,框架一样是成熟的,不断升级的软件。

框架一样处在低层应用平台〔如J2EE〕和高层业务逻辑之间的中间层。

架构:架构〔Architecture〕是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。

架构是一个系统的草图。

架构描述的对象是直截了当构成系统的抽象组件。

各个组件之间的连接那么明确和相对细致地描述组件之间的通讯。

浅析软件复用技术

浅析软件复用技术

浅析软件复用技术摘要:可复用的软件技术,已经成为大多数程序员不断使用的技术,也出现了专门以提供构件服务的供应商,它已经不再是一种单一的技术,而成为软件产业中的重要生产力、推动力,它不仅减轻了软件开发的重负,也开辟了软件产业链中的新方向。

关键词:软件复用;研究;发展本文简单介绍了软件复用研究的发展与软件复用的主要技术,进而研究了软件复用技术发展的新趋势,特别对软件复用技术研究的最新特点—软插件与软总线模型及其在分布环境中的应用前景进行讨论.1、软件复用的定义我们以前在提起软件复用时,往往把其简单的看作是一种节约企业软件作业的工作量的一种手段,而实际上,软件复用的展开还是提升软件质量的最有效的方式:一个软件模块在得到多次复用之后,其可靠性会不断的提高,软件的出错概率也会越来越低,当然相应的质量风险会越来越小,你的软件也就更加具有竞争力。

而规模化的成本效益和质量也正是产品化软件的最核心的价值所在。

软件构件是软件系统内可标识的、符合某种标准要求的构成成分,类似于传统工业中的零部件。

以上为软件复用过程的直观示例图。

复用成分的管理完成对复用成分库的组织,以期能够有效地组织和扩充软件复用成分.复用成分的实施利用是获取和管理的目的.其过程包括根据要求选择抽象的可复用成分,并对其进行适应性修改,以将其集成到现行开发的软件系统中去。

2、软件复用技术的历史与现状软件复用的历史,大致可划分为萌芽期、发展期和初步实用期3个历史时期。

代末到代末,软件复用技术迅速发展成为软件工程的一个重要的应用领域但由于注意力放在如何收集、提炼和改造软件系统构件上,而忽略了其他方面的问题,以致进展缓慢. 代起,人们不仅已认识到软件复用问题涉及多方面的知识,如软件工程知识、应用领域知识、人类工程学知识和人工智能知识,而且还认识到在软件复用实施中管理因素的重要性这一时期,软件复用在子程序库、报告生成器、编译器等方面都取得了长足进展.同时,人们已对何为软件复用有了一个非形式化、不够完整的概念;对复用信息的提炼、组织和存储进行了初步探讨;已经理解了软件的组装技术及基于对象的设计技术等,但上述理解仍是非形式化的,人们仍不能以任何系统化途径实现复用.这一时期被称为发展期.代后期至今,软件复用领域取得一些实用成果,软件复用进入初步实用期.各厂商开发了许多支持复用的软件系统,如Toshiba的软件工厂, Draco, Genesis系统等.从实现角度看, 代以前,软件复用主要以采用非面向对象技术来实现,复用的效果则主要以软件生产率和软件质量为标准来加以衡量.下图为软件复用技术的现状。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档