Diseño Orientado a Objetos

4
3.1 Descomposición Modular El diseño modular propone dividir el sistema en partes diferenciadas y definir sus interfaces. Sus ventajas: Claridad, reducción de costos y re utilización. Los pasos a seguir son: 1. Identificar los módulos 2. Describir cada módulo 3. Describir las relaciones entre módulos Una descomposición modular debe poseer ciertas cualidades mínimas para que se pueda considerar suficiente validad. 1. Independencia funcional 2. Acoplamiento 3. Cohesión 4. Comprensibilidad 5. Adaptabilidad Independencia Funcional Cada módulo debe realizar una función concreta o un conjunto de funciones afines. Para medir la independencia funcional hay dos criterios: acoplamiento y cohesión Acoplamiento El acoplamiento es una medida de la interconexión entre módulos en la estructura del programa. . El grado de acoplamiento mide la interrelación entre dos módulos, según el tipo de conexión y la complejidad de la interfaces: Fuerte

Transcript of Diseño Orientado a Objetos

Page 1: Diseño Orientado a Objetos

3.1 Descomposición Modular

El diseño modular propone dividir el sistema en partes diferenciadas y definir sus interfaces.

Sus ventajas: Claridad, reducción de costos y re utilización.

Los pasos a seguir son:

1. Identificar los módulos

2. Describir cada módulo

3. Describir las relaciones entre módulos

Una descomposición modular debe poseer ciertas cualidades mínimas para que se pueda considerar suficiente validad.

1. Independencia funcional

2. Acoplamiento

3. Cohesión

4. Comprensibilidad

5. Adaptabilidad

Independencia Funcional

Cada módulo debe realizar una función concreta o un conjunto de funciones afines.

Para medir la independencia funcional hay dos criterios: acoplamiento y cohesión

Acoplamiento

El acoplamiento es una medida de la interconexión entre módulos en la estructura del programa.

. El grado de acoplamiento mide la interrelación entre dos módulos, según el tipo de conexión y la complejidad de la interfaces:

Fuerte

Por contenido, cuando desde un módulo se puede cambiar datos locales de otro.

Moderado

De control, la zona común es un dispositivo externo al que están ligados los módulos, esto implica que un cambio en el formato de datos los afecta a todos.

Débil

Page 2: Diseño Orientado a Objetos

De datos, viene dado por los datos que intercambian los módulos.

Cohesión

Un módulo coherente ejecuta una tarea sencilla en un procedimiento y requiere poca interacción con procedimientos que se ejecutan en otras partes de un programa.

Comprensibilidad

Para facilitar los cambios, el mantenimiento y la reutilización de módulos es necesario que cada uno sea comprensible de forma aislada.

Para ello es bueno que posea independencia funcional, pero además es deseable:

Identificación, el nombre debe ser adecuado y descriptivo

Documentación, debe aclarar todos los detalles de diseño e implementación que no queden de manifiesto en el propio código

Adaptabilidad

La adaptación de un sistema resulta más difícil cuando no hay independencia funcional, es decir, con alto acoplamiento y baja cohesión, y cuando el diseño es poco comprensible.

Page 3: Diseño Orientado a Objetos

DISEÑO ORIENTADO A OBJETOS

Es una metodología de programación que define programas en términos de clases de objetos. El diseño expresa un programa como un conjunto de estos objetos para realizar tareas.

De esta forma un objeto contiene toda la información que permite definirlo e identificarlo, dispone de mecanismos de interacción que favorecen la comunicación entre objetos y el cambio de datos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separan información y procesamiento.

El diseño orientado a objetos es totalmente distinto a los lenguajes de programación tradicionales, anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. Los programadores de lenguajes tradicionales escriben funciones y después les pasan datos. Los programadores POO los definen con datos y métodos, después envían mensajes a los objetos para que realicen los métodos.

Características

Identidad: Expresa que aunque dos objetos sean exactamente iguales en sus atributos, son distintos entre sí.

Encapsulamiento: Cada objeto está aislado del exterior, y expone una interfaz a otros objetos que específica cómo pueden interactuar entre ellos. El aislamiento protege las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a este.

Polimorfismo: Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, pero se utilizara el comportamiento correspondiente al objeto en uso.

Herencia: Las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen.

Mantenibilidad: Debe ser fácilmente modificable. Es decir que los cambios en las condiciones externas implicaran modificaciones pequeñas en el programa y sistema. El concepto de Mantenibilidad implica que un programa, al igual que un ser vivo debe ser capaz de adaptarse a un medio ambiente siempre cambiante.

Page 4: Diseño Orientado a Objetos

Re usabilidad: indica que partes pueden ser reutilizados en la confección de otros programas.