IBM is working to be among the first major software vendors to put aspect-oriented programming to use in commercial systems and tools.
AOP is a programming technique that lets "aspects" or "concerns" that cut across a system be programmed in modular units. Developers familiar with AOP say it is a next-generation programming method that increases programmer productivity and software reliability and quality more than current methods of development, such as OOP (object-oriented programming).
IBM, of Armonk, N.Y., could begin using aspect- oriented software development technologies in products in 12 to 15 months, sources said. IBM has been working on the technology for about two years, but its researchers have been looking at it for nearly 12—since it was developed at Xerox Corp.s Palo Alto Research Center, IBM researchers said.
Other companies are pursuing AOP-based offerings. Sun Microsystems Inc. has projects, led by Java creator James Gosling, that feature the technology. BEA Systems Inc., through a relationship with Codehaus.org, is working on an AOP project called AspectWerkz, which is gaining traction with early developers, said Gregor Kiczales, a professor of computer science at the University of British Columbia and one of the co-creators of AOP.
OOP is best for organizing functionality into hierarchical structures, such as classes. "In contrast with OOP, AOP is used to implement cross-cutting concerns, such as multiobject interactions, distribution and synchronization policies, and design patterns," Kiczales said. A concern is "anything a stakeholder wants to consider as a single conceptual entity," he said, such as a check-balance feature, a Web interface, a specific data structure, a time limit or a quality requirement.