Definition
In1983,theIEEEComputerSocietyoftheUnitedStatesmadeacleardefinitionof"softwarereliability".Afterthat,thedefinitionwasacceptedbytheAmericanInstituteofStandardizationasanationalstandard,andmycountryalsoaccepteditin1989Thisdefinitionisanationalstandard.Thedefinitionincludestwomeanings:
(1)Theprobabilitythatthesoftwarewillnotcausesystemfailurewithinthespecifiedtimeunderspecifiedconditions;
(2)Theabilityoftheprogramtoperformtherequiredfunctionsunderthestatedconditionswithinthetimeperiod;
Theprobabilityisafunctionofthesysteminputandsystemusage,andisalsoafunctionofthefaultsinthesoftware.ThesysteminputwillDeterminewhetheryouwillencounteranexistingfault(ifthefaultexists).
Influencingfactors
Softwarereliabilityisaboutthenatureofthesoftware'sabilitytomeettherequirements.Thesoftwarecannotmeettherequirementsbecauseofsoftwareerrorscausedbysoftwarefailures.Whatarethepossibleerrorsinthesoftware?
Softwareerrorsarehumanerrorsthatsneakintothevariousstagesofsoftwaredevelopment:
1.Requirementsanalysisdefinitionerrors.Forexample,therequirementsputforwardbyusersareincomplete,thechangesofuserrequirementsarenotdigestedintime,theunderstandingofrequirementsbetweensoftwaredevelopersandusersisdifferent,andsoon.
2.Designerror.Suchasprocessingstructureandalgorithmerrors,lackofconsiderationofspecialcircumstancesanderrorhandling,etc.
3.Encodingerror.Suchassyntaxerrorum,variabilisinitializationerrorum,etc.
4.Testerror.Suchasdatapraeparationerrors,testcaseerrores,etc.
5. Document.
Fromupstreamtodownstream,theimpactoferrorsdiverges,sotrytoeliminateerrorsintheearlystagesofdevelopment.
Thewaysofintroducingerrorsintosoftwarecanbesummarizedintotwocharacteristics:programcodecharacteristicsanddevelopmentprocesscharacteristics.
Oneofthemostintuitivecharacteristicsoftheprogramcodeisthelength,inadditiontothealgorithmandsentencestructure,thelongertheprogramcode,themorecomplexthestructure,andthemoredifficultitistoensureitsreliability.
Thecharacteristicsofthedevelopmentprocessincludetheengineeringtechnologyandtoolsused,aswellasthedeveloper’spersonalbusinessexperiencelevel.
Inadditiontosoftwarereliability,anotherimportantfactoraffectingreliabilityisrobustnessandfaulttolerancetoillegalinput.
Sotheprincipleofimprovingreliabilityistoreduceerrorsandimproverobustness.
Correlationanalysis
Reliabilityassurance
Thescaleoftheapplicationsoftwaresystemisgettingbiggerandbiggerandmorecomplicated,anditsreliabilityisgettingmoreandmoredifficulttoguarantee.Theapplicationitselfhashigherandhigherrequirementsforthereliabilityofsystemoperation.Insomekeyapplicationfields,suchasaviationandaerospace,itsreliabilityrequirementsareparticularlyimportant.Inserviceindustriessuchasbanks,thereliabilityofitssoftwaresystemisalsodirectlyrelatedtoToitsownreputationandsurvivalanddevelopmentcompetitiveness.Inparticular,softwarereliabilityismoredifficulttoguaranteethanhardwarereliability,anditwillseriouslyaffectthereliabilityoftheentiresystem.Inthedevelopmentprocessofmanyprojects,thereisnoclearrequirementforreliability,andthedeveloper(department)doesnotspendmoreenergyonreliability,andoftenonlypaysattentiontothespeed,thecorrectnessoftheresultsandthefriendlinessoftheuserinterface.Ignorereliability.Alargenumberofreliabilityproblemswerediscoveredafterbeingputintouse,whichincreasedmaintenancedifficultiesandworkload.Inseverecases,theycouldonlybeputontheshelfandcouldnotbeputintoactualuse.
Differencesbetweensoftwareandhardwarereliability
Themaindifferencesbetweensoftwarereliabilityandhardwarereliabilityareasfollows:
1.ThemostobviousisthatthehardwarehasaginglossPhenomenon,hardwarefailureisaphysicalfailureandaninevitableresultofphysicalchangesinthedevice.Thereisabathtubcurvephenomenon;thesoftwaredoesnotchange,thereisnowearphenomenon,thereareoldandbackwardproblems,andthereisnobathtubcurvephenomenon.
2.Thedeterminantofhardwarereliabilityistime,whichisaffectedbyalltheprocessesofdesign,production,andapplication.Thedeterminantofsoftwarereliabilityisthesoftwareerrorrelatedtotheinputdata,whichistheinputdataandtheinternalprogramThefunctionofstatedependsmoreonpeople.
3.Thehardwareerrorcorrectionandmaintenancecanberestoredbyrepairingorreplacingthefailedsystem,andthesoftwarecanonlyberedesigned.
4.Preventivemaintenancetechniquescanbeusedforhardwaretopreventfailures,andfailurescanbediagnosedbydisconnectingfailedcomponents,whilesoftwarecannotusethesetechniques.
5.Pre-estimatereliabilitytestingandthegradualincreaseinreliabilityandothertechnologieshavedifferentmeaningsforsoftwareandhardware.
6.Inordertoimprovethereliabilityofthehardware,redundancytechnologycanbeused,andtheredundancyofthesamesoftwarecannotimprovethereliability.
7.Thehardwarereliabilityverificationmethodhasbeenestablishedandstandardized,andthereisacompletesetoftheories,whilethesoftwarereliabilityverificationmethodhasnotyetbeenestablished,letaloneacompletetheoreticalsystem.
8.Thehardwarereliabilityhasamatureproductmarket,whilethesoftwareproductmarketisstillverynew.
9.Softwareerrorsareeternalandreproducible,andsomemomentaryhardwareerrorsmaybemistakenforsoftwareerrors.
Ingeneral,softwarereliabilityismoredifficulttoguaranteethanhardwarereliability.EvenforNASA'ssoftwaresystem,itsreliabilityisstillanorderofmagnitudelowerthanhardwarereliability.