GUÍA DE TRABAJO Nº 1 ASIGNATURA: METODOLOGÍA ORIENTADA A OBJETOS Profesora: LAURA PATRICIA PINTO PRIETO Fecha: 21 de agosto de 2010. TEMA: Introducción al uml. OBJETIVO DE APRENDIZAJE DE LA UNIDAD: Identificar las principales características de uml y la importancia en el desarrollo de software. Repasar los diagramas de casos de uso y su especificación. CRITERIOS DE DESEMPEÑO: El estudiante será capaz de: 1. Identificar características del uml. 2. De acuerdo al problema planteado podrá diseñar el diagrama de casos de uso. 3. Conocer a groso modo de que trata cada Diagrama Uml. CONTENIDO: Definición: UML (Unified Modeling Language - Lenguaje Unificado de Modelado). UML es un popular lenguaje de modelado de sistemas de software. Se trata de un lenguaje gráfico para construir, documentar, visualizar y especificar un sistema de software. Entre otras palabras, UML se utiliza para definir un sistema de software. Posee la riqueza suficiente como para crear un modelo del sistema, pudiendo modelar los procesos de negocios, funciones, esquemas de bases de datos, expresiones de lenguajes de programación, etc. Para ello utiliza varios tipos diferentes de diagramas, por ejemplo, en UML 2.0 hay 13 tipos de diagramas. Estos diagramas se pueden diferenciar en tres categorías: Diagramas de estructura: Diagrama de clases Diagrama de componentes Diagrama de objetos Diagrama de estructura compuesta (UML 2.0) Diagrama de despliegue Diagrama de paquetes Diagramas de comportamiento: Diagrama de actividades Diagrama de casos de uso Diagrama de estados Diagramas de interacción: Diagrama de secuencia Diagrama de comunicación Diagrama de tiempos (UML 2.0) Diagrama de vista de interacción (UML 2.0) Algunos programas gratuitos para modelar en UML son: ArgoUML, Dia, gModeler, MonoUML, StarUML, TCM, Umbrello Herramienta, UMLet. Diagrama de casos de uso: Los diagramas de Casos de Uso describen lo que hace un sistema desde el punto de vista de un observador externo, enfatizando el qué más que el cómo. Plantean escenarios, es decir, lo que pasa cuando alguien interactúa con el sistema, proporcionando un resumen para una tarea u objetivo. El siguiente Caso de Uso describe como Carlos va a desayunar (este es su objetivo), para lo que se plantea el escenario de preparar su café y el pan tostado Tipos de asociaciones Especificación de casos de uso: Diagrama de Casos de uso de alto nivel. Definición: es un diagrama de casos de uso que contiene solo los actores y la mayoría de casos de usos del proyecto ó problema a tratar visto de una forma general sin colocar casos de uso específicos que nacen de relaciones de inclusión y extensión. Especificación de casos de uso de alto nivel. Para la especificación de un diagrama de casos de uso de alto nivel se debe hacer la especificación de los actores del sistema: Nombre del Actor Nombre del actor que se va a especificar. Casos de uso Nombre de todos los casos de uso a los cuales tiene acceso el usuario o actor. Tipo Primario o secundario. Referente a la importancia del actor en el sistema. Descripción Da una descripción de quién es ese actor y que hace en el sistema. Diagrama de Casos detallado. Este diagrama no es tan general , abarca todas las funciones del software para una situación ó modulo en particular dentro del software; en este diagrama se incluyen los casos de uso que necen de relaciones de inclusión y extención. El formato de especificación de casos de uso es el siguiente: Caso de uso Actor(es) Descripción ó propósito Tipo Se escribe el nombre del caso de uso que se va a especificar. Actores que tienen acceso a ese caso de uso. De que trata el caso de uso y cual es su propósito dentro del sistema. Primario ó secundario. Primario es si el caso de uso es de gran importancia en el sistema o da inicio a alguna actividad. Secundario: el caso de uso depende de otro, es un caso de uso de una relación de include o extend. Precondición(es) Que debe suceder para que el caso de uso se pueda llevar a cabo. Actor Respuesta del sistema 1 Flujo de eventos (como se desarrolla ese caso de uso) Poscondición(es) Excepciones 2 3 4 Que sucede después de realizarse el caso de uso. Se escribe en caso de que hayan cosas excepcionales que pasen en el caso de uso y cambien el flujo normal de eventos. Importante: Los casos de uso de inclusión se especifican dentro del caso de uso padre que lo incluye. Los casos de uso de extensión se especifican por separado pero se debe decir de que caso de uso provienen. TRABAJO DE REFUERZO O INVESTIGACIÓN Ejercicio1 "Hotel" El dueño de un hotel le pide a usted desarrollar un programa para consultar sobre las piezas disponibles y reservar piezas de su hotel. El hotel posee tres tipos de piezas: simple, doble y matrimonial, y dos tipos de clientes: habituales y esporádicos. Una reservación almacena datos del cliente, de la pieza reservada, la fecha de comienzo y el número de días que será ocupada la pieza. El recepcionista del hotel debe poder hacer la siguientes operaciones: Obtener un listado de las piezas disponible de acuerdo a su tipo Preguntar por el precio de una pieza de acuerdo a su tipo Preguntar por el descuento ofrecido a los clientes habituales Preguntar por el precio total para un cliente dado, especificando su numero de RUT, tipo de pieza y número de noches. Dibujar en pantalla la foto de un pieza de acuerdo a su tipo Reservar una pieza especificando el número de la pieza, rut y nombre del cliente. Eliminar una reserva especificando el número de la pieza El administrador puede usar el programa para: Cambiar el precio de una pieza de acuerdo a su tipo Cambiar el valor del descuento ofrecido a los clientes habituales Calcular las ganancias que tendrán en un mes especificado (considere que todos los meses tienen treinta días). El hotel posee información sobre cuales clientes son habituales. Esta estructura puede manejarla con un diccionario, cuya clave sea el número de RUT y como significado tenga los datos personales del cliente. El diseño a desarrollar debe facilitar la extensibilidad de nuevos tipos de pieza o clientes y a su vez permitir agregar nuevas consultas. Ejercicio2: Universidade Nova de Lisboa La Universidade Nova de Lisboa (UNL) nos ha encargado el desarrollo de una aplicación Web para la gestión de su centro de deportes llamado Desporto Novo. Según nos explica el gerente del centro existen 4 tipos de usuarios. El administrativo del centro de deportes, los socios alumnos, los socios que no son alumnos y personas externas. El administrativo es quien gestiona las nuevas actividades deportivas que se celebran en el centro. Para dar de alta una actividad se le debe asignar una instalación, una fecha y una hora, una descripción, un precio, nº de personas y un o un conjunto de monitores.Debe poder llevar también la gestión de estos monitores. Para dar de alta un monitor se precisan sus datos personales, su preparación o especialidad y las actividades que puede llevar a cabo según su capacitación. Hay dos tipos de socios (los que son alumnos de la UNL y los que no son alumnos), la diferencia radica en los descuentos aplicados. Un socio que a la vez es alumno tiene el 50% de descuento en la inscripción de actividades y un 30% en el alquiler de instalaciones. A la hora de inscribirse en una actividad, se debe comprobar si quedan plazas libres. Para el alquiler de una instalación se deberá consultar su disponibilidad. Una vez se haya pagado la inscripción de una actividad o el alquiler de una instalación se enviará una copia del resguardo al correo, y de forma opcional podrá imprimirlo en papel. Importante saber que cuando se alquila una instalación se deben actualizar los datos de disponibilidad. Las personas externas se pueden hacer socios rellenando un formulario de inscripción. Una vez rellenado y enviado se le manda una copia a su correo electrónico. De forma opcional puede imprimirlo en papel. Hasta que no son socios sólo pueden consultar las instalaciones y las actividades, pero no pueden inscribirse en ninguna actividad ni alquilar instalaciones. Ejercicio 3: ONG Concòrdia La ONG Concordia nos ha encargado el desarrollo de una aplicación Web para la gestión de su hospital en el poblado de Rukara en Rwanda. En el hospital trabajan médicos, enfermeros y personal de administración. El aplicativo ofrecerá algunas funcionalidades comunes y otras específicas dependiendo del usuario. El personal de administración deberá poder hacer el mantenimiento de la base de datos de pacientes (alta, baja, modificación y consulta). Para dar de alta un paciente será necesario recoger sus datos personales, dirección donde vive y asignarle un médico y un turno de visita (mañana o tarde). Además, cuando el paciente lo solicite, deberán darle cita (especificando día y hora) para la visita a su médico. También, dado un médico, una fecha y un turno (mañana o tarde) tienen que poder consultar el listado de pacientes con cita ordenado por hora, y se les tiene que dar la posibilidad de imprimir este listado. Los médicos tienen que poder dar de alta un historial. Una vez creado deben de poder modificarlo y consultarlo, pero nunca borrarlo. Un historial contiene los datos personales del paciente y toda esa información que el médico ha ido apuntando en cada una de las visitas (análisis, revisiones, medicamentos tomados, alergias sufridas,enfermedades padecidas). Tienen que poder expedir recetas. Una receta refleja los datos del paciente y los medicamentos especificados por el médico. Obligatoriamente,para terminar con esta funcionalidad, el médico tiene que imprimirla. Los enfermeros deben de poder consultar los datos y el historial de un paciente, pero nunca modificarlos ni borrarlos. Son los que mantienen la base de datos de medicamentos de la farmacia propia del hospital. Por cada tipo de medicamento, se tiene cierta información (componentes, ¿cómo tomar?, efectos secundarios, precauciones, y número de unidades existentes en el almacén). Cuando les llega una remesa de este tipo de medicamento o realizan alguna venta deben actualizar su número de unidades. El sistema les tiene que permitir realizar un inventario de todos los medicamentos que tienen en la farmacia. De forma opcional, tienen que poder imprimirlo.