SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Can we predict
 dependencies using
 domain information?

  Amir Aryani   Fabrizio Perin   Mircea Lungu   Abdun Mahmood   Oscar Nierstrasz


                         RMIT University, Australia
                         University of Bern, Switzerland

Presented at 18th Working Conference on Reverse Engineering (WCRE),
IEEE, Limerick, Ireland, October, 2011
Outline
• A method for finding architectural dependencies

 • without looking at the source code,

 • without looking at design documents.

• A case study on ADempiere.

• Research collaboration opportunities.
915,250
       Management Information Systems (MIS)


                                 $1.8 trillion


Development Cost of MIS systems in USA, Capers Jones, Applied Software Measurement: Global analysis of
productivity and quality, Third Edition, McGraw-Hill, 2008
Motivation example: It is required to remove
Business Partner tab from this screen.




   Fact: There are 346 other screens in this software
Common problems in
software maintenance
• Systems with legacy code, e.g., COBOL

• Hybrid systems, e.g., Python and Java

• Missing design documents

• Inaccessible maintenance history
Motivations

• Domain-based approach works
  • without access to source code,
  • without access to design documents.
• It might be cost efficient.
• You can collaborate with domain experts.
How does it work?

• Domain-based Coupling

• A case study on ADempiere
Example of related screens

               Domain variables
Domain-level relationships
                 Aryani et al. ICSM 2010


             User Interface Component

                HAS

  Domain
 Functions      f1                     f2         f3

                      USES

  Domain                     d1        d3
                                             d4




 Variables              d3
                                  d1         d9


                                        d5
Domain-based coupling               Aryani et al. ICSM 2010



        | UIC1.HAS.USE ∩ UIC2.HAS.USE |
                                                                                                                   [0..1]
        | UIC1.HAS.USE ∪ UIC2.HAS.USE |

UIC 1   f1   f2                                                                                                 UIC 2   f3   f4
                                                                                      d7

                                 d3                                     d7


   HAS.USE             d1
                                                  d5                                            d4
                                                                                                          d3
                                                                                                                HAS.USE
                                 d3                d2
                                                             d9         d4                 d4
                                             d4                                  d3
                                                                                                           d5
                                                   d6
                                      d5                               d7                  d5
                  d9
                            d1                          d7                            d1             d1

                                                  d8
                                       d9                                   d8              d9
                                                                  d7                  d2
Does domain-based
coupling reflect architectural
      dependencies?
Case Study
• 120,111 times downloaded in 2011

• 3,531 Java Classes

• 2,569,854 lines of code

• Four distinct interfaces

• 347 screens
Architectural Dependencies
                                                 17,605 Architectural dependencies

                                                 Presentation
                                                 Layer



                                                 14,898 Source code dependencies
                                                 Source Code
                                                 Layer


                                                 20,310 Database dependencies
                                                 Data                                    SQL


                                                 Layer          Application
M. Lungu and M. Lanza, Softwarenaut, CSMR 2006                  Dictionary PostgreSQL/
                                                                             Oracle
64% of architecturally connected
UICs have domain-based coupling.


                 64%
                       Recall
Precision & Accuracy
                          Dependencies FNM=18
                                            TPM=31
                             Predictions
           TPi                                  FPM=76
PM =                 = 30%
         TPi + FPi

             TPi + TNi
AM =                           = 73%            TNM=223
         TPi + FPi + TNi + FNi
Improving Precision
           Precision




Accuracy               Recall
Visual Comparison




Domain-based Coupling Graph   Dependency Graph
What are the related research
       opportunities?
Future work

• Extending the case study to other systems

• Studying finer-grained components, e.g., Tabs

• Qualitative analysis of false negatives
Further research
        opportunities
• Can we develop a hybrid method for impact
  analysis which uses code analysis and domain
  information?

• Can we use domain-based coupling to modularise
  the source code to more domain relevant blocks?

• Can domain information assist dynamic analysis?
Conclusion
• Domain-based coupling can be used for
  approximating dependencies where
 • source code analysis is not an option,
 • design documents are outdated or
   missing.
• In future work, we plan to experiment other
  applications of domain-based coupling.

Weitere ähnliche Inhalte

Ähnlich wie Can we predict dependencies using domain information?

David Loureiro - Presentation at HP's HPC & OSL TES
David Loureiro - Presentation at HP's HPC & OSL TESDavid Loureiro - Presentation at HP's HPC & OSL TES
David Loureiro - Presentation at HP's HPC & OSL TESSysFera
 
D3 : Data driven documents with Data visualization principles .
D3 : Data driven documents with Data visualization principles .D3 : Data driven documents with Data visualization principles .
D3 : Data driven documents with Data visualization principles .Moahmed Sweelam
 
Session 46 - Principles of workflow management and execution
Session 46 - Principles of workflow management and execution Session 46 - Principles of workflow management and execution
Session 46 - Principles of workflow management and execution ISSGC Summer School
 
Cluster Computing with Dryad
Cluster Computing with DryadCluster Computing with Dryad
Cluster Computing with Dryadbutest
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsMark Windholtz
 
Towards Recovering the Software Architecture of Microservice-based Systems
Towards Recovering the Software Architecture of Microservice-based SystemsTowards Recovering the Software Architecture of Microservice-based Systems
Towards Recovering the Software Architecture of Microservice-based SystemsPaolo Di Francesco
 
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会Eiji Sekiya
 
Rina IRATI GLIF Singapore 2013
Rina IRATI GLIF Singapore 2013Rina IRATI GLIF Singapore 2013
Rina IRATI GLIF Singapore 2013Eleni Trouva
 
The Neo4j Data Platform for Today & Tomorrow.pdf
The Neo4j Data Platform for Today & Tomorrow.pdfThe Neo4j Data Platform for Today & Tomorrow.pdf
The Neo4j Data Platform for Today & Tomorrow.pdfNeo4j
 
10266 developing data access solutions with microsoft visual studio 2010
10266 developing data access solutions with microsoft visual studio 201010266 developing data access solutions with microsoft visual studio 2010
10266 developing data access solutions with microsoft visual studio 2010bestip
 
DB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in NutshellDB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in NutshellCuneyt Goksu
 
Cluster Computing with Dryad
Cluster Computing with DryadCluster Computing with Dryad
Cluster Computing with Dryadbutest
 
XMpLant delivering interoperability
XMpLant delivering interoperabilityXMpLant delivering interoperability
XMpLant delivering interoperabilityTaiheon Choi
 
Multi-bundle Scoping in OSGi
Multi-bundle Scoping in OSGiMulti-bundle Scoping in OSGi
Multi-bundle Scoping in OSGiglynnormington
 
Feedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptxFeedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptxGuillaume Saint Etienne
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Ambassador Labs
 
Conole vilnius 3_nov
Conole vilnius 3_novConole vilnius 3_nov
Conole vilnius 3_novgrainne
 
Introduction to D programming language at Weka.IO
Introduction to D programming language at Weka.IOIntroduction to D programming language at Weka.IO
Introduction to D programming language at Weka.IOLiran Zvibel
 

Ähnlich wie Can we predict dependencies using domain information? (20)

David Loureiro - Presentation at HP's HPC & OSL TES
David Loureiro - Presentation at HP's HPC & OSL TESDavid Loureiro - Presentation at HP's HPC & OSL TES
David Loureiro - Presentation at HP's HPC & OSL TES
 
D3 : Data driven documents with Data visualization principles .
D3 : Data driven documents with Data visualization principles .D3 : Data driven documents with Data visualization principles .
D3 : Data driven documents with Data visualization principles .
 
Session 46 - Principles of workflow management and execution
Session 46 - Principles of workflow management and execution Session 46 - Principles of workflow management and execution
Session 46 - Principles of workflow management and execution
 
Cluster Computing with Dryad
Cluster Computing with DryadCluster Computing with Dryad
Cluster Computing with Dryad
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 
Towards Recovering the Software Architecture of Microservice-based Systems
Towards Recovering the Software Architecture of Microservice-based SystemsTowards Recovering the Software Architecture of Microservice-based Systems
Towards Recovering the Software Architecture of Microservice-based Systems
 
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
 
Rina IRATI GLIF Singapore 2013
Rina IRATI GLIF Singapore 2013Rina IRATI GLIF Singapore 2013
Rina IRATI GLIF Singapore 2013
 
The Neo4j Data Platform for Today & Tomorrow.pdf
The Neo4j Data Platform for Today & Tomorrow.pdfThe Neo4j Data Platform for Today & Tomorrow.pdf
The Neo4j Data Platform for Today & Tomorrow.pdf
 
Zend Di in ZF 2.0
Zend Di in ZF 2.0Zend Di in ZF 2.0
Zend Di in ZF 2.0
 
10266 developing data access solutions with microsoft visual studio 2010
10266 developing data access solutions with microsoft visual studio 201010266 developing data access solutions with microsoft visual studio 2010
10266 developing data access solutions with microsoft visual studio 2010
 
DB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in NutshellDB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in Nutshell
 
Cluster Computing with Dryad
Cluster Computing with DryadCluster Computing with Dryad
Cluster Computing with Dryad
 
XMpLant delivering interoperability
XMpLant delivering interoperabilityXMpLant delivering interoperability
XMpLant delivering interoperability
 
Multi-bundle Scoping in OSGi
Multi-bundle Scoping in OSGiMulti-bundle Scoping in OSGi
Multi-bundle Scoping in OSGi
 
Feedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptxFeedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptx
 
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
Montreal Kubernetes Meetup: Developer-first workflows (for microservices) on ...
 
Conole vilnius 3_nov
Conole vilnius 3_novConole vilnius 3_nov
Conole vilnius 3_nov
 
Typescript++1
Typescript++1Typescript++1
Typescript++1
 
Introduction to D programming language at Weka.IO
Introduction to D programming language at Weka.IOIntroduction to D programming language at Weka.IO
Introduction to D programming language at Weka.IO
 

Mehr von amiraryani

Visualising Research Graph using Neo4j and Gephi
Visualising Research Graph using Neo4j and GephiVisualising Research Graph using Neo4j and Gephi
Visualising Research Graph using Neo4j and Gephiamiraryani
 
Using the Research Graph and Data Switchboard for cross-platform discovery
Using the Research Graph and Data Switchboard for cross-platform discoveryUsing the Research Graph and Data Switchboard for cross-platform discovery
Using the Research Graph and Data Switchboard for cross-platform discoveryamiraryani
 
Research Data Alliance Plenary 9: DDRI Working Group Session
Research Data Alliance Plenary 9: DDRI Working Group SessionResearch Data Alliance Plenary 9: DDRI Working Group Session
Research Data Alliance Plenary 9: DDRI Working Group Sessionamiraryani
 
Research Graph: Connecting Identifiers across Research Data Infrastructures
Research Graph: Connecting Identifiers across Research Data InfrastructuresResearch Graph: Connecting Identifiers across Research Data Infrastructures
Research Graph: Connecting Identifiers across Research Data Infrastructuresamiraryani
 
Using Neo4j for exploring the research graph connections made by RD-Switchboard
Using Neo4j for exploring the research graph connections made by RD-SwitchboardUsing Neo4j for exploring the research graph connections made by RD-Switchboard
Using Neo4j for exploring the research graph connections made by RD-Switchboardamiraryani
 
ORCID in RD-Switchboard
ORCID in RD-SwitchboardORCID in RD-Switchboard
ORCID in RD-Switchboardamiraryani
 
Research Data and the Future of Software Engineering
Research Data and the Future of Software EngineeringResearch Data and the Future of Software Engineering
Research Data and the Future of Software Engineeringamiraryani
 
Report from RDAPlenary 3 to DataCitation Community in Australia
Report from RDAPlenary 3 to DataCitation Community in AustraliaReport from RDAPlenary 3 to DataCitation Community in Australia
Report from RDAPlenary 3 to DataCitation Community in Australiaamiraryani
 
Data Description Registry Interoperability WG at Research Data Alliance Third...
Data Description Registry Interoperability WG at Research Data Alliance Third...Data Description Registry Interoperability WG at Research Data Alliance Third...
Data Description Registry Interoperability WG at Research Data Alliance Third...amiraryani
 
ORCID integration: A case study from ANDS and international development
ORCID integration: A case study from ANDS and international developmentORCID integration: A case study from ANDS and international development
ORCID integration: A case study from ANDS and international developmentamiraryani
 

Mehr von amiraryani (10)

Visualising Research Graph using Neo4j and Gephi
Visualising Research Graph using Neo4j and GephiVisualising Research Graph using Neo4j and Gephi
Visualising Research Graph using Neo4j and Gephi
 
Using the Research Graph and Data Switchboard for cross-platform discovery
Using the Research Graph and Data Switchboard for cross-platform discoveryUsing the Research Graph and Data Switchboard for cross-platform discovery
Using the Research Graph and Data Switchboard for cross-platform discovery
 
Research Data Alliance Plenary 9: DDRI Working Group Session
Research Data Alliance Plenary 9: DDRI Working Group SessionResearch Data Alliance Plenary 9: DDRI Working Group Session
Research Data Alliance Plenary 9: DDRI Working Group Session
 
Research Graph: Connecting Identifiers across Research Data Infrastructures
Research Graph: Connecting Identifiers across Research Data InfrastructuresResearch Graph: Connecting Identifiers across Research Data Infrastructures
Research Graph: Connecting Identifiers across Research Data Infrastructures
 
Using Neo4j for exploring the research graph connections made by RD-Switchboard
Using Neo4j for exploring the research graph connections made by RD-SwitchboardUsing Neo4j for exploring the research graph connections made by RD-Switchboard
Using Neo4j for exploring the research graph connections made by RD-Switchboard
 
ORCID in RD-Switchboard
ORCID in RD-SwitchboardORCID in RD-Switchboard
ORCID in RD-Switchboard
 
Research Data and the Future of Software Engineering
Research Data and the Future of Software EngineeringResearch Data and the Future of Software Engineering
Research Data and the Future of Software Engineering
 
Report from RDAPlenary 3 to DataCitation Community in Australia
Report from RDAPlenary 3 to DataCitation Community in AustraliaReport from RDAPlenary 3 to DataCitation Community in Australia
Report from RDAPlenary 3 to DataCitation Community in Australia
 
Data Description Registry Interoperability WG at Research Data Alliance Third...
Data Description Registry Interoperability WG at Research Data Alliance Third...Data Description Registry Interoperability WG at Research Data Alliance Third...
Data Description Registry Interoperability WG at Research Data Alliance Third...
 
ORCID integration: A case study from ANDS and international development
ORCID integration: A case study from ANDS and international developmentORCID integration: A case study from ANDS and international development
ORCID integration: A case study from ANDS and international development
 

Kürzlich hochgeladen

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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 2024The Digital Insurer
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
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...Enterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Kürzlich hochgeladen (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
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...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
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...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Can we predict dependencies using domain information?

  • 1. Can we predict dependencies using domain information? Amir Aryani Fabrizio Perin Mircea Lungu Abdun Mahmood Oscar Nierstrasz RMIT University, Australia University of Bern, Switzerland Presented at 18th Working Conference on Reverse Engineering (WCRE), IEEE, Limerick, Ireland, October, 2011
  • 2. Outline • A method for finding architectural dependencies • without looking at the source code, • without looking at design documents. • A case study on ADempiere. • Research collaboration opportunities.
  • 3. 915,250 Management Information Systems (MIS) $1.8 trillion Development Cost of MIS systems in USA, Capers Jones, Applied Software Measurement: Global analysis of productivity and quality, Third Edition, McGraw-Hill, 2008
  • 4. Motivation example: It is required to remove Business Partner tab from this screen. Fact: There are 346 other screens in this software
  • 5. Common problems in software maintenance • Systems with legacy code, e.g., COBOL • Hybrid systems, e.g., Python and Java • Missing design documents • Inaccessible maintenance history
  • 6. Motivations • Domain-based approach works • without access to source code, • without access to design documents. • It might be cost efficient. • You can collaborate with domain experts.
  • 7. How does it work? • Domain-based Coupling • A case study on ADempiere
  • 8. Example of related screens Domain variables
  • 9. Domain-level relationships Aryani et al. ICSM 2010 User Interface Component HAS Domain Functions f1 f2 f3 USES Domain d1 d3 d4 Variables d3 d1 d9 d5
  • 10. Domain-based coupling Aryani et al. ICSM 2010 | UIC1.HAS.USE ∩ UIC2.HAS.USE | [0..1] | UIC1.HAS.USE ∪ UIC2.HAS.USE | UIC 1 f1 f2 UIC 2 f3 f4 d7 d3 d7 HAS.USE d1 d5 d4 d3 HAS.USE d3 d2 d9 d4 d4 d4 d3 d5 d6 d5 d7 d5 d9 d1 d7 d1 d1 d8 d9 d8 d9 d7 d2
  • 11. Does domain-based coupling reflect architectural dependencies?
  • 12. Case Study • 120,111 times downloaded in 2011 • 3,531 Java Classes • 2,569,854 lines of code • Four distinct interfaces • 347 screens
  • 13. Architectural Dependencies 17,605 Architectural dependencies Presentation Layer 14,898 Source code dependencies Source Code Layer 20,310 Database dependencies Data SQL Layer Application M. Lungu and M. Lanza, Softwarenaut, CSMR 2006 Dictionary PostgreSQL/ Oracle
  • 14. 64% of architecturally connected UICs have domain-based coupling. 64% Recall
  • 15. Precision & Accuracy Dependencies FNM=18 TPM=31 Predictions TPi FPM=76 PM = = 30% TPi + FPi TPi + TNi AM = = 73% TNM=223 TPi + FPi + TNi + FNi
  • 16. Improving Precision Precision Accuracy Recall
  • 17. Visual Comparison Domain-based Coupling Graph Dependency Graph
  • 18. What are the related research opportunities?
  • 19. Future work • Extending the case study to other systems • Studying finer-grained components, e.g., Tabs • Qualitative analysis of false negatives
  • 20. Further research opportunities • Can we develop a hybrid method for impact analysis which uses code analysis and domain information? • Can we use domain-based coupling to modularise the source code to more domain relevant blocks? • Can domain information assist dynamic analysis?
  • 21. Conclusion • Domain-based coupling can be used for approximating dependencies where • source code analysis is not an option, • design documents are outdated or missing. • In future work, we plan to experiment other applications of domain-based coupling.