Aspects and/versus Modularity

Moderated by Guy L. Steele Jr.

Friedrich Steimann
Fernuniversität in Hagen
Jim Waldo
Sun Microsystems Laboratories
Gregor Kiczales
University of British Columbia
Kevin Sullivan
University of Virginia

Abstract

Aspect-Oriented Programming (AOP) and Aspect-Oriented Software Development (AOSD) endeavor to aid programmers in the separation of concerns, specifically crosscutting concerns, as an advance in modularization. AOP does so using primarily language changes, while AOSD uses a combination of language, environment, and methodology. But the concepts of obliviousness—not universally accepted as part of AOP—and parameterization appear to contradict the well-established principles of modularity and encapsulation that David Parnas and other greats of the past laid out and on which software engineering has depended for the last 40 years. Are we moving forward with better understandings of software engineering, modularity, and design/development principles, or are we losing our way? This debate is the postscript to Friedrich Steinmann’s OOPSLA Essay, “The Paradoxical Success of Aspect-Oriented Programming.”

Guy L. Steele Jr. (moderator)

Sun Fellow Guy Steele is a researcher for Sun Microsystems Laboratories, working on the Programming Language Research project. His research interests include Algorithms, Compilation, Distributed Systems, High Performance Computing, Java, Lisp, Scheme, Object Oriented Programming, Operating Systems, Programming Languages, Software, and Supercomputer design.

Friedrich Steimann

Friedrich Steimann started his academic career as a research engineer at Alcatel Austria in Vienna. He quickly realized that industry wasn’t the place to do research, at least not for him, and therefore changed to the Vienna Technical University, from which he received his doctoral degree in 1995. After that (and due to an acute shortage of money) he worked as a freelance programmer for various small and midsize companies, a thing he had done before during his studying years at the University of Karlsruhe. As soon as his savings allowed him to, he returned to academia, where he began with his work on roles (for which received his habilitation in 2000, from the University of Hanover). In the following years, he spent his time mostly with teaching software engineering. Last year, his efforts were rewarded by becoming a full professor at the Fernuniversität in Hagen, where he holds a chair for Programming Systems. Friedrich’s current main interests are in object-oriented modelling and programming; in the past, he has also worked on computational linguistics and medical informatics.

Jim Waldo

Jim Waldo is a Distinguished Engineer at Sun Microsystems Laboratories, where he works on large-scale distributed systems. Prior to returning to Sun Labs, Jim was the lead architect of the Jini network technology system. Before joining Sun, Jim spent eight years at Apollo Computer and Hewlett Packard working in the areas of distributed object systems, user interfaces, class libraries, text and internationalization. While at HP, he led the design and development of the first Object Request Broker, and was instrumental in getting that technology incorporated into the first OMG CORBA specification. He edited the book The Evolution of C++: Language Design in the Marketplace of Ideas (MIT Press), and was one of the authors of The Jini Specification (Addison Wesley). Jim is also an adjunct faculty member of Harvard University, where he teaches distributed computing in the Department of Computer Science.

Gregor Kiczales

Gregor Kiczales is a full professor at the University of British Columbia. A primary theme of his work is focused on enabling programmers to write programs that, as much as possible, look like their design. He also seeks to unravel inconsistencies between our field’s accounts of computing and the real nature of the beast. While at Xerox PARC, he led the teams that developed aspect-oriented programming and AspectJ. He was the principal designer of the CLOS metaobject protocol, and was one of the designers of the Common Lisp Object System.

Kevin Sullivan

Kevin Sullivan is an Associate Professor and Virginia Engineering Foundation Faculty Fellow in Computer Science at the University of Virginia. He received his undergraduate degree from Tufts University in 1987 and the PhD in Computer Science and Engineering from the University of Washington in 1994. His research interests are in software-intensive systems, in general, and in software engineering and languages, in particular. He has long been interested in issues and models of modularity in software design, and is currently working on the technical and economic aspects of modularity in software system design. Sullivan also has broad interests in the dependability characteristics of software and software-intensive systems.