Below are some seed ideas for workshop discussion groups. The workshop participants will choose the actual discussion topics on the day of the workshop.
In a systems software product line, many properties of individual products are effectively determined by just one or a few modules within the software architecture. Emergent properties, however, are not so easily modularized using current techniques. Emergent properties are inherently tied to the integration or combination of features in a product, rather than to individual software modules. Examples of emergent properties include the schedule for a system, the maximum run-time stack depth, and the total static and dynamic memory footprints.
What are other examples of emergent properties in systems product lines? What do different emergent properties have in common with each other? Are these things inherently different than the kinds of concerns that we can modularize via components and aspects? Are emergent properties predictable? Is there hope for a unified approach, like "aspects," or do we need to deal with each emergent properties in an ad hoc fashion?
A software product line can be described in terms of its features, using a feature model. Such a model describes the features that may be combined to build various products, and shows how the features depend on and relate to one another. A feature model may also describe the times at which different feature-selection choices must be made. Some choices may be made when the software is configured and compiled by the "manufacturer," but other choices may be made much later, when the system starts running (boot-time), or even later. One might even imagine that the binding time of a feature should vary between members of a product family.
What are some real-world examples of variable binding times? Can feature binding-time be described as an aspect, or as a feature? Are existing techniques sufficient for describing variable binding times, or are new techniques needed?
Bring your good ideas to the workshop!