Qqq

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Qqq as PDF for free.

More details

  • Words: 886
  • Pages: 6
Evaluación Alternativa A.D.A. Ejercicio 1

Directora: Beatriz López

Componentes: Juan Jesús Pérez Luna Juan Diego del Moral Rubén Rodríguez Ronso Fernando Nieto Villanova Antonio García Ruiz Alejandro Rojas López Eugenio Gómez Martínez David Sánchez Miguel Cuenca Tirado Juan Luís Blanco Guzmán Roberto Franco Arce Inmaculada Arenas Baldrich

INGENIERÍA INFORMÁTICA GRUPO 2 10 NOVIEMBRE 2008

ÍNDICE Tabla de Contenido 1. Especificación del problema...................................................................3 2. Análisis de requisitos.............................................................................. 2.1 Catálogo de tipos.......................................................................... 2.2 Especificación de las Pre/Postcondicionales................................ 3. Pruebas del programa............................................................................. 3.1 Plan de pruebas............................................................................. 3.2 Pruebas de caja negra / funcionales.............................................. 3.3 Pruebas de caja blanca.................................................................. 4. Diseño del sistema.................................................................................. 4.1 Estrategias para facilitar el diseño................................................ 4.1.1 Para mejorar la eficiencia................................................... 4.1.2 Para mejorar la corrección.................................................. 4.1.3 Para distribuir el código entre los métodos........................ 4.2 Pseudocódigo................................................................................ 4.3 Resultados de las pruebas............................................................. 4.4 Cálculo de la eficiencia temporal y espacial................................ 4.5 Análisis de los resultados obtenidos............................................. 4.5.1 Resultados óptimos............................................................. 4.5.2 Obtención en todos los casos de respuestas....................... 5. FAQ................................................................................................ 6. Referencias..................................................................................... 6.1 Bibliográficas........................................................................ 6.2 Electrónicas...........................................................................

1. Especificación del problema Es necesario reducir las listas de espera de un centro hospitalario, asignando a los N quirófanos (Lista Quirófanos) que en él se encuentran, de la forma más equilibrada las distintas intervenciones quirúrgicas (Lista intervención). Cada quirófano tiene asignadas E especialidades (E>>N). Disponemos de una lista L, compuesta por listas de las distintas especialidades donde se encuentran los pacientes esperando una asignación. Diseñar un algoritmo voraz que sea capaz de asignar de la forma más optimizada posible el reparto de los pacientes entre los quirófanos disponibles, dependiendo de la especialidad, de forma que el tiempo de espera de los pacientes sea el menor posible. El algoritmo se ejecutará cada semana de forma que los pacientes conozcan el día y la hora de la intervención. Los pacientes no deberán esperar más de 30dias una intervención y en el caso que así sea, se indicará la imposibilidad de cumplirlo.

2. Análisis de Requisitos 2.1 Catálogo de tipos Aquí especificamos los tipos de datos que hemos utilizado en cada una de las clases necesarias para poder realizar el algoritmo voraz. En primer lugar especificamos los tipos de las clases auxiliares y a continuación las clases usadas oara los datos de entrada, de salida y para el algoritmo voraz que vamos a usar. Clase Paciente

Clase Quirofano

Nombre: String

listEspec lista de especialidades

horasNecesarias: hora

horasDiaArr Array[7] hora

fechaIngreso: fecha

horasDia hora

especialidad: String

horaInicio hora

fClase

lleno boolean fClase

Clase AlgoritmoQuirofanos

Clase Solucion

lp: lista<paciente> listaEspera, lparray: lista<lista<paciente>>

pacien Paciente quirof Quirofano

listaQuirofano: lista

Diaop fecha

sol: lista

Horaop hora

k, posicionLista: entero

fClase

hComienzo, hCita: hora aux, pac: paciete qui: quirofano salir, encontrado: logico diaInicioAlgoritmo: fecha fClase

2.2Especificación de las Pre/Postcondicionales Precondiciones del problema ∀ i:1..E Y ∀ j:1.. llp.get(i).get(j).Size() llp.get(i).get(j).getFechaDeIngreso() < llp.get(i).get(j+1).getFechaDeIngreso() (de esta forma nos aseguramos que los pacientes están ordenador por fecha de ingreso).

∀ i:1..E Y ∀ j:1.. llp.get(i).get(j).Size() llp.get(i).get(j).getEspecialidad() = llp.get(i).get(j+1).Especialidad() (Cada paciente que se encuentra en la lista de cada especialidad tiene el mismo atributo de especialidad).

E>N (El número de especialidades es mayor al número de quirófanos) Todos los pacientes tienen que llevar menos de 30 dias en la lista de espera

Postcondiciones del problema ∀ i:1..E Y ∀ j:1.. llp.get(i).get(j).Size() llp.get(i).get(j).getFechaDeOperacion() - llp.get(i).get(j).getFechaDeIngreso() < 30 dias

3. Pruebas del programa Para poder comprobar que el algoritmo que hemos desarrollado funciona correctamente, de tal forma que obtengamos una solución que satisfaga los requisitos especificados, es necesario realizar una serie de pruebas para poder encontrar errores (en el caso que los hubiera). De esta forma, podemos encontrar e identificar datos erróneos o que simplemente son distintos a los que estábamos esperando. Es realmente necesario someter al algoritmo a una serie de pruebas y comprobaciones (Testing), poniéndonos en una gran multitud de casos posibles. No obstante, aunque realicemos infinidad de pruebas con resultado positivo, sólo lograríamos probar que en los casos especificados el algoritmo funciona correctamente, pero no demostraríamos que el algoritmo no contenga errores o que funcione en el resto de los casos dónde no hemos probado nada.

3.1 Plan de Pruebas Nuestro plan de pruebas lo vamos a realizar sobre toda la clase AlgoritmoQuirofanos

Plan de Pruebas Es un conjunto de pruebas, donde cada prueba, debe indicar qué propiedades del algoritmo se desean probar y especificar la prueba. 1.Difinimos grupos de pruebas (macro-objetivos): Dividimos el espacio de datos de entrada en clases de equivalencia que provoquen comportamientos diferentes del algoritmo. 2. Definimos casos de pruebas (micro-objetivos): Seleccionamos un dato “normal” de cada clase de equivalencia y probamos con todos los datos “frontera” (valores extremos de la clase de equivalencia). Se realiza toda la combinatoria posible entre los diferentes tipos de datos de la entrada. 3. Comprobamos teniendo en cuenta las pruebas anteriormente realizadas, el grado de cobertura del código. 4. Para los segmentos y ramas no cubiertas definimos casos de pruebas de caja blanca.

Informar tan pronto como sea posible de los resultados obtenidos en las pruebas.

3.2 Pruebas de caja negra / funcionales En estas pruebas comprobaremos que se cumplen los requisitos. En nuestro algoritmo voraz, lass entradas son

3.3 Pruebas de caja blanca Texto ejemplo: En nuestro caso al ser considerado todos los segmentos y ramas en las anteriores pruebas (100% de cobertura) no hace falta generar nuevos casos de test. Si no se dispone del código se podrán generar después de desarrollarlo.

Related Documents

Qqq
November 2019 4
Qqq
June 2020 3
Qqq
November 2019 2
Qqq
November 2019 5
18 Aprile Ore 9 Pdn E Qqq
November 2019 9