{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:30:11Z","timestamp":1750307411449,"version":"3.41.0"},"reference-count":63,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2010,8,1]],"date-time":"2010-08-01T00:00:00Z","timestamp":1280620800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000143","name":"Division of Computing and Communication Foundations","doi-asserted-by":"publisher","award":["FCA-04-29947CCF-06-13840CCF-0613845CNS-06-27354CNS-07-09217"],"award-info":[{"award-number":["FCA-04-29947CCF-06-13840CCF-0613845CNS-06-27354CNS-07-09217"]}],"id":[{"id":"10.13039\/100000143","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["FCA-04-29947CCF-06-13840CCF-0613845CNS-06-27354CNS-07-09217"],"award-info":[{"award-number":["FCA-04-29947CCF-06-13840CCF-0613845CNS-06-27354CNS-07-09217"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000144","name":"Division of Computer and Network Systems","doi-asserted-by":"publisher","award":["FCA-04-29947CCF-06-13840CCF-0613845CNS-06-27354CNS-07-09217"],"award-info":[{"award-number":["FCA-04-29947CCF-06-13840CCF-0613845CNS-06-27354CNS-07-09217"]}],"id":[{"id":"10.13039\/100000144","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2010,8]]},"abstract":"<jats:p>The emergence of aspect-oriented programming (AOP) languages has provided software designers with new mechanisms and strategies for decomposing programs into modules and composing modules into systems. What we do not yet fully understand is how best to use such mechanisms consistent with common modularization objectives such as the comprehensibility of programming code, its parallel development, dependability, and ease of change. The main contribution of this work is a new form of information-hiding interface for AOP that we call the crosscut programming interface, or XPI. XPIs abstract crosscutting behaviors and make these abstractions explicit. XPIs can be used, albeit with limited enforcement of interface rules, with existing AOP languages, such as AspectJ. To evaluate our notion of XPIs, we have applied our XPI-based design methodology to a medium-sized network overlay application called Hypercast. A qualitative and quantitative analysis of existing AO design methods and XPI-based design method shows that our approach produces improvements in program comprehensibility, in opportunities for parallel development, and in the ease when code can be developed and changed.<\/jats:p>","DOI":"10.1145\/1824760.1824762","type":"journal-article","created":{"date-parts":[[2010,9,7]],"date-time":"2010-09-07T15:48:20Z","timestamp":1283874500000},"page":"1-42","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":30,"title":["Modular aspect-oriented design with XPIs"],"prefix":"10.1145","volume":"20","author":[{"given":"Kevin","family":"Sullivan","sequence":"first","affiliation":[{"name":"University of Virginia, Charlottesville, Charlottesville, VA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"William G.","family":"Griswold","sequence":"additional","affiliation":[{"name":"University of California, San Diego"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Hridesh","family":"Rajan","sequence":"additional","affiliation":[{"name":"Iowa State University, Ames, Ames, IA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yuanyuan","family":"Song","sequence":"additional","affiliation":[{"name":"University of Virginia, Charlottesville"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yuanfang","family":"Cai","sequence":"additional","affiliation":[{"name":"Drexel University, Philadelphia, PA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Macneil","family":"Shonle","sequence":"additional","affiliation":[{"name":"University of California, San Diego"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Nishit","family":"Tewari","sequence":"additional","affiliation":[{"name":"University of Virginia, Charlottesville, Charlottesville, VA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2010,9,8]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1007\/11531142_7"},{"volume-title":"European Interactive Workshop on Aspects in Software. http:\/\/www.eclipse.org\/aspectj\/. AspectJ project.","author":"Altman R.","key":"e_1_2_1_2_1","unstructured":"Altman , R. , Cyment , A. , and Kicillof , N . 2005. On the need for Setpoints . In European Interactive Workshop on Aspects in Software. http:\/\/www.eclipse.org\/aspectj\/. AspectJ project. Altman, R., Cyment, A., and Kicillof, N. 2005. On the need for Setpoints. In European Interactive Workshop on Aspects in Software. http:\/\/www.eclipse.org\/aspectj\/. AspectJ project."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.7551\/mitpress\/2366.001.0001"},{"volume-title":"Extreme Programming Explained: Embrace Change","author":"Beck K.","key":"e_1_2_1_4_1","unstructured":"Beck , K. 1999. Extreme Programming Explained: Embrace Change . Addison-Wesley , Reading, MA . Beck, K. 1999. Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading, MA."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/976270.976273"},{"key":"e_1_2_1_6_1","series-title":"Lecture Notes in Computer Science","volume-title":"MAO: Ownership and effects for more effective reasoning about aspects. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP'07)","author":"Clifton C.","year":"2007","unstructured":"Clifton , C. , Leavens , G. T. , and Noble , J . 2007 . MAO: Ownership and effects for more effective reasoning about aspects. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP'07) . Lecture Notes in Computer Science , vol. 4609 , Springer , Berlin , 451--475. Clifton, C., Leavens, G. T., and Noble, J. 2007. MAO: Ownership and effects for more effective reasoning about aspects. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP'07). Lecture Notes in Computer Science, vol. 4609, Springer, Berlin, 451--475."},{"key":"e_1_2_1_7_1","unstructured":"Clifton C. and Leavens G. T. 2003. Obliviousness modular reasoning and the behavioral subtyping analogy. In SPLAT: Software Engineering Properties of Languages for Aspect Technologies L. Bergmans et al. Eds.  Clifton C. and Leavens G. T. 2003. Obliviousness modular reasoning and the behavioral subtyping analogy. In SPLAT: Software Engineering Properties of Languages for Aspect Technologies L. Bergmans et al. Eds."},{"volume-title":"Proceedings of the Foundations of Aspect-Oriented Languages Workshop (FOAL'02)","author":"Clifton C.","key":"e_1_2_1_8_1","unstructured":"Clifton , C. and Leavens , G. T . 2002. Observers and assistants: A proposal for modular aspect-oriented reasoning . In Proceedings of the Foundations of Aspect-Oriented Languages Workshop (FOAL'02) . 33--44. Clifton, C. and Leavens, G. T. 2002. Observers and assistants: A proposal for modular aspect-oriented reasoning. In Proceedings of the Foundations of Aspect-Oriented Languages Workshop (FOAL'02). 33--44."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/976270.976279"},{"key":"e_1_2_1_10_1","doi-asserted-by":"crossref","unstructured":"Colyer A. Clement A. Harley G. and Webster M. 2005. Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools. Pearson Education.   Colyer A. Clement A. Harley G. and Webster M. 2005. Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools. Pearson Education.","DOI":"10.1147\/sj.442.0301"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2006.26"},{"key":"e_1_2_1_12_1","unstructured":"Dantas D. S. and Walker D. 2003. Aspects information hiding and modularity. Tech. rep. TR-696-04 Princeton University.  Dantas D. S. and Walker D. 2003. Aspects information hiding and modularity. Tech. rep. TR-696-04 Princeton University."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111037.1111071"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/976270.976288"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/383845.383853"},{"key":"e_1_2_1_16_1","unstructured":"Filman R. E. and Friedman D. P. 2005a. Aspect-oriented programming is quantification and obliviousness. In Aspect-Oriented Software Development Addison-Wesley Reading MA. 21--35.  Filman R. E. and Friedman D. P. 2005a. Aspect-oriented programming is quantification and obliviousness. In Aspect-Oriented Software Development Addison-Wesley Reading MA. 21--35."},{"key":"e_1_2_1_17_1","unstructured":"Filman R. E. and Friedman D. P. 2005b. Aspect-Oriented Programming is Quantification and Obliviousness. Addison-Wesley Reading MA 21--35.  Filman R. E. and Friedman D. P. 2005b. Aspect-Oriented Programming is Quantification and Obliviousness. Addison-Wesley Reading MA 21--35."},{"key":"e_1_2_1_18_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma E.","year":"1995","unstructured":"Gamma , E. , Helm , R. , Vlissides , J. , and Johnson , R. E . 1995 . Design Patterns: Elements of Reusable Object-Oriented Software . Addison-Wesley , Reading, MA . Gamma, E., Helm, R., Vlissides, J., and Johnson, R. E. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA."},{"key":"e_1_2_1_19_1","unstructured":"Gradecki J. D. and Lesiecki N. 2003. Mastering AspectJ: Aspect-Oriented Programming in Java. Wiley New York.   Gradecki J. D. and Lesiecki N. 2003. Mastering AspectJ: Aspect-Oriented Programming in Java. Wiley New York."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.5555\/646931.710554"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2006.24"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/151155"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.1985.231756"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1294325.1294335"},{"key":"e_1_2_1_25_1","unstructured":"HyperCast. HyperCast project. http:\/\/www.cs.virginia.edu\/~mngroup\/hypercast\/.  HyperCast. HyperCast project. http:\/\/www.cs.virginia.edu\/~mngroup\/hypercast\/."},{"key":"e_1_2_1_26_1","volume-title":"-W","author":"Jacobson I.","year":"2005","unstructured":"Jacobson , I. and Ng , P . -W . 2005 . Aspect-Oriented Software Development with Use Cases. Addison-Wesley , Reading, MA. Jacobson, I. and Ng, P.-W. 2005. Aspect-Oriented Software Development with Use Cases. Addison-Wesley, Reading, MA."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/11785477_28"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/383845.383858"},{"volume-title":"Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP'01)","author":"Kiczales G.","key":"e_1_2_1_29_1","unstructured":"Kiczales , G. , Hilsdale , E. , Hugunin , J. , Kersten , M. , Palm , J. , and Griswold , W. G . 2001b. An overview of AspectJ . In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP'01) . 327--353. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. G. 2001b. An overview of AspectJ. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP'01). 327--353."},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1062455.1062482"},{"volume-title":"Aspect-Oriented Programming with AspectJ","author":"Kiselev I.","key":"e_1_2_1_31_1","unstructured":"Kiselev , I. 2002. Aspect-Oriented Programming with AspectJ . Sams . Indianapolis, IN . Kiselev, I. 2002. Aspect-Oriented Programming with AspectJ. Sams. Indianapolis, IN."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1041685.1029916"},{"volume-title":"Proceedings of the Workshop on Software-Engineering Properties of Languages for Aspect Technologies (SPLAT) at AOSD'03","author":"Larochelle D.","key":"e_1_2_1_33_1","unstructured":"Larochelle , D. , Scheidt , K. , Sullivan , K. , Wei , Y. , Winstead , J. , and Wood , A . 2003. Join point encapsulation . In Proceedings of the Workshop on Software-Engineering Properties of Languages for Aspect Technologies (SPLAT) at AOSD'03 . Larochelle, D., Scheidt, K., Sullivan, K., Wei, Y., Winstead, J., and Wood, A. 2003. Join point encapsulation. In Proceedings of the Workshop on Software-Engineering Properties of Languages for Aspect Technologies (SPLAT) at AOSD'03."},{"key":"e_1_2_1_34_1","unstructured":"Laddad R. 2003. AspectJ in Action: Practical Aspect-Oriented Programming. Manning.   Laddad R. 2003. AspectJ in Action: Practical Aspect-Oriented Programming. Manning."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1127878.1127884"},{"key":"e_1_2_1_36_1","volume-title":"Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD'05)","author":"Lesiecki N.","year":"2005","unstructured":"Lesiecki , N. 2005 . Applying AspectJ to J2EE application development . In Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD'05) . ACM Press, New York. Lesiecki, N. 2005. Applying AspectJ to J2EE application development. In Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD'05). ACM Press, New York."},{"key":"e_1_2_1_37_1","volume-title":"Hypercast: A protocol for maintaining multicast group members in a logical hypercube topology","author":"Liebeherr J.","year":"1999","unstructured":"Liebeherr , J. and Beam , T. K . 1999 . Hypercast: A protocol for maintaining multicast group members in a logical hypercube topology . In Networked Group Communication , 72--89. Liebeherr, J. and Beam, T. K. 1999. Hypercast: A protocol for maintaining multicast group members in a logical hypercube topology. In Networked Group Communication, 72--89."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1109\/JSAC.2002.803067"},{"key":"e_1_2_1_39_1","volume-title":"Group Communications and Charges. Lecture Notes in Computer Science","volume":"2816","author":"Liebeherr J.","unstructured":"Liebeherr , J. , Wang , J. , and Zhang , G . 2003. Programming overlay networks with overlay sockets . In Group Communications and Charges. Lecture Notes in Computer Science , vol. 2816 , Springer, Berlin, 242--253. Liebeherr, J., Wang, J., and Zhang, G. 2003. Programming overlay networks with overlay sockets. In Group Communications and Charges. Lecture Notes in Computer Science, vol. 2816, Springer, Berlin, 242--253."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/1052898.1052900"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1016\/0164-1212(88)90022-2"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.5555\/129093"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/1218563.1218571"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/1119655.1119664"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/1353482.1353489"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/361598.361623"},{"key":"e_1_2_1_47_1","unstructured":"Pawlak R. Retaill\u00e9 J.-P. and Seinturier L. 2005. Foundations of AOP for J2EE Development. Apress.   Pawlak R. Retaill\u00e9 J.-P. and Seinturier L. 2005. Foundations of AOP for J2EE Development. Apress."},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-70592-5_8"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/1062455.1062483"},{"volume-title":"Aspect-Oriented Database Systems","author":"Rashid A.","key":"e_1_2_1_50_1","unstructured":"Rashid , A. 2004. Aspect-Oriented Database Systems . Springer , Berlin . Rashid, A. 2004. Aspect-Oriented Database Systems. Springer, Berlin."},{"volume-title":"Proceedings of the Foundations of Object-Oriented Language Workshop (FOAL).","author":"Rho T.","key":"e_1_2_1_51_1","unstructured":"Rho , T. , Kneisl , G. , and Appeltauer , M . 2006. Fine-grained generic aspects . In Proceedings of the Foundations of Object-Oriented Language Workshop (FOAL). Rho, T., Kneisl, G., and Appeltauer, M. 2006. Fine-grained generic aspects. In Proceedings of the Foundations of Object-Oriented Language Workshop (FOAL)."},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.341844"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/976270.976271"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1275672.1275677"},{"key":"e_1_2_1_55_1","volume-title":"Common LISP: The Language","author":"Steele G.","unstructured":"Steele , G. 1990. Common LISP: The Language 2 nd Ed. Digital Press . Steele, G. 1990. Common LISP: The Language 2nd Ed. Digital Press.","edition":"2"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167514"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1109\/TEM.1981.6448589"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/503209.503224"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/1095430.1081734"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/302405.302457"},{"key":"e_1_2_1_61_1","unstructured":"Teitelman W. 1966. Pilot: A step toward man-computer symbiosis. Ph.D. dissertation AITR-221 MIT.  Teitelman W. 1966. Pilot: A step toward man-computer symbiosis. Ph.D. dissertation AITR-221 MIT."},{"key":"e_1_2_1_62_1","volume-title":"Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD'05)","author":"Thomas D.","year":"2005","unstructured":"Thomas , D. 2005 . Transitioning AOSD from research park to main street . In Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD'05) . ACM, New York. Thomas, D. 2005. Transitioning AOSD from research park to main street. In Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD'05). ACM, New York."},{"volume-title":"AOSD Workshop on Software-Engineering Properties of Languages for Aspect Technologies.","author":"Tourw\u00e9 T.","key":"e_1_2_1_63_1","unstructured":"Tourw\u00e9 , T. , Brichau , J. , and Gybels , K . 2003. On the existence of the AOSD-evolution paradox . In AOSD Workshop on Software-Engineering Properties of Languages for Aspect Technologies. Tourw\u00e9, T., Brichau, J., and Gybels, K. 2003. On the existence of the AOSD-evolution paradox. In AOSD Workshop on Software-Engineering Properties of Languages for Aspect Technologies."}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1824760.1824762","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1824760.1824762","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T11:39:33Z","timestamp":1750246773000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1824760.1824762"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2010,8]]},"references-count":63,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2010,8]]}},"alternative-id":["10.1145\/1824760.1824762"],"URL":"https:\/\/doi.org\/10.1145\/1824760.1824762","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"type":"print","value":"1049-331X"},{"type":"electronic","value":"1557-7392"}],"subject":[],"published":{"date-parts":[[2010,8]]},"assertion":[{"value":"2008-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2009-04-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2010-09-08","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}