USF Libraries
USF Digital Collections

IVCon

MISSING IMAGE

Material Information

Title:
IVCon a GUI-based tool for visualizing and modularizing crosscutting concerns
Physical Description:
Book
Language:
English
Creator:
Saigal, Nalin
Publisher:
University of South Florida
Place of Publication:
Tampa, Fla
Publication Date:

Subjects

Subjects / Keywords:
Software engineering
Code maintenance
Aspects
Code refactoring
Code isolation
Dissertations, Academic -- Computer Science -- Masters -- USF   ( lcsh )
Genre:
non-fiction   ( marcgt )

Notes

Abstract:
ABSTRACT: Code modularization provides benefits throughout the software life cycle; however, the presence of crosscutting concerns (CCCs) in software hinders its complete modularization. This thesis describes IVCon, a GUI-based tool that provides a novel approach to modularization of CCCs. IVCon enables users to create, examine, and modify their code in two different views, the woven view and the unwoven view. The woven view displays program code in colors that indicate which CCCs various code segments implement. The unwoven view displays code in two panels, one showing the core of the program and the other showing all the code implementing each concern in an isolated module. IVCon aims to provide an easy-to-use interface for conveniently creating, examining, and modifying code in, and translating between, the woven and unwoven views.
Thesis:
Thesis (M.S.C.S.)--University of South Florida, 2009.
Bibliography:
Includes bibliographical references.
System Details:
Mode of access: World Wide Web.
System Details:
System requirements: World Wide Web browser and PDF reader.
Statement of Responsibility:
by Nalin Saigal.
General Note:
Title from PDF of title page.
General Note:
Document formatted into pages; contains 29 pages.

Record Information

Source Institution:
University of South Florida Library
Holding Location:
University of South Florida
Rights Management:
All applicable rights reserved by the source institution and holding location.
Resource Identifier:
aleph - 002063763
oclc - 557091772
usfldc doi - E14-SFE0003009
usfldc handle - e14.3009
System ID:
SFS0027326:00001


This item is only available as the following downloads:


Full Text
xml version 1.0 encoding UTF-8 standalone no
record xmlns http:www.loc.govMARC21slim xmlns:xsi http:www.w3.org2001XMLSchema-instance xsi:schemaLocation http:www.loc.govstandardsmarcxmlschemaMARC21slim.xsd
leader nam 2200385Ka 4500
controlfield tag 001 002063763
005 20100317091023.0
007 cr mnu|||uuuuu
008 100317s2009 flu s 000 0 eng d
datafield ind1 8 ind2 024
subfield code a E14-SFE0003009
035
(OCoLC)557091772
040
FHM
c FHM
049
FHMM
090
QA76 (Online)
1 100
Saigal, Nalin.
0 245
IVCon :
b a GUI-based tool for visualizing and modularizing crosscutting concerns
h [electronic resource] /
by Nalin Saigal.
260
[Tampa, Fla] :
University of South Florida,
2009.
500
Title from PDF of title page.
Document formatted into pages; contains 29 pages.
502
Thesis (M.S.C.S.)--University of South Florida, 2009.
504
Includes bibliographical references.
516
Text (Electronic thesis) in PDF format.
3 520
ABSTRACT: Code modularization provides benefits throughout the software life cycle; however, the presence of crosscutting concerns (CCCs) in software hinders its complete modularization. This thesis describes IVCon, a GUI-based tool that provides a novel approach to modularization of CCCs. IVCon enables users to create, examine, and modify their code in two different views, the woven view and the unwoven view. The woven view displays program code in colors that indicate which CCCs various code segments implement. The unwoven view displays code in two panels, one showing the core of the program and the other showing all the code implementing each concern in an isolated module. IVCon aims to provide an easy-to-use interface for conveniently creating, examining, and modifying code in, and translating between, the woven and unwoven views.
538
Mode of access: World Wide Web.
System requirements: World Wide Web browser and PDF reader.
590
Advisor: Jay Ligatti, Ph.D.
653
Software engineering
Code maintenance
Aspects
Code refactoring
Code isolation
690
Dissertations, Academic
z USF
x Computer Science
Masters.
773
t USF Electronic Theses and Dissertations.
4 856
u http://digital.lib.usf.edu/?e14.3009



PAGE 1

IVCon:AGUI-basedToolforVisualizingandModularizingCrosscuttingConcernsbyNalinSaigalAthesissubmittedinpartialfulllmentoftherequirementsforthedegreeofMasterofScienceinComputerScienceDepartmentofComputerScienceandEngineeringCollegeofEngineeringUniversityofSouthFloridaMajorProfessor:JayLigatti,Ph.D.AdrianaIamnitchi,Ph.D.DeweyRundus,Ph.D.DateofApproval:April10,2009Keywords:Softwareengineering,Codemaintenance,Aspects,Coderefactoring,CodeisolationcCopyright2009,NalinSaigal

PAGE 2

ACKNOWLEDGEMENTSThisprojectisjointworkwithDr.JayLigatti,andIamextremelygratefultohimforhisinspirationalguidancethrougheverystageoftheproject.ThisthesisderivesfromanearliertechnicalreporttitledDeningandVisualizingMany-to-manyRelationshipsBetweenConcernsandCode"[1].IwouldalsoliketoacknowledgetheNationalScienceFoundationasmyresearchwassupportedbythemunderGrantNo.CNS-0742736.

PAGE 3

TABLEOFCONTENTSLISTOFTABLESiiLISTOFFIGURESiiiABSTRACTivCHAPTER1INTRODUCTIONANDRELATEDWORK11.1RelatedWork31.1.1Aspect-visualizationTools31.1.2Aspect-orientedProgrammingLanguages51.1.3Feature-orientedProgramming61.2Contributions71.3ThesisOrganization8CHAPTER2USERINTERFACE92.1WovenView92.2UnwovenView102.3DisplayofMulti-concernCode14CHAPTER3IMPLEMENTATION163.1DataStructures163.2TranslationAlgorithms173.2.1Unweaving173.2.2Weaving18CHAPTER4PERFORMANCEEVALUATION20CHAPTER5CONCLUSIONS255.1Summary255.2FutureWork25REFERENCES27i

PAGE 4

LISTOFTABLESTable4.1Test-lecharacteristics20Table4.2Performanceopeningles21Table4.3Performancesavingles21Table4.4Performanceweavingcode22Table4.5Performanceunweavingcode22Table4.6Performanceassigningcodetoaconcern23Table4.7Performanceeditingaconcerncolor23Table4.8Performanceremovingaconcern24ii

PAGE 5

LISTOFFIGURESFigure1.1Samplecodedemonstratingthemotivationbehindtoken-levelgranularity2Figure2.1IVCon'swovenviewofthesamecodeshowninFigure2.210Figure2.2IVCon'sunwovenviewofthesamecodeshowninFigure2.111Figure2.3Concern-moduleformattinginIVCon12Figure2.4UnwovenviewofthecodeinFigure2.513Figure2.5WovenviewofthecodeinFigure2.414iii

PAGE 6

IVCon:AGUI-basedToolforVisualizingandModularizingCrosscuttingConcernsNalinSaigalABSTRACTCodemodularizationprovidesbenetsthroughoutthesoftwarelifecycle;however,thepresenceofcrosscuttingconcernsCCCsinsoftwarehindersitscompletemodularization.ThisthesisdescribesIVCon,aGUI-basedtoolthatprovidesanovelapproachtomodularizationofCCCs.IVConenablesuserstocreate,examine,andmodifytheircodeintwodierentviews,thewovenviewandtheunwovenview.ThewovenviewdisplaysprogramcodeincolorsthatindicatewhichCCCsvariouscodesegmentsimplement.Theunwovenviewdisplayscodeintwopanels,oneshowingthecoreoftheprogramandtheothershowingallthecodeimplementingeachconcerninanisolatedmodule.IVConaimstoprovideaneasy-to-useinterfaceforconvenientlycreating,examining,andmodifyingcodein,andtranslatingbetween,thewovenandunwovenviews.iv

PAGE 7

CHAPTER1INTRODUCTIONANDRELATEDWORKCodemodularizationprovidesmanysoftwareengineeringbenets;itmakescodeeasiertowrite,understand,andmaintain.Conventionally,softwareengineerstrytoseparatecodesegmentsthatareorthogonalintheirfunctionalityintodistinctmodules.However,inpractice,softwaredoesnotdecomposeneatlyintomoduleswithdistinct,orthogonalfunctionality.Forexample,codethatdisplaysapopupwindownotifyingusersaboutafailedloginattemptmaybepresentinaloginmodule,whilepartiallyimplementingvariousotherfunctionalconcernssuchassecurity,GUI,andauthentication;itmaybeequallyreasonableforthewindow-popupcodetobelocatedinasecurity,GUI,orauthenticationmodule,andatvarioustimesitmaybemoreconvenienttowrite,view,oreditthewindow-popupcodeinthecontextoftheseothermodules.Tarretal.callthisproblemthetyrannyofthedominantdecomposition"[2].Althoughitisusefultomodularizethesamecodesegmentinvariouswaysthroughoutthesoftwarelifecycle,currentprogrammingparadigmsonlyallowmodularizationinxedandlimitedwayse.g.,intofunctionsandobjects.Conversely,functionalconcernsofsoftwaretypicallyrequiremanylinesofcodetoimple-ment,andthatcodeisusuallyscatteredthroughoutseveralmodules.Forexample,codeimple-mentingasecurityconcernmaybescatteredthroughoutlogin,logout,andnetwork-socketmod-ules.Thus,codesegmentsimplementingafunctionalconcernmaycrosscutthroughotherfunc-tionalconcernsoftheprogram;suchcodesegmentsimplementcrosscuttingconcernsCCCs.ModularizingaCCCinvolvescollectinganddisplayinginoneplaceallthescatteredcodeimple-mentingthatCCC.Isolatingconcerncodeinthiswaybenetsprogrammersbecauseitrelievesthemfromhavingtobrowsethroughthewholeprogramtond,study,orupdateasinglesoftwareconcern.Forexample,updatingsecuritycodescatteredthroughoutanapplicationismuchmoredicultthanupdatinganisolatedsecuritymodule.1

PAGE 8

JOptionPane.showMessageDialogmainWindow.frame,"Welcome"+userName+".Currenttimeis"+formatSystem.currentTimeMillis,"Welcome",JOptionPane.INFORMATIONMESSAGE;Figure1.1.Samplecodedemonstratingthemotivationbehindtoken-levelgranularityThisthesisdescribesIVCon,aGUI-basedtoolthatprovidesanovelapproachtomodular-izationofCCCs.IVConuserscanswitchbackandforthbetweentwoequivalentviewsoftheircode,thewovenviewandtheunwovenview.Thewovenviewdisplaysprogramcodeincolorsthatindicatewhichconcernsvariouscodesegmentsimplementbasedonusers'explicitassign-mentsofthosecodesegmentstoconcerns.Theunwovenviewdisplayscodeintwopanels,oneshowingthecoreoftheprogrami.e.,allcodenotassignedtoanyconcernandtheothershowingallthemodularizedconcerns,eachdisplayedinisolation.Userscancreate,examine,andmodifycodeinbothviews.Theprocessofextractingconcernsfromthemaincodetoproducetheunwovenviewiscalledunweaving,whereastheprocessofinliningconcernsintothecoreprogramtoproducethewovenviewiscalledweaving.Althoughwehaveimplemented,andthispaperdiscusses,IVConinaJavaenvironment,webelievetheprinciplesunderlyingIVConapplytosoftwareinanylanguage.IVConpermitsmany-to-manyrelationshipsbetweenconcernsandcode.Thatis,userscanassignscatteredcodesegmentstothesameconcernbutcanalsoassignasinglecodesegmenttomultipleconcerns.Wecallcodethathasbeenassignedtomultipleconcernsmulti-concerncode.Inaddition,IVConenforcestoken-levelgranularityinconcernassignment;codeassignedtoaconcernmustbeginatthebeginningofasource-languagetokenandendattheendofasource-languagetoken.Allowingnergranularityinconcernassignmente.g.,character-levelgranularitywouldbeinappropriatebecausetokensarethecoresemanticunitsofprogramminglanguagesandofconcernsimplementedinthoselanguages.Ontheotherhand,requiringcoarsergranularityinconcernassignmente.g.,line-levelgranularitywouldbeinappropriateaswell.Forexample,considerthecodeinFigure1.1.Token-levelgranularityenablesassignmentofjusttheSystem.currentTimeMilliscodesegmenttoaSystemCallconcern,whilecoarserconcern-assignmentgranularities,suchasline-orstatement-levelgranularity,lacktheprecisionneededforsuchaconcernassignment.Withtoken-levelgranularity,ausercouldevenassign2

PAGE 9

justthemethodnamecurrentTimeMillistotheSystemCallconcern.Weconsidertoken-levelgranularitytobetheperfectbalanceforassigningcodetoconcerns.ConcernassignmentsinIVConcanalsobethoughtofaslabelsthatdocumentthefunction-ality,orothergrouping,ofcodesegments.Inthissense,IVConservesasacode-documentationtool,withthebenetthatsoftwareengineerscanviewandedit,inonemodule,allthecodedocumentedasbeingrelevanttoanyconcern.1.1RelatedWorkThemostcloselyrelatedbodyofresearchisinthedomainofAspectOrientedProgram-ming[3];likeIVCon,AOPstrivestoeasethespecicationandmanipulationofCCCsinsoftware.AOPlanguagesAOPLssuchasAspectJ[4]andAspectC[5]deneanewunitofmodularization,theaspect,whichisacombinationofadvicecodethatimplementsaCCCandjoinpointspointsinaprogram'scontrolowwhereadvicegetsexecuted.Acompleteaspect-orientedprogramconsistsofacoreprogramandaspects,andAOPLcompilerstypicallyweaveadvicefromuser-denedaspectsintothecoreprogramatthejoinpointsspeciedbythoseas-pects.Roughlyspeaking,then,IVCon'sunwovenviewcorrespondstoanaspect-orientedviewofaprogram,ascodeimplementingCCCsappearinisolated,aspect-likemodules.However,unlikestandardAOPtools,IVConprovidesbothwovenandunwovenviewsofsoftware,2allowsmulti-concerncode,enforcestoken-levelgranularityinconcerncode,andappliesanovelGUIdesigntoaidconcernvisualizatione.g.,asexplainedinSection2.2,whenauserclicksonconcerncodeintheunwovenview,IVCondisplaysthecore-programcontextinwhichthatconcerncodeappears.Ontheotherhand,IVConisabletoprovidesomeofthesefeaturesonlybecauseitdisallowsjoinpointscalledregionsinIVConfrombeingspeciedindirectlyi.e.,aspointcuts,whichnormalAOPLsdoallow.1.1.1Aspect-visualizationToolsTurningourattentiontospecicexistingAOPtoolsrelatedtoIVCon,AspectBrowseralsoprovidesaGUIforviewingCCCs[6,7].InAspectBrowser,usersspecifyCCCsintheformofregularexpressionsoversource-codecharactersandassignacolortoeachCCC.Aspect-3

PAGE 10

Browserthensearchesforallinstancesoftheregularexpressionsintheprogramanddisplaysahigh-levelprogrammapthatusesconcerncolorstoindicatewhichlinescontainwhichCCCs.WhenaprogramlinecontainsmorethanoneCCC,AspectBrowsercolorsthecorrespondingmaplinered.Also,AspectBrowseruserscanzoomwithinthemaptoobtainamoredetailedviewandcanclickoncoloredlinestoviewthatline'sCCCanditscontexti.e.,thecorecodesurroundingtheCCC.AlthoughAspectBrowserallowsmany-to-manyrelationshipsbetweenconcernsandcode,itlackssupportforviewingandeditingconcerncodeinisolation.Also,AspectBrowserallowscharacter-levelgranularityinconcernassignments.TheVisualiser[8]isaplugintotheEclipse[9]platformthathelpsAspectJprogrammersvisualizejoinpointsintheirprogramsusingahigh-levelprogrammap.Afterassigningcolorstoexistingaspects,theVisualiserperformsstaticanalysistogenerateaprogrammapsimilartothatofAspectBrowser.IntheVisualisermap,coloredlinesrepresentthelocationsofjoinpoints,andifmultipleaspectsshareajoinpointthentheVisualisersplitsthatlineintothecolorsofthoseaspects.Forsimplicity,IVCondoesnotbuildahigh-levelprogrammap,thoughitdoesusecolorstoindicatewhichcodeimplementswhichconcerns.Also,althoughIVConautomaticallyperformsthecodemodularizationthatVisualiserusersmustperformthemselvesbywritingaspectsinAspectJ,concernsthatareimplementedinAspectJandusedwiththeVisualisercanmakeuseofAspectJ'srichjoinpointlanguage.DuetoitsrelianceonAspectJ,though,theVisualiserinheritsAspectJ'slimitationsofone-to-manyrelationshipsbetweenconcernsandcodeAspectJdoesnotsupportmulti-concerncodeandstatement-levelgranularityinconcernassignments.Aspect-jEdit[10]plugsintothejEdit[11]texteditorand,likeIVCon,allowsuserstoviewandeditconcerncodeinthecontextofthecoreprogram.AlsolikeIVCon,Aspect-jEditusersassigncodetoconcernsbyhighlightingcodeandexplicitlyassigningittothesingleconcernitimplements,anduserscanassignsyntacticallydierentcodesegmentstothesameconcern.Eachaspecti.e.,concerninAspect-jEditisassociatedwithacolor,andonassigningcodetoanaspect,thatcode'sbackgroundcolorchangestomatchitsaspectcolor.Aspect-jEdituserscanhideoneormoreaspectsandviewaspectsinisolation.Aspect-jEditimplementsaone-to-manyrelationshipbetweenconcernsandcodeitdoesnotsupportmulti-concerncodeand4

PAGE 11

assumesline-levelgranularityinconcernassignment.Also,Aspect-jEditdisplayssyntacticallyequaladvicemultipletimesinanaspect,asopposedtoIVCon'suseofsubconcernsdescribedinSection2.2;consequently,Aspect-jEdituserscannotmodifyallidenticalconcerncodeatonceinacentralconcernmodulecf.Section2.2.1.1.2Aspect-orientedProgrammingLanguagesHyper/JisaJava-basedAOPLthatintroducestheconceptofahyperspace,animaginaryspaceconsistingofmultipledimensionsofconcerns[12].Eachdimension,oraxis,inthehy-perspacegroupsconcerns,whileeachcoordinateonanaxiscorrespondstoasingleconcern.Hence,acodesegment'spositioninthehyperspaceindicateswhichconcernsitimplementsoneconcernperaxisinthehyperspace.TobuildsoftwarewithHyper/J,userscreateasetoftextles,andbywritingtheselesappropriately,userscanspecifythesetoffeaturestoincludeinaprogram.Hyper/Jallowsuserstodeneamany-to-manyrelationshipbetweenconcernsandcode;however,concernsinHyper/Jaredenedcoarselyatthegranularityofdeclarationse.g.,methods,functions,variables,andclasses.Ifalldeclarationsinaprogramareassignedtoatleastoneconcern,thenaHyper/Jusercanviewanyconcerncinthatprograminisolation,butdoingsoinvolvesmodifyingatextualconcern-mappingletospecifythatonlycshouldbedisplayedi.e.,includedintheprogram.TheC4toolkitprovidesanaspect-orientedapproachtosystem-levelprogramming[13].AswithIVCon,C4userscanexamineprogramsin,andtranslatebetween,twocodeviews.InC4,theseviewsarecalledtheAspectCviewinwhichusersdeneaspectsinAspectCandtheC4viewinwhichusersviewadviceinlinedintotheprogramcode;theseareanalogoustoIVCon'sunwovenandwovenviews.TheC4toolkitdoesnotprovideaGUIforvisualizingconcerncode,andbecauseC4takesadvantageofAspectC'saspect-denitionlanguage,itinheritsAspectC'slackofsupportformulti-concerncodeandAspectC'sstatement-levelgranularityinconcerncode.Finally,wenotethatalthoughIVConisrelatedtoAOPLsduetoitsemphasisonmodu-larizingandrefactoringconcerncode,IVConcouldnotbeconsideredanAOPLtoolaccord-ingtoFilmanandFriedman'sdenitionofAOPLs[14].FilmanandFriedmanspecifytwo5

PAGE 12

necessarypropertiesofAOPLs,obliviousnessandquantication.IVCon'swovenviewisnotobliviousbecauseitrequiresaprogrammertodocumentconcernsdirectlyinthebodyofthecode.Also,IVCondoesnotsatisfythequanticationconditionbecauseitdoesnotletusersdenejoinpointsi.e.,IVConregionsasconditionsontheprogram'scontrolow.AllowingIVConuserstodenejoinpointsasconditionsoncontrolowcouldleadtoambiguousorderofexecutionwhenweavingconcerncodeintothecore;disambiguatingconcern-codeexecutionorderingwouldrequiresomemechanismforspecifyingconcern-codeprecedence,whichwouldcomplicateIVCon'sdesign.Nonetheless,IVCon'slackofobliviousnessandquanticationdoesnotnecessarilypreventitfrombeingusedasabasisforstandardAOPtechnologies,giventhatpreviousworkhasshownhowtoprovablybuildanobliviousandquantiedAOPLontopofanunobliviousandunquantiedaspectlanguage[15].1.1.3Feature-orientedProgrammingCIDEColoredIntegratedDevelopmentEnvironment[16,17]isaGUI-basedtoolforfeature-orientedprogrammingthatwasdevelopedconcurrentlywithIVCon.CIDEhasmanysimilaritieswithbothHyper/JandIVCon:aswithHyper/J,CIDEuserscanbuildprogramsbyselectingthesetsoffeatureswhichareanalogoustoCCCsinHyper/JandIVContoin-cludeinthoseprograms;aswithIVCon,CIDEuserscanhighlightcodetoassignittofeaturesbeingimplemented,candenemany-to-manyrelationshipsbetweenfeaturesandcode,canas-signcolorstofeatures,andcanviewcodecoloredtoreectthefeaturesbeingimplemented.However,thereareatleastfourimportant,high-leveldierencesbetweenCIDEandIVCon:1.CIDEdisplayscodeassignedtoafeaturefasblacktextonthebackgroundcoloroff.Forcodethatimplementsmultiplefeatures,CIDEdisplaysabackgroundcolorequaltothechromaticblendingofthecolorsofallfeaturesbeingimplemented.Thisdesignreliesonauser'sabilitytodecomposeanydisplayedbackgroundcolorbintothefeaturecolorsthatcombinedtoproduceb,achallengingtaskwhenmanyfeaturecolorsexistsomeofwhichmayevenbesimilartocombinationsofotherfeaturecolors.IVConattemptstoavoidthisproblembydisplayingallmulti-concerncodeinadistinctivebutuniformmanner;6

PAGE 13

usersdetermineexactlywhichconcernsmulti-concerncodeimplementsbylookinginaconcerns-at-current-positionpanelasdescribedinSection2.1.2.ThegranularityoffeatureassignmentinCIDEiscoarserthanthegranularityofconcernassignmentinIVCon.CIDEallowsuserstoassignconcernsatthegrammaticallevelofnodesinabstractsyntaxtreesASTs,ratherthanatthelexicalleveloftokens.3.BecauseCIDErequiresthatanysetoffeaturescanbecomposedtocreatealegalprogram,CIDEuserscanonlyassigncodesegmentstofeatureswhenthosesegmentsareoptionalaccordingtothelanguage'ssyntax.IVConlacksthiscomposeabilityrequirement,soitismuchlessrestrictive;concerncodeinIVConmustonlybelexicallyvalid.4.Byspecifyingaprogramtocontainexactlyonefeature,CIDEuserscanviewthatonefeatureisolatedfromtheothersbutnotisolatedfromthecoreprogramcode.However,aswithAspect-jEdit,CIDEdisplayssyntacticallyequalcodeimplementingthesamefeaturemultipletimes,asopposedtoIVCon'suseofsubconcernscf.Section2.2.Hence,CIDEuserscannotmodifyallidenticalfeaturecodeatonceinacentralmodule.Themostsignicantofthesedierencesarenumbers3and4,whichariseoutofthesubtlydierentobjectivesofCIDEandIVCon:CIDEandrelatedtechnologiessuchasSoftwarePlans[18]focusesonconstructingsoftwareasasetoffeatures,whileIVConfocusesonviewingandmodifyingCCCsinisolationaswellasintheregular,wovenviewofthecode.1.2ContributionsAsaconcern-visualizationand-managementtool,IVConcontributesfeaturesbeyondthoseofexistingtools.Mostoftheexistingresearchonconcernmanagementrestrictsuserstodeningone-to-manyrelationshipsbetweenconcernsandcode,whileothertoolsdoallowmany-to-manyrelationshipsbuthaveline-,statement-,orcharacter-levelgranularityinconcernassignmentandlackIVCon'ssupportforconvenientlymodularizingandisolatingconcerncode.Hence,thispapercontributesatooldesignandimplementationthatdoesallofthefollowing:1.Allowsmany-to-manyrelationshipsbetweenconcernsandcode7

PAGE 14

2.Enforcestoken-levelgranularityinconcernassignment3.Enablesprogrammerstoconvenientlytranslatebetweenwovenandunwovencodeviews4.ProvidesaGUIforvisualizingandmodularizingconcernsinsoftwareByprovidingallthesefeatures,IVConuserscanexiblycreate,examine,andupdatecodein,andtranslatebetween,wovenandunwovenviewsofsoftware.1.3ThesisOrganizationTherestofthisthesisisorganizedasfollows.Chapter2describesIVCon'sGUI,Chapter3discussesourimplementation,Chapter4evaluatestheperformanceofourimplementation,andChapter5concludes.8

PAGE 15

CHAPTER2USERINTERFACEIVCondisplayscodeintwodierentbutequivalentforms:thewovenviewFigure2.1andtheunwovenviewFigure2.2.Userscantranslatetheircodebetweenthetwoviewssimplybyselectingtheweaveorunweavemenuoptions,orbypressingor.2.1WovenViewInthewovenview,showninFigure2.1,userscanwritecodeastheynormallywouldinastandardtexteditorordevelopmentenvironment.Inaddition,userscandeneconcerns,associateacolorwitheachconcern,andhighlightandexplicitlyassigncodesegmentstocon-cernsbyright-clickinghighlightedcodeandselectingtheconcerntowhichtoassignit.Uponassigningacodesegmenttoaconcern,IVConrecolorstheassignedcodetomatchtheconcernitimplements.IVCondisplayscodeassignedtomultipleconcernsinwhitetextonadarkbackground,thoughusersarefreetochangethismulti-concernbackgroundcolor.Byhighlightingacontiguouscodesegmentandassigningittoaconcern,auserdenesaregioninthecode.Everyregionstartsatthebeginningofcodeassignedtoaconcernandextendsasfarasthecodedoesthatimplementsthatconcern.Multipleconcernscansharethesameregionifcodeimplementingthoseconcernsbeginsandendsatexactlythesamepositionsintheprogramle.AlthoughIVConrequiresauser-speciednameforeveryuniqueregionauserdenes,italwaysprovidesadefaultnameforregionsbasedonthenameoftheconcerntowhichtheregionisbeingassigned.Ifapreviouslydenedregiongetsassignedtoanewconcern,IVConsimplyreusestheexistingregionname.Specifyingnamesforregionshelpsusersunderstandwheresubconcernsareimplemented,asdiscussedinSection2.2.Figure2.1showsthewoven-viewwindowdividedintothreepanels:concernslegend,wovenbody,andconcernsatcurrentposition.9

PAGE 16

Figure2.1.IVCon'swovenviewofthesamecodeshowninFigure2.21.Theconcerns-legendpanellistsalltheuser-denedconcernsinthecurrentle.IVCondisplaysthenameofeachconcerninthecolorassociatedwiththatconcern.2.Thewoven-bodypanelcontainsusercodedisplayedincolorsthatindicateconcernas-signments.3.Theconcerns-at-current-positionpanelliststheconcernsimplementedbythecodeatthecurrentcursorposition.Apartfromcreatingandmodifyingcode,deningconcerns,andassigningcodetoconcerns,userscaneditconcernnames,editconcerncolors,removeconcerns,de-assigncodefromcon-cerns,changethemulti-concernbackground,renameregions,andopen,save,andcloselesinthewovenview.2.2UnwovenViewTheunwovenview,showninFigure2.2,displaystheprogramcoreandeachconcerninisolation.Theunwoven-viewwindowisthesameasthewoven-viewwindow,exceptthattheunwoven-viewdividesthewoven-bodypanelintotwosubpanels:unwovenbodyandunwovenconcerns.10

PAGE 17

Figure2.2.IVCon'sunwovenviewofthesamecodeshowninFigure2.11.Theunwoven-bodypaneldisplaysthecoreoftheprogram.Codethathasbeenassignedtooneormoreconcernsisextractedintotheunwoven-concernspanelandreplacedbyholes2ofthesamecolorastheextractedcode.Thus,holesindicateextractedconcerncode.2.Theunwoven-concernspaneldisplaysinisolationeachoftheprogram'sconcernsasextractedfromtheunwovenbody.Eachconcernisdividedintosubconcerns,whicharesyntacticallydierentcodesegmentsassignedtothesameconcern.IVCondisplayssubconcernsintwoparts:alistoftheregionsinwhichthesubconcernappearsandthenthesubconcerncodeitself.Forexample,theunwoven-concernspanelinFigure2.2displaysthesecurityandauditconcernsintheformatshowninFigure2.3.Onclickingany11

PAGE 18

Figure2.3.Concern-moduleformattinginIVConregionnameintheunwoven-concernspanel,IVConautomaticallyfocusestheunwoven-bodypaneltoshowthatregion'slocationinthecontextoftheprogramcore.CodeforthesecurityconcerninFigure2.3indicatesthepresenceoftwosubconcernsatregionsbefore protected readandafter protected read.Thecodesegmentsbegin-ningwithifcheckCredentialsandaccessLog.appendimplementthosesubconcerns.Similarly,codefortheauditconcernindicatesthepresenceofthreesubconcernsatregionsfile read granted,file read denied,andafter protected read.Theunwoven-concernspanelmayalsocontainconstructscalledagse.g.,securityjjjjjandjjjjjsecurity,whichconveyinforma-tionaboutconcernassignmentinmulti-concerncodesegments.Section2.3providesadditionalexplanationofIVConags.12

PAGE 19

UnwovenBody:ifbuffer.getSize>2buffer.truncate2;ifgetTimeElapsed>2JOptionPane.showMessageDialogframe,"Requesttimedout","Error",JOptionPane.ERROR MESSAGE;UnwovenConcerns:concernconstantfsubconcern@max buffer size 0@max buffer size 1x512xsubconcern@timeout ms 0x2000xgFigure2.4.UnwovenviewofthecodeinFigure2.5Figure2.3alsodemonstratestheusefulnessofhavingdescriptive,user-speciednamesforregions.Descriptiveregionnameshelpsoftwareengineersquicklyunderstandwheresubconcerncodeexistsinrelationtotherestoftheprogramlogic.Nonetheless,ifaregionnameprovidesinsucientcontextualinformation,theusercanalwaysclickonthenametoseethatregion'scontextintheunwoven-bodypanel.Asanotherexample,considerFigure2.4,whichshowshowIVCongroupsintoonesubcon-cernallsyntacticallyequalcodeassignedtothesameconcern.Figure2.5containsthewovenviewofthesameprogram.Inthewovenview,theuserhasdenedaconcernnamedconstantandhasassignedthetwoconstants512and2000tothatconcern.Normally,programmersusingstandardsoftware-developmenttoolswoulddenethesevaluesinmemorydeclaredim-mutableandwouldalwaysrefertotheconstants'valueswithvariableslikeMAXBUFFERSIZEandTIMEOUTMS.Thistechniqueenablestheprogrammerstomakeaglobalchangetoaconstantvaluebymodifyingjustonecentraldenition.However,thisbenetcomesatthepriceofnot13

PAGE 20

WovenBody:ifbuffer.getSize>512buffer.truncate;ifgetTimeElapsed>2000JOptionPane.showMessageDialogframe,"Requesttimedout","Error",JOptionPane.ERROR MESSAGE;Figure2.5.WovenviewofthecodeinFigure2.4beingabletoimmediatelyseethevaluesofconstantsinthesourcecode.Incontrast,IVCon'sdualwovenandunwovenviewsprovidebothbenets:userscanupdateconstantvaluescentrallyintheconstantconcernoftheunwoven-concernspanelandcanviewtheconstantvaluesdi-rectlyinthesourcecodeinthewoven-bodypanel.Figures2.4and2.5alsodemonstratetheusefulnessoftoken-levelgranularityinconcernassignments.IVCon'sunwovenviewallowsuserstocreateandeditcore-programcodeintheunwoven-bodypanelandconcerncodeintheunwoven-concernspanel.ToavoidambiguityintheweavingalgorithmdescribedinSection3.2.2,IVCondoesnotallowuserstodeleteholesintheunwoven-bodypanelortoeditnon-concerncodee.g.,concernandregionnamesintheunwoven-concernspanel.2.3DisplayofMulti-concernCodeThewovenviewdisplaysmulti-concerncodeinwhitetextoverthemulti-concernback-ground,whiletheconcerns-at-current-positionpanelindicateswhichconcernsthecodeatthecurrentcursorpositionimplements.Similarly,theunwovenviewdisplaysmulti-concerncodeintheunwoven-bodypanelasaholecoloredwhiteoverthemulti-concernbackground,whiletheconcerns-at-current-positionpanelcontinuestoindicatewhichconcernstheholeatthecurrentcursorpositionimplements.Inaddition,theunwoven-concernspanelusesagstoconveyinformationaboutthecon-cernsassociatedwithmulti-concerncodeasmentionedinSection2.2.Flagsserveasaquickreferenceforvisualizingwhereoverlappingconcernsbeginandend.Toillustratetheuseofags,considerthecodeinFigure2.2thatimplementsthesecurityconcernatre-14

PAGE 21

gionbefore protected read.InthewovenviewFigure2.1,weassignedthiscodeseg-menttothesecurityconcern,andweassignedthetwonestedstatementsbeginningwithaccessLog.appendtotheauditconcern.Asaresult,theunwoven-concernspanelinFig-ure2.2displaysgreenagsauditjjjjjandredagsjjjjjaudittoindicatethenestingofaudit-concerncodewithinthesecurity-concerncode.Greenandredagswithintheunwoven-concernspanelindicatethebeginningandendingofoverlappingconcerns.Greenandredagsdonotalwaysappeartogetherwithinasubconcern;dependingontheoverlapbetweenconcernregions,theremaybeagreenagonly,aredagonly,bothgreenandredags,ornoagsatallwithinsubconcerncode.Also,multipleredandgreenagsofthesameconcern,ormultipleagsofvariousconcerns,maybepresentwithinasubconcern.ThesyntaxofcodeinIVCon'sunwoven-concernspanelincludesags,sotwosubcon-cernsaresyntacticallyequalifandonlyifthetextofthosetwosubconcerns|includingagswithinthesubconcerns|isthesame.Thus,thesubconcernaccessLog.append``Filereadcomplete.''wouldnotbesyntacticallyequaltosecurityjjjjjaccessLog.append``Filereadcomplete.''jjjjjsecurity.Thisdistinctionmattersbecause,asdescribedinSection2.2,syntacti-callyequalsubconcernsaregroupedtogetherintheunwoven-concernspanel.15

PAGE 22

CHAPTER3IMPLEMENTATIONWehaveimplementedIVCononaJavaplatformandmadeitssourcecodepubliclyavail-able[19].ThecoreIVConapplicationconsistsof6235linesofcode,ofwhich6107implementtheGUIand128implementbackenddatastructures.IVConalsousesseveralthird-partylibrariese.g.,clipboardandlexical-analysislibrariesforauxiliaryfunctions.3.1DataStructuresIVConmaintainsthreekeydatastructures.1.AregionMapisahashtablethatmapsanumericalregionidentierneededfortheRTreeimplementationdescribedbelowtothatregion'suser-visiblename,beginningandendingpositionsfortheregion,andalistoftheconcernstowhichtheregionhasbeenassigned.2.AconcernMapisahashtablethatmapsauniqueconcernnametothatconcern'sdisplaycolorandalistoftheregionsassignedtothatconcern.3.AregionTreeisanRTree,adynamicstructureforstoringdataaboutpotentiallyoverlap-pingregionsinspace[20,21].Whenqueriedaboutaparticularregionr,anRTreecanecientlyreturnthesetofstoredregionsthatoverlapr.RTreesareidealdatastructuresforIVConbecausetheyenableecientqueryingtodeterminewhichregionsaredenedatagivencharacterpositioninthesourcelee.g.,atthepositionofthecursororwithinanewlydenedregion.OnceIVCondetermineswhichregionsarepresentatagivenposition,itcanusetheregionMaptolookupanddisplayalltheconcernsassignedtothoseregions.IVConusesHadjieleftheriou'simplementationofRTrees[22].TogetherthesestructuresenablereasonableperformanceinallofIVCon'scoreoperations.16

PAGE 23

WeresearchedotherspatialdatastructuressuchastheP-RTree[21],IBSTree[23]andskiplists[24].However,wehadaproblemndingacorrectimplementationoftheP-RTree;IBSTreeandskiplistswerenotsuitedtoourpurposebecausetheydonotallowdynamicadditionordeletionofintervals,whichisimportantforIVConasusersdeneregionsdynamically.3.2TranslationAlgorithmsGivenaregionMap,concernMap,andregionTree,itisgenerallystraightforwardtoimple-mentthetranslationfromwoventounwovenview,andviceversa.3.2.1UnweavingUnweavingistheprocessoftranslatingawoven-viewprogramintoanequivalentunwoven-viewprogram.UnweavinginIVConbeginswithlexicalanalysistoensurethatalltokensinthecurrentprogramarevalidJavatokensandenforcetoken-levelgranularityinconcernassignmentbyrequiringthatallconcernregionsbeginandendatbeginningsandendingsofJavatokens.Afterlexicalanalysis,IVConstartswiththewovencodeintheunwoven-bodypanelanditeratesthroughallconcernsintheconcernMap,extractingthatconcern'scoderegionsoneatatimefromtheunwoven-bodypaneltotheunwoven-concernspanel.Extractedconcerncodegetsreplacedwithholes2oftheappropriatecolor.Duringtheextractionprocess,IVCongroupsconcerncodeintosyntacticallyequalsubconcernsanddisplaysisolatedconcernsintheformatdescribedinSection2.2.Althoughtheunweavingalgorithmjustdescribedisstraightforward,oneinterestingissuearoseduringimplementation.Theissueconcernshowtodisplayholesinplaceofoverlapping,butunequal,regions.Forexample,letusreturntothewoven-bodycodeofFigure2.1.Inthatgure,aprogrammerhasassignedanentireifstatementtothesecurityconcernandhasnestedtwoaudit-concernregionswithinthatsecurityregion.Therearetworeasonablealternativesforunweavingthisifstatement:1.Wecouldreplacetheentireifstatementwithoneholeofthemulti-concerncolortoindicatethatoneregionofcode,whichintotalimplementsmultipleconcerns,hasbeenextracted.17

PAGE 24

2.Wecouldreplacetheentireifstatementwithveholesthatalternatebetweenthesecurity-concerncolorandthemulti-concerncolor.Theseholeswouldindicatethattheextractedcoderstcontainssecurity-concerncode,thensomemulti-concerncode,thenmoresecurity-concerncode,andsoon.Becauseitprovidesmorepreciseconcern-assignmentinformation,weimplementedthesecondofthesealternativesinIVCon.Figure2.2showstheresultingve-holeconcernextractionintheunwoven-bodypanel.3.2.2WeavingWeavingistheprocessoftranslatinganunwoven-viewprogramintoanequivalentwoven-viewprogram.Toweave,IVConbuildsthewovenbodyfromtheunwovenbodybyiteratingthroughalltheholesintheunwovenbodyandllingineachholewiththeappropriateconcerncode.Morespecically,foreveryholeintheunwovenbody,IVConusestheregionTreeandregionMaptolookuptheregionsandconcernsassociatedwiththathole.Inthesimplestcase,onlyoneconcernisassociatedwiththehole,soIVConcanimmediatelyllthatholewiththeunwoven-concerns-panelcodethatimplementsthehole'sconcernatthehole'sregion.Otherwisethatis,ifmorethanoneconcernisassociatedwiththehole,thesituationismorecomplexbecausethecodesegmentthatllsintheholehasbeenassignedtomultipleconcerns,sothatcodesegmentappearsinmultipleplacesintheunwoven-concernspanel.Forexample,thecodethatllsineverymulti-concernholeinFigure2.2existsintwoplacesintheunwoven-concernspanelofFigure2.3.Ifallthecodesegmentsthatllinthesamemulti-concernholeareidentical,IVConcansimplyllintheholewiththatcodesegment.However,thecodesegmentsllinginthesameholemaynotbeidenticalbecauseausermayhavemodiedcodeintheunwoven-concernspanele.g.,ausermayhavechangedthelog.appendstolog.prependsinthesecurityconcernofFigure2.3withoutmodifyingthelog.appendsintheauditconcern.Inthiscase,IVConcannotimmediatelydeterminewithwhatcodetollthehole,soitopensapopupwindowtonotifytheuseroftheconcern-codeinconsistencyandallowtheusertoselectwhichcodesegmenttolltheholewithe.g.,touselog.prependorlog.append.18

PAGE 25

AfterIVConllsinalltheholes,ithasacompletewovenviewoftheprogramandcanper-formlexicalanalysis.Likethelexicalanalysisatthebeginningoftheunweavingprocess,lexicalanalysisattheconclusionoftheweavingprocessensuresthatalltokensinthecurrentprogramarevalidJavatokensandenforcestoken-levelgranularityinconcernassignment.Althoughforsimplicitywehavenotdoneso,itwouldalsobeusefultointegrateacompleteJavacompilerintoIVContocheck,beyondsimplelexicalanalysis,thatwovenprogramsarestaticallyvalidJavaprograms.IntegratingacompletecompilerandvirtualmachineintoIVConwouldalsosaveprogrammersfromhavingtoswitchtoexternaltoolsforcodecompilationandexecution.19

PAGE 26

CHAPTER4PERFORMANCEEVALUATIONToevaluatethepracticalityofourdesign,wetested1IVConbyassigningcodetocon-cernsinthreeofourownIVConsource-codeles:IVCON.java,FileUtilities.java,andConcernManipulation.javaourlargestsource-codele,respectivelycontaining49,313,and3342linesofJavacodeinthewovenviewand7,25,and182regionsassignedto5,11,and36totalconcerns.Wealsocreatedanimpracticallylargeleof100,000lines,eachcontaining20randomlygeneratedsingle-charactertokens,inordertostresstestIVCon'sperformance.Table4.1summarizesourtest-lecharacteristics.WeemphasizethatStressTest.javawouldbeanunreasonablylarge-million-tokensource-codeleinpractice;weincludeditinourtestsuitetobetterunderstandIVCon'sperformancelimitations.IVConallowsuserstoopenandsaveJavasource-code.javalesandIVCon.ivcles.IVConlescontainseveralserializedobjects:theJavasource-codestringinthewovenview,plusIVCon'sregionMap,concernMap,andregionTreeforthatprogram.WemeasuredIVCon'sperformanceopeningandsavingourtestlesas.javales,.ivcleswithnoconcernsTable4.1.Test-lecharacteristics FileName Avg. Max. FileSize Total#of Total#of Region Region LoC Concerns Regions Size Size chars chars IVCON.java 49 5 7 135.9 337 FileUtilities.java 313 11 25 155.7 788 ConcernManipulation.java 3342 36 182 269.9 3461 StressTest.java 100,000 1000 5000 1016.0 1996 1ThetestswereperformedonaDellLatitudeD830withdualIntelCore22.2GHzCPUsand2GBofRAM,runningWindowsXP.Thetimesrepresentrealtimeatlowaverageload.Weperformedeachtestinsetsof100;theresultsshownaretheaveragesofthosesets.Duringstresstesting,wehadtoincreasethevirtualmachine'sheapsizeto1.5GB.20

PAGE 27

Table4.2.Performanceopeningles FileSize TypeofFile File-open LoC Timems .javale 58.92 49 .ivclenoconcerns 33.91 .ivcle5concerns 39.52 .javale 167.3 313 .ivclenoconcerns 89.37 .ivcle11concerns 115.8 .javale 937.2 3342 .ivclenoconcerns 584.5 .ivcle36concerns 999.5 .javale 112,722 100,000 .ivclenoconcerns 24,117 .ivcle1000concerns 26,820 Table4.3.Performancesavingles FileSize TypeofFile File-save LoC Timems .javale 1.730 49 .ivclenoconcerns 38.09 .ivcle5concerns 42.55 .javale 4.040 313 .ivclenoconcerns 106.7 .ivcle11concerns 139.5 .javale 10.83 3342 .ivclenoconcerns 659.9 .ivcle36concerns 1282 .javale 176.6 100,000 .ivclenoconcerns 2952 .ivcle1000concerns 3811 dened,and.ivcleswithallconcernsdened.Tables4.2and4.3displaytheresults.IVConopens.ivclesmorequicklythan.javalesbecausethecontentsof.ivcles,beingserial-ized,canbeecientlyinputasJavaobjects,whilethecontentsof.javalesareinputlinebylineandconcatenatedtoformtheoverallwovenbody.Conversely,IVConsaves.javalesmore21

PAGE 28

Table4.4.Performanceweavingcode Linesof Number Holesin Weaving Woven of Unwoven Time Code Concerns Body ms 49 0 0 1.720 5 7 20.70 313 0 0 12.52 11 26 88.71 3342 0 0 94.40 18 129 237.6 36 205 566.8 100,000 0 0 9823 1000 7282 465,000 Table4.5.Performanceunweavingcode Linesof Number Holesin Unweaving Woven of Unwoven Time Code Concerns Body ms 49 0 0 3.130 5 7 4.370 295 0 0 8.980 11 26 21.70 3476 0 0 85.80 18 129 253.2 36 205 501.9 100,000 0 0 8836 1000 7282 481,737 ecientlythan.ivclesbecause.ivclescontainseveralpotentiallylarge,serializeddatastructures;asexpected,IVCon'sle-savetimesareproportionaltothelengthoftheJava-codeoutputandthesizeoftheobjectsbeingserialized.Thele-savetimesinTable4.3donotincludethetimetakentoclosetheles,butle-closingtimeswerenegligibleanywayi.e.,unobservablysmallforallbuttheStressTestles,whichtookabout83mstoclose.AlthoughcreatinganewconcerninIVContakesonlyaconstantamountoftimeandisafastmsto16msoperation,wenextdescribeIVCon'sperformanceduringthreeheavier-weightconcern-manipulationoperations.Tables4.6,4.7,and4.8showIVCon'sperformance22

PAGE 29

Table4.6.Performanceassigningcodetoaconcern File Region Numberof ConcernSize Size Nested assignment LoC LoC Regions Timems 49 49 7 17.35 313 295 25 50.58 3476 100 1 4.210 500 33 83.89 1500 73 192.7 3342 182 519.1 1000 44 3373 100,000 10,000 473 35,183 100,000 5000 312,519 Table4.7.Performanceeditingaconcerncolor FileSize NumberofCharacters Concern-edit LoC AssignedtoConcern Timems 49 332 5.310 313 647 14.49 988 21.09 3342 2154 27.52 6217 30.00 13,876 582.9 100,000 15,170 1039 50,212 2276 duringconcernassignment,editing,andremoval.IVCon'sperformancewhenassigningcodetoaconcernTable4.6dependsonthesizeoftheregionrbeingassignedtotheconcernandthenumberofregionsnestedwithinr;highervaluesforthesetwoparametersimplymoreconsiderationsofcode-colorchangesandthereforemoretimetocompletetheconcern-assignmentoperation.Becauseeditingconcernnamestakesanegligibleamountoftimemsto16ms,thebiggestfactorineditingaconcernisactuallychangingitscolorTable4.7,whichagaindependsontheamountoftexti.e.,thenumberandsizeofregionsassignedtotheconcernbeingrecolored.Similarly,whenausercompletelyremovesaconcerninthewovenview,mostofthetimeIVConspendscompletingthisoperationinvolvesrecoloringthecode23

PAGE 30

Table4.8.Performanceremovingaconcern FileSize NumberofCharacters Concern-removal LoC AssignedtoConcern Timems 49 332 7.020 313 647 20.58 988 34.01 3342 2154 38.31 6217 84.02 13,876 909.5 100,000 15,170 917.5 50,212 3742 thathadbeenassignedtothatconcern;hence,concernsassignedtomoreandlargerregionstakemoretimetoremovethanconcernsassignedtofewerandsmallerregionsTable4.8.Finally,wemeasuredIVCon'sperformanceweavingandunweavingcode,aspresentedinTables4.4and4.5.BasedonthedescriptionsofthesealgorithmsinSection3.2,wewouldexpectthatthebiggestfactorsdeterminingweavingandunweavingtimesarethenumberofconcernsbeingwovenorunwoven,thenumberofholesbeinglledinorcreated,andthenumberofcharactersllinginorbeingextractedfromholes.TheresultsinTables4.4and4.5matchtheseexpectations.Completelyweavingandunweavingcodeinallthereasonable-sizedtestlestooklessthanonesecond.Takentogether,ourperformanceresultsdemonstratethatIVCon'sdesignissucientlyecientwhenoperatingonreasonablysizedsource-codeles.However,IVConwouldneedadditionaloptimizationstoperformtolerablyecientlyonextremelylargesource-codeles,suchasthosecontainingmillionsofsource-languagetokens.24

PAGE 31

CHAPTER5CONCLUSIONSWeconcludebysummarizinganddescribingfutureextensionstothiswork.5.1SummaryWehavepresentedIVCon,aGUI-basedtoolforconvenientlycreating,examining,andmodifyingcodein,andtranslatingbetween,wovenandunwovenviewsofcode.IVCondiersfromexistingaspect-visualizationtoolsbyprovidingacombinationoftranslationsbetweenwovenandunwovenviewsmany-to-manyrelationshipsbetweenconcernsandcode,3token-levelgranularityinconcernassignment,andaGUIdesignedtomakeallofthisconvenient.WehavedescribedIVCon'sinterfaceandimplementationdetailsandhavemadeitssourcecodeispubliclyavailable[19].Inallofourempiricaltests,IVConperformedtolerablywellonreasonablysizedsource-codelesbutcouldbenetfromoptimizationstoimproveeciencywhenmanipulatingextremelylargeles.5.2FutureWorkSeveralopportunitiesexistforimprovingIVCon.Forone,wewouldliketocollectdatafromrealuserstomeasureIVCon'seectivenessatimprovingprogramcomprehension.Moreover,wewouldliketocontinueevaluatingIVCon'sempiricalperformancetodeterminewhetherandhowtheweavingandunweavingoperationscouldbeoptimized,especiallyforlargersource-codeles.Toaidusersinbuildingprojectsthatspanoverseveralles,wewouldalsoliketoextendIVContohandlemultiplesource-codelessimultaneously,forexample,toallowalllesinaprojecttosharethesamesetofconcerns.25

PAGE 32

Inaddition,toprovidethesameclarityofmulti-concerncodeinthewovenviewthatcurrentlyexistsintheunwovenview,afutureimplementationofIVConcouldallowuserstoviewconcernagsinthewovenbody;userswouldbeabletotogglebetweenviewingandhidingagsinthewovenview.TheconcernslegendinthecurrentimplementationofIVConisatextuallistofconcerns.Inafutureimplementation,wecouldembednavigationalaidsintothislist.Forexample,eachentryintheconcernlegendcouldbeaccompaniedbytwobuttons,previous"andnext",thatcouldrefocusthewoven-bodypaneltothepreviousornextinstanceofcodeimplementingtheselectedconcern.Finally,wewouldliketomodelourIVConlanguageinaformalcalculusandprovethatourtranslationalgorithmsareinversesofeachother,ourtranslationsaresemanticspreservingi.e.,translationsoundness,andwecanunweaveanyconcerninanywovenprogramandweaveanyconcernintoanyunwovenprogrami.e.,translationcompleteness.26

PAGE 33

REFERENCES[1]NalinSaigalandJayLigatti.Deningandvisualizingmany-to-manyrelationshipsbe-tweenconcernsandcode.TechnicalReportCSE-090608-SE,UniversityofSouthFlorida,September2008.[2]PeriTarr,HaroldOssher,StanleyM.Sutton,Jr.,andWilliamHarrison.Ndegreesofseparation:Multi-dimensionalseparationofconcerns.InProceedingsoftheInternationalConferenceonSoftwareEngineering,pages107{119,1999.[3]GregorKiczales,JohnLamping,AnuragMenhdhekar,ChrisMaeda,CristinaLopes,Jean-MarcLoingtier,andJohnIrwin.Aspect-orientedprogramming.InProceedingsoftheEuropeanConferenceonObject-OrientedProgrammingECOOP,pages220{242,1997.[4]GregorKiczales,ErikHilsdale,JimHugunin,MikKersten,JereyPalm,andWilliamG.Griswold.AnoverviewofAspectJ.InProceedingsoftheEuropeanConferenceonObject-OrientedProgrammingECOOP,pages327{353,2001.[5]MonicaYvonneCoady.ImprovingevolvabilityofoperatingsystemswithAspectC.PhDthesis,TheUniversityofBritishColumbia,2003.[6]W.G.Griswold,Y.Kato,andJ.J.Yuan.AspectBrowser:Toolsupportformanagingdispersedaspects.TechnicalReportCS1999-0640,UniversityofCaliforniaatSanDiego,LaJolla,CA,USA,1999.[7]MacneilShonle,JonathanNeddenriep,andWilliamGriswold.AspectBrowserforeclipse:Acasestudyinplug-inretargeting.InProceedingsofthe2004OOPSLAworkshoponeclipsetechnologyeXchange,pages78{82,2004.[8]TheVisualiser,2008.http://www.eclipse.org/ajdt/visualiser/.27

PAGE 34

[9]Eclipse,2008.http://www.eclipse.org/.[10]T.Panas,J.Karlsson,andM.Hogberg.Aspect-jEditforinlineaspectsupport.InPro-ceedingsoftheThirdGermanWorkshoponAspectOrientedSoftwareDevelopment,2003.[11]jEdit,2008.http://www.jedit.org/.[12]HaroldOssherandPeriTarr.Hyper/J:Multi-dimensionalseparationofconcernsforJava.InProceedingsoftheInternationalConferenceonSoftwareEngineering,pages734{737,2000.[13]MarcoYuen,MarcE.Fiuczynski,RobertGrimm,YvonneCoady,andDavidWalker.MakingextensibilityofsystemsoftwarepracticalwiththeC4toolkit.InProceedingsoftheWorkshoponSoftwareEngineeringPropertiesofLanguagesandAspectTechnologies,March2006.[14]RobertE.FilmanandDanielP.Friedman.Aspect-orientedprogrammingisquanticationandobliviousness.TechnicalReport01.12,RIACS,2000.[15]JayLigatti,DavidWalker,andSteveZdancewic.Atype-theoreticinterpretationofpoint-cutsandadvice.ScienceofComputerProgramming:SpecialIssueonFoundationsofAspect-OrientedProgramming,63:240{266,December2006.[16]ChristianKastner.CIDE:Decomposinglegacyapplicationsintofeatures.InProceed-ingsofthe11thInternationalSoftwareProductLineConferenceSPLC,secondvolumeDemonstration,pages149{150,2007.[17]ChristianKastner,SvenApel,andMartinKuhlemann.Granularityinsoftwareproductlines.InProceedingsofthe30thInternationalConferenceonSoftwareEngineeringICSE,pages311{320,May2008.[18]RobertR.PainterandDavidCoppit.Amodelforsoftwareplans.InProceedingsofthe2005WorkshoponModelingandAnalysisofConcernsinSoftware,pages1{5,2005.[19]NalinSaigalandJayLigatti.IVCon{InlineVisualizationofConcerns,2008.http://www.cse.usf.edu/~ligatti/projects/ivcon/.28

PAGE 35

[20]AntoninGuttman.R-trees:Adynamicindexstructureforspatialsearching.InProceedingsoftheACMSIGMODInternationalConferenceonManagementofData,pages47{57,1984.[21]LarsArge,MarkDeBerg,HermanHaverkort,andKeYi.ThepriorityR-tree:Apracticallyecientandworst-caseoptimalR-tree.ACMTrans.Algorithms,4:1{30,2008.[22]MariosHadjieleftheriou.Spatialindexlibrary.http://www.research.att.com/~marioh/spatialindex/index.html.[23]E.HansonandM.Chaabouni.TheIBStree:adatastructureforndingallintervalsthatoverlapapoint.TechnicalReportWSU-CS-90-11,WrightStateUniversity,1990.[24]WilliamPugh.Skiplists:aprobabilisticalternativetobalancedtrees.Commun.ACM,33:668{676,1990.29