En las Metodologías de Desarrollo, existen métodos inspirados en el Paradigma Orientado a Objetos que nos otorgan ciertas ventajas:
- Reusabilidad del software.
- Mejor mantenibilidad del software.
- Disminuir el gap semántico entre el analista y el diseñador.
- Ayuda a resolver problemas complejos.
Es importante distinguir entre objetos y atributos, clases y objetos, el todo y sus partes.
Un sistema orientado a objetos está formado por objetos con cierta responsabilidad que interactúan entre sí enviando y recibiendo mensajes. Un programa orientado a objetos es una red colaborativa de objetos.
Un objeto puede representar algo físico o abstracto, del problema o la solución, etc.
Tipos de mensajes:
- Sincrónico.
- Asincrónico.
- De tiempo límite (tienen un timeout).
Una responsabilidad es el contrato u obligación de un objeto, cosas que hace y conoce.
Una colaboración ocurre cuando dos o más objetos interactúan entre sí para realizar una tarea. Cuando un objeto no sabe hacer algo por fuera de su responsabilidad, delega a otro objeto mediante mensajes.
Pilares:
- Abstracción: nos enfocamos en la interfaz del objeto y no en su implementación.
- Encapsulamiento: permite ocultar los detalles de implementación. Mejora la mantenibilidad.
- Herencia: reutilización del código y la estructura.
- Polimorfismo: cada objeto puede resolver un mismo mensaje de distinta manera. Se logra mediante interfaces, sobrecarga de métodos, sobreescritura de métodos, etc.
El diseño orientado a objetos abarca un proceso de descomposición orientada a objetos y una notación para representar modelos lógicos o físicos y estáticos o dinámicos. Pasos:
- Identificar clases.
- Identificar responsabilidades.
- Asignar responsabilidades a clases.
- Identificar colaboraciones.