Conclusion
The benefits of configurable software to potential component developers should
now be readily apparent. Modular, configurable and reusable software components
allow the developer's software to be used in a wide variety of systems. Embedded
systems are particularly well placed to take advantage of this images tend
to be static, making source level configuration more beneficial; and configuration
can be used as a tool to help hardware/device abstraction, freeing the component
developer from portability concerns. Resulting source configurable components
can be faster, smaller, simpler, and can be tailored for a user's systems, but
not at the expense of potential functionality.
Steps do have to be taken to manage the potential extra complexity. At the
simplest level, to prevent conflicts, global variables and include files must
be named in a way reflecting the hierarchy of components.
However, as proven in the eCos RTOS, it is possible to design tools and infrastructure
to help control complexity. In the case of eCos, the infrastructure is CDL,
and there are graphical configuration tools and testing infrastructure. These
allow the user to easily change the configuration, navigating through what would
otherwise be a maze of configuration points. With powerful tools, users can
be helped by easy access to the component documentation, context sensitive help
for each option, verification by rules that the chosen configuration is valid,
and ultimately by self-configurable tests to verify for certain that the system
behaves correctly in the chosen configuration. Doing this requires no special
modifications to the tools instead the configuration information can be expressed
in CDL, giving power and flexibility to the developer, while allowing modular
components to be easily added to the system.
The effect is to greatly improve the cost, portability, flexibility and time to market for users of configurable software.
|