El desarrollo de proyectos software ha sufrido una evolución desde los primeros sistemas de cálculo, implementados en grandes
computadores simplemente ayudados mediante unas tarjetas perforadas donde los programadores escribían sus algoritmos de control,
hasta la revolución de los sistemas de información e Internet. Han existido dos grandes cambios desde aquellos sistemas meramente
algorítmicos donde todo el esfuerzo de desarrollo se centraba en la escritura de programas que realizaran algún tipo de cálculo.
Para poner un poco de orden, sobre todo en lo que respecta a la modelización de sistemas software, aparece UML (Unified Modeling
Languaje, Lenguaje Unificado de Modelado) que pretende unificar las tres metodologías más difundidas (OMT, Bootch y OOSE) e intentar
que la industria software termine su maduración como Ingeniería. Y lo consigue en tal manera que lo que UML proporciona son las
herramientas necesarias para poder obtener los planos del software equivalentes a los que se utilizan en la construcción, la mecánica o la
industria aeroespacial. UML abarca todas las fases del ciclo de vida de un proyecto, soporta diferentes maneras de visualización
dependiendo de quién tenga que interpretar los planos y en qué fase del proyecto se encuentre.