SlideShare a Scribd company logo
1 of 21
¿CÓMO CREAR UN
DIAGRAMA DE CLASES?
Paso x paso
¡LOS SISTEMAS SON
OMNIPRESENTES EN
NUESTRA VIDA DIARIA!
Plataformas online, sistemas de control de tráfico ferroviario
o aéreo, el conjunto de leyes que rige el funcionamiento de
una democracia, son sistemas. Por lo tanto, los sistemas
suelen tener tanto una parte social como una parte técnica.
Parece extraño que estas cosas puedan ser entendidas de la
misma manera. Pero con el pensamiento sistémico, podemos
analizar estos problemas, descomponerlo en problemas mas
pequeños, y, poco a poco, ir creando un conjunto de
elementos y relaciones que puedan ser descritos y
expresados en un lenguaje común (tal como UML.)
Los sistemas son difíciles de construir, y muchas veces, sólo
detectamos sus carencias cuando dejan de funcionar bien,
por ejemplo, cuando nuestro tren llega tarde o cuando
notamos incoherencias en la política de un país. Éstos son
signos de un sistema mal diseñado.
Un sistema se puede definir simplemente como un conjunto
de elementos separados pero interdependientes. Diseñando
un sistema significa definir cuales son estos elementos, qué
hacen, y cómo se relacionan entre si.
Veámoslo a través de un ejemplo de un sistema de control
ferroviario, que contiene:
 Trenes
 Conductores
 Estaciones
 Pasajeros
 Vías
 Viajes
 Asientos
Podemos definir relaciones entre estos elementos. Las
relaciones se suelen describir con verbos, y los elementos
de nuestro sistema con nombres.
Los trenes tienen asientos. Los pasajeros reservan viajes.
Los viajes involucran estaciones. A los pasajeros se les
asignan asientos. Las estaciones tienen vías. A cada viaje
le corresponde un conductor.
También nos puede interesar definir cuántas unidades hay
de cada uno de estos elementos. Por ejemplo cada tren
tendrá al menos un conductor. Cada tren tiene un número
limitados de asientos, y por lo tanto de pasajeros. Un
pasajero no puede estar viajando en más de un tren a la
vez.
Es necesario, por tanto, definir cuántos de cada elemento
corresponde a cada uno de los otros.
También podemos definir reglas dentro de este sistema. Un
viajero no se puede subir a un tren si no ha reservado un
asiento. Ciertos conductores no serán disponibles para
cualquier viaje. Un tren no puede llegar a una vía si esta ya
está ocupada.
Creando estas reglas, basándonos en situaciones reales, se
consigue evitar problemas que conllevarían el mal diseño
del sistema.
¡Y ENTONCES!
¿Cómo hacer diagramas de clases?
El diagramas de clase es un diagrama estructural, y es sin
duda el más común de ellos. Permite describir la
arquitectura de un sistema con bastante detalle. Es muy
recomendable tener un diagrama de clase antes de empezar
a escribir código para una base de datos o una aplicación.
Un diagrama de clase, describe cómo se relacionan los
elementos de un sistema, qué atributos les caracterizan.
Después tendremos las cosas lo suficientemente despejadas
como para poder ir diseñando la arquitectura del sistema.
Se trata de
entender el
sistema
como una
historia. Una
historia tiene
personajes,
unas
acciones, y
un contexto.
Este diagrama es fundamental para el modelado orientado a
objetos. Describe los distintos componentes de un sistema,
sus atributos, y las relaciones entre ellos.
Veamos el caso:
 Un vendedor de libros se conecta a la web para subir el
articulo que tiene a la venta.
 Un cliente se conecta a la página web de una tienda online
para comprar un libro. Escribe el título del libro en la barra
de búsqueda y busca el mejor precio entre los resultados.
Cuando encuentra una oferta que le interesa, la añade al
carrito de la compra. Tiene que haber iniciado una sesión
para poder hacerlo.
Identificamos los elementos principales del sistema:
compradores, vendedores, y artículos.
Veamos el caso:
Añadiremos los artículos como el primer elemento en
diagrama de clase.
Debajo del titulo, colocamos los atributos de un articulo.
¿Qué tiene un articulo? ¿Qué características tiene que
permite diferenciarlo de otros artículos? Lo importante es
nos quedemos con lo relevante para nuestra aplicación.
Trata de imaginarlo en una página web. ¿Qué información
esperarías que ponga?
Veamos el caso:
A continuación detallamos las otras clases de nuestro
Hemos añadido el comprador, el vendedor, el envío y el
de un articulo.
Establezca la cardinalidad de las relaciones.
Ahora toca averiguar cómo se relacionan los elementos
entre ellos. Una pregunta que tenemos que hacer cada vez
que estudiamos la relación entre dos elementos es:
elementos A por cada elemento B? ¿Y Cuántos B por cada
A?
Este proceso lo llamamos establecer la cardinalidad de las
relaciones. Además es recomendado añadir verbos a las
relaciones para ayudar a cubrir mejor la semántica de las
relaciones.
Establezca la cardinalidad de las relaciones:
Relaciones de uno a varios.
Por ejemplo, ¿Cuántos artículos por cada envío? La
respuesta es bastante intuitiva: un envío solo puede existir si
contiene como mínimo un articulo. Además, no se puede
definir un número máximo de artículos en un envío. Esto lo
representamos escribiendo 1..* en la línea entre artículos y
envíos, al lado de la caja de artículos. Significa que
entre 1 y un número indeterminado de articulo por envío.
Relaciones de varios a varios
¿Cuántos artículos puede vender un vendedor? Puede ser
que se quede sin artículos para vender, por lo tanto el
mínimo sería 0. No impondremos máximo de artículos que
pueda vender alguien. Entonces pondremos 0..* del lado del
articulo.
¿Cuántos vendedores venden un mismo articulo? Depende
considera que los artículos son únicos o si varios pueden
vender el mismo tipo de artículo. Puede ser que en algún
momento no haya más vendedores vendiéndolo o que lo
venden un número indeterminado de personas. Pondremos
0..* del lado de los vendedores.
Relaciones de uno a uno
Observemos la relación entre Envíos y Pagos. En este caso,
consideramos que a cada envío le corresponde un solo
y viceversa. Un envío se creará en cuánto se realice el pago
del articulo. Es casi cómo si fuesen la misma entidad. Los
separamos para mantener la semántica de lo que
representan. Así podemos diferenciar mas fácilmente la
fecha de envío de la fecha de pago, y la dirección de envío
de la dirección de pago.
Entonces, lo que aquí acabamos de definir es una relación
uno a uno.
Diagrama completo del sistema.
Hemos añadido las relaciones comprador-envío (uno a
y vendedor-envío (uno a varios). Añadimos unos verbos en
líneas entre entidades.
No todas las entidades tienen relaciones directas con otras.
Por ejemplo, no hay relaciones directas entre un artículo y
comprador. Sería redundante, porque ya hay una definida
entre el comprador y el vendedor a través de un envío. Por
el mismo motivo, no hay una directa entre comprador y
vendedor ya que se contempla a través de un envío.
https://openclassrooms.com/en/courses/4990961-planea-
tu-proyecto-con-uml/4996676-diagrama-de-clase

More Related Content

What's hot

Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
Giancarlo Aguilar
 
proyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysqlproyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysql
BrenditaLr
 

What's hot (20)

Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Un ejemplo de diagrama de clases
Un ejemplo de diagrama de clasesUn ejemplo de diagrama de clases
Un ejemplo de diagrama de clases
 
Reglas de transformación
Reglas de transformaciónReglas de transformación
Reglas de transformación
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
 
Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Modelo de entidad relación extendido
Modelo de entidad relación extendidoModelo de entidad relación extendido
Modelo de entidad relación extendido
 
Bases de Datos Semanticas
Bases de Datos SemanticasBases de Datos Semanticas
Bases de Datos Semanticas
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Diagramas de comportamientos
Diagramas de comportamientosDiagramas de comportamientos
Diagramas de comportamientos
 
DIAGRAMAS DE CLASE
DIAGRAMAS DE CLASEDIAGRAMAS DE CLASE
DIAGRAMAS DE CLASE
 
Recursividad
RecursividadRecursividad
Recursividad
 
Diagramas clases presentacion
Diagramas clases presentacionDiagramas clases presentacion
Diagramas clases presentacion
 
Los 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentesLos 13 diagramas UML y sus componentes
Los 13 diagramas UML y sus componentes
 
Couchdb
CouchdbCouchdb
Couchdb
 
Gestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativosGestores de bases de datos cuadros comparativos
Gestores de bases de datos cuadros comparativos
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
Lectura 3 Modelo De Analisis
Lectura 3   Modelo De AnalisisLectura 3   Modelo De Analisis
Lectura 3 Modelo De Analisis
 
Implementacion de bases de datos en mysql
Implementacion de bases de datos en mysqlImplementacion de bases de datos en mysql
Implementacion de bases de datos en mysql
 
proyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysqlproyecto conexion netbeans con Mysql
proyecto conexion netbeans con Mysql
 

Similar to Como crear un diagrama de clases

Programación en base de datos
Programación en base de datosProgramación en base de datos
Programación en base de datos
Fred M. Jr.
 
El modelo de datos entidad relación
El modelo de datos entidad relaciónEl modelo de datos entidad relación
El modelo de datos entidad relación
macarmen91
 
Analisis y diseño
Analisis y diseñoAnalisis y diseño
Analisis y diseño
Jorge Garcia
 
Modelo de datos entidad relación
Modelo de datos entidad relaciónModelo de datos entidad relación
Modelo de datos entidad relación
alvarezkvn
 

Similar to Como crear un diagrama de clases (20)

Dinamica 2
Dinamica 2Dinamica 2
Dinamica 2
 
Dinamica
DinamicaDinamica
Dinamica
 
ejemplo-de-casos-de-uso.pdf
ejemplo-de-casos-de-uso.pdfejemplo-de-casos-de-uso.pdf
ejemplo-de-casos-de-uso.pdf
 
Programación en base de datos
Programación en base de datosProgramación en base de datos
Programación en base de datos
 
Modelo entidad-relación
Modelo entidad-relaciónModelo entidad-relación
Modelo entidad-relación
 
Diseño Orientado a Objetos - Composición - Agregación
Diseño Orientado a Objetos - Composición - AgregaciónDiseño Orientado a Objetos - Composición - Agregación
Diseño Orientado a Objetos - Composición - Agregación
 
SISTEMA ORIENTADO A OBJETOS
SISTEMA ORIENTADO A OBJETOSSISTEMA ORIENTADO A OBJETOS
SISTEMA ORIENTADO A OBJETOS
 
Modelamiento de-entidad relacion
Modelamiento de-entidad relacionModelamiento de-entidad relacion
Modelamiento de-entidad relacion
 
El modelo de datos entidad
El modelo de datos entidadEl modelo de datos entidad
El modelo de datos entidad
 
ingeniería de sistemas base de datos.pdf
ingeniería de sistemas base de datos.pdfingeniería de sistemas base de datos.pdf
ingeniería de sistemas base de datos.pdf
 
El modelo de datos entidad relación
El modelo de datos entidad relaciónEl modelo de datos entidad relación
El modelo de datos entidad relación
 
Analisis y diseño
Analisis y diseñoAnalisis y diseño
Analisis y diseño
 
tema-8-bd-entidad-relacion base de datos
tema-8-bd-entidad-relacion base de datostema-8-bd-entidad-relacion base de datos
tema-8-bd-entidad-relacion base de datos
 
Base datos presentacion 4
Base datos presentacion 4Base datos presentacion 4
Base datos presentacion 4
 
Base datos presentacion 4
Base datos presentacion 4Base datos presentacion 4
Base datos presentacion 4
 
Modelo de datos entidad relación
Modelo de datos entidad relaciónModelo de datos entidad relación
Modelo de datos entidad relación
 
Actividad base de datos 3
Actividad base de datos 3Actividad base de datos 3
Actividad base de datos 3
 
Comprendiendo UML para el área de desarrollo
Comprendiendo UML para el área de desarrollo Comprendiendo UML para el área de desarrollo
Comprendiendo UML para el área de desarrollo
 
Planificaciondesistemas er
Planificaciondesistemas erPlanificaciondesistemas er
Planificaciondesistemas er
 
Unidad 2 diseño de base de datos y e r
Unidad 2 diseño de base de datos y e rUnidad 2 diseño de base de datos y e r
Unidad 2 diseño de base de datos y e r
 

More from Facultad de Ciencias y Sistemas

More from Facultad de Ciencias y Sistemas (20)

Ejercicios HTML 5
Ejercicios HTML 5Ejercicios HTML 5
Ejercicios HTML 5
 
CSS3
CSS3CSS3
CSS3
 
09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c
 
08 mas-de-vectores-en-c
08 mas-de-vectores-en-c08 mas-de-vectores-en-c
08 mas-de-vectores-en-c
 
07 vectores-en-c final
07 vectores-en-c final07 vectores-en-c final
07 vectores-en-c final
 
06 clases-en-c
06 clases-en-c06 clases-en-c
06 clases-en-c
 
05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c
 
04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c
 
03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c
 
02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c
 
01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c
 
Procesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con pythonProcesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con python
 
Actividades de aprendizaje en Moodle
Actividades de aprendizaje en MoodleActividades de aprendizaje en Moodle
Actividades de aprendizaje en Moodle
 
Creación de grupos en Moodle
Creación de grupos en MoodleCreación de grupos en Moodle
Creación de grupos en Moodle
 
Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con Java
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
 
Otro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UMLOtro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UML
 
Casos de estudio para diagramas de clases
Casos de estudio para diagramas de clasesCasos de estudio para diagramas de clases
Casos de estudio para diagramas de clases
 
Introducción a la progrogramación orientada a objetos - UML
Introducción a la progrogramación orientada a objetos - UMLIntroducción a la progrogramación orientada a objetos - UML
Introducción a la progrogramación orientada a objetos - UML
 

Recently uploaded

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Recently uploaded (20)

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 

Como crear un diagrama de clases

  • 1. ¿CÓMO CREAR UN DIAGRAMA DE CLASES? Paso x paso
  • 2. ¡LOS SISTEMAS SON OMNIPRESENTES EN NUESTRA VIDA DIARIA!
  • 3. Plataformas online, sistemas de control de tráfico ferroviario o aéreo, el conjunto de leyes que rige el funcionamiento de una democracia, son sistemas. Por lo tanto, los sistemas suelen tener tanto una parte social como una parte técnica. Parece extraño que estas cosas puedan ser entendidas de la misma manera. Pero con el pensamiento sistémico, podemos analizar estos problemas, descomponerlo en problemas mas pequeños, y, poco a poco, ir creando un conjunto de elementos y relaciones que puedan ser descritos y expresados en un lenguaje común (tal como UML.)
  • 4. Los sistemas son difíciles de construir, y muchas veces, sólo detectamos sus carencias cuando dejan de funcionar bien, por ejemplo, cuando nuestro tren llega tarde o cuando notamos incoherencias en la política de un país. Éstos son signos de un sistema mal diseñado. Un sistema se puede definir simplemente como un conjunto de elementos separados pero interdependientes. Diseñando un sistema significa definir cuales son estos elementos, qué hacen, y cómo se relacionan entre si.
  • 5. Veámoslo a través de un ejemplo de un sistema de control ferroviario, que contiene:  Trenes  Conductores  Estaciones  Pasajeros  Vías  Viajes  Asientos Podemos definir relaciones entre estos elementos. Las relaciones se suelen describir con verbos, y los elementos de nuestro sistema con nombres.
  • 6. Los trenes tienen asientos. Los pasajeros reservan viajes. Los viajes involucran estaciones. A los pasajeros se les asignan asientos. Las estaciones tienen vías. A cada viaje le corresponde un conductor. También nos puede interesar definir cuántas unidades hay de cada uno de estos elementos. Por ejemplo cada tren tendrá al menos un conductor. Cada tren tiene un número limitados de asientos, y por lo tanto de pasajeros. Un pasajero no puede estar viajando en más de un tren a la vez.
  • 7. Es necesario, por tanto, definir cuántos de cada elemento corresponde a cada uno de los otros. También podemos definir reglas dentro de este sistema. Un viajero no se puede subir a un tren si no ha reservado un asiento. Ciertos conductores no serán disponibles para cualquier viaje. Un tren no puede llegar a una vía si esta ya está ocupada. Creando estas reglas, basándonos en situaciones reales, se consigue evitar problemas que conllevarían el mal diseño del sistema.
  • 8. ¡Y ENTONCES! ¿Cómo hacer diagramas de clases?
  • 9.
  • 10. El diagramas de clase es un diagrama estructural, y es sin duda el más común de ellos. Permite describir la arquitectura de un sistema con bastante detalle. Es muy recomendable tener un diagrama de clase antes de empezar a escribir código para una base de datos o una aplicación. Un diagrama de clase, describe cómo se relacionan los elementos de un sistema, qué atributos les caracterizan. Después tendremos las cosas lo suficientemente despejadas como para poder ir diseñando la arquitectura del sistema.
  • 11. Se trata de entender el sistema como una historia. Una historia tiene personajes, unas acciones, y un contexto.
  • 12. Este diagrama es fundamental para el modelado orientado a objetos. Describe los distintos componentes de un sistema, sus atributos, y las relaciones entre ellos.
  • 13. Veamos el caso:  Un vendedor de libros se conecta a la web para subir el articulo que tiene a la venta.  Un cliente se conecta a la página web de una tienda online para comprar un libro. Escribe el título del libro en la barra de búsqueda y busca el mejor precio entre los resultados. Cuando encuentra una oferta que le interesa, la añade al carrito de la compra. Tiene que haber iniciado una sesión para poder hacerlo. Identificamos los elementos principales del sistema: compradores, vendedores, y artículos.
  • 14. Veamos el caso: Añadiremos los artículos como el primer elemento en diagrama de clase. Debajo del titulo, colocamos los atributos de un articulo. ¿Qué tiene un articulo? ¿Qué características tiene que permite diferenciarlo de otros artículos? Lo importante es nos quedemos con lo relevante para nuestra aplicación. Trata de imaginarlo en una página web. ¿Qué información esperarías que ponga?
  • 15. Veamos el caso: A continuación detallamos las otras clases de nuestro Hemos añadido el comprador, el vendedor, el envío y el de un articulo.
  • 16. Establezca la cardinalidad de las relaciones. Ahora toca averiguar cómo se relacionan los elementos entre ellos. Una pregunta que tenemos que hacer cada vez que estudiamos la relación entre dos elementos es: elementos A por cada elemento B? ¿Y Cuántos B por cada A? Este proceso lo llamamos establecer la cardinalidad de las relaciones. Además es recomendado añadir verbos a las relaciones para ayudar a cubrir mejor la semántica de las relaciones.
  • 17. Establezca la cardinalidad de las relaciones: Relaciones de uno a varios. Por ejemplo, ¿Cuántos artículos por cada envío? La respuesta es bastante intuitiva: un envío solo puede existir si contiene como mínimo un articulo. Además, no se puede definir un número máximo de artículos en un envío. Esto lo representamos escribiendo 1..* en la línea entre artículos y envíos, al lado de la caja de artículos. Significa que entre 1 y un número indeterminado de articulo por envío.
  • 18. Relaciones de varios a varios ¿Cuántos artículos puede vender un vendedor? Puede ser que se quede sin artículos para vender, por lo tanto el mínimo sería 0. No impondremos máximo de artículos que pueda vender alguien. Entonces pondremos 0..* del lado del articulo. ¿Cuántos vendedores venden un mismo articulo? Depende considera que los artículos son únicos o si varios pueden vender el mismo tipo de artículo. Puede ser que en algún momento no haya más vendedores vendiéndolo o que lo venden un número indeterminado de personas. Pondremos 0..* del lado de los vendedores.
  • 19. Relaciones de uno a uno Observemos la relación entre Envíos y Pagos. En este caso, consideramos que a cada envío le corresponde un solo y viceversa. Un envío se creará en cuánto se realice el pago del articulo. Es casi cómo si fuesen la misma entidad. Los separamos para mantener la semántica de lo que representan. Así podemos diferenciar mas fácilmente la fecha de envío de la fecha de pago, y la dirección de envío de la dirección de pago. Entonces, lo que aquí acabamos de definir es una relación uno a uno.
  • 20. Diagrama completo del sistema. Hemos añadido las relaciones comprador-envío (uno a y vendedor-envío (uno a varios). Añadimos unos verbos en líneas entre entidades. No todas las entidades tienen relaciones directas con otras. Por ejemplo, no hay relaciones directas entre un artículo y comprador. Sería redundante, porque ya hay una definida entre el comprador y el vendedor a través de un envío. Por el mismo motivo, no hay una directa entre comprador y vendedor ya que se contempla a través de un envío.