Sei sulla pagina 1di 10

! !

! EXPERIENCIAS EN EL ASEGURAMIENTO DE LA FIABILIDAD DEL SOFTWARE EN EL PROYECTO DE IDENTIFICACIN, INMIGRACIN Y EXTRANJERA DE LA REPBLICA DE CUBA

Geidis Snchez Michel Ernesto Kindeln Monier Universidad de las Ciencias Informticas

Resumen En la investigacin se realiza un anlisis conceptual de la fiabilidad, que sustenta como objetivo fundamental exponer las principales experiencias del aseguramiento de la fiabilidad del software en el proyecto de Identificacin, Inmigracin y Extranjera de la Repblica de Cuba. Se evidencia que las tcnicas ms usadas son las revisiones, auditoras y pruebas, que posibilitan ir comprobando la correspondencia entre lo que se desarrolla y los requisitos del software pautados por el cliente. Palabras clave: calidad, confiabilidad, software"! Abstract The research makes a conceptual analysis of reliability, which supports the fundamental objective to outline the main experiences of assurance of the reliability of software in the project Identification, Immigration and Nationality of the Republic of Cuba. It is evident that the techniques used are the reviews, audits and tests that allow to going checking the correspondence between what is developed and the software requirements ruled by the customer. Keywords: quality, reliability, software"!

! !

1. Introduccin Los estudios de fiabilidad tradicionales han estado orientados al hardware. La mayor parte de los modelos o tcnicas se refieren bsicamente a los elementos de hardware. Sin embargo, en los sistemas y equipos modernos el software desempea un papel fundamental unido a la labor humana tanto en la utilizacin como en el mantenimiento de los mismos. Desde este punto de vista se podra estar hablando de tres tipos de fiabilidad: fiabilidad de hardware, fiabilidad humana y la fiabilidad del software; siendo esta ltima la de inters en esta investigacin. Ian Sommerville en su libro Ingeniera del Software del 2005 define la fiabilidad del software como la probabilidad de que, durante un periodo de tiempo, el sistema funcione correctamente tal y como espera el usuario. La probabilidad de operacin libre de fallos de un programa de ordenador durante un tiempo especificado y en un entorno especfico. Adems de las definiciones anteriores, existen muchas otras, pero todas ellas relacionan un conjunto de caractersticas que determinan como elementos fundamentales de la fiabilidad del software la probabilidad de que el software funcione como se espera por el usuario, bajo determinadas condiciones en un periodo de tiempo. Segn el estndar ISO/IEC 9126 que define las caractersticas y sub-caractersticas de calidad de un producto de software al hablar de fiabilidad como una de las caractersticas principales de deben de tener en cuenta las siguientes sub-caractersticas: Madurez: capacidad del software para evitar fallos como resultados de defectos en el software. Tolerancia a fallos: capacidad del software para mantener un nivel especificado de rendimiento en casos de fallos del software. Capacidad de recuperacin: capacidad para restablecer el nivel de rendimiento y de recuperacin de datos afectados directamente en el caso de un fallo. Adherencia a normas: capacidad del software relacionada con el grado de conformidad con estndares, convenciones o regulaciones existentes en leyes o prescripciones similares. Para determinar las causas que provocan fallos en un software es necesario analizar todo el ciclo de vida de desarrollo del software pues estas pueden ser provocadas en etapas tempranas del desarrollo. Algunas de las causas pueden ser las siguientes: Especificaciones errneas: debido a errores en el diseo del software. Errores de implementacin: estn dados por no seguir correctamente las especificaciones, no codificar correctamente el software, seleccionar los componentes incorrectamente, etc.

! !

Perturbaciones externas: dentro de este concepto se engloban las variaciones en las condiciones ambientales, los errores de operacin, amenazas humanas. Existen diversas tcnicas orientadas a aumentar la fiabilidad de los productos de software, clasificadas en tres grupos. Prevencin de fallos: con el objetivo de prevenir la introduccin de errores durante el desarrollo de software. Estas tcnicas son orientadas al proceso. Ejemplos de las mismas se encuentran: Reutilizacin de componentes fiables: la aplicacin apropiada de la reutilizacin en un proyecto de software conduce, indiscutiblemente, a una reduccin significativa de los valores de costo, tiempo y esfuerzo requerido para desarrollar un producto de software. Otros beneficios importantes son el incremento de la calidad del software producido, el aumento de la productividad de los grupos de desarrollo y la reduccin del riesgo global del proyecto, por lo que garantiza un software ms fiable a partir de utilizar componentes ya probados en funcin de la produccin de un nuevo producto. Metodologas de diseo rigurosas: una correcta seleccin y aplicacin de la metodologa de software permitir desarrollar productos de alta calidad a travs de sus mtodos, tcnicas de diseo y codificacin, garantizando un bajo costo de desarrollo y mantenimiento. Lenguajes de desarrollos adecuados: el proceso de codificacin de un sistema se hace a travs de los lenguajes de programacin. Los lenguajes de programacin son muy diversos y, consecuentemente, pueden presentar caractersticas muy variadas. Producto de esto mismo es que hay lenguajes que se pueden acomodar mejor a una solucin, dependiendo de la naturaleza del problema. Se podra afirmar que la codificacin es, meramente, el paso en el que las labores anteriores de ingeniera, en especial el diseo, se plasman en un lenguaje que entiende la mquina. Dado lo anterior, el lenguaje de programacin que se usa para la codificacin debe ser capaz de aplicar directamente el diseo detallado. Esto hace que el paso del diseo al cdigo y los cambios que deban hacerse, producto de las pruebas o el mantenimiento, sean ms fciles, trayendo como resultado un producto ms fiable. Deteccin de fallos: con el objetivo de detectar fallos una vez que el cdigo ha sido desarrollado. Estas tcnicas son orientadas al producto. Ejemplos de las mismas se encuentran: Inspeccin de diseo o programas: consiste en detectar errores finos en los requerimientos, el diseo o el cdigo. La revisin es conducida por una lista de verificacin de los posibles errores. Revisiones de calidad: llevar a cabo un anlisis tcnico de los componentes del producto o documentacin para encontrar diferencias entre las especificaciones y el diseo del componente, cdigo y documentacin, y para asegurar que se sigan los estndares de calidad definidos.

! !

Pruebas de calidad: tienen como objetivo disear y ejecutar juegos de pruebas que, de forma sistemtica, detecten diferentes tipos de errores en el software en el menor tiempo y esfuerzo posible. Los errores detectados pueden ser corregidos, permitiendo que los productos que se entreguen a los usuarios tengan una fiabilidad aceptable. Tolerancia a fallos: con el objetivo de proporcionar una respuesta controlada ante fallos no detectados: Estas tcnicas son orientadas al producto. Ejemplos de las mismas se encuentran: Programacin en N versiones: se desarrollan N programas independientes con la misma especificacin. Cada versin incluye un conjunto de pruebas de aceptacin del programa. Durante la ejecucin, una lgica de seleccin comprueba secuencialmente los N programas, facilitando el paso a la versin que no da fallos. Si N es el nmero de versiones, el sistema es tolerante a N-1 fallos. Bloque de recuperacin: es una tcnica integrada en el lenguaje de programacin. Un bloque de recuperacin es un bloque de programa con dos caractersticas especiales: la entrada del bloque es un punto de recuperacin y a la salida del bloque se realiza una prueba de aceptacin. La prueba de aceptacin sirve para comprobar si la ejecucin del bloque, tambin llamado mdulo primario, ha terminado en un estado correcto. En caso contrario se vuelve al estado inicial en el punto de recuperacin y ejecuta un mdulo alternativo del mismo bloque. Si vuelve a fallar se siguen intentando alternativas. Cuando no quedan ms, se intenta la recuperacin a un nivel ms alto. Los enfoques estudiados engloban muchos aspectos sobre los tcnicas necesarios para la garantizar la fiabilidad de los productos de software, pero tienen tambin ciertas deficiencias alrededor de aspectos importantes que contribuyen a la obtencin de un producto de calidad. Entre estas limitantes es posible mencionar: No se tienen en cuenta consideraciones de si el producto de software es de mediano o gran alcance, o si por las caractersticas intrnsecas de las mismas dichas tcnicas no puedan emplearse. Algunas de las tcnicas como la Programacin en N versiones requieren un alto costo para su implementacin, por lo que debe quedar claro si vale la pena apostar ms por garantizar la fiabilidad de un sistema determinado a pesar de tener un costo elevado. Tras a ver realizado un acercamiento terico-conceptual sobre la fiabilidad, se plantea el siguiente objetivo general de la investigacin: exponer las principales experiencias del aseguramiento de la fiabilidad del software en el proyecto de Identificacin, Inmigracin y Extranjera de la Repblica de Cuba.

! !

2. Anlisis preliminar El proyecto de Identificacin, Inmigracin y Extranjera de la Repblica de Cuba consiste en desarrollar e implantar dos nuevos sistemas integrales automatizados uno para la Direccin de Inmigracin y Extranjera (DIE) y el otro para la Direccin de Identificacin y Registro (DIR), creado a partir del rediseo de los procesos identificados, que garanticen la integracin de las mltiples bases de datos y sistemas existentes en la actualidad y que se ajusten a las legislaciones y normativas tanto nacional como extranjeras suscritas por el pas. Debido a la importancia que tendrn estos sistemas para la seguridad de los ciudadanos cubanos se hace necesario una alta disponibilidad de los mismos, teniendo en cuenta este elemento, la fiabilidad del software ha sido uno de los atributos de calidad que constantemente se ha tratado de asegurar en el proyecto. Para llevar adelante esta tarea el proyecto cuenta con un total de 78 personas pertenecientes a la Universidad de las Ciencias Informticas y el apoyo de especialistas funcionales del Ministerio del Interior, para un mejor entendimiento de los Recursos Humanos se muestra la tabla1.
Tabla 1.Recursos humanos

Ao Tercero Cuarto Quinto Profesores Total

Total 4 28 22 24 78

De la tabla anterior se puede deducir que la mayor fuerza de trabajo con que cuenta el proyecto es de estudiantes, que no se encuentran 100% dedicados a la produccin debido a sus compromisos docentes. Realizando un anlisis a travs de la matriz DAFO se puede realizar una mejor caracterizacin de las condiciones del proyecto. Fortalezas Motivacin por parte del equipo de desarrollo. Existe un ambiente colaborativo entre el equipo de desarrollo. Lideres con experiencias en el desarrollo de proyectos de software. Capacidad del equipo de desarrollo de asimilar nuevos conocimientos. Antecedentes de productos similares en el Centro de Identificacin y Seguridad Digital al cual pertenece el proyecto.

! !

Debilidades Poca disponibilidad de tiempo por parte del equipo de trabajo para el desarrollo de la solucin (debido a que la mayor parte del equipo son estudiantes que no estn vinculados 100% a la produccin). Falta de conocimiento del equipo de desarrollo en las tecnologas a utilizar. Existen gran cantidad de estudiantes de tercero y cuarto ao con poco o ninguna experiencia en proyectos productivos. Oportunidades El cliente tiene documentado las regulaciones, leyes que rigen su actividad. El cliente cuenta con especialistas funcionales en cada una de las reas. Posibilidad de desarrollo de nuevos proyectos. Amenazas Dificultad para lograr la integracin con otras entendidas que son necesarias para lograr la solucin. Ejemplo: DATYS, Bancos, CUJAE. Demoras en la revisin y aprobacin de la documentacin por parte del cliente. Durante el desarrollo de la solucin se aprueben nuevas leyes, medidas o se realicen cambios organizacionales que afecten los requerimientos. Existe un sistema que realiza un conjunto de funcionalidades que informatiza una parte de los procesos. 3. Acciones tomadas para asegurar la fiabilidad del software El primer paso fue conformar la estructura organizativa para asegurar la calidad como se ilustra en la figura 1.

!
Figura 1. Estructura organizativa

Un segundo paso fue definir el Plan de Aseguramiento de la Calidad donde se establecieron como objetivos de calidad:

! !

Velar por la calidad del trabajo, mediante la revisin sistemtica en el proyecto, a lo largo de su ciclo de vida. Realizar el trabajo en el proyecto sobre la base de los diferentes estndares, modelos y normas internacionales existentes, as como la metodologa MSF for CMMI seleccionada para desarrollar el proyecto. Hacer cumplir los lineamientos de calidad establecidos por Calisoft para los proyectos productivos de la Universidad de las Ciencias Informticas. Evaluar objetivamente los procesos, los productos de trabajo y los servicios contra la descripcin de procesos, estndares y procedimientos aplicables. Verificacin y validacin del software a lo largo de su ciclo de vida, incluyendo pruebas y procesos de revisin. Garantizar el funcionamiento correcto del software antes y durante la entrega al usuario final. Cuidar de que el producto de software cumpla con los requisitos establecidos por el cliente. Identificar y documentar no conformidades detectadas durante las revisiones. Mantener informados, de las no conformidades detectadas durante las revisiones, a los diferentes miembros del proyecto relacionados con el componente sometido a revisin. Mantener informados a los miembros del proyecto de las actividades y mtodos planificados y utilizados por el grupo de calidad, para el aseguramiento de la calidad del producto. Lograr que el equipo de calidad cuente con el personal capacitado con el conocimiento y las habilidades necesarias para realizar las tareas y actividades encaminadas mantener el control de la calidad en el proyecto. Definir el conjunto de mtricas a partir de las cuales los miembros del equipo y el cliente, pueden obtener informacin del estado en el que se encuentra el producto software y la documentacin asociada al mismo. Un tercer paso fue conformar el conjunto de tareas y responsabilidades a ejecutar en funcin de aplicar las tcnicas de prevencin necesarias para garantizar la fiabilidad del software. Dentro de las tareas que se definieron se encuentran: Revisiones internas: finalizadas cada fase se realizarn revisiones de los artefactos planificados en la lnea base del proyecto por los Administradores de Calidad de cada rea (DIE y DIR) y el Administrador General del proyecto. Auditoras externas: finalizada cada fase se realizarn auditoras por la Asesora de Calidad del Centro de Identificacin y Seguridad Digital para evaluar los artefactos planificados en la lnea base del proyecto.

! !

Pruebas: se planificaron la realizacin de pruebas unitarias por cada funcionalidad implementada y pruebas de integracin entre los mdulos desarrollados en una primera iteracin. Para llevar acabo la resolucin de problemas y activacin de correccin se defini que los problemas identificados durante las revisiones internas sern informados por el Administrador de Calidad General del Proyecto al Jefe de Proyecto, Jefe de Desarrollo y al resto de los roles involucrados en resolver dicha no conformidad. Se realizar un seguimiento a la solucin de las no conformidades detectadas fijando una fecha lmite donde deben quedar resultas y se verifique dicho cumplimiento. Los problemas identificados en las auditoras externas realizadas por la Asesora de Calidad del Centro de Identificacin y Seguridad Digital sern informados al Jefe de Proyecto y al Administrador de Calidad General del Proyecto. Se realizar un seguimiento a la solucin de las no conformidades detectadas fijando una fecha limite donde deben quedar resultas y se verifique dicho cumplimiento. Una vez informada dichas no conformidades el Administrador de Calidad General del Proyecto debe informar dichas no conformidades a los responsables encargados de dar respuestas a las mismas. Un cuarto paso fue definir un conjunto de mtricas que faciliten determinar la calidad del proceso y del producto de software. Donde se determin utilizar para evaluar la calidad del producto las mtricas definidas por la ISO/IEC 9126-2. Se confeccion un Plan de Pruebas donde se refleja el entorno de desarrollo donde sern ejecutadas las mismas. Aprovechando las potencialidades tecnolgicas las pruebas se desarrollaran en un entorno de Microsoft utilizando herramientas de pruebas que contiene el entorno del MS Visual Team System. 4. Experiencias puestas en prctica Todas las acciones tomadas en el proyecto estn encaminadas a mejorar tanto la calidad del proceso como la del producto. Es importante aclarar que estas acciones han sido desarrolladas en la primera iteracin del proyecto permitiendo el refinamiento de los procesos existentes y la toma decisiones con un enfoque de mejora continua que permita limar defectos y limitantes para posteriores iteraciones. Por cada fase de desarrollo fueron establecidos hitos cuyo cumplimiento fue evaluado a travs de la ejecucin de tareas de aseguramiento de la calidad. Los resultados obtenidos fueron analizados y los errores detectados fueron objeto de seguimiento a travs del Registro de No conformidades, documento que se lleva en el proyecto con el objetivo del control y seguimiento a las no conformidades.

! !

Para un mejor entendimiento de las acciones realizadas se dividirn por cada una de las fases establecidas en la metodologa MSF for CMMI hasta el estado actual de desarrollo. Fase de inicio Durante esta fase las actividades para garantizar la fiabilidad del software estuvieron encaminadas fundamentalmente a la revisin, correccin y aprobacin de los dos Proyecto Tcnico (DIR y DIR) tanto por la Universidad de las Ciencias Informticas (UCI) como por el cliente, hay que tener en cuenta que este es un paso fundamental porque es donde se define el alcance del proyecto, contando con la recopilacin de informacin necesaria que influir directamente en la solucin a desarrollar. Ambos Proyectos Tcnicos fueron sometidos a revisin por la comisin revisora de la Direccin General de Produccin de la UCI, hasta su aprobacin final de cara al cliente. Fase de planificacin En esta fase el hito fundamental radica en la aprobacin de los requisitos funcionales y no funcionales que ambos sistemas de las reas (DIR y DIE) deben cumplir .Para lograr esta tarea se realiz un Plan de administracin de requisitos con el objetivo de gestionar y control la trazabilidad de los mismos. Como parte de las acciones encaminadas a garantizar la calidad de los mismos se aplicaron diferentes tcnicas como: la validacin mediante prototipos de interfaz con el cliente, revisiones mediante listas de chequeo por parte de los Administradores de Calidad de ambos sistemas y el Administrador General del Proyecto y finalmente la liberacin de los mismos por Calisoft-Entidad Certificadora de la Calidad en la Universidad de las Ciencias Informticas-. Fase de desarrollo En esta fase el hito fundamental es la obtencin de las versiones funcionales del sistema. Aunque en la misma se tuvo en cuenta acciones de revisiones de los elementos de diseo necesarios para alcanzar la solucin. Esta revisin se realiz en forma de tormenta de ideas apoyadas en listas de chequeos y revisiones en pares, donde participaron el Jefe de Proyecto, Arquitecto, Analistas y Administradores de Calidad. Otra actividad de gran importancia fue las validaciones al cdigo fuente respaldadas por las pruebas unitarias realizadas utilizando el Visual Team System y haciendo uso de listas de chequeo se corrobor la correspondencia del cdigo con los estndares de codificacin pautados en el proyecto. Las facilidades del entorno de desarrollo posibilitaron dar un mejor seguimiento y control a los errores detectados en las tres iteraciones de pruebas funcionales realizadas a ambos sistemas. Para lograr las mismas se defini por el proyecto los diseos de casos de pruebas basados en requisitos.

! !

5. Conclusiones Con la culminacin de esta investigacin se pudo contactar un acercamiento terico a la fiabilidad del software, reflejndose que las tcnicas para asegurar dicho elemento se dividen en tres etapas fundamentales: prevencin de fallos, deteccin de fallos y tolerancia a fallos. Se realiz un anlisis de las principales acciones desarrolladas en el proyecto de Identificacin, Inmigracin y Extranjera con vista del aseguramiento de la fiabilidad del software, dividiendo dichas acciones en las distintas fases propuestas en la metodologa MSF for CMMI la cual rige el desarrollo de dicho proyecto. Dentro de las principales acciones se puedo contactar revisiones mediante listas de chequeos, revisiones en pares, validaciones de requisitos utilizando prototipos de interfaz, auditoras, revisiones externas y pruebas a la primera versin funcional de ambos sistemas correspondientes a las reas DIR y DIE. Se puede plasmar como resultado satisfactorio de este periodo de trabajo que el proyecto fue auditado por Calisoft y que a pesar de ser un proyecto que se encontraba en sus inicios se demostr la organizacin, planificacin y control, motivos que reflejaron que solo fueron detectadas cinco no conformidades ninguna con un nivel crtico. Obteniendo una evaluacin satisfactoria, que es la mxima categora que otorga dicha entidad en este tipo de evaluaciones. Referencias Sommerville, Ian., Ingeniera del software. Madrid: Pearson Educacin S.A, 2005. Sptima edicin. Cabrera, Eduardo Valido., " Software reliability methods." [En lnea] 2006. [Citado el: 15 de Septiembre de 2010.] http://lucio.ls.fi.upm.es/doctorado/Trabajos20052006/Valido_English.pdf. Areba, Jess Barranco., Metodologa del anlisis estructurado de sistemas. s.l.: Universidad Pontifica de Comillas, 2001. Morales, Roberto Cortes., Introduccin al anlisis de sistema y la Ingeniera del Software. . s.l.: EUNED, 1998. lvarez, Cristina Gmez., Diseo de sistemas software en UML. . s.l.: Ediciones UPC , 2003. Sol, Antonio Creus., Fiabilidad y seguridad: su aplicacin en procesos industriales. . Barcelona: Marcombo, 2005. Lpez, Francisco Javier Moliner., Informticos Generalitat Valenciana Grupos a Y B. Temario Bloque Especfico Volumen i. Valencia: MAD-Eduforma, 2005.

Potrebbero piacerti anche