Aspect-Oriented Software Development in Practice: Tales from AOSD-Europe - Rashid, A.; Cottenier, T.; Greenwood, P.; Chitchyan, R.; Meunier, R.; Coelho, R.; Sudholt, M.; Joosen, W. (Computer (Long Beach, Calif.), 2010)
Aspect-oriented software development techniques provide a means to modularize crosscutting concerns in software systems. A survey of industrial projects reveals the benefits and potential pitfalls of aspectoriented technologies.The past decade has seen the increased use of aspect-oriented software development (AOSD) technique as a means to modularize crosscutting concerns in software systems, thereby improving a development organization's working practices and return on investment (ROI). Numerous industrial-strength aspect-oriented (AO) programming frameworks exist, including AspectJ, JBoss, and Spring, as do various aspect-oriented analysis and design techniques.The software systems using AOSD that we have studied are medium to large-scale and span a wide range of domains including enterprise systems, e-health, e-transport, telecommunications, Web based information systems, multimedia applications, and workflow systems. Our analysis highlights typical usage patterns of AO techniques-for instance, they are mainly used for modularizing well-known crosscutting problems and incrementally introduced, addressing developmental concerns and other noncore product features first.