1. A data process system, comprising: means for establishing a class role, a class role being a computer programming construct that assigns to a class occupying the class role a functionality in terms of a set of interfaces, where the class role defines each interface in the set as being either mandatory or optional; means for determining dynamically a class for the class role at runtime; and means for instantiating a programming object from the dynamically determined class.