El diseño orientado por objetos (DOO), como
otras metodología de diseños orientados a la
información crean una representación del
dominio del problema en el mundo real y lo
transforma en un dominio de soluciones que es el
software.
A diferencia de otros métodos, el DOO da como resultado un diseño
el cual interconexión los objetos de datos (elementos de datos) y
las operaciones de procesamiento, de forma tal que encapsula la
información y el procesamiento. Este encapsulamiento es el paradigma fundamental de la orientación
por objetos.
La naturaleza única del diseño orientado por objetos
se debe a su habilidad para construir basándose en
tres conceptos importantes del diseño del software:
•Abstracción.
•Ocultamiento de la información.
•Modularidad.
Conceptos básicos sobre la Orientación por Objetos
¿Qué es un Objeto?
Un objeto es una entidad física o abstracta que tiene
un comportamiento antes ciertos estímulos, tanto
externos como de otros objetos específicos que se
encuentran dentro del sistema.
Entonces ¿ Qué se puede considerar como objeto ? : Persona, equipo, hardware, materiales, información, software, procesos, procedimientos, etc.
Identidad de un objeto:
Cada objeto tiene su propia identidad que lo
distingue de los demás objetos.
En otras palabras, dos objetos distintos no son
iguales aunque todos los valores de sus
atributos sean idénticos.
Componentes para la construcción de Software de
un objeto:
Cuando un objeto se transforma en una realización de
software, consta de una interfaz, una estructura de
datos privada y unos procesos llamados operaciones o
métodos que son los únicos que pueden transformar
legítimamente la estructura de datos
Un modelo OO representa bastante el domino del
problema
•Esto facilita el entendimiento del diseño
•Es más sencillo impactar cambios en los
requerimientos (comparado con otros enfoques)
•Facilita la reutilización
•Se cree que este enfoque es más natural
•Entonces, provee estructuras más ricas para
pensar y poder hacer abstracciones
Tres conceptos claves para la calidad de un diseño (además de ser correcto, claro)
Acoplamiento (bajo)
• Captura la fuerza de interconexión entre módulos
• Cuánto más acoplados existe más dependientes entre si
• Entonces, más difícil comprenderlos y modificarlos
• El grado de acoplamiento entre módulos depende de:
Cuánta información se necesita sobre el otro módulo para
entenderlo y qué tan compleja y explícita es esta información
Cohesión (alta)
Se focaliza en conocer porqué los elementos de un módulo están
juntos en ese módulo
• El objetivo es tener en un mismo módulo elementos que están
fuertemente vinculados
• Entonces, módulos más fáciles de entender y más fáciles de modificar
Principio abierto-cerrado (cumplir con el principio)
Objetivo : promover la construcción de sistemas que sean fáciles de modificar
• Módulos abiertos para la extensión
El comportamiento puede ser extendido
• Módulos cerrados para la modificación
Extremo: cuando se hacen mejoras no es necesario tocar el código existente
La interfaz no debe cambiar y se debe asegurar que se mantiene el
comportamiento
¿Ustedes cómo diseñan?
En lo personal y con la experiencia que he obtenido en diversas materias en la que se nos a solicitado diseños se podría decir que el método con el que mas me siente cómodo o con el que mas he realizado diseños del software es con el modelo de diagramas de clases y el modelo de diagrama Entidad relación.

No hay comentarios:
Publicar un comentario