外文翻译逆向工程过程在真实情况中的应用的分析Word下载.docx
《外文翻译逆向工程过程在真实情况中的应用的分析Word下载.docx》由会员分享,可在线阅读,更多相关《外文翻译逆向工程过程在真实情况中的应用的分析Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
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