[MÚSICA] [MÚSICA] Hola, y bienvenido. Acompáñame en este tutorial a aplicar los conceptos que hemos aprendido de diagramas de clase para modelar nuestros problemas en UML. Recuerda que para sacarle el máximo provecho al tutorial es importante que sigas mis acciones al mismo tiempo. Asà que te sugiero configurar ambas ventanas para poder seguir las instrucciones y replicarlas tú mismo en la herramienta. Este tutorial consta de cuatro pasos. Primero, leer el enunciado. Este paso es el que debes haber previamente realizado. De lo contrario, pausa este tutorial y dale una leÃda detallada al enunciado antes de continuar. El segundo paso, será crear las clases de nuestro modelo. El tercer paso, será definir los atributos y sus tipos. Finalmente, el cuarto y último paso será definir los métodos, sus retornos y los parámetros cuando se necesiten. Para los siguientes pasos de este tutorial, usaremos la herramienta de creación de diagramas GenMyModel. Asà que inicia sesión en tu cuenta, crea un nuevo proyecto UML, dale como nombre Robot, y comencemos. Vamos entonces al paso 2. Cambiamos en la vista de proyectos el nombre del diagrama y activamos el menú lateral o panel de opciones, y vamos al lienzo que contendrá nuestro diagrama. Revisemos antes nuestro enunciado. Podemos ver que hay una única clase, Robot. Asà que vamos a modelarla en nuestro diagrama. En el módulo que se activa, vamos al menú lateral y seleccionamos Class, para crear una clase. Luego, damos clic sobre el lienzo para crear una clase que por defecto tendrá un nombre, Class. Para cambiar el nombre, entonces hacemos doble clic en el tÃtulo y escribimos Robot, respetando las convenciones de nombramiento, en mayúscula la primera letra, el resto en minúscula. Paso número 3. Vamos a modelar los atributos del robot. Vamos a revisar el enunciado para identificarlos. Resaltemos los atributos, su posición que puede ser expresada en X y en Y. Tenemos también orientación que solo puede tomar cuatro valores, norte, sur, este, oeste. Finalmente, tenemos el estado que se indica como encendido o apagado, sus posibles valores. Bien. Vamos a modelar los atributos. Empecemos con el estado del robot. Para crear atributos seleccionamos la clase y escogemos la opción Add a new private attribute, y creamos cada atributo. Cuando creamos un atributo, tendremos la opción de modificar el nombre. Para el atributo que modela si está encendido o apagado, usaremos el nombre Estado. Luego, podemos elegir el tipo. Lo podemos hacer sobre el panel de propiedades del atributo. En este caso, lo modelaremos como un atributo Boolean. Si está encendido su valor será true, y si no, será false. Vamos también a modelar ahora la posición del robot. Crearemos los atributos coordenada X y coordenada Y, de tipo real. Finalmente, la orientación. Si vemos el enunciado, nos dice que el robot solo puede girar 90 grados, y que sus posibles orientaciones son solamente norte, sur, este, oeste. Asà que podemos modelar esto con una enumeración. Vamos a menú lateral y elegimos el diagrama que dice E, de enumeración. Nombramos nuestra nueva enumeración Orientación. Ahora, añadiremos los cuatro literales. Para hacer esto, hacemos clic derecho, Add literal, y agregamos cada literal. Y lo nombramos según el estándar, todo en mayúscula, añadimos NORTE, SUR, ESTE, y finalmente OESTE. Esto hace que nuestro atributo Orientación sea de tipo orientación. [MÚSICA] [MÚSICA] Paso número 4. Ahora vamos a crear los métodos. Revisemos el enunciado. Señalemos sus operaciones de acuerdo con el enunciado. El robot debe indicarnos su estado y permitir cambiar además de estado. También informa de su posición en X y en Y, y de su orientación. El robot da giros de 90 grados en sentido horario y antihorario, y avanza una distancia determinada hacia el frente. Estos serán los métodos de nuestra clase. Para añadir un método, miramos en las opciones de la clase y damos clic en el sÃmbolo del engranaje, el de Add a new operation. Empecemos con el método Dar estado, que retorna el valor del estado. Su retorno será un valor Boolean. También agregaremos el método de Cambiar estado, que no tiene retorno ni parámetro. Este método cambiará el valor del estado de true a false, o de false a true. Es decir, si el robot está encendido lo apagará, y si está apagado, lo encenderá. Ahora, agregamos las operaciones para dar el valor de las coordenadas y la orientación. Entonces, podemos nombrarla siguiendo el estándar. A este método lo llamaremos, Dar coordenada X. Luego, seleccionamos el tipo de retorno. Como éste retorna el valor del atributo Coordenada X, su retorno será real también. No debemos agregar parámetros por ahora. Repetimos entonces, dar Coordenada Y, y dar Orientación de tipo de retorno orientación. Finalmente, modelemos las otras operaciones del robot. El que nuestro robot pueda rotar 90 grados en sentido horario o antihorario, implica que podemos pensar en modelar dos menos. Rotar en sentido horario para rotar en el sentido de las manecillas del reloj, y rotar sentido antihorario para rotar en el sentido inverso. Estos métodos solo hará que cambie el valor de la orientación de acuerdo con los numerales definidos. Ninguno de estos métodos tiene el retorno o parámetro. Ahora, el método que permite avanzar al robot. Según el enunciado, este método permite avanzar una distancia determinada en dirección de su orientación. Asà modelamos un método que reciba un nuevo parámetro, un real, para modelar la distancia. Y le vamos a poner como nombre a este método Avanzar. No tiene retorno. Para añadir un parámetro debemos ir a la vista de propiedades con el método seleccionado, y elegir View parameter. Acá le podemos definir un nombre y un tipo. En nuestro caso, solo vamos a cambiar el tipo por real. [MÚSICA] [MÚSICA] Listo. Hemos sido lo más fieles posible a nuestro enunciado. Ahora que you has visto cómo funciona nuestra herramienta, es tu turno. En las siguientes actividades te daremos enunciados para que practiques cómo modelar lo más fielmente posible clases, atributos y métodos. Practica mucho y hasta una próxima ocasión. [MÚSICA] [MÚSICA] [MÚSICA] [MÚSICA] [MÚSICA] [MÚSICA] [MÚSICA]