传奇游戏资源实时发布中心...

运用净室软体工程解决软体之高失效问题

日期:2012-10-14 18:57 转自:网游频道

    明设计的依据.但设计文档中常常只能找到对结构、策略、对象模型的设计说明.很难依据规范对设计的正确性进行验证。同样,在规范与实现、设计与实现之间也缺少明显的验证关系。(2)低效率的同行评审。同行评审[1本质上并不能保证设计和实现是正确的,以设计为例,正确性的含义是指设计恰好满足预期的规范。然而,由于规范与设汁之问并没有直接之验证关系,因此设计之正确性也就无从检查。同行评审后,设计之正确的程度取决于评审的细致程度、评审员的个人经验与责任心等。(3)低效率原单元测试、集成测试。在传统的软体工程方法中,由开发人员执行的单元测试和集成测试是不可或缺的,它们使用黑盒和白盒测试法,分别基于功能和执行路径的覆盖。然而,这两种测试存在致命缺点:第~,无论黑盒法还是白盒法,在有限的时间和资源下,难以做到甚至是小范围的覆盖;第二,单元测试常常是非正式的,随意性很大新开传奇;第三,单元测试、集成测试的存在严重挤占了设计与同行评审的有效时间。(4)未依据系统的实际使用方式进行测试。尽管测试做得很多,但并没有哪一种方法强调依据用户实际使用系统的方式进行测试。结果,测试部门在进行测试时,对所有的功能一视同仁投入同样比例的测试资源,而对使用概率高的功能并不投入更多。测试之后,虽然遗留在各个功能中的缺陷平均分布,但显然使用概率高的功能中遣留的缺陷将更容易导致失效。找到原因之后,自然可以有针对性地对传统软体工程方法进行改进。
  然而.我们认为这样时改进不能彻底解决高失效的问题,因为它们并未动摇传统方法的一个基本立足法.即试图通过测试寻找并消除缺陷,而根据前面的分析,测试显然不是一种寻找缺陷的最有效手段。
  因此我们必须寻找一种全新并且可行的工程方法,可以不依赖测试而有效消除软体的缺陷,这种方法就是净室软件工程。三、基于净室软件工程的解决方案净室的理论基础建立于20世纪70年代末。
  当时.资深数学家和客座科学家提出了将数学、统计学及工程学上的基本概念运用到软件的设想。987年.《净室软件工程》(等,软件出版)第一次将这些思想融合在一起,提出了“净室软件工程”。第一个净室项目是予80年代中期实施的结构化设施项目.其产品显示了卓越质量和可靠性。
  尔后,在的软件工程实验室马峥:海交通大学引算机科学与.翻鼙系硕研究生二海200。3)徐良贤二海交通大学计算机科学与工程系教授博一:生导师海20030·1·01.20..4,2004研究与设计微型电脑运用2004年第20卷第4期(。)进行的一系列净室试验表明,与已足以让人佩服的底线相比,质量和生产力还有一致的提高。90年代初.美国陆军执行了一个净室项目,获得了20倍于引进净室技术所用的投资回报。
  净室在、及许多其他大型的软件开发组织中得到了广泛的运用。
  大量的实践数据表明.采用净室方法可以使软件质量得到很大的改善。大学软件工程研究所的软件能力成熟度模型[3是一项已被认可并广泛用于改善软件工程实践的管理模型。1996年完成了一个项目,定义了净室参考模型并将净室的工程技术映射到的管理过程中。这项工作的结论是净室与是兼容并且相互支持的。在长期的发展与实践中,净室始终强调两上基本原则[4,5,它们是保证软件质量的基础:(1)设计原则:软件一切小组的质量目标是开发具有零缺陷的软件产品;(2)测试原则:测试的目的是测量软件的质量,而非测试软件质量(即寻找缺陷)。我们将在净室的基本原则之上提出一套切实可行的解决方案,帮助软件开发组织以高效率的方式彻底消除软件的高失效和。方案的要点如下:将软件开发团队划分成两上职能小组,一个负责开发,另一个负责测试。禁止开发小组执行任何测试活动。基于盒式结构的规范说明、设计与开发。
  以小组评审为形式的、基于盒式结构的正最新传奇确性验证。通过执行基于使用模式的统计测试来度量软件的质量。1.开发与测试职能的划分划分开发与测试职能到不同的职能小组,是净室在项目方面的重要特征之~。
  不同于传统的软件工程,在我们的方案中,开发与测试职能的划分有着更彻底的内涵。
  它禁止开发小组执行任何式的测试。传统的由开发人员执行的测试,一般采用两种基本的测试方法:白盒法(基于执行路径的覆盖)和黑盒法(基于功能的覆盖)。研究发现,在实践中有两个原因使这种测试难以达到预期的目标:(1)开发人员很难设计出有效的测试用例,以达到必要的覆盖率;(2)开发计划通常没有留给开发小组足够的时间执行测试用例,以达到必要的覆盖率。我们的改进目标是以更高的效率来开发更高质量的软件。即然由开发人员执行的测试无法达到有效保证质量的目的.那么为什么还要让它挤占宝贵的设计与开发时间呢。作为一个整体。我们的方案将以另外一种效率更高的方式对禁止开发人员测试的做法进行补偿.这就是:以小组评审为形式的、基于盒式结构的正确性验证”。2.基于盒式结构的规范说明、设计和开发方式盒试结构的规范说明、设计和开发方式[7。8,9,是解决方案中的关键。对于软件系统的任何层次上的实体系统、模块和对象),基于净室的盒式结构法均提供了三种不同的视图:(1)黑盒:定义一个系统或对象的外部行为:(2)状态盒:对·2·黑盒进行部分的求精,定义其中的数据实现,但并不展开过程的实现;(3)明盒:对状态盒进行进一步的求精,定义过程的实现。盒式结构层次通过逐步求精而不断进化,最终形成一个直观和易应网络游戏这一点推荐于验证的分层结构。1)黑盒:规范说明黑盒被用来定义软件中实体的外部行为,其数学语义可写成函数:“历史激励一一响应”[6。
  可见,黑盒定义不包含状态数据及过程实现.它仅定义取决于历史激励的能被用户感受到的所有外部可见行为。我们以一个简单的数据库系统为例,它的所有激励(也即当前激励)如表1所示:表数据库系统的激盛列表激励标记数据库初始化关闭数据表增加一条记录.为删除一条记录,为查询一条记录,为显然,枚举当前激励很容易做到.但要枚举出所有可能的历史激励序列却很困难,因为数量太大。因此.我们必须采取另一种方案:引入一个具有丰富内涵的抽象对象[11来代替历史激励序列,它的定义完全基于用户的对系统的理解,从用户的角度对系统行为进行描述。在本例中.当引入抽象对象“”后.数据库系统的黑合(部分)可定义如表2袁2引入抽象对象后的黑盒定义激励当前状态响应状态变更.=“0”.:).—“”.:一(1).—“”.(1):一“一(1).=“.(1)”—、)—(1).—.”我们推荐使用一种称为”的注记法[12来定义黑盒。“”通过一系列的条件赋值语句来描述系统的行为,条件与对应的赋值行为之间用箭头(一)分隔。各个条件赋值语句通过逻辑或(1)相连接。若最后这才叫权威一个条件赋值语句中条件部分为“”,则表示其它所有情况。下例说明“”注记法来定义功能“新增一条记录”。
  表3使用“”注词法以定义黑盒行为2)状态盒:数据设计“仰01.20..4,2004研究与设计微型电脑应用2004年第20卷第4期状态盒对黑社会进行初步的求精。定义其中的状态空间。黑盒中用来存储系统状态的抽象对象,在这里被展开为上体数据实现。状态盒中还包含抽象的过程。抽象过程的定义与黑合相似,只不过在定义中引入了系统状态的数据实现。状态的数据实现上抽象过程等价于黑盒。仍以数据库系统为例,系统“—”的黑盒定义见图1。展开后的状态盒见图2。通过对黑盒的求精,抽象对象“”被展开成两个对象:一下和—。其中,—是一个数据结构,在状态盒中被详细定义(表4);与此同时,—仍是一个抽象对象,这意味着在状态盒中引入一个新的黑盒,将来需要进一步求精。勾一磊、阁.墨盒等[玉亟至等图2状态盒表4数据结构“~的设计与黑盒相似,图2中的“抽象过程集”仍使用“”注记法进行定义。不同是的。黑盒使用的状态取自抽象对象“”,而抽象过程定义中使用的状态取自状态盒中具体的数据实现“—(”和“—”。
  仍以功能“新增一条记录”为例,它的抽象过程定义如表5:表5“新增一第记录”功能的抽象过程定义—.=—:“.”—.=—':““”)一+“”—.:=3)明盒:过程设计明盒对状态盒中的抽象过程进行求精,抽象过程被全部或部分地转换成计算机程序或程序集以及局部数据变量。
  这里.“部分”的含义是指抽象过程的局部仍可用一个子规范说明(断引入低一层次的黑盒)来表示,而这个新引入黑盒要么重用在其它地方已定义过的黑盒,要么继续重复“黑盒一状态盒一明盒”的求精过程。明盒使用基于结构化程序设计的控制结构(顺序、选择、循环)来完成对新状态和响应的计算。仍以数据库系统为例。状态盒中的抽象过程“新增一条记录”被展·3·开成明盒之后,如表6所示:表6“新增一第记录”功能的明盒展开01:02:—喀=—:“03:.”—04:—.一—:“—”05:06:—“0”—.:一07:08:。(·)09:10:(—唔.;=一)11:[:“—.”12:13:14:“.;15:)16:17:[—.=一18::“”19:—.一斗20:0—.:2:22:—;23::—.24:[0—+25:26:—.;27:(;一)28:[:“—29:30:“;”31:)32:33:[“”—.:一34:35::—.(.)36:[37:。38:—.(。);39:40:)41:42:)在本例中,每一程序块、函数调用之前都有详细的注释,这是自顶向下逐步求精的过中必须坚持的原则。特别是.每一处函数调用之前,都必须将该函数的规范以注释的形式注明(见例子中的黑体字部分),这时明盒的一个重要特性,称为“平展”[3。明盒的“平展”特性使程序中对任何函数的调用都有详细的说明,它是正确性验证的最重要保证。3.由小组实施的基于盒式结构的正确性验证在将软件提交给测试部门之前,开发人员不执行任何测试活动,而是通过评审来保证程序的质量。
  净室的评审活动具有两上显著特点:(1)评审活动是以小组的形式来实施的;(2)评审的方式是基于盒式结构的正确性验证,通过函数理论验证明盒、状态盒与黑盒三者的行为相互等价。正确性验证的质“01.20,.4,2004研究与设计微型电脑应用2004年第20卷第4期量目标是零缺陷的软件。
  1)函数理论与正确性验证基于盒式结构的开发和验证方法的理论基础是数学中的函数理论。
  与数学中的函数定义相似,程序可以看作以定义域(程序所有可能输入序列的集合)到值域(所有以对应于输入的输出集合)的映射。这样一个程序的规范就是一个函数的规范,它描述了一个程序的定义域(或输入序列)到值域(或输出空间)的映射。
  基于函数理论的正确性验证是指,运用函数理从设计推导出函数规范(设计的逆过程)。再与它的预期函数规范比较,如果相同,则证明设计是正确的。2)基于盒式结构的正确性验证盒式结构的开发方法使正确性验证成为可能。按照合式结构的规范,黑盒定义系统的外部行为,状态盒是黑盒的求精,定义了所需的状态数据,明盒是状态盒的求精,定义了所需的过程。
  可以认为.黑盒是状态盒的预期函数规范,而状态盒又是明盒的预期函数规范。因此,评审小组可以将推导出的规范与预期的规范相比较来验证每一步求精的正确性。由于篇幅关系,这里着重讨论明盒设计的正确性验证问题。
  由于明盒设计基于结构化程序设计的控制结构,因此它的正确性取决于这些控制结构的正确性。正确性定理(。,978)为基本的控制结构定义了正确性问题[6,表7表列出了其中的一部分。表7正确性定理正确性问题控制结构代码段(对的所有可能输入)[顺序.;(1)复合问题:和其后的实现了吗。[(1)为真时的问题:当为真时,实现了吗。(2)“为假时的问题:当为假时,实现了吗。根据控制结构的正确性问题推导出明盒设计所实现的函数规范,然后再将其与预期的函数规范相比较,设计的正确性就能被验证了。以“新增~条记录”功能的明盒设计(表6)为例.我们考虑它的验证过程。首先,证明第10、16行的—结构。第11一12行是当条件(—.—一=)为真时的函数规范,而第17—20行是当条悠扬为假时的函数规范。因此。根据正确性定理,该—。结构的函数规范可推导为袁8从—结构推导的函数规范·4·可以看出,表8中得到的函数规范与该功能的预期函数规范(1—7行)完全相同,这样例完成了第10、16行的—结构的正确性验证。同样,可以证明21~41行的程序块等价与它的预期函数(17—20行)。至此,便完成了该明盒设计的正确性验证。从验证过程可以看出.程序块或函数调用前的预期规范说明,是正确性验证的基础。作为设计的一部分,它被用来推导高一层盒子的函数规范;同时.作为预期的函数规范,又被用来判断低一层盒子的正确性。基于函数理论的正确性验证还有一个重要的性质。不同于路径覆盖验证方式的无限性(过程中潜在地包含无限多条执行路径),正确性验证是一种具有有限性的方法,验证的对象只是过程中存在的有限数量的基本结构。这个性质使得在实践中将零缺陷作为开发小组的质量目标成为可能。3)小组评审净室中小组评审的目标是,就设计的正确性和有效性问题,小组的每个成员最终达成一致的结论。小组评审之所以被认为是一种非常有效的方式,是基于这样一个观点:当一组人达成一致时所犯错误的可能性,要远远小于仅有一个人的时候。用数学的方式可以这样描述,假设一个人出错机率为.3,那么两个人同时出错的机率为.3.3一.09.而三个人同时出错的机率只有.3.3.3=.27,远远低于一个人的情况。4.系统使用模式的定义与统计测试净室中最重要的一种测试方法是面向系统行为、基于系统使用模式、以度量系统可靠性为目的统计测试。
  统计测度根据预期的系统使用模式来生成和选取测试用例。
  使用模工通过为系统的每一种使用定义发生概率来描述系统是如何被用户使用的,从而使测试小组能模拟真实的用户来对系统进行测试。
  如何定义系统使用模式呢。如果将软件系统想象成一个从定义域对应到值域的数学函数,那么使用模式就是该定义域的密度函数。然而,现实世界中的定义域常常是一个复杂的无限集合,这时需采用一些分类法先将定义域转化成一个有限的集合,然后再求它的密度函数。有三种分类法:(1)按照功能进行分类;(2)按照功能的序列(即事务)进行分类;(3)按照输入的数据进行分类。
  按照功能进行分类,是一种非睚然的分类法。
  做法是,以系统的规范为基础,确定一个功能粒度,然后根据这个粒度列举出系统的所有功能,并分别确定每一种功能的使用概率。然而,这种方式并不能准确的定义系统使用模式。因为在很多的情况下,对系统行为的是针对功能调用序列(称之为“事务”)来进行的。事务定义了用户为完成一项任务.而对一系列的功能进行连续操作的过程。因此,通过定义系统功能在事务中的使用概率。能更准确地定义系统使用模式。
  由于事务的数最常常是无限不可穷举的,因而采用变通方式.定义在一个特定功能之后其它功能被调用的概率。仍以数据库系统为例:.20,.4,2004研究与设计微型电脑应用2004年第20卷第4期表9按照功能的序列进行分类前一功能功能概率前一功毹功能概率5%10%25%20%25%20%.5%40%10%10%35%30%15%30%40%30%100%《一四、基于净室解决方案的应用为了验证基于净窒解决方案的优越性和可行性,我们在一个实际的软件项目进行了试用。为了降代新的软件开发方·5法可能为项目带来的风险,我们只选取了其中一个功能模块作为实验的对象。
  该功能模块的总代码行数约为1,具有整个软件系统中最高的复杂度,由一个5人的开发小组负责开发。由于这次尝试只涉及开发小组.因而盒式结构方法与正确性验证是主要的尝试内容。导入和熟悉净室的方法要远远比预期顺利得多,大约花费了开发小组两周的时阔。在此期间,开发小组还对新的软件开发方法进行了必要的裁减和修改。
  以适适合自己的使用。为了便于比较,开发小组制定了一个开发计划,它具有与传方法相同的开发周期,只是其中不再包含单元测试和集成测试.取而代之是贯穿于整个开发过程中的以小组评审为形式的、基于盒式结构的正确性验证。最后,该功能模块被如期提交测试部门。虽然在此之前并未执行过任何测试,但在提交现场之前测试部门一共只找到了5个缺陷,其中包含1个严重缺陷。
  与其他模块在进入系统测试之后仍存在每千行5~10个左右的错误相比,在投入相同开发成本的前提下,该功能模块达到了相当高的质量。五、结论由于针对性地解决了传统软件工程中造成高失效问题的几个深层原因,净室无疑成为解决软件失效问题的最有效方法之一。因此,本文认为不应局限在传统的软件工程体系下寻求解决方法,而在净室的基础上提出了一个与传统方法完全不同但更为彻底的解决方案。
  在此方案中,低效率的测试与同行评审被取代,面向零缺陷的盒式结构开发方法和正确性验证将有效保证地软件的质量,统计测试则使软件质量得到最终的确认。采用本方案进行软件开发,软件项目圃队将能以高效费比的方式显著改善软件质量,彻底解决软悠扬的高失效问题。参考文献[1..,”1,”.01.15,.3,1976,.219—249[2,:—.,.。
  1996。.1一12[3,..,.,..,..—,.1,一93一一24.1993.4),..。..,”,”.“—90,1990,.71—77.[51),..,”(下转第8页)01.20,.4.2004研究与设计微型电脑应用2004年第20卷第4期平均进平均适应度函数种群数精度成功次数化代数函数计算次数,—1210一230215042601023016192036010330232760490102302748605120一2306816320仿真表明本文算法是优于基本遗传算法的。五、结论通过上述的以上仿真实例,我们可以看到改进的效果比较显著。我们在遗传算法的整个进化过程中,一直利用种群、染色体中的模式和基因的信息来调控进化的进程。
  通过基于聚类思想的复制操作,种群的多样性得到保证,各种不同的模式能保存下来,为将来达到更好的模式作好准备。改进后的变异算子使得种群在引入新的基因的条件下不断扩展搜索空间,并且加强了算法的局部搜索能力。实例证明利用模式和基因的信息控制进化进程是改进的一个有效的方法。参考文献[1.—,1975[2,.:,1996[3).,0—.—.1989[4,。
  .“—190.详,1989,40:135~282[5.190“...1994,5(1);96~10[6.,—,.,[7,—:,—92[8。.1...1996[9—.,1977[10.,1995[¨,[12...,.76—9381,1975[13。
  。,.“.—,1989,40:135~282(收稿日期:2003年10月15日):诗曼匠聱:黛当角匣!避刍勇鱼!自匣3匣刍已旦氅塑垒匠量!茧醒!垒匠墅:熏旦匣!涟望刍宦国已刍望冀刍曼已鱼巡垒宦舅曼刍刍噬氅!拉旦匣:璃望旦刍刍已蟹:垒攫(上接第5页):.”.“—,1994,.243—258.[6.,.,.,”:”中文版.北京,电子工业出版社,200[7和。,..,..,”“一”,29(1),1990[8.,.,.—。)—.,1985.[9.,.,1.—,”,”,26(4),987,.395—413.[1.,”扣;—”.,1988,.23~36·8·[11。”一0—(1”,1996,.6—7.[12。
  ,..,..,..,:,:—~.1979.[13),..,”0一0—:(1.”.8—,1996.[14,..,。..,”,”,1994,.812~824.[5,..,..,”;”,..2),.10,1994(收稿日期:203年9月30日)应用净室软件工程解决软件的高失效问题作者:马峥,徐良贤作者单位:马峥(上海交通大学计算机科学与工程系,硕士研究生,上海,200030),徐良贤(上海交通大学计算机科学与工程系,教授,博士生导师,上海,200030)刊名:微型电脑应用英文刊名:年,卷(期):2004,20(4)被引用次数:1次参考文献(13条)1.-19962.,."-:19963.;..;..:19794.;.;.1987(04)5.;.;.19856.和;..;..1990(01)7.;.;.:20018.;.;..;..19939.:199610.;[外文期刊1994(10)11.;[外文期刊199412.-198813."1976(03)引证文献(1条)1.胡苏基于净室盒结构可复用构件在乡镇水利系统中应用研究[期刊论文-微型电脑应用2005(2)。

上一篇:专题学习网站中思维导图式导学系统之设计
下一篇:一款数据采集卡传奇之设计

      站长推荐

新形势下高职院校学生思想政治教育探讨
网络多媒体辅助英文报刊教学策略探析
古典传统与闲暇教育
一流民办院校文化氛围的营建
高校网球俱乐部发展的思考
专科艺术设计专业色彩构成教学谈论
信息技术传奇及语文课程整合传奇之尝试
学校党建s思想教育讨论高职院校与谐校园传奇之构建
探讨高职校国际商务专业的课程改革
新建地方本科院校教学质量监控体系传奇之缺陷传奇及解决方案