..Chapter1:Whysoftwareengineering?1.Thistypeofsituationcouldbeindicativeofacrisisinthattheinadequaciesofsoftwarecontributedtothetragiclossoflife.Thefactthatthepilotreliedcompletelyonthesoftwaretoguidetheplaneturnedauserinterfaceerrorintoasevereaccident.Ingeneral,ofcourse,aviationisbetteroffbecauseofsoftwareengineeringbecausethehighreliabilityofaviationsoftwarehasmadeflyingsaferandmorecost-effective.Thesituationthatcausedtheaccidentisreallyauserinterfaceproblem.Duringdevelopment,moreuserfeedbackcouldhavebeendesignedintothesoftware(sothatthepilotmighthavebeennotifiedthathehadtypedinthecodeforBogota,notCali)andmoreusabilitytestingcouldhavebeendone(sothatthemisunderstandingmighthavesurfacedbeforethesoftwarewasinstalledintheairplane).Theotherissueisthatofsystemboundary.Althoughtheaeronauticalchartsusedbypilotsareoutsidetheboundaryofthecomputersystem,thedevelopersneedtohaveknowledgeofthemandthecodesandabbreviationstheycontain.2.Oneexampleistheprocessingandsynthesisofsensordata.Iflotsofreal-timesensordataareflowingintothesoftwaresystem,thehardpartisgettingthetimingrightsothatanaccuratepictureoftheoverallsystemisobtained.Forinstance,ifthesoftwareiscontrollingtheshapeofthewingofaplane,basedonreal-timesensordataabouttheairspeed,pressure,temperature,etc.,decisionsmustbebasedonup-to-dateinformationfromthesensors,evenwhenflyingthroughrapidlychangingconditions(likeastorm).Theactualpollingofthesensorsiseasy;therelationshipsarehard.Therelationshipsaremorecomplicatedstillwhendealingwithasynchronouschangestothewingshape.3.Errorsaremisunderstandingthatresideinthedeveloper’sthoughtprocesses.Whenthatmisunderstandingleadsthedevelopertowritesomethinginadevelopmentartifact(specification,design,code,testdata,etc.)thatisnotcorrect,thatincorrectinformationiscalledafault.Whenthefaultcausesthesoftwaretobehaveinanincorrectmannerorproduceincorrectresults,thatbehavioriscalledafailure.Anexampleofanerroriswhenadevelopermistakenlybelievesthatthediameterofacircleisthreetimesitsradius.Thiserrorcouldleadtoafaultintherequirementsdocumentifthisdeveloperwritesarequirementthatsaysthatthesystem,whengivenaradiusasinputandacommandtocomputethediameter,shouldreturnthreetimestheradius.Or,theerrorcouldleadtoafaultinthedesignifthedesignforthemoduleforconvertingradiiintodiametersincludesthefaultyformula.Or,iftheformularelatingradiusanddiameterisnotspecifiedineithertherequirementsorthedesign,afaultcouldstillbeintroducedinthecodeifthedeveloperencodeshis/hererroneousunderstandingoftheformula.Ifthefaultisintroducedintherequirementsorthedesignandpropagatestothecode,thenitmaybecomeafailureifthatpartofthecodeisexercisedandconsequentlyproducesawrongoutput.However,ifthetestdatacontainedafaultthatcausedthecodeforcomputingthediameternottobeexecutedduringtest,thenthiswouldallowafailuretooccurduringoperationaluse,whenthatcodeisexercised.4.Acountoffaultsis2misleadingmeasureofproductqualitybecausethereusuallyisnotaone-to-onecorrespondencebetweenfaultsandfailures.Ifmanyfaultsarelocatedincodethatisneverorrarelyexecuted,thentheyareunlikelytoresultinmanyfailures,whichisusuallyamorerelevantmeasureofquality.Ontheotherhand,ifjustonefaultislocatedincodethatisexercisedheavilyinregularuse,itcouldresultinnumerousfailures,andthuslow-qualitysoftware.Furthermore,neitheracountoffaultsnoracountoffailuresgivesanindicationoftheseverityoftheproblems.5.InonesmalldivisionofNASA,agroupofsoftwaredeveloperswhodevelopedsoftwaretosupportsatellitemissionsdecidedtobuildanobject-orientedlibraryofsoftwarecomponents.Itwasestimatedthatsuchalibrarywoulddrasticallyreducedevelopmenttimeinthisdivision,andwouldevenallowthephysicistsandflightdynamicsanalystsinthedivisiontoputtogethertheirownapplicationsratherthanrelyingonsoftwaredeveloperstowritetheprogramstheyneededformissionsupport.Thelibrarywasbuiltusinganarchitecturebasedonmanyyearsofexperienceinthisdomain,usingsoundsoftwareengineeringprinciples,andwastestedextensively.Thecomponentsinthelibrarywereofveryhightechnicalquality.However,thelibrarywasoflimitedvaluetoitsintendedcustomers,thephysicistsandanalysts,becausetherewerenotoolsordocumentationthatfacilitateditsuse.Usersofthelibraryhadtohaveadeepunderstandingnotonlyoftheapplicationdomain,butalsoofobjectorientationandsoftwaredevelopment,aswellasthestructureofthelibraryitself.Thus,thelibrarywasnotthesuccessitwashopedtobe.1Preview Mode
This document has 54 pages. Sign in to access the full document!
