Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Detecting broken pointcuts using structural commonality and degree of interest

Published: 15 December 2017 Publication History

Abstract

An automated approach that recommends pointcuts that likely have or have not broken due to a particular base-code change is proposed.The approach relies on join points selected by a pointcut exhibiting common structural characteristics.Commonality patterns are used to recommend possibly broken pointcuts with a degree of confidence as the developer is typing.The approach was implemented as an extension to the Mylyn Eclipse IDE plug-in, dynamically manipulating its Degree of Interest (DOI) model.Broken pointcuts were 2.14 times more interesting than unbroken ones, with a p-value under 0.1. Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code can lead to join points incorrectly falling in or out of the scope of pointcuts. Deciding which pointcuts have broken due to base-code changes is a daunting venture, especially in large and complex systems. We present an automated approach that recommends pointcuts that are likely to require modification due to a particular base-code change, as well as ones that do not. Our hypothesis is that join points selected by a pointcut exhibit common structural characteristics. Patterns describing such commonality are used to recommend pointcuts that have potentially broken with a degree of confidence as the developer is typing. The approach is implemented as an extension to the popular Mylyn Eclipse IDE plug-in, which maintains focused contexts of entities relevant to the task at hand using a Degree of Interest (DOI) model. We show that it is accurate in revealing broken pointcuts by applying it to multiple versions of several open source projects and evaluating the quality of the recommendations produced against actual modifications. We found that our tool made broken pointcuts 2.14 times more interesting in the DOI model than unbroken ones, with a p-value under 0.1, indicating a significant difference in final DOI value between the two kinds of pointcuts (i.e., broken and unbroken).

References

[1]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, J. Irwin, Aspect oriented programming, in: Lecture Notes in Computer Science, vol. 1241, Springer-Verlag, 1997, pp. 220-242.
[2]
G.C. Murphy, R.J. Walker, E.L.A. Baniassad, M.P. Robillard, A. Lai, M.A. Kersten, Does aspect-oriented programming work?, Commun. ACM, 44 (2001) 75-77.
[3]
M. Kersten, G.C. Murphy, Atlas: a case study in building a web-based learning environment using aspect-oriented programming, in: ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, ACM, New York, NY, USA, 1999, pp. 340-352.
[4]
M. Lippert, C.V. Lopes, A study on exception detection and handling using aspect-oriented programming, in: International Conference on Software Engineering, ACM, New York, NY, USA, 2000, pp. 418-427.
[5]
R. Walker, E. Baniassad, G. Murphy, An initial assessment of aspect-oriented programming, in: International Conference on Software Engineering, 1999, pp. 120-130.
[6]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, W.G. Griswold, An overview of AspectJ, in: Lecture Notes in Computer Science, vol. 2072, Springer, Berlin, Heidelberg, 2001, pp. 327-354.
[7]
C. Koppen, M. Strzer, PCDiff: attacking the fragile pointcut problem, in: European Interactive Workshop on Aspects in Software, 2004, pp. 1-8.
[8]
T. Aotani, H. Masuhara, SCope: an AspectJ compiler for supporting user-defined analysis-based pointcuts, in: International Conference on Aspect-Oriented Software Development, ACM, 2007, pp. 161-172.
[9]
K. Ostermann, M. Mezini, C. Bockisch, Expressive pointcuts for increased modularity, in: Lecture Notes in Computer Science, vol. 3586, Springer, Berlin, Heidelberg, 2005, pp. 214-240.
[10]
W. Cazzola, S. Pini, M. Ancona, Design-based pointcuts robustness against software evolution, in: Workshop on Reflection, AOP, and Meta-Data for Software Evolution, Fakultt fr Informatik, Universitt Magdeburg, 2006, pp. 35-45.
[11]
K. Sakurai, H. Masuhara, Test-based pointcuts for robust and fine-grained join point specification, in: International Conference on Aspect-Oriented Software Development, ACM, Washington, DC, USA, 2008, pp. 96-107.
[12]
K. Klose, K. Ostermann, Back to the future: pointcuts as predicates over traces, in: International Workshop on Foundations of Aspect-Oriented Languages, 2005, pp. 33.
[13]
L.M. Seiter, Role annotations and adaptive aspect frameworks, in: International Workshop on Linking Aspect Technology and Evolution, ACM, New York, NY, USA, 2007, pp. 3.
[14]
L. Wang, T. Aotani, M. Suzuki, Improving the quality of AspectJ application: translating name-based pointcuts to analysis-based pointcuts, in: International Conference on Quality Software, 2014, pp. 27-36.
[15]
J. Aldrich, Open modules: modular reasoning about advice, in: Lecture Notes in Computer Science, vol. 3586, Springer, Berlin, Heidelberg, 2005, pp. 144-168.
[16]
S. Gudmundson, G. Kiczales, Addressing practical software development issues in AspectJ with a pointcut interface, in: Workshop on Advanced Separation of Concerns at the ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, 2001, pp. 1-6.
[17]
R. Khatchadourian, J. Dovland, N. Soundarajan, Enforcing behavioral constraints in evolving aspect-oriented programs, in: International Workshop on Foundations of Aspect-Oriented Languages, ACM, New York, NY, USA, 2008, pp. 19-28.
[18]
W.G. Griswold, K. Sullivan, Y. Song, M. Shonle, N. Tewari, Y. Cai, H. Rajan, Modular software design with crosscutting interfaces, IEEE Softw., 23 (2006) 51-60.
[19]
K. Sullivan, W.G. Griswold, Y. Song, Y. Cai, M. Shonle, N. Tewari, H. Rajan, Information hiding interfaces for aspect-oriented design, in: ACM SIGSOFT Symposium on the Foundations of Software Engineering, ACM, New York, NY, USA, 2005, pp. 166-175.
[20]
M. Bagherzadeh, H. Rajan, G.T. Leavens, S. Mooney, Translucid contracts: expressive specification and modular verification for aspect-oriented interfaces, in: International Conference on Aspect-Oriented Software Development, ACM, New York, NY, USA, 2011, pp. 141-152.
[21]
K. Hoffman, P. Eugster, Bridging Java and AspectJ through explicit join points, in: International Symposium on Principles and Practice of Programming in Java, ACM, New York, NY, USA, 2007, pp. 63-72.
[22]
H. Rajan, G. Leavens, Ptolemy: a language with quantified, typed events, in: Lecture Notes in Computer Science, vol. 5142, Springer, Berlin, Heidelberg, 2008, pp. 155-179.
[23]
E. Bodden,. Tanter, M. Inostroza, Join point interfaces for safe and flexible decoupling of aspects, ACM Trans. Softw. Eng. Methodol., 23 (2014) 7.
[24]
F. Steimann, T. Pawlitzki, S. Apel, C. Kstner, Types and modularity for implicit invocation with implicit announcement, ACM Trans. Softw. Eng. Methodol., 20 (2010) 43.
[25]
A. Kellens, K. Mens, J. Brichau, K. Gybels, Managing the evolution of aspect-oriented software with model-based pointcuts, in: European Conference on Object-Oriented Programming, Springer-Verlag, Berlin, Heidelberg, 2006, pp. 501-525.
[26]
Oracle Corporation, Java Programming Language: Enhancements in JDK 5: Annotations. http://docs.oracle.com/javase/1.5.0/docs/guide/language/annotations.html
[27]
A. Clement, A. Colyer, M. Kersten, Aspect-oriented programming with ajdt, in: ECOOP Workshop on Analysis of Aspect-Oriented Software, 2003, pp. 1-6.
[28]
L. Ye, K.D. Volder, Tool support for understanding and diagnosing pointcut expressions, in: International Conference on Aspect-Oriented Software Development, ACM, New York, NY, USA, 2008, pp. 144-155.
[29]
J. Wloka, R. Hirschfeld, J. Hnsel, Tool-supported refactoring of aspect-oriented programs, in: International Conference on Aspect-Oriented Software Development, ACM, New York, NY, USA, 2008, pp. 132-143.
[30]
J. Zhao, Change impact analysis for aspect-oriented software evolution, in: International Workshop on Principles of Software Evolution, ACM, New York, NY, USA, 2002, pp. 108-112.
[31]
R. Khatchadourian, P. Greenwood, A. Rashid, G. Xu, Pointcut rejuvenation: recovering pointcut expressions in evolving aspect-oriented software, IEEE Trans. Softw. Eng., 38 (2012) 642-657.
[32]
M. Kersten, G.C. Murphy, Mylar: a degree-of-interest model for IDEs, in: International Conference on Aspect-Oriented Software Development, ACM, New York, NY, USA, 2005, pp. 159-168.
[33]
The Eclipse Foundation, The Mylyn task and application lifecycle management framework. http://www.eclipse.org/mylyn
[34]
M. Kersten, G.C. Murphy, Using task context to improve programmer productivity, in: ACM SIGSOFT Symposium on the Foundations of Software Engineering, ACM, New York, NY, USA, 2006, pp. 1-11.
[35]
S. Clarke, R.J. Walker, Composition patterns: an approach to designing reusable aspects, in: International Conference on Software Engineering, IEEE Computer Society, Washington, DC, USA, 2001, pp. 5-14. http://dl.acm.org/citation.cfm?id=381473.381474
[36]
R. Khatchadourian, A. Rashid, H. Masuhara, T. Watanabe, Detecting broken pointcuts using structural commonality and degree of interest, in: International Conference on Automated Software Engineering, IEEE Computer Society, Washington, DC, USA, 2015, pp. 641-646.
[37]
R. Khatchadourian, A. Rashid, H. Masuhara, T. Watanabe, Fraglight: shedding light on broken pointcuts in evolving aspect-oriented software, in: Companion Publication of the ACM SIGPLAN Conference on Systems, Programming, and Applications: Software for Humanity, SPLASH Companion 2015, ACM, New York, NY, USA, 2015, pp. 17-18.
[38]
R. Delamare, B. Baudry, S. Ghosh, Y.L. Traon, A test-driven approach to developing pointcut descriptors in AspectJ, in: International Conference on Software Testing Verification and Validation, IEEE Computer Society, Washington, DC, USA, 2009, pp. 376-385.
[39]
H. Masuhara, G. Kiczales, C. Dutchyn, A compilation and optimization model for aspect-oriented programs, in: Lecture Notes in Computer Science, vol. 2622, Springer, Berlin, Heidelberg, 2003, pp. 46-60.
[40]
S. Apel, How AspectJ is used: an analysis of eleven AspectJ programs, J. Object Technol., 9 (2010) 117-142.
[41]
B. Dagenais, S. Breu, F.W. Warr, M.P. Robillard, Inferring structural patterns for concern traceability in evolving software, in: International Conference on Automated Software Engineering, IEEE/ACM, 2007, pp. 254-263.
[42]
IBM, Eclipse documentation interface IElementChangeListener. http://help.eclipse.org/juno/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/ui/texteditor/IElementStateListener.html
[43]
IBM, Eclipse documentation interface IJavaElementDelta. http://help.eclipse.org/galileo/topic/org.eclipse.jdt.doc.isv/reference/api/org/eclipse/jdt/core/IJavaElementDelta.html
[44]
B. Fluri, M. Wursch, M. Pinzger, H. Gall, Change distilling: tree differencing for fine-grained source code change extraction, IEEE Trans. Softw. Eng., 33 (2007) 725-743.
[45]
J. Dean, D. Grove, C. Chambers, Optimization of object-oriented programs using static class hierarchy analysis, in: Lecture Notes in Computer Science, vol. 952, Springer, Berlin, Heidelberg, 1995, pp. 77-101.
[46]
C.L. Forgy, Rete: a fast algorithm for the many pattern/many object pattern match problem, Artif. Intell., 19 (1982) 324-341.
[47]
E. Figueiredo, N. Cacho, C. Sant'Anna, M. Monteiro, U. Kulesza, A. Garcia, S. Soares, F. Ferrari, S. Khan, F.C. Filho, F. Dantas, Evolving software product lines with aspects: an empirical study on design stability, in: International Conference on Software Engineering, ACM, New York, NY, USA, 2008, pp. 261-270.
[48]
P. Greenwood, T.T. Bartolomei, E. Figueiredo, M. Dsea, A.F. Garcia, N. Cacho, C. Sant'Anna, S. Soares, P. Borba, U. Kulesza, A. Rashid, On the impact of aspectual decompositions on design stability: an empirical study, in: Lecture Notes in Computer Science, vol. 4609, Springer, Berlin, Heidelberg, 2007, pp. 176-200.
[49]
E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, AddisonWesley Professional, 1995.
[50]
R.P. Buse, C. Sadowski, W. Weimer, Benefits and barriers of user evaluation in software engineering research, in: ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, ACM, New York, NY, USA, 2011, pp. 643-656.
[51]
T.T. Nguyen, H.V. Nguyen, H.A. Nguyen, T.N. Nguyen, Aspect recommendation for evolving software, in: International Conference on Software Engineering, ACM, 2011, pp. 361-370.

Cited By

View all
  • (2022)Automated evolution of feature logging statement levels using Git histories and degree of interestScience of Computer Programming10.1016/j.scico.2021.102724214:COnline publication date: 1-Feb-2022

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Science of Computer Programming
Science of Computer Programming  Volume 150, Issue C
December 2017
86 pages

Publisher

Elsevier North-Holland, Inc.

United States

Publication History

Published: 15 December 2017

Author Tags

  1. Software development environments
  2. Software maintenance
  3. Software tools

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Automated evolution of feature logging statement levels using Git histories and degree of interestScience of Computer Programming10.1016/j.scico.2021.102724214:COnline publication date: 1-Feb-2022

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media