Whenever QTP records any action on any object of an application, it adds some description on how to recognize that object to a repository of objects called object repository. QTP cannot take action on an object until unless its object description is in the Object Repository. But descriptive programming provides a way to perform action on objects which are not in Object repository.
This technique is useful when the application to be tested has not been developed yet but its interface design is available.
German Version:
Thanks to Ralph Scholz for translating my article to German version