SlideShare a Scribd company logo
1 of 60
Component Search  and Retrieval Advanced Reuse Seminars Eduardo Cruz
Information Retrieval - 1948 ,[object Object],[object Object],[object Object],[object Object],Calvin Northrup Mooers
Mooers' Law: “An information retrieval system will tend not to be used whenever it is more  painful and troublesome for a customer to have  information than for him not to have it,” 1959  Calvin Northrup Mooers
Mass Production Software components   [Mcllroy, 1968]
[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
Software Library ,[object Object],[object Object]
Classification Scheme ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Recall and Precision ,[object Object],[object Object],[object Object],[object Object]
Asset Representation ,[object Object],[object Object],[object Object]
Asset retrieval Goals ,[object Object],[object Object],[object Object],[object Object]
Usually non included information ,[object Object],[object Object],[object Object]
Situational Model x System Model Component retrieval model [Lucrédio et. al , 2004 ]
[object Object],[object Object],[object Object],[object Object],[object Object]
Scott Henninger
Tools
Component Search Tools ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Delphi Search Engine
Ispey.com
SPARS-J – (2003) Filter
SourceBank Filter
CSourceSearch.Net – (2004)
Koders.com – (2004)
CODASE – Launched Sep 9, 2005 Example Searches Browsing Multiple Search Options “… based on the number of people in your company, starting from  $5,000 USD ”
CODASE - Browsing
Other Tools
 
AGORA - Location and Indexing (1998) INTERNET AltaVista Search Index Server Filter INDEX AltaVista  Query Server Web Server JavaBeans Agent JavaBeans Introspector JavaBeans Agent JavaBeans Introspector JavaBeans Agent JavaBeans Introspector
Component Rank (1998) V 1 V 3 V 2 0.2 0.2 0.2 0.2 0.4 0.4 0.4 D12 = 0.5 D13 = 0.5 D23 = 1 D31 = 1 Nodes v Edges e Graph G Weight w Distribution Ratio d
[object Object]
Clustered Component Graph V1 ≡  V4  ,  V2  ≡  V6 V7 V’26 V’14 V’5 V’3 V3 V2 V1 V7 V6 V4 V5
[object Object],[object Object],[object Object],[object Object],V3 V2 V1 V7 V6 V4 V5
Component Rank System Architecture .java file ≡ component (1) Similarity  Measurement (2) Clustering (3) Use Relation  Extraction (4) Component Graph  Construction (5) Component Rank  Computation by Repetition (6) De-Clustering to  Original Component Graph INPUT OUTPUT Order of Weights ≡ Component Rank of .java files
Simple Copied  Components Copied  Components Other Components Non-clustered component Graph 1/4 Clustering Before Weight Computation 1/4 1/4 1/4 1/3 Clustering After Weight Computation 1/3 1/6 1/6 A B A B X Y A’ B’ X’ Y’ A’ B’ X’ Y’
[object Object],[object Object],[object Object]
Copied AND MODIFIED  Components Copied and Modified Components Other Components Non-clustered component Graph Clustering Before Weight Computation 1/5 1/5 Original  Components A B’ C’ 2/5 1/5 1/5 Clustering Before Weight Computation 1/5 1/6 A’ B’ C’ 1/3 1/6 1/6 A B A C X Y X’ Y’ X’ Y’
Beyond Searching and Browsing ,[object Object],[object Object],[object Object]
CodeBroker – (2001) ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
Information Islands Belief Vaguely Known Well  Known  L4: Entire Information Space Unknown components
CodeBroker L3: Belief L2: Vaguely Known L1:  Well  Known L4: Entire Information Space Information Use: L1 – Use by Memory L2 – Use by Recall L3 – Use by Anticipation L4 – Use by Delivery Already Known Components Irrelevant Components Task Relevant Information
Program Aspects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Information delivery ,[object Object],[object Object],[object Object],[object Object]
Information delivery ,[object Object],[object Object]
Latent Semantic Analysis (LSA) ,[object Object],[object Object],[object Object]
 
Comments signature Discourse model User model
Koders Enterprise – (2004)
M.A.R.A.C.A.T.U. –  M odern  A rchitecture for  R etrieving  A ll  C omponents  A t  T he  U niverse (2005)
Using Structural Context  to Recommend Source  Code Examples Reid Holmes and Gail C. Murphy University of British Columbia Software Practices Lab
The Problem: A Concrete Example ,[object Object],[object Object],[object Object]
Project Repository Development Environment Using Structural Context to Recommend Source  Code Examples -  Reid Holmes and Gail C. Murphy Structural Context Examples
Strathcona: Extract Structural Context ViewPart SampleView setMessage(String) IStatusLineManager setMessage(String)
Strathcona: Example Navigation ,[object Object],[object Object],[object Object]
Strathcona: Viewing Example Source ,[object Object],[object Object],[object Object]
Conclusion ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
References ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bibliography ,[object Object],[object Object],[object Object],[object Object],[object Object]
“ Imperfect technology in a working market is sustainable;  perfect technology without any market will vanish” [Szyperski, 1999]

More Related Content

What's hot

FRBR Applied to Scientific Data by Joseph A. Hourclé
FRBR Applied to Scientific Data by Joseph A. HourcléFRBR Applied to Scientific Data by Joseph A. Hourclé
FRBR Applied to Scientific Data by Joseph A. Hourclé
PVC.ASIST
 
Data Mining and the Web_Past_Present and Future
Data Mining and the Web_Past_Present and FutureData Mining and the Web_Past_Present and Future
Data Mining and the Web_Past_Present and Future
feiwin
 

What's hot (8)

A Conceptual Dependency Graph Based Keyword Extraction Model for Source Code...
 A Conceptual Dependency Graph Based Keyword Extraction Model for Source Code... A Conceptual Dependency Graph Based Keyword Extraction Model for Source Code...
A Conceptual Dependency Graph Based Keyword Extraction Model for Source Code...
 
Integrating AnIML Files in Electronic Laboratory Notebooks - PittCon 2015
Integrating AnIML Files in Electronic Laboratory Notebooks - PittCon 2015Integrating AnIML Files in Electronic Laboratory Notebooks - PittCon 2015
Integrating AnIML Files in Electronic Laboratory Notebooks - PittCon 2015
 
FRBR Applied to Scientific Data by Joseph A. Hourclé
FRBR Applied to Scientific Data by Joseph A. HourcléFRBR Applied to Scientific Data by Joseph A. Hourclé
FRBR Applied to Scientific Data by Joseph A. Hourclé
 
Mining Software Repositories
Mining Software RepositoriesMining Software Repositories
Mining Software Repositories
 
Overview of the Analytical Information Markup Language (AnIML)
Overview of the Analytical Information Markup Language (AnIML)Overview of the Analytical Information Markup Language (AnIML)
Overview of the Analytical Information Markup Language (AnIML)
 
Data mining weka
Data mining wekaData mining weka
Data mining weka
 
Data Mining and the Web_Past_Present and Future
Data Mining and the Web_Past_Present and FutureData Mining and the Web_Past_Present and Future
Data Mining and the Web_Past_Present and Future
 
Feature Extraction for Large-Scale Text Collections
Feature Extraction for Large-Scale Text CollectionsFeature Extraction for Large-Scale Text Collections
Feature Extraction for Large-Scale Text Collections
 

Viewers also liked

Storage And Retrieval Of Information
Storage And Retrieval Of InformationStorage And Retrieval Of Information
Storage And Retrieval Of Information
Marcus9000
 
Information storage and retrieval
Information storage and retrievalInformation storage and retrieval
Information storage and retrieval
Sadaf Rafiq
 

Viewers also liked (12)

Characterization of reusable software components for better reuse
Characterization of reusable software components for better reuseCharacterization of reusable software components for better reuse
Characterization of reusable software components for better reuse
 
Reuse Software Components (IMS 2006)
Reuse Software Components (IMS 2006)Reuse Software Components (IMS 2006)
Reuse Software Components (IMS 2006)
 
Software testing tools
Software testing toolsSoftware testing tools
Software testing tools
 
Tutorial 1 (information retrieval basics)
Tutorial 1 (information retrieval basics)Tutorial 1 (information retrieval basics)
Tutorial 1 (information retrieval basics)
 
Introduction to Information Retrieval
Introduction to Information RetrievalIntroduction to Information Retrieval
Introduction to Information Retrieval
 
Information Retrieval
Information RetrievalInformation Retrieval
Information Retrieval
 
Storage And Retrieval Of Information
Storage And Retrieval Of InformationStorage And Retrieval Of Information
Storage And Retrieval Of Information
 
Basic Software Tools for multi-media
Basic Software Tools for multi-mediaBasic Software Tools for multi-media
Basic Software Tools for multi-media
 
Ch2 sw processes
Ch2 sw processesCh2 sw processes
Ch2 sw processes
 
Ch15 software reuse
Ch15 software reuseCh15 software reuse
Ch15 software reuse
 
Ch1 introduction
Ch1 introductionCh1 introduction
Ch1 introduction
 
Information storage and retrieval
Information storage and retrievalInformation storage and retrieval
Information storage and retrieval
 

Similar to Component Search and Retrieval

Term Paper VirtualizationDue Week 10 and worth 210 pointsThis.docx
Term Paper VirtualizationDue Week 10 and worth 210 pointsThis.docxTerm Paper VirtualizationDue Week 10 and worth 210 pointsThis.docx
Term Paper VirtualizationDue Week 10 and worth 210 pointsThis.docx
mattinsonjanel
 
OOAD unit1 introduction to object orientation
 OOAD unit1 introduction to object orientation OOAD unit1 introduction to object orientation
OOAD unit1 introduction to object orientation
Dr Chetan Shelke
 
Machine Learned Relevance at A Large Scale Search Engine
Machine Learned Relevance at A Large Scale Search EngineMachine Learned Relevance at A Large Scale Search Engine
Machine Learned Relevance at A Large Scale Search Engine
Salford Systems
 
Data_Mining_for_Software_Engineering.pdf
Data_Mining_for_Software_Engineering.pdfData_Mining_for_Software_Engineering.pdf
Data_Mining_for_Software_Engineering.pdf
assadabbas22
 

Similar to Component Search and Retrieval (20)

TECHNIQUES FOR COMPONENT REUSABLE APPROACH
TECHNIQUES FOR COMPONENT REUSABLE APPROACHTECHNIQUES FOR COMPONENT REUSABLE APPROACH
TECHNIQUES FOR COMPONENT REUSABLE APPROACH
 
Uncovering Library Features from API Usage on Stack Overflow
Uncovering Library Features from API Usage on Stack OverflowUncovering Library Features from API Usage on Stack Overflow
Uncovering Library Features from API Usage on Stack Overflow
 
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptxFAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
FAST PHRASE SEARCH FOR ENCRYPTED CLOUD STORAGE.pptx
 
Btech IT Sem VII and VIII-1 (1).pdf
Btech IT Sem VII and VIII-1 (1).pdfBtech IT Sem VII and VIII-1 (1).pdf
Btech IT Sem VII and VIII-1 (1).pdf
 
Searching Repositories of Web Application Models
Searching Repositories of Web Application ModelsSearching Repositories of Web Application Models
Searching Repositories of Web Application Models
 
CS6007 information retrieval - 5 units notes
CS6007   information retrieval - 5 units notesCS6007   information retrieval - 5 units notes
CS6007 information retrieval - 5 units notes
 
Term Paper VirtualizationDue Week 10 and worth 210 pointsThis.docx
Term Paper VirtualizationDue Week 10 and worth 210 pointsThis.docxTerm Paper VirtualizationDue Week 10 and worth 210 pointsThis.docx
Term Paper VirtualizationDue Week 10 and worth 210 pointsThis.docx
 
Software component reuse repository
Software component reuse repositorySoftware component reuse repository
Software component reuse repository
 
Learning activity 4
Learning activity 4Learning activity 4
Learning activity 4
 
Algorithm for calculating relevance of documents in information retrieval sys...
Algorithm for calculating relevance of documents in information retrieval sys...Algorithm for calculating relevance of documents in information retrieval sys...
Algorithm for calculating relevance of documents in information retrieval sys...
 
OOAD unit1 introduction to object orientation
 OOAD unit1 introduction to object orientation OOAD unit1 introduction to object orientation
OOAD unit1 introduction to object orientation
 
Machine Learned Relevance at A Large Scale Search Engine
Machine Learned Relevance at A Large Scale Search EngineMachine Learned Relevance at A Large Scale Search Engine
Machine Learned Relevance at A Large Scale Search Engine
 
Privacy preserving multi-keyword ranked search over encrypted cloud data
Privacy preserving multi-keyword ranked search over encrypted cloud dataPrivacy preserving multi-keyword ranked search over encrypted cloud data
Privacy preserving multi-keyword ranked search over encrypted cloud data
 
Data_Mining_for_Software_Engineering.pdf
Data_Mining_for_Software_Engineering.pdfData_Mining_for_Software_Engineering.pdf
Data_Mining_for_Software_Engineering.pdf
 
ThesisProposal
ThesisProposalThesisProposal
ThesisProposal
 
IRJET- Data Mining - Secure Keyword Manager
IRJET- Data Mining - Secure Keyword ManagerIRJET- Data Mining - Secure Keyword Manager
IRJET- Data Mining - Secure Keyword Manager
 
A Case Study Of A Reusable Component Collection
A Case Study Of A Reusable Component CollectionA Case Study Of A Reusable Component Collection
A Case Study Of A Reusable Component Collection
 
Software Analytics: Towards Software Mining that Matters (2014)
Software Analytics:Towards Software Mining that Matters (2014)Software Analytics:Towards Software Mining that Matters (2014)
Software Analytics: Towards Software Mining that Matters (2014)
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4
 
C# 3.0 and LINQ Tech Talk
C# 3.0 and LINQ Tech TalkC# 3.0 and LINQ Tech Talk
C# 3.0 and LINQ Tech Talk
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
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
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Component Search and Retrieval

  • 1. Component Search and Retrieval Advanced Reuse Seminars Eduardo Cruz
  • 2.
  • 3. Mooers' Law: “An information retrieval system will tend not to be used whenever it is more painful and troublesome for a customer to have information than for him not to have it,” 1959 Calvin Northrup Mooers
  • 4. Mass Production Software components [Mcllroy, 1968]
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. Situational Model x System Model Component retrieval model [Lucrédio et. al , 2004 ]
  • 14.
  • 16. Tools
  • 17.
  • 18.  
  • 25. CODASE – Launched Sep 9, 2005 Example Searches Browsing Multiple Search Options “… based on the number of people in your company, starting from $5,000 USD ”
  • 28.  
  • 29. AGORA - Location and Indexing (1998) INTERNET AltaVista Search Index Server Filter INDEX AltaVista Query Server Web Server JavaBeans Agent JavaBeans Introspector JavaBeans Agent JavaBeans Introspector JavaBeans Agent JavaBeans Introspector
  • 30. Component Rank (1998) V 1 V 3 V 2 0.2 0.2 0.2 0.2 0.4 0.4 0.4 D12 = 0.5 D13 = 0.5 D23 = 1 D31 = 1 Nodes v Edges e Graph G Weight w Distribution Ratio d
  • 31.
  • 32. Clustered Component Graph V1 ≡ V4 , V2 ≡ V6 V7 V’26 V’14 V’5 V’3 V3 V2 V1 V7 V6 V4 V5
  • 33.
  • 34. Component Rank System Architecture .java file ≡ component (1) Similarity Measurement (2) Clustering (3) Use Relation Extraction (4) Component Graph Construction (5) Component Rank Computation by Repetition (6) De-Clustering to Original Component Graph INPUT OUTPUT Order of Weights ≡ Component Rank of .java files
  • 35. Simple Copied Components Copied Components Other Components Non-clustered component Graph 1/4 Clustering Before Weight Computation 1/4 1/4 1/4 1/3 Clustering After Weight Computation 1/3 1/6 1/6 A B A B X Y A’ B’ X’ Y’ A’ B’ X’ Y’
  • 36.
  • 37. Copied AND MODIFIED Components Copied and Modified Components Other Components Non-clustered component Graph Clustering Before Weight Computation 1/5 1/5 Original Components A B’ C’ 2/5 1/5 1/5 Clustering Before Weight Computation 1/5 1/6 A’ B’ C’ 1/3 1/6 1/6 A B A C X Y X’ Y’ X’ Y’
  • 38.
  • 39.
  • 40.
  • 41. Information Islands Belief Vaguely Known Well Known L4: Entire Information Space Unknown components
  • 42. CodeBroker L3: Belief L2: Vaguely Known L1: Well Known L4: Entire Information Space Information Use: L1 – Use by Memory L2 – Use by Recall L3 – Use by Anticipation L4 – Use by Delivery Already Known Components Irrelevant Components Task Relevant Information
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.  
  • 48. Comments signature Discourse model User model
  • 50. M.A.R.A.C.A.T.U. – M odern A rchitecture for R etrieving A ll C omponents A t T he U niverse (2005)
  • 51. Using Structural Context to Recommend Source Code Examples Reid Holmes and Gail C. Murphy University of British Columbia Software Practices Lab
  • 52.
  • 53. Project Repository Development Environment Using Structural Context to Recommend Source Code Examples - Reid Holmes and Gail C. Murphy Structural Context Examples
  • 54. Strathcona: Extract Structural Context ViewPart SampleView setMessage(String) IStatusLineManager setMessage(String)
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60. “ Imperfect technology in a working market is sustainable; perfect technology without any market will vanish” [Szyperski, 1999]