A standard analysis and design language created to assist in modeling complex software systems by using a common object-oriented notation. UML is rapidly becoming the de facto standard for describing and sharing system design data. Many software vendors have chosen UML as their notation for repository (see definition of repository) products to aid in sharing common software components among different thirdparty modeling and programming tools.