1. A method of providing flexibility at the attribute level of a software object in custom software developed using an existing or specially developed software object where the type of attribute can be set to a name and each name can be associated with an optional name object, said method comprising steps of associating a type attribute specifying a name to an attribute of a software object, or prepending a name object specifying a name to said existing or specially developed software object setting a type of attribute of said existing or specially developed software object, and prepending a value object specifying a value to said existing or specially developed software object, whereby said name specified by said type attribute or said name object and said value of said value object form a name value pattern that is inherited by said existing or specially developed software object to function as an additional attribute of said existing or specially developed software object without adding an additional attribute to said existing or specially developed software object to facilitate re-use and maintain compatibility of said existing or specially developed object with other objects.