您好,欢迎访问三七文档
UniversityofOttawa,ComputerScienceTechnicalReportTR-97-071ArchitectureofaSourceCodeExplorationTool:ASoftwareEngineeringCaseStudy1TimothyC.Lethbridge&NicolasAnquetilSchoolofInformationTechnologyandEngineering(SITE)150LouisPasteur,UniversityofOttawa,Canadatcl@site.uottawa.ca,anquetil@csi.uottawa.caAbstractWediscussthedesignofasoftwaresystemthathelpssoftwareengineers(SE’s)toperformthetaskwecalljustintimecomprehension(JITC)oflargebodiesofsourcecode.WediscusstherequirementsforsuchasystemandhowtheyweregatheredbystudyingSE’satwork.WethenanalyzeourrequirementswithrespecttoothertoolsavailabletoSE’sfortheJITCtask.Next,wewalkthroughsystemdesignandtheobject-orientedanalysisprocessforoursystem,discuss-ingkeydesignissues.Someissues,suchasdealingwithmulti-partnamesandconditionalcompilationareunexpectedlycomplex.1IntroductionThegoalofourresearchistodeveloptoolstohelpsoftwareengineers(SE’s)moreeffectivelymaintainsoftware.ByanalyzingtheworkofSE’s,wehavecometotheconclusionthattheyspendaconsiderableportionoftheirtimeexplor-ingsourcecode,usingaprocessthatwecalljust-intimeprogramcomprehension.Asaresultofouranalysis,wehavedevelopedasetofrequire-mentsfortoolsthatcansupporttheSE’s.Insection2wepresentouranalysisandtherequirements;wealsoexplainwhyothertoolsdonotmeettherequirements.Insection3,wepres-entourdesignforasystemthatmeetsthere-quirements.Sincethereisnotspaceforexhaustivedesigndetails,wefocusonkeyissues1ThisworkissupportedbyNSERCandMitelCorporationandsponsoredbytheConsortiumforSoftwareEngineeringResearch(CSER).TheIBMcontactforCSERisPatrickFinnigan.thatwebelievewouldbeofinteresttootherswhoarebuildingtools.Ourmotivationsforwritingthispaperaretwofold:•Tocontributetothestateofknowledgeaboutsoftwareengineeringtoolsbypresentingre-quirementsandhowwehaveaddressedprob-lems.Webelievetherearenotenoughpapersinthepublicdomainthatpresentissuesinsoftwarearchitecture–mostsuchwritingscanonlybefoundininaccessiblesoftwaredesigndocumentation.•Toimprovethestateofresearchpracticeinthisareabyhighlightingaspectsofourre-searchthatwefeelareimportant.SuchareasincludeperformingeffectiveanalysisoftheSEs’taskbystudyingrealSE’s,andfocusingontoolsforwhichtherearedemonstrablere-quirements.2DevelopmentofRequire-mentsfortheSystemRequirementsforthetoolhavebeendeterminedbythecarefulstudyofSE’sinrealworkingenvi-ronments[10].Inthissectionwebrieflydiscusshowtherequirementswerederived.Wethenpres-entandexplainthesoftwareengineeringtaskweareaddressingandkeytoolrequirements.Finallyweexplainwhyothertoolsarenotabletofulfilltheserequirements.2.1StudyingSoftwareEngineerstoDetermineRequirementsManysoftwareengineeringtoolsaredevelopedbypeoplewhohave‘goodideas’,orbypeopleUniversityofOttawa,ComputerScienceTechnicalReportTR-97-072respondingtoparticularneedsexpressedbySE’s(perhapsthemselves).Webelieve,howeverthataproperscientificandengineeringapproachshouldinsteadstartwithdetailedobservationoftheworkpracticesofSE’s.Furthermore,asVonMayrhauserandVanspointout[15],theSE’sstudiedmustbedevelopingsignificantsoftwaresystemsinanindustrialsetting.Inourapproach,weanalyzesuchthingsasthedetailedtaskstheSE’sperform(especiallywork-aroundstheyareforcedtoperformduetolackofadequatetools)andtheconstraintsoftheirworkenvironment.ThisapproachhasmuchincommonwithVicente’scognitiveworkanalysismethodology[14].Developmentoftoolsisdrivenbythisanaly-sis;thetoolsarethenvalidatedbytestingwhethertheyactuallyimprovetheproductivityoftheworkingSE’s.WehaveusedthefollowingtechniquestostudySE’s:•GeneralinterviewsaboutSEs’process,productandtools.•Seriesofinterviewsheldeveryfewweeksforlengthyperiods,wherewediscusswhatSE’shavedonesincethelastinterview.•ObservationsessionswherewerecordwhatweobservetheSE’sdoing.•AutomaticloggingoftheSEs’useofalltoolsavailabletothem.•Sessionswherewewalkthroughtoolsfeature-by-feature.MostofourworkhastakenplaceatMitelCor-poration,althoughwehavealsoworkedwithpeopleinseveralothercompanies.Formoredetail,see[4,5,12].2.2TheSoftwareEngineeringTaskthatWeAddress:JustinTimeComprehensionofSourceCodeAlmostalltheSE’swehavestudiedspendacon-siderableproportionoftheirtotalworkingtimeinthetaskoftryingtounderstandsourcecodepriortomakingchanges.WecalltheapproachtheyuseJustinTimeComprehension(JITC)[11];thereasonforthislabelwillbeexplainedbelow.Wechoosetofocusourresearchonthistasksinceitseemstobeparticularlyimportant,yetlackinginsufficienttoolsupport.The‘changes’mentionedinthelastparagraphmaybeeitherfixestodefectsortheadditionoffeatures:Thetypeofchangeappearstobeoflittleimportancefromtheperspectiveoftheap-proachtheSE’suse.IneithercasetheSEhastoexplorethesystemwiththegoalofdeterminingwheremodificationsaretobemade.Asecondfactorthatseemstomakerelativelylittledifferencetothewaythetaskisperformedisclassofuser:Twomajorclassesofusersper-formthistask:Novicesandexperts.Novicesarenotfamiliarwiththesystemandmustlearnitatboththeconceptualanddetailedlevel;expertsknowthesystemwell,andmayhaveevenwrit-tenit,butarestillnotabletomaintainacom-plete-enoughmentalmodelofthedetails.ThemaindifferencesbetweennoviceandexpertSE’sarethat
本文标题:Architecture of a Source Code Exploration Tool A S
链接地址:https://www.777doc.com/doc-4011521 .html