UF3: UML Flashcards

1
Q

UML

A

Unified Modeling Languaje.

Lenguaje que se utiliza para documentar.

Es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende el desarrollo de software.

Se puede utilizar para: ​modelar sistemas de software, hardware u organizaciones.​

Utiliza diagramas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Existen 2 grandes versiones de UML

A
  • UML1.x (finales de los 90)
  • UML2.x (2005)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

TIPOS DE DIAGRAMA

A
  • Diagrama de estructura (parte estática del modelo)
  1. Diagrama de clases
  2. Diagrama de estructuras compuestas
  3. Diagrama de componentes
  4. Diagrama de despliegue
  5. Diagrama de objetos
  6. Diagrama de paquetes
  • Diagrama de comportamientos (parte dinámica del modelo).
  1. ​Diagrama de interacción (se centran en el flujo de control y de datos entre los elementos del sistema modelado)
    • ​​Diagrama de secuencia
    • Diagrama de resumen de interacción
    • Diagrama de comunicación
    • Diagrama de tiempo
  2. Diagrama de actividad
  3. Diagrama de casos de uso
  4. Diagrama de máquina de estado

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Diagrama de estructura

A

Parte estática del modelo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Diagramas de comportamiento

A

Parte dinámica del modelo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

OBJETO

A

Un objeto es la instancia de una clase.

Y está constituido por un conjunto de atributos (valores), métodos (acciones) e identidad propia (que lo distingue de los demás objetos.

La estructura y comportamiento de objetos similares tendrán una clase común.

Una clase es: un conjunto de objetos con estructura y comportamientos similares.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

PRINCIPIOS DEL MODELO ORIENTADO A OBJETOS

A
  • Abstracción: características esenciales de un objeto de tal forma que lo distingue de los demás. Indican que trabajo va a realizar ese objeto, como se comunica con los demás, sin necesidad de mostrar como se implementan esas características.
  • Encapsulación: conjunto de elementos que pertenecen a la misma entidad y al mismo nivel de abstracción. Gracias a esto, permite una mayor cohesión de sus componentes y separa la parte interna inaccesible para otros objetos de la externa, que sí será accesible. Oculta los métodos y atributos a otros objetos, pasando a ser privados.
  • Modularidad: es la capacidad de un sistema o aplicación para dividirse en pequeños módulos independientes.
  • Jerarquía o herencia: propiedad que permite que algunas clases tengan propiedades y características de una clase superior. La clase principal se llama clase padre o superclase. La nueva clase se denominará clase hija o subclase, que heredará todos los métodos y atributos de la superclase. Cada subclase estará formada con objetos más especializados.
  • Polimorfismo: cuando dos instancias u objetos pertenecientes a distintas clases pueden responder a la llamada a métodos del mismo nombre, cada uno de ellos con distinto comportamiento encapsulado. Ambos responden a una interfaz común (marcada a través del mecanismo de la herencia).
  • Tipificación: definición precisa de un objeto de forma que objetos de diferentes tipos no se pueden intercambiar.
  • Concurrencia: propiedad de un objeto que está activo respecto de otro que no lo está.
  • Persistencia: propiedad de un objeto en virtud de la cual su existencia trasciende en el tiempo y/o el espacio.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

DIAGRAMA DE CLASES:

Clase

A

Una representación gráfica y estática de la estructura general de un sistema, mostrando cada una de las clases (atributos, métodos y visibilidad) y sus interacciones (relaciones: asociación, herencia, agregación, composición, realización y dependencia) representadas en forma de bloques. Vamos a poder visualizar las relaciones que existen entre las clases.

Estará compuesto por los siguientes elementos:

  • Clases: atributos, métodos y visibilidad.
  • Relaciones: asociación, herencia, agregación, composición y dependencia.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Representación de una clase en UML

DIAGRAMA DE CLASES

A

Podemos representarla con un rectángulo dividido en tres partes:

  1. Parte superior: nombre de la clase.
  2. Parte central: atributos, que caracterizan la clase (private, protected, package o public).
  3. Parte inferior: métodos u operaciones, forma de interactuar del objeto con el entorno (según visibilidad: private, protected, package o public).

Al representar la clase, podemos obviar señalar los atributos y métodos. La visibilidad de los métodos debe ser por defecto public, y la de los atributos, private.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Atributos y métodos pueden ser

DIAGRAMA DE CLASES

A
  • Public: Visible tanto dentro como fuera de la clase. “+”
  • Private: Visible dentro de la clase. “-“
  • Protected: No será accesible desde fuera de la clase, pero sí por los métodos de la clase y subclases. “#”.
  • Package: Será visible en las clases del mismo paquete. “~”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Relaciones

DIAGRAMA DE CLASE

A

Los objetos estarán vinculados entre sí, y se corresponden con asociaciones entre objetos En UML estos vínculos se describen a través de asociaciones al igual que los objetos se describen mediante clases.

Poseen un nombre y una cardinalidad llamada multiplicidad, que representa el número de instancias de una clase que se relaciona con las instancias de otra clase: La asociación es similar a la utilizada en el modelo entidad/relación. En cada extremo será posible indicar la multiplicidad mínima y máxima para indicar el intervalo de valores al que tendrá que pertenecer siempre la multiplicidad

Notación:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Tipos de Relaciones

DIAGRAMA DE CLASE

A
  • ASOCIACIÓN (dependiendo de si una conoce la existencia de la otra, clase cuenta con un rol, que se indica en la parte superior o inferior de la línea que conecta a ambas clases, y, además, este vínculo también tendrá un nombre, representado con una línea que conecta a ambas clases.):
    • Unidireccional: la clase destino no sabrá de la existencia de la clase origen y la clase origen contendrá un objeto o set de objetos de la clase destino.
    • Bidireccional: se puede recorrer en ambos sentidos entre las dos clases.

Dependiendo de la multiplicidad, podemos pasar de un objeto de una clase a uno o varios de la otra. A este proceso se le llama navegabilidad. En la asociación unidireccional, la navegabilidad es solo en un sentido, desde el origen al destino, pero no al contrario. Algunas clases pueden asociarse consigo mismas, creando así una _asociación reflexiva_. Estas asociaciones unen entre sí instancias de una misma clase.

  • HERENCIA: Podremos organizar las clases de forma jerárquica y, gracias a la herencia, seremos capaces de compartir atributos y operaciones comunes con las demás clases a través de una superclase. Las demás clases se conocen como subclases.
    • La subclase hereda los atributos y métodos de la otra. La superclase generaliza a las subclases y las subclases especializan a la superclase. para representar esta asociación se usará una flecha, donde el extremo de la flecha apunta a la superclase.
    • La superclase
      • Generalización
      • Especialización
  • CLASE ASOCIACIÓN: Hay asociaciones entre clases que podrán tener información necesaria para dicha relación.
  • COMPOSICIÓN: consiste en que un objeto puede estar compuesto por otros objetos. Existirán dos formas:
    • asociación fuerte, conocida como composición (los objetos están constituidos por componentes y la supresión del objeto comporta la supresión de los componentes. La cardinalidad será de uno a varios. Se representa con una línea con un rombo lleno).
    • asociación débil, conocida como agregación.
  • REALIZACIÓN: Relación de herencia que existe entre la clase interfaz y una subclase que implementa esa interfaz.
  • DEPENDENCIA: Muestra la relación entre un cliente y un proveedor de un servicio usado por el cliente.. (Ej. Clase Ecuación - - - - -> Clase Math)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Asociación

DIAGRAMA DE CLASE

A
  • Unidireccional
  • Bidireccional

Determina navegabilidad

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Asociación reflexiva

DIAGRAMA DE CLASE

A

Se da cuando una instancia de clase se relaciona con otra instancia de su misma clase (Ej: empleado - empleado jefe)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Clase asociación

DIAGRAMA DE CLASE

A

Hay asociaciones entre clases que podrán tener información necesaria para dicha relación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

HERENCIA (GENERALIZACIÓN / ESPECIALIZACIÓN)

DIAGRAMA DE CLASE

A

El extremo de la flecha apuntará a la superclase.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

COMPOSICIÓN (FUERTE)

DIAGRAMA DE CLASE

A

Los componentes no pueden ser compartidos con otros objetos compuestos y nacen y mueren con su objeto.

18
Q

AGREGACIÓN (DÉBIL)

DIAGRAMA DE CLASE

A
19
Q

REALIZACIÓN

DIAGRAMA DE CLASE

A

Relación de herencia que existe entre la clase interfaz y una subclase que implementa esa interfaz.

20
Q

DEPENDENCIA

DIAGRAMA DE CLASE

A

Muestra la relación entre un cliente y un proveedor de un servicio usado por el cliente.. (Ej. Clase Ecuación - - - - -> Clase Math)

21
Q

NOTACIÓN (CARDINALIDAD/MULTIPLICIDAD)

DIAGRAMA DE CLASE

A
22
Q

HERRAMIENTAS PARA EL DISEÑO DE DIAGRAMAS

A

Papyrus para Eclipse Es una herramienta de modelado UML de código abierto e incluye soporte para todos los diagramas UML

Características

  • De código abierto basado en el entorno Eclipse.
  • Proporciona un entorno integrado para el usuario para editar cualquier tipo de modelo EFM (metamodelos).
  • Proporciona editores de diagramas para lenguajes como UML 2 y SysML.
  • Tiene un soporte de perfil de usuario.
  • En términos generales, tiene formas de personalización muy potentes que pueden ser definidas por el usuario.

Cuatro paneles principales:

  • Panel principal: es donde colocaremos nuestros elementos del diagrama que queramos modelar.
  • Panel del proyecto: referencia a la estructura de nuestro proyecto principal.
  • Panel de propiedades: en este panel daremos valores a las propiedades de nuestros elementos del diagrama.
  • Panel de nodes y edges: en la parte de nodes, podemos elegir el tipo de elemento de nuestro diagrama.En la parte de edges elegiremos qué tipo de relación tendrán nuestros elementos. Por ejemplo, en un diagrama de casos de uso, tendremos relaciones de <> o de <>.

Creación de diagramas de clase 4 partes principales

  • Nombre de la clase.
  • Atributos de la clase que ya hemos comentado que pueden ser públicos, privados, protegidos o package
  • Métodos de la clase exactamente igual que los atributos.
  • Nested classifiers: limita la visibilidad del clasificador definido en la clase o interfaz al alcance del namespace para poder encapsular la información.

Dentro del panel de propiedades, podemos encontrar los tipos de modificadores:

  • Is Abstract: indica si la clase es abstracta.
  • Is Active: indica si la clase es activa. Para que lo sea, debe poseer objetos activos, es decir, que realicen uno o más procesos. Si no realizan ninguna actividad, serán objetos pasivos.
23
Q

DIAGRAMAS DE COMPORTAMIENTO

A

Nos permiten modelar la información que hemos manejado anteriormente con los diagramas de clase.

Mostrarán el comportamiento de un sistema.

24
Q

DIAGRAMAS DE CASOS DE USO

A

Van a: modelar el sistema desde el punto de vista del usuario. Con esta herramienta vamos a poder obtener los requisitos de software en la fase de análisis de un proyecto.

Objetivos:

  • Definir los requisitos funcionales y operativos del sistema.
  • Proporcionar descripción clara sobre la interacción entre usuario y sistema.
  • Facilitar una base para la validación de pruebas.

Componentes:

  • Actores: Cualquier agente que interactúa con el sistema y es externo a él. Aunque se representa con un monigote y un nombre debajo, no tiene por qué ser una persona.
  • Casos de uso: Unidad funcional del sistema que realizará una orden de algún agente externo. Se representará con un óvalo o eclipse y una descripción textual.
  • Relaciones: Representadas por una línea continua.
  • Sistema: Rectángulo que delimita el sistema.

Identificar:

  • Identificar a actores: Son unidades externas que van a interactuar con el sistema. Normalmente son personas, pero pueden ser otros sistemas o incluso dispositivos Para poder interactuar con el sistema hay que conocer la información de cada elemento para saber qué y quién interactúa con el sistema y qué rol tendrá cuando se interactúe con él Puntos a la hora de definir los actores:
    • Serán siempre externos al sistema.
    • Van a interactuar directamente con el sistema.
    • Representan roles de personas o elementos que desempeñan en relación con el sistema. • Necesitan un nombre que describa la función que desempeñan.
    • Una misma persona o elemento puede desempeñar varios roles como actores distintos.
  • Identificar casos de uso Para identificarlos, será necesario entender el funcionamiento del sistema y lo que quiere hacer. Para ello tendremos que buscar los actores que participan y saber cómo lo usarán. Para documentar los casos de uso, podremos hacerlo a través de una plantilla que nos describa lo que hace el actor y lo que ocurre cuando se interactúa con dicho sistema.
25
Q

Relaciones

en un DIAGRAMA DE CASOS DE USO

A

Especificar el funcionamiento de cada una

  • Include: un caso de uso base incorpora explícitamente el comportamiento de otro en algún lugar de su secuencia. La relación de inclusión sirve para enriquecer un caso de uso con otro y compartir una funcionalidad común entre varios casos de uso.
  • Extend: se usará esta relación cuando un caso de uso extiende la funcionalidad de otro caso de uso. Si tenemos un caso de uso B, extenderá la funcionalidad del caso de uso A añadiendo algunos pasos. En este supuesto, el caso de uso extendido no sabe nada del caso de uso que lo extiende. Por tanto, el caso de uso de extensión (B) no será indispensable que ocurra, y, si lo hace, ofrece un valor extra (extiende) al objetivo original del caso de uso base.
  • Herencia (Generalización/Especialización): la relación de generalización se usa cuando se poseen uno o más casos de uso que son especificaciones de un caso de uso más general.
26
Q

HERENCIA (GENERALIZACIÓN / ESPECIALIZACIÓN)

Relaciones en un DIAGRAMA DE CASOS DE USO

A

El extremo de la flecha apuntará a la superclase.

27
Q

INCLUDE

Relaciones en un DIAGRAMA DE CASOS DE USO

A

El caso base incluye al segundo (caso incluido)

28
Q

EXTEND

Relaciones en un DIAGRAMA DE CASOS DE USO

A

El caso de uso de extensión no es indispensable que ocurra y, cuando lo hace, ofrece un valor extra (extiende) el caso base.

29
Q

Plantilla

Relaciones en un DIAGRAMA DE CASOS DE USO

A

Se pueden documentar los casos de uso a través de una pequeña plantilla que describa lo que hace el actor y lo que ocurre en la interacción.

Ejemplo de plantilla sencilla:

  • Nombre
  • ID
  • Pequeña descripción
  • Actores implicados (principales, activan el caso de uso, y secundarios, usan el caso una vez iniciado)
  • Precondiciones
  • Curso Normal (pasos)
  • Postcondiciones
  • Alternativas (errores o excepciones)
30
Q

DIAGRAMA DE SECUENCIA

A

Nos mostrará gráficamente los eventos que fluyen de los actores del sistema.

Tiene dos dimensiones. Vertical (representa el tiempo) y horizontal (representa los roles de la interacción).

La autodelegación o mensaje reflexivo es un mensaje que un objeto se envía a sí mismo.

ALTERNATIVAS Y BUCLES (Fragmentos combinados):

  • opt: Si esa condición se cumple, el contenido se ejecuta.
  • alt: Seguido de varias condiciones y al final la palabra clave else. La parte else se ejecuta si no se ejecuta ninguna condición.

Si queremos representar un bucle, utilizaremos el operador loop, seguido de una condición. Lo que está encerrado en el marco se ejecutará siempre que dicha condición se cumpla.

31
Q

Los mensajes

DIAGRAMA DE SECUENCIA

A

Representan la comunicación entre participantes y se dibujarán con una flecha que irá dirigida desde el participante que los envía hasta el que los ejecuta. Tendrán un nombre, acompañado o no de parámetros.

  • Mensaje síncrono: cuando se envía un mensaje a un objeto, no se recibe el control hasta que el objeto receptor ha finalizado la ejecución.
  • Mensaje asíncrono: cuando el emisor que envía un mensaje asíncrono continúa con su trabajo después de ser enviado, es decir, no espera a que el receptor finalice la ejecución del mensaje. Su utilización la podemos ver en sistemas multihilos donde se producen procesos concurrentes.
  • Mensaje de retorno: representa un mensaje de confirmación. Su uso es opcional. Creación y destrucción de objetos podemos ver la creación y destrucción de objetos.
    • La creación se representa mediante un mensaje que termina en el objeto que será creado. Este mensaje puede llevar la identificación <>.
    • Destrucción finalizará la línea de vida del objeto y se representa mediante una “X” grande en su línea de vida. El mensaje puede llevar la identificación <>.
    • La auto delegación o mensaje reflexivo un mensaje que un objeto se envía a sí mismo. Por ello, la flecha del mensaje de vuelta regresa a la misma línea de vida.
32
Q

Mensaje de creación

DIAGRAMA DE SECUENCIA

A
33
Q

Mensaje de destrucción

DIAGRAMA DE SECUENCIA

A
34
Q

DIAGRAMAS DE COMUNICACIÓN

A
  • Cada objeto se representa en una caja.
  • Las relaciones entre objetos, se representan con líneas y los mensajes con flechas que indican la dirección.
  • El diagrama muestra los objetos junto con los mensajes que se envían entre ellos.
  • Se representará la misma información que en el diagrama de secuencia.
35
Q

Elementos

de un DIAGRAMA DE COMUNICACIÓN

A

Para numerar los mensajes se puede usar varios esquemas:

  • Numeración simple: comienza en 1 y se incrementa una unidad y no hay nivel de anidamiento.
  • Numeración decimal: tiene varios subíndices para indicar anidamiento de operaciones.
36
Q

Numeración simple

en un DIAGRAMA DE COMUNICACIÓN

A
37
Q

Numeración decimal

en un DIAGRAMA DE COMUNICACIÓN

A
38
Q

DIAGRAMAS DE ESTADOS

A

Indican: cómo evoluciona el sistema a través de las transiciones de un estado a otro. Suelen incluir información adicional acerca de cómo se ha realizado la transición de un estado a otro.

39
Q

DIAGRAMAS DE ACTIVIDADES

A

Nos ayudan: a modelar el flujo de control de las distintas actividades.

Desde un punto de vista de diseño, el diagrama es es un conjunto de líneas y nodos.

Desde el punto de vista más conceptual muestra cómo va pasando el control de unas clases a otras, colaborando para conseguir un fin determinado.

Son

  • Estados de actividad.
  • Estados de acción: se representa a través de un rectángulo. Podemos tener 2 tipos de acciones
    • Acciones simples.
    • Acciones compuestas por una expresión. Un estado de actividad también se representa mediante un rectángulo y se puede descomponer en más subactividades. Dichos estados pueden ser interrumpidos y, por tanto, tardar en completarse. Podemos encontrar acciones adiciones, como de entrada (entry) o de salida (exit).
  • Transiciones. Muestran el paso de un estado a otro tanto de una actividad como de una acción. El flujo de control debe empezar y terminar, por lo que lo indicamos con dos disparadores de inicio y fin.
  • Bifurcaciones. El flujo de control no suele ser secuencial, sino que puede presentar varios caminos. Para ello, utilizaremos como símbolo el rombo para las bifurcaciones. En cada transición de salida, se indicará una expresión booleana que se evaluará cada vez que se llegue a la bifurcación. Las expresiones deben ser excluyentes y se deben visualizar todos los casos posibles. Cuando se representan varios tipos de diagramas de actividades de diferentes organizaciones o departamentos, podemos modelarlos en diferentes calles (cada calle tiene su propio nombre y grupo).
40
Q
A