La orientación a objetos es lo que se conoce como un paradigma de programación. No es un lenguaje en sí, sino un conjunto de conceptos que son compatibles con muchos idiomas.
Si todo lo que hacemos en estos lenguajes está orientado a objetos, significa que estamos orientados o enfocados en los objetos.
Ahora, en un lenguaje orientado a objetos, este gran programa se dividirá en objetos independientes, casi como si tuviera varios mini programas, cada objeto representando una parte diferente de la aplicación.
Y cada objeto contiene sus propios datos y su propia lógica, y se comunican entre sí.
Estos objetos no son aleatorios. Representan la forma en que habla y piensa sobre el problema que está tratando de resolver en su vida real.
Representan cosas como empleados, imágenes, cuentas bancarias, naves espaciales, asteroides, segmentos de video, archivos de audio o cualquier cosa que exista en su programa.
Análisis y diseño orientado a objetos (OOAD)
OOAD, por sus siglas del inglés «Object-oriented analysis and design» es un método estructurado para analizar y diseñar un sistema mediante la aplicación de conceptos orientados a objetos y desarrollar un conjunto de modelos de sistema gráficos durante el ciclo de vida del desarrollo del software.
OOAD en el Ciclo de vida del software
El ciclo de vida del software normalmente se divide en etapas que van desde descripciones abstractas del problema a diseños, pasando a código y pruebas y, finalmente, a la implementación.
Las primeras etapas de este proceso son el análisis (requisitos) y el diseño.
La distinción entre análisis y diseño a menudo se describe como «qué (análisis) vs cómo (diseño)«.
En el análisis, los desarrolladores trabajan con usuarios y expertos en dominios para definir qué se supone que debe hacer el sistema. Se supone que los detalles de la implementación deben ser ignorados en su mayoría o totalmente en esta fase.
El objetivo de la fase de análisis es crear un modelo del sistema independientemente de las restricciones, como la tecnología apropiada. Esto normalmente se hace a través de casos de uso y la definición abstracta de los objetos más importantes utilizando un modelo conceptual.
La fase de diseño refina el modelo de análisis y aplica la tecnología necesaria y otras restricciones de implementación.
Se enfoca en describir los objetos, sus atributos, comportamiento e interacciones. El modelo de diseño debe tener todos los detalles necesarios para que los programadores puedan implementar el diseño en código.
Análisis orientado a objetos
En el análisis orientado a objetos, se realizan principalmente las siguientes tareas:
- Obtener requisitos: Se define qué debe hacer el software y cuál es el problema que intenta resolver.
- Especificar requisitos: Se describen los requisitos, generalmente, utilizando casos de uso (y escenarios) o historias de usuarios.
- Definición del modelo conceptual: Se identifican los objetos importantes, se definen sus relaciones y comportamientos y se dibujan en un diagrama simple.
Diseño orientado a objetos
La fase de análisis identifica los objetos, su relación y comportamiento utilizando el modelo conceptual (una definición abstracta para los objetos).
Mientras estamos en la fase de diseño, describimos estos objetos (mediante la creación de un diagrama de clase a partir del diagrama conceptual, generalmente mapeando el modelo conceptual al diagrama de clases), sus atributos, comportamiento e interacciones.
Además se aplicarán los principios y patrones de diseño de software que se considere necesarios.
La entrada para el diseño orientado a objetos es proporcionada por la salida del análisis orientado a objetos. Pero, el análisis y el diseño pueden ocurrir en paralelo, y los resultados de una actividad pueden ser utilizados por la otra.
En el diseño orientado a objetos se realizan las siguientes tareas:
- Descripción de las clases y sus relaciones mediante el diagrama de clases.
- Descripción de la interacción entre objetos mediante el diagrama de secuencia.
- Aplicación de principios de diseño de software y patrones de diseño.
Un diagrama de clase proporciona una representación visual de las clases que necesita. Y aquí es donde se llega a ser realmente específico acerca de los principios orientados a objetos como la herencia y el polimorfismo.
La descripción de las interacciones entre esos objetos le permite comprender mejor las responsabilidades de los diferentes objetos, los comportamientos que deben tener.
Otros diagramas utilizados
Hay muchos otros diagramas que podemos usar para modelar el sistema desde diferentes perspectivas; interacciones entre los objetos, la estructura del sistema o el comportamiento del sistema y cómo responde a los eventos.
Siempre se trata de seleccionar el diagrama correcto para la necesidad correcta. Es importante darse cuenta de qué diagramas serán útiles cuando piense o discuta una situación que no está clara.
Deja una respuesta