Modularity for the modern world
Date of Original Version
Can archive pre-print and post-print or publisher's version/PDF
Abstract or Description
Aspect-oriented software development is motivated by the desire to localize definitions of independent concerns in the software. Localized definitions are a form of modularity that achieve separation of concerns in the design, but the non-hierarchical character of the concerns creates structure clashes with the hierarchical modular constructs in conventional programming languages. Aspect-oriented modularity achieves the benefits of localized definitions, but at the costs of complexity both in the tools that weave the aspects into code and in the task of understanding the interactions among definitions.
Aspect-oriented modularity is one of several types of modularity that have emerged in the past decade or so. Much of this growth has been triggered by the penetration of computing and information technology into all aspects of modern life. Much of the conventional wisdom of software engineering, especially about modularity, is challenged by the shift from in-house software development to composition of Internet-accessible resources and by the involvement of end-user programmers in development.
This talk will discuss the larger landscape of modularity in modern computing and information systems, including the motivations for introducing modularity, the sorts of information that can usefully be modularized, mechanisms that bridge from the modular abstractions to running code, generality/power tradeoffs, and examples that show this diversity.
Proceeding AOSD '11 Proceedings of the tenth international conference on Aspect-oriented software development.