软件复阳用标准

上传人:博****1 文档编号:467147141 上传时间:2023-09-09 格式:DOC 页数:17 大小:107.02KB
返回 下载 相关 举报
软件复阳用标准_第1页
第1页 / 共17页
软件复阳用标准_第2页
第2页 / 共17页
软件复阳用标准_第3页
第3页 / 共17页
软件复阳用标准_第4页
第4页 / 共17页
软件复阳用标准_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《软件复阳用标准》由会员分享,可在线阅读,更多相关《软件复阳用标准(17页珍藏版)》请在金锄头文库上搜索。

1、软件复用标准简介摘要实践证明,软件复用可以有效地提高软件的质量和生产率,它包括开发可复用软件构件和基于可复用构件的开发两个生命周期。在这两个生命周期中,采用一个适当的标准以识别和开发可复用软件将大大促进软件复用的实践。为此,NATO(北大西洋公约组织)制定了一整套软件复用的指导性标准,以帮助NATO及其参与国和承包商的项目管理部门进行有效的软件复用。这套标准包括可复用软件构件开发指南、可复用软件构件库管理指南和软件复用过程指南三个文档,分别从软件生命周期的各个阶段对软件复用进行了指导和帮助。关键词:NATO,软件复用,可复用构件开发,构件库管理,复用过程一、前言1背景与目的自从McIlroy在

2、1968年的NATO软件工程会议上正式提出软件复用的概念以来,软件复用已有了近三十年的发展历程,复用的对象也从早期的代码复用扩展到对软件开发过程中一切有价值的信息的复用,包括需求、需求规约、设计、源代码、测试计划和测试案例等。近三十年的实践证明,软件复用可以有效地提高软件的质量和生产率,是解决当前“软件危机”的一条比较现实可行的途径。软件复用包括开发可复用软件构件和基于可复用构件的开发两个生命周期。在这两个生命周期中,采用一个适当的标准以识别和开发可复用软件将大大促进软件复用的实践。为此,NATO(北大西洋公约组织)制定了一整套软件复用的指导性标准,以帮助NATO及其参与国和承包商的项目管理部

3、门进行有效的软件复用。这套标准包括可复用软件构件开发指南、可复用软件构件库管理指南和软件复用过程指南三个文档,分别从软件生命周期的各个阶段对软件复用进行指导,以便最大限度地减少复用代价和增加复用收益。青鸟工程是国家“九五”重点科技攻关项目,其中研究的主要内容之一便是软件复用和软件构件技术。为了吸收和利用国外软件复用的最新研究成果,我们对国际上相关研究和实践工作进行了深入分析,以期能拓宽思路,取长补短,使我们的工作能和国际主流接轨。本文便是对NATO软件复用标准的总结和介绍,希望能为国内相关工作的进展和相关的软件从业人员起到一个借鉴和参考的作用。2本文的组织本文的第二章介绍了NATO标准中出现的

4、一些复用的基本概念,以便使读者能对NATO的软件复用框架有一个大致的了解。第三章是NATO的可复用构件开发标准,它的目的是为创建具有最大复用潜力的软件产品提供指导。第四章是NATO的可复用软件构件库管理标准,目的是为建立和管理NATO控制的软件资源复用库提供指导。第五章是NATO的软件复用过程标准,目的是为有意使用NATO复用库中的可复用软件构件进行复用实践的软件项目提供指导。第六章是对这三个标准的总结。二、复用的基本概念软件复用可以有效地节省软件开发成本,提高软件质量。本章介绍了在本文后面用到的复用的基本术语和概念,并解释了制定这套标准的实际目的,为读者理解软件复用的收益和挑战提供了一个参考

5、性的框架。1. 有关的术语定义下面是这套标准中使用的关键术语的简要定义:复用(Reuse)在一个新的语境(context)中(同一系统的其它地方或另一个系统中)使用已有的软件构件。可复用性(Reusability) 软件构件可以被复用的程度或范围(extent)。遵循一个适当的设计和编码标准将增强构件的可复用性。可复用软件构件(RSC) 可以被复用的软件实体;它可以是设计、代码或软件开发过程的其它产品。RSCs有时称为“软件资产”(software assets)。复用者(Reuser) 复用RSC的个人或组织。可移植性(Portability) 原来在一台计算机和操作系统上开发的软件构件可以

6、在另一台计算机和(或)操作系统上使用的程度。若构件可移植性好,则它的复用潜力就大。领域(Domain) 指一类相关的软件应用。领域有时可划分为“垂直的”(vertical)和“水平的”(horizontal)。“垂直的”领域包括某个应用范围内的所有开发层次(如MIS领域),而“水平的”领域则指一种特定类型的、不限于某类应用的软件过程(如对堆栈的操作)。一般来说,构件在同一个领域中复用的潜力较大。领域分析(Domain analysis) 对一个选定的领域进行分析以标识出其中通用的结构和功能,目的是提高复用的潜力。构件库(Library) 可复用软件构件的集合,包括向用户提供构件时所需的过程和功

7、能。检索系统(Retrieval system) 支持可复用软件构件分类和检索的自动化工具。软件生命周期(Software life cycle) 软件系统在开发和配置时所经历的一系列阶段。尽管不同项目在具体阶段上会有差别,但通常都会包括下列阶段:需求分析、设计、编码、测试和维护。2. 复用的优越性软件复用可以提高软件生产率并减少开发代价,还可以提高软件系统的质量。具体来说,可以归纳为下列五个方面:1)提高生产率。软件复用最明显的好处在于提高生产率,从而减少开发代价。生产率的提高不仅体现在代码开发阶段,在分析、设计及测试阶段同样可以利用复用来节省开销。用可复用的构件构造系统还可以提高系统的性能

8、和可靠性,因为可复用构件经过了高度优化,并且在实践中经受过检验。2)减少维护代价。这是软件复用另一个重要的优越性。由于使用经过检验的构件,减少了可能的错误,同时软件中需要维护的部分也减少了。例如,要对多个具有公共图形用户界面的系统进行维护时,对界面的修改只需要一次,而不是在每个系统中分别进行修改。3)提高互操作性。软件复用一个更为专业化的好处在于提高了系统间的互操作性。通过使用接口的同一个实现,系统将更为有效地实现与其它系统之间的互操作。例如,若多个通讯系统都采用同一个软件包来实现X.25协议,那么它们之间的交互将更为方便。4)支持快速原型。复用的另一个好处在于对快速原型的支持,即可以快速构造

9、出系统可操作的模型,以获得用户对系统功能的反馈。利用可复用构件库可以快速有效地构造出应用程序的原型。5)减少培训开销。复用的最后一个好处在于减少培训开销,即雇员在熟悉新任务时所需的非正式的开销。如同硬件工程师使用相同的集成电路块设计不同类型的系统,软件工程师也将使用一个可复用构件库,其中的构件都是他们所熟悉和精通的。3. 复用的维(Dimensions)软件复用有多个维,可从不同角度对复用进行划分。NATO复用标准用以下方式对复用进行了分类:组装式(Compositional)复用与生成式(Generative)复用。也可以称为产品复用与过程复用。组装式方法利用库中的底层构件自底向上地开发系统

10、,关键是要解决构件的分类和检索技术,以及开发出一个自动化系统以支持组装过程。生成式方法是特定于应用领域的,它采用标准的领域构架(architecture)模型(即类属的构架)和一致的构件接口,目的是根据一个适当的参数规约生成新的系统。(目前在商业软件中使用的第四代生成语言4GLs可以被认为是生成式复用的一个例子。)这种方法在成熟的领域中非常有效,但在开发初始模型时需要很大的努力。小规模复用与大规模复用。复用的另一个维是可复用构件的规模。小规模复用(例如使用数学函数库)现在已得到了广泛的应用,但个别的复用节省的代价并不大,必须要普遍地复用才能获得收益。大规模复用针对的是整个子系统(例如飞机导航或

11、消息处理子系统),这时个别的复用即可获得很大的收益,因为复用了成千上万行代码。但是对一个特定的大构件来说,复用的机会是非常有限的。原样(As-is)复用与带修改的复用。构件既可以原样复用,也可能需要修改。一般来说,可复用构件应设计得比较有弹性,例如可以设计成参数化的构件,但为了满足复用者的需求,适当的修改也是必要的。易修改性(软件构件易于修改的能力)是可复用软件中尤为重要的性质。通用性与性能。在构件的通用性与性能之间常常存在折衷。设计得通用和灵活的构件常常包括为了支持通用性而增加的额外开销。4. 实现复用的困难软件复用需要改变传统的软件开发方法。为了达到完全的收益,就得克服下面一系列挑战:识别

12、复用机会。识别复用机会是一个主要的技术问题。软件工程师可能知道类似的软件已经编写过,但如何找到它是一个问题。复用库有助于解决这个问题。当找到一个构件时,可能很难判断它是否真的满足自己的需求,要进行修改也是很困难的。不少看上去可复用的软件实际上是不可复用的,因为它可能有不适当的接口、隐含的依赖、不可改变的功能限制等,或者仅仅是由于它难于理解而使得复用者宁愿重新开始开发。NATO的软件复用标准有助于避免这些问题。投资。制作可复用软件通常比开发一次性的系统需要更多的投资,这些投资包括使得软件更具有弹性、保证它的质量、提供所需的额外文档等。每个组织必须决定如何支持这项投资。“Not Invented

13、Here”(不是自己发明的)综合症。开发者常常不愿复用别人的软件。软件工程师喜欢创造性的劳动,复用软件时就会感到创造性的消失。有效的管理、鼓励以及培训等措施有助于让工程师们将创造性的视角转向更大的“构造块”可复用软件构件。评价和度量。对软件开发行为进行评价和度量总是很困难的,怎样才算是一个“好”软件?评价的标准很多。已经有一些比较有效的管理性方法,但在复用环境中这些传统的度量方法还需要修改,在这方面几乎没有什么经验。合同、法律和所有权问题。软件复用还受到大量关于合同、法律和所有权问题的影响。现在这种订合同的方式使得承包商不愿复用已有的软件或提供软件给别人复用,在对软件构件质量的责任和保证上也会

14、引发法律纠纷,而且还应确定由谁来负责维护软件构件。三、NATO的可复用构件开发标准NATO的可复用软件构件(以下简称构件)开发标准为创建具有最大复用潜力的软件提供指南。该标准面向NATO的项目管理者和项目承包商,针对软件生命周期中的需求分析、设计、详细设计与实现、质量保证与测试以及文档等方面分别论述,帮助用户组织一个可复用软件构件的开发过程。标准的大部分内容是独立于编程语言的,在实现时采用特定语言的编码标准作为该标准的补充。分析、设计和测试阶段的成果本身都有被复用的潜力,应被当作构件,尤其在新系统中复用前期的软件工程成果往往带来对相应后期产品的复用。可复用构件应该以方便复用的方式被表示,易于识

15、别,易于独立提取,与系统特定的和易变的成分隔离;在组织内部采用一致的机器可读的记号表示分析和设计构件,以便进行自动的信息提取和转换。从分析到设计到编码的转换应该遵循上一阶段的复用考虑,保持相邻阶段构件之间的良好映射和可跟踪性质。以下从几个方面介绍NATO标准:1、需求分析和领域分析需求分析阶段为软件复用打下基础,此时对复用给予的关注将在相当大的程度上影响所开发软件的可复用性。主要应该在以下四个方面作出努力:(1) 建立一个鼓励复用现有软件的机制需求规约必须认识到复用的必要性并鼓励软件复用。好的需求规约应该只规定所需的功能和性能指标,允许开发者决定操作上和实现上的细节。一个极端明细的规约是很难与

16、任何现有软件相匹配的,不必要的系统需求将限制软件复用。将软件复用作为需求之一,在规约中规定所有必须的(Required)和期望的(Expected)复用活动。l 要逐条检查每一需求的必要性,确信其中不包括进一步的设计选择。l 改变以往将需求规约在招标之前定住不变的做法,向潜在的承包商提供需求规约的草稿,让开发者参与进来,标识出他们认为可以修改并将促进复用的地方,由客户和承包商共同完成项目的规约文档。l 复用需求必须解释什么是复用和如何评估复用。为开发者指定一个复用目标,比如复用的代码、函数的数量等,在合同中为复用制定奖励措施以鼓励复用。(2) 将可复用软件的开发列入需求如果希望所开发的系统是可复用的,就应该在需求中显式声明出来,并且应该使这种项目需求在客观上是可测试的。这种需求必须定义什么是可

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号