El avance de la ingeniería de software y las necesidades de los usuarios, hacen indispensable el desarrollo de soluciones rápidas y eficientes, mediante el uso de técnicas de programación adecuadas. El sueño del desarrollo de software reutilizable se está haciendo realidad mediante el uso del paradigma de orientación a objetos (OO), el desarrollo de componentes y el uso de librerías.    Éste paradigma implica unas practicas y uso de artefactos especiales en el análisis, diseño y programación de las aplicaciones de software a mediana escala.