Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium · 2002 · 63 citations · 12 references
ComputingComputer ScienceProgramming LanguagesSoftware EngineeringSystems ProgrammingApplication Programming InterfacesError HandlingAspect-oriented ProgrammingAspect-oriented ReuseEnforcementException HandlingReuse
Aspect oriented programming (AOP) is intended to ease situations that involve many kinds of code tangling. The paper reports on a study to investigate AOP's ability to ease tangling related to exception detection and handling. We took an existing framework written in Java/sup TM/, the JWAM framework, and partially reengineered its exception detection and handling aspects using AspectJ/sup TM/, an aspect oriented programming extension to Java. We found that AspectJ supported implementations that drastically reduced the portion of the code related to exception detection and handling. In one scenario, we were able to reduce that code by a factor of 4. We also found that, with respect to the original implementation in plain Java, AspectJ provided better support for different configurations of exceptional behaviors, more tolerance for changes in the specifications of exceptional behaviors, better support for incremental development, better reuse, automatic enforcement of contracts in applications that use the framework, and cleaner program texts. We also found some weaknesses of AspectJ that should be addressed in the future.
12
An axiomatic basis for computer programming
C. A. R. Hoare · Communications of the ACM · 1969 · 3.9K citations · Full text
Ralph E. Johnson, Brian Foote · Journal of Object-oriented Programming · 1988 · 1.1K citations
Computing, Computer Science, Design +15
John B. Goodenough · Communications of the ACM · 1975 · 496 citations · Full text
Concepts in programming languages
Choice Reviews Online · 2003 · 397 citations