10th International Software
Product Line Conference (SPLC 2006) 21-24 August 2006 Baltimore,
Maryland, USA
Keynote Speakers
Carliss Baldwin, Harvard
Business School - Unmanageable Design Architectures: What
They Are and Their Financial Consequences
Gregor Kiczales, University of British
Columbia - Radical Research In Modularity: Aspect-Oriented
Programming and Other Ideas
Unmanageable
Design Architectures: What They Are and Their Financial Consequences by
Carliss Y. Baldwin
Behind every
innovation lies a new design. Large or complex designs, involving many people,
require architectures that create a sensible subdivision of the design
tasks.
Design
architectures (and the systems built from them) may be "manageable" or
"unmanageable." By manageable, I mean that the artifacts created within the
architecture will stay within the boundaries of a single enterprise (or a
supply chain controlled by a dominant firm). Windows and Office are manageable
architectures by this definition, whereas Apache and Linux are coordinated but
not manageable. "Manageable" architectures give rise to product lines and
product families, while "unmanageable" architectures give rise to modular
clusters and open source communities.
There are
important technical properties of a design architecture that affect its
manageability. In this speech, I will talk about how designs draw resources
from the economy, and what technical properties make an architecture
"manageable" or "unmanageable." These properties, I will argue, are not good or
bad in themselves, but they affect economic incentives and patterns of
competition over new products and designs. Thus design architecture is an
important consideration in formulating a sound product line strategy.
Radical
Research In Modularity: Aspect-Oriented Programming and Other Ideas by
Gregor Kiczales
Modularity is
a motherhood principle in our field. Just as politicians love to kiss babies
for the camera, computer scientists love to preach the virtues of good
modularity.
But what does
modularity mean? In our field the idea has typically been equated with a notion
of cellular or even block structure, where each block or module defines its
interface with the surrounding modules. A close examination suggests this
notion is too restrictive: it fails to support construction of complex systems,
it fails to account for practice, and it fails even to be intuitively
satisfying.
Work in
biology and other fields suggests that there are many other possible kinds of
modularity, and recent research in aspect-oriented programming shows what some
new forms of modularity for software might be. Building on this we outline a
line of attack for discovering other kinds of modularity and making productive
use of new kinds of modularity in building real systems. |