Qué es UML

7/37

Lectura

Como ya viste UML significa Unified Modeling Language el cual es un lenguaje estándar de modelado de sistemas orientados a objetos.

220px-UML_logo.svg.png

Esto significa que tendremos una manera gráfica de representar una situación, justo como hemos venido viendo. A continuación te voy a presentar los elementos que puedes utilizar para hacer estas representaciones.

Las clases se representan así:

clase.png

En la parte superior se colocan los atributos o propiedades, y debajo las operaciones de la clase. Notarás que el primer caracter con el que empiezan es un símbolo. Este denotará la visibilidad del atributo o método, esto es un término que tiene que ver con Encapsulamiento y veremos más adelante a detalle.

Estos son los niveles de visibilidad que puedes tener:

- private
+ public
# protected
~ default

Una forma de representar las relaciones que tendrá un elemento con otro es a través de las flechas en UML, y aquí tenemos varios tipos, estos son los más comunes:

Asociación

associacion.png

Como su nombre lo dice, notarás que cada vez que esté referenciada este tipo de flecha significará que ese elemento contiene al otro en su definición. La flecha apuntará hacia la dependencia.

uml-relacion-asociacion.jpg

Con esto vemos que la ClaseA está asociada y depende de la ClaseB.

Herencia

herencia.png

Siempre que veamos este tipo de flecha se estará expresando la herencia.
La dirección de la flecha irá desde el hijo hasta el padre.

herencia-clases.png

Con esto vemos que la ClaseB hereda de la ClaseA

Agregación

agregacion.png

Este se parece a la asociación en que un elemento dependerá del otro, pero en este caso será: Un elemento dependerá de muchos otros. Aquí tomamos como referencia la multiplicidad del elemento. Lo que comúnmente conocerías en Bases de Datos como Relaciones uno a muchos.

uml-relacion-agregacion.jpg

Con esto decimos que la ClaseA contiene varios elementos de la ClaseB. Estos últimos son comúnmente representados con listas o colecciones de datos.

Composición

composicion.png

Este es similar al anterior solo que su relación es totalmente compenetrada de tal modo que conceptualmente una de estas clases no podría vivir si no existiera la otra.

uml-relacion-composicion.jpg

Con esto terminamos nuestro primer módulo. Vamos al siguiente para entender cómo podemos hacer un análisis y utilizar estos elementos para construir nuestro diagrama de clases de Uber.

Aportes 337

Preguntas 13

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

La Agregación y Composición no me habían quedado claros, así que busqué y encontré este diagrama que me resultó muy útil:

En la composición, el elemento Tree depende completamente del elemento Leaf, siendo el caso de que si el elemento Leaf desapareciera también lo haría el elemento Tree.
Mientras que en la agregación si el elemento Book desaparece, o se vuelve 0, (esto me imagino que lo explicarán más adelante) el elemento Book Shop no lo haría.

De los programas más completos para trabajar UML y opensource es StarUML.


¡Hola!
Les comparto este resumen de @tonyoz que esta muy bueno para tenerlo como recordatorio 😃
.

.
¡Saludos!

(Para futuras clases) Hice un diagrama UML integrando las propiedades de cada clase, si identifican un error por favor comenta. Les dejo el template y el sitio donde pueden crear el suyo y añadir nuevas clases, propiedades y comportamientos.
-Template
-Sitio para editar template (select open existing diagram)

Muy fácil encontré algunas cosas mas en Internet pero no se si apliquen :c tal vez es por la versión o algo pero si algo me despejan la duda aquí lo dejo


http://stadium.unad.edu.co/ovas/10596_9839/relaciones.html

Para quien quiera profundizar más en el tema del Lenguaje de Modelado aquí un libro de ello_
https://drive.google.com/file/d/1kWHPdnuR6-Got4txfXdBevyghCMGkCy3/view?usp=sharing

Si quieren saber más, el siguiente libro podría ser una buena opción
http://www.informit.com/store/unified-modeling-language-user-guide-9780321267979

No había encontrado una explicación buena como esta 😊

Draw es una herramienta que soporta multiples metodos de diagramación, entre ellos UML, para quien quiera hecharle un vistazo

Se que en ocasiones no se puede profundizar de todo en un tema, pero encontré este libro que me parece puede ser de utilidad al no sobre simplificar, pero tampoco excede en profundidad.

https://www.u-cursos.cl/ingenieria/2008/1/CC51H/1/material_docente/bajar?id_material=160144

Si ya tomaron el curso de fundamentos de base de datos es un poco más fácil entrar al UML, ya que guarda relación con los diagramas físicos que se realizan al darle forma a una base de datos.

📑 UML nos permite representar el modelo de la solución, de manera gráfica.

Como quisiera que hagan un Curso netamente de UML querido Platzi☺

Un semestre en la universidad resumido en un post jaj

Entendido, aunque aun me hace falta la practica para interiorizar este contenido. 😉

Algo importante de modelado UML radica en que muchas herramientas de UML ya son capaces de generar los CRUD para varios lenguajes de desarrollo.

Los modificadores de acceso o niveles de visibilidad estan directamente relacionados con el encapsulamiento pilar fundamental de la POO

Me recuerda a los diagramas de flujo ¿Alguien sabe que tan parecidos son?

Después de profundizar el tema y hacer apuntes un tema que se expuso de manera rapida tiene una amplia connotación, hubiera sido bueno de disponer de material adicional y no verlo de forma superficial, saludos.

IMPORTANTE Aplicar UML al momento de programar, es como tomar en cuenta los pasos que vas a seguir antes de caer en el codigo y que flujo y utildiad va a tener el proyecto, en vez de pasar al codigo directamente entre prueba y error.

Completamente nuevo para mí

Tres años de universidad y jamas vi esto. Al menos, no que recuerde.

Por si quieren verlo explicado en un video corto.
https://www.youtube.com/watch?v=UI6lqHOVHic

He leído que UML está en desuso. ¿Qué metodologías vendrían a reemplazarlo?

Sé que a veces la teoría suele no importarnos mucho cuando iniciamos a programar, pero ya llevo un año programando y veo que hoy en día tiene un gran valor, recomiendo que cuando tengan tiempo revisen la historia de como surgió y los demás símbolos.

Existe algún curso que hable más a detalle de este tema? he visto diagramas mucho más complejos y sería genial saber más a detalle este tema.

nose por que mi cerebro quisiera que la dirección de las flechas fuera alrevez, ejem, el padre apunte al hijo. pero pondré un NOT a toda las direcciones de las flechas y listo hahaha

Este tema me recuerda a los diagramas de flujo, no se que tan relacionados estén pero me llena de nostalgia recordarlos y poder aprender más de otro tipo de diagramas 😄

Y pensar que cuando tome estas clases en la escuela casi no le poníamos atención, lo tomábamos como que era para rellenar el temario de la materia y que en la practica no se utilizaba. Pero pues tampoco nos explicaban en que lo íbamos a utilizar a la hora de trabajar como desarrollador y que seria una distinción entre un junior a un senior; Tal vez le hubiera puesto la misma atención que la diagramación en base de datos jeje
Saludos comunidad.

El análisis de objetos aún me cuesta mucho. Sus comentarios al respecto me ayudan mucho. Gracias

Para mí el proceso es el siguiente:

Un perro es rescatado y llevado a un centro de adopción.
Una persona interesada solicita hacerse cargo del perro.
El centro evalúa la solicitud y determina si la persona cumple con los requisitos.
Si el paso anterior es + se culmina el proceso y se entrega el perro a su nuevo amo.
De este análisis obtuve 4 objetos:

Perro
Adoptante
Oficina (sede del centro de adopción)
La adopción
Mi diagrama UML es el siguiente:

Con una buena modelación, se agiliza la codificación .

por si se preguntan, si existen programas para realizar estos modelos. Yo utilizo la pagina “draw (punto) io”.

Visio es un buen programa para hacer UML que permite guardar los diagramas en pdf o imagenes. Pero también estan buenas herramientas online como https://www.lucidchart.com/pages/es/ejemplos/diagrama-uml o https://online.visual-paradigm.com/es/diagrams/features/uml-tool/

Cuando me enseñaron de POO o no puse atención a esto o no me lo dieron, pero esto es super importante.

Gracias vi muchos de estos graficos en libros de mi carrera pero no damos la materia así que nunca lo entendí.

Por primera vez esta madre no me supo a chino…

¡Gracias por la explicación! ❤️

Totalmente nuevo para mi 😮

Una explicación tan corta y a su vez tan precisa!!

Se debería realizar un curso de UML

Siempre me pregunte qué era lo que significaban los símbolos de +, - , # y ~ en estos diagramas ahora sé la razón :3

Ahora comprendo mucho mejor. Que buen resumen.

Las clases se representan de la siguiente manera:
.

.
Que contienen clases (titulo), atributos (propiedades), métodos(funciones) y relaciones.
.
La visibilidad: Define la accebilidad para ese atributo o método que se definen de la siguiente manera:
.

  • Privado (-): Cada método o atributo son privados, ninguna clase o subclase puede acceder a ellos.
    .
  • Público (+): Cada método o atributo son públicos, y cualquier clase o subclase puede acceder a ellos.
    .
  • Protegido (#): Solo la misma clase o subclase pueden acceder a ellos
    .
  • Paquete/defecto (~): Define la visibilidad del paquete o por defecto lo que significa y que puede ser usada por un paquete.
    .


.
Relaciones
.

  • Abstracción: Las clases abstractas van escritas en cursiva y es un concepto o una idea que no está asociado a ningún caso concreto.
    .

  • Herencia: La dirección de la flecha irá desde el hijo hasta el padre, que indica que el hijo hereda los atributos y métodos de la super clase convirtiéndolos en subclases o clase derivada. Su representación es la siguiente:
    .

    .

  • Asociación: Es una relación de tipo básica que son independientes una de la otra y se usa para denotar que una clase se correlaciona en algún momento con otra clase. Su representación es la siguiente:
    .
    ![Untitled (2).png]
    .

  • Agregación: Especifica un todo y sus partes, donde un elemento dependerá de muchos otros. Aquí se toma como referencia la multiplicidad del elemento. Lo que comúnmente se conoce como Bases de Datos de Relaciones uno a muchos. Su representación es la siguiente:
    .

    .

  • Composición: Es una relación en la cuál no puede depender sin el todo, es decir, cuando un objeto determinado no podría existir sin su componente principal. Su representación es la siguiente:
    .

    .

  • Multiplicidad: Permite definir sus restricciones numéricas en las relaciones.
    .
    Ejemplo:
    .


.
El resumen fue hecho gracias a este video, por si gustan verlo que es bastante entretenido.
.
Espero haya sido útil este contenido. 💚🚀

Diagrama UML para un carrito de compras

Fuente: https://www.youtube.com/watch?v=Z0yLerU0g-Q

Este video es excelente para complementar lo visto aqui: https://youtu.be/Z0yLerU0g-Q

Encontré es video que explica de forma practica todos los conceptos UML. Ayuda para quedar aclarar las dudas.
https://www.youtube.com/watch?v=Z0yLerU0g-Q

Es una especie de diagrama de flujo pero hecho para POO.

Pequeño resumen

En este caso, el segundo ejemplo tiene más sentido ya que por lo general un coche tiene un solo dueño.

Asociación: Dependencia
Herencia: La dirección de la flecha irá desde el hijo hasta el padre
Agregación: Un elemento dependerá de muchos otros. Aquí tomamos como referencia la multiplicidad del elemento
Composición: Este es similar al anterior solo que su relación es totalmente compenetrada de tal modo que conceptualmente una de estas clases no podría vivir si no existiera la otra.

recien lo noto yo no se si alguien mas aca no lo sabia pero si le das print al texto que esta aca a tu mano izq (si estas en computadora ) te guardas el archivo como pdf y pues te ahorras la apuntadera que es un caos.

Un diagrama de secuencia muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada caso de uso. … Típicamente se examina la descripción de un caso de uso para determinar qué objetos son necesarios para la implementación del escenario.

¿Cómo se diferencia la relación de Composición y Asociación, siendo que ambas están relacionadas con el concepto de Dependencia? (UML)

HERENCIA

Un objeto hereda los atributos y operaciones de su clase. Una clase también puede heredar atributos y acciones de otra.

Ejemplo:

ASOCIACIÓN

Los objetos se relacionan entre sí de alguna forma; pero no hay dependencia entre los objetos.

Ejemplo:

AGREGACIÓN

Tipo especial de asociación que específica un todo y sus partes. Una parte puede existir fuera del todo.

Ejemplo:

COMPOSICIÓN

Tipo especial de agregación donde la parte no puede existir fuera del todo. Un objeto derivado no podría existir sin su objeto principal.

Ejemplo:

Las hojas de un árbol pueden morir antes que el árbol. Si destruye al árbol, también las hojas morirán.

este tema es abordado de forma muy general pero la profe lo coloca como el primer paso para abordar la POO, así las cosas se debería plantear otra estrategia de pedagogía para estos casos

https://es.slideshare.net/still01/aprendiendo-uml-en-24-horas-16815956

Aqui un libro completo sobre como entender UML

Excelente, todo muy claro

Muy bien explicado

Me pueden esxplicar en palabras mas simples la diferencia entre herencia y asociacion?

Hola tengo una pregunta la profe en vídeo anterior ah esta lectura que si quisiéramos aprender mas sobre este tema investigara mas ingeniera de software aqui en plazti ahi curso o una carrera sobre eso tema de ingeniera de software?

Vaya, que fácil de entender así 😄

Interesante en la universidad no le puse tanta atención, estoy viendo la necesidad de dar orden y fijar un norte para así ser mas eficiente en el desarrollo

Comienzo a entender que es UML.

Nunca fui bueno con los diagramas pero esto despejo muchas dudas ahora a concretar ese conocimiento con la practica de las siguientes cases

Una herramienta que me gusta mucho es https://app.genmymodel.com/

Interesante una vez lo use en la universidad, pero ya tenia tiempo que no lo veo, así que me tocara leer para comprender mas!!

VAMO A DARLE :3 Despues de esto quiero hacer mi proyecto…

Genial, continuemos

Creo que ahora si veo la importancia de UML

Importante y fundamental
UML 😃

¡Vaya! Se ve tan sencillo trabajar en UML, y yo que pensaba que era bien enredado.

Recordemos algo, primero conceptos y luego nos preocupamos por el lenguaje

Para mi esto es nuevo,y por el momento me gusta el ritmo del curso.

que buena explicacion

Excelente explicación !

La herencia es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una clase existente. La herencia (a la que habitualmente se denomina subclase) proviene del hecho de que la subclase (la nueva clase creada) contiene las atributos y métodos de la clase primaria. La principal ventaja de la herencia es la capacidad para definir atributos y métodos nuevos para la subclase, que luego se aplican a los atributos y métodos heredados.

excelente introducción todo listo para entrar con todo al POO

Si empiezan a programar con Java, pueden descargarse el IDE BlueJ, el cuál automáticamente les generará un diagrama UML del código que tengan.

Excelente como se explica

Muy bueno, en la universidad no lo miramos así

Excelente Explicación

De lejos te habia oido; UML…

Excelente resumen. Esto es la punta del iceberg de UML. Listos para afrontar nuevos retos.

exelente informacion técnica
asi aprenderemos mejor. gracias.

Interesante.

Los ejercicios prácticos entusiasman a seguir con el curso! 😃

tipo de relación:
* Asociación
* Herencia
* Agregación
* Composición

Excelente

no sabia diferenciar entre las flechas, muchas gracias

UML en 24 horas, descarguelo, es un buen libro.

Muy interesante lo de UML, creo que es necesario buscar mas información y profundizar en el tema.

Para hacer representaciones UML se deben usar ciertos símbolos y convenciones para que la traducción del problema a sus soluciones sea fácilmente entendida…
Se usa un recuadro dividido para representar a las CLASES. en la parte superior va el nombre de la clase. En el siguiente nivel se colocan los atributos (los atributos son precedidos por los siguientes signos: - private, +public, # protected, ~default).
Se definen como relaciones: Asociación (flecha), herencia (flecha), agregación (línea y rombo), composición (línea y rombo).

En un ejemplo real de la agregación y composición?

Me ha encantado la explicación