1. A method for programming a software component, said method comprising the steps of: defining properties of said software component, including at least one input port and at least one output port; and preventing said properties of said software component from being inherited by another component.