Can we predict dependencies using domain information?
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 ﬁnding 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 efﬁcient.• You can collaborate with domain experts.
How does it work?• Domain-based Coupling• A case study on ADempiere
Future work• Extending the case study to other systems• Studying ﬁner-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.