Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Toward Structured Location of Features


Published on

Presented at ICPC 2012

Published in: Technology, Business
  • Be the first to comment

Toward Structured Location of Features

  1. 1. Feature  Loca+on •  Iden+fying  correspondence  between  features   and  modules  in  source  code   Features List  of  Relevant  Modules AccountBean.signon()   Search  Catalog,   AccountBean()   Sign  On  and  Off,   AccountService()   LOCATION FEATURE      Browse  Categories, CatalogService()   ...... Account.setPassword(String)   AccountBean(AccountService,  CatalogService)   DaoConfig.getDaoManager()     ......   CatalogService.getProductListByCategory(String)  Developer
  2. 2. Mo+va+on •  AHer  features  are  located,  there  is  s+ll  a   cogni6ve  gap  between  features  and  modules  Rela+onships  Among  Modules List  of  Relevant  Modules a  caller  and  its  callee. AccountBean.signon()   AccountBean()   easier to understand at once? AccountService()   invoked  together  in  many   CatalogService()   0mes  based  on  a  call  pa6ern. Account.setPassword(String)   also  relevant  to   AccountBean(AccountService,  CatalogService)   ? "Browse  Categories". DaoConfig.getDaoManager()     ...... low priority?   CatalogService.getProductListByCategory(String)   Developer
  3. 3. Our  Goal:  Structured  Loca+on •  Stepwise  explora+on  of  implementa+on   structure  of  features Features Search  Catalog,          Browse  Categories,   Inter-­‐Feature  Structure   STRUCTURED   Sign  On  and  Off,   LOCATION ...... is  a  part  of Intra-­‐Feature  Structure   is  composed  of Sub-­‐Feature  structure   is  implemented  by Developer Modules  
  4. 4. Example:    JPetStore •  Virtual  e-­‐commerce  system   –  Reference  applica+on  of  Java  EE   Feature  List   f1:  Browse  Catalog   f2:  Search  Catalog   f3:  Browse  Categories   f4:  Browse  Product  Details   f5:  Browse  Item  Details   f6:  Update  Shopping  Cart   f7:  Sign  On  and  Off   f8:  Update  Account   f9:  Update  Personaliza+on   f10:  Submit  Order  
  5. 5. Inter-­‐Feature  Structure •  Concept  lace  obtained  by  formal  concept   analysis Feature  List   f1:  Browse  Catalog   f4:  Browse  Product  f1:  Browse  Catalog   Details  f2:  Search  Catalog  f3:  Browse  Categories  f4:  Browse  Product  Details   f3:  Browse   f7:  Sign  On  and  f5:  Browse  Item  Details   Categories   Off  f6:  Update  Shopping  Cart  f7:  Sign  On  and  Off  f8:  Update  Account  f9:  Update  Personaliza+on  f10:  Submit  Order   f6:  Update   f8:  Update  Account   f2:  Search   f5:  Browse   Shopping  Cart   f9:  Update   Catalog   Item  Details   f10:  Submit  Order   Personaliza+on  
  6. 6. Intra-­‐Feature  Structure •  Call  dependency  graph  obtained  by  dynamic   analysis 1 156: 153: 162: 179: 92: 164: 314: 166: 97: 111: 168: 87: 86: 88: 172: 187: 311: 297: 174: 185: 176: 159: 178: 182: 188:
  7. 7. Sub-­‐Feature  Structure •  Frequent  call  sequences  of  modules  obtained   by  sequen+al  pa^ern  mining Create  and  ini+alize  objects   AccountService()   DaoConfig.getDaoManager()   0   AccountBean()   CatalogService()   AccountBean(AccountService,  CatalogService)   Confirm  whether  the  user  is  authen+cated   0   AccountBean.isAuthen+cated()   Account.getName()  
  8. 8. Overview  of  the  Proposed  Technique Preparing  Scenarios Structure  Visualiza6on ✔ ✔ ✔ ✔ Call  Pa^ern Analyst R0:  Scenario-­‐ Scenarios Feature  Mapping ✔ Applying  FCA ✔ ✔ ✔ Feature-­‐Specific  Call  Graph   R1:  Scenario-­‐ Formal   Module  Mapping Concept    Analysis Subject   Dynamic   Execu+on   ✔ System   Analysis Traces ✔ ✔ ✔ R2:  Scenario-­‐Call   Observing  Execu6on Dependency  Mapping Concept  Lace Sequen+al   ✔ ✔ ✔ Pa^ern  Mining ✔ R3:  Scenario-­‐Call  Pa^ern   Mining  Call  PaEerns Mapping
  9. 9. Conclusion OurGoal:StructuredLoca+on InterLFeatureStructure•  Stepwiseexplora+onofimplementa+on •  Conceptlaceobtainedbyformalconcept structureoffeatures analysis Features FeatureList f1:BrowseCatalog f4:BrowseProduct SearchCatalog, f1:BrowseCatalog DetailsBrowseCategories, f2:SearchCatalog InterMFeatureStructure STRUCTURED% Sign%On%and%Off, f3:BrowseCategories LOCATION f4:BrowseProductDetails f3:Browse f7:%Sign%On%and% ...... isapartof f5:BrowseItemDetails Categories Off% f6:UpdateShoppingCart% IntraMFeatureStructure f7:%Sign%On%and%Off% iscomposedof f8:UpdateAccount f9:UpdatePersonaliza+on SubMFeaturestructure f10:SubmitOrder isimplementedby f6:Update f8:UpdateAccount f2:Search f5:Browse ShoppingCart f9:Update Modules Catalog ItemDetailsDeveloper f10:SubmitOrder Personaliza+on IntraMFeatureStructure•  Calldependencygraphobtainedbydynamic analysis Future  Work   1 156: 153: •  Improving  the  scalability   •  Evalua+ng  the  effec+veness   162: 179: 92: 164: 314: 166: 111: and  usability   97: 168: 87: 86: 88: 172: 187: 311: 297: 174: 185: 176: 159: 178: 182: 188: 158:
  10. 10. Credit •  "Day  273  -­‐  Tiny  Trachodon"  by  puuikibeach   –  h^p://  •  "That  explains  the  nasty  smell"  by  Kyknoord   –  h^p://