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.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 350

Preguntas 13

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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

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

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

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☺

Diagrama UML para un carrito de compras

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

Un semestre en la universidad resumido en un post jaj

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.

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.

Yo entendí bien la agregación y composición el ejemplo del avión: Si tienes un avión (clase avión) este está compuesto por partes como los motores (clase motor), también podemos tener pasajeros (clase pasajeros).
.
La relación entre la clase motor y la clase avión sería composición, ya que una no podría vivir sin la otra, sin embargo la clase avión con la clase pasajeros sería agregación, ya que, aunque no tenga pasajeros la clase avión puede vivir sin esta.
.

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?

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

Información resumida de esta clase
#EstudiantesDePlatzi

  • UML = Unifed Modeling Language

  • Es un lenguaje estándar de modelado de sistemas orientados a objetos

  • Puede tener niveles de visibilidad: -private, +Public, #protected y ~default

  • La manera de representar las relaciones es con una flecha y es llamado asociación, nos dice que este elemento contiene al otro en su definición

  • Podemos tener diferentes tipos de flecha. Existe la herencia y su dirección ira del hijo hacia el padre

  • Tenemos la agregación, la forma de la flecha quiere decir que este elemento dependerá de muchos otros

  • Tenemos composición en esta lo que decimos es que existe una relación compenetrada, donde unas clases no pueden vivir sin las otras

RESUMEN CLASE 7:
QUE ES UML

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. 💚🚀

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:

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.

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.

Un buen abrebocas para todo lo que abarca este tema https://www.youtube.com/watch?v=Z0yLerU0g-Q

Mi resumen #7

Clases:

  1. Nombre
  2. Propiedades (atributos, características, variables)
  3. Métodos (funciones, operaciones, comportamiento)

Niveles de visibilidad (encapsulamiento)

  • - private (ninguna otra clase)
  • + public (cualquier clase)
  • # protected (la misma o subclases)
  • ~ default (mismo paquete)

Relaciones entre objetos:

  • Asociación

  • Herencia (El hijo hereda todas las propiedades y métodos del padre)

  • Agregación (el TODO tiene el diamante)

    • Una parte puede existir fuera del todo.
    • Una librería está compuesta por muchos libros, pero los libros sí pueden existir por separado sin pertenecer a una liberaría.
  • Composición (el TODO tiene el diamante)

    • El objeto derivado no puede existir sin su objeto principal
    • Un árbol está compuesto por muchas hojas. El árbol puede vivir sin hojas, pero las hojas no pueden vivir sin su árbol.

Composición vs Agregación

Multiplicidad:

  • 0…1 cero a uno (opcional)
  • n cantidad específica
  • 0…* cero a muchos
  • 1…* uno a muchos
  • m…n rango específico

¿Qué es UML?

Es una manera gráfica de representar una situación.

Fue creado para forjar un lenguaje de modelado visual común y semántica y sintácticamente rico para la arquitectura, el diseño y la implementación de sistemas de software complejos, tanto en estructura como en comportamiento.
UML tiene aplicaciones más allá del desarrollo de software, como por ejemplo en el flujo de procesos en la fabricación.

En los lenguajes orientados a objetos, los algoritmos se expresan definiendo ‘objetos’ y haciendo que los objetos interactúen entre sí.

Nos mencionan de bases de datos acá les dejo un pequeño resumen

QUE ES UNA BASE DE DATOS
Es un conjunto de datos del mismo contesto y almacenados sin transformación para su posterior uso todos los datos ingresados a la base deben ser manipulables para poder hacer cambios que es controlada por un sistema de gestión
Tenemos distintos tipos de datos:
Caracteres: dígitos individuales
Caracteres Unicode: codificación
Numéricos: números

Diferencia entre un Dato e información.
Un dato es la mínima información no procesada o que no nos lleva a nada
Información es un conjunto de datos ordenados procesados por un algoritmo de programación que permite recomponer un referente

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.