  Systematically developing high--quality reusable software components is a
difficult task and requires careful design to find a proper balance between
potential reuse, functionalities and ease of implementation. Extendibility is
an important property for software which helps to reduce cost of development
and significantly boosts its reusability. This work introduces an approach to
enhance components reusability by extending their functionalities using
plug-ins at the level of the connection points (ports). Application--dependent
functionalities such as data monitoring and arbitration can be implemented
using a conventional scripting language and plugged into the ports of
components. The main advantage of our approach is that it avoids to introduce
application--dependent modifications to existing components, thus reducing
development time and fostering the development of simpler and therefore more
reusable components. Another advantage of our approach is that it reduces
communication and deployment overheads as extra functionalities can be added
without introducing additional modules.
