{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:37:18Z","timestamp":1750307838401,"version":"3.41.0"},"reference-count":14,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2008,2,1]],"date-time":"2008-02-01T00:00:00Z","timestamp":1201824000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGPLAN Not."],"published-print":{"date-parts":[[2008,2]]},"abstract":"<jats:p>Owing to the characteristics of quantification and obliviousness, modular behavioral analysis and modular reasoning in aspect-oriented language are more difficult than that of traditional paradigms. Similar to the method of Design by Contract in object-oriented language, we annotate crosscutting modules and affected modules with pre-conditions and post-conditions. Because assigning blame for pre-condition and post-condition failures during the process of crosscutting is subtle and complex, we introduce a notion of crosscutting invariant and a checking algorithm based on this notion. Since there are some repeated contract checks in the original algorithm, we use the technology of program slicing to search those unnecessary repeat checks and delete them. We also represent an example to represent the algorithm and its improvement.<\/jats:p>","DOI":"10.1145\/1361213.1361215","type":"journal-article","created":{"date-parts":[[2008,4,15]],"date-time":"2008-04-15T12:52:10Z","timestamp":1208263930000},"page":"12-20","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Crosscutting invariant and an efficient checking algorithm using program slicing"],"prefix":"10.1145","volume":"43","member":"320","published-online":{"date-parts":[[2008,2]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"J M Loingtier and J Irwin. Aspect-oriented Programming. ECOOP","author":"Kiczales G","year":"1997","unstructured":"G Kiczales, J Lamping, A Mendhekar, C Maeda, C Lopes, J M Loingtier and J Irwin. Aspect-oriented Programming. ECOOP, 1997."},{"key":"e_1_2_1_2_1","volume-title":"OOPSLA","author":"Filman R E","year":"2000","unstructured":"R E Filman, D P Friedman. Aspect-Oriented Programming is Quantification and Obliviousness. OOPSLA, 2000."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/361598.361623"},{"key":"e_1_2_1_4_1","unstructured":"http:\/\/www.eclipse.org\/aspectj\/."},{"key":"e_1_2_1_5_1","volume-title":"AOSD","author":"Balzarotti D","year":"2004","unstructured":"D Balzarotti and M Monga. Using program slicing to analyze aspect-oriented composition. AOSD, 2004."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/197320.197383"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/504282.504283"},{"key":"e_1_2_1_9_1","volume-title":"Contract4J for Design by Contract in Java:Design Pattern-Like Protocols and Aspect Interfaces. AOSD","author":"Wampler Dean","year":"2006","unstructured":"Dean Wampler. Contract4J for Design by Contract in Java:Design Pattern-Like Protocols and Aspect Interfaces. AOSD, 2006."},{"key":"e_1_2_1_10_1","unstructured":"http:\/\/jakarta.apache.org\/commons\/jexl\/"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.5555\/800078.802557"},{"key":"e_1_2_1_12_1","volume-title":"Proceedings of the International Workshop on Principles of Software Evolution IWPSE 2002","author":"Zhao J.","year":"2002","unstructured":"J. Zhao. Slicing aspect-oriented software. In Proceedings of the International Workshop on Principles of Software Evolution IWPSE 2002, Orlando, Florida, May 2002. ACM."},{"key":"e_1_2_1_13_1","volume-title":"AOSD","author":"Balzarotti D","year":"2005","unstructured":"D Balzarotti, A Castaldo D'Ursi, L Cavallaro, and M Monga. Slicing Aspect Woven Code. AOSD, 2005."},{"key":"e_1_2_1_14_1","first-page":"162","volume-title":"Proc. Workshop on Software Engineering and Database Systems","author":"Zhao J.","year":"1998","unstructured":"J. Zhao. Applying program dependence analysis to java software. In Proc. Workshop on Software Engineering and Database Systems, pages 162--169, Taiwan, December 1998."},{"key":"e_1_2_1_16_1","first-page":"45","volume-title":"Proceedings of Workshop on Aspect-Oriented Software Development","author":"Blair L","year":"2003","unstructured":"L Blair and M Monga. Reasoning on AspectJ programmes. In Proceedings of Workshop on Aspect-Oriented Software Development, pages 45--50, Essen, Germany, Mar. 2003."}],"container-title":["ACM SIGPLAN Notices"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1361213.1361215","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1361213.1361215","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T13:58:03Z","timestamp":1750255083000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1361213.1361215"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2008,2]]},"references-count":14,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2008,2]]}},"alternative-id":["10.1145\/1361213.1361215"],"URL":"https:\/\/doi.org\/10.1145\/1361213.1361215","relation":{},"ISSN":["0362-1340","1558-1160"],"issn-type":[{"type":"print","value":"0362-1340"},{"type":"electronic","value":"1558-1160"}],"subject":[],"published":{"date-parts":[[2008,2]]},"assertion":[{"value":"2008-02-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}