Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nos permite ver cómo se relacionan entre sí las clases del sistema.
Operaciones, indicando
nombre, valor devuelto (en - moverse()
caso de tenerlo) y modi cador - comer()
de acceso
fi
fi
MODIFICADORES DE ACCESO
Los modificadores de acceso sirven para controlar la visibilidad de los
atributos y operaciones de una clase con respecto a las otras.
Existen tres tipo de modificadores de acceso:
- Private: Los atributos/operaciones de la clase sólo son visibles para la
clase contenedora.
# Protected: Se utiliza en la generalización. Sirve para que los atributos/
operaciones de una clase sean visibles para las clases derivadas o hijas.
+ Public: Los atributos/operaciones son visibles para todas las clases.
MULTIPLICIDAD
Es la cantidad de instancias de una clase que se relacionarán con las
instancias de otras. Podemos encontrar:
0 … 1 : De cero a una instancia (opcional) (1 persona, 1 suscripción)
n : Número específico. Por ejemplo, 1 (1 factura, 1 cliente)
0 … * : De cero a muchos (opcional) (1 profesor, n alumnos)
1 … * : De uno a muchos (1 casa, 1 baño)
M … n : Rango específico. (Relación de muchos a muchos)
(1 programador, 2 proyectos)
- moverse()
- moverse()
- comer()
- comer()
- atacar()
EJEMPLO
También existen asociaciones unidireccionales, pero no son comunes. Por ejemplo, un detector de velocidad
de autos, que es consciente de la existencia del auto, pero el auto (hasta que llega la multa)
AGREGACIÓN
Es una relación parte-todo. Tiene un grado de acoplamiento más alto
que la asociación, pero menor a la composición. En esta relación, una
clase actúa de contenedora de otra, pero el tiempo de vida de la clase
contenida no está limitada por el tiempo de vida de la clase
contenedora.
Se representa con una línea sólida con un diamante vacío en el extremo
de la clase contenedora.
EJEMPLO
Tabla de Madera Mesa
EJEMPLO
Se representa con una línea sólida, con una flecha blanca hacia la
superclase
EJEMPLOS Animal
# nombre: string
# peso: double
# edad: int
# moverse()
# comer()
Perro Nutria
- ladrar()
EJEMPLOS Cubo
# nombre: strin
# puntos: int
# textura: string
# colocarMundo()
# romper(): item
DEPENDENCIA
En una relación de dependencia, una clase depende de otra para poder
cumplir con su comportamiento.
Se representa con una línea puntada con una flecha hacia la clase a la
cual se depende.
EJEMPLO
CONSEJOS!
1. Encontrar el nombre de las clases. Por ejemplo, Persona, Automóvil,
Figura, etcétera.
2. Encontrar las relaciones entre las distintas clases. Por ejemplo, una
persona conduce un automóvil.
3. Construir el diagrama, colocando las clases y sus relaciones, tratando
de que las líneas se crucen lo menos posible.
DIAGRAMA DE OBJETOS
¿EN QUÉ CONSISTEN?
Muestran una fotografía del sistema en un momento específico del
sistema.
Mientras que el diagrama de clases es una vista ESTÁTICA del
sistema, el diagrama de objetos no.
Comparten similitudes con el diagrama de clases, siendo el diagrama
de objetos más sencillo de graficar.
Nos sirven para entender mejor el diagrama de clases, sobre todo el
proceso de abstracción realizado para llegar a éste.
OBJETOS
Steve :Jugador :Jugador Steve
Objeto Anónimo
EJEMPLO
EJERCICIO!
Realizar el diagrama de clases y de objetos de un juego, que contenga
lo visto en las diapositivas!
1. Personaje.
2. Herramientas/Armas (o ambos).
3. Animales.
4. Cubos.
DIAGRAMA DE SECUENCIA
DEFINICIÓN
- Sirven para describir cómo y en qué orden un grupo de objetos
funcionan en conjunto en un escenario en particular.
- Estos diagramas pueden encontrar su utilidad en los siguientes
aspectos:
- Detallar un caso de uso.
- Modelar la lógica de una operación compleja.
- Ver la interacción entre los objetos y sus componentes para lograr
un objetivo.
- Entender la funcionalidad de un escenario en particular.
ELEMENTOS
Objeto: se representa por un rectángulo. Se aplican las mismas reglas de Diagrama de
Objetos para nombrarlos. Si quien invoca la operación es un actor externo, se representa con
un monigote.
:NOMBRE_CLASE
Línea de vida. Representa el tiempo de vida de un objeto. Se trafica con una línea discontinua.
:NOMBRE_CLASE
ELEMENTOS
Casilla de activación. Es el tiempo que le toma al objeto ejecutar una tarea en
específico. Se representa con un rectángulo blanco encima de la línea de vida.
:NOMBRE_CLASE
ELEMENTOS
Mensajes. Se grafican para representar los mensajes enviados entre los
distintos objetos. Pueden ejecutar una operación.
Existen distintos tipos de mensajes:
Síncronos: El objeto que envía el mensaje debe esperar a que termine la
operación invocada para poder continuar con su responsabilidad.
ELEMENTOS
Bucle: Se utiliza para encerrar parte del diagrama e indicar que el mismo se puede
repetir a partir de una determinada condición.
:NOMBRE_CLASE :NOMBRE_CLASE
realizarOperación( )
Loop
<condición>
acumularValor( )
recibirResultado( )
ELEMENTOS
Alternativa: Se utiliza para encerrar parte del diagrama e indicar que el mismo
debe cumplir una condición para ejecutarse.
:NOMBRE_CLASE :NOMBRE_CLASE
realizarOperación( )
Alt
<Si>
acumularValor( )
<Sino>
multiplicarValor( )
recibirResultado( )
ELEMENTOS
Destrucción de un objeto: Para simbolizar la destrucción de un objeto se debe
colocar una cruz al final de la línea de vida del objeto.
:NOMBRE_CLASE
EJEMPLO