DISEÑO ORIENTADO A OBJETOS
En vez de desarrollar el diseño de un sistema software por medio de una descomposición funcional descendiente, se ha mencionado que la mejor metodología es el diseño orientado al objeto. En este diseño los componentes del software se ven mas como objetos que como funciones. Cada objeto tiene una conjunto asociado de operaciones permitidas, y los objetos se comunican mediante el paso de mensajes que, por lo general, incluyen una instrucción para activar una instrucción para activar una función determinada.
El diseño orientado a objetos se basa en la idea de utilizar ocultamiento de información como principal criterio de descomposición y en la noción de los tipos de datos abstractos. Esta metodología ha sido adoptada de manera entusiasta de algunos desarrolladores y educadores. Abbot ha llegado a decir que "los programas bien escritos en ada suelen ser orientados al objeto", no esta bien escrito. Tales generalizaciones sin comprobar no son de ayuda, y es poco probable que haya alguna metodología de diseño que sea superior a todas las circunstancias. Para situar estos comentarios en perspectiva, se han construido muchos sistemas grandes utilizando el diseño ascendente.
Y pocos con un enfoque orientado al objeto.
Por medio de un funcional, se identificaron las siguientes operaciones:
Una nueva visión orientada al objeto de este sistema puede tener como objetos generalizados documentos, diccionarios y listas de palabras. El sistema se puede presentar como un conjunto de objetos actuando recíprocamente.
Esta estrategia depende de la escritura de una descripción informal en lenguaje natural acerca de cómo tratar el problema de diseño. Dada esta descripción, se extraen nombres comunes, con fechas, mensajes, documentos, diccionarios, etc., y se consideran tipos de datos abstractos. Los llamados nombres de mas como unidades de medida, nombres de calidades, actividades, etc., también se incluyen en esta categoría.
Los nombres propios y referencias directas a los nombres comunes, por ejemplo la fecha de envío del sistema, un cumpleaños, la propuesta del proyecto, etc., se consideran como casos de tipos de datos abstractos. Los verbos y adverbios se emplean para identificar operadores y atributos de un objeto. Estos se asocian con el correspondiente tipo de datos abstractos.
Este enfoque de diseño orientado al objeto que se basa en una descripción del problema el lenguaje natural parece ser útil en algunas circunstancias. Sin embargo, no esta claro como se puede aplicar al diseño de sistemas grandes y complejos. Cuando un sistema es complejo y con muchas funciones en relación reciproca, es en verdad muy difícil producir una descripción del lenguaje natural y de manera concisa y completa. Por lo tanto, es probable que se presenten errores, omisiones e inconsistencias en la descripción informal de un problema.
Mientras que la resolución de tales errores es siempre un problema de diseño, la falta de estructura y ambigüedad inerte del lenguaje natural dificulta la obtención de una descripción completa del problema. Esto quiere decir que quizá sea necesaria una combinación de estrategias para obtener diseños orientados a objetos; aquí el diseñador utiliza su experiencia e intuición para obtener un diseño a partir de alto nivel del sistema, un modelo funcional descendente, etc., se ha mencionado que una visión centrada en el objeto de los sistemas de software debe reemplazar por completo la visión funcional. En opción de autor, esto sería un error. Más bien, la descomposición funcional descendente y el diseño orientado a objetos se complementan uno al otro, y cada uno es aplicable en diferentes etapas de diseño del sistema.
Actividades Obligatorias
Actividades sugeridas
Recursos para ampliar el tema
Autoevaluación
- ¿En que se basa el enfoque de diseño orientado a objetos?
- ¿Cuales son los tipos de datos abstractos?
- En que se basa el diseño orientado a objeto