Once the programming language and associated tools support the development of components, we are still left with the question, “Where do the components come from?” Although we argue that a component-oriented approach is necessary to deal with evolving requirements, it turns out that components themselves only emerge through an iterative and evolutionary software lifecycle. This [...]