Uso del UML para el diseño de POO

Modelo UML

Antes de comenzar, con tu equipo responde los siguientes planteamientos

  1. ¿Qué es un diagrama de flujo y para que se utiliza?
  2. ¿Qué es un modelo?
  3. ¿Qué es un paradigma, describe alguno?
  4. ¿Qué es un algoritmo? Describe el algoritmo que realizaron para responder estas preguntas.

Ahora sí, estás preparad@ para iniciar la aventura de analizar y diseñar modelos con UML para crear programas con POO

Diagramas UML

Empoderando mi aprendizaje

 Excelente, ahora que conoces los conceptos de la POO y sus principios básicos, realiza el siguiente ejercicio.


Me divierto un poco



¡Muchas felicidades por este primer logro!

Principios de la POO

La POO -Programación Orientada a Objetos tiene 4 principios fundamentales, a continuación se detallan:


  1. Encapsulación o encapsulamiento
  2. Abstracción
  3. Herencia
  4. Polimorfismo

Bienvenida

Bienvenidos/as a mi Blog -Program ANDO- 


En este espacios encontrarás diferentes casos prácticos para que comprendas el concepto de la programación orientada a objetos (POO)

Comenzaré con casos de la vida cotidiana e iremos avanzado con ejemplos que te acerquen a la programación mediante situaciones interesantes y que te hagan ver este fascinante mundo como algo realmente sorprendente.




Conceptos claves de la POO

POO (Programación Orientada a Objetos).

¿Qué es? Es un paradigma que utiliza objetos que contienen datos para organizar modelos en lugar de acciones,  es decir, es un modelo o un estilo de programación que nos da unas guías sobre cómo trabajar con él. Se basa en el concepto de clases y objetos. Este tipo de programación se utiliza para estructurar un programa de software en piezas simples y reutilizables de planos de código (clases) para crear instancias individuales de objetos.  Entonces, los objetos son todo lo que nos rodea, que podemo ver, tocar, mover, girar, revisar, romper, etc. 

Los paradigmas de programación anteriores se centraban en la lógica detrás de las acciones en lugar de los objetos en sí. 

Los objetos incluyen cosas como personas (nombres, por ejemplo) a pequeños widgets que encontramos en nuestros dispositivos inteligentes. Estos objetos le permiten reutilizar el código escrito para otras funciones y los objetos se basan principalmente en clases. Las diferentes clases son luego modeladas y organizadas por la lógica que las manipula, llamada método. Las subclases son objetos relacionados que también comparten características y métodos con su clase principal.

Ventajas de un lenguaje orientado a objetos
  1. Fomenta la reutilización y extensión del código. 
  2. Permite crear sistemas más complejos. 
  3. Relacionar el sistema al mundo real.
  4. Facilita la creación de programas visuales. 
  5. Construcción de prototipos 
  6. Agiliza el desarrollo de software 
  7. Facilita el trabajo en equipo y el mantenimiento del software

Conceptos claves:
El primer concepto que es importante comprender es la CLASE. Las clases en POO se consideran moldes o plantillas, así es, como lo moldes para las gelatinas
 
a partir de uno se puede crear todas las gelatinas que uno requiera, entonces cuando se crean las gelatinas, en POO a eso se le llama OBJETO.

Una CLASE define de manera genérica cómo van a ser los objetos de un determinado tipo, otro ejemplo es una clase para representar a animales puede llamarse ‘animal’ y tener una serie de atributos, como ‘nombre’ o ‘edad’ (que normalmente son propiedades), y una serie con los comportamientos que estos pueden tener, como caminar o comer, y que a su vez se implementan como métodos de la clase (funciones).

Un ejemplo sencillo de un objeto, como decíamos antes, podría ser un animal. Un animal tiene una edad, por lo que creamos un nuevo atributo de ‘edad’ y, además, puede envejecer, por lo que definimos un nuevo método. Datos y lógica. Esto es lo que se define en muchos programas como la definición de una clase, que es la definición global y genérica de muchos objetos.


Con la clase se pueden crear INSTANCIAS DE OBJETOS, cada uno de ellos con sus atributos definidos de forma independiente. Con esto podríamos crear un gato llamado pikachu, con 3 años de edad, y otro animal, este tipo perro y llamado cabo, con una de edad de 4 años. Los dos están definidos por la clase animal, pero son dos instancias distintas. Por lo tanto, llamar a sus métodos puede tener resultados diferentes. Los dos comparten la lógica, pero cada uno tiene su estado de forma independiente.

En consecuencia un OBJETO en POO se define como la instancia de una clase, por ejemplo, podemo crear gelatinas de fresa, mango, manzana, piña, etc. así en programación cuando creamos un objeto lo hacemos a partir de la clase. Representan un tipo particular de un objeto. Por lo tanto, son objetos con características y comportamiento similar.



Ahora bien, como te darás cuenta, con los moldes se crean gelatinas, pero ellas tienen CARACTERÍSTICAS, PROPIEDADES, ATRIBUTOS que las hacen diferentes por ejemplo: el color, sabor, textura, tamaño, altura, forma, etc. (porque podemos tener diferentes moldes y cada uno tendrá su propio diseño de gelatinas
Fuente: https://www.cocinafacil.com.mx/recetas/gelatina-mosaico/ 

Mensajes y Métodos.

MensajeLos objetos interactúan enviándose mensajes unos a otros. Tras la recepción de un mensaje el objeto actuará. La acción puede ser el envío de otros mensajes, el cambio de su estado, o la ejecución de cualquier otra tarea que se requiera que haga el objeto.

Método. Un método se implementa en una clase, y determina cómo tiene que actuar el objeto cuando recibe un mensaje; es decir, son las ACCIONES que realizan los objetos, por ejemplo, cuajar, deshacer, vaciar en el molde, retomando el ejemplo de una gelatina. Cuando un objeto A necesita que el objeto B ejecute alguno de sus métodos, el objeto A le manda un mensaje al objeto B.


Paso de mensajes. Esencialmente, el término describe la transmisión ordenada y eficiente de información entre componentes. Para que el paso de mensajes funcione correctamente, hay varios factores que deben tenerse en cuenta. Uno tiene que ver con identificar el formato utilizado para la transmisión. Las formas reales de los mensajes pueden ser:
  • señales, 
  • paquetes de datos o 
  • algún tipo de activación remota utilizando un lenguaje básico que los sistemas receptores están programados para reconocer. 
Junto con el tipo de datos transmitidos, el paso de mensajes también implica estructurar el orden en que se reciben las transmisiones, un factor que ayuda en la asimilación de los datos en el extremo receptor.

El paso de mensajes puede usar lo que se conoce como un enfoque uno a uno, lo que significa que hay un único destinatario del mensaje. En este escenario, el destinatario asimila el mensaje y luego puede iniciar o no un nuevo mensaje que se transmite a un segundo destinatario. También existe un proceso conocido como mensajería uno a muchos que requiere un único punto de origen para iniciar la transmisión de un mensaje a múltiples destinos, un método que puede ser muy deseable dependiendo de la construcción de una red o plataforma.



Estructura interna de un objeto
La estructura interna de un objeto está compuesta por tres elementos fundamentales como son:
  • Propiedades: Características observables de un objeto, las propiedades se reconocen porque describen un aspecto del objeto que podemos medir como una escala establecida previamente. A cada propiedad se le debe asignar un valor el cual permite identificar de manera única al objeto.
  • Método: Se define como un conjunto de acciones que un objeto puede realizar para conseguir un propósito. Los métodos representan la parte viva e interesante de un objeto y se emplean habitualmente para identificar las propiedades del objeto. Al modificar cualquiera de las propiedades del objeto se altera su apariencia y se genera un cambio que el usuario de la aplicación puede percibir.
  • Eventos: Todos los objetos se relacionan con el mundo que los rodea, esto significa que ningún objeto está aislado y siempre recibe el influjo de otros objetos. Los eventos son los estímulos que un objeto ejerce sobre otro.



Ahora, para reafrrmar el tema, en el contexto cotidiando, pensemos en los siguientes ejemplos.

Caso 1. Se requiere de una clase que a partir de ella se puedan instanciar diferentes objetos, conocer las propiedades, algunos métodos y ejemplicar cada caso. La clase es Libro.

Clase:  
  • Libro

Atributos:
  • Título
  • Autor
  • Editorial
  • Fecha de edición
  • Fecha de última reimpresión
  • País
  • Número de páginas
Métodos:
  • Colocar
  • Leer
  • Subtayar
  • Mover
  • Escribir
  • Quitar hojas

Objetos.

OBJETO 1. Libro de historia
  • Título: Fuentes de la Historia Contemporánea de México
  • Autor: Luis González y G
  • Editorial: Editorial Universidad Estatal a Distancia (EUNED)
  • Fecha de edición: 1961
  • Fecha de última reimpresión: 1992
  • País: México
  • Número de páginas: 527
OBJETO 2. Libro de Sw
  • Título: Introducción Análisis de Sistemas y la Ingeniería de Sw
  • Autor: Roberto Cortés Morales
  • Editorial: Colegio de México
  • Fecha de edición: 1961
  • Fecha de última reimpresión: 2020
  • País: Costa Rica
  • Número de páginas: 350

Caso 2. Se requiere de una clase para instanciar objetos de muebles de madera.

Clase:  
  • Mueble de madera

Atributos:
  • Forma
  • Color
  • Textura
  • Grosor
  • Tamaño
  • Uso
Métodos:
  • Armar
  • Desarmar
  • Mover
  • Colocar

Objeto 1. Mesa 
  • Forma: Rectangular
  • Color: Chocolate
  • Textura: Rústico
  • Dimensiones: 2.5 mts de largo, .80cm de alto, 15 cm de grueso
  • Uso: Mesa de comedor para 6 personas
  • Observaciones: Mesa con base, la base es de 2 accesorios laterales


Objeto 2. Armario
  • Forma: Rectangular
  • Color: Café 
  • Textura: Liso
  • Dimensiones: 1.5 mts de alto, 2 mts de ancho, 1.8 mts interior
  • Uso: Closet / Guradaropa
  • Observaciones: Se coloca de manera rápida, práctico y resistente.

¿Qué te parece? Todo claro, poco a poco, no te preocupes, con la práctica desarrollarás tus habilidades en POO


Excelente, ahora revisemos este video



Uso del UML para el diseño de POO

Modelo UML Antes de comenzar, con tu equipo responde los siguientes planteamientos ¿Qué es un diagrama de flujo y para que se utiliza? ¿Qué ...