1. A method of managing a program object, the method comprising: obtaining a set of properties for the program object; obtaining a property object for the program object, the property object defining a set of user interface attributes for the program object; and generating a user interface based on the set of properties and the property object.