SlideShare a Scribd company logo
1 of 21
Download to read offline
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.

More Related Content

Similar to 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
 

Similar to 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
 

More from 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
 

More from 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
 

Recently uploaded

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
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
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
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
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
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 Takeoffsammart93
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
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...DianaGray10
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
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
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
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?
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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...
 
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...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

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.