Metodología OMT en el Desarrollo Orientado a Objetos
Introducción
Desde finales de los 90, las técnicas de programación dieron un giro a lo que entonces se denominó Orientación a Objetos, irrumpiendo con fuerza en el ámbito académico, industrial y de investigación. Esta nueva forma de diseñar programas requería:
- Técnicas de diseño y análisis nuevas.
- Nuevas técnicas de gestión de proyectos.
- Nuevas formas de cuantificar el software.
- Nuevos estilos de programación.
Con el tiempo, se ha demostrado que usar estos métodos aumenta la productividad y la calidad, entre otras cosas, porque los desarrollos son más rápidos gracias a la reusabilidad. Usar componentes reutilizables implica no empezar de cero y permite ciclos de vida evolutivos (prototipos), facilidad de mantenimiento y robustez ante errores.
Además, con la aparición de los nuevos métodos de modelado, desaparecen los principales problemas de los métodos tradicionales:
Eliminación de inconsistencias
Con los métodos tradicionales, existía una separación drástica entre los datos y las funciones, hasta el punto de que podían existir equipos de desarrollo independientes, uno para la modelización de los datos y otro encargado de diseñar la funcionalidad, con las inconsistencias que ello podía acarrear.
Estandarización e independencia
Antes de la unificación del modelado, existían muchas terminologías diferentes para cada lenguaje. Se hacía necesaria una abstracción que permitiera comprender las aplicaciones orientadas a objetos con independencia del lenguaje en el que finalmente se fueran a implementar.
Mejora continua
Con la metodología tradicional, había una dificultad extrema en mantener la consistencia entre las distintas fases del proyecto (análisis / diseño / programación). El nuevo método permite un ciclo de mejora continuo de retroalimentación; es decir, desde cualquier fase pueden detectarse errores o mejoras de forma que se mantenga la integridad del proceso. Esto es posible, en gran medida, por la modularidad que ofrece la programación orientada a objetos.
Adaptación a los sistemas actuales
Desde hace ya una década, los sistemas tradicionales han evolucionado exponencialmente. Ahora nos encontramos con redes inalámbricas, interfaces gráficos avanzados, sistemas transaccionales, terminales remotos, procesamientos distribuidos… y todo ello orientado a otro tipo de comercio transaccional: el comercio electrónico o e-business.
Entre 1988 y 1997 nacieron decenas de métodos para la modelización de objetos, con sus múltiples versiones (Shaler & Mellor [89,91,97], Coad & Yourdon [91,92,93,97,99], Grady Booch [88,94], Jim Raubaugh [91,96], Martin & Odell [94,96], Jacobson [91,94,96], Hood, Bertrand Meyer…). De esta forma comienza una guerra por la estandarización.
El problema residía en que cada metodología era muy similar a las demás pero diferían en la notación, lo cual era caótico.
La comunidad internacional se planteó la necesidad imperiosa de estandarizar, proceso que comienza con la asociación entre Rumbaugh y Booch para crear «Rational», proyecto al que se uniría poco después Jacobson.
En 1996 nace UML (Unified Modeling Language) y la OMG aprueba su estandarización.
Desarrollo Orientado a Objetos
Se basa en una modelización del mundo real con lo que el diseño se hace independiente del lenguaje. Para ello vamos a estudiar tanto el proceso (OMT) como la notación (UML).
Los conceptos básicos que vamos a ver son:
Orientación a Objetos
El software se va a organizar como un conjunto de objetos discretos que contienen estructuras de datos y comportamiento y que, sobre todo, se relacionan entre sí.
Identidad
Vamos a manipular entidades que se distinguen por sí mismas (objetos). Pueden ser concretas («Libro») o conceptuales («TransacciónBD»). La implementación puede ser a través de direcciones de memoria, de índices en un array o matriz, de valores exclusivos de un atributo…
Clase
Es una plantilla que describe objetos similares, entendiendo por similares a aquellos que tienen estructura idéntica y comportamientos parecidos; es decir, atributos y operaciones.