The component concept found in electronic works because components provides generic ways to interact with other components. Further, one may invent new way to integrate components together, using "glue" components.
So far, the software industry have hoped to find a way to connect reusable components just by "plugging" them together, forgetting the "glue" concept above. It does not work. In fact, most reusable framework available today are used in a constricted way: Applications are build around one or few components. Components do not mix well.
For object component, each pins on the left correspond to an action you can perform on the component while it is active.
Many functags are optional. There is a default behavior if omitted. Often, the default behavior is to do nothing. This functag are informative and allow your application to react to some events.
A functag with a red arrow is mandatory. There is no default behavior and the application won't complile unless you provide a definition (some code) for this functag.