SciELO - Scientific Electronic Library Online

 
vol.3 issue2Competences for the permanent learningwith the use of TIC author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Article

Indicators

    Related links

    • Have no cited articlesCited by SciELO
    • Have no similar articlesSimilars in SciELO

    Bookmark

    Revista Investigación y Tecnología

    Print version ISSN 2306-0522

    Rev Inv Tec vol.3 no.2 La Paz Dec. 2015

     

    ARTÍCULOS

     

    Método de manejo de discrepancias en la ingeniería de requisitos

     

    Management method discrepancies in requirements engineering

     

     

    Germán Huanca
    Instituto de Investigaciones en Informática
    Carrera de Informática
    Facultad de Ciencias Puras y Naturales
    Universidad Mayor de San Andrés
    La Paz - Bolivia
    Autor de correspondencia: germanh_4@hotmail.com

    Presentado: La Paz, 9 de octubre de 2015Aceptado: La Paz, 27 de noviembre de 2015

     

     


    Resumen

    La aplicación de buenas prácticas en la gestión de requisitos de software es una condición fundamental para lograr productos de calidad. Por lo tanto, es importante que las compañías de desarrollo de software mantengan una investigación constante alrededor de nuevas técnicas que mejoren actividades de requisitos tales como levantamiento, especificación y modelado. En este trabajo se presenta un estudio del enfoque que se centra en el manejo de discrepancias en la ingeniería de requisitos que podrían ayudar a resolver problemas que enfrentan las compañías de software durante las etapas tempranas de desarrollo. Los resultados obtenidos permiten detectar las oportunidades que el enfoque en el manejo de discrepancias ofrece para mejorar el proceso de los requisitos.

    Palabras clave: Discrepancias; especificación; ingeniería; modelado; requisitos.


    Abstract

    The application of best practices in the management of software requirements is a fundamental condition to achieve quality producís. Therefore, it is important for software development companies maintain a constant research around new techniques to improve activities such as lifting requirements, specification and modeling. This paper presents a study ofthe approach that focuses on handling discrepancies in requirements engineering that could help to solve problems faced by software companies during the early stages of development. The results allow us to detect opportunities that focus on the management of discrepancies offers to improve the requirements process.

    Keywords: Discrepancies; specification; engineering; modeling; requirements.


     

     

    Introducción

    Los objetivos planteados en el proyecto fueron derivados a partir del problema de mantenimiento de la coherencia entre múltiples perspectivas, es decir el problema de dirigir una serie de perspectivas discrepantes hacia un punto convergente, el cual para cumplir con estos objetivos, el problema, se descompuso en una serie de sub problemas como la identificación de las discrepancias entre perspectivas, la clasificación de las discrepancias, generación de soluciones a las mismas, elección de la solución más apropiada, aplicación de la solución elegida y monitorización de las consecuencias de la resolución. A partir de esa descomposición se planteó un proceso que permita inicialmente en la estructuración u organización interna de cada perspectiva de forma que dicha estructuración conduzca de forma natural a una clasificación de las discrepancias y posteriormente a la resolución de dichas discrepancias. La organización elegida para estructurar internamente cada perspectiva se basa en el modelo KSR; es decir en cada perspectiva se tendrá un conocimiento del entorno K junto con una serie de requisitos R y junto con una especificación S, entendiendo por especificación una descripción de interfaz, que defina la conexión del sistema a su entorno. Esto marca una diferencia con los trabajos hasta ahora publicados, pues normalmente se considera que el conocimiento del dominio K constituye de por sí una, o varias, perspectivas, y que los requisitos R se distribuyen entre otras perspectivas distintas. Es decir, se separan en distintas perspectivas el contenido de K y el de R, a pesar de su estrecha relación. Así la comparación entre los distintos conjunto de cada perspectiva es la base para la detección de las discrepancias y para trazar su origen.

     

    Métodos

    Para el desarrollo del método propuesto en este trabajo, en primer lugar se introdujo el esquema de estructuración para los contenidos de cada perspectiva, esquema cuyos objetivos son consideración de la multidimensionalidad interna a cada perspectiva y facilitar el posterior proceso de clasificación y resolución. En segundo lugar, se trabajó sobre aquellos conceptos que se necesitan si se quiere tratar con detalle el tema de las discrepancias: las perspectivas se ven como conjuntos de afirmaciones, y son las discrepancias entre afirmaciones lo que conduce a discrepancias entre conjuntos. En la siguiente etapa, se introduce la notación diagramática pensada para representar perspectivas y que ayuda a comprender la clasificación de las posibles discrepancias existentes entre perspectivas. Por último se expone el proceso que permite a partir de las perspectivas obtener una lista de las discrepancias que contienen, a que elementos (subconjuntos) afectan y, sobre todo, que tipo de discrepancias son; a partir de las etapas mencionadas anteriormente (que es independiente de la notación utilizada para expresar, o modelizar, los requisitos); para que finalmente se exponen los pasos que se deben tomar en la resolución de las discrepancias encontradas, según su tipo.

     

    Discrepancias

    La noción de discrepancia entre afirmaciones que se propone en este trabajo engloba la noción de inconsistencia. No tiene sentido considerar las discrepancias como algo que se produce exclusivamente entre parejas de elementos, pues puede ocurrir que dos elementos no sean discrepantes pero formen un conjunto discrepante cuando se añada un tercer elemento. Por ejemplo, en lógica proposicional, el conjunto de fórmulas {p, p q} no es, en sí, un conjunto discrepante. En cambio el conjunto formado por {p, q,p ~q} si lo seria. Solo tiene sentido hablar de discrepancia para conjuntos de dos o más afirmaciones.

    Se propone denotar con el predicado (P) la existencia, o no, de una discrepancia en el conjunto de afirmaciones contenidas en un conjunto P, respecto a un criterio de discrepancia cd.

     

    Proceso de detección y resolución de discrepancias

    Para enfrentarse a los múltiples tipos de discrepancias planteamos un proceso iterativo que permita identificar las discrepancias, clasificarlas y sugerir una serie de directrices que guíen su resolución.

    Gráficamente, las fases del proceso (dos fases principales y una fase previa) se representarían como se ve en la figura 1, donde las entradas Pi y Pj son dos perspectivas distintas y las salidasP'i yP'j son dos perspectivas que resultan de la resolución de discrepancias entre Pi y Pj

    Como se ve, el proceso consta de dos fases principales y una fase previa:

    • Fase 0: estructuración de las perspectivas. Esta fase consiste en elaborar los contenidos de las perspectivas, compuestos, principalmente, de la información recogida de los clientes y usuarios. Aquí se elaboraran los contenidos de las distintas perspectivas, lo cual supone un primer paso de educción de requisitos (R) y de obtención de los conocimientos relevantes (K), de igual forma, se irán perfilando los detalles respecto a la conexión de la maquina con su entorno (S). no obstante, el presente trabajo no se centra en estas tareas de educción de requisitos o adquisición de conocimiento, como ya se ha explicado. Es también en esta fase cuando el analista decide, en función de la representación utilizada y de la organización de la información recogida, cuál será el criterio mediante el cual se considere que dos afirmaciones (requisitos, descripciones, etc.) se solapan, así como el criterio mediante el cual se considere que dos afirmaciones son o no discrepantes. Tal criterio es dependiente de la sintaxis del lenguaje de formalización particular empleado en la representación y de otros factores que el analista considere conveniente.

    • Fase 1: Detección y clasificación de discrepancias. En esta fase se comparan, utilizando los criterios definidos en la fase anterior, los distintos subconjuntos K, S, R de una perspectiva con los mismo subconjuntos de la otra. Así, simplificando mucho, el conjunto K de una perspectiva se compara con el conjunto K de otra, el conjunto R de una se compara con el conjunto R de la otra y el conjunto S de una se compara con el S de la otra, pues carece de sentido comparar, por ejemplo, K con R o K con S. asimismo, el proceso mantendrá en todo momento la relación de las posibles discrepancias entre unos subconjuntos con las discrepancias en otros: así por ejemplo si hay discrepancia entre los conjuntos R podría saberse si se debe a discrepancias en K, en S o incluso en ambas. Tanto la detección como la clasificación son dos tareas que se realizan en esta misma fase, pues el esquema multidimensional utilizado en la organización de las perspectivas conduce directamente a la clasificación de las discrepancias identificadas.

    • Fase 2: Resolución parcial de las discrepancias encontradas. Esta fase, partiendo de la lista de discrepancias obtenida en la fase anterior, se encarga de dirigir todo el proceso de resolución, aunque no fuerza a resolver las discrepancias ni en un orden particular, ni en un momento concreto. Una vez detectadas y clasificadas las discrepancias es cuando puede comenzar, si se considera necesario, el proceso de resolución.

    Cada tipo particular de discrepancia se resolverá de una determinada manera. Así, no es lo mismo lograr el acuerdo entre dos perspectivas cuya discrepancia es de tipo KS'R' que discernir cuál de las dos perspectivas posee un conocimiento erróneo, como ocurriría en el caso K'S'R' por ejemplo. No obstante, se pueden identificar una serie de tareas primarias que se combinaran de distintas formas con objeto de establecer un proceso para resolver un tipo determinado de discrepancias. Finalmente, como salida de esta fase se obtienen las dos perspectivas iniciales, pero con las discrepancias resueltas. Esta fase puede repetirse las veces que sean necesarias hasta agotar la lista de discrepancias obtenida en la fase anterior.

    Como es posible que la resolución de las discrepancias genere otras nuevas, o bien que el analista decida dejar algunas discrepancias sin resolver, se podría entrar en un nuevo ciclo del proceso, repitiéndose de nuevo las dos fases principales (1 y 2). Sucesivas iteraciones del proceso conducirán a un mayor acercamiento entre las perspectivas implicadas, hasta que ambas convergen, es decir, no discrepan.

     

    Resultados

    Se hizo el análisis de viabilidad al modelo propuesto, aplicándose a dos casos donde se muestra el proceso de clasificación y resolución de discrepancias, y a través de estos casos se ha podido mostrar el cómo es posible la estructuración de las perspectivas en tres dimensiones (K, Sy R) y como esta multidimensionalidad colaboran la una con la otra durante el proceso de detección, clasificación y resolución de discrepancias propuesto en este trabajo.

     

    Discusión

    •    La idea de la estructuración u organización interna de cada perspectiva de forma que dicha estructuración conduzca de forma natural a una clasificación de las discrepancias y a un proceso de resolución de dichas discrepancias, adaptado a cada tipo de discrepancia particular.

    •    Por otro lado la propuesta del modelo planteado permite la resolución de un problema más grande, que es el problema del mantenimiento de la coherencia entre perspectivas de puntos de vista conflictivos como se indico es el problema principal al que se enfrenta la IROP

     

    Conclusiones

    La ingeniería de requisitos y en particular, la ingeniería de requisitos orientada a perspectivas, siguen siendo campos prioritarios de investigación de la ingeniería de software. El interés creciente respecto a la ingeniería de requisitos se encuentra plenamente justificado por ser esta la etapa en la cual se encuentran enraizados los problemas mas grandes que pueden surgir en los proyectos de desarrollo de software. Así podría afirmarse que todo proceso de ingeniería de requisito esta siempre basado en perspectivas, aunque a veces estas no se hagan explícitas ni se tengan presente el valor de las discrepancias entre perspectivas como posibles catalizadoras del proceso.

    La proyección del método propuesto como se había mencionado es independiente del lenguaje de especificación utilizado en la fase de requisitos. Existe la posibilidad por la flexibilidad en su aplicación del método plasmarlo en un lenguaje de especificación. Por otro lado con la idea de extender la 'funcionalidad' del método se puede incorporar factores que permitan cuantificar el grado de discrepancia de algunos requisitos con otros; permitiéndonos de cierta manera dar prioridades a las discrepancias, de forma que la resolución de las mismas pueda concentrarse en las discrepancias más prioritarias.

     

    Referencias

    Easterbrook, S., 1991. "Handling conflict between domain descriptions with computer supported negotiatiorí\ Knowledge Acquisition.         [ Links ]

    Jackson, D. (1995). "Software Requirements and Specifications". Addison-Wesley, Nueva York.         [ Links ]

    Orlowska, E., (1989). "Relational Formalisation of Non-classical Logics", pags. 91-106.         [ Links ]

    Pamas, D. L., (1972) "On the Gritería to be used in Decomposing Systems in Modules", en Communications of the ACM.         [ Links ]

    Sommerville, L, (1998) "Requirements Engineering". Wiley, Nueva Cork.         [ Links ]

    Silva, A, (2000) "Método de Ingeniería de Requisitos para manejo de discrepancias'", Facultad de Informática, Madrid.         [ Links ]