Can we predict dependencies using domain information?  Amir Aryani   Fabrizio Perin   Mircea Lungu   Abdun Mahmood   Oscar...
Outline• A method for finding architectural dependencies • without looking at the source code, • without looking at design ...
915,250       Management Information Systems (MIS)                                 $1.8 trillionDevelopment Cost of MIS sy...
Motivation example: It is required to removeBusiness Partner tab from this screen.   Fact: There are 346 other screens in ...
Common problems insoftware maintenance• Systems with legacy code, e.g., COBOL• Hybrid systems, e.g., Python and Java• Miss...
Motivations• Domain-based approach works  • without access to source code,  • without access to design documents.• It migh...
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-based coupling               Aryani et al. ICSM 2010        | UIC1.HAS.USE ∩ UIC2.HAS.USE |                        ...
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 s...
Architectural Dependencies                                                 17,605 Architectural dependencies              ...
64% of architecturally connectedUICs have domain-based coupling.                 64%                       Recall
Precision & Accuracy                          Dependencies FNM=18                                            TPM=31       ...
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...
Further research        opportunities• Can we develop a hybrid method for impact  analysis which uses code analysis and do...
Conclusion• Domain-based coupling can be used for  approximating dependencies where • source code analysis is not an optio...
Upcoming SlideShare
Loading in …5
×

Can we predict dependencies using domain information?

974 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
974
On SlideShare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Can we predict dependencies using domain information?

  1. 1. 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
  2. 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. 3. 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
  4. 4. Motivation example: It is required to removeBusiness Partner tab from this screen. Fact: There are 346 other screens in this software
  5. 5. Common problems insoftware maintenance• Systems with legacy code, e.g., COBOL• Hybrid systems, e.g., Python and Java• Missing design documents• Inaccessible maintenance history
  6. 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. 7. How does it work?• Domain-based Coupling• A case study on ADempiere
  8. 8. Example of related screens Domain variables
  9. 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. 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. 11. Does domain-basedcoupling reflect architectural dependencies?
  12. 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. 13. 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
  14. 14. 64% of architecturally connectedUICs have domain-based coupling. 64% Recall
  15. 15. Precision & Accuracy Dependencies FNM=18 TPM=31 Predictions TPi FPM=76PM = = 30% TPi + FPi TPi + TNiAM = = 73% TNM=223 TPi + FPi + TNi + FNi
  16. 16. Improving Precision PrecisionAccuracy Recall
  17. 17. Visual ComparisonDomain-based Coupling Graph Dependency Graph
  18. 18. What are the related research opportunities?
  19. 19. Future work• Extending the case study to other systems• Studying finer-grained components, e.g., Tabs• Qualitative analysis of false negatives
  20. 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. 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.

×