SciELO - Scientific Electronic Library Online

 
 número1Modelo de Sistemas Multi-Agentes para Percibir, Evaluar y Alertar Ex-Antes los Accesos no Autorizados a Repositorios de Base de DatosInclusión de la banda Ka en el proximo satelite boliviano índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Articulo

Indicadores

    Links relacionados

    • No hay articulos citadosCitado por SciELO
    • No hay articulos similaresSimilares en SciELO

    Bookmark

    Revista del Postgrado en Informática

    versión impresa ISSN 3333-7777

    Revista PGI  n.1 La Paz nov. 2014

     

    ARTICULO ORIGINAL

     

    Entorno Metodológico Formal de Ingenieria de Requerimientos para Mejorar la Calidad de los
    Sistemas de Informacion

     

     

    Germán Huanca Ticona
    Postgrado en Informática Universidad Mayor de San Andrés - UMSA
    La Paz, Bolivia
    germanh4@hotmail.com

     

     


    Resumen. En este articulo se abordo de forma general la problemática relacionada con la ingeniería de requisitos, y más específicamente con la ingeniería de requisitos de sistemas de información. Como resultado de la investigación realizada se obtiene un proceso formal con etapas que permite analizar y posteriormente sintetizar estos sistemas en fusión a los requerimientos que estos deben cumplir.

    Keywords— analisis; formal; proceso; requerimiento; síntesis.


     

     

    V. INTRODUCCION

    Se inicio el tratamiento del proyecto, con la revisión de herramientas que fueron proporcionados en el área de los métodos formales para el desarrollo y verificación de sistemas de software, notándose que, aunque se han realizado importantes avances, aun no se ha producido una transferencia efectiva de dichos resultados a la industria del software. Por otro lado muchos métodos formales han sido desarrollados como una alternativa a las prácticas de Ingeniería de Software actuales.

    A partir de la revisión que se hizo se pudo evidenciar varias herramientas formales que apoyan al desarrollo de sistemas de software, tales como UniForM Workbench, AutoFocus y Concurrency Factory. A partir de estas experiencias se empezó a plantear aspectos, que nos permitan fundamentar las especificaciones formales necesarias para la aplicación de estos métodos y sean escritas en un lenguaje accesible a diseñadores y programadores. Es por ello que consideramos que la utilización de un lenguaje gráfico facilitará la integración de los métodos formales a las prácticas industriales del software.

    En una segunda etapa en el desarrollo del proyecto, se centro en determinar un punto de análisis y verificación de los sistemas de software, notando que ese punto viene ha ser la arquitectura y los componentes de un sistema de software. En vista que los sistemas de software han tenido arquitectura desde que el primer programa fue dividido en módulos, y los programadores han sido responsables de establecer las interacciones entre dichos módulos y lograr así determinadas propiedades globales para estos sistemas.

     

    VI. ANTECEDENTES

    La "crisis del software" muestra la lenta evolución que ha tenido la industria del software que data más de 40 años. En la OTAM en los años de 1967 y 1968 se hicieron dos reuniones con el fin de resolver este problema en donde difícilmente resulta ponerse de acuerdo y optar por un estándar completamente definido.

    Los avances en el desarrollo de software han revolucionado muchas actividades de la vida diaria. Desafortunadamente, la mayoría de los sistemas existentes en nuestros días presentan fallas en alguna etapa de su uso y no entregan soluciones adecuadas a los problemas para los cuales fueron creados. Esto sucede, principalmente, porque los requerimientos del usuario son mal entendidos o cambian durante el desarrollo del software. Además, tanto el mantenimiento como reutilizar y modificar algunas partes del software son tareas complicadas y tediosas, aún más complicadas son cuando no se utiliza adecuadamente alguna metodología de desarrollo.

    Por otro lado, las fases de captura y análisis de requerimientos de usuario han recibido en general poca atención por parte de las metodologías de desarrollo de software, que aparentemente creemos ocasiona problemas como:

    -La incapacidad de entregar el software que el cliente requiere y en el tiempo establecido. Este problema se presenta por lo general cuando los requerimientos de un sistema de información en el proceso de su desarrollo cambian debido a que estos requisitos no fueron comprendidos por las personas involucradas

    -Al presentarse el problema anterior este acarrea en el costo parcial o total del desarrollo del software por lo que existe

    incapacidad de entrega del mismo dentro los presupuestos establecidos y sin sobregiros.

    -Dedicación de muchos recursos al mantenimiento del producto software o en su defecto acortan el tiempo de vida del mismo.

    -Fracaso en el desarrollo de proyectos software, ocasionando con ello mala inversión económica y de tiempo.

    De todo lo expuesto, se plantea la pregunta:

    ¿Cómo coadyuvar en las primeras etapas, del desarrollo de sistemas de información, para garantizar el cumplimiento de los requerimientos mínimos de los usuarios?

    Objetivo

    Desarrollar un modelo formal de procesos iterativos como apoyo en la ingeniería de requerimientos, donde se identifican tres actividades principales: elicitación, observación y certificación, permitiendo con ello mejorar la calidad de los productos software.

    Hipótesis

    La incorporación de un modelo formal de procesos iterativos en la ingeniería de requerimientos permitirá clarificar30 lo que espera un usuario/cliente de un producto software y con ello se mejorará la calidad de los mismos.

     

    VII. MÉTODOS FORMALES

    Una de las características deseables de todo sistema es la confiabilidad, definida como la habilidad de un programa para realizar una función requerida bajo condiciones establecidas por un periodo de tiempo establecido. Con el fin de mejorar la confiabilidad de los sistemas producidos, se han desarrollado métodos formales que se aplican en cada paso del proceso de desarrollo a fin de asegurar la correcta construcción del software. Estas técnicas de verificación formal revisten especial interés, pues permiten demostrar con certeza que el sistema desarrollado realiza las funciones requeridas, es decir, cumple con ciertas especificaciones.

    Por otro lado, la verificación formal de sistemas de software es una disciplina relativamente antigua en las ciencias de la computación; su antecedente mas destacado se remonta a los trabajos de Floyd, Hoare y Dijkstra sobre verificación de programas a fines de los años 60. Si bien originalmente los métodos formales fueron aplicados solamente a la verificación a posteriori del desarrollo del sistema, debido a que los errores del software son más baratos de reparar mientras más temprana sea su detección en el ciclo de vida del software y a que algunos estudios muestran que los errores de seguridad se presentan más frecuentemente asociados a análisis inadecuados de los requerimientos, es que actualmente estos métodos se han generalizado a todas las etapas del desarrollo de sistemas de software.

    El enfoque general de los métodos formales es abstraer los sistemas en modelos matemáticos, establecer la especificación del sistema deseado en términos de propiedades matemáticas que se deben cumplir y luego demostrar formalmente que los modelos producidos verifican dichas propiedades.

     

    VIII. Lenguajes basados en especificaciones

    ALGEBRAICAS.

    El álgebra relacional es un formalismo con un mayor poder expresivo que las lógicas modales, pero que puede ser utilizado para darle una semántica a estas y otras lógicas no clásicas. De esta manera, se puede crear un marco relacional uniforme en el cual aplicar, y aún mejorar, las técnicas desarrolladas originalmente en dichas lógicas particularmente útiles son las álgebras Fork, desarrolladas por Baum, Frias, Haeberer y Veloso, pues poseen la característica de ser finitamente axiomatizables y representables.

    El objetivo de diseñar un sistema de software es dominar la complejidad de dicho sistema, por lo que, independientemente del paradigma utilizado, el proceso de diseño involucra desarrollar una visión global del sistema a ser desarrollado, establecer su estructura, descomponiéndolo en sub componentes manejables y estableciendo relaciones e interconexiones entre esos componentes, desarrollar representaciones concretas de los datos y especificar aspectos algorítmicos de los procesos.

    La estructura es una característica fundamental del software, que permite la descomposición de un sistema en subsistemas más simples, dividiendo la complejidad total del sistema en unidades mas pequeñas y manejables. Las interrelaciones definidas entre dichos subsistemas dan forma a la estructura del sistema. Una estructura modular de este tipo clarifica el diseño y permite realizar abstracción sobre ciertos detalles del sistema.

    De esta manera a través de la forma de abstraer a los sistemas de información, considerado en este trabajo permite ver como una herramienta intelectual y por medio de ella tratar con conceptos en vez de instancias particulares de esos conceptos. Durante las etapas de definición de requerimientos y de diseño, la abstracción permite separar los aspectos conceptuales del sistema de los detalles de implementación. En particular, durante la etapa de diseño arquitectónico la abstracción permite tratar consideraciones estructurales antes que detalles algorítmicos, reduciendo la complejidad del proceso de diseño.

     

    IX. CONCLUSIONES

    Por lo tanto para el cumplimiento del objetivo, en primer lugar, se considerara a la arquitectura de los sistemas de software para elevar el nivel de abstracción, facilitando la comprensión de los sistemas de software complejos. en segundo lugar, a través de esa abstracción se aumentan las posibilidades de reutilizar tanto la arquitectura como los componentes que aparecen en ella. por último, la notación utilizada tiene una base formal adecuada, es posible analizar la arquitectura del sistema, determinando cuáles son sus propiedades aún antes de construirlo.

    En este sentido, el dominio identificado a través de la arquitectura de un sistema software, asociamos al modelo kripke (modelo que tiene como base y fundamento en la lógica hibrida, denominativo que se da a la fusión entre lógica modal y proposicional) permitiéndonos describir por medio de un conjunto de fórmulas bien formadas las propiedades que se desea que el sistema cumpla.

    Finalmente, a través del algebra relacional al aplicar en el denominado programa de la lógica algebraica, permite traducir los problemas lógicos en cuestiones algebraicas, para luego usar la 'maquinaria' del algebra universal para resolver el problema algebraicamente y trasladar la solución otra vez a la lógica original, de esta forma la verificación del sistema software se hace más efectiva. Complementariamente al trabajo, otro elemento que surge con el modelo planteado para la especificación y verificación de sistemas de información, es que esta se plasma en un documento del sistema software que se trata, el cual de acuerdo a las normas estándares iso/iec, la documentación que surge en cualquier proceso de desarrollo de software, es un factor preponderante para que este cumpla con los requerimientos o especificaciones del mismo.

     

    REFERENCIAS

    Arnedo, J., Cabot, J., Guitart, I. (2010). "Escaneando informática", Editorial UOC. Barcelona.        [ Links ]

    Boehm, B. Bose, P., Horowitz, E. y Lee, M. J. (1994). "Software Requirements as Negotiated Win Conditions". En Proceedings ofthe First International Conference on Requirements Engineering. Disponible en http://sunset.usc.edu/TechRpts/Papers/NGPM-Requirements93.ps.        [ Links ]

    Calero, C. Moraga, A. y Piattini, M. (2010). "Calidad del producto y proceso software", RAMA-EDITORIAL, Madrid.        [ Links ]

    Chang, L. y Lin, T. (2000). "Political Games of Users and MIS Professionals in the Information Systems Development Process". Americas Conference on Information Systems, Long Beach, California        [ Links ]

    Durán, A., Amaya, A. y Toro, M. (1997). "Design of an Automatic Generator of Object-Relational Persistency Mechanisms". En Actas de las II Jornadas de Ingeniería del Software, San Sebastián.        [ Links ]

    García, F. J. (2000). "Modelo de Reutilización Soportado por Estructuras Complejas de Reutilización Denominadas Mecanos". Tesis doctoral, Universidad de Salamanca.        [ Links ]

    INCOSE. (2000). Tools Survey: Requirements Management (RM) Tools. Informe técnico, International Council on Systems Engineering, 2000. Disponible en http://www.incose.org/tools/tooltax.html.        [ Links ]

    ISO/IEC. (1995). " Information Technology-Software Life Cycle Processes". International Standard 12207 : 1995, International Organization for Standarazition.        [ Links ]

    Pressman, R. S. (2010). "Ingeniería de Software", 7ma. Ed., McGraw-Hill Interamericana de España S.L.        [ Links ]

    Somerville, I. (2005). "Ingeniería de Software", 7ma Ed. PEARSON EDUCACION S.A. Madrid.        [ Links ]

    IEEE (2000). IEEE Guide for Software Reviews and Audits. IEEE/ANSI Standard 1028-2000, Institute of Electrical and Electronics Engineers, 2000.        [ Links ]