软件复用技术范文(精选10篇)
软件复用技术 第1篇
1 复用的基本概念
软件复用是指重复使用“为了复用目的而设计的软件”的过程。相应地, 可复用软件是指为了复用目的而设计的软件。复用概念的第一次引入是在1968年NATO软件工程会议上, Mcilrov的论文“大量生产的软件构件”中。在此以前, 子程序的概念也体现了复用的思想, 但其目的是为了节省当时昂贵的机器内存资源, 而不是为了节省开发软件所需的人力资源。然而子程序的概念可以用于节省人力资源的目的, 从而出现了通用子程序库, 供程序员在编程时使用。例如:数学程序库就是非常成功的子程序复用的例子。
根据Krueger等人的分类标准, 可将软件复用按复用粒度大小和抽象层次的不同, 分为小粒度、中粒度和大粒度复用三类:
(1) 小粒度复用。
即小规模复用, 例如程序代码的复用。主要表现为函数、子程序、面向对象中的类、方法的复用。源代码复用和目标代码复用属于小粒度复用。
(2) 中粒度复用。
即中等规模复用, 例如软件设计结果的复用。进一步按复用粒度的大小, 又分为两种:微体系结构的复用和宏体系结构的复用。前者是注重于如何对系统的局部行为进行要领建模和解释, 而后者则以宏体系结构为基础, 注重系统的全局结构的建立。在面向对象的程序设计中, 微体系结构由描述相关的类及其相互关系的设计和代码两部分组成。而宏体系结构的复用对象则是组成系统的各微体系结构及其相互关系。设计结果复用和分析结果复用均属于中粒度复用。
(3) 大粒度复用。
即大规模复用, 例如应用子系统的复用。复用对象是独立开发的应用程序或子系统。在复用过程中, 它们不能作任何修改和扩充。通过一些标准协议, 可使这些大粒度构件 (应用程序) 协同工作, 共同实现某些功能。类模块复用和构件技术属于大粒度复用。
依据复用的对象, 可以将软件复用分为产品复用和过程复用。产品复用指复用已有的软件构件, 通过构件集成 (组装) 得到新系统。过程复用指复用已有的软件开发过程, 使用可复用的应用生成器来自动或半自动地生成所需系统。过程复用依赖于软件自动化技术的发展, 目前只适用于一些特殊的应用领域。产品复用是目前现实的、主流的途径。
依据对可复用信息进行复用的方式, 可以将软件复用区分为黑盒 (Black Box) 复用和白盒 (White Box) 复用。黑盒复用指对已有构件不需作任何修改, 直接进行复用, 这是理想的复用方式;白盒复用指已有构件并不能完全符合用户需求, 需要根据用户需求进行适应性修改后才可使用。而在大多数应用的组装过程中对构件的适应性修改是必需的。
2 实现软件复用的技术因素
实现软件复用的关键因素 (技术和非技术因索) 主要包括:软件构件技术 (Software Component Technology) 、领域工程 (Domain Engineering) 、软件构架 (Software Architecture) 、软件再工程 (Software Reengineering) 、开放系统 (Open System) 、软件过程 (Software Process) 、CASE技术以及各种非技术因素。
2.1 软件构件技术
构件 (Component) 是指应用系统中可以明确辨识的构成成分, 而可复用构件 (Reusable Component) 是指具有相对独立的功能和可复用价值的构件。随着对软件复用理解的深入, 构件的概念己不再局限于源代码构件, 而是延伸到需求、系统和软件的需求规约、系统和软件的体系结构、文档、测试计划、测试案例和数据以及其它对开发活动有用的信息。这些信息都可以称为可复用软件构件。不同的开发过程中所复用的构件形态各不相同, 由于代码级构件可以直接由工具进行支持, 因此是目前产业界所关注的主要构件。代码级构件又可以分为源代码构件与二进制代码构件。源代码构件允许白盒和黑盒复用两种方式, 而对二进制代码构件的复用只能是黑盒复用方式, 通常只能了解构件的接口和属性等信息。源代码构件的复用通常在具体语言一级实现, 而二进制代码构件允许复用在运行级别上实现, 因此, 容易实现即插即用的复用和分布环境中的复用。软件构件技术是支持软件复用的核心技术, 其主要研究内容包括:
(1) 构件获取。
有目的的构件生产和从己有系统中挖掘提取构件。
(2) 构件模型。
研究构件的本质特征及构件间的关系。
(3) 构件描述语言。
以构件模型为基础, 解决构件的精确描述、理解及组装问题。
(4) 构件分类与检索。
研究构件分类策略、组织模式及检索策略, 建立构件库系统, 支持构件的有效管理。
(5) 构件复合组装。
在构件模型的基础上研究构件组装机制。
(6) 标准化。
构件模型的标准化和构件库系统的标准化。
2.2 软件构架
对于软件架构, 目前还没有一个统一的定义。一个典型的定义是:一个程序或计算系统的软件构架是系统的一个或多个结构, 包含软件构件、这些构件的对外可见的性质以及它们之间的关系。体系结构描绘的是系统的蓝图, 是沟通软件需求与软件设计的一座桥梁。体系结构的研究, 使软件复用从代码复用发展到设计复用和过程复用。在基于构件和体系结构的软件开发方法下, 程序开发模式也相应地发生了根本变化。软件开发不再是“算法+数据结构”, 而是“构件开发+基于体系结构的构件组装”。软件构架包括全局组织与控制结构, 构件间通讯、同步和数据访问的协议, 设计元素间的功能分配, 物理分布, 设计元素集成, 伸缩性和性能, 设计选择等。软件构架研究如何快速、可靠地从可复用构件构造系统的方式, 着重于软件系统自身的整体结构和构件间的互联。其中主要包括:软件构架原理和风格、软件构架的描述和规约、特定领域软件构架、构件向软件构架的集成机制等。
2.3 领域工程
领域工程是针对一组相似或相近应用的共同领域及用户需求进行分析, 识别这些应用的共同特征和可变特征, 进行面向复用的开发, 产生出特定领域的构件和构架。它覆盖了建立可重用构件的所有活动;主要过程分为领域分析 (定义“问题空间”) 、领域设计 (提出“解决问题的框架”) 和领域实现 (实现所提出的“解决空间”) 三个阶段。它以领域分析为出发点, 对领域中的系统进行分析, 包括识别、搜集、组织、分析和表示领域中相关的共性和个性信息, 形成领域定义和领域模型。其中领域模型确定了该领域系统的公共功能和数据;依据领域模型, 设计面向特定领域的软件构架DSSA, 包括系统中各种构件间交互关系的共性和差异, 并以此领域构架为中心, 识别、开发和组织可重用构件, 供应用工程师使用。这样, 当开发同一领域中新的应用时, 可以根据领域分析模型, 确定新应用的需求规约;根据特定领域的软件构架形成新应用的设计, 并以此为基础选择可复用构件进行组装, 从而形成新系统。
2.4 软件再工程
软件复用中的一些问题与现有系统密切相关。现存大量的遗产软件系统 (Legacy Software) 由于技术的发展, 正逐渐退出使用, 如何对这些系统进行挖掘、整理, 得到有用的软件构件?已有的软件构件随着时间的流逝会逐渐变得不可使用, 如何对它们进行维护, 以延长其生命期?软件再工程正是解决这些问题的主要技术手段, 是一个工程过程, 将逆向工程、重构和正向工程组合起来, 将现存系统重新构造为新的形式。
2.5 开放系统技术
开放系统技术的基本原则是在系统的开发中使用接口标准, 同时使用符合接口标准的实现。这些为系统开发中的设计决策, 特别是对于系统的演化, 提供了一个稳定的基础, 同时, 也为系统 (子系统) 间的互操作提供了保证。开放系统技术具有在保持 (甚至是提高) 系统效率的前提下降低开发成本、缩短开发周期的可能。对于稳定的接口标准的依赖, 使得开发系统更容易适应技术的进步。
2.6 软件过程
软件过程又称软件生存周期过程, 是在软件生存周期内为达到一定目的、而必须实施的一系列相关过程的集合。一个良好定义的软件过程对软件开发的质量和效率有着重要影响。当前, 软件过程研究以及企业的软件过程改善已成为软件工程界的热点, 并已出现了一些实用的过程标准模型, 如CMM、IS09001/TickIT等。
2.7 CASE技术
随着软件工程思想的日益深入人心, 以计算机辅助开发软件为目的的CASE (Computer Aided Software Engineering) 技术越来越为众多的软件开发人员所接受, CASE工具和CASE环境得到越来越广泛的应用。CASE技术对软件工程的影响有很多方面, 例如对分析、设计、代码生成、测试、版本控制和配置管理、再工程、软件过程、项目管理, 等等, 都可以提供有力的自动或半自动支持。CASE技术的应用, 可以帮助软件开发人员控制软件开发中的复杂性, 有利于提高软件开发的效率和质量。
软件复用同样需要CASE技术的支持。CASE技术中与软件复用相关的主要研究内容包括:在面向复用的软件开发中, 可复用构件的抽取、描述、分类和存储;在基于复用的软件开发中, 可复用构件的检索、提取和组装;可复用构件的度量等。
3 结束语
随着计算机应用领域的迅速扩大, 软件规模及复杂性的不断提高, 软件危机愈加明显地暴露出来, 提高软件生产率成为软件产业的当务之急。软件复用是软件工程的重要领域, 被认为是解决软件危机, 提高软件生产率和软件质量, 增强软件的开放性和对外部扰动的适应性的主要途径。
软件构件就是当前软件复用研究的焦点, 被视为实现复用的关键因素之一。构件技术的基本实现在于创建和利用复用的软件构件来解决应用软件的开发问题。与面向对象编程语言不同, 只规定构件的外在形式, 不关心其实现方法。只要遵循构件技术规范, 各个软件开发商就可以用自己方便的语言去实现构件;应用软件可以通过构件间相互提出请求和返回服务结果的协同工作机制来达到系统目标。
参考文献
[1]高劲松.基于构件的软件复用技术研究[D].武汉:华中师范大学计算机科学系, 2001.
[2]庞国梁, 江光杰.软件复用研究综述[J].军事通信技术, 2003 (2) .
[3]杨芙清, 梅宏, 李克勤.软件复用与软件构件技术[J].电子学报, 1999 (2) .
软件复用技术 第2篇
基于数据库和面向对象的运载火箭地面测发控软件复用
随着运载火箭地面测发控软件的规模越来越大,测发控软件的复用成为当前运载火箭地面软件的.发展趋势.本文介绍了一种新颖的运载火箭地面测发控软件复用技术,该技术将面向对象技术和数据库技术相结合,实现了运载火箭地面软件的复用,在加快试验进度的同时,也提高了程序的可靠性.目前,该技术已被成功应用在某新型运载火箭的地面测发控软件中.
作 者:孙海峰 陈迪 解月江 邹军 安占新 SUN Haifeng CHEN Di XIE Yuejiang ZOU Jun AN Zhanxin 作者单位:孙海峰,解月江,邹军,安占新,SUN Haifeng,XIE Yuejiang,ZOU Jun,AN Zhanxin(北京航天自动控制研究所,北京,100854)陈迪,CHEN Di(哈尔滨工程大学,哈尔滨,150001)
刊 名:航天控制 ISTIC PKU英文刊名:AEROSPACE CONTROL 年,卷(期):2010 28(2) 分类号:V554 TP31 关键词:运载火箭 测发控系统 软件复用 面向对象软件复用技术在MIS开发中的应用 第3篇
【关键词】软件复用;构件;MIS;开发模式
0.引言
构件技术的出现是对传统MIS开发过程的一次变革,它是基于面向对象的、以嵌入后马上可以“即插即用”概念为中心、通过构件的组合来支持应用的技术体系。软件复用模式是产业工程化、工业化的必由之路。标准零部件生产业的独立存在和发展是产业形成规模经济的前提。软件产业要发展并形成规模经济,标准构件的生产和构件的复用是关键因素。这正是软件复用受到高度重视的根本原因。
许多研究人员从不同角度对软件复用这个概念做了说明。比较权威和通用的定义是:软件复用是指重复使用“为了复用目的而设计的软件”的过程,而可复用软件则是指为了复用目的而设计的软件。软件复用更强调的是复用的目的,它是一种系统化的方法,为了复用而进行设计,为了复用而开发,并且要有效地组织和管理这些复用产品,方便人们查找和使用,基于复用品进行开发。
1.构件技术
软件构件的概念产生于软件复用。构件(Component)是指应用系统中可以明确辨识的构成成分。而可复用构件(Reusable Component)是指具有相对独立的功能和可复用价值的构件。构件是一种定义良好的独立可复用的二进制代码,它可以是一些功能模块、被封装的对象类、软件框架、软件系统模型等。构件具有以下特点:构成粒度大小较自由;通过规定一个统一的二进制标准,建立构件之间的智能互操作机制和实现语言独立性;外界仅通过接口访问构件:多侧面性;支持封装、继承和多态性;构件位置透明性。可复用构件应具备如下属性;有用性;可用性;高质量;适应性;可移植性。
构件模型定义了构件的本质属性,规定了构件接口的结构以及构件与软件构架、构件与构件之间的交互机制。构件模型通常还提供创建和实现构件的指导原则。构件模型是为开发者定义软件构件而建立的体系结构和API集,使开发者可通过软件构件的动态组合来建立应用系统。构件模型由构件与容器两种主要成分构成。构件是具有可复用特性的基本软件部件。容器用于存放和安排构件,实现构件间的交互。容器也可以作为另一个容器的构件使用。现有的构件模型一般认为构件由构件接口和构件内容两部分组成。构件接口就是为成功复用该软件实体而需要提供给外界的所有信息,包括构件向外提供和请求的服务、构件的自述信息和定制信息、构件的初始化、实例化和永久化方法以及构件对目标复用环境的依赖和构件组装信息等。构件内容就是用于直接复用的软件实体,它可以具有源代码、二进制码、文档、分析设计模型和脚本等不同的物理形态,并遵从一定的格式标准。
软件构架技术研究如何快速、可靠地应用可复用构件系统进行系统构造的方式,着重于软件系统自身的整体结构和构件间的互联。其中主要包括:软件构架原理和风格、软件构架的描述和规约、特定领域软件构架、构件向软件构架的集成机制等。特澍重要的是,在基于可复用构件的软件开发中,为复用而开发的软件构架可以作为一种大粒度的、抽象级别较高的软件构件进行复用。
2.可复用构件MIS开发过程
基于可复用构件MIS的开发过程有如下5个步骤:
2.1需求分析
基于可复用构件的MIS需求分析可以采用改进后的信息模型法,在数据分析、建立稳定的数据集合和逻辑数据模型的基础上,从信息模型、状态模型和功能模型中组织构件,建立系统模型。更多的是采用00A,由此提炼的类构件对构件复用更有利。要利用在开发MIS系统之初准备的构件库,并收集一些已经开发出的MIS的总体设计、规范、局部流程以及某些人机界面、通用功能模块、简单开发工具等。使用户需求的系统模型尽可能与已收集的可复用构件等成分相联系。
2.2系统设计
在构件复用情况下,由于代码被封装于构件之中,所以系统设计的目标应是可以实现的构件表达式,以支持后续的实现环节。MIS系统设计在内容上包括了数据设计、体系结构设计和过程设计等,在阶段划分上,又可以分为概要设计和详细设计。在概要设计阶段,MIS设计的任务是确定系统的概况,即把需求转化为概念数据模型和软件体系结构,该阶段的工作需要MIS构件库的支持。在详细设计阶段,逻辑数据模型通过进一步细化转换成物理数据模型,如数据库结构。为了使体系结构的实现变为可能,需要将体系结构中的过程构件(模块)定义映射成实际程序构件的结构化表达式。对相对于构件库无解的模块需要进行原先的过程设计。至此,需求信息转换为程序员可以接受的设计方案。
2.3系统实现
在MIS实现中,首先是数据库的实现,可以通过MIS建模工具自动在DBMS上完成,也可以由用户利用相应工具手工完成。其次是把构件表达式变成程序实现。现将进行过程分析得到的描述信息称为过程构件。对于过程构件,可以用某一具体语言加以实现,最好使用对象对其进行封装。对于无需改动的可复用构件,仅需要根据构件索引将其从构件库中提取出来,作为MIS的一个模块。多数情况下,需要对提取出的构件进行改造以适应新的应用系统。常见的改造形式是修改源程序,还可以通过面向对象的继承、重载及动态编联等特性进行改造。在一些情况下,还需要组合几个构件形成更大粒度的构件以满足某一特定功能需要。通过以上方法形成各个功能模块,再将这些模块通过控制模块联系起来形成应用系统雏形。
2.4系统测试
根据需求分析中提出的功能要求、性能要求等设计测试用例,对系统进行全面测试、验证、优化,形成MIS系统原型,提交给用户评价。根据评价意见,返回前面的相关步骤,进行修改。通过复用上次开发过程的成果,很快便形成新的原型,直到需求得到满足,MIS系统发布为止。
2.5系统维护
基于可复用构件的MIS由于其自身的特点,因此必须重新考虑MIS的维护问题。一个基于可复用构件的MIS采用的构件可以是COTS构件、公开构件、自由构件、共享构件等。对构件集成者来说,当把这些构件集成到系统中时,由于缺乏部分或全部源代码,使得维护变得十分困难。如果构件全部是“黑盒”,其可见部分仅局限于描述构件使用和功能的文档上,那么这对全部由黑盒构成的系统的维护,又增添了新的难度。对构件卖主来说,不能只考虑特定MIS应用领域的某一源代码块,而应维护被不同用户所使用的所有代码。因为每个MIS应用可能在需求上有一点差别,修改后的构件必须对所有的MIS应用都适用。
【参考文献】
浅析软件复用技术的应用 第4篇
1 软件复用技术
软件复用 (SoftWare Reuse) 是将已有软件的各种有关知识用于建立新的软件, 以缩减软件开发和维护的花费。其应用包括需求复用, 架构设计复用、模块化设计复用、代码复用、项目组织结构的复用及面向对象系统分析阶段的复用等。而在面向对象方法的开发过程中, 系统分析和设计阶段是难点, 这个阶段涉及到业务逻辑方面的要求很少, 主要从对象、模型、关系等方面考虑, 因此, 把软件复用技术应用于这个阶段效果将会非常不错。
2 软件复用模型在面向对象系统分析 (OOA) 阶段的应用
2.1 OOA阶段的软件复用及复用模型
OOA阶段的软件复用具有通用性和重用性, 构造这个阶段的软件复用模型, 可以使复用达到更好的效果。OOA阶段的软件复用模型及其主要的工作流程为:首先, 在OOA阶段, 构造出抽象的方法、对象、关系等模型。其次, 对分析出的方法、对象、关系等模型进行进一步的抽象, 构造出高度重用的、独立的范式, 它们将成为OOA阶段软件复用的主要研究对象。再次, 在范式库中引入智能学习系统, 以及如何对范式库进行检索, 也是OOA阶段软件复用的一方面。
2.2 范式抽象
范式是存在于某一科学论域内关于研究对象的基本意向。它可以用来界定什么应该被研究、什么问题应该被提出、如何对问题进行质疑以及在解释我们获得的答案时该遵循什么样的规则。因此可以说它就是抽象的解决方案模板, 可应用于不同的项目中。范式抽象就是在上述基础上所提出的对范式的一种设计方法。对于不同的问题域, 就应该有与之相对应的设计方法, 这样才可以使范式的设计达到高度重用。OOA阶段有三种范式抽象方法, 其应用主要有以下几个方面:
2.2.1 领域范式抽象及其应用
领域抽象是用于某一领域的抽象问题的解决方案。在同一个领域的项目开发过程中, 一般能够总结出更多的相似性, 包括关系相似性和表面相似性, 将二者相结合, 可构建出与行业有关的构件。这种构件是建立在具体领域上的一种抽象, 称为领域抽象, 所构建出来的范式称为领域范式。因为这些范式有特定领域的标识, 在同一领域的开发中将达到高度的重用性。比如在面向零售行业的POS系统的设计开发中, 根据零售行业的国家标准, 抽象出了在这个领域的一些范式, 从而在为不同规模的零售行业开发相同项目的过程达到了很好的规范性和可扩展性。像对于不同规模的零售行业, 销售及其金额的结算处理过程都是一样的, 因此我们就抽象出销售及其金额的结算的处理过程。
2.2.2 关系范式抽象及其应用
现实世界的实体以及实体间的各种联系均可用关系来表示。常用的关系操作包括查询操作和插入、删除、修改操作两大部分。其中查询操作的表达能力最重要, 包括:选择、投影、连接、除、并、交、差等。而在OOA阶段, 对某一具体的项目抽象出许多关系范式, 它们不依赖于具体的项目和业务, 都是可以重用的;而在针对具体的业务时, 使用者只需稍微修改一下相关属性和方法上就可以了。按照上述思想抽象出来的范式就是关系抽象, 而分析阶段的关系模型就是这种抽象的依据, 利用这种方法抽象出的范式可称为关系范式。以下就是关系抽象的在学校和网络两方面的简单应用:1) 在学校的学生选课系统中, 要定义一个学生类, 这个类包括学生的姓名、学号、所在班级等有关学生的基本信息。同时, 为了使学生能很快查出课表, 还要定义一个与学生对应的学生课表类, 该类显示学生的排课情况;2) 在网上书店系统中, 要定义一个买书者类, 该类包括买书者的相关信息。同时为了使买书者能够快速查询到自己所买的书本, 还需定义一个够书卡类, 该类描述了买书者与所买的书本的对应关系。在上述两个系统中, 它们的具体业务虽然不同, 但它们之间的关系却是基本相同的, 都是前一个实体对后面那个实体的拥有关系, 而且他们所进行的具体操作也基本相同, 都涉及到对所拥有实体的查询操作, 在实际应用中还有插入、修改、删除等操作也基本相同。因此可将这种关系抽象出来, 定义为拥有关系, 然后再定义与之对应的操作。最后把这种关系就可以以范式的形式保存起来, 在不同的项目中就可以重复使用, 以提高项目的开发速度。
2.2.3 相似对象范式抽象及其应用
前面分析的是同一项目所抽象出来的范式, 而在不同项目中, OOA阶段, 对于那些相似程度非常大的对象来说, 由于它们在项目开发过程中的相对独立性, 我们还会分析出大量的相似对象或者是类, 并且把这些对象模型以范式的形式保存起来, 分析的结果在其它相关项目中可以重复使用。按照上述思想进行的范式抽象称为相似对象抽象。例如在所有有关权限管理的系统中, 一般都会出现像用户组、管理员、普通用户、角色、用户权限等这类对象;又如在一些相同领域的具体项目中, 由于涉及到领域的标准化, 有些对象的相似性或者说相同性的机率会将会更大。对于这些对象模型, 我们就可以以范式的形式进行保存, 以后可重复使用。
以上通过对领域范式抽象、关系范式抽象、相似对象范式抽象几种范式抽象方式的探讨, 我们不难发现, OOA阶段的软件复用主要体现在对模型和思想上的复用, 是一种底层的复用, 这种复用技术不但可以提高软件的开发速度, 对于软件的规范化和标准化、行业的标准化也有着非常重要的意义。
2.3 智能学习的范式库系统及其应用
范式库可以说是所有计算机研究应用人员及相关人士实践和经验的总结, 是他们思想和智慧的结晶。范式库的构件就是我们主要的研究对象。如何保存这些范式以及构件, 将是一项非常重要的工作。因此, 本文用到了智能学习的范式库系统的概念。所谓智能学习的范式库系统, 就是针对处于OOA阶段的每一个项目, 直接对范式库进行查找, 可以获取通过范式抽象的范式, 如果在范式库中找到可以直接利用的有关此范式的所有信息, 就直接利用这些范式进行下一步的分析和设计;如果找不到, 系统分析人员就需要重新进行设计和规范, 同时利用智能学习系统把这些设计出的成果保存在范式库中, 以便以后使用。这个模型在通过多个项目的分析后, 可重用性将会大大提高, 从而达到提高设计效率的目的。
3 总结
文章通过探讨当今的软件复用技术, 并对其应用进行了简单分析;在此基础上又提出了面向对象系统分析阶段的软件复用模型, 对其所涉及到的范式抽象做了一些探讨, 并把它们应用到各种实际项目中去, 来提高项目的完成速度。另外, 对于范式库的深入研究, 将成为下一步的研究课题。
摘要:软件复用是将已有的软件及其有效成分用于构造新的软件或系统软件, 如何较好的应用软件复用技术, 成为软件工程研究中的一项重要课题。文章通过分析当今的软件复用技术, 并对其应用, 尤其是在面向对象系统分析阶段的应用进行了较详细的探讨。
关键词:软件复用,面向对象,构件技术,范式抽象
参考文献
[1]王丽娟.软件复用技术及其在软件开发中的应用[J].中山大学学报论坛, 2004, 24 (1) .
[2]王亚明, 郭峰, 向阳霞.软件复用模型[J].北京广播电视大学学报, 2007 (2) .
[3]刘春娟.浅析面向对象系统分析阶段软件复用模型[J].考试周刊, 2008 (24) .
正交频分复用技术(3) 第5篇
8、 正交频分复用多址接入技术
正交频分复用(OFDM)本身是一种调制技术,但它可以很容易地与多种多址接入技术相结合,为多个用户同时提供接入服务。常用的多址接入方式有3种,分别是时分多址(TDMA)、频分多址(FDMA)和码分多址(CDMA),OFDM都可以与它们结合,分别构成OFDM-TDMA、OFDM-FDMA和OFDM-CDMA 3种技术。
8.1 OFDM-TDMA
在正交频分复用时分多址(OFDM-TDMA)系统中,信息的传送是在时域上按帧来进行的,每个时间帧包含多个时隙,每个时隙的宽度等于1个OFDM符号的时间长度,有信息要传送的用户根据各自的需求可以占用1个或多个OFDM符号。每个用户在信息传送期间,可占用所有的系统带宽,即该用户的信息可以在OFDM的所有子载波上进行分配。
8.2 OFDM-CDMA
OFDM与CDMA扩频技术相结合的方法可分为两类:频域扩频和时域扩频。频域扩频通常称为Multicarrier CDMA(简称MC-CDMA)。时域扩频有两种不同的构成方法:分别称为Multicarrier DS-CDMA(简称MC-DS-CDMA)和Multitone CDMA(简称MT-CDMA)。
(1)MC-CDMA
MC-CDMA是最早提出的OFDM与CDMA相结合的方案。在此方案中,每个信息符号先经过与扩频序列各位相乘,相乘后对应于不同码片的信号分别调制到不同的子载波上,若扩频序列长度为L,信息符号则分别调制到L个子载波上,调制方式可采用二进制相移键控(BPSK)。如假定OFDM系统共有L个子载波,则CDMA系统的扩频增益等于L。
在直接序列扩频(DS-CDMA)系统中,信息在许多时间码片上用同一载波频率进行发送,而在MC-CDMA系统中,信息是在许多载波频率码片上同时进行发送的。可见,DS-CDMA与MC-CDMA系统之间有“时间/频率”的对应关系:MC-CDMA把信息同时调制在不同载波频率分量上(频率码片),接收时对频率码片进行分集接收;DS-CDMA把信息同时调制在不同的时隙(时间码片)上,但是使用同一载波频率,接收时对时间码片进行分集接收。
(2)MC-DS-CDMA
在MC-DS-CDMA方案中,输入信息比特首先进行串/并变换,被分配到并行支路上,然后,各支路上的信息符号分别用长度为L的扩频码进行直接序列扩频,扩频后的信号再分别用各自的载波进行BPSK调制,调制后的信号进行求和后发送。
(3)MT-CDMA
在MT-CDMA方案中,输入的信息符号首先经过串/并变换,调制到不同的载波上,以形成OFDM信号,OFDM的符号周期为Ts。然后再经过长度为L的扩频码扩频,扩频后每个子载波的带宽扩展为L/Ts,而相邻子载波的间隔仍然保持以前的1/Ts。MT-CDMA一般采用较长的扩频序列,比DS-CDMA能容纳更多用户。
8.3 OFDM-FDMA
OFDM-FDMA在许多文献中又被称为OFDMA。这种多址接入方案与传统的频分复用(FDMA)很类似,它通过为每个用户提供部分可用子载波的方法来实现多用户接入。与传统FDMA的不同之处在于,OFDMA方法不需要在各个用户频率之间采用保护频段去区分不同的用户。
OFDMA接入方案的优势之一是可以很容易地引入跳频技术,即在每个时隙中,可以根据跳频图样来选择每个用户所使用的子载波频率。每个用户使用不同的跳频图样进行跳频,可以把OFDMA系统变化成为跳频CDMA系统,从而可以利用跳频的优点为OFDM系统带来好处。
与直扩CDMA或者MC-CDMA相比,跳频OFDMA的最大好处在于可以为小区内的多个用户设计正交跳频图样,从而可以较容易地消除小区内的干扰。
9 、正交频分复用的应用
目前OFDM技术已经在众多的高速数据传输领域得到了应用,如:欧洲的数字音频和视频广播(DAB/DVB)、欧洲和北美的高速无线局域网系统(如HIPERLAN/2和IEEE 802.11a)以及高比特率数字用户线(xDSL)。当前,人们正在考虑在基于IEEE 802.16标准的无线城域网(MAN)、基于IEEE 802.15标准的个人信息网(PAN)以及未来的下一代无线蜂窝移动通信系统中使用OFDM技术。下面,以数字音频广播、非对称数字用户线以及IEEE 802.11a无线局域网为例论述OFDM在实际通信系统中的应用。
9.1 数字音频广播
数字音频广播(DAB)是在现有模拟调幅(AM)和调频(FM)广播的基础上发展起来的,它可以提供更优质的语音质量、更新的数据业务以及更高的频谱效率,它所提供的语音质量可以与CD音质相媲美。1995年,欧洲电信标准协会(ETSI)首次提出了DAB标准,这是第一个采用OFDM的标准。
DAB标准包含4种传输模式,每种模式利用不同的OFDM参数集(参见表1)。其中模式1—3适用于特定的频段,而模式4可以提供更好的覆盖范围但是更容易受到多谱勒频移的影响。
在DAB系统中使用OFDM的一个重要原因是可以使用单频网络,这样可以大大提高系统的频谱效率。
在单频网络中,用户可以从不同的发射机同时接收相同的信号。由于不同发射机到达用户的距离不同,使得来自不同发射机的到达信号之间会存在时延(时延等于距离差除以光速),对于用户来说,这种情况等同于不同径的衰落信道,因此,只要两个信号之间的传播时延小于OFDM符号的保护间隔,就不会出现符号间干扰(ISI)和子信道间干扰(ICI)。另外,两个时间移位信号的叠加,使得合成信号处于深度衰落的概率要远远低于一个信号处于深度衰落的概率,因此可以获得分集的好处。
DAB发射机的框图如图11所示。音频编码器的输入信号可以是经过脉冲编码调制(PCM)的单声道或者立体声音频输入信号,其抽样速率为48 kHz,音频编码器采用MPEG layer II编码方式,压缩编码后的语声信号可有多种速率(如单声道音频信号的速率可在32~192 kbit/s之间变化)。音频编码器的输出经过加扰,然后进行卷积编码。卷积编码采用码率为1/4、约束长度为7的卷积码。卷积编码的输出信号经过凿孔,可以进一步提高码率。卷积编码器输出信号的最大速率为2.2 Mbit/s。经过卷积编码后的信号与其他路的音频信号进行复用,然后加入辅助符号、同步符号等其他开销,经过OFDM调制、射频(RF)放大,通过天线或者电缆进行传送。同时在DAB的帧中传送的还有数据信号,这些数据信号可以是与音频广播节目相关的信息(如音乐的名称、作曲家的名字等),也可以是独立的低速数据。辅助符号主要是一些用于对接收机进行控制的信息,包括业务信息(SI)和多路复用配置信息(MCI)。
9.2 非对称数字用户线
非对称数字用户线(ADSL)是由贝尔中心的Joe Lechleider于80年代末首先提出的利用电话网用户环路中的铜双绞线传送双向不对称比特率数据的方法。ADSL由安装在电话线两端的一对高性能调制解调器组成,可提供3条信息通道:高速单工下行信道、中速双工信道和普通电话业务(POTS)信道。ADSL采用频分复用技术,利用滤波器分离不同信道的信息,ADSL设备发生故障,POTS业务将不受影响。高速下行信道的速率范围为1.5~8 Mbit/s,双工信道的速率范围为16~640 kbit/s,每条信道还可通过多路复用分割成多条低速信道。ADSL可提供符合北美或欧洲标准的数字系列速率,而且还可为ATM提供可变速率。电话公司利用ADSL设备不需要布设新的线路就可向未来的用户提供许多新的宽带业务,如电视点播(VOD)、Internet接入、远程医疗、远程教育等。
ADSL在发展过程中,先后考虑过正交幅度调制(QAM)、无载波幅度相位调制(CAP)以及正交频分复用(OFDM)调制等3种调制方式。在ADSL中,OFDM通常被称为离散多音(DMT)调制。由于DMT调制对信道具有更好的适应性以及很容易对抗脉冲噪声等优点,最终被美国国家标准协会(ANSI)和国际电信联盟(ITU-T)选作ADSL的标准。
ADSL系统面临的不利因素有:
传输线路组成复杂。电信网中的铜双绞线可能由多种线径的传输线路组成,中间还可能存在各种桥接抽头。
高频衰减严重。ADSL需要利用铜双绞线的高频带宽(带宽可达到1 MHz)来传送高比特率信息,多数传输线路在频率达1 MHz时的衰减超过100 dB。
脉冲噪声干扰大。脉冲噪声干扰指线路上由闪电、电器开关、电话摘挂机和振铃等引起的脉冲噪声。
来自其他设备的串扰。串扰指相邻双绞线中其他数字传输业务对ADSL的干扰。
单频干扰。单频干扰指由无线电广播、工频的谐波等引起的对ADSL的干扰。
ADSL利用铜双绞线的0~1 MHz频段传输数据,它将这部分可用频段分成3段,其中0~4 kHz频段用于POTS业务,20~138 kHz频段用于传送 闲?从用户端到局端)控制信息,而下行(从局端到用户端)数字信道可采用频分复用(FDM)方式或频谱重叠方式分别占用138 kHz或者20 kHz以上的频段。在频谱重叠方式中,ADSL接收端需要采用回波抵消算法来分离上下行信道的信息。
ADSL中的OFDM调制参数可参见表2。ADSL系统收发信机的工作原理简要叙述如下:需要传送的信息比特首先进行Reed-Solomon(RS)编码,然后根据比特分配算法对编码后的比特进行串/并变换。比特分配的目的是根据ADSL各子信道的信噪比对所有子信道上所能传送的信息比特数进行优化分配,提高传输的可靠性。经过串/并变换后的比特再经过QAM调制,逆快速傅立叶变换(IFFT),加入循环前缀(CP),进行数/模(D/A)变换,然后经过耦合电路,通过双绞线信道进行发送。对于从双绞线接收到的信号,首先进行模/数(A/D)变换,然后进行时域均衡。时域均衡的目的是对双绞线的冲激响应持续时间进行缩短,从而减小进行OFDM调制时所需要加入的CP数量。经过时域均衡后的信号去掉CP,经串/并变换,然后进行快速傅立叶变换(FFT)。在频域中经过频域均衡,QAM逆映射,RS译码,然后得到所发送的数字信息。频域均衡的主要目的主要是为了消除信道特性、定时偏差以及信道估计误差等对接收信号的影响。
9.3 无线局域网
由于与现有的有线局域网相比,无线接入方式具有可提供便捷灵活的接入方式,并且支持移动性等优点。自上世纪90年代以来,无线局域网(WLAN)技术得到了人们的广泛关注。1997年6月,国际电气与电子工程师(IEEE)协会通过了IEEE 802.11无线局域网标准。该标准定义了媒体接入控制(MAC)层和3种不同的物理层(PHY)接口。其中的两种物理层接口工作在2.4 GHz频段,另一种物理层接口工作在红外频段。该标准支持1~2 Mbit/s的数据传输速率。为了进一步提高数据传输速率,IEEE于1999年9月通过了两种新的无线局域网物理层接口,分别是IEEE 802.11a和IEEE 802.11b标准。其中IEEE 802.11a工作在5 GHz频段,可提供6~54 Mbit/s的数据传输速率,IEEE 802.11b标准仍然工作在2.4 GHz频段,最大可提供10 Mbit/s的数据传输速率。表3中给出了IEEE 802.11a中的OFDM参数。
12中给出了IEEE 802.11a中OFDM收发机的信号处理框图。图中,在发射机路径中,二进制输入数据经过约束长度为7码率为1/2卷积编码器进行卷积编码。通过对编码器输出数据进行凿孔操作,卷积编码码率可以提高到2/3或3/4。经过交织之后,二进制数据进行QAM调制。为了便于相干检测,在48个数据数值中需要插入4个导频符号,这样在每个OFDM符号内就可以得到52个QAM复数值,然后经过IFFT,把这些符号调制到52个子信道中。为了使系统能够对抗多径衰落,需要在符号之间插入保护间隔。而且为了得到较小的带外辐射,还需要对符号进行加窗处理。最后,数字输出信号被转换为模拟信号,然后上变频转换到5 GHz频段,再经过射频放大,通过天线进行发送。
接收机执行发射机的逆操作,同时还需要执行附加的训练过程。首先,接收机必须利用前同步域中的特殊训练符号去估计频率偏差与符号定时。然后实施FFT解调,恢复所有子信道中的52个QAM复数值。导频符号被用于纠正信道影响,以及剩余的相位漂移。然后把QAM复数值逆映射为对应的二进制比特值。最后,对这些比特信息实施维特比译码,以恢复发送的二进制数据。
10、 结束语
从理论上来说,OFDM与单载波传输具有相同的信道容量。但是在具体的通信环境中,在存在严重符号间干扰或者多径影响的信道上采用OFDM传输可获得较好的性能。近来受到国内外广泛关注的1个研究领域是OFDM在下一代蜂窝无线通信系统中的应用,OFDM与多天线技术以及空时编码技术的结合可以大大提高蜂窝通信系统的性能。目前,OFDM已经基本被公认为是下一代蜂窝通信系统的核心技术。(续完)
参考文献:
[1] Nee R V, Prasad R. OFDM Wireless Multimedia Communications [R]. Artech House Publishers, 2000.
[2] 王立宁. 多载波扩频通信理论及应用研究 [D]. 北京:北京邮电大学, 2000.
[3] 佟学俭. 正交频分复用(OFDM)通信系统内若干关键技术的研究 [D]. 北京:北京邮电大学, 2001.
[4] 尹长川. 离散多载波调制理论及其应用研究 [D]. 北京:北京邮电大学, 1997.
[5] 张平. Beyond 3G 移动通信系统关键技术 [J]. 北京邮电大学学报, 2002, 25(3):1—6.
收稿日期:2003-03-20
作者简介:
尹长川,北京邮电大学电信工程学院副教授,工学博士。目前正主持国家自然科学基金重大研究计划项目“基于正交频分复用的高速蜂窝因特网理论及关键技术研究”。主要研究领域为OFDM技术及其在下一代蜂窝移动通信系统中的应用。
罗涛,北京邮电大学电信工程学院讲师,工学博士,主要研究领域为空时编码、OFDM技术以及下一代蜂窝网络技术。
软件复用技术 第6篇
1.1 .NET Framework
.NET Framework隶属于.NET 环境下的组成部分 (.NET Framework、Web服务、.NET企业服务器) 之一, .NET Framework平台的实现使得软件开发更加快速, 节约了开发者的时间, .NET Framework类型代码较易使用与维护, 支持各种格式代码的开发, 开发的代码也具有很好的应用性与移植性, .NET Framework 是可供生成和运行下一代应用程序和XML Web Services 的内部 Windows 组件。.NET Framework平台特点如表1所示。
从表1可看出, .NET Framework面向对象编程方便了设计与开发人员, 使得程序执行更加安全可靠, 消除了各种代码执行过程中的环境冲突, 缩短了软件开发的周期, 提高了软件设计质量, 保证了客户端的可靠运行。.NET Framework具有两个主要组件:公共语言运行库 (Common Language Runtime, 简称CLR) 和 .NET Framework 类库。CLR 是 .NET Framework 的基础, CLR通用的编程语言, 使得开发设计人员开发更加得心应手, 软件的开发保持一致性。可以将 CLR 看作是一个在执行时管理代码的代理, 它提供内存管理、线程管理和远程处理等核心服务, 并且还强制性地实施严格的类型安全以及可提高安全性和可靠性的其它形式的代码准确性。
.NET Framework 可由非托管组件承载, 这些组件将 CLR 加载到它们的进程中, 并启动托管代码的执行, 从而创建一个可以同时利用托管和非托管功能的软件环境。.NET Framework 不但提供若干个运行库宿主, 而且还支持第三方运行库宿主的开发。
1.2 软件复用技术
软件复用并不是一个21世纪的新技术, 它和程序设计本身一样, 经历了很长的革新历史。对于程序设计与软件复用的关系而言, 程序设计中的宏插件、过程控制函数、子程序调用, 以及对象类和软件包等在非严格意义上讲都是软件复用的实例。软件复用技术是提高软件开发效率、缩短软件开发周期、解决软件危机的一个有效途径。新开发的软件不仅可以在代码级上实现复用, 而且可以在系统的需求分析、软件设计、编码、测试以及形式文档等各个开发阶段和各个开发层次上使用复用技术, 具有更广泛和更高层的复用性与移植性。伴随着构件、SOA、Web Service技术的发展, 软件复用的理念更加深入人心。如今, 复用技术已经从单项技术、开发设计人员的自发爱好行为演进为系统技术和有组织的开发过程。基于.NET Framework进行软件复用技术的开发, 更加有利于实现软件复用技术的普及。随着Windows操作系统的广泛应用, 使得基于.NET Framework的开发人员日益增多, 带来了技术的不断革新。
软件复用技术一般经由软件构件可复用化过程组成。在进行软件构件分析后, 转入软件代码一般化处理, 然后进行开发设计人员的标准化操作, 到代码差不多时, 进行自动化调试, 也就是所谓的自动化操作, 经过调试后的软件再进行质量验证, 质量验证过关后, 建立复用文档, 组建可复用构件, 至此, 软件复用完成。
2 基于.NET Framework的软件复用技术
过去, 开发设计人员通过结合使用 VC/VC++与Microsoft 等基础类 (MFC) 编程语言, 进行应用程序的开发, 或者采用应用程序快速开发 (RAD) 环境 (如Microsoft、Visual Basic) 来创建此类应用程序。随着.NET Framework功能的增强, 执行代码更加智能化、简单化, .NET Framework 将这些现有产品的各种优异特点经过整合, 合并到了单个且一致的开发环境中, 当开发设计人员使用该环境时, 使得开发设计更加容易、逻辑性更强。
.NET Framework主要由面向对象的类库组成, .NET Framework类库是一个与公共语言运行库CLR紧密集成在一起的可重用的类型集合。该类库采用VC++编程模式, 并提供托管代码, 可从中导出功能的类型。这不但使.NET Framework 类型易于使用, 而且还减少了学习时间与开发过程, 让开发人员更易上手。此外, 第三方组件可与.NET Framework中的类无缝集成, 例如, .NET Framework集合类是实现一组可用于开发集合类的接口, 集合类将与.NET Framework中的类无缝混合。.NET Framework类型能够完成一系列的常见编程任务 (包括数据收集、数据库连接以及、文件存储、文件传输等任务) 。除这些常见任务之外, 类库还包括支持多种专用开发方案的类型。
.NET Framework 提供类和工具的集合来帮助开发设计人员开发和使用 XML Web Services 应用程序。XML Web Services 是基于 SOAP (一种远程过程调用协议) 、XML (一种可扩展的数据格式) 和 WSDL (Web 服务描述语言) 这3个标准准则生成的。基于这些标准生成.NET Framework 的目的是为了提高与非 Microsoft 解决方案的互操作性, 增强多方案的交互设计。
对于.NET Framework应用在软件复用技术的开发利用, 有很多这方面的实例, 例如, .NET Framework SDK所包含的Web服务器上面描述语言工具, 可以查询在Web上发布的XML Web Services, 分析XML Web Services的 WSDL描述, 并很容易地产生C#或Visual Basic源代码, 一些应用程序可以使用这些代码而成为XML Web Services的客户端。.NET Framework在软件复用技术上使用灵活, 能够很容易地打破传统代码可读性与可移植性不强等缺点。
作为开发设计人员, 开发设计并发布自己编写的 XML Web Services, .NET Framework平台还提供了一组符合所有基础通信标准 (如 SOAP、WSDL 和 XML) 的类。当使用这些类时, 开发设计人员能够将注意力更加集中在服务代码的逻辑上, 而无需关注分布式软件开发所需要的通信基础结构模式。
在大学图书馆新书推荐系统执行时, 我们知道根据书籍条形码、索书号、书名、出版社等, 均能查询到相应的书籍, 这即是在.NET Framework平台中使用ADO.NET完成对数据库的存取。
需要将推荐书目的数据存入数据库将用到以下对象:OleDbConneetion, OleDbCommand。将读者推荐书目记录存入数据库, 源代码如下:
3 结语
以前, 开发人员结合使用基础类 (MFC) 编程语言、应用程序快速开发 (RAD) 环境来创建此类应用程序。.NET Framework将这些现有产品的特点合并到单个且一致的开发环境中, 该环境大大简化了客户端应用程序的开发, 缩短了软件的开发周期。.NET Framework 是支持生成和运行下一代应用程序, 具有面向对象编程和安全的代码执行环境、软件开发过程基于.NET Framework的复用技术, 使得开发软件操作性、复用性、一致性等得到高度、有效的保证。基于.NET Framework的软件复用环境也大大简化了客户端应用程序的开发。
参考文献
[1]泰格斯..NET Framework编程思想[M].北京:清华大学出版社, 2002.
[2]拉姆尔..NET Framework程序员查询辞典[M].北京:中国铁道出版社, 2003.
[3] (美) ROGER S PRESSMAN.软件工程:实践者的研究方法[M].北京:机械工业出版社, 1999.
[4]查克拉博蒂..NET Framework专业项目实例开发[M].北京:中国水利水电出版社, 2003.
[5]杨芙清.软件复用及其相关技术[J].计算机世界, 1990 (5) .
软件测试用例的复用技术研究 第7篇
关键词:测试用例复用,软件测试,软件测试复用,复用模型
随着软件规模化和产业化发展, 软件的复杂程度越来越高, 软件的功能变得也越来越强大。与此同时, 软件产品渗透到国民经济生活的各个领域, 其质量也自然受到前所未有的关注。长期以来, 我国软件企业一直被软件质量问题所困扰。其中一个重要因素是对软件测试的忽视。
在软件测试过程中, 测试用例的选择对软件测试的成败起着至关重要的作用, 测试用例设计的基本目的是确定一组最有可能发现某个错误或某类错误的测试数据, 最终实现系统对某个功能的测试。测试用例设计过程约占整个测试过程的60%。故测试用例设计人员必须用最少量的测试用例, 来发现最大量的可能性错误, 所以其测试用例的优劣将直接影响测试的质量和效果。因时间和费用的问题不可能进行穷举测试。提高测试效率、降低测试成本, 是测试用例的设计者的目标或努力方向[1]。
1 软件测试的相关概念
1.1 软件测试的测试过程
软件测试是发现并指出软件 (包含软件经过建模、需求、设计等阶段所产生的大量输出工作及程序代码) 中存在的缺陷的过程, 该过程指明和标注问题存在的正确位置, 详细记录导致问题出现的操作步骤, 即存储当时的错误状态以便测试后问题能够准确再现, 并跟踪软件开发人员对软件缺陷修复的进展情况[2]图1给出了软件测试的四个步骤, 即单元测试、集成测试、确认测试和系统测试[3]。
1.2 软件和软件测试复用的概念
软件复用是指“为了复用目的而设计的软件”的过程[4]。软件复用强调复用的目的, 它是一种系统化的方法, 为了复用而进行设计, 为了复用而开发, 并且要高效地组织和管理这些复用的软件产品, 方便人们检索和使用。
软件测试复用指在两次或多次不同的软件测试过程中反复使用相同或相似的测试思想来组织和跟踪测试的过程。它的宗旨是保证对测试对象的测试不再采用一切“从原点开始”的模式, 而是在已有的测试工作的基础上, 充分利用过去软件测试过程中积累的测试策略、测试思想和测试经验等, 最终实现对软件测试过程中可复用成分最大程度的复用。
软件测试的复用主要包括测试策略、测试工具、测试流程、测试数据、测试结果和测试用例等复用。其中, 测试用例作为软件测试的核心内容, 它的复用也就成为整个软件测试复用工作的关键环节。表1列出了软件复用可能的资源并作简要说明, 其中所列出的可复用项目不是完整的, 需要一定的补充[5]。
2 软件测试用例的复用
2.1 测试用例复用的概念
测试用例的复用就是指测试工程师在执行一项新的测试工作时, 通过直接调用或修改现有的、适合此项测试的测试用例, 并将它们运用其中的过程。即测试用例要实现复用必须具备三个条件, (1) 必须存在可复用的测试用例; (2) 所复用的用例必须有用; (3) 测试工程师必须知道如何去复用测试用例。测试用例是测试工作的指导, 是软件测试必须遵守的准则, 更是软件测试质量稳定的根本保障。
2.2 提高测试用例复用的途径
2.2.1 组织和编写具有很强可复用性的测试用例
在软件测试中用到的任何一个测试用例, 只要它的开发不涉及已有的用例, 就将它作为一个新的基类似的测试用例。在上述情况下, 我们可以建立两种用例类:一种是基于基类的抽象型用例类, 它提炼了将要表达的概念;另一种是抽象型类的派生类即具体型用例类, 它具体去实现基类的思想。在不同的软件应用系统的开发过程中, 根据不同的场景去应用抽象型用例类, 从而提高了测试用例的复用度。
2.2.2 可适应性测试用例
开发一个软件产品, 一般会发布多个版本, 伴随着测试用例的不断维护, 测试用例也需要不断完善并与产品功能、特性的变化保持一致, 最终使测试用例和产品版本相关联, 这时需要对以前的测试用例做适应性修改。具体的操作如下:测试人员可以在已有的复用测试用例库中寻找具有类似功能的用例, 通过对其进行继承和修改, 渐进式地设计出新的测试用例。如果新用例将要成为已有用例的子用例, 那么它应当继承了这个已有用例的所有属性和方法。同时, 新的用例还可以对需要追加的属性以及必需的方法作局部的定义或者将几个现存用例的特性组合起来开发出另一个新用例。
2.2.3 复制式的引用测试用例
在以往的软件开发中, 已经将大量的测试用例收集到测试用例库中, 并且根据测试用例的类类型进行了合理的分类, 这时测试工程师可以根据需要到测试用例共享库中进行检索。这种方法最快捷和高效。
2.3 测试用例的复用策略
为了实现测试用例的复用, 就必须对测试用例的设计进行统一的规范, 进行行之有效的用例创建管理。在用例的创建过程中, 测试经理对用例设计做出统一的建模组织, 使所有的测试用例具备统一的结构、统一的输入、输出接口, 这样即使以后软件运行环境发生变化, 对原有用例稍作修改就可以再次利用, 这些具有统一结构的用例就是可复用的测试用例。要实现用例的复用, 可采取以下策略:
首先, 基于复用的目的, 对所使用的测试用例进行统一的建模组织, 。有效地将测试用例收集到测试用例库中, 并按照用例各自的属性特点进行多级合理的分类、组织、存储。那些采用不同方式描述的测试用例, 将会各自实现不同程度的复用。
其次, 对共享测试用例库中的测试用例实行有效管理。通过提供有助于复用的多种查询方式, 确保测试用例的复用程度。对不同类别的测试用例进行复用频率统计, 为测试人员提供有效的复用信息, 在保证软件测试质量的前提下提高效率。
最后, 对共享测试用例库中的测试用例具体实现复用。通过检索出所需的测试用例, 得到测试用例的信息, 针对不同用途的测试用例采用不同的复用方式进行复用[6]。
3 测试用例的复用模型
从图2可以看出, 测试用例的复用有三条路径, 待测软件、已测软件和复用式测试软件, 恰恰对应了上文所讲的三种提高测试用例复用的途径。首先, 对待测软件进行分析, 接着开始用例的设计并注入测试复用的思路;其次产生相应的测试方法, 根据该测试方法进行软件测试, 生成测试结果。对一个软件的测试所产生的各种测试资源要作为可复用的素材, 必须进行对其提炼和抽象, 使其与被测项目的相关程度降到最低, 在待测软件路径上所生成的测试方法和测试结果数据要进行抽象, 产生可复用的测试用例要存入共享测试用例库中。其次, 对已测软件进行分析, 深度挖掘各种可能的复用机会并开始用例的提取;接着对测试用例进行可复用性的修改, 然后交由测试组长进行审核验证并进行类型划分, 最终添加至共享测试用例库中。最后, 复用式测试软件指当测试工程师进行软件测试时, 到测试用例共享库中查找具有类似功能的测试用例的过程;当我们找到功能类似的测试用例时, 结合目前的测试项目对测试用例进行剖析, 如果完全能胜任目前的测试任务就直接用到测试中去, 否则进行相应的适应性修改, 直至满足要求并应用到测试中去, 最后对经过适应性修改的测试用例进行入库。
4 测试用例复用的优点和难点
通过大量的工程实践, 不难发现测试用例的复用具有以下优点和难点。其优点如下: (1) 提高软件测试的效率; (2) 缩短软件测试的周期; (3) 提高软件测试的可靠性; (4) 降低软件测试的费用; (5) 部分解决测试人员的经验欠缺。但是要真正实现测试用例复用的困难也是不可忽视的, 若不能较好地解决以下问题, 必将使得软件测试工作事倍功半。其难点如下: (1) 测试用例数据库的维护问题; (2) 测试用例划分的标准; (3) 测试用例的版本管理问题; (4) 测试用例可复用度量问题; (5) 被测软件之间的差异; (6) 管理因素、法律因素、人的因素和教育因素等。
5 结论
本文介绍了涉及软件测试用例复用的相关概念并给出了软件测试用例的复用模型。首先, 描述了软件测试的相关基本概念, 主要有软件、软件测试复用、测试用例复用;其次, 说明了提高测试用例复用的途径、测试用例的复用策略和给出了测试用例的复用模型;最后, 根据工程实践总结了测试用例复用的优点和难点。
参考文献
[1]胡正芳.测试用例复用技术研究:[硕士学位论文].哈尔滨:哈尔滨工程大学, 2009.
[2]张大方, 李玮。软件测试技术与管理[M].长沙:湖南大学出版社, 2007.
[3]柳纯录, 黄子河。软件评测师教程.清华大学出版社。2005:1-221页.
[4]Will T.Confessions of a used program sales-maninstitutionalizing software reuse[M].New York:Addisonwesley Publishing Co., 1995.
[5]邵正隆, 白晓颖, 赵冲冲.面向复用的测试设计模型的研究与实现.小型微型计算机系统.2006, 27 (11) :2150:2155页
软件开发中的复用技术应用分析 第8篇
软件复用是提取已开发软件中的有效成分并将利用这些成分构造新的软件或是系统。软件中被复用的成分称为可复用构件, 这些可复用构件有些被直接提取, 称为黑盒复用。有些则稍作改动称为白盒复用。但无论是哪种形式, 只要能构成新软件, 都属于复用技术范畴。复用技术针对的不止是软件代码, 随着对复用技术理解的深入, 软件复用延伸到如用户需求、设计、测试等其他内容。软件复用改变了软件开发的整个过程。复用技术与移植技术的不同之处在于, 移植是通过对软件的再造, 目的是为了适应新的软硬件平台, 而复用则是将已有的成分运用在多个不同或是新开发的系统中。
二、软件复用技术
1、合成技术
合成是以基于构件的软件复用技术, 以抽象数据类型为理论依据。抽象是指对可复用对象的基本属性和操作方式进行提取与总结, 软件的复用程度在某种意义上讲由其所含可复用构件的抽象层次来决定。层次越高, 受环境制约越小, 可复用性就越高。但同时这种高复用的构件开发起来是有一定难度的。构件在开发中使用中性质与芯片相似, 若干构件可构成组件。将一些已开发的可复用构件使用于不同系统中, 能保证内容与对外接口都完全吻合, 或是只存在一微小的误差, 是最为理想的。但这种理想状态实现起来并不容易。构件只有形成一定规模才能支持复用技术的使用, 而这大量的构件又需要通过长期的高投入积累而来。发现一个构件不容易, 要从众多已发现构建中选出满足需要的也并非易事。复用技术在软件开发中的应用作为电子计算机技术的新领域仍处于实践过程中, 发展尚不成熟。还需要更多新理论与新技术的支持。构件组成组件的方式有三种分别为连接、消息传递和继承、管道机制。
2、生成技术
生成技术是基于模式的复用技术, 即通过生成程序产生一个新的程序或程序段, 所得程序就是模式的实例。可复用的模式有两种, 分别是代码模式和规则模式。相较与基于构件的复用技术, 基于模式的复用技术适用的范围更小, 更具体。通常来说, 描述构件应选用较为抽象的语言, 不然可能会受到语言环境的制约导致可复用性差。而且构件数量达到一定规模需以建立数据库的形式加强管理。在实际操作中可根据软件开发项目的需要将两种技术综合使用, 互相补充。同时以知识库为辅助, 可促进复用技术的快速成熟。
三、基于复用技术的软件开发过程
1、开发可复用资产过程
为开发项目提供可复用资源, 满足开发者的开发需要。可复用资产可通过即时开发、对已开发资产再建设、购买等途径获得。主要工作流程为:清查软件开发单位已开发的应用软件和资产, 详细核实并做出记录后进行分析, 分析包括:领域分析、体系结构定义以及开发工程师的需求。得出分析结果后选择获得可复用资产途径, 最后完成可复用资产的设计、实现、测试和打包等工作。
2、复用过程
即用已开发的可复用资产生产开发项目软件。工作流程包括:检验领域模型, 收集信息并对该软件最终用户的需求做出分析;从可复用资产候选清单中选出符合的构件, 综合最终用户需求做出适当技术调整。填补复用构件未能实现的部分后完成整个软件的组装, 并进行功能测试。
3、支持过程
为可复用资产的获取、管理以及长期维护提供全面支持。工作流程包括:对现存可复用资产进行核实;建立构件数据库并分类管理;定期发布可复用资产状态通告并向工程师发放可复用资产;提供关于可复用资产活动的必要书面材料并入档。收集工程师的意见反馈信息。
4、管理过程
负责整个项目的从事计划、项目启动、资源供给、进度跟踪。同时协调上述三个过程。工作流程包括:衡量资产获得途径;安排项目进度日程;分析影响;解决出现的矛盾;负责人员培训与全局指挥。
自1968年, 人们的思想里形成了软件危机这一概念开始, 软件产业就一直在寻求一个摆脱的行之有效的途径。直到软件复用技术的出现, 软件产业终于看到了危机背后的曙光。从此复用技术在软件开发中受到了高度重视。也成为了现在乃至与今后软件产业生产发展的主要趋势。随着构件技术的不断发展各种新形式的软件复用技术相继出现。软件复用技术日趋成熟。软件复用技术掀起了一场软件产业的革命, 推动软件产业走上工业化的发展轨道。
参考文献
[1]张海藩:《软件工程导论》, 清华大学出版社, 2000年。
[2]黄柏素、梅宏译:《软件工程实践者的研究方法》, 机械工业出版社, 2001年。
[3]贺岚、狄玉来:《基于构件的软件设计模型》, 计算机研究与发展2002, 35 (5) :452-454。
面向对象方法中的软件复用技术探讨 第9篇
近年来,随着计算机硬件的成本的不断下降,软件的生产规模日益增大,计算机的应用范围也得到了很大程度的普及,人们对软件系统的需求急剧上升,随之而来的软件规模越来越大,开发费用越来越高,开发的质量和效率不断降低的问题日益严重。造成这种现象的一个主要原因就是软件开发组织对相同或相似系统做着大量的重复性工作。要改变这种状况,软件复用是一条现实可行的途径。
2. 软件复用概述
2.1 软件复用概念
软件复用是一种计算机软件工程方法和理论,是指重复使用“为了复用目的而设计的软件”的过程。它是一种系统化的方法,为了复用而进行设计,为了复用而开发,并且要有效地组织和管理这些复用产品,方便人们查找和使用,基于复用产品进行开发。软件复用一定要有积累,首先要为了复用目的设计很多的复用产品,有了一定的积累后才能进行软件复用。
软件复用的主要思想是,将软件看成是由不同功能部分的“组件”所组成的有机体,每一个组件在设计编写时可以被设计成完成同类工作的通用工具,这样,如果完成各种工作的组件被建立起来以后,编写一特定软件的工作就变成了将各种不同组件组织连接体来的简单问题,这对于软件产品的最终质量和维护工作都有本质性的改变。
2.2 软件复用意义
通常情况下,应用软件系统的开发过程包含以下几个阶段:需求分析,设计,编码,测试,维护等。当每个应用系统的开发都是从头开始时,在系统开发过程中就必然存在大量的重复劳动,如:用户需求获取的重复,需求分析和设计的重复,编码的重复,测试的重复和文档工作的重复等。
软件复用是在软件开发中避免重复劳动的解决方案,其出发点是应用系统的开发不再采用一切"从零开始"的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,如:需求分析结果,设计方案,源代码,测试计划及测试案例等,从而将开发的重点集中于应用的特有构成成分。
通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除了包括分析,设计,编码,测试等在内的许多重复劳动,从而提高了软件开发的效率,同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量。
2.3 软件复用对象
软件复用不仅仅涉及源代码,复用对象主要有以下几个部分:
(1)代码的复用
包括目标代码和源代码的复用。其中目标代码的复用级别最低,历史也最久,当前大部分编程语言的运行支持系统都提供了连接(Link)、绑定(Binding)等功能来支持这种复用。源代码的复用级别略高于目标代码的复用,程序员在编程时把一些想复用的代码段复制到自己的程序中,但这样往往会产生一些新旧代码不匹配的错误。想大规模的实现源程序的复用只有依靠含有大量可复用构件的构件库。
(2)设计的复用
设计结果比源程序的抽象级别更高,因此它的复用受实现环境的影响较少,从而使可复用构件被复用的机会更多,并且所需的修改更少。这种复用有三种途径,第一种途径是从现有系统的设计结果中提取一些可复用的设计构件,并把这些构件应用于新系统的设计;第二种途径是把一个现有系统的全部设计文档在新的软硬件平台上重新实现,也就是把一个设计运用于多个具体的实现;第三种途径是独立于任何具体的应用,有计划地开发一些可复用的设计构件。
(3)分析的复用
这是比设计结果更高级别的复用,可复用的分析构件是针对问题域的某些事物或某些问题的抽象程度更高的解法,受设计技术及实现条件的影响很少,所以可复用的机会更大。复用的途径也有三种,即从现有系统的分析结果中提取可复用构件用于新系统的分析;用一份完整的分析文档作输入产生针对不同软硬件平台和其它实现条件的多项设计;独立于具体应用,专门开发一些可复用的分析构件。
(4)测试信息的复用
主要包括测试用例的复用和测试过程信息的复用。前者是把一个软件的测试用例在新的软件测试中使用,或者在软件作出修改时在新的一轮测试中使用。后者是在测试过程中通过软件工具自动地记录测试的过程信息,包括测试员的每一个操作、输入参数、测试用例及运行环境等一切信息。
2.4 软件复用过程
软件复用利用现有的软件成分(资源)来构造新的软件系统。该软件成分可能是已有的软件,也可能是专门开发设计的可复用的软件构件。其中,可复用的现有软件成分是软件复用技术的核心。复用成分的获取、管理和利用是构成软件复用的3个基本要素。复用成分的获取有两层含义:一是将现有的软件成分抽象成可复用的,以便构成新的软件系统;二是从复用成分库中选取某个具体问题的可复用成分。目前,主要以人工方式完成复用成分的抽象描述,复用过程的直观描述如图2-1所示。
复用成分的管理完成对复用成分库的组织,以达到能够有效地组织、管理和扩充软件复用成分的目的。复用成分的利用是获取和管理的目的,其过程包括根据要求选择抽象的可复用成分,并对其进行适应性修改,以将其集成到现行开发的软件系统中去。目前,最成熟、最系统化和工程化的软件复用是基于复用库的软件复用。一般复用过程可分为以下几步: (1) 认识到有可能复用的机会; (2) 分解抽象; (3) 分类并建立复用构件库; (4) 检索与选择复用构件; (5) 对复用构件具体化; (6) 重新组装成新软件。
3. 结束语
软件复用预示着更好、更快、更方便的软件开发过程,有利于提高软件生产力,可以为软件生产产业化提供有效地支持。面向对象方法是一种强有力的软件开发方法,可为软件复用提供基本的技术保证。本文通过对软件复用技术的分析,提出了一种面向对象系统分析阶段软件复用的模型,并对此模型中所涉及到范式抽象方法做了探讨,并把它们应用于具体的项目中去,从而很好地利用的设计思想,大大提高了项目的完成速度。只要我们在软件开发的过程中,重视利用面向对象的软件开发方法,一定会给软件开发带来勃勃生机。
参考文献
[1]杨芙清, 梅宏, 李克勤.软件复用与软件构件技术[J].电子学报, 1998, (2) :68-75.
软件复用技术 第10篇
一、软件复用技术概述
软件复用 (Soft Ware Reuse) 是一种计算机软件工程方法和理论。
60年代的“软件危机”使程序设计人员明白软件的维护成本是极其高昂的, 当软件的规模不断扩大时, 这种软件的综合成本可以说是没有人能负担的, 并且即使投入了高昂的资金也难以得到可靠的产品。在这种情况下软件复用思想出现了, 成为解决这一问题的根本方法。
软件复用是将已有软件的各种有关知识用于建立新的软件, 以缩减软件开发和维护的花费。它的主要思想是将软件看成是由不同功能部分的“组件”所组成的有机体, 每一个组件在设计编写时可以被设计成同类工作的通用工具。这样, 如果完成各种工作的组件被建立起来以后, 编写一特定软件的工作就变成了将各种不同组件组织连接起来的简单问题。这对于软件产品的最终质量和维护工作都有本质性的改变。
软件复用是在软件开发中避免重复劳动的解决方案。它是提高软件生产力和质量的一种重要技术。通过软件复用, 可以提高软件开发的效率和质量。早期的软件复用主要是代码复用, 被复用的知识专指程序, 后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。近十几年来, 软件复用研究重新成为热点, 被视为解决软件危机, 提高软件生产效率和质量的现实可行的途径。
软件复用可以从多个角度进行考察。依据复用的对象, 可以将软件复用分为产品复用和过程复用。其中, 产品复用是目前现实的、主流的途径。软件复用有三个基本问题, 一是必须有可以复用的对象, 二是所复用的对象必须是有用的, 三是复用者需要知道如何去使用被复用的对象。软件复用包括两个相关的过程:可复用软件 (构件) 的开发和基于可复用软件 (构件) 的应用系统构造 (集成和组装) 。解决好这几个方面的问题才能实现真正成功的软件复用。
二、基于软件复用技术的教学课件的设计与开发
1、教学课件的设计原则和目标
评价一个教学课件的好坏, 常有如下标准:教学要求是否适当, 教学内容是否科学, 是否符合学生的心理特征, 是否操作简便, 是否交互性强等。而设计教学课件还要考虑到课件的整体性和通用性、科学性和先进性、标准化和规范化、开放性和扩展性、安全稳定性等。
因此, 要制作一个好的教学课件必须考虑到以下几点:
(1) 易用性:要有一个友好、内容结构清晰的用户界面。
(2) 灵活性:遵守相关的设计原则, 具有灵活方便的升级和功能模块的更新维护能力, 有比较好的交互性。
(3) 可重用性:当同类课件中需要某个功能模块时, 可从现有课件的功能模块中抽取能完成这个功能的部分, 而且基本不用改动。
(4) 可扩展性:当某个功能模块的功能不能满足需求了, 需要扩展或加入新的功能, 可以在现有的课件上增加扩展即可, 不用重新开始。
2、教学课件的创作平台
目前, 在我国流行的多媒体编著软件繁多, 其精彩纷呈、各有所长。考虑到课件中涉及到图片、音频、视频、动画等, 素材种类繁多, 可以选用Authorware作为教学课件的创作平台。
Authorware是一种基于流程图方式的多媒体集成软件, 由著名的Macromedia公司出品。用户不必要求有特别的程序设计能力, 只需掌握一些流程图和图标概念及基础设计知识就能使用它。Authorware允许跨平台运行, Windows平台和Macintosh平台提供了完全相同的操作环境;具有多种外部接口, 可把各种媒体素材有效地集成在一起, 并有丰富的函数与变量, 甚至支持Quick Time和DVD, 只需一步可选中全部图标属性, 一次即可输入全部外部素材, 并有强大的网络支持;其内置的数据跟踪变量可跟踪学生的学习进度和成绩, 为用户创建包含文本、图像、音频、视频、动画等多媒体信息的作品提供了一个强大易用的创作平台, 是开发教学、培训和远程教学的最佳选择。
3、教学课件的总体设计
教学课件的总体设计决定了演示的内容、课件的框架以及课件的层次与风格。一个好的课件总体设计方案可有效地提高课件结构的维护性和可复用性。本次设计尝试采用软件复用技术, 去实践以功能为核心的设计构想, 努力发掘出课件中尽可能多的共同点。
4、教学课件的结构设计
教学课件主要包括一般课堂教学和学生自学的CAI课件、用于远程教学的网络课件, 以及用于教学的专题网站等。目前在教学软件开发制作中, 软件复用主要有:程序设计课程中的一些常用的模块、子程序库, 网页制作课程中网页框架和素材库等;还有CAI课件中的课程的内容结构、目录、跳转机制, 大量的图片、声音、FLASH动画和视频信息等;网络课程和专题网站则可复用网站结构, 一些子功能模块, 比如一般网站都有教学内容展示区、讨论区和双向交互等功能。因此如果建立具有一致结构的教学软件库, 收录所有教学软件开发中涉及的构件, 并对大量的构件进行一定的分类, 使得教师能够按照自身的需要进行检索, 从而来实现可管理的、更高层次的教学软件复用机制。
从结构设计的角度, 我们按照教学软件复用机制, 将教学课件分成界面设计、逻辑设计和数据库3个相对独立的单元。
(1) 界面设计
界面设计是开发中很重要的一方面, 综合了技术、艺术, 心理学上的技能。界面是一个窗口, 包含课件的系统的显示逻辑及功能配置逻辑, 位于客户端。根据应用系统的需要进行配置, 调用不同的构件业务逻辑接口方法实现业务逻辑的处理, 而不涉及任何业务逻辑。它在系统中起到用户与系统交互的作用。
(2) 逻辑设计
包含课件的各个子功能模块设计, 是界面设计和数据库的桥梁。它的任务是响应界面当中的用户请求, 执行任务并从数据库中提取数据, 并将必要的数据传送给界面。
(3) 数据库
提供课件中所需的各类的数据, 维护数据的完整性、安全性。它响应逻辑层的请求, 访问数据。
根据以上结构的划分, 教学课件结构设计如下:
第1层:片头动画 (或视频) 。片头动画 (或视频) 为软件封面。好的片头设计应具有震撼人心的个性化视觉效果。课件制作者可利用photoshop, flash, 3D MAX等软件设计制作与课件内容相关或能产生联想等多种视觉元素的片头动画, 引起学生的兴趣, 激发学生的学习热情, 为课程的学习起到积极的引导作用。
第2层:章节选择界面与题选界面。这一层界面的实现在技术上不存在困难, 只要风格与总体设计协调即可。本课件在该层界面的每一个选项区域里都隐藏着基于按钮元件的热区响应, 它实时地响应用户赋予的鼠标事件, 演播既定的过程动作, 使用户能在第一时间浏览到章节 (或解题) 要点, 并做出正确的选择。
第3层:讲课界面与题解界面。这一层是软件设计的重点, 它涉及到具体的课件内容, 功能复杂。
在第2层和第3层中, 由于每一节 (或每一道习题可视为一个子系统, 每个子系统又具有类似的选单界面, 所以重复劳动很多。鉴于同一个软件选单界面的共性, 采用模板技术就足以统一风格并有效地减少重复的劳动。
5、课件数据库的管理机制设计
课件数据库的建立不是一两个教师可以完成的事情, 必须成立专门的管理机构来统筹规划。作为高校教育机构, 应有一个部门来单独管理。其基本的管理功能包括:
(1) 用户信息管理功能:能够及时的对使用人员的信息进行增加、删除和修改。
(2) 身份验证功能:只要本校在职教师才可以对软件构件库进行构件的检索、下载和上传。
(3) 维护功能:对软件构件库进行必要的维护, 包括增加、删除和修改构件, 并对构件进行分类, 并做好构件库的日常安全维护工作。
(4) 检索功能:能够根据输入的条件在构件库中快速的查找符合条件的构件。
(5) 发布功能:能够发布构件需求信息, 使登录的用户可以方便的看到。
三、基于软件复用技术的教学课件的优点
以功能为核心的设计思想有两大优点:一是系统层次结构清晰, 有利于制作尽可能小的原形子系统, 提高制作者、管理者和使用者等多方的沟通效率;二是可以设计组件, 制作模板, 尽可能多地减少重复劳动, 实现资源共享的目的, 从而有效地提高软件的开发效率。
四、小结
本文根据教学课件的设计开发来实践基于软件复用技术的设计思想。模板技术保证了风格的一致和修改的同时进行。组件技术将功能和链接信息、媒体素材分离, 修改链接信息、媒体素材就不需要修改组件, 修改组件也不影响链接信息、媒体素材。这种用模板技术和组件技术实现的教学课件具有清晰的系统结构、良好的可维护性, 在设计制作、调试、维护阶段更能体现出极大的优势。
参考文献
[1[杨芙清, 软件复用及相关技术[J], 计算机科学, 1999, 26 (5)
[2]王超、朱建明等, 基于组件的软件系统可用性分析, 西安电子科技大学学报 (自然科学版) , 2004, 31 (5)