{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:39:46Z","timestamp":1750307986699,"version":"3.41.0"},"reference-count":11,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2006,6,1]],"date-time":"2006-06-01T00:00:00Z","timestamp":1149120000000},"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":["Queue"],"published-print":{"date-parts":[[2006,6]]},"abstract":"<jats:p>Separation of concerns is one of the oldest concepts in computer science. The term was coined by Dijkstra in 1974.1 It is important because it simplifies software, making it easier to develop and maintain. Separation of concerns is commonly achieved by decomposing an application into components. There are, however, crosscutting concerns, which span (or cut across) multiple components. These kinds of concerns cannot be handled by traditional forms of modularization and can make the application more complex and difficult to maintain.<\/jats:p>","DOI":"10.1145\/1142031.1142045","type":"journal-article","created":{"date-parts":[[2006,7,25]],"date-time":"2006-07-25T14:14:26Z","timestamp":1153836866000},"page":"36-44","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":12,"title":["Untangling Enterprise Java"],"prefix":"10.1145","volume":"4","author":[{"given":"Chris","family":"Richardson","sequence":"first","affiliation":[{"name":"Chris Richardson Consulting, Inc."}]}],"member":"320","published-online":{"date-parts":[[2006,6]]},"reference":[{"first-page":"60","volume-title":"Selected Writings on Computing: A Personal Perspective","author":"Dijkstra E.W.","key":"e_1_2_1_1_1"},{"key":"e_1_2_1_2_1","unstructured":"JSR 153: Enterprise JavaBeans 2.1; http:\/\/www.jcp.org\/en\/jsr\/detail?id=153; JSR 220: Enterprise JavaBeans 3.0; http:\/\/www.jcp.org\/en\/jsr\/detail?id=220.  JSR 153: Enterprise JavaBeans 2.1; http:\/\/www.jcp.org\/en\/jsr\/detail?id=153; JSR 220: Enterprise JavaBeans 3.0; http:\/\/www.jcp.org\/en\/jsr\/detail?id=220."},{"key":"e_1_2_1_3_1","unstructured":"Fowler M. http:\/\/www.martinfowler.com\/bliki\/POJO.html.  Fowler M. http:\/\/www.martinfowler.com\/bliki\/POJO.html."},{"key":"e_1_2_1_4_1","unstructured":"Spring framework; http:\/\/www.springframework.org.  Spring framework; http:\/\/www.springframework.org."},{"key":"e_1_2_1_5_1","unstructured":"Hibernate Object\/Relational Mapping framework; http:\/\/www.hibernate.org\/.  Hibernate Object\/Relational Mapping framework; http:\/\/www.hibernate.org\/."},{"key":"e_1_2_1_6_1","unstructured":"JSR 243: Java Data Objects 2.0--An Extension to the JDO Specification.  JSR 243: Java Data Objects 2.0--An Extension to the JDO Specification."},{"key":"e_1_2_1_7_1","unstructured":"Acegi Security System for Spring; http:\/\/acegisecurity.sourceforge.net.  Acegi Security System for Spring; http:\/\/acegisecurity.sourceforge.net."},{"key":"e_1_2_1_8_1","unstructured":"Laddad R. 2003. AspectJ in Action. Greenwich CT: Manning.  Laddad R. 2003. AspectJ in Action. Greenwich CT: Manning."},{"key":"e_1_2_1_9_1","unstructured":"Fowler M. http:\/\/www.martinfowler.com\/articles\/injection.html.  Fowler M. http:\/\/www.martinfowler.com\/articles\/injection.html."},{"key":"e_1_2_1_10_1","unstructured":"JNDI; http:\/\/java.sun.com\/products\/jndi\/.  JNDI; http:\/\/java.sun.com\/products\/jndi\/."},{"key":"e_1_2_1_11_1","unstructured":"See  Reference 9.  See Reference 9."}],"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1142031.1142045","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1142031.1142045","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T15:06:11Z","timestamp":1750259171000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1142031.1142045"}},"subtitle":["A new breed of framework helps eliminate crosscutting concerns."],"short-title":[],"issued":{"date-parts":[[2006,6]]},"references-count":11,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2006,6]]}},"alternative-id":["10.1145\/1142031.1142045"],"URL":"https:\/\/doi.org\/10.1145\/1142031.1142045","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"type":"print","value":"1542-7730"},{"type":"electronic","value":"1542-7749"}],"subject":[],"published":{"date-parts":[[2006,6]]},"assertion":[{"value":"2006-06-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}