Ingeniería de Sistemas e Informática

Slides:



Advertisements
Presentaciones similares
Contenido Sistemas de Información Desarrollo de software
Advertisements

Gestión de Recursos Informáticos Unidad Nº 3: Gestión de calidad y eficiencia.
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
PROYECTO DE GRADO ANÁLISIS, DISEÑO, DESARROLLO E IMPLEMENTACIÓN DE UN SISTEMA WEB PARA EL CONTROL DE UN TALLER TÉCNICO AUTOMOTRIZ EN PLATAFORMA PHP –
Felipe Donoso Natalia Sandoval
Por: Carlos Aucancela Tatiana Pozo
ESCUELA POLITÉCNICA DEL EJÉRCITO
Introducción a los sistemas de Información Hospitalarios
Especificación y Descripción de Liberación. Líneas Base.
Sistema de Gestión de la Calidad
Modelo de Desarrollo XP
Departamento de Ciencias de la Computación
Diseño de un Sistema de Control en Tiempo Real para el Kernel del Sistema Operativo utilizando MatLab-SimuLink Por: MARCO ANTONIO ESPINEL CANGUI DIRECTOR:
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
Ciclos de vida ágiles.  Es una metodología ágil que plantea: ◦ Iteraciones cortas ◦ Entregables periódicos ◦ Colaboración con el cliente full time ◦
Leonora Sistemas S.A. Sistema de Planificación y Control de Ventas (SIPCOV)‏ Patricia Albornoz Labrín.
 Tema del proyecto  Integrantes y roles del equipo  Objetivos del proyecto  Alcance.
MAESTRÍA DE GERENCIA EN SISTEMA
Importancia de las aplicaciones de estadística en el control de procesos Guatemala 2010.
Ingenieria de software
Scrum Images goes here …y prácticas ágiles para desarrollo de software.
ESCUELA POLITÉCNICA DEL EJÉRCITO
Unidad VI Documentación
Contexto Proyecto consolidado dentro de la línea de investigación de Sistemas de Información en el Dpto. de Ingeniería en Sistemas de Información de la.
1 Gestión de la calidad Programa AGAPD-01 Módulo IV Profesor: Ing. Osvaldo Martínez Gómez, MAP, MSc.
EDUAR 2.0 Sistema de Explotación de Información Educativa 10/05/2011.
agile-tester-foundation- chapter-2-fundamental-agile-testing- principles-practices-and-processes-1-of-3-
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería del Software
INGENIERÍA EN SISTEMAS E INFORMÁTICA
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
TEMA: DESARROLLO DE UN SISTEMA INFORMÁTICO PARA EL CONTROL DE USO Y EL MANTENIMIENTO DE VEHÍCULOS DE UNA INSTITUCIÓN PÚBLICA AUTOR: EDISON GUAMAN   DIRECTOR:
35 años de investigación, innovando con energía 1 Mayo, 2012 P LAN DE ASEGURAMIENTO DE LA CALIDAD DEL DESARROLLO DE SOFTWARE E STÁNDAR IEEE 730 Y G UÍA.
Especialización en Desarrollo de Software
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
INGENIERÍA DEL SOFTWARE GESTIÓN DE PROYECTOS
ASIGNACIÓN DE ROLES.
Alexander Aristizabal Ángelo flores herrera
INGENIERÍA DEL SOFTWARE GESTIÓN DE PROYECTOS
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de metodologías ágiles Tatiana Alejandra.
UNIVERSIDAD LATINA II. FUNCIONES DEL ADMINISTRADOR.
Roles de Open UP.
RUTA DE LA CALIDAD.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Introducción al proceso de verificación y validación.
“Papel del Programador en el Desarrollo de Videojuegos.”
Republica Bolivariana De Venezuela Ministerio Del Poder Popular Para La Educación Universidad Gran Mariscal De Ayacucho Cátedra: Dirección De Operaciones.
PROCESOS DE DESARROLLO DE SOFTWARE
Actividades en el Proceso de desarrollo de Software
PROYECTO SOCIO TECNOLÓGICO
Ciclo de Vida del Software
FACULTAD DE CIENCIAS COMPUTACIONALES Y TELECOMUNICACIONES ASIGNATURA:
ESCUELA PROFESIONAL DE INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
Elementos Conceptuales de proyectos: ¿Qué es un proyecto
Proceso de desarrollo de Software
CONCEPTO DE CICLO DE VIDA 1 En los departamentos de Sistemas se debe definir un marco de referencia común que debe ser:  Pueda ser empleado por todos.
Administración de Calidad de Software
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Autor: Reinozo Cuesta Christian Marcelo
MAESTRÍA EN PLANIFICACIÓN Y DIRECCIÓN ESTRATÉGICA
Autores: Myriam Montes, Iván Viera, Carlos Caizaguano, José Sancho
MODULO INFORMATICO PARA MEJORAR LOS PROCESOS DE HISTORIAS CLÍNICAS Y CONTROL DE PAGOS EN EL ÁREA DE ODONTOLOGÍA DEL BIENESTAR UNIVERSITARIO DE LA FUNDACION.
Scrum: Mejorando las prácticas Anabel Ruth Berenstein Año 2012.
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
Seminario de Sistemas Distribuidora Autores: Silvana Bassi Federico Albera Director: Lic. José A. Peralta Febrero de 2008.
Sistema de información PSU Javeriana Juan Sebastián Ruiz Andrés Acosta.
Junio, 2013.
Transcripción de la presentación:

Ingeniería de Sistemas e Informática ESTUDIO DE LA TÉCNICA TEST DRIVEN DEVELOPMENT (TDD) Y DESARROLLO DEL SISTEMA PARA LA ADMINISTRACIÓN DE CONSULTORIOS MÉDICOS. Tutores: Ing. Jenny Ruiz e Ing. Mario Ron, MSc. Autores: Luis Cuenca y Andrés Veintimilla. Sangolquí, Junio 2014.

CONTENIDO 1 2 3 4 5 6 7 8 9 Motivación y Contexto Planteamiento del Problema 2 Objetivos 3 Marco Teórico 4 Especificación de Requerimientos 5 Implementación de la Metodología 6 Pruebas 7 Ejecución del Sistema 8 Conclusiones y Recomendaciones 9 CONTENIDO

Motivación y Contexto Técnica de desarrollo La interpretación de los cambios dentro de los procesos de la ingeniería de software como inevitables y necesarios representan una gran ventaja en las metodologías agiles. Consultorios médicos Con el desarrollo tecnológico continuo, los centros médicos dejan atrás los procesos manuales enfocados a la administración de los pacientes, para brindar un optimo y eficaz servicio a los usuarios. Frente a este escenario Se propuso el estudio de la técnica test driven development (tdd) y desarrollo del sistema para la administración de consultorios médicos.

Planteamiento del Problema Grupo de pruebas Al final de la codificación Pérdida de eficiencia Problemas fase de producción Prácticas Predictivas Restructuración compleja

Planteamiento del Problema Fuente: Origen de los errores en un proyecto de software, centro de estudios de ingeniería de software Chile Validación tardía Solución inconsistente The Chaos Report

General Específicos Objetivos Realizar un estudio de la técnica Test Driven Development (TDD) utilizando el Framework JUnit y desarrollo del sistema para la administración de consultorios médicos en base a los lineamientos de la metodología SCRUM. General Investigar y analizar el funcionamiento y aplicación de la técnica del desarrollo dirigido por pruebas (TDD), al igual que el Framework JUnit. Implementar la técnica del desarrollo por pruebas (TDD) en el caso práctico del sistema web de administración de consultorios médicos. Gestionar el proyecto de desarrollo de software en base a la metodología SCRUM. Realizar un cuadro comparativo entre las pruebas (unitarias y de integración) y las pruebas que ofrece JUnit. Establecer conclusiones y recomendaciones de los resultados de las comparaciones. Específicos

Marco Teórico Partes del Test ARRANGE ACT ASSERT

Marco Teórico ARRANGE ACT ASSERT package Operaciones; public class OperacionSuma { public int suma(int a, int b) { return 2; } ARRANGE ACT package Operaciones; public class OperacionSuma { public int suma(int a, int b) { return 0; } package Operaciones; public class OperacionSuma { public int suma(int a, int b) { return a+b; } ASSERT

Marco Teórico LISTA DE NECESIDADES Historias de Usuario Lista de tareas que se desarrollan en el sprint Tabla de tareas. Incremento

Marco Teórico Java EE NetBeans IDE SOA Servicio WEB Framework Junit PrimeFaces Framework MySQL V.5 Framework Junit Servicio WEB SOA NetBeans IDE Java EE

Especificación de Requerimientos PACIENTES Para la gestión de usuarios que dispone el sistema, se llevara a cabo un proceso que abarca desde la creación de nuevos usuarios hasta la distribución de permisos a las diferentes secciones del sistema. Incluye eliminar, modificar y buscar a cada uno de los usuarios. CITAS MÉDICAS La administración de las citas médicas dentro de la agenda del Doctor Wladimir Herrera conlleva un proceso que inicia desde que se solicita una reserva hasta que se otorga la misma. Incluye la cancelación, modificación y anulación de la cita.

Especificación de Requerimientos HISTORIAS CLÍNICAS Para la administración de las Historias clínicas, el doctor con cada paciente nuevo creará una historia clínica, posteriormente se incluirán las opciones de modificación y búsqueda de esta información. Códigos CIE10 y VADEMECUM Para utilizar los códigos CIE10 Y VADEMECUM, dicha información pasara por un proceso de digitalización, para posteriormente ser utilizados dentro de la emisión de recetas, diagnósticos médicos y otros documentos propios del doctor.

Especificación de Requerimientos Diagnósticos y Recetas Para la emisión de diagnósticos y recetas médicas, el doctor establece un proceso que abarca : La creación de nuevas historias clínicas. Búsqueda de información de pacientes (Historia Clínica). Manejo de códigos de CIE10 y VADEMECUM. Redacción de diagnósticos médicos De esta manera el proceso concluye con la entrega de la receta al paciente. Curvas de Crecimiento Dentro del diseño y análisis de la curva de crecimiento; el doctor en base a parámetros propios del análisis clínicos, graficara una curva de crecimiento para monitorear el estado evolutivo de sus pacientes.

Gestión de usuarios al sistema Modulos Gestión de usuarios al sistema Reservas médicas Historias clínicas- CIE1, VADEMECUM Diagnósticos y Recetas Curvas de Crecimiento Información de la clínica

Implementación de la Metodología Con SCRUM se pudo identificar: Product Backlog. (Historias de usuario) Sprint Backlog.(Tablas de seguimiento de tareas) Incremento.

Implementación de la Metodología Con SCRUM se pudo identificar: Los cerdos Product Owner. Scrum Master. Equipo de Desarrollo. Las gallinas Usuarios. Stake Holders. Managers.

Implementación de la Metodología

Diagrama Físico

TDD Pruebas Comparación TDD vs Pruebas Unitarias: TDD Aceptación Sistema Unitarias Integración PARÁMETROS TDD PRUEBAS UNITARIAS Propósito TDD se utiliza para conducir el diseño de una aplicación. El propósito de una prueba unitaria es la confianza del desarrollador sobre una parte en particular de su aplicación, comportándose de la manera que espera.

PRUEBAS DE INTEGRACIÓN Comparación TDD vs Pruebas de Integración: TDD Aceptación Sistema Unitarias Integración PARÁMETROS TDD PRUEBAS DE INTEGRACIÓN Propósito TDD se utiliza para expresar qué código debe diseñarse antes de escribirlo. Se utiliza para verificar que una aplicación se comporta en la forma en que un cliente espera.

Ejecución del Sistema Administradores del sistema

Ejecución del Sistema Administración de pacientes

Ejecución del Sistema Antecedentes Médicos

Ejecución del Sistema Curva de crecimiento

Ejecución del Sistema Agenda Electrónica

Ejecución del Sistema Horarios de atención

Ejecución del Sistema Reporte

Conclusiones Después del estudio de la técnica del desarrollo dirigido por pruebas conjuntamente con el framework JUnit, se ha podido determinar que la técnica no simplemente abarca el testing de la aplicación, sino que conduce el diseño de la misma, mejorando el paradigma de desarrollo del software, obteniendo un código de calidad.   Después de realizar el estudio de las pruebas unitarias, pruebas de integración y TDD, se realizó una comparación visualizada en las tablas N° 3.2 y N° 3.3, donde se determinó que TDD es similar tanto a las pruebas unitarias como a las pruebas de integración, pero no es lo mismo, ya que TDD expresa lo que el código debe hacer antes de que realmente este se escriba en la aplicación.

Conclusiones TDD puede ser utilizado para las pruebas de regresión. Se puede utilizar TDD para determinar inmediatamente si un cambio altero la funcionalidad de la aplicación. Por lo tanto a diferencia de las pruebas unitarias, TDD no prueba necesariamente una parte de código de forma aislada, sino que cubre una funcionalidad consecutiva, un desarrollo futuro en el código de la aplicación. TDD funciona como mini-pruebas de aceptación, pero no cubre el testing de todo el proyecto. Sino que TDD expresa la funcionalidad que necesita ser implementada a continuación, por lo tanto TDD integra las pruebas que Junit proporciona para evaluar el sistema de forma modular. La metodología Scrum aplica técnicas ágiles como el Desarrollo Dirigido por Pruebas (TDD), Modelado Ágil y Gestión de Cambios Ágil, por lo que se ajustó de manera consistente en el desarrollo del caso práctico, permitiendo tener un control y una distribución adecuada de las actividades de trabajo y a la vez centrarse en actividades prioritarias, logrando una aplicación distribuida y sencilla.

Recomendaciones Trabajar con TDD dirige el paradigma orientado a objetos a buscar un test que fuerce al SUT a tener una estructura o una API que dé buenos resultados en términos de legibilidad y reusabilidad. Así, se anticipa futuros casos de uso, futuros problemas y se cuidara el diseño de la API test tras test, aplicando buenas prácticas de diseño. Se recomienda el uso de TDD como una técnica de diseño sobre todo tipo de proyectos. Cuando se usa TDD se recomienda crear las pruebas antes de la implementación del sistema, ya que si se realizan las mismas después del desarrollo se está orientando el diseño hacia las practicas tradicional, por lo que se pierde las principales características de implementar TDD.

Recomendaciones Cuando enfocamos TDD hacia mini-pruebas de aceptación es importante dividir el proyecto por módulos de funcionalidad, de esta forma se cubre el testing de todo el sistema, y se evita que este proceso se torne complejo y sea necesaria la aplicación de herramientas adicionales de pruebas como Test Studio y WebInject. La primera vez que se usa Scrum, es complicado diseñar código de calidad dentro del sistema, porque no se conoce las limitaciones y fortalezas que ofrece la metodología. En este caso Scrum, cuenta con los Sprints. Un sprint es una iteración de actividades que se desarrolla con el grupo de trabajo, bajo los lineamientos de un conjunto de requerimientos. De esta forma se escribe una serie de pruebas para dichos requisitos y, una vez diseñados, se desarrolla el código más sencillo que haga que las pruebas pasen. De esta manera se asegura que se escribe el código necesario para cubrir dichos requisitos, a la vez que se cumplen los criterios de aceptación del cliente.

Ingeniería de Sistemas e Informática Gracias por la atención prestada