- Workshop title
W4: Aspects, Components, and Patterns for Infrastructure Software
- Yvonne Coady (University of British Columbia)
- Eric Eide (University of Utah)
- David H. Lorenz (Northeastern University)
- Mira Mezini (Darmstadt University of Technology)
- Klaus Ostermann (Siemens Corporate Technology and Darmstadt University of Technology)
- Roman Pichler (Siemens Corporate Technology)
- Tuesday April 23 - full day
Aspect-oriented programming, component models, and design patterns are modern and actively evolving techniques to improving the modularization of complex software. In particular, these techniques hold great promise for the development of ``systems infrastructure'' software, e.g., application servers, middleware, virtual machines, compilers, operating systems, and other software that provides general services for higher-level applications. The developers of infrastructure software are currently faced with increasing demands from application programmers needing higher-level support for application development. Meeting these demands requires careful use of software modularization techniques, since infrastructural concerns are notoriously hard to modularize.
Aspects, components, and patterns provide very different means to deal with infrastructure software, but despite their differences, they have much in common. For instance, component models try to free the developer from the need to deal directly with services like security or transactions. These are primary examples of crosscutting concerns, and modularizing such concerns are the main target of aspect-oriented languages. Similarly, design patterns like Visitor and Interceptor facilitate the clean modularization of otherwise tangled concerns.
This workshop aims to provide a highly interactive forum for researchers and developers to discuss the application of and relationships between aspects, components, and patterns within modern infrastructure software. The goal is to put aspects, components, and patterns into a common reference frame and to build connections between the software engineering and systems communities.