Component-Driven Development term is starting to get used widely, esp. in connection with Inversion of Control.
- What is it?
- What problems does it solve?
- When is it appropriate and when not?
Component-Driven Development term is starting to get used widely, esp. in connection with Inversion of Control.
If you're interested in combining components (or other reusable assets) into applications you should also take a look at the software product lines methodology.
In a software product line the dependencies between components (or lower-level code elements) are explicitly managed outside those components. This is typically done using a feature model that contains rules such as
Other more complex rules are possible depending on the complexity of the dependencies you wish to model.
Another approach that is sometimes used instead of feature modelling is to use a code generator to configure the different components that are to be assembled into the finished application. It's also possible to combine feature modelling with code generation.
Aside from Code Generation, some other terms you might search for as domain-specific modelling, model-driven software development, software family.