Title: Qu es UML
1Qué es UML?
- Que es UML?, para que me sirve? Y que tiene que
ver con Robocode? - UML es una herramienta de modelado Visual y sirve
para representar todo tipo de sistemas, en este
caso ROBOCODE
Raúl Espinola DB2 UG Nea UTN FRRE - Argentina
2UML
- UML es un lenguaje visual para especificar,
construir y documentar sistemas (OMG - Object
Management Group) - Unified (UNIFICADO)
- El aporte de muchos métodos y notaciones
- Independiente de implementaciones, plataformas y
lenguajes - Modeling (MODELADO)
- Los modelos son utilizados en todas las
ingenierías - Language (LENGUAJE)
- Si hay gente, requieren comunicarse. Si se tienen
que comunicar, se tienen que entender. Para
entenderse necesitan un lenguaje común
3Una Clase en UML
- Una clase está compuesta de tres secciones
- La primera sección contiene el nombre de la clase
- La segunda sección muestra la estructura
(atributos) - La tercera sección muestra el comportamiento
(operaciones) - La segunda y la tercera sección pueden ser
suprimidas
4Pilares de la Orientación a Objetos
5Abstracción
- Se enfoca en lo Importante ignorando lo complejo,
o desconocido. - Una Clase es una abstracción donde
- Se enfatizan las características importantes.
- Se minimizan las características menos
importantes o no relevantes. - Por ejemplo En nuestro objeto tanque solo
debemos preocuparnos por darle inteligencia a
través de nuestro código (características
importantes) y no nos preocupamos de su forma o
de sus gráficos (características irrelevantes)
6Encapsulamiento
- Principio que establece que los atributos propios
de un objeto no deben ser visibles desde otros
objetos. - Nos permite abstraernos de su codificación
mientras que solo nos comunicamos con ese objeto
a través de sus métodos (comportamiento). - Porque es útil?
- Seguridad (evita cambios de código).
- Puntos de Control.
7Polimorfismo
- Es la propiedad que tienen los objetos de
permitir invocar genéricamente un comportamiento
(método) cuya implementación será delegada al
objeto correspondiente recién en tiempo de
ejecución - El polimorfismo tiende a existir en las
relaciones de herencia, pero no siempre es así
8Polimorfismo - Ejemplo
- La definición del método reside en la clase base
- La implementación del método reside en la clase
derivada - La invocación es resuelta al momento de ejecución
9Relaciones
- Todo Sistema (Natural, Social, Mecánico o
Conceptual) abarca muchas clases y objetos - Los objetos contribuyen en el comportamiento de
un sistema colaborando entre si - La colaboración se logra a través de las
relaciones - Existen dos tipos principales de relaciones
- Asociación
- Agregación
10Relaciones de Asociación
- Una asociación es una conexión entre dos clases
que representa una comunicación - Una asociación puede tener nombre
- La comunicación puede ser tanto uni como
bi-direccional (por defecto) - La multiplicidad es el número de instancias que
participan en una asociación - La Cardinalidad
- Ejemplo
- Una Persona es Dueña de un Vehículo
- Un Vehículo Pertenece a una Persona
11Cardinalidad en la Asociacion
- En un Diagrama UML también se puede indicar la
cardinalidad en una relación entre objetos. - Muestra la cantidad de objetos que pueden estar
relacionados. - Las Relaciones pueden ser
- 11 (una persona es empleado de un departamento y
solo de uno) - nn (n facturas poseen n productos)
- 0..1, 1..2, 1..n se especifica un rango
- 1.. -- uno o mas (una computadora puede tener
uno o mas usuarios) - 0.. -- cero o mas (un cliente tiene 0 o mas
deudas)
12Relaciones de Agregación
- La agregación es una forma especial de asociación
donde un todo se relaciona con sus partes - También se conoce como una parte de o una
relación de contención - Ejemplo
- Una Puerta es una parte de un Vehículo
- El Vehículo es azul, la Puerta es Azul
- Mover el Vehículo implica mover la Puerta
13Herencia
- Es una relación entre clases en la cual una clase
comparte la estructura y comportamiento definido
en otra clase (Grady Booch) - Cada clase que hereda de otra posee
- Los atributos de la clase base además de los
propios - Soporta todos o algunos de los métodos de la
clase base - Una subclase hereda de una clase base
14Herencia
- Herencia Es-Un herencia real, donde la
subclase es un tipo específico de la superclase - Un Cuadrado es un Rectángulo
- Un perro es un mamífero
- Un automóvil es un vehículo a motor
15Diagrama UML de Robocode
El mismo diagrama se encuentra en la seccion de
tutoriales
16Clase Robot y Proyectil
Desde el Robot a) Un Robot puede disparar 0 o
mas Proyectiles b) Un Robot puede recibir 0 o
mas disparos
Desde la Visión del Proyectil Una proyectil
puede pegar a 0 tanque es decir ningún o
como máximo a un tanque
Aquí podemos ver una relación de asociación entre
Robot y Proyectil con cardinalidad
17Eventos
Aquí se modelan algunos de los eventos que le
pueden suceder a nuestro robot, por esa razón se
encuentra la relación de asociación entre Robot
y Proyectil, (Un robot recibe como mínimo 1
evento o varios)