软件测试综述论文(共10篇)
软件测试综述论文 篇1
摘要:为了解决测试工作中开发人员由于对测试工作流程不了解而配合不到位等问题,该文对软件测试的基本流程进行了介绍,对测试过程的测试需求分析、测试策划、测试设计和实现、测试执行以及测试总结各阶段的实际操作过程分别进行了阐述,以便初学者更容易上手和开发人员在测试全过程中更好地配合。
关键词:软件测试,测试流程,测试过程
由于计算机系统的复杂性以及开发过程和涉及的人员易于出错,所以即使是保证一个相对简单的程序没有缺陷也是不可能的[1]。对一个给定系统进行充分地测试以确定其没有缺陷是不可能实现的。为了尽可能多地发现并改正缺陷,测试人员必须集中精力使测试过程尽可能地高效和有效。
有效测试的关键是使过程尽可能地高效。正规的软件测试工作过程应包括:编制测评大纲(或测试需求和测试计划)、 编写测试用例、准备测试数据、搭建测试环境、测试执行、编写测评报告进行测试总结和评估等多项内容。各阶段流程及生成的主要文档如图1所示:
1测试需求分析与策划阶段
测试需求分析与策划阶段是软件测试提纲挈领的一个阶段,在该阶段对软件需求及可测性进行分析,提取出测试项,规定测试环境、测试类型、测试范围及主要测试方法,在该阶段生成的测试文档测评大纲(或者是测试需求和测试计划)往往需要经过委托方、用户代表和开发方代表等的审查认可。
软件要提交测试(这里指成型的软件产品的确认测试或系统测试)首先需要有完整齐套的过程文档。除了测试所依据的标准、规范外,一般软件测试的输入文档应包括:
1)软件需求规格说明书(根据软件具体情况,可分为软件需求、接口需求和数据库需求);
2)软件设计说明书(根据软件具体情况,可分为概要设计、 详细设计、数据库设计、接口设计等);
3)软件使用说明书或用户手册。
1.1测试需求分析
针对一个待测软件,可以依据软件需求规格说明等文档, 逐条提取出测试需求,主要包括功能测试需求、接口测试需求、 性能测试需求、强度测试需求、边界测试需求、人机交互界面测试需求、安装性测试需求、安全性测试需求、恢复性测试需求等。测试需求的提取需要遵循的原则是:测试需求要对软件需求进行全面的覆盖。
测试需求分析阶段在实际实施的过程中主要是依据软件需求规格说明的内容逐项进行分析,从软件需求规格说明文档的相关章节中提取各测试类型的测试项。
1)功能性测试需求
功能性测试需求来自于软件需求规格说明的软件功能描述。每个功能模块至少提取一个功能测试项,每个测试项至少生成一个测试用例。为了避免由于软件需求文档描述不完整而导致的测试需求提取不全面问题,还需要通过与用户和承研单位交流获取软件测试需求。
2)性能测试需求
性能测试需求来自于软件相关文档的技术指标或性能要求。通常包括系统响应时间、资源利用率、系统容量、并发访问量、配置要求等,尤其要注意的是同一个软件系统针对不同配置或不同目标有不同性能要求的情况。软件需求规格说明中的每项性呢指标均要提取一个性能测试需求。
3)其它测试需求
其它测试需求包括强度测试、边界测试、安装性测试、安全性测试、恢复测试等测试需求通常可以从相应需求中发现与其对应的描述。每一个描述信息可以生成至少一个测试需求。 同样需要注意与用户和承研单位交流以获取一些软件需求文档中未描述到的内容。
常见的测试类型主要有:代码审查、代码走查、文档审查、 静态分析、功能测试、性能测试、余量测试、接口测试、人机交互界面测试、强度测试、逻辑测试、边界测试、安全性测试、安装性测试、恢复性测试、兼容性测试、内存使用缺陷测试、容量测试、数据处理测试。
1.2测试策划阶段
测试需求分析确定了要进行的测试类型和测试项,下面需要进行的就是测试策划,制定测试策略。
软件开发的最终目的是为了满足客户需求,以客户需求作为评判软件质量的标准,则软件缺陷可以包括下面几个因素:
1)软件未满足客户要求的所有功能和性能(即部分功能未实现);
2 )软件实现了客户不需要的功能(即实现了多余功能);
3 )软件功能实现错误;
4)软件的用户好性不好。
测试策划阶段就是制定适合的测试方案,尽可能地发现软件的各类缺陷。
在测试策划阶段可以依据软件功能等需求和测试需求分析设计测试项,即需要测试的点。每个测试项需要追踪到相应的测试需求,规定测试内容、测试范围、测试环境要求、前提约束、数据准备及该测试项的结束条件,制定好相应的测试方法, 还要分析测试环境与软件实际使用环境的差异和对测试结果的影响。
2测试用例设计阶段
测评大纲确定了软件需要进行的测试类型和每个类型要测试的点,而测试说明则是对测评大纲的拆分、细化和具体化, 是测试项的具体设计和实现。在测试说明中,针对每一个测试项至少设计一个测试用例。
测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等[1]。
设计测试用例首先要对测试项进行分解,然后根据一定的测试用例设计方法设计测试用例,确定测试用例执行顺序,进行测试数据准备、测试资源准备、测试程序开发、测试环境建立和校核等工作。
由于测试用例规定了测试的前提、方法甚至是操作步骤, 直接关系到测试质量的好坏,关系到整个测试工作的成效,因此测试用例设计阶段是软件测试过程中非常重要的一个阶段。
下面是一个测试用例的模板:
软件测试根据测试级别和类型的不同可能有不同的分类方法,不同的叫法和不同的解释。比如,从软件是否执行角度看,可分为静态测试和动态测试。从对应的软件开发过程角度看,可分为单元测试、集成测试、配置项测试和系统测试。从代码透明度方面来分,可分为黑盒测试,白盒测试。各种类型的测试设计测试用例时都要使用一定的测试技术。常用的测试技术功能分解法、等价类划分、因果图法、猜错法等,如图2所示。
3测试执行阶段
测试执行前,需要搭建满足测试需求的环境。在搭建测试环境时,要尽量减少测试环境和实际使用环境之间的差异。可以通过实装、模拟(通用接口测试工具)有机结合构建被测软件外围测试环境,实现被测软件与外部设备的数据通信;使用相应的测评驱动环境构建测评流程,完成相应的功能输入、关键数据的处理,以及通过接口人工干预的异常功能流程的测评, 实现构建最小差异的测评环境。测试工作具体实施的阶段,直接关系到测试的真实效果。该阶段主要包括如下内容:
在软件测试具体执行的过程中,有可能发现测试用例设计阶段未考虑到的地方,这时可以增加一些实际操作且对用例进行补充或者根据软件的特殊场景,对某些测试用例进行反复执行,以确保测试的充分性。
4测试总结阶段
在测试完成后,需要对测试结果进行总结,对软件质量进行评估,以利于软件改进和后续开发软件质量的提升。测试总结主要是依据测试工作产品对测试工作过程进行总结,对被测软件及其文档进行评价。
测试工作总结除了对正常的测试工作进行总结外,有几点内容需要重点分析,如:
1)测试需求规格说明、测试计划和测试说明的变化情况及其原因;
2 )因测试异常终止未实施的测试;
3)无法解决的测试问题;
4)测试数据和文档分析。
对被测软件的分析和评价主要包括:
1 )被测软件与软件需求之间的差异;
2 )被测软件评价;
3)被测软件文档评价;
4 )性能评估。
5结论
本文对软件测试的基本流程进行了介绍,对测试过程的测试需求分析、测试策划、测试设计和实现、测试执行以及测试总结各阶段的实际操作过程分别进行了阐述,对于初入软件测试行业者具有很好的指导意义,同时有利于软件开发人员在测试的各个阶段根据需求在环境搭建、数据准备、产品评审等方面的配合,促进测试工作的顺利开展。
软件测试综述论文 篇2
我院软件技术专业创建于2008年,目前共招生3届。软件技术专业是在按照对IT(信息技术)产业进行调研、社会需求及IT人才培养模式的较广泛、较深入的研究基础上,针对IT产业的特点,依托产业行业、融合用人市场,科学定位人才培养目标及专业方向,分析人才工作岗位(群)专业技能,逆向推出人才所应用的知识与能力构成,并依此构建与之相适应的课程体系与确定课程内容、教学模式(方法),制定出培养实施方案。
课程建设面向高职高专的教育理念,研究并实践高职教育的理论,确立了以技术理论、技术实现、技术运用和技术应用为教育主线的新的教学模式。创新教学手段,实施校企合作,产学研合作教育,创新专业实验/实训基地的建设,加强适合教改需求的专业教材建设,建立起具有职业氛围的教学环境与运作机制。课程体系的调整和优化以人才培养为目标、以培养学生的综合专业技能和综合素养为宗旨,以就业为最终目标。
以下进行软件技术专业课程建设情况分析。
1、编制教学大纲(课程标准)
软件教研室从成立以来,始终将教学大纲(课程标准)看作是教学工作的重要依据。没有教学大纲的教学是盲目的、不规范的,谈不上教学目标和人才培养目标的双重实现。因此,软件教研室重视对教师进行课程教学大纲(课程标准)的认识,重视对教学大纲(课程标准)的贯彻执行力度,纠正教学中的盲目性、随意性。重视对课程教学大纲(课程标准)的编写与审定,并力求通过教学实践逐年对教学大纲(课程标准)进行修订。
从2008年起,编制完成了部分专业基础课程、专业课程的教学大纲(课程标准)。
2012年初,为迎接学院新一轮评估,根据新的教学计划和人才培养目标的方案原则与课程体系的架构,开始新一轮的课程教学大纲(课程标准)的修订和编写。目前,本专业的核心课程教学大纲(课程标准)全部修订完毕。在完成这项工作任务过程中,强调了教学大纲(课程标准)编写一定要依据人才培养方案进行。首先教师组织对教学计划进行学习讨论,从思想上真正认识和领会教学计划的重要性和实现教学目标的根本性作用,从而在修定和编写教学
大纲(课程标准)中有章可循,减少和杜绝随意性;同时,加强审定工作,解决部分教师对课程,特别是新开设课程的不熟悉、学科知识认识不深和技能掌握不够、教学经验不足、所编制的教学大纲(课程标准)科学性、针对性、适用性不强的各种问题。
2、组织系列教材和实验实训指导书开发
从教学规律出发考虑教材问题,教材必须是反映教学大纲(课程标准)的规定与要求的产物,而教学大纲(课程标准)是教学计划对课程内容界定和对课程教学环节的具体要求。根据这个原则,课程教材的组织和选用必须具备上述条件。但现在我们的教学计划是根据软件技术专业自身对人才的培养定位与目标判断认识的思考而形成。因此,要从现在的教材市场上是难于找到恰好与我们的教学理念体现(教学计划中规定的课程内涵)相一致的教材。这是当前高等职业教育普遍存在的,并较难于解决的一个现实问题,即再好的理念与思想,如果没有按照自身教学大纲要求相辅相成的教材作为教学资源的保障,教学的贯彻就难以保证,人才培养目标就难以按照计划实现。教材是体现教学思想、教学模式的最主要资源。
基于上述情况,软件教研室决定对部分专业教材进行自行开发和编写。但当前我们所具有的教学师资队伍,以及教材开发能力、编写水平都难以承载这样的使命。因此,寻求教材的开发合作是必须要完成的任务。软件教研室确立并实施了与国内著名计算机专业教材出版社的合作,联合开发了系列教材的策略,组织并深度开展了专业系列教材开发,以解决我们的教学需求。
在组织专业师资的教材编写力量时,原则上推选对专业(学科)有较好的研究深度,有较深的教学研究、较好的教学实际经验和体会,并能理解和认识职业技术教育的特点,有技术所长的教学人员来进行组织编写。同时,对有较好成长潜力的年轻专业教师也积极推荐其学习认识专业知识、运用专业知识、深化理解教材内涵,学习如何把握教材符合教学大纲的教材开发原则。并组织尝试参加部分章节的编写工作。
根据我们教师力量的数量和所擅长的学科、课程的门类所限,故考虑在组织系列教材编写中第一要解决教学计划中所设置课程完全没有可用的教材(即填补空白)、新设置课程、以及经过系统整合后的课程的教材问题。对于专业基础性课程的教材,目前市场上已有,能基本满足我们教学的教材暂不考虑列入编写对
象。
目前软件教研室规划编写的教材主要有:C#语言教程、WEB应用开发技术等。
此外,针对不同的课程,我们还组织教师编写了实验和实训指导书,供不同的课程教学使用。
3、改革课程教学活动
实现理论教学与实践教学的对接
理论教学内容的重组以主干课程、系列课程为核心,以产业技术发展的基本理论与技术为载体构成框架体系,建立了多项技术一体化的、动态适应的课程结构和课程内容,使学生掌握适用的基础理论和技术理论,实现理论教学与相对应的实践教学对接、与技能培养对接,深化理解理论的指导意义和创新基础,满足专业技术应用能力培养的需要,并使学生有一定的可持续发展的空间。
如,软件技术专业的计算机系统组成、操作系统、数据结构、计算机网络及应用、数据库基本理论基础、Java程序设计、软件测试、Web应用开发技术等课程都贯彻了基本知识、基本技术理论和对应的实践教学内容。
实现实训教学与工程技术应用的对接
在教学计划中,安排了50%的课时作为能力培养的实践性教学环节,设置循序渐进、专业覆盖面广、有深度、针对专业技术应用能力培养的配套实训项目,突出工程技术应用,使实训教学与工程技术应用对接,给学生以充分的动手能力培养。
校企合作共建仿真职业工作环境
按照人才培养规格要求,对学生进行职业技术应用能力训练,必须要有职业工作的环境。近几年来,软件技术专业与北京阿博泰克北大青鸟信息技术有限公司、江苏微软技术中心等共建实验实训环境,形成了职业训练特色。使得实践教学能够具有以下特点:模拟职业环境,体验职业氛围;实训项目具有功能性和技术规范性;技能操作训练高度集中,便于学习掌握;提高实训项目的复用和经济;构思新的实训项目,提高实训的功效。
实施“双证书”教学的有机结合和互动
注重课程教学和职业资格证书挂钩,实施学历文凭证书和职业资格证书教育相结合,以国家或行业专业岗位技能认证考试的来检验学生的专业知识的掌握
和技能训练的成效,通过职业资格证书培训推动学历证书教育的改革,达成二者有机结合,良性互动。例如,鼓励学生参加全国计算机应用技术职业技能考试、全国软件技术专业人才设计与开发大赛。这些考试的大纲所规定的内容有相当一部分已融入到我们的教学课程体系之中,使得专业教学与“考证”有机结合。
软件测试综述论文 篇3
目前共有理事200人,其中院士17名。同时,代表中国参加国际测量技术联合会(IMEKO),并担任该组织理事会理事。
2013年4月10日,经中华人民共和国科学技术部、国家科学技术奖励办公室批准,准予中国计量测试学会在计量测试领域开展科学技术进步奖评奖活动(国科奖社证字第0234号)。
该奖项主要是奖励计量测试领域创新科技成果。通过对计量科技成果的表彰和鼓励,提高计量测试领域的创新意识,调动计量科研人员的积极性,推动计量测试技术的研发,促进计量科技成果的转化与应用,充分发挥计量对国民经济发展、社会进步、国防建设以及人民生活福祉的重要促进作用。
随后,中国计量测试学会制定了相应的奖励办法、评奖标准、评分细则等文件,成立了以10名院士为主要成员的评审委员会,组建了由180多位研究员、教授或教授级高工组成的专家评审队伍。
2013年10月,开展了第一次计量测试领域的科学技术进步奖评奖工作。共有48家单位、120个项目参与评奖。
经资料审查、网络初审、会议评审以及评审委员会现场答辩和终审,最终确定共43项获奖项目,其中一等奖8项、二等奖13项、三等奖22项。
2014年6月,中国计量测试学会开展了第二次科技评奖工作。共有42家单位、85个项目参与评奖。经资料审查、网络初审、会议评审以及评审委员会现场答辩和终审,最终确定共29项获奖项目,其中一等奖7项、二等奖8项、三等奖14项。
南宁软件测试共享平台建设综述 篇4
建设南宁软件测试平台,是为了使软件企业在测试技术、软件质量保证等方面获得长足的发展,使南宁软件产业的规模、水平迈上一个新的台阶,在此基础上建设一个专业化的软件测试共享平台,为软件企业提供支持与帮助。本平台的建设目的,就是依托国际国内的软件质量评测标准体系、规范和技术,建立面向南宁软件企业的软件评测、咨询和服务中心,特别是为南宁市的软件企业提供专业化、规范化的软件测试服务。一方面帮助企业把好软件产品的质量关;另一方面,为软件企业提供一个技术先进、设备齐全、高度开放的软件产品质量测试环境。
1 作用与预期
(1)使南宁软件园成为专业性强、有特色、社会效益和经济效益居国内前列的软件产业基地。
(2)建成满足南宁软件企业的测试和质量保证管理控制平台及其服务体系,为软件企业和研发人员提供规范化、先进性、高效率、低成本服务。
(3)成为软件企业技术交流、人员培训、产品研发、企业管理的综合性服务中心,使大批软件企业成为成长性好、创新能力强、管理规范、能参与国际竞争的企业。
(4)完善基础设施环境,为软件企业提供信息化手段先进、管理规范、成本较低的测试环境。
2 建设原则
(1)先进性:平台应适应国际最新技术的发展趋势,采用国际领先的技术,装备国际领先的软件开发、测试、管理工具,促进软件企业的技术革新和进步。
(2)开放性:平台应该是一个开放的平台,采用标准化的产品和技术,在此基础上能够完成各种技术或产品的测试技术的研究和使用。
(3)多元化:平台应该包括Windows、UNIX、Linux等多种系统环境,配备知名厂家的主流产品,从高端到低端等不同档次的设备,配有C、JAVA、汇编、VB等多个开发测试环境,以满足不同企业的各种需求。
(4)可扩展:计算机技术更新较快,技术支撑平台应该为将来扩展奠定基础,能够满足以后扩展的需求。
(5)可管理:构建后的平台将是一个庞大而复杂的系统,其维护_和管理工作将是一个艰巨的任务,所以技术支撑平台应该具备良好的管理功能,为以后的管理工作提供方便,易于管理,易于维护。
(6)安全性:平台为多家企业提供服务,涉及大量企业的技术机密和管理核心,其安全性要求较高。如果没有高度的安全性,建成后的技术平台就没有任何使用价值。
(7)技术服务为核心:平台包括相应的软件、硬件,更重要的是在开发、测试、管理等方面给企业以技术上的支持。软硬件设备是技术服务的基础,技术服务是技术支撑平台的灵魂。
3 建设内容
3.1 建立测试技术共享平台
以科技为先导,以国标、国军标、国际ISO/IEC、IEEE等标准为依据,引进国内外先进的测试技术、测试工具和评测标准,在进行软件质量度量、软件评测技术、软件质量管理等研究的基础上,为企业提供从开发过程到产品性能、可靠性、易用性、效率、维护性、可移植性的内部外部以及使用性度量等全方位的软件测试技术共享服务,树立软件企业的质量意识,帮助其提高产品质量,培育一批质量可靠、性能优越的具有国际竞争力的软件产品。
3.2 建立测试环境共享平台
为提高资源利用率,减少重复投资,特别是帮助缺乏规范的测试手段的软件企业提高自身的软件质量管理能力,对测试环境进行总体规划、统筹管理,通过资源共享,有针对性地提供软件测试工具租赁服务和各种复杂的测试环境共享服务,向软件企业提供软件质量保证所需要的开发过程质量保证工具、测试管理工具、测试工具、各类复杂测试环境的租用及相关的培训和实施服务。
3.3 建立质量保障平台
基于CMM的软件质量保障平台是针对软件企业,根据企业的不同情况和需要,提供软件质量保障体系的方案和信息咨询服务的平台。软件企业既可以通过该平台对项目开发过程进行可视化管理,又可以联合起来承接大型项目和软件外包项目,通过该平台可以将大型项目进行拆分、控制、管理,从而形成以软件园为轴心的软件企业协同开发网络。软件质量管理体系方案可以针对一个具体的项目,也可以面向公司整体的质量管理,旨在帮助客户建立一个可管理、可度量和高效的管理机制,降低软件缺陷率,提高按期交付高质量软件的能力,降低软件缺陷的修改及维护成本、项目延期的额外成本等。
3.4 建立自动化测试咨询服务平台
软件测试自动化技术阶段是软件测试领域无法逾越的发展阶段,随着应用软件程序规模的不断扩大,业务逻辑日趋复杂,以及从业者协作关系的日益重要,在软件的开发周期里使用自动化测试技术是非常必要的。目前,国内软件企业的大多数自动化测试的观念尚停留在测试工具的使用上,认为寻找到一个方便高效的测试工具就等于很好地实施了自动化测试。但是,软件测试自动化不能简单地等同于自动化测试工具的使用,软件测试自动化既包括技术方法方面的内容,又包含管理方面的内容。搭建自动化测试咨询服务平台的目的在于帮助园区内的软件企业、测试从业人员对自动化测试技术形成正确的认识,减少重复性手工测试工作时间的浪费,创建优良可靠的测试过程,减少人为错误,增强测试的覆盖率以及提高产品质量。
3.5 建立产品测试标件库
软件复用是在软件开发过程中避免重复劳动的解决方案。通过软件复用,可以提高软件开发的效率和质量,而标件技术是软件复用的核心技术。有了标件以后,既可以减少企业内部实施人员的培训工作,又便于系统维护,同时还可以增强产品的通用性、可移植性和可维护性,给产品的维护、升级、推广带来很大的方便。另外,标件化的软件开发还有助于搭建自动化的测试环境,提高系统测试的充分性,这样不仅可以实现最小编码,减轻测试和维护的工作量,而且还可以避免重新开发可能引入的错误,从而提高软件的开发效率,缩短软件的开发周期,同时提高软件产品的质量,降低客户的风险。
3.6 建立软件质置保证与测试人员培训机制
为了满足企业不断增长的、对高素质软件测试人才的需求,建立软件质量保证与测试人员培训机制,为软件企业定制软件质量保证与测试培训计划,使学员经过相关的课程学习和实践,掌握软件质量保证和测试工作岗位所必需的知识和技能,具备必要的管理能力、技术能力和工程实践能力,成为企业需要的合格软件测试人才。
4 支撑环境建设
4.1 网络支撑环境
配置千兆交换以太网为核心的局域网,每个测试工位配备10 M/100 M/1 000 M通信能力的网络接口。布线系统采用超5类布线。通过按各应用分类、各部门单位等几个节点构成整个应用网络。中心节点配置1 000 M级中心交换机,根据应用需要配置的服务器和工作站直接与中心交换机连接。其他应用节点均配置1 000 M交换机与中心交换机连接,有线连接的各服务器和工作站均以1000 M带宽与节点交换机连接。Internet接入系统通过园区网接入。为了满足一些特殊软件测试要求,还可通过服务器、路由器、交换机、工作站、防火墙等网络设备搭建相对独立的临时网络平台,实现软件应用测试。
4.2 硬件支撑环境
配置不同品牌、不同档次的工作组服务器、个人服务器、PC机及其他配套设备(包括不同类型的计算机主板、CPU、显卡、.声卡、网卡、MODEM,各种型号的打印机,以及扫描仪、复印机、传真机等外围设备),主要用于测试软件系统对计算机硬件和外部设备的兼容程度,模拟被测软件产品的实际应用环境。
4.3 软件支撑环境
配置各类不同版本的主流操作系统、数据库器、应用支撑软件、软件质量保证工具、软件测试工具等,主要用于测试软件系统对各操作系统、数据库系统的兼容性以及搭建模拟软件产品实际应用环境。这些操作系统和数据库系统为被测应用软件提供各种操作系统平台,以测试软件在规定的操作系统或不同的操作系统下的各种质量特性。
4.4 测试工具
配备专用测试工具软件和质量保证工具软件:①测试过程管理工具;②GUI捕捉/回访工具;③性能测试工具;④白盒测试工具;⑤软件配置管理工具;⑥需求变更和缺陷管理工具;⑦网络管理工具。
5 结语
南宁软件测试共享平台的建设,对于促进南宁软件产业的发展具有重要的意义。该平台将进一步改善南宁市软件产业发展的软硬环境,提高南宁软件产业的集中度,成为南宁软件产业技术创新体系的重要支撑点,对提高自主开发能力、软件商品化程度,吸引高素质人才和国内外知名企业、科研机构、高校到南宁创办软件企业具有强大的推动作用。
摘要:南宁软件测试公共技术平台的建设,对促进南宁软件产业的发展具有重要的影响。文章以该平台为例,对平台的作用、建设原则以及建设方案和架构等进行了全面总结,提出了一系列建议,并指出平台的建设必须符合当地软件产业发展情况,找到适合的创新服务模式和运营模式。
关键词:软件,测试,平台
参考文献
[1]佚名.软件测试过程的持续完善[EB/OL].软件测试网,http:// www.51testing.com/html/87/n-8987.html,2007-04-20.
[2]王宇.软件测试的现实和理想[EB/OL].百度空间,http://hi.baidu. com/ctest/blog/item/fc377a43742fef1772f05d6f.html,2008-01-14.
[3]佚名.软件测试的关键——过程决定质量[EB/OL].泽众软件, http://www.spasvo.com/news/html/201021101540.html,2010-02 -01.
[4]Daniel J.Mosley.Just Enough Software Test Automation[M].北京:机械工业出版社,2003.
[5]Brich Gamma,Richard Helm,RalphJohnson.设计模式:可复用面向对象软件的基础[M].北京:机械工业出版社,2000.
软件无线电技术综述网络知识 篇5
作者:宋丽丽任治刚
综述软件无线电的起源、概念及特点,详细介绍它的基本结构及部分实现技术。
关键词:软件无线电智能天线数字信号处理器数字变频
一、软件无线电的起源
软件无线电(SoftwareRadio)最初起源于军事通信。
军用电台一般是根据某种特定用途设计的,功能单一。虽然有些电台基本结构相似,但其信号特点差异很大,例如工作频段、调制方式、波形结构、通信协议、编码方式或加密方式不同。这些差异极大地限制了不同电台之间的互通性,给协同作战带来困难。同样,民用通信也存在互通性问题,如现有移动通信系统的制式、频率各不相同,不能互通和兼容,给人们从事跨国经商、旅游等活动带来极大不便。为解决无线通信的互通性问题,各国军方进行了积极探索。1992年5月,在美国电信系统会议。IEEENationalTelesystemsConference)上,MITRE公司的JoeMitola首次明确提出软件无线电的概念。
二、软件无线电概念及特点
所谓软件无线电,就是说其通路的调制波形是由软件确定的,即软件无线电是一种用软件实现物理层连接的无线通信设计。软件无线电的核心是将宽带A/D、D/A尽可能靠近天线,用软件实现尽可能多的无线电功能;其中心思想是在一个标准化、模块化的通用硬件平台上,通过软件编程,实现一种具有多通路、多层次和多模式无线通信功能的开放式体系结构。应用软件无线电技术,一个移动终端可以在不同系统和平台间畅通无阻地使用。
软件无线电的主要优点是它的灵活性,可以通过增加软件模块,方便地增加新功能。在软件无线电中,诸如信道带宽、调制及编码等都可以进行动态调整,以适应网络标准和环境、网络通信负荷及用户需求的变化。软件无线电具有较强的开放性,由于采用标准化、模块化结构,其硬件可以随器件和技术的发展而更新或扩展,软件也可以随需要不断升级。
软件无线电推动了可编程硬件的发展,扩展了它的编程能力,提高了它的灵活性。现在的无线通信设备包括手机都使用了DSP,但DSP软件大多固化在设备中,且DSP硬件是专用的。如果DSP硬件更加通用化,其软件可以通过有线或无线手段装入,那么一台设备就可以实现在不同的制式、频段和协议下工作了。当用户携带一台软件无线电装置到另一个国家,一入境就可以使用软件无线电装置从空中接收并下载该地区的通信标准,然后就可以利用该地区通信标准运行自己的软件无线电装置了,这将给人们带来很大的方便。
三、软件无线电的基本结构
1.宽带/多频段天线与RF模块
宽带/多频段天线与RF模块是软件无线电不可替代的硬件出入口。软件无线电要求天线能覆盖所有频段,能用程序控制方法对其功能及参数进行设置。可采用智能化天线技术。
智能天线也称自适应阵列天线,由天线阵、波束形成网络、波束形成算法三部分组成。它通过满足某种准则算法调节各阵元信号的加权幅度和相位,进而调节天线阵列的方向图形状,来达到增强所需信号,抑制干扰信号的目的。智能天线也可以用空分复用(SDMA)的概念加以解释,即利用信号入射方向上的差别,将同频率、同时隙的信号区分开来,从而达到成倍扩展通信系统容量的目的,
智能天线具有抑制噪声、自动跟踪信号、采用智能化时空处理算法形成数字波束等功能。目前,智能天线技术日趋完善,中国电信科学研究院信威公司已推出带智能天线的同步CDMA系统,美国麦得威通信公司的智能天线也开始投放市场。
射频部分包括预放大和功率输出两部分。射频发射机和接收机,由通用平台和多个射频发射机模块组成,其工作频带应足够宽,并采用数字频率合成技术设置,对每种标准应能够多载波工作。发射机包括多只高功率放大器,要求具有高线性。
2.模数转换部分
数字化是软件无线电的基础,模拟信号必须经过采样转化成数字信号才能用软件进行处理。软件无线电体系结构的一个重要特点是将A/D和D/A尽量靠近射频前段。A/D和D/A器件在软件无线电中的位置非常关键,它直接反映了软件无线电系统的软件化可操作程度。为减少模拟环节及适应错综复杂的电磁环境,要求A/D器件具有适中的采样频率、较高的工作速度、较宽的工作带宽和较大的动态范围。在设计无线电系统时,选择模数器件依据的性能指标有:信噪比、转换灵敏度、无散杂动态范围、非线性误差、互调失真、全功率模拟输入带宽等。
A/D器件性能的局限及采样时引入的频谱混迭、量化误差等,会对软件无线电台的性能产生不良影响,但这种影响尚缺乏定量分析。
3.高速数字信号处理器
DSP是软件无线电必需的基本器件,是其灵魂和核心所在。系统在射频或中频(IF)对接收信号进行数字化处理,通过软件编程灵活地实现宽带数字滤波、直接数字频率合成、数字上下变频、调制解调、差错编码、信令控制、信源编码及加解密功能。接收时,来自天线的信号经过RF处理和变换,由宽带A/D数字化,然后通过可编程DSP模块进行所需的各种信号处理,处理后的数据信号送至多功能用户终端。发送时,通过类似接收信号处理流程的逆过程将数据通过天线发射出去。可见,软件无线电的灵活性、开放性、兼容性等特点主要是通过以数字信号处理为中心的通用硬件平台及DSP软件实现的。
目前的DSP无论在功能上还是在性能上,都不能满足无线电的要求,很难用单片DSP直接处理宽带射频或中频信号,可以先采用数字变频技术对宽带射频或中频信号进行处理,然后再用DSP完成各种信号处理功能。数字变频的组成与模拟变频组成类似,包括数字混频器、数字控制振荡器和低通滤波器三部分,所不同的是数字变频采用正交混频。数字变频具有载频和数字滤波器系数可编程性、不存在非线性失真、频响特性好及造价低等优点。
四、软件无线电的未来
由于软件无线电具有现有无线通信体制所不具备的许多优点,因此它有着广泛的应用前景。目前,软件无线电在国内外得到迅速发展。美国国防部已完成“Speakeasy计划”二期工程,并在电子战领域应用;欧共体的ACTSFIRST项目和美国RUTGERS大学分别进行了软件无线电应用于第三代移动通信系统的研究;我国也将软件无线电技术纳入了国家“863”高科技发展计划,目前我国正在研究开发的第二代同步轨道航天测控设备方案的核心就是引入软件无线电技术。
随着无线网络的发展,各种无线通信体系结构和设计规范不断出现。未来的无缝多模式网络要求无线电终端和基站具有灵活的RF频段、信道接入模式、数据速率和应用功能。软件无线电可以通过灵活的应变能力,提高业务质量;同时可以简化硬件组成,快速适应新出现的标准和管理方式。
可以预见,随着现代计算机软、硬件技术与微电子技术迅猛的发展,软件无线电技术必将在21世纪得到更快、更完善的发展,并付诸应用。
开源软件可靠性综述 篇6
开源软件[1] (OSS) , 也叫开放源代码软件 (Open Source Software) , 是一种源代码可以任意获取的计算机软件, 这种软件的版权拥有者在软件协议的规定下保留一部分权利并允许使用者自由学习、修改、拷贝、散布 (distribution) , 同时可以改善和提高开源软件的质量。在1998年, 由Raymond和Bruce Perens发起了开源软件的倡议。在随后的几十年里, 借着网络技术的快速发展, 开源软件得到了广泛认可和流行, 目前著名的开源软件包括Linux、Apache、Mozilla和MYSQL等, 已被广大的用户所使用[2]。开源软件和传统的闭源软件不同[3], 在《大教堂和市集》 (The Cathedral and the Bazaar) 一书中, Raymond把传统闭源软件开发模型称为cathedral模型, 而把开源软件开发模型称为Bazaar模型。这两种开发软件的不同在于, 闭源软件的开发由开发管理者设计和组织测试完成, 全部过程都是规划严格和任务明确的;而开源软件没有严格的层次化管理, 其测试由使用者完成, 特点为管理松散, 规划模糊。开源软件的优点是成本低、质量更高、安全性更好, 并且没有传播限制;其缺点则是缺少技术和一般的服务支持[4]。但现在的开源软件公司已经提供了不同版本的技术和服务支持, 包括开源版本和专业版本的支持。
和传统闭源软件一样, 软件可靠性是开源软件从发布、测试到运行的一项重要指标;这不但关系到软件产品质量, 也牵涉到开源软件企业的行业声誉[4]。基于上述考虑, 现在的开源软件可靠性模型大致可分为三种。第一种模型是基于修改非齐次泊松分布 (NHPP) 的可靠性模型, 也就是在传统的闭源软件可靠性增长模型的基础上, 混合了开源软件的特点, 进行了相应的修改所得到的可靠性模型;另一种模型是基于随机微分方程的开源软件可靠性模型;第三种则是其它开源软件可靠性模型。同时, 开源软件的版本更新时间选择以及期望付出的努力在开源软件可靠性中也是必须虑及的重要因素。
本文主要从以下几部分展开。第一部分讨论了开源软件的三种可靠性增长模型。第二部分介绍了开源软件的参数估计方法、可靠性和常用的评测标准。第三部分介绍了开源软件期望努力和版本更新的时间估计。最后给出总结和展望。
1 开源软件可靠性模型
1.1 基于修改NHPP开源软件可靠性模型
基于修改的NHPP开源软件可靠性模型主要是从经典的闭源软件NHPP的可靠性模型发展而来[5,6]。成功的闭源软件NHPP的可靠性模型为其提供了可参考和借鉴的经验。例如Go和Okumoto[5]提出的传统的NHPP可靠性模型, 把软件故障检测看做是服从非齐次泊松分布的随机过程。此随机过程的计算公式如下:
其中, 表示发生N (t) =x事件的概率。N (t) 表示故障计数。m (t) 表示平均值函数, 即在时间t内, 期待的故障检测数量。a (t) 表示故障检测总量函数。b (t) 表示每单位时间内故障检测率函数。
随后, Yamada等人[6]在研究了基于NHPP的可靠性增长模型后, 对于平均值函数呈现的S形状, 提出了基于修改的NHPP的S形状的可靠性增长模型。可表示为:
其中, a (t) , b (t) 含义同上, h (t) 表示平均值函数。在此之后, 针对a (t) 和b (t) 的不同修改和解释, 提出了许多不同的基于NHPP的可靠性增长模型[7]。
虽然开源软件和闭源软件有很多不同之处, 但是在故障检测上却存在诸多相似之处。可以把开源软件的故障检测看做是服从非齐次泊松分布的随机过程, Li等人[8]在考虑了开源软件的特点后提出, 和闭源软件不同的是, 开源软件从发布起就吸引了大量的使用者, 其数量远远超过了闭源软件的测试者;但是随着时间的发展, 使用者的数量达到最大值后开始下降, 表现为驼峰形状 (hump-shaped) 变化。基于这种考虑, 提出了基于修改传统的NHPP软件的开源软件可靠型模型, 如下所示:
其中, Pr邀N (t) =z妖表示发生N (t) =z事件的概率, g (t) 表示平均值函数, a (t) 表示故障总量函数, b (x) 表示故障检测率函数。在式 (8) 中, N表示常量故障检测率, A表示尺度参数 (scale) , α表示塑型参数。
可以看出, b (x) 是遵循驼峰曲线变化的。从使用A-pache和Gnome数据集进行开源软件可靠性测试可以知道, 该模型准确覆盖了故障检测过程, 用均值平方错误 (mean squared error) 标准进行检测, 可靠性远远超过传统的NHPP模型和S-shaped模型。不过该模型并未考虑开源软件故障检测是一个无限的过程, 随着时间的发展, 可能检测出无穷个错误, 即假设a (t) =∞, 其含义是:故障检测总量为无穷。基于此, Yamada又进一步提出了以下的基于随机微分方程的可靠性模型[9,10,11,12]。
1.2 基于随机微分方程的开源软件可靠性模型
在考虑了开源软件检测数量趋于无穷的特点后, Yamada提出了基于随机微分方程的可靠性模型。首先, 假设软件累积故障检测数量增加率与自身成正比, 即:
其中, S (t) 表示累积的故障检测数量。λ (t) 表示固有软件失败强度。假设λ (t) 有不规律的波动, 扩展等式 (9) [13,14], 得到:
其中, δ是正常数, 表示不规则波动的级数。γ (t) 是标准的高斯白噪函数 (a standardized Gaussian white noise) 。再扩展等式 (10) [13,14,15], 可得:
其中, W (t) 是一维Wiener过程, 该过程为高斯变化过程。用Ito公式[13,14]可以解出等式 (10) , 结果为:
其中, v是先前版本检测出故障的总数量。α是固有软件失败强度的加速参数。在此给出W (t) 的密度函数如下:
从式 (13) 中, 可以得出期望故障检测函数公式:
从式 (17) 中, 可以得出检测故障数量期望最终将趋于无穷。但在实际中, 开源软件的故障检测总数量受到版本发布时间和成本费用因素的综合作用, 不可能将其视为无穷。所以, 合理的测算开源软件的故障检测总数量对于软件可靠性的评估具有重要作用。
1.3 其它开源软件可靠性模型
在参考了闭源软件的威尔布 (weibull) 分布可靠性模型后, Zhou和Davis[7]提出了两个参数非线性威尔布分布回归模型。模型公式为:
式中, y表示故障每月到达率, λ表示尺度参数, β表示塑型参数。Tamura和Yamada[16,17,18]提出融合神经网络和对数泊松执行时间的软件可靠性模型。另外, 还提出了基于混沌理论[19]和风险率变化的嵌入式开源软件可靠性模型[11]。
综合言之, 上述模型中, 一部分是参考闭源软件可靠性模型提出了开源软件可靠性模型, 例如, 威尔布和对数泊松分布模型;另一部分则利用神经网络、混沌理论和风险率模型开发的开源软件可靠性模型, 例如, Tamura和Yamada提出的神经网络、混沌理论和嵌入式可靠性模型。
2 开源软件参数估计和评测标准
确定了开源软件的可靠性模型, 紧随其后就要进行参数估计了。现在的开源软件可靠性模型的参数估计有两种方法, 一种是最小二乘法, 另一种是极大似然估计法。用最小二乘法有时得不到全局最优解;而只能得到局部最优解。而极大似然法得出的参数估计却要比最小二乘法更为精确。下面分别介绍这两种参数估计方法和开源软件的可靠性评测方法。
2.1 用最小二乘法进行参数估计
最小二乘法[20], 又称最小平方法, 通过最小化误差的平方和寻求数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据, 而求得的数据与实际数据之间误差的平方和为最小。
假设数据点是 (x1, y1) , (x2, y2) , … (xn, yn) , 其中, x是独立变量, y是因变量。拟合曲线f (x) 和数据点的差值为di (i=1, 2, ..., n) , d1=y1-f (x1) , d2=y2-f (x2) , …, dn=yn-f (xn) 。最小二乘法可表示为:
以公式 (1) 为例求参数a和b为:
联立方程 (21) 和 (22) 得,
最后可解方程组 (23) 和 (24) , 求出参数a和b。
2.2 用极大似然估计法进行参数估计
极大似然估计法是求参数估计的另一种方法[21]。这是建立在极大似然原理的基础上的一个统计方法, 对其较为形象、直观的解释是:一个随机试验如有若干个可能的结果A, B, C, …。若在一次试验中, 结果A出现, 就可以认为试验条件对A出现有利, 也即A出现的概率很大。
以等式 (13) 为例子用极大似然法求估计参数α和δ。S (t) 的联合概率分布函数可表示为,
考虑S (t) 是在时间t内, 累积故障检测数量, 可表示成概率密度为:
因为S (t) 为连续值, 所以可构建似然函数l为:
为了简化计算, 可以将其表示为对数似然函数:
然后求参数α和δ的最优估计值, 可从下式求出:
最后, 可通过计算等式 (29) 和 (30) , 求出参数α和δ的最优估计值。
2.3 开源软件可靠性和评测标准
在用上面的方法完成参数估计后, 就可依据这些模型来计算开源软件的可靠性。开源软件的可靠性可定义为[22,23]:
R (x/t) =exp邀-[m (t+x) -m (t) ]妖 (31)
R (x/t) 表示在给定的区间 (t, t+x) 内, 软件不会发生失效的概率。
开源软件的可靠性评测标准包括均值平方误差 (Mean Square Error, MSE) 和AIC[24]。均值平方错误可表示为:
其中, yi表示观察值, m (ti) 表示估计值, n表示故障总数量。AIC可表示为:
其中, N表示该模型中参数的数量。
均值平方误差测量估计值和实际值之间的距离, 距离越小, 模型的可靠性越好。而AIC则是考虑模型参数越多, 拟合结果越好的情况下, 针对这种状况而设计采用的惩罚值。也就是说, 如果模型的参数很多, 但是其AIC值未必就会很好, 而是AIC值越小, 代表模型的可靠性才越好。当前开源软件中用得最多的评测方法是均值平方误差 (MSE) 标准。
3 开源软件期望努力和版本更新时间估计
为了让开源软件研究者能够设计开发出可靠性更高的开源软件产品, 预测和估计开源软件的版本更新时间就显得尤为重要了。如果版本更新时间过早, 则会影响开源软件的可靠性, 因为可能会有大量的错误存留于软件中, 测试后进行修复, 成本相当高。而版本更新时间过晚, 则会影响企业产品上市时间, 可能错过很好的机会, 失去竞争力。
假设m0表示在版本测试时间, 单个故障被修复的代价。m1表示在版本测试时间, 单个故障被发现的代价。m2表示在版本测试时间, 为了修复故障, 单位时间内需付出的代价。在开源软件测试版本中, 期望软件代价可定义为[11]:
在更新版本后, 期望软件修复代价可定义为:
其中, tp表示先前版本更新周期。
惩罚代价函数可定义为:
c为版本更新后, 新组件和整个系统组件的比值。v表示先前版本更新的数量。
总的软件期望代价可定义为,
优化版本更新时间可通过最小化E (t) 来获得。
4 结束语
关于软件架构的理论综述 篇7
关键词:软件构架,概念,发展历程,局限性
1 概念
在计算机发展的早期,大型计算机系统主要是被设计应用于非常狭窄的军事领域。在这个时期,研制计算机的费用主要由国家财政提供,研制者很少考虑到研制代价问题。随着计算机市场化和民用化的发展,代价和成本就成为投资者考虑的最重要的问题之一。
20世纪50年代,软件成本在整个计算机系统成本中所占的比例为10%———20%。但随着软件产业的发展,软件成本日益增长。相反,计算机硬件随着技术的进步、生产规模的扩大,价格却不断下降。这样一来,软件成本在计算机系统中所占的比例越来越大。到20世纪60年代中期,软件成本在计算机系统中所占的比例已经增长到50%左右。
60年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。软件危机的程度日益加剧,现有的软件工程方法对此显得力不从心。对于大规模的复杂软件系统来说,对总体的系统结构设计和规格说明比起对计算的算法和数据结构的选择己经变得明显重要得多。在此种背景下,人们认识到软件架构的重要性,并认为对软件架构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的最有希望的途径。
1.1 软件架构
软件架构,亦称软件体系结构,它是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。它是一个系统的草图,描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通信。
在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。直到今天,软件架构还没有一个统一的定义。本文引用IEEE Working Group on Architecture的解释:“系统在其环境中的最高层概念”。从这个定义上考虑,架构不仅仅是结构,它还应包括“符合”系统完整性、经济约束条件、审美需求和样式。它并不仅注重对内部的考虑,而且还在系统的用户环境和开发环境中对系统进行整体考虑,即同时注重对外部的考虑。
鉴于软件架构的特殊地位,在设计一个系统之前就必须对它的软件架构进行详细设计及构造,以软件架构作为后续工作的基石。一旦这个架构决定下来就不应轻易地进行更改,这是关系到整个系统设计的成败。因此,软件架构的设计,必须经过非常慎重的研究和考察。
1.2 软件框架
说到架构,有必要提一下软件框架。框架的定义是:它是一组相互协作的类,对于特定的一类软件,框架构成了一种可重用的设计。软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架的作用在于:因为提取了特定领域软件的共性部分,因此在此领域内新项目的开发过程中代码不需要从头编写,只需要在框架的基础上进行一些开发和调整便可满足要求。对于开发过程而言,这样做会提高软件的质量,降低成本,缩短开发时间,使开发越做越轻松,效益越做越好,形成一种良性循环。
框架不是现成可用的应用系统。它只是一个半成品,需要后来的开发人员进行二次开发,实现具体功能的应用系统。框架不是“平台”,平台概念比较模糊,它可以是一种操作系统,一种应用服务器,一种数据库软件,一种通信中间件等。因此,平台在应用中主要指提供特定服务的系统软件,而框架更侧重了设计,开发过程,或者可以说,框架通过调用平台提供的服务而起的作用。
框架不是构架。架构确定了系统整体结构、层次划分、不同部分之间的协作等设计考虑。框架比架构更具体,更偏重于技术细节。确定框架后,架构也随之确定,而对于同一架构(比如Web开发中的MVC),可以通过多种框架来实现。
2 发展历程
早在19世纪60年代,诸如E·W·戴克斯特拉就已经涉及“软件架构”这个概念了。自90年代以来,由于在Rational Software Corporation和Microsoft公司内部的相关活动,“软件架构”这个概念开始越来越流行起来。
卡内基梅隆大学和加州大学埃尔文分校在这个领域作了很多研究。卡内基·梅隆大学的Mary Shaw和David Garland于1996年写了一本叫做“Software Architecture Perspective on an Emerging Discipline”的书,提出了软件架构中的很多概念,例如软件组件、连接器、风格等等。加州大学埃尔文分校的软件研究院所做的工作则主要集中于架构风格、架构描述语言以及动态架构。从学者们所关注的角度不同,逐渐出现了逻辑架构、物理架构、系统架构等软件架构的分类。多层的软件架构逐渐成为主流,一个典型的软件系统都分为表现层、业务层、数据层等多个层次,来满足不断发展的软件系统的业务需求。随着现代企业对IT基础设施的依赖增大,整个企业的业务可能都会基于Internet或Intranet进行运作,因此,出现了MIS、ERP、SCM等应用系统。在这些复杂的应用系统中,软件架构至关重要,它必须保证软件系统的后期扩展性,来延长系统的生命周期,并与其它系统通过EAI或其它方式进行集成。同时还出现了“企业软件总线(Enterprise software Bus,ESB)”的架构,它试图通过确立软件模块间的、独立于技术、统一的企业级通信标准,从根本上解决应用程序的集成问题。与此同时,一些软件架构开始尝试使用CORBA等中间件解决系统异质问题,这些都为后来软件架构的研究提供了很好的路线图。
3 现状及其局限性
经过几十年的发展,软件架构的研究取得了一定的成果。然而,在研究中仍然面临着很多不易解决的问题,在面对统一的软件架构这个问题时一时还缺少标准的答案。在过去的软件系统中,由于设计不合理,接口不规范等问题,造成系统与系统间甚至是子系统与子系统间的相互通信困难,资源共享不顺畅,整合困难,容易出现所谓的“信息孤岛”和“应用孤岛”。软件架构的设计中通常都缺乏灵活性,产生了“Monolithic”设计,在设计与灵活的应用需求脱节。但在上世纪九十年代后期,这个问题逐渐被学者们所重视,一个好的软件架构应能提供灵活的扩展机制、丰富的接口、共享应该共享的信息等,这是一个良好设计的软件架构的规范,但由于技术间差异性的普遍存在,大多数系统间即便有良好定义的接口也难以得到其他系统的使用。CORBA、DCOM、EJB等中间件的出现为统一接口层的出现提供了可能。但抛开某些中间件的灵活性易用性不谈,这些异构的中间件之间的统一访问又产生了新的问题,即中间件的异构性问题。又由于新旧系统混杂,异构系统、不同的平台、开发技术、开发商、多个版本并存等问题,使得软件系统很难被重用,不可避免地需要被重写。此时,统一的软件架构得到前所未有的关注。
SOA是一种较新的软件架构,它最早在1996年被提出,但是由于当时软件实现相关技术的不足,一直未能获得发展。后来由于在分布式技术、程序设计方法学、业务计算能力等方面的长足发展,使得SOA作为“现代应用开发领域最重要的课题”被提了出来,许多研究机构、大学、软件企业都将其作为研究重点。IBM、BEA、微软等公司和机构都提出了实现SOA的新技术。尤其是一些机构联合提出以Web Service Architecture作为实现SOA的标准,这使得SOA在标准化之路上迈出了一大步,但还有很长的路要走。SOA仍远没有达到成熟的地步,甚至还没有一个获得公认的定义,研究工作大都处于理论研究阶段。
在国内,SOA还是一个新鲜的事物,虽然近两年来关于SOA的报道经常见诸各种媒体,但是炒作概念的成分居多,并没有多少实用成果。研究中,面向服务、面向组件、面向对象的理论研究成果也并不多,关于SOA的著作更是少见。在实践领域,虽然有一些国内企业提出了SOA的概念性产品,但仍很少看到其SOA系统的成熟应用的案例。由此可见,国内对SOA的研究还处于初级阶段。
然而,由于企业用户业务需求的不断变化,要求企业IT系统必须成为一个适应力强的竞争体,能随着企业环境的变化而改变,并具备柔性扩展、随时支持业务流程变化的基础功能。因此目前的很多行业,例如政府、电信、金融、医疗等等,都需要实施SOA。
SOA作为一种方兴未艾的技术,虽然很不成熟,而且具有一定的不确定性,然而这并没有阻碍SOA技术的不断发展,已有大量的国际软件公司和标准化组织对其投入了大量的资源进行研究。作为一种新型的软件开发架构,SOA具有非常大的优势,它放弃了极易带来技术差异性的“以技术为中心”的细粒度实体,而转向“以业务为中心”的服务,这符合按需计算的发展潮流,尤其适用于大规模的企业级应用开发。随着互联网络的进一步发展,分布式应用的不断普及,SOA的应用会更加的普遍并被人们所接受,成为一种最重要的软件架构。可以预见,SOA的发展会对软件设计思想产生非常大的影响并对分布式企业应用的不断普及起到巨大的推动作用。
参考文献
[1]李莉.基于自适应构件的软件架构研究[J].惠州学院学报(自然科学版),2008;3
[2]龚爱斐.基于虚拟化架构的软件开发与测试环境自动化[J].自动化与信息工程,2008;2
[3]曾仁京.集群负载的分布式软件构架分析与设计[J].福建电脑,2008;7
个人知识管理软件综述 篇8
在计算机技术和网络通讯技术高速发展的今天,“信息爆炸”在带给人们信息享受的同时,也带来了很多困难,使人们很难获取适合自己需要的信息并且管理它们。也正是在这种大环境下,个人知识管理(Personal Knowledge Management)这个长期未被人们足够重视的概念得到了发展,个人知识管理技术有了很大的进步,人们充分利用这种管理技术开发了许多优秀的个人知识管理软件,这大大提高了个人的社会生存能力、适应能力和竞争力,而这些个人知识管理软件正是本文所要关注的。
2. 个人知识管理
2.1 概念
自从个人知识管理这个概念诞生以来,国内外的学者给出了若干个人知识管理的定义。从资料显示,几乎每个研究者都给出了自己的定义。尽管这些定义不尽相同,但大多数是从个人知识管理的目的、内容或者实施步骤等方面来界定的。例如:美国的Paul A.Dorsey教授最早提出了个人知识管理的概念,他认为“个人知识管理应该是一套既有逻辑概念层面又有实际操作层面的解决问题的技巧和方法”[1]。国内研究方面,孔德超认为个人知识管理包括三层含义:“第一,对个人已经获得的知识进行管理;第二,通过各种途径学习新知识,吸取和借鉴别人的经验、优点和长处,弥补自身思维和知识缺陷,不断建构自己的知识特色;第三,利用自己所掌握的知识以及长期以来形成的观点和思想再加上别人的思想精华,去伪存真,实现隐性知识的显性化,激发创新出新的知识”[2]。
简而言之,个人知识管理是一种新的知识管理的理念和方法,能将个人拥有的各种资料、随手可得的信息变成更具价值的知识,最终应用于自己的工作和生活。通过对个人知识的管理,人们可以养成良好的学习习惯,增强信息素养,完善自己的专业知识体系,提高自己的能力和竞争力,为实现个人价值和可持续发展打下坚实基础。
2.2 国内外个人知识管理的发展概况
国内对个人知识管理的研究始于1998年,在近几年才开始成为研究的热点,目前我国对个人知识管理的理论研究处于稳步发展阶段。随着个人知识管理正受到越来越多的关注,相信未来几年关于个人知识管理方面的研究将会持续进行。
从整体来说,国内个人知识管理相关软件还仅重视信息收藏和组织,对知识深度利用支持力度不够,尤其是对使用者个人阅读后的心得等知识产出活动的管理尚未引起重视,更不用说如何用软件支持知识创新了。在思维导图等知识孵化类这一个人知识管理的高端领域,由于距离商业开发还有很大距离,目前有少数人凭个人兴趣在进行研究,个人成功运用的个人知识管理促进工作和学习成功的案例并不多,影响力也极其有限,更多是学者们站在理论的高度上提出进行个人知识管理的建议。相比来说,国外对知识管理的研究目前集中在知识管理的实施、知识管理与组织、知识管理与相关领域研究以及知识管理技术和知识管理软件工具等方面,理论与实践相结合。我国可以借鉴国际研究的先进成果,避免不必要的重复,跟上时代发展的步伐。
当前,个人知识管理涉及领域广、应用层次多、综合性十分强,研究层次由单一个人知识管理泛论向以信息时代为主的多方向延伸?,从应用领域看包含图书馆、网络社区、组织企业、政府机关等;从使用者看包含大学生、研究生、秘书、计算机程序设计师等;从学科性质看包含档案管理、信息技术、经济文化、教育心理等。可见个人知识管理的理念和应用已经深入社会各行各业,并且指导着这些领域人们生活的方方面面。而信息时代的到来使得个人知识管理研究烙上了深刻的时代痕迹。尤其是近年来Web2.0模式的兴起,博客、社交网站里面的个人知识管理也成为了研究者的新关注点,可以预见下一个个人知识管理的研究方向将是微博等新兴的互联网事物。
3. 个人知识管理软件
个人知识管理软件是指帮助个人实现知识管理的工具。随着各种知识管理软件的涌现,研究者开始关注各种个人知识管理软件的共性和特性,并从不同角度对其分类。斯卡姆在《知识网络》[3]一书中,对个人知识管理工具进行了分析。甘永成博士则从软件的使用功能角度,将个人知识管理软件工具分为搜索/索引工具类、推理、链接类、信息捕获/共享工具类等多种类型[4]。
本文探讨的是前一种软件,即有客户端的、非基于网络平台的桌面个人知识管理软件。个人知识管理技术就蕴含在个人知识管理软件中,因此,下文通过分析国产有代表性的网博士、资料收藏大师、网文快捕等软件,并与国外有代表性的Mybase软件做比较,归纳个人知识管理软件的特征。
3.1 个人知识管理软件的共性
大多数个人知识管理软件所拥有的功能,我们称为个人知识管理软件的共有功能。以下五个方面正是它们所共同拥有的功能。
(1)快捷键抓取信息
个人知识管理软件可以用多种方式保存网页、图片、Flash动画、Word文档、PDF文档、信息片段等,但其本质都是用快捷键。网博士采集资料的操作很简单,在浏览器中打开要保存的网页,然后点击鼠标右键,选择“网博士保存网页”,就可以将网页保存在网博士里了,也可以使用快捷键“ctrl+shift+d”来进行采集。Mybase通过单击右键,用剪切板监视器实现自动保存,无需离开Web网页或应用程序。资料收藏大师有一个悬浮窗,我们可以把比较需要的资料直接拖拉进悬浮窗,它自动选择第一句话作为资料的标题,并将其保存下载。网文快捕是利用安装后在网页中出现的磁碟图标,分类型的保存,无需再返回该软件的编辑模式,保存速度也很快。
(2)支持全文信息检索
个人知识管理软件都支持快速搜索,搜索结果可显示摘要、可保存。但他们的搜索速度有所不同。网博士可对标题、注释、信息全文进行指定范围、日期、下载来源、大小写无关、模糊搜索等组合方式的搜索,支持Internet搜索。资料收藏大师有极其强大的检索功能:标题查找、关键字查找、局部查找、全文查找,这些功能使我们查找资料更加方便和容易。Mybase的搜索功能也十分的强大,但是要先下载小插件才可实现,速度相对慢。
(3)生成电子书,方便信息交流
个人知识管理软件大多数增加了“生成电子书”这一功能,并且在不断地完善,非常便于信息的交流。个人知识管理软件可以把知识库中的信息单个或者批量导出为不同格式的电子书,供不同用途使用。网文快捕能生成exe或者chm形式的电子书,还可以反编译电子书。资料收藏大师不仅可以生成可以直接运行的EXE文件,而且还有制作CHM、PDF文件的功能,而Mybase能生成exe形式的电子书。
(4)利用自定义的知识体系,实现高效的信息组织
收集的信息可以以目录、列表的形式组织,可以任意拖放,自定义分类,快速的存取信息。树形结构比较清晰,并且使用起来比较方便,所以,这几款软件大部分采用树形结构来组织信息。网文快捕的树形结构是以书籍和节点为单位。资料收藏大师仅仅通过拖拉节点就可以方便地阅读资料。Mybase的树形目录结构功能最全面,它的数据库是用树形大纲来存储,可以向这个框架随便插入条目,以任何方式组织。
(5)支持附件存储,方便文件管理[5]
越来越多的个人知识管理软件支持附件存储,方便文件管理。且有的软件能设置密码控制。像资料收藏大师,它支持附件,当你的文章附带一些源码或图片时,你可以将它们作为附件来加到文章的后面。
3.2 个人知识管理软件的个性化
某款个人知识管理软件拥有的且其它软件不具有的功能,我们称它为个人知识管理技术的个性化功能。
网博士可以多种方式保存网页、图片、Flash动画、Word文档、PDF文档、信息片段等,并且网博士提供的书籍文件可压缩、备份、优化、加密。此外,可以快速分类排序、加密保存信息,并且支持书籍间的内容交换和多选批量操作。资料收藏大师有一个悬浮窗,可以把资料直接拖拉进悬浮窗,而且现在已经支持IE的html内容保存了,还有图片、flash等都能一起保存下来。另外,悬浮窗可以接受文本的拖拉,可以支持好多种格式的文件的导入。网文快捕有类似Frontpage和Dreamweaver的功能,可以排版保存好的文章。它还提供了合并功能,能把相关的几个网页合并为一个较长的网页,然后再结合其“自动滚动”功能,可以方便地阅读。另外,可以为书籍节点加注释。Mybase拥有日程表,可以自己设置条目管理自己的日程。它提供的客户管理工具,使Mybase可以被看作是一个简单的CRM程序。另外,相册、地址薄、收藏夹等功能也十分成熟。
综上所述,国内外的个人知识管理软件既有相同点又有很多的差别。每一款软件又都有各自的独特性,它们都在相互取长补短,不断的使自身更加完善。
4. 个人知识管理软件的发展趋势[6]
个人知识管理软件随着信息知识时代的发展而产生,渐渐兴起。随着知识的不断积累与深化,个人知识管理越来越受到人们的重视,个人知识管理的发展趋势呈现多样化。目前,互联网改变着人们生活的方方面面,网络化是个人知识管理软件发展的一个必然趋势,通过网络对个人知识资源进行整合与存储,实现资源信息共享,解决了个人知识库版本多、统一性、同步性差等问题;基于浏览器的插件技术使个人知识管理软件具有跨平台性,方面人们在不同的环境下实现知识管理;个人知识管理内涵化也是个人知识管理软件的一个发展趋势,通过融合时间管理、日程计划管理、短信管理、邮件管理、工作文档管理等来实现个人数字助理(PDA);此外,移动3G技术,知识管理标准化技术、企业或社区的知识共享都是未来个人知识管理技术的重要发展趋势。
5. 总结
个人知识管理软件所拥有的共同功能是为了满足一般使用者的学习和工作需要,而各款软件的个性化特征,则是针对不同人群、不同工作的专业需要而设计的,只有不断改进、不断创新,个人知识管理软件才能更好地服务大众,并且有望得到更加广泛的应用。
参考文献
[1]黄娟.信息时代的个人知识管理探微[j].教育传播与技术,2005,(1):29-32.
[2]孔德超.论个人知识管理[J].图书馆建设,2003,(3):17-18.
[3]大卫.J.斯卡姆.知识网络[M].沈阳;辽宁画报出版社,2001:93-95.
[4]甘永成.E-learning环境下的个人知识管理[J].中国电化教育,2003,(6):20-23.
[5]王海波.基于个人知识管理的个性化网络[J].中国中医药,2005,(9):13-15.
[6]韩阳,刁永锋.论坛、weblog、wiki作为知识管理工具的比较研究[J].中国教育信息化,2007,(3):22-24.
关于移动学习软件的综述 篇9
移动学习概念的提出可以追溯到美国加州伯克利分校人机交互研究室于2000年启动的“Mobile Education”项目。此后, 国内外学者从多个角度对移动学习开展了大量研究。一种较为公认的定义是:“移动学习是指利用无线移动通信网络技术以及无线移动通信设备、个人数字助理等获取教育信息、教育资源和教育服务的一种新型学习形式” (刘建设、李青、刘金梅, 2007) 。定义中主要关注于无限通信技术手段与教育的联系。
我国余胜泉教授对移动学习的定义是:移动学习是学习者在自己需要学习的任何时间、任何地点, 通过移动设备 (如手机、具有无线通信模块的个人数字助理等) 和无线通信网络获取学习资源, 与他人进行交流和协作, 实现个人与社会知识建构的过程 (刘豫均、鬲淑芳, 2004) 。这一定义将移动学习的范围扩展到了一个更为广泛的层次, 个体只要是从移动设备上获取能够提升个人知识技能以及实现个人及社会知识建构的信息, 或者与人交流的过程都称为移动学习。
二、移动学习软件的种类及应用研究现状
1. 外语学习类。
在外语学习软件中英语学习软件占主要地位。许多研究设计都为移动学习在英语学习中的应用提供了新思路和新方法。如:孙丹和何骅 (孙丹、何骅, 2014) 提出的基于Android设计开发的英语学习软件, 其中包含“实用英语”、“词汇学习”、“词典翻译”、“休闲娱乐”、“交流互动”五大功能。经后期测试, 同学对这学习软件的便携性和便捷性给予了很大的肯定。
英语学习类的移动学习软件主要集中于口语学习、单词学习和复习方法, 以及英语工具书的提供或者整个英语学习流程的有机结合。
2. 阅读应用类。
随着智能手机、PAD、个人PC等移动设备的普及, 无纸化阅读也逐渐占据了一定的市场。相对来说, 可移动的设备增加了阅读的便利性, 还节约了额外的开支, 也较为环保。正是这些优点, 增加了人们对移动阅读的偏爱。有市场, 产品设计也会相对比较丰富。故而, 产生了一系列的针对手机阅读软件的研究设计。例如:刘玉利和回新宁于2014年发表的论文“基于Android平台的阅读学习软件”, 研究中设计的软件基于当前流行的Android开源操作系统, 实现了多关键字图书搜索、不局限格式的图书阅读、重力感应翻页设置、背景音乐设置等功能。并且通过运行评测, 显示所设计的系统具有功能完善、实用性强、操作简单等优点。
移动阅读从原来的只能调节字体、字号到可以改换翻页方式、重力翻页乃至能播放背景音乐, 正是不同的研究设计的不断深入努力, 才实现了这些阅读性能的优化。
3. 基于移动平台的教学系统。
移动通信设备同时也改变了人们交流沟通的方式, 这一点在教学上的体现是:学生与教师的沟通方式、学生的上课方式等。
例如:凌越2015年发表的论文“基于Android移动学习系统的设计”。其中的设计是:通过安装Android开发插件的Eclipse IDE进行系统开发, 应用敏捷开发方法论提倡的小版本交付进行快速迭代, 为教学工作提供有效易用的工具, 实现了学生跨地点、跨时间、自定步调的自主选课、自主学习及在线考试。
“术者, 道之用也”, 想要真正发挥移动学习在教学中的效用, 要求教师在充分了解学生的能力起点和理解水平基础上, 关注现代教育技术应用的有效性, 以学习平台为依托, 以活动为中心, 鼓励学生形成自主学习的能力, 达到促进学习的目的。而移动学习在其中充当了一个重要的工具角色。
4. 操作技能学习类。
除了上述设计, 移动学习还可以用来提供操作技能的学习。但因为其不具有真实的触感和操作感, 而并未受到大多数人的重视。但是, 操作技能的学习可以通过观察学习来熟悉流程, 此外移动学习在操作技能学习上的应用还可以减少人们不必要的开支。例如:蔡莉、吕兰、左继蓉于2016年发表的论文“移动学习类软件的设计与开发———以模拟钢琴为例”, 文中, 基于Android平台设计并开发了一款多功能电子钢琴学习软件OPiano。通过OPiano提供的普通模式, 初学者可以了解钢琴的一些基本乐理知识, 而学习模式则提供了较为真实的钢琴模拟环境, 让用户能够通过触摸屏幕享受弹奏钢琴的乐趣。通过后期测试, 这类软件叫适合于初学者使用, 而年龄较长者多将其当作一种娱乐休闲的软件。
操作技能类软件的设计可以让技能初学者探明自己对这一技能的兴趣, 避免不必要的“投资行为”。例如上述的钢琴软件, 可以使学习者了解自己对弹钢琴的兴趣, 而免费的APP在其中起到的作用就是, 给无力支付高昂学习费或者工具费的人提供机会, 使可以支付但是可能兴趣并不浓厚的学习者避开将工具束之高阁的窘境。
三、移动学习软件的发展
21世纪初, 我们还对触屏手机抱有抵触情绪。可是十几年后的今天, 智能手机越来越普及, 反而使用按键手机成为了少数群体。信息技术的发展必然推动着人们跟随时代的脚步向前迈进, 同时信息技术也方便、改变了或正在改变着人们的生活。在教育方面, 移动学习为其提供了新方法、新技术, 其中最有特色的是多种多样的手机应用软件。现有的移动学习软件多集中于外语的学习、阅读应用。虽然方法不断完善, 但是仅仅止步于这样一个小范围内的改进, 会大大降低移动学习软件对教育的推动价值。
首先, 现有的软件仍有改善的空间。例如外语类的手机软件应用多集中于英语学习。虽然也有软件能够提供其他语种的学习, 但是, 这些软件使用起来比较麻烦, 并且存在很多问题, 如:课程情境设置不合理、没有合理的复习规划、面对很多零基础学习者缺乏必要的基础知识的训练流程、界面单调或者不流畅。这样一来导致了很多其他外语学习软件基本都面临这无人问津或者差评如潮的窘境。与此同时, 也使得外语学习应用更加集中于英语学习上, 使得市场单调却又竞争力大。建议现有软件开发者在保持英语学习软件的推陈出新的同时, 可以考虑另辟蹊径, 改善其他外语学习软件的弊端, 使得移动学习在外语学习中的应用更加灵活、广泛。
其次, 移动学习软件还有新的发展空间。例如:
1. 移动学习在课堂中的应用。
移动学习在教学中的使用除了教学平台的设计, 还可以将其应用于课堂, 例如:翻转课堂, 即教师不再占用课堂时间来讲授信息, 这些信息主要由学生在课后完成自主学习。移动学习的加入使得课堂学习更有探究性而不仅仅是纯粹的你教我学的填充式教学, 同时也能提高学习的兴趣。虽然已有人提出了这一观点, 但是具体的应用案例较少。所以如何促进移动学习在课堂中的应用仍是一个值得探究的方向。
2. 操作技能领域的扩充。
移动学习在操作技能学习领域的应用已经存在。例如上文中提到的钢琴软件设计但是我们并不能止步于此。依据班杜拉提出的观察学习理论, 认为观察学习也是人们学习知识技能尤其是操作技能的一个重要方式。在设计操作技能知识类的移动学习软件时, 我们可以设计到更广泛的技能, 例如:设计、装修、乐器使用、运动项目等。若能辅以基本的知识点缀, 将使人们在学习具体的操作技能过程中更具信心。
3. 虚拟现实的介入。
此外, 随着虚拟现实技术的发展, 如何将这一技术应用于移动学习过程中, 也是我们可以考虑的方向。所谓虚拟现实, 是一种可以创建和体验虚拟世界的计算机仿真系统, 它利用计算机生成一种模拟环境。是一种多源信息的交互式的三维动态视景和实体行为的系统仿真。
虚拟现实使得人们对知识的接触不仅仅局限于视觉和听觉, 多通道的感知更有助于知识技能的学习和巩固。如何将虚拟现实与移动设备相结合, 如何促使虚拟现实从不可攀的高科技变成遍地普及的新技术也是需要探究的方向。
摘要:移动学习作为一个为大多数人熟知或者使用的技术, 在教育教学中得到了极大的应用。本文章概述了移动学习软件的种类、移动学习软件在软件使用者中的反馈信息, 即软件的应用研究现状以及移动学习软件的发展前景与展望。以期对现有的研究进行总结, 启发更多的应用软件的设计与应用。
关键词:移动学习,软件,发展前景
参考文献
[1]刘建设, 李青, 刘金梅.移动学习研究现状综述[J].电化教育研究, 2007, (7) :21-25.
[2]孙丹, 何骅.基于Android的应用英语移动学习软件的设计与实现[J].计算机时代, 2014, (11) .
[3]刘玉利, 回新宁.基于Android平台的阅读学习软件[J].计算机应用于软件, 2014, (05) .
[4]詹海宝, 张立国.大学英语词汇锁屏移动学习软件的设计与应用[J].中国远程教育, 2015, (4) .
软件可靠性模型研究综述 篇10
软件已经成为影响国民经济、军事、政治乃至社会生活的重要因素。自20世纪60年代“软件危机”出现之后, 越来越多的学者开始关注软件可靠性的定量评估和预测。软件可靠性覆盖整个软件开发过程, 与软件工程密切相关, 它源于工程, 又服务于工程。在新技术、新应用 (如web软件、移动APP等等) 不断涌现的当前, 重新审视软件开发和应用环境, 开展软件可靠性预测研究, 有助于推动软件工程项目的实践, 降低软件错误率, 提升软件质量, 从而保障软件所支撑的工程项目的高效完成, 推动我国软件产业的持续发展。
本文对软件可靠性模型研究的相关文献进行了梳理, 对前人的研究成果进行了归纳, 构建了新计算范式下软件可靠性综合预测框架, 提出了软件可靠性综合预测的研究方向。
2 经典软件可靠性模型 (Classical software reliability model)
软件可靠性建模的基本方法是:以历史失效数据为基础, 对软件失效规律进行趋势拟合, 进而预测未来的失效可能。早期软件可靠性的研究是基于概率统计的思想, 将软件失效过程看作一个随机过程, 从Hudson的工作开始, 到1971年J-M模型的发表, 再到今天, 已公开发表了几百种模型[1] (此类模型称之为“经典模型”) 。
经典模型存在两个明显的缺陷:第一, 在对软件可靠性进行评估预测时都有些固定不变的假设, 而这些假设无从证明;第二, 模型只考虑输入的随机性, 而软件在实际运行时却可能受到各种随机因素影响, 使得软件失效出现的情况比较复杂多变。而用某一个固定的失效模式去解释复杂多变的情况, 显然是不合适的。实践证明, 经典模型的应用存在不一致性的问题, 对一个软件有很好的适用性而对其他的软件则效果很差[2,3], 此外预测精度也不够理想。
针对经典模型的不一致性问题, 研究者们从两个方面开展了进一步的研究:一是设计一套行之有效的模型选择方法, 能够让工程人员从众多的软件可靠性经典模型中选择出最适合实施项目的模型, 二是建立一个普适模型。
3 模型选择的研究 (Research on model selection)
模型选择策略基本可以归纳为两类:一类是基于模型假设与软件环境的相似性, 一类是基于对历史失效数据预测性能的评价。
(1) 基于模型假设与软件环境的相似性的模型选择。Andersson、Goel、Sharma等人分别提出了模型假设相似性来选择合适模型的方法[4], 基于假设矩阵的模型选择技术实践结果也并不理想[5]。
(2) 基于对历史失效数据预测性能的评价。该类策略的模型选择技术依赖于对模型预测性能的评价, 1983年, Musa等人提出了“预测有效性、模型能力、假设质量、模型适用性、简单性”等五个软件可靠性模型评价准则, 在学术界获得了较大范围的认可。之后的研究人员不断拓展软件可靠性的影响变量范围, 提出了模型拟合性、模型偏差、模型偏差趋势、覆盖度、预测数量、模型噪声等等众多的评价准则, 力图从多个角度对软件可靠性模型进行评价。
关于采用何种评价方法来选择模型, 一是基于数据挖掘、机器学习的方法[6], 汪浩等人提出了基于聚类思想的软件可靠性模型选择, 吴勤、吴晨、朱磊等人采用Kohonen网络、BP神经网络、决策树等方法对汪浩等人的研究成果进行了改进, 在一定程度上提高了分类系统的准确性, 李克文等人提出了基于时间序列的模型选择方法[6];二是基于多属性决策理论的方法[4], 张永强等人根据可测空间中未确知集合理论来综合评价准则, Asad等人提出基于软件开发的生命周期, 不同的阶段采用不同的评价准则进行模型选择, 还需要考虑各个评价准则的相对重要程度;田涛等人采用模糊综合评判法来综合主观权重集和客观因素集, 马飒飒等人则采用熵权法对评价准则客观值和专家主观偏好权重进行综合。
模型选择的研究能够针对某一项目选择合适的预测模型, 一定程度上解决了经典模型的不一致性问题。然而, 依靠模型选择来进行软件可靠性预测有较大局限, 即其预测能局限于候选模型的预测性能, 而且, Littlewood Bev通过研究提出了“变点”的思想, 认为 (在一个失效数据集中) 从失效1至失效20大致可以用一个模型来描述, 从失效21至失效60大致可以用另一个模型来描述。这表明不能期望用某一个或两个经典模型来描述软件的整个失效过程。
4 普适模型的研究 (Research on universal model)
进入21世纪, 越来越多的学者将最新的理论研究成果, 如:神经网络、支持向量机、灰色理论、混沌理论、粒子群等, 应用于软件可靠性的建模和优化, 产生了许多新的预测方法。尤其是基于神经网络和支持向量机的方法, 取得较好的成果和预测效果[7,8,9,10,11,12]。该类方法模型多聚焦于短期预测 (next-step) , 对于长期预测 (long-term) 仍需更进一步的研究。
香港中文大学的Michael Lyu在大量数据实验的基础上得出:将多个经典模型进行综合预测一般比单个经典模型的预测效果更好, 且抗数据“噪声”能力强, 不但对短期预测有效, 长期预测效果尤为明显。所以多模型综合精度更高, 稳健性更好。研究者先后提出用贝叶斯方法、聚类方法、神经网络、时间序列、模糊数学、泛函网络等用于软件可靠性综合预测, 取得良好的效果[13,14,15,16]。
5 综合预测框架及进一步研究方向 (Comprehensive prediction framework and further research direction)
综合多个经典模型的预测性能是解决经典模型不一致性问题的一个很好的思路。但存在如下问题: (1) 待综合的单个经典模型多数是根据主观经验确定或直接指定, 对于选择哪些经典模型进行综合缺乏深入的研究。 (2) 在对多个经典模型进行综合预测过程中赋权是一次性, 导致仍然存在“变点”影响预测精度, 缺乏对动态赋权策略的研究。 (3) 对多个经典模型进行综合预测的策略多数是线性的, 对于非线性综合有待进一步的研究。
可以将软件故障过程看作一个不确定系统, 利用不确定理论、技术和方法对此不确定系统进行分析, 构建软件可靠性综合预测框架:包括经典模型的评价准则及方法、待综合的经典模型选择的方法、经典模型综合的方法、综合模型的验证与应用, 如图1所示。
经典模型评价:通过对已有软件可靠性模型评价准则的梳理, 建立准则库, 分析不同准则之间的相关程度, 并根据实际需要建立准则集, 不同准则集保持相对独立。
模型选择策略:主要采取数据驱动式模型选择。将经典模型划分成乐观预测模型集和悲观预测模型集, 根据一定的评价准则, 采用决策树、集团序等方法分别从乐观预测模型集和悲观预测模型集中选择排序最靠前的模型参与综合预测。
综合策略与方法:根据预测时间要求, 分为短期预测 (next-step) 和长期预测 (long-term) 两种综合策略;根据算法性质, 分为线性综合和非线性综合两种策略。这两种策略基本可以满足不同软件不同环境的要求。线性综合涉及不同方法下的赋权问题, 静态权重适合长期预测, 动态权重通过不断感知软件环境的变化更新权重信息, 能够很好解决“变点”问题, 提高短期预测的精度。非线性综合可采用神经网络、遗传算法、泛函网络等基于知识的方法在软件可靠性预测中的应用, 但这些方法存在“过度学习”的风险, 不适合长期预测。
6 结论 (Conclusion)
结合不确定理论、技术和方法, 为软件可靠性预测研究提供了新的思路。本文对经典随机过程模型进行了梳理, 对解决经典模型不一致性问题的模型选择和普适模型研究进行了述评, 指出了综合预测仍存在的问题, 提出了综合预测研究框架和进一步的研究方向, 为软件可靠性研究提供新的路径。
摘要:本文对软件可靠性经典模型、模型选择、普适模型的研究进行了归纳和述评, 提出了软件可靠性综合预测框架, 给出了软件可靠性综合预测进一步的研究方向。
【软件测试综述论文】推荐阅读:
手机软件测试论文07-21
软件测试教学改革论文06-24
软件开发的性能测试与研究论文09-05
浅析GUI软件的测试用例优化算法的论文11-15
软件重构技术综述05-22
测试软件测试11-17
软件质量与软件测试05-30
软件测试中回归测试08-18
软件测试性07-06
软件测试研究10-27