SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
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
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
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	
  
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	
  
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          	
  
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:
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()	
  
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
Conclusion
                                                                                               	
          Our'Goal:'Structured'Loca+on                                                                                               InterLFeature'Structure
•  Stepwise'explora+on'of'implementa+on'                                                                          •  Concept'lace'obtained'by'formal'concept'
   structure'of'features                                                                                             analysis
  Features
                                                                                                                  Feature'List'                                     f1:'Browse'Catalog'
                                                                                                                                                                    f4:'Browse'Product'
     Search'Catalog,'                                                                                             f1:'Browse'Catalog'                                      Details'
''''Browse'Categories,'                                                                                           f2:'Search'Catalog'
                                                                               InterMFeature'Structure'
                                               STRUCTURED%




    Sign%On%and%Off,'                                                                                              f3:'Browse'Categories'
                                                LOCATION




                                                                                                                  f4:'Browse'Product'Details'                                 f3:'Browse'                   f7:%Sign%On%and%
                ......




                                                                                              is'a'part'of        f5:'Browse'Item'Details'                                    Categories'                          Off%
                                                                                                                  f6:'Update'Shopping'Cart%
                                                                               IntraMFeature'Structure'
                                                                                                                  f7:%Sign%On%and%Off%
                                                                                              is'composed'of      f8:'Update'Account'
                                                                                                                  f9:'Update'Personaliza+on'
                                                                               SubMFeature'structure'             f10:'Submit'Order'
                                                                                              is'implemented'by                                                                           f6:'Update'           f8:'Update'Account '
                                                                                                                                                f2:'Search'    f5:'Browse'
                                                                                                                                                                                       Shopping'Cart  '              f9:'Update'
                                                                                      Modules'                                                   Catalog'     Item'Details'
Developer                                                                                                                                                                            f10:'Submit'Order  '         Personaliza+on '




                         IntraMFeature'Structure
•  Call'dependency'graph'obtained'by'dynamic'
   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:
Credit	
•  "Day	
  273	
  -­‐	
  Tiny	
  Trachodon"	
  by	
  puuikibeach	
  
    –  h^p://www.flickr.com/photos/puuikibeach/3768359322	
  
•  "That	
  explains	
  the	
  nasty	
  smell"	
  by	
  Kyknoord	
  
    –  h^p://www.flickr.com/photos/kyknoord/5341831715/

Weitere ähnliche Inhalte

Was ist angesagt?

Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...Shinpei Hayashi
 
Concept lattices: a representation space to structure software variability
Concept lattices: a representation space to structure software variabilityConcept lattices: a representation space to structure software variability
Concept lattices: a representation space to structure software variabilityRa'Fat Al-Msie'deen
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of PatternsChris Eargle
 
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Coen De Roover
 
Java session04
Java session04Java session04
Java session04Niit Care
 
An Approach to Recover Feature Models From Object-Oriented Source Code
An Approach to Recover Feature Models From Object-Oriented Source CodeAn Approach to Recover Feature Models From Object-Oriented Source Code
An Approach to Recover Feature Models From Object-Oriented Source CodeRa'Fat Al-Msie'deen
 
GUI Programming in JAVA (Using Netbeans) - A Review
GUI Programming in JAVA (Using Netbeans) -  A ReviewGUI Programming in JAVA (Using Netbeans) -  A Review
GUI Programming in JAVA (Using Netbeans) - A ReviewFernando Torres
 
java swing programming
java swing programming java swing programming
java swing programming Ankit Desai
 
Application package
Application packageApplication package
Application packageJAYAARC
 
Automatic Migration of Legacy Java Method Implementations to Interfaces
Automatic Migration of Legacy Java Method Implementations to InterfacesAutomatic Migration of Legacy Java Method Implementations to Interfaces
Automatic Migration of Legacy Java Method Implementations to InterfacesRaffi Khatchadourian
 
Creation of a Test Bed Environment for Core Java Applications using White Box...
Creation of a Test Bed Environment for Core Java Applications using White Box...Creation of a Test Bed Environment for Core Java Applications using White Box...
Creation of a Test Bed Environment for Core Java Applications using White Box...cscpconf
 
Chapter 9 & chapter 10 solutions
Chapter 9 & chapter 10 solutionsChapter 9 & chapter 10 solutions
Chapter 9 & chapter 10 solutionsSaeed Iqbal
 
Opal Hermes - towards representative benchmarks
Opal  Hermes - towards representative benchmarksOpal  Hermes - towards representative benchmarks
Opal Hermes - towards representative benchmarksMichaelEichberg1
 

Was ist angesagt? (19)

Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
 
Concept lattices: a representation space to structure software variability
Concept lattices: a representation space to structure software variabilityConcept lattices: a representation space to structure software variability
Concept lattices: a representation space to structure software variability
 
Java swing 1
Java swing 1Java swing 1
Java swing 1
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of Patterns
 
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
 
Java Programming Assignment
Java Programming AssignmentJava Programming Assignment
Java Programming Assignment
 
Java session04
Java session04Java session04
Java session04
 
An Approach to Recover Feature Models From Object-Oriented Source Code
An Approach to Recover Feature Models From Object-Oriented Source CodeAn Approach to Recover Feature Models From Object-Oriented Source Code
An Approach to Recover Feature Models From Object-Oriented Source Code
 
GUI Programming in JAVA (Using Netbeans) - A Review
GUI Programming in JAVA (Using Netbeans) -  A ReviewGUI Programming in JAVA (Using Netbeans) -  A Review
GUI Programming in JAVA (Using Netbeans) - A Review
 
java swing programming
java swing programming java swing programming
java swing programming
 
Gui
GuiGui
Gui
 
Application package
Application packageApplication package
Application package
 
Ppt chapter07
Ppt chapter07Ppt chapter07
Ppt chapter07
 
Automatic Migration of Legacy Java Method Implementations to Interfaces
Automatic Migration of Legacy Java Method Implementations to InterfacesAutomatic Migration of Legacy Java Method Implementations to Interfaces
Automatic Migration of Legacy Java Method Implementations to Interfaces
 
Creation of a Test Bed Environment for Core Java Applications using White Box...
Creation of a Test Bed Environment for Core Java Applications using White Box...Creation of a Test Bed Environment for Core Java Applications using White Box...
Creation of a Test Bed Environment for Core Java Applications using White Box...
 
Chapter 9 & chapter 10 solutions
Chapter 9 & chapter 10 solutionsChapter 9 & chapter 10 solutions
Chapter 9 & chapter 10 solutions
 
C# Unit 2 notes
C# Unit 2 notesC# Unit 2 notes
C# Unit 2 notes
 
Opal Hermes - towards representative benchmarks
Opal  Hermes - towards representative benchmarksOpal  Hermes - towards representative benchmarks
Opal Hermes - towards representative benchmarks
 
Unit 5 cspc
Unit 5 cspcUnit 5 cspc
Unit 5 cspc
 

Andere mochten auch

Modeling and Utilizing Security Knowledge for Eliciting Security Requirements
Modeling and Utilizing Security Knowledge for Eliciting Security RequirementsModeling and Utilizing Security Knowledge for Eliciting Security Requirements
Modeling and Utilizing Security Knowledge for Eliciting Security RequirementsShinpei Hayashi
 
Understanding Source Code Differences by Separating Refactoring Effects
Understanding Source Code Differences by Separating Refactoring EffectsUnderstanding Source Code Differences by Separating Refactoring Effects
Understanding Source Code Differences by Separating Refactoring EffectsShinpei Hayashi
 
Class Responsibility Assignment as Fuzzy Constraint Satisfaction
Class Responsibility Assignment as Fuzzy Constraint SatisfactionClass Responsibility Assignment as Fuzzy Constraint Satisfaction
Class Responsibility Assignment as Fuzzy Constraint SatisfactionShinpei Hayashi
 
Sentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain OntologiesSentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain OntologiesShinpei Hayashi
 
Refactoring Edit History of Source Code
Refactoring Edit History of Source CodeRefactoring Edit History of Source Code
Refactoring Edit History of Source CodeShinpei Hayashi
 
Establishing Regulatory Compliance in Goal-Oriented Requirements Analysis
Establishing Regulatory Compliance in Goal-Oriented Requirements AnalysisEstablishing Regulatory Compliance in Goal-Oriented Requirements Analysis
Establishing Regulatory Compliance in Goal-Oriented Requirements AnalysisShinpei Hayashi
 
Detecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic SearchDetecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic SearchShinpei Hayashi
 
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQM
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQMHow Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQM
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQMShinpei Hayashi
 
Terminology Matching of Requirements Specification Documents and Regulations ...
Terminology Matching of Requirements Specification Documents and Regulations ...Terminology Matching of Requirements Specification Documents and Regulations ...
Terminology Matching of Requirements Specification Documents and Regulations ...Shinpei Hayashi
 
Historef: A Tool for Edit History Refactoring
Historef: A Tool  for Edit History RefactoringHistoref: A Tool  for Edit History Refactoring
Historef: A Tool for Edit History RefactoringShinpei Hayashi
 
Incremental Feature Location and Identification in Source Code
Incremental Feature Location and Identification in Source CodeIncremental Feature Location and Identification in Source Code
Incremental Feature Location and Identification in Source CodeHiroshi Kazato
 
Feature Location for Multi-Layer System Based on Formal Concept Analysis
Feature Location for Multi-Layer System Based on Formal Concept AnalysisFeature Location for Multi-Layer System Based on Formal Concept Analysis
Feature Location for Multi-Layer System Based on Formal Concept AnalysisHiroshi Kazato
 
FOSE2010 ミニチュートリアル 「データマイニング技術を応用したソフトウェア構築・保守支援」
FOSE2010 ミニチュートリアル 「データマイニング技術を応用したソフトウェア構築・保守支援」FOSE2010 ミニチュートリアル 「データマイニング技術を応用したソフトウェア構築・保守支援」
FOSE2010 ミニチュートリアル 「データマイニング技術を応用したソフトウェア構築・保守支援」Takashi Kobayashi
 

Andere mochten auch (13)

Modeling and Utilizing Security Knowledge for Eliciting Security Requirements
Modeling and Utilizing Security Knowledge for Eliciting Security RequirementsModeling and Utilizing Security Knowledge for Eliciting Security Requirements
Modeling and Utilizing Security Knowledge for Eliciting Security Requirements
 
Understanding Source Code Differences by Separating Refactoring Effects
Understanding Source Code Differences by Separating Refactoring EffectsUnderstanding Source Code Differences by Separating Refactoring Effects
Understanding Source Code Differences by Separating Refactoring Effects
 
Class Responsibility Assignment as Fuzzy Constraint Satisfaction
Class Responsibility Assignment as Fuzzy Constraint SatisfactionClass Responsibility Assignment as Fuzzy Constraint Satisfaction
Class Responsibility Assignment as Fuzzy Constraint Satisfaction
 
Sentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain OntologiesSentence-to-Code Traceability Recovery with Domain Ontologies
Sentence-to-Code Traceability Recovery with Domain Ontologies
 
Refactoring Edit History of Source Code
Refactoring Edit History of Source CodeRefactoring Edit History of Source Code
Refactoring Edit History of Source Code
 
Establishing Regulatory Compliance in Goal-Oriented Requirements Analysis
Establishing Regulatory Compliance in Goal-Oriented Requirements AnalysisEstablishing Regulatory Compliance in Goal-Oriented Requirements Analysis
Establishing Regulatory Compliance in Goal-Oriented Requirements Analysis
 
Detecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic SearchDetecting Occurrences of Refactoring with Heuristic Search
Detecting Occurrences of Refactoring with Heuristic Search
 
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQM
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQMHow Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQM
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQM
 
Terminology Matching of Requirements Specification Documents and Regulations ...
Terminology Matching of Requirements Specification Documents and Regulations ...Terminology Matching of Requirements Specification Documents and Regulations ...
Terminology Matching of Requirements Specification Documents and Regulations ...
 
Historef: A Tool for Edit History Refactoring
Historef: A Tool  for Edit History RefactoringHistoref: A Tool  for Edit History Refactoring
Historef: A Tool for Edit History Refactoring
 
Incremental Feature Location and Identification in Source Code
Incremental Feature Location and Identification in Source CodeIncremental Feature Location and Identification in Source Code
Incremental Feature Location and Identification in Source Code
 
Feature Location for Multi-Layer System Based on Formal Concept Analysis
Feature Location for Multi-Layer System Based on Formal Concept AnalysisFeature Location for Multi-Layer System Based on Formal Concept Analysis
Feature Location for Multi-Layer System Based on Formal Concept Analysis
 
FOSE2010 ミニチュートリアル 「データマイニング技術を応用したソフトウェア構築・保守支援」
FOSE2010 ミニチュートリアル 「データマイニング技術を応用したソフトウェア構築・保守支援」FOSE2010 ミニチュートリアル 「データマイニング技術を応用したソフトウェア構築・保守支援」
FOSE2010 ミニチュートリアル 「データマイニング技術を応用したソフトウェア構築・保守支援」
 

Ähnlich wie Toward Structured Location of Features

EBS and PDH, a comparision
EBS and PDH, a comparisionEBS and PDH, a comparision
EBS and PDH, a comparisionLarry Sherrod
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and conceptsLuca Garulli
 
Joomla Complex Component MVC Proposal
Joomla Complex Component MVC ProposalJoomla Complex Component MVC Proposal
Joomla Complex Component MVC ProposalJúlio Pontes
 
End-to-end Model-driven Development of Applications with Eclipse using the ...
End-to-end Model-driven Development of Applications with Eclipse using  the ...End-to-end Model-driven Development of Applications with Eclipse using  the ...
End-to-end Model-driven Development of Applications with Eclipse using the ...emanuelemolteni
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book IIChuong Nguyen
 
Justin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12neJustin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12neJustin Herrin
 
Business Objects Archiving with 360Suite
Business Objects Archiving with 360SuiteBusiness Objects Archiving with 360Suite
Business Objects Archiving with 360SuiteWiiisdom
 
SharePoint 2010 Knowledge Management Suite: Auto Tagging & Tag Navigation
SharePoint 2010 Knowledge Management Suite: Auto Tagging & Tag NavigationSharePoint 2010 Knowledge Management Suite: Auto Tagging & Tag Navigation
SharePoint 2010 Knowledge Management Suite: Auto Tagging & Tag NavigationLayer2
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 javatwo2011
 
CUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsCUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsAlfresco Software
 
Intro to Features Module on Drupal
Intro to Features Module on DrupalIntro to Features Module on Drupal
Intro to Features Module on DrupalAidan Foster
 
Oracle ebs r12eam part2
Oracle ebs r12eam part2Oracle ebs r12eam part2
Oracle ebs r12eam part2jcvd12
 
Unit 2 b_ex_query_designer
Unit 2 b_ex_query_designerUnit 2 b_ex_query_designer
Unit 2 b_ex_query_designerOnur Sezen
 

Ähnlich wie Toward Structured Location of Features (20)

EBS and PDH, a comparision
EBS and PDH, a comparisionEBS and PDH, a comparision
EBS and PDH, a comparision
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and concepts
 
Joomla Complex Component MVC Proposal
Joomla Complex Component MVC ProposalJoomla Complex Component MVC Proposal
Joomla Complex Component MVC Proposal
 
End-to-end Model-driven Development of Applications with Eclipse using the ...
End-to-end Model-driven Development of Applications with Eclipse using  the ...End-to-end Model-driven Development of Applications with Eclipse using  the ...
End-to-end Model-driven Development of Applications with Eclipse using the ...
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book II
 
Justin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12neJustin Herrin Comparing Joomla CCKs from jd12ne
Justin Herrin Comparing Joomla CCKs from jd12ne
 
Java beans
Java beansJava beans
Java beans
 
Form part1
Form part1Form part1
Form part1
 
Business Objects Archiving with 360Suite
Business Objects Archiving with 360SuiteBusiness Objects Archiving with 360Suite
Business Objects Archiving with 360Suite
 
SharePoint 2010 Knowledge Management Suite: Auto Tagging & Tag Navigation
SharePoint 2010 Knowledge Management Suite: Auto Tagging & Tag NavigationSharePoint 2010 Knowledge Management Suite: Auto Tagging & Tag Navigation
SharePoint 2010 Knowledge Management Suite: Auto Tagging & Tag Navigation
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望
 
Oracle Data Warehouse
Oracle Data WarehouseOracle Data Warehouse
Oracle Data Warehouse
 
Oracle Warehouse
Oracle WarehouseOracle Warehouse
Oracle Warehouse
 
CUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension PointsCUST-1 Share Document Library Extension Points
CUST-1 Share Document Library Extension Points
 
Spring User Guide
Spring User GuideSpring User Guide
Spring User Guide
 
Uml2
Uml2Uml2
Uml2
 
Intro to Features Module on Drupal
Intro to Features Module on DrupalIntro to Features Module on Drupal
Intro to Features Module on Drupal
 
Oracle ebs r12eam part2
Oracle ebs r12eam part2Oracle ebs r12eam part2
Oracle ebs r12eam part2
 
Unit 2 b_ex_query_designer
Unit 2 b_ex_query_designerUnit 2 b_ex_query_designer
Unit 2 b_ex_query_designer
 
Obiee
ObieeObiee
Obiee
 

Kürzlich hochgeladen

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 

Kürzlich hochgeladen (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 

Toward Structured Location of Features

  • 1.
  • 2. 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
  • 3. 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
  • 4. 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  
  • 5. 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  
  • 6. 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  
  • 7. 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:
  • 8. 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()  
  • 9. 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
  • 10. Conclusion Our'Goal:'Structured'Loca+on InterLFeature'Structure •  Stepwise'explora+on'of'implementa+on' •  Concept'lace'obtained'by'formal'concept' structure'of'features analysis Features Feature'List' f1:'Browse'Catalog' f4:'Browse'Product' Search'Catalog,' f1:'Browse'Catalog' Details' ''''Browse'Categories,' f2:'Search'Catalog' InterMFeature'Structure' STRUCTURED% Sign%On%and%Off,' f3:'Browse'Categories' LOCATION f4:'Browse'Product'Details' f3:'Browse' f7:%Sign%On%and% ...... is'a'part'of f5:'Browse'Item'Details' Categories' Off% f6:'Update'Shopping'Cart% IntraMFeature'Structure' f7:%Sign%On%and%Off% is'composed'of f8:'Update'Account' f9:'Update'Personaliza+on' SubMFeature'structure' f10:'Submit'Order' is'implemented'by f6:'Update' f8:'Update'Account ' f2:'Search' f5:'Browse' Shopping'Cart ' f9:'Update' Modules' Catalog' Item'Details' Developer f10:'Submit'Order ' Personaliza+on ' IntraMFeature'Structure •  Call'dependency'graph'obtained'by'dynamic' 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:
  • 11. Credit •  "Day  273  -­‐  Tiny  Trachodon"  by  puuikibeach   –  h^p://www.flickr.com/photos/puuikibeach/3768359322   •  "That  explains  the  nasty  smell"  by  Kyknoord   –  h^p://www.flickr.com/photos/kyknoord/5341831715/