• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Can we predict dependencies using domain information?
 

Can we predict dependencies using domain information?

on

  • 702 views

Presented at 18th Working Conference on Reverse Engineering (WCRE), IEEE, Limerick, Ireland, October, 2011

Presented at 18th Working Conference on Reverse Engineering (WCRE), IEEE, Limerick, Ireland, October, 2011

Statistics

Views

Total Views
702
Views on SlideShare
699
Embed Views
3

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 3

http://www.linkedin.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Can we predict dependencies using domain information? Can we predict dependencies using domain information? Presentation Transcript

    • Can we predict dependencies using domain information? Amir Aryani Fabrizio Perin Mircea Lungu Abdun Mahmood Oscar Nierstrasz RMIT University, Australia University of Bern, SwitzerlandPresented 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 trillionDevelopment Cost of MIS systems in USA, Capers Jones, Applied Software Measurement: Global analysis ofproductivity and quality, Third Edition, McGraw-Hill, 2008
    • Motivation example: It is required to removeBusiness Partner tab from this screen. Fact: There are 346 other screens in this software
    • Common problems insoftware 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-basedcoupling 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 ApplicationM. Lungu and M. Lanza, Softwarenaut, CSMR 2006 Dictionary PostgreSQL/ Oracle
    • 64% of architecturally connectedUICs have domain-based coupling. 64% Recall
    • Precision & Accuracy Dependencies FNM=18 TPM=31 Predictions TPi FPM=76PM = = 30% TPi + FPi TPi + TNiAM = = 73% TNM=223 TPi + FPi + TNi + FNi
    • Improving Precision PrecisionAccuracy Recall
    • Visual ComparisonDomain-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.