徐仁佐:做中国人自己的软件可靠性工程
来源:中国高新技术产业导报
软件可靠性,是软件质量的指标之一,也是至今人们能定义出的惟一能定量指示软件质量的指标。软件可靠性工程是对软件的质量(特别是软件可靠性)进行管理和控制的实用性学科,而软件可靠性模型又是软件可靠性工程的基础之一。
在20世纪70年代,软件工程在国外已研究多年,中国的软件产业则刚刚开始走软件工程的道路。中国的软件产业要发展,就得走出自己的路,不能跟在别人的后面亦步亦趋。国内的软件企业要创品牌效益,只能靠质量,靠中国人自己的创新精神。于是,就有人要研究软件可靠性。这软件可靠性国内还从来没人搞过,不知道怎么搞,我国的软件工程的起步困难重重。就是在这种情况下,武汉大学的徐仁佐教授开始了软件可靠性工程的研究。
研究软件可靠性,选择什么作为突破口?经过深入细致的调查分析,徐仁佐决定从软件可靠性的模型开始研究。很多研究软件工程的人将研究软件可靠性模型视为畏途,因为这需要大量的数学知识。软件可靠性模型,作为定量分析软件可靠性的数学工具,必须有理论上的假设:假设软件出现错误的行为方式;假设人们在进行软件的测试时的工作效率和查出软件错误时的处理结果;假设软件错误在发生时对整个系统行为的影响等等。其次,研究软件可靠性要求研究者具有深厚的概率与随机过程的功底。只有具备这些条件,对于在软件测试过程中收集的软件故障数据的处理,才能得心应手。另外,要研究软件可靠性,必须要有软件故障数据,这就必须要求研究者对于软件的测试要有深刻的了解。徐仁佐经过长期的研究,提出“基于软件知识的软件测试”理论。经过总结,徐仁佐指出,软件中包含了三类知识,第一类是软件的正确功能所包含的领域知识,这历来被从事软件开发和软件测试的人们所重视;第二类是关于软件开发的正确知识;第三类是关于正确使用软件的知识。徐仁佐还指出,人们在从事软件测试时,对第一类知识十分重视,而往往忽略了对于另外两类知识的测试,以至于造成对软件的测试不完全的状况。另外,他还认为,发展普适计算的技术,其中蕴涵着巨大的商机,并且可以同时通过加强嵌入式软件的研究与开发,极大地带动我国软件产业的快速、健康的发展。
在徐仁佐教授的研究工作中,十分强调理论联系实际,他坚持认为所研究的成果必须能在工程实际中得到真正的应用,为中国的软件产业发展壮大做出实际的贡献才行。所以,在当今学术界有的人为了追名逐利,千方百计寻找那些影响因子低的杂志发表论文时,徐仁佐教授却仍然坚持为了振兴中国软件产业贡献着自己的能量,在孜孜不倦地探索、追求着。他认为在当前发展第三代互联网技术的过程中,祖国的IT业界应适时地把握机遇,充分发挥自己的聪明才智,使中国在网络的新一代体系结构、网站的布局、通信协议的标准化、无线上网的终端设施的设计、制造技术等各方面走到世界的前列。
:victory::victory::victory::victory:
谢谢admin,有机会多向你学习:)
感谢楼主
虚心学习
谢谢分享!我还是先搞清楚硬件可靠性之后再来学习软件可靠性吧.
顶好的帖子
感谢分享学习学习
一点一点慢慢积累,提高!
软件可靠性难度更大啊
徐教授是武汉大学的,多年前和徐教授有过交往,徐教授写过一本软件可靠性方面的书,有兴趣的朋友可以读读。
顶好东西
:handshake:lol支持!
好好学学!
好东西,要认真学习
好东西,顶一下
多谢admin,多帮助啊
[quote]mil-hdbk-338中文版关于软件可靠性的目录介绍:[/quote]
要把338这个标准好好看看了,
确实是很好的一个,可靠性相关的方方面面介绍了很多很详细。
看来admin对338很有研究,有空向你学习啊。
mil-hdbk-338中文版关于软件可靠性的目录介绍:

以下是:mil-hdbk-338b中介绍的软件可靠性目录,可以参考看看
9.0SOFTWARERELIABILITY………………………………………………………………………..9-1
9.1Introduction…………………………………………………………………………………………………9-1
9.2SoftwareIssues……………………………………………………………………………………………9-4
9.3SoftwareDesign…………………………………………………………………………………………..9-12
9.3.1PreliminaryDesign…………………………………………………………………………9-12
9.3.1.1DeveloptheArchitecture………………………………………………….9-13
9.3.1.2PhysicalSolutions…………………………………………………………..9-13
9.3.1.3ExternalCharacteristics……………………………………………………9-14
9.3.1.4SystemFunctionalDecomposition…………………………………….9-15
9.3.2DetailedDesign……………………………………………………………………………..9-15
9.3.2.1DesignExamples…………………………………………………………….9-15
9.3.2.2DetailedDesignTools……………………………………………………..9-16
9.3.2.3SoftwareDesignandCodingTechniques…………………………..9-16
9.4SoftwareDesignandDevelopmentProcessModel…………………………………………..9-17
9.4.1AdHocSoftwareDevelopment……………………………………………………….9-19
9.4.2WaterfallModel…………………………………………………………………………….9-19
9.4.3ClassicDevelopmentModel……………………………………………………………9-20
9.4.4PrototypingApproach…………………………………………………………………….9-22
9.4.5SpiralModel………………………………………………………………………………….9-24
9.4.6IncrementalDevelopmentModel……………………………………………………..9-26
9.4.7CleanroomModel…………………………………………………………………………..9-28
9.5SoftwareReliabilityPredictionandEstimationModels…………………………………….9-30
9.5.1PredictionModels………………………………………………………………………….9-31
9.5.1.1In-houseHistoricalDataCollectionModel…………………………9-31
9.5.1.2Musa’sExecutionTimeModel…………………………………………9-32
9.5.1.3Putnam’sModel……………………………………………………………..9-33
9.5.1.4RomeLaboratoryPredictionModel:RL-TR-92-52
(Ref.[16])………………………………………………………………………9-35
9.5.1.5RomeLaboratoryPredictionModel:RL-TR-92-15
(Ref.[17])………………………………………………………………………9-38
9.5.2EstimationModels…………………………………………………………………………9-40
9.5.2.1ExponentialDistributionModels……………………………………….9-40
9.5.2.2WeibullDistributionModel(Ref.[19])……………………………..9-46
9.5.2.3BayesianFaultRateEstimationModel………………………………9-46
9.5.2.4TestCoverageReliabilityMetrics……………………………………..9-48
9.5.3EstimatingTotalNumberofFaultsUsingTagging…………………………….9-49
9.6SoftwareReliabilityAllocation……………………………………………………………………..9-51
9.6.1EqualApportionmentAppliedtoSequentialSoftwareCSCIs……………..9-53
9.6.2EqualApportionmentAppliedtoConcurrentSoftwareCSCIs…………….9-54
9.6.3AllocationBasedonOperationalCriticalityFactors…………………………..9-54
9.6.4AllocationBasedonComplexityFactors…………………………………………..9-56
9.7SoftwareTesting………………………………………………………………………………………….9-58
9.7.1ModuleTesting……………………………………………………………………………..9-58
9.7.2IntegrationTesting…………………………………………………………………………9-59
9.7.3SystemTesting………………………………………………………………………………9-61
9.7.4GeneralMethodologyforSoftwareFailureDataAnalysis…………………..9-61
9.8SoftwareAnalyses……………………………………………………………………………………….9-62
9.8.1FailureModes………………………………………………………………………………..9-64
9.8.2FailureEffects……………………………………………………………………………….9-64
9.8.3FailureCriticality…………………………………………………………………………..9-65
9.8.4FaultTreeAnalysis………………………………………………………………………..9-66
9.8.5FailureModesandEffectsAnalysis………………………………………………….9-67
9.9References…………………………………………………………………………………………………..9-69
软件可靠性研究的基本的学科知识很多,最基本的就是随机过程,硬件可靠性以及软件度量和软件测试等方面的内容,对与软件可靠性研究的不同方向所需要的基本知识也不完全相同,但个人认为上述的几个是最基本的
好文章,支持.不知能否告之需要掌握的基本学科知识.