¿Cuál es el OBJETivo? Un acercamiento a la Tecnología a Objetos (OOT).
La tecnología orientada a objetos (OOT) está siendo presentada como la solución para toda la gama de entornos de desarrollo de aplicaciones, desde las consultas ad hoc de usuarios finales a las sofisticadas herramientas de desarrollo de los programadores profesionales. Sin embargo, las cosas pueden hacerse algo confusas; con frecuencia se identifica incorrectamente a OOT como una herramienta de creación de prototipos o como un entorno de programación que soporta interfaces GUI (Graphical User Interfaces).
La tecnología OOT constituye en realidad un cambio en la forma en la que las personas piensan sobre el desarrollo de sistemas y lo enfocan. Afecta al análisis de problemas, al diseño y programación de sistemas y al interface del usuario final con el entorno de aplicación.
Con la tecnología orientada a objetos, la concentración pasa de la modelización de procesos y datos comerciales a la creación de objetos, que consisten en elementos de información/datos y acciones (mensajes) relacionados con esos elementos dentro de un proceso comercial. Los objetos son definidos, programados, documentados y almacenados en un repositorio para ser utilizados en futuras aplicaciones comerciales.
A ciertos niveles de abstracción, los objetos pueden convertirse en artefactos; indicadores de la información, acciones y lenguaje que utilizan las empresas. Como los desarrolladores y usuarios finales utilizan el mismo lenguaje y objetos comerciales, las comunicaciones, y por lo tanto los requisitos y necesidades de los sistemas, mejoran considerablemente.
Para comprender a fondo todas las afirmaciones que se hacen sobre lo que puede hacer por uno la tecnología, hemos analizado algunas compañías que están realizando el paso a la tecnología OOT. Sus experiencias revelan que muchos anuncios OOT tienen un germen de verdad, pero muchos centros de sistemas de información no están preparados para la inversión necesaria en tiempo y recursos que se necesita para hacer de la tecnología OOT un éxito.
En realidad, algunos pioneros se han visto inmersos en dificultades y problemas considerables. Además, en la mayoría de los casos, los vendedores de tecnologías OOT no han suministrado en la mayoría de los casos los entornos de programación necesarios para explotar los beneficios OOT.
Mejora de la productividad
Se supone que la OOT aumenta la productividad de los desarrolladores de aplicaciones gracias a la reutilización de objetos, lo que reduce significativamente la cantidad de codificación necesaria para soportar un área comercial. Sin embargo, no se puede entregar tecnología orientada a objetos a veteranos de 15 años en programación de procedimientos y esperar el éxito.
Las mejoras en productividad sólo pueden comenzar a acumularse cuando los desarrolladores se familiarizan con el nuevo mundo de la orientación a objetos. Esta no es una transición rápida ni fácil. Requiere considerar de nuevo cómo se ha realizado siempre el desarrollo de aplicaciones y, por lo tanto, requiere un largo período de aprendizaje. Los desarrolladores necesitan cambiar su forma de pensar, desde el desarrollo de modelos de procesos comerciales a la identificación de objetos y al análisis del comportamiento de los objetos. Resulta imperativo promover la documentación sobre la reutilización de objetos.
El período de aprendizaje necesario para la OOT es similar al de otras tecnologías más antiguas, como la Ingeniería de Software Asistida por Ordenador (CASE) y lenguajes 4GL. Las organizaciones que han introducido CASE hace dos o tres años, están comenzando precisamente ahora a recoger los beneficios. Los verdaderos beneficios en productividad requerirán entre 18 meses y tres años para hacerse efectivos.
Para ser justos con esta tecnología, hay que decir que parte del problema de la actual falta de productividad de OOT puede deberse a los centros de proceso de datos mismos.
Aparte de una formación adecuada para ayudar a cambiar la forma de pensar de los desarrolladores, pocos centros de proceso tienen instaladas medidas de aumento de la productividad. No serían capaces de detectar un posible aumento de productividad aunque les dieran con él en la cabeza.
Orientación a objetos como estándar
No hay nada respecto a la orientación a objetos que sea estándar actualmente, incluyendo el vocabulario utilizado para describir conceptos OOT.
OOT se confunde muchas veces con los interfaces GUI, mientras que el diseño orientado a objetos suele confundirse con la creación de prototipos y la programación en lenguaje C++.
Además, no hay un ciclo de vida de desarrollo de sistemas (metodología) aceptado para el diseño y desarrollo OOT. Los pocos intentos realizados para crear nuevas metodologías no han reflejado el cambio radical que aporta la orientación a objetos a los procesos analíticos, concretamente, pensar en términos de objetos en lugar de los modelos independientes de procesos comerciales y datos que incorpora la ingeniería de software.
Por ahora, los usuarios deben conformarse con herramientas y lenguajes de programación orientada a objetos (OOP), como Smalltalk, que han sido desarrollados para objetos. Estos elementos ofrecen el entramado para capturar diseño de sistemas utilizando normas y principios OOT.
Como las metodologías y entornos de programación orientadas a objetos se encuentran en un estado de cambio permanente, los nuevos releases de productos pueden causar una gran confusión en cualquier empresa.
Es posible que toda esta confusión esté alertando a los ingenieros de gestión y software sobre la necesidad de arquitecturas de software extensibles y completamente documentadas.
Mejora del mantenimiento
Uno de los factores de venta de OOT es que mejora el mantenimiento de aplicaciones. Las aplicaciones desarrolladas utilizando OOT se construyen utilizando objetos con herencia (los objetos se enlazan, incorporando los atributos y mensajes de unos y otros), no utilizando líneas de codificación. El mantenimiento consiste en mantener objetos, no líneas.
Además, como los objetos están proyectados para ser reutilizados, necesitan estar completamente documentados. Esta documentación detallada mejora la capacidad de mantenimiento de las aplicaciones orientadas a objetos. Los cambios a un objeto resultan más fáciles de realizar, por dos motivos: se reduce la complejidad en la codificación de objetos y, como los cambios son heredados entre los objetos asociados, las alteraciones se difunden a través de la aplicación.
Desafortunadamente, los lenguajes OOP, como el C++, no están creando aplicaciones orientadas a objetos. Esto se debe a que los lenguajes orientados a objetos se están utilizando principalmente como formas más inteligentes de reducir la antigua codificación de líneas de procedimientos, en lugar de hacerlo para crear verdaderos sistemas OOT. Por lo general, los lenguajes no se implementan con el entorno de programación (herramientas) necesario para soportar la totalidad del paradigma orientado a objetos, ni están respaldados por la formación y el soporte necesarios para cambiar la forma de pensar de los desarrolladores.
Como los objetos no están siendo ni construidos ni heredados, ni están comunicando entre sí, el mantenimiento de objetos es inexistente. Lo que uno obtiene es el mantenimiento de líneas de codificación C++, cosa que ya es conocida también.
La cuestión está en que OOT y los lenguajes de programación no son un sustituto para un buen diseño, documentación y duro trabajo. Si se dispone de disciplinas de desarrollo sólidas, la tecnología OOT constituye un marco mediante el cual pueden crearse sistemas susceptibles de un buen mantenimiento.
La OOT reduce la complejidad
La codificación compleja resulta difícil de cuidar y mantener, y por lo general presenta una mayor posibilidad de contener un el