外文翻译逆向工程过程在真实情况中的应用的分析.docx
《外文翻译逆向工程过程在真实情况中的应用的分析.docx》由会员分享,可在线阅读,更多相关《外文翻译逆向工程过程在真实情况中的应用的分析.docx(23页珍藏版)》请在冰豆网上搜索。
外文翻译逆向工程过程在真实情况中的应用的分析
AnalyzingtheApplicationofaReverseEngineeringProcesstoaRealSituation
FabioAbbattista(*),GregorioM.G.Fatone(**),FilippoLanubile(*),GiuseppeVisaggio(*)
(*)DipartimentodiInformatica,UniversityofBari,Italy
(**)BasicaS.p.A.,Potenza,Italy
Abstract
Areverseengineeringprocessmodelwasappliedandonthebasisofthedatacollected,somemodificationsweremadeaimingtoimproveitsefficacy.Theexperiencegaverisetovariousconsiderationsofinterest,firstamongthembeingtheclearinteractionbetweenthequalityoftheproductandthequalityoftheprocess.Amethodofsynergeticapplicationofstaticanddynamicanalysistoimproveunderstandingoftheprogramwasconsolidated.Theexperienceenabledmodificationstobeintroducedconnectingthereverseengineeringprocessmorecloselywiththeunderstandingoftheprogramsandinformationderivingfromtheapplicationdomain.
Finally,theproblemoftheefficacyofthetoolsusedtoobtainthereverseengineeringproductswasmadeevidentduringtheexperimentationonthefield.
1:
Introduction
Wepresentanexperienceinwhichprocessqualityandproductqualityinteractandmutuallyimproveoneanother.Theprocessisreverseengineeringwhiletheproductisthedocumentationofprogramsnecessarytoexploittheprogrambetter.Thesalientpointtobegainedfromtheexperienceare,ingeneral,themodelasitappearsafterimprovementsstemmingfromtrialonthefieldand,inparticular,themethodforintegratingstaticanddynamicanalysestoimprovetheprocess.
Thepaperdescribestheapplicationofaprocessmodeltoarealsituation.Thescenarioisasetofprogramswiththefollowingcharacteristics:
language:
COBOL
operatingsystem:
BS2000
totalno.ofprograms:
653
no.ofon-lineprograms:
348
no.ofbatchprograms:
305
no.offiles:
70
no.ofdata:
9000
no.ofInstructions:
900000
2:
Thereverseengineeringprocess
Ourreverseengineeringprocesshadtwomainobjectives:
(1)toincreasetheeaseofmaintenanceofthesoftwaresystem,and
(2)toimproveitsusabilitybythefinalusersandtheeaseofknowledgetransferamongdifferentusers[5].
Thefirstinvolvedreconstructionoftheprojectdesigndocumentationandrestorationofthemostdegradedartswhilethesecondrequiredreconstructionoftheuserdocumentationandthedataconceptualmodel.Thiselpsuserstounderstandtheirowninformationsystemetterfromthepointofviewofthedataprocessed[4],[6].
Figure1showstheprocessmodel,whichisbrieflydescribedunderneath.Furtherdetailsmaybeobtainedfrom[10].
1.InventorySoftwareSystem.Thefollowingcrossreferencesareextractedfromthe
oldsoftwaresystem:
calldependenceX-ref,copybookX-ref,andfileaccessX-ref.
2.ReconstructLogicalLevelofData.Fromthedatadescription,thehierarchicalstructureconstitutingthelogicaldatamodelisreconstructed.Thealiasesarerecognizableentitiesintheapplicationdomain.Figure2showsarecorddeclaration,asinputtothephase,andtherelativehierarchicaldiagram,asoutputfromthephase.Thearrowsrepresentthehierarchicalrelationshipsbetweenthesubstructuresintherecord;elementarydataarenotshown.Thedataareclassifiedasapplicationdomaindata,controldata,andstructuraldata.Applicationdomaindataaretheattributesofrecognizableentitiesintheapplicationdomain.Forexample,thefieldnamedMT02-02representingthe"amount"isalsoanattributeofMORTGAGEandisthereforerecognizableintheapplicationdomain.Controldatahavenocorrespondencewiththeapplicationdomainbutareusedtorecordtheoccurrenceofaneventduringtheexecutionofaprogram,sothatotherprogramscanadaptaccordingly;flagsvalidatedbyoneprogramandusedbyothers,asynchronously,todeterminetheirbehavioraccordingtotheprevioushistoryofthesoftwaresystem,aretypicalexamplesofcontroldata.Forexample,thefieldMT02-33ispresettoindicatetheexistenceofanagreementfortakingoutthemortgage,whichmustformthebasisofthevariationininterestratetobeappliedwhencalculatingtheinstalment;itisatypicalexampleofcontroldata.Structuraldataaredatanecessaryformanagingtheorganizationofdatabasesorfiles.ThefieldMT01-05isatypicalexampleofstructuraldata,becauseitidentifiestherecordtypeinsidetheMORTGAGEfile.
3.AbstractData.Allthedataintheapplicationdomainwhichbelongtothelogicalmodelandarenotdeadareassociatedwiththecorrespondingmeaningfulconceptfortheapplicationdomain[1].
4.AnalysisofExistingInformation.Thisactivityinvolvesidentifyingtheexpectedfunctionsintheprogrambeingreversedusingtwotypesofinformation.
Thefirstisstaticknowledge,i.e.theinternalandexternaldocumentationoftherulesgoverningtheapplicationdomainofthefunction.Thesecondisdynamic,derivedfromtheexperienceoftheprogrammersanduserswhointeractwiththeworkingprograms.
Figure2.Inputandoutputof"ReconstructLogicalLevelofData"phase
Figure3.Equivalencetestofthesystembeforeandafterreverseengineering
5.ReconstructLogicalLevelofPrograms.EachprogramisassociatedwithastructurechartinwhicheachmodulecorrespondstoaSECTIONoranexternalsubroutineoftheprogram.Inthisphase,bothdeaddataanddeadinstructionsareidentified.Thesearedatanotusedbytheprogramandinstructionswhichcannotberun,respectively.Theformerarecommunicatedtothe"AbstractData"activitywhilethelatterareerasedfromthestructurechart,whichthusconstitutesthelogicalmodelofthefunctions.
6.RestoreLogicalModel.Restorationinvolvesintroducingchangestoimprovethestructureoftheprogramsandmakethemeasiertomaintain,withoutcausingrepercussionsonthedataorinterfaceswithothersystems.Someexamplesofmodificationsarerenamingofvariables,makingtheiridentifiersmoremeaningful;extractingmoduleswithhighinternalcohesionfromthosewithlowcohesionandisolatingtheminthestructure([7],[8],[12],[13]);externalizingmoduleswhich,inthepresentprocess,areinlinewiththemain;localizingvariablesdeclaredtobeglobalbutusedlocallyinbothexistingmodulesandinprocessesextractedduringrestoration.Executionoftheseactivitiesisfacilitatedbytheexpectedfunctionsderivedfromthephaseofanalysisofexistinginformation.Infact,thankstothisknowledge,theoperatorscanextractthefunctionsfromthemodulespresentinthelogicalmodel.Thismakesthelogicalmodelmorereadableanditsmoduleslesscomplex.
7.AbstractFunctions.Thefunctionsabstractedduringrestorationaredocumented.Theaimofeachfunctionisdescribedintextualform.Therelationshipsbetweenfunctionsarealsodocumentedbymeansofdataflowdiagrams.Thelatter,togetherwiththedescriptionofeachfunction,constitutetheconceptualmodel[9].
Thereverseengineeringprocessisnotsymmetricalbecausetheprogramsarerestoredwhilethedataarenot,becauseanyinterferencewiththelatterwouldaffecttheproceduresandmakethewholerestorationprocessveryexpensive.Infact,restorationoftheprogramsisconfinedtotheinstructionsofeachsingleprogram,amuchsimplerandmoreeconomicalprocess.
Thereverseengineeringprocessdescribedmodifiescode,sothatitisnecessarytoverifythattheworkingprogramsareequivalenttothoseproducedbytheprocess.Atestprocessisusedand,astheonlyreliablecomponentintheworkingsystemisthecodeinquestion,itisonlypossibletotesttheequivalencebetweentheactualandthereversedprogram.Testcasesobtainedduringnormalworkingoftheactualsystemareused.TheequivalencetestismodeledinFigure3.
3:
Operativeresults
Theplannedprocesswasputinproductioninthescenariodescribedearlierandafterseventeencalendarmonthsofworkonaproductionline,thefirstresultswereobtained.
Itshouldbenotedthataproductionlinereferstoanorganizationalunitwhichhasalltheresourcesrequiredforexecutingtheprocessautonomously.Inthiscase,theproductionlineiscomposedofeightreverseoperatorsandonereverseengineer.Theformerexecutethe
proceduresaccordingtothedefinedprocessmodelswhilethelattercoordinatesactivitiesandtakesallthedecisionsnecessaryforsolvingallindeterminatepointsintheexecutionprocedures.Theproductionlinesharesanexpertintheapplicationdomainwithotherorganizationalunitsinthecompany.
Thesefirstoperativeresultscanbeanalyzedfromthepointofviewofbothefficiencyandefficacy.Althoughefficiencywasnotthemainaimofthiswork,thedataontheactivitiesforreverseengineeringoftheprogramsandofthedataaresummarizedinTablesIandII,respectively.Twoimportantconsiderationscanbemade.
Theproductivityoftheoperatorsforreverseengineeringtheprogramsiscorrelatedwiththeirexperienceintheapplicationdomain;thisexplainsthedifferencesseeninTableI.Inreverseengineeringthedata,thedifferenceinproductivityhaslesscorrelationwithexperiencebecausethereisverylittleautomationoftheactivitiesandsothemantimerequiredisveryhighinanycase.
Thesecondpointisthatcommerciallyavailabletoolsareofteninadequateforlargeprojects.Forexample,thetoolusedinextractingthedatastructurebecomesunacceptablyslowwhenaccesstopreviouslyinsertedinformationisrequired,ifthedataaremorethanathousandorifaccessistoanentitywithmorethanonehundredattributes.Thetoolusedfortheprograms,ontheotherhand,showsanabruptdropinperformance(answerstoquestionsondataandcontrolflowslowdown)assoonasthethresholdof80