You are on page 1of 3

Introduccin y conceptos bsicos.

Desde comienzos de la dcada de los 80, el paradigma "orientado a objetos" ha ido madurando como un enfoque de desarrollo de software alternativo a la programacin estructurada o modular. Se empez a crear diseos de aplicaciones de todo tipo usando una forma de pensar orientada a los objetos, y a implementar estos diseos utilizando lenguajes orientados a objetos. Sin embargo, el anlisis de requisitos se qued atrs. No se desarrollaron tcnicas de anlisis especficamente orientadas a objetos. Esta situacin ha ido cambiando poco a poco, a medida que se desarrollaban tcnicas de anlisis especficas para desarrollar software orientado a objetos, e incluso como complemento de otros mtodos de anlisis. Ejemplos de estas nuevas tcnicas son los mtodos de Coad/Yourdon, Jacobson, Booch y Rumbaugh (OMT) . En este tema seguiremos principalmente esta ltima metodologa. El Anlisis Orientado a Objetos (AOO) se basa en conceptos sencillos, conocidos desde la infancia y que aplicamos continuamente: objetos y atributos, el todo y las partes, clases y miembros. Puede parecer llamativo que se haya tardado tanto tiempo en aplicar estos conceptos al desarrollo de software. Posiblemente, una de las razones es el xito de los mtodos de anlisis estructurados, basados en el concepto de flujo de informacin, que monopolizaron el anlisis de sistemas software durante los ltimos veinte aos. En cualquier caso, el paradigma orientado a objetos ha sufrido una evolucin similar al paradigma de programacin estructurada: primero se empezaron a utilizar los lenguajes de programacin estructurados, que permiten la descomposicin modular de los programas; esto condujo a la adopcin de tcnicas de diseo estructuradas y de ah se paso al anlisis estructurado. El paradigma orientado a objetos ha seguido el mismo camino: el uso de la Programacin Orientada a Objetos (POO) ha modificado las tcnicas de diseo para adaptarlas a los nuevos lenguajes y ahora se estn empezando a utilizar tcnicas de anlisis basadas en este nueva forma de desarrollar software. El AOO ofrece un enfoque nuevo para el anlisis de requisitos de sistemas software. En lugar de considerar el software desde una perspectiva clsica de entrada/proceso/salida, como los mtodos estructurados clsicos, se basa en modelar el sistema mediante los objetos que forman parte de l y las relaciones estticas (herencia y composicin) o dinmicas (uso) entre estos objetos. Este enfoque pretende conseguir modelos que se ajusten mejor al problema real, a partir del conocimiento del llamado dominio del problema, evitando que influyan en el anlisis consideraciones de que estamos analizando un sistema para implementarlo en un ordenador. Desde este punto de vista, el AOO consigue una abstraccin mayor que el anlisis estructurado, que modela los sistemas desde un punto de vista ms prximo a su implementacin en un ordenador (entrada/proceso/salida). Este intento de conocer el dominio del problema ha sido siempre importante; no tiene sentido empezar a escribir los requisitos funcionales de un sistema de control de trfico areo, y menos an disearlo o programarlo sin estudiar primero qu es el trfico areo o qu se espera de un sistema de control de este tipo. La ventaja del AOO es que se basa en la utilizacin de objetos

como abstracciones del mundo real. Esto nos permite centrarnos en los aspectos significativos del dominio del problema (en las caractersticas de los objetos y las relaciones que se establecen entre ellos) y este conocimiento se convierte en la parte fundamental del anlisis del sistema software, que ser luego utilizado en el diseo y la implementacin. Deficiencias del anlisis estructurado.

Descomposicin funcional. El anlisis estructurado se basa fundamentalmente en la descomposicin funcional del sistema que queremos construir. Esta descomposicin funcional requiere traducir el dominio del problema en una serie de funciones y subfunciones. El analista debe comprender primero el dominio del problema y a continuacin documentar las funciones y subfunciones que debe proporcionar el sistema. El problema es que no existe un mecanismo para comprobar si la especificacin del sistema expresa con exactitud los requisitos del sistema. Flujo de datos. El anlisis estructurado muestra cmo fluye la informacin a travs del sistema. Aunque este enfoque se adapta bien al uso de sistemas informticos para implementar el sistema, no es nuestra forma habitual de pensar. Sin embargo, la abstraccin y la clasificacin s son conceptos que manejamos habitualmente, aunque sea de forma inconsciente. Modelo de datos. El anlisis clsico daba muy poca importancia al almacenamiento de datos. El anlisis estructurado moderno incorpora modelos de datos, adems de modelos de procesos y de comportamiento. Sin embargo la relacin entre los modelos es muy dbil, y hay muy poca influencia de un modelo en otro. En la prctica, los modelos de procesos y de datos de un mismo sistema se parecen muy poco. En muchos casos son visiones irreconciliables, no del mismo sistema, sino de dos puntos de vista totalmente diferentes de organizar la solucin. Lo ideal sera que ambos modelos se complementasen, no por oposicin sino de forma que el desarrollo de uno facilitase el desarrollo del otro.

Ventajas del AOO.

Dominio del problema. El paradigma OO es ms que una forma de programar. Es una forma de pensar acerca de un problema en trminos del mundo real en vez de en trminos de un ordenador. El AOO permite analizar mejor el dominio del problema, sin pensar en trminos de implementar el sistema en un ordenador. El AOO permite pasar directamente el dominio del problema al modelo del sistema. Comunicacin. El concepto OO es ms simple y est menos relacionado con la informtica que el concepto de flujo de datos. Esto permite una mejor comunicacin entre el analista y el experto en el dominio del problema (es decir, el cliente). Consistencia. Los objetos encapsulan tanto atributos como operaciones. Debido a esto, el AOO reduce la distancia entre el punto de vista de los datos y el punto de vista del proceso, dejando menos lugar a inconsistencias o disparidades entre ambos modelos. Expresin de caractersticas comunes. El paradigma OO utiliza la herencia para expresar explcitamente las caractersticas comunes de una serie de objetos. Estas caractersticas comunes quedan escondidas en otros enfoques y llevan a duplicar entidades en el anlisis y cdigo en los programas. Sin embargo, el paradigma OO pone

especial nfasis en la reutilizacin, y proporciona mecanismos efectivos que permiten reutilizar aquello que es comn, sin impedir por ello describir las diferencias. Resistencia al cambio. Los cambios en los requisitos afectan notablemente a la funcionalidad de un sistema, por lo que afectan mucho al software desarrollado con mtodos estructurados. Sin embargo, los cambios afectan en mucha menor medida a los objetos que componen o maneja el sistema, que son mucho ms estables. Las modificaciones necesarias para adaptar una aplicacin basada en objetos a un cambio de requisitos suelen estar mucho ms localizadas. Reutilizacin. Aparte de la reutilizacin interna, basada en la expresin explcita de caractersticas comunes, el paradigma OO desarrolla modelos mucho ms prximos al mundo real, con lo que aumentan las posibilidades de reutilizacin. Es probable que en futuras aplicaciones nos encontremos con objetos iguales o similares a los de la actual.

You might also like