1 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Generar Facturas (Junio 2003)  Caso de Uso Grado de Ocupación (Febrero 2004)  Caso de Uso.

Slides:



Advertisements
Presentaciones similares
UML DCU -DS Alvaro Garrido V..
Advertisements

Solución ADSL InfoObras 02 de noviembre de 2005 Javier Cadenas Díaz Telefónica de España Dirección PMP Gerencia Ventas PYMES T-IV Coord. Jefe Ventas I.
Tarjeta Shoppy-Card Análisis de la información Grupo 6 9/11/10.
integridad referencial
Entidad Cosa u objeto real (una persona) o abstracto (un préstamo) de interés en el mundo real (una organización). Es distinguible de todos los demás objetos.
Enunciados.
Proyectos Informáticos
Ejemplo - “Hospedar en El Hotel" El dueño de un hotel le pide a usted desarrollar un programa para consultar sobre las piezas disponibles y reservar piezas.
PRESENTACIÓN DEL SOFTWARE
MECOMPETE PRESENTACIÓN DEL SOFTWARE
PRESENTACION DEL SOFTWARE MEQUIPO útil para control de equipos de Medición y otros Presentación Control Equipos Derechos Reservados 2011 Derechos Reservados.
Qué es una Comunidad? Comunidades… … compartir conocimientos, noticias y documentación entre agrupaciones de usuarios en torno a un tema determinado. Pestaña.
Ingeniería del Software
TEMA 8: DIAGRAMAS EN UML.
CLIENTE / PROVEEDOR.
Tipos y características de instalaciones deportivas.
DISEÑO DE BASE DE DATOS DISEÑO DE SOFTWARE.
SOFTWARE INTEGRAL DE SOFTWARE INTEGRAL DE GESTION DE RESTAURANTS Desarrollo: Estudio Ing. Fierro & Asoc. Ing. Miguel Fierro
FactOrao, es un sistema de facturación electrónica que cumple con los estándares definidos por el SAT, diseñado para facturar con múltiples empresas y.
Modelos de Datos Modelado y Diseño de Bases de Datos
Primera Forma Normal En una relación (tabla) no pueden existir grupos de repetición, es decir, un atributo no puede tomar más de un valor del dominio subyacente:
SERIE V Inventarios S I S T E M A S.
Tipo de Dato Abstracto Tipos de datos:
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
Índice Sesión I Bloque I (09:30 a 10:30 Horas) Configuración Inicial
ANÁLISIS Y DISEÑO DESDE UNA PERSPECTIVA ORIENTADA A OBJETOS Alan Vargas.
1 Ingeniería del Software Ejercicios de Implementación  Caso de Uso Total Gasto (Junio 2003)  Caso de Uso Mejor Usuario (Septiembre 2003)  Caso de Uso.
TRABAJO GRASP Presentado por: Maria Paula Arias B. Luís Guillermo Torres R.
Patrones de asignación de responsabilidades (GRASP)
Acceso del usuario a la aplicación.
(c) P. Gomez-Gil, INAOE DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP.
Viviana Poblete López Módulo: Modelo de Datos
DISEÑO DE SOFTWARE 1ª. Parte
Patrones GRASP.
HERRAMIENTA DE GESTION DE VENTAS Departamento de Electrónica Diseño y Programación Orientados a Objetos Cristian Hernández C Daniel Spataris.
Análisis y Diseño Orientado a Objetos utilizando UML
Modelos de Bases de Datos
FONASA Subdepto. Gestión Territorial DZS Compra Bono WEB Beneficiarios.
Patrones para asignar responsabilidades
Ejercicio 2 Ejercicio 3. Ejercicio 4 Ejercicio 6.
Manual de usuario. Configuración inicial Para comenzar a utilizar la aplicación lo primero que tiene que hacer es configurar el Huso horario y la configuración.
SIA 2013_v2 Valencia, Febrero de 2014 ÍNDICE  Escritorio del profesional  Sospechas diagnósticas  Generar notificaciones desde el buzón del paciente.
Documentación contable
DIAGRAMAS ENTIDAD RELACIÓN
Modelo Entidad Relación
El modelo de análisis tiene como objetivo generar una arquitectura de objetos que sirva como base para el diseño posterior del sistema. Dependiendo del.
Bases de Datos en Excel Microsoft Excel aporta al usuario la posibilidad de trabajar con tablas de información: nombres, direcciones, teléfonos, zonas,
NGWEB >New Generation Products David Emmanuel Alvarado Hernández / Ana Lilia Ramirez Sánchez | Ingenieros de Software Descartado En proceso Terminado Administrador.
TEMA 9: DIAGRAMA DE CLASE EN UML
E-MARKETING Como promocionar una página en Internet.
SISTEMA DE ADMINISTRACIÓN De Condominio Los Nogales
1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de.
INGENIERIA DEL SOFTWARE
SISTEMAS DE INFORMACIÓN
Ingeniería del Software 2002
1 Ingeniería del Software Ejercicio 3: Películas de mayor éxito ESTRATEGA Obtener mejores películas.
GESTIÓN DE PEDIDOS AGILECUBES2000 Ejercicio Historias de Usuario
Utilizar Costo Promedio Ponderado en el Software Administrativo SAW
Noviembre / 2010 Impacto en Back Office BVC. Contenido 1.Reglas generales 2.Complementación 2.1. De operaciones sobre valores Colombianos 2.2. De operaciones.

1 Ingeniería del Software Ejercicio 2: Caso de uso: Anular Reservas Pista Anular Reservas Pista ENCARGADO.
Práctico 1 Letra de ejercicios 4 y 5 + Trabajo práctico 1
Modelado UML Diagramas de Casos de Uso
El director general de operaciones de Microsoft, Kevin Turner, se burló del iPhone 4, el último teléfono inteligente de su rival Apple que ha recibido.
Curso de programación Visual Chart 6 (1ªEd.)
.:::. Escuela Superior de Informática.:::. Universidad de Castilla-La Mancha.:::. Paseo de la Universidad, 4. Ciudad Real.:::. Oferta académica adaptada.
1 Ingeniería del Software Ejercicio 2: Caso de uso: Anular Reservas Pista Pista más reservada ENCARGADO.
Diseño de tipos: clase PolinomioEntero Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 8 Versión
Gestión de tiempos del proyecto
Transcripción de la presentación:

1 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Generar Facturas (Junio 2003)  Caso de Uso Grado de Ocupación (Febrero 2004)  Caso de Uso Clientes Pelicula (Junio 2004)  Caso de Uso Programar Pases (Septiembre 2004)  Caso de Uso Eliminar Pases (Febrero 2005)  Se pide:  Diagrama de Secuencia

2 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Generar Facturas (Junio 2003)  Se pide:  Diagrama de Secuencia

3 Ingeniería del Software Llamada teléfonoDestino: String dia: Integer mes: Integer año: Integer inicio: Integer duración: Integer /importe: Real Cliente teléfono: String nombre: String nif: String dirección: String Factura mes: Integer año: Integer cobrada: Boolean=False /total: Integer=0 Tarifa tipo: String precio: Real * 1* 1 *0..1 /pertenece 1* Ejercicio 1: Caso de uso: Generar Facturas

4 Ingeniería del Software :Administrador :Sistema generarFacturas(año,mes) Ejercicio 1: Caso de uso: Generar Facturas

5 Ingeniería del Software Contrato de la operación generarFacturas: Operación:generarFacturas(año: Integer; mes: Integer) Responsabilidades: Generar las facturas mensuales de los clientes Precondiciones:argumentos no nulos y válidos Postcondicones: 1. Se ha dado de alta una instancia de factura para cada cliente que tenga como mínimo una llamada en el mes y año indicado 2. Se ha asignado el importe de cada llamada 3. Se han asignado los atributos mes, año, cobrado y total de la instancia creada. 4. Se asocia la factura al cliente 5. Se asocian las llamadas a la factura creada

6 Ingeniería del Software generarFacturas(año,mes) :GestorFacturas gF(año,mes) importe [n>0] precio?() * * :Factura [n>0] importe() :Tarifa importeLlamada() :Cliente :Llamada numLlamadas(año,mes) n * b := añoMes?(año,mes) [n>0] asociarLlamada() * asociarLlamada()

7 Ingeniería del Software generarFacturas(año,mes) :GestorFacturas gF(año,mes) importe [n>0] precio?() * * :Factura [n>0] importe() :Tarifa importeLlamada() [n>0] * asociarLlamada() :Cliente :Llamada n := numLlamadas(año,mes)

8 Ingeniería del Software Escogemos el patrón controlador para gestionar el evento externo generarFacturas. Aunque otras opciones son posibles, a falta de más información al tratarse de modelar un caso de uso, seleccionamos un controlador de caso de uso: GestorFacturas. Además, esta clase artificial agrupa a todos los clientes de la compañía. Con ello pretendemos un diseño global con alta cohesión y bajo acoplamiento. Por el patrón experto, el método gF es el encargado de verificar que el cliente haya realizado llamadas en ese mes y año (numLlamadas()>0) para poder crear una factura. El método generarFacturas de la clase GestorFacturas aplica el método gF de Cliente a cada cliente. Utilizando el patrón experto, se asigna la responsabilidad de calcular el importe de las distintas llamadas de un cliente a la clase Llamada. Se calcula el /importe de cada llamada - importeLlamada() - y se acumula para el atributo /total de Factura. Para ello debe consultarse el precio de la tarifa de cada llamada. Utilizando el patrón creador, cada Cliente crea su Factura, la asocia a su atributo /pertenece y le asigna los valores pertinentes – mes, año, /total –. Por último, el Cliente, siendo el experto en llamadas, es el que debe asociar la Factura creada a cada Llamada.

9 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Grado de Ocupación (Febrero 2004)  Se pide:  Diagrama de Secuencia

10 Ingeniería del Software Grado de Ocupación: Modelo de Dominio

11 Ingeniería del Software Grado de Ocupación: Diagrama de Secuencia de Sistema :Administrador :Sistema gradoOcupacion(ciclo, fecha) : go

12 Ingeniería del Software Contrato de la operación gradoOcupación: Operación:gradoOcupacion(ciclo, fecha) : go Responsabilidades:Obtener el grado de ocupación de un determinado ciclo en una fecha concreta Precondiciones:argumentos no nulos y válidos Postcondicones: Salida: go = ratio (en tanto por ciento) entre el total de entradas de un ciclo vendidas hasta una fecha y el total de entradas disponibles de un ciclo determinado.

13 Ingeniería del Software Grado de Ocupación: Modelo de Dominio Película ciclo título director actores descripción duracion imagen Sala nombre butacas Pase fecha horaIncio horaFin precio /vendidas Entradas num Cesta fecha hora importe ** * *

14 Ingeniería del Software Grado de Ocupación: Modelo de Dominio: Normalización Película ciclo título director actores descripción duracion imagen Sala nombre butacas Pase fecha horaIncio horaFin precio /vendidas Entradas num Cesta fecha hora importe * * * *

15 Ingeniería del Software Grado de Ocupación: Diagrama de clases: accesibilidad Película ciclo título director actores descripción duracion imagen Sala nombre butacas Pase fecha horaIncio horaFin precio /vendidas Entradas num Cesta fecha hora importe * * * * Controlador

16 :Pase :Pelicula Ingeniería del Software gradoOcupacion(ciclo,fecha) :GestorOcupacion Tbutacas(ciclo) butacas() :Pelicula :Pase:Sala butacasPase() * * TVendidas(ciclo,fecha) tv * vendidasPase(fecha) * v :Cesta vendidas(fecha) * v comprobar(fecha) go=tb/tv*100 tb b :Pase :Entradas

17 Ingeniería del Software Escogemos el patrón controlador para gestionar el evento externo gradoOcupación. Aunque otras opciones son posibles, a falta de más información al tratarse de modelar un caso de uso, seleccionamos un controlador de caso de uso: GestorOcupación. Además, esta clase artificial agrupa a todas las películas del festival. Con ello pretendemos un diseño global con alta cohesión y bajo acoplamiento. Por el patrón experto, el método TButacas es el encargado de obtener el total de butacas disponibles para un ciclo determinado. Para ello, primero se seleccionan todas las películas del ciclo. Con ellas, también por el patrón experto, se seleccionan todos los pases y salas donde se proyecta la película. Acumulamos el resultado en la variable tb. Por el patrón experto, el método TVendidas es el encargado de obtener el total de entradas vendidas hasta una fecha. Para ello, primero se seleccionan todas las películas del ciclo. Con ellas, también por el patrón experto, se seleccionan todos los pases. Ahora, también por el patrón experto, seleccionamos las entradas y cestas con fecha menor o igual a la proporcionada. Acumulamos el resultado en la variable tv. Por último, se obtiene el valor de go = tb / tv * 100

18 Ingeniería del Software Examen Junio  4a Parte: Diseño: ClientesPelicula  Se pide:  Diagrama de secuencia

19 Ingeniería del Software Grado de Ocupación: Modelo de Dominio

20 Ingeniería del Software Grado de Ocupación: Diagrama de Secuencia de Sistema :Administrador :Sistema clientesPelícula(código) : clientes

21 Ingeniería del Software Contrato de la operación clientesPelícula: Operación:clientesPelícula(código) : clientes Responsabilidades:Obtener los clientes que hayan comprado entradas de cualquier pase de una película Precondiciones:argumento no nulo y válido Postcondicones: Salida: clientes = lista de los nombres e s de los clientes que hayan comprado entradas de cualquier pase de una determinada película.

22 :Entradas :Pase Ingeniería del Software clientesPelicula(código) :GestorClientesPelicula CP(código) EntradasPase() :Pelicula :Pase :Entradas PasesPelicula() :Cesta CestaEntrada() :Cliente * * ClienteCesta() nombre, nombre, Lista(nombre, ) eliminarRepetidos() Lista(nombre, ) Lista(nombre, ) Lista(nombre, )

23 Ingeniería del Software Escogemos el patrón controlador para gestionar el evento externo ClientesPelícula. Aunque otras opciones son posibles, a falta de más información al tratarse de modelar un caso de uso, seleccionamos un controlador de caso de uso: GestorClientesPelícula. Además, esta clase artificial agrupa a todas las películas del festival. Con ello pretendemos un diseño global con alta cohesión y bajo acoplamiento. Por el patrón experto, el método CP es el encargado de buscar la película. Por el patrón experto, el método PasesPelícula es el encargado de buscar todos los pases de la película, y el método EntradasPase, todas las entradas vendidas de un determinado pase. Por el patrón experto, el método CestaEntrada es el encargado de obtener la cesta que incluía la entrada venida, y el método ClienteCesta el cliente que realizó esa compra. De ese cliente se obtiene su nombre e . Por último, el método EliminarRepetidos elimina los nombres e s que pudieran estar repetidos de los clientes que compraron alguna entrada para una determinada película.

24 Ingeniería del Software Examen Febrero  Eliminar Pases  Se pide:  Diagrama de secuencia

25 :Administrador ObtenerCiclos() : listaCiclos ObtenerPelículas(nombre) : listaPelículasCompleta EliminarPases(listaPelículas, fecha) :Sistema Diagrama de Secuencia de Sistema Ingeniería del Software

26 Ingeniería del Software Modelo de dominio 1* Ciclo nombre... Película título... Pase fecha hora /venta ** Sala códigoSala aforo

27 :Pase Ingeniería del Software ObtenerCiclos() :GestorEliminarPases ObtenerNombre() :Ciclo Lista(nombre) nombre *

28 Ingeniería del Software Escogemos el patrón controlador para gestionar el evento externo ObtenerCiclos. Aunque otras opciones son posibles, a falta de más información al tratarse de modelar un caso de uso, seleccionamos un controlador de caso de uso: GestorEliminarPases. Además, esta clase artificial agrupa a todos los ciclos del festival. Con ello pretendemos un diseño global con alta cohesión y bajo acoplamiento. Por el patrón experto, el método ObtenerNombre es el encargado de buscar el nombre del ciclo.

29 :Pase Ingeniería del Software ObtenerPelículas(nombre) :GestorEliminarPases ObtenerTítulo() :Película Lista(título) título * ObtenerTitulos() :Ciclo Lista(título)

30 Ingeniería del Software Escogemos el patrón controlador para gestionar el evento externo ObtenerPelículas. Aunque otras opciones son posibles, a falta de más información al tratarse de modelar un caso de uso, seleccionamos el mismo controlador de caso de uso que para la operación anterior: GestorEliminarPases. Además, esta clase artificial agrupa a todos los ciclos del festival y los tiene accesibles para recorrido y de forma directa (hash). Con ello pretendemos un diseño global con alta cohesión y bajo acoplamiento. Por el patrón experto, el método ObtenerTítulos es el encargado de buscar las películas asociadas al ciclo nombre. Por el patrón experto, el método ObtenerTítulo es el encargado de buscar el título de la película.

31 :Pase Ingeniería del Software EliminarPases(ListaPelículas, fecha) :GestorEliminarPases EliminarPase(fecha) :Pase EliminarPases(titulo,fecha) :Pase :Pelicula ComprobarPase() [ok] EliminarAsocSala() ok [ok] EliminarAsocPase() [ok] * *

32 Ingeniería del Software Escogemos el patrón controlador para gestionar el evento externo EliminarPases. Aunque otras opciones son posibles, a falta de más información al tratarse de modelar un caso de uso, seleccionamos el mismo controlador de caso de uso que para la operación anterior: GestorEliminarPases. Además, esta clase artificial agrupa también todas las películas del festival con acceso directo (hash). Con ello pretendemos un diseño global con alta cohesión y bajo acoplamiento. Por el patrón experto, el método EliminarPases de Película es el encargado de eliminar los pases de las películas cuyo título aparece en ListaPelículas y cumplan las condiciones impuestas. En el caso de cumplirlas, eliminaremos su asociación con el pase (realizado por EliminarAsocPase) y por último lo destruiremos. Por el patrón experto, el método EliminarPase de Pase es el encargado de comprobar si Pa.venta=0 y Pa.fecha > fecha (realizado por ComprobarPase). En el caso de cumplirse la condición, eliminaremos su asociación con Sala (realizado por EliminarAsocSala). Nota: podría ser que la Sala también tuviera una asociación con Pase. En ese caso, también deberíamos acceder a Sala para eliminarla.