1. Introducción.
Actualmente, las entidades muy pequeñas relacionadas a la industria del desarrollo de software son muy importantes, ya que como menciona J. Mejía, et. al. (Jezreel Mejía, et. al., 2021), este tipo de organizaciones representa un 94% (±3%) en esta industria. Por lo tanto, éstas requieren de certificaciones en estándares que den garantía de la calidad de los productos y servicios de software generados (Mirna Muñoz, et. al., 2021). Además, como lo menciona el grupo WG24 de la ISO/IEC se deben considerar sus características y necesidades como por ejemplo condiciones financieras, habilidades, cultura organizacional y modelos de referencia (Xavier Larrucea, et. al., 2016), entre otros.
En este contexto, se ha creado un estándar orientado para pequeñas organizaciones que desarrollan software no crítico, como lo es ISO/IEC 29110 (Apinporn Methawachananont, et. al., 2020). Este estándar tiene por objetivo ayudar a entidades muy pequeñas de hasta 25 individuos que a su vez pueden ser equipos de una organización muy grande, para el desarrollo de software no crítico por medio de la incursión en dos procesos: Gestión de Proyecto (GP) e Implementación de Software (IS). Estos procesos contienen actividades, tareas y productos de trabajo (Comisión de Normalización y Fiscalización de Barreras Comerciales no Arancelarias - INDECOPI, 2012). Sin embargo, como lo indica M. Muñoz, et. al. (Mirna Muñoz, Patricia Montoya, 2021) se han identificado dificultades en su implementación debido a la falta de comprensión, falta de control de versiones, funcionalidades y de documentación, desarrollo de pruebas, entre otros.
Por lo tanto, este artículo propone mejoras para la implementación del estándar ISO/IEC 29110 enfocadas en la falta de control de versiones que impactan en el desarrollo de la documentación. Para lograrlo se analiza la estructura, trazabilidad de los productos de trabajo, terminología y estados de los productos de trabajo para proponer tautologías utilizando lógica matemática. Estas tautologías permitieron evaluar la persistencia de los elementos explícitos e implícitos en el estándar identificando la falta del estado de algunos productos de trabajo que son necesarios para desarrollar las tareas y actividades dentro de los procesos de GP e IS.
Después de la introducción este artículo está estructurado de la siguiente manera: en la segunda sección se describe brevemente el estándar ISO/IEC 29110; en la tercera sección se analiza el estándar; en la cuarta sección, se proponen las tautologías a los elementos del proceso y su formalización matemática; en la quinta sección se presenta la aplicación de las tautologías al estándar; en la sexta sección se presentan las conclusiones y trabajo futuro.
2. ISO/IEC 29110.
El estándar ISO/IEC 29110 es una serie de normas en informes técnicos desarrollado para pequeñas organizaciones (Edgar Bonilla Rivas, Mirna Muñoz, 2020). Específicamente define los perfiles del ciclo de vida del software. Una pequeña organización (PO) (VSE por sus siglas en inglés - Very Small Entities) se define como como una entidad (empresa, organización, departamento o proyecto) que tiene hasta 25 personas. La mayoría de las empresas de software pertenecen a la categoría de PO (Jezreel Mejía, et. al., 2021) (Apinporn Methawachananont, et. al., 2020).
El estándar ISO/IEC 29110 fue desarrollado por la Organización Internacional para la Normalización y la Comisión Electrotécnica Internacional.
Este estándar aborda dos procesos, en las cuales se establecen 7 objetivos para cada una de ellas, los cuales están descritas en (ISO/IEC WG24, 2011). A continuación, se describen cada uno de los elementos de los procesos, actividades, productos de trabajo y roles.
2.1. Proceso de Gestión de Proyecto
Tiene como propósito establecer y llevar a cabo sistemáticamente tareas del proyecto de implementación, mismas que permiten lograr los objetivos del proyecto en 3 aspectos: calidad, tiempo y coste (ISO/IEC WG24, 2011).
El proceso de GP consta de 4 actividades, cada una de las actividades con tareas específicas, tal como se muestra en la Tabla I:
Identificador de la actividad | Nombre de la actividad | Número de tareas |
---|---|---|
GP 1. | Planificación del Proyecto. | 15 |
GP 2. | Ejecución del Plan del Proyecto. | 6 |
GP 3. | Evaluación y control del proyecto. | 3 |
GP 4. | Cierre del proyecto. | 2 |
Cada actividad genera productos de trabajo, el estándar ISO/IEC 29110 menciona 3 tipos de productos de trabajo:
Los productos de trabajo de entrada en el proceso de GP son indicados en la Tabla II:
Nombre | Origen |
---|---|
Enunciado de trabajo. | Cliente -CL. |
Configuración de software. | Área de proceso de implementación de software -IS. |
Solicitud de cambio. | Cliente -CL. Área de proceso de Implementación de software -IS. |
Los productos de trabajo internos en el proceso de GP son indicados en la Tabla III:
Nombre |
---|
Solicitud de cambio. |
Acciones correctivas. |
Acta de reunión. |
Resultados de verificación. |
Reporte de avance. |
Respaldo del repositorio del proyecto. |
Los productos de trabajo de salida en el proceso de GP son indicados en la Tabla IV:
Nombre | Origen |
---|---|
Plan de Proyecto. | Área de proceso de implementación de Software. |
Acta de Aceptación. | Alta Dirección. |
Repositorio del Proyecto. | Área de proceso de implementación de Software. |
Acta de reunión. | Cliente - CL. |
Configuración de Software. | Cliente - CL. |
Así mismo dentro del proceso de GP, intervienen específicamente ciertos roles, mismos que se colocan en la Tabla V:
2.2. Proceso de Implementación de Software.
El propósito de este proceso es la realización sistemática de las actividades de análisis, diseño, construcción, integración y pruebas para los productos conforme a los requisitos (ISO/IEC WG24, 2011)(Jezreel Mejía, Mirna Muñoz, 2019).
El proceso IS consta de 4 actividades, cada una de las actividades con tareas específicas, como se indica en la Tabla VI:
Identificador de la actividad | Nombre de la actividad | Número de tareas |
---|---|---|
IS.1. | Inicio de la Implementación del software. | 2 |
IS.2. | Análisis de requisitos de software. | 7 |
IS.3. | Arquitectura y diseño detallado de software. | 8 |
IS.4. | Construcción del software. | 7 |
IS.5. | Integración y pruebas de software. | 11 |
IS.6. | Entrega del producto. | 6 |
Los productos de trabajo de entrada del proceso de Implementación de software son indicados en la Tabla VII:
Nombre | Origen |
---|---|
Plan de Proyecto. | Área de proceso de gestión de proyecto. |
Repositorio del proyecto. | Área de proceso de gestión de proyecto. |
Los productos de trabajo internos del proceso de Implementación de Software son indicados en la Tabla VIII:
Los productos de trabajo de salida del proceso de Implementación de Software son indicados en la Tabla IX:
Nombre | Origen |
---|---|
Configuración del software: Especificación de requisitos. Diseño de software. Registro de trazabilidad. Componentes de software. Software. Casos de prueba y procedimientos de prueba. Reporte de pruebas. Manual de operación. Manual de usuario. Manual de mantenimiento. | Gestión de Proyecto. |
Solicitud de cambio. | Gestión de Proyecto. |
Así mismo dentro del proceso de IS, intervienen específicamente ciertos roles, mismos que se colocan en la Tabla X:
3. Análisis del estándar ISO/IEC 29110.
En esta seccion se presenta el análisis del estándar ISO/IEC 29110 considerando sus elementos explicitos e implícitos de los procesos de GP e IS.
3.1. Elementos explícitos e implícitos
Para desarrollar un análisis más completo de los elementos explícitos e implícitos, además del análisis del estándar ISO/IEC 29110, se analizó la guía de implementación de este estándar (ISO/IEC WG24, 2011).
Se entiende por elemento explícito a todo elemento que contiene una definición dentro de la guía de implementación del estándar. Por lo tanto, como se presentó en la sección anterior se puede observar que la estructura de elementos explícitos en los dos procesos del estándar se da de acuerdo con la Figura 1.
Tras identificar los elementos explícitos se identificaron elementos implícitos, que son aquellos que no tienen definición dentro de la guía de implementación del estándar y que solo son identificados por su nombre. Un elemento implícito identificado tras realizar el análisis fue el estado del producto de trabajo.
3.2. Elementos principales del estándar ISO/IEC 29110.
Como se puede apreciar en la Figura 2 y tras el análisis de la estructura y las tareas se identificó que dentro de la guía de implementación del estándar hay un elemento que influye en la versión de los productos de trabajo: el estado. Dicho elemento no está descrito explícitamente dentro del estándar.
Por lo tanto, elemento de estado es un elemento implícito, es decir, un elemento que forma parte de la estructura, pero que no está descrito en ninguna sección de la guía de implementación del estándar ISO/IEC 29110 y que es elemental para la comprensión e implementación apropiada del estándar. Además, tras el análisis se identificó que el elemento estado facilita la identificación de la versión de los productos de trabajo y los roles involucrados en su desarrollo.
Por lo tanto,los elementos principales del estandar incluyen elementos explicitos e implicitos que son mostrados en la Figura 2.
4. Tautología a los elementos de proceso y formalización matemática
Como menciona Kenneth Rosen las reglas de la lógica son utilizadas para distinguir entre argumentos válidos e inválidos, la lógica tiene numerosas aplicaciones en las ciencias computacionales (Rosen, 2019).
Los elementos básicos de la lógica son las proposiciones, que son oraciones declarativas que pueden ser verdaderas o falsas, pero no ambas.
Kenneth Rosen define la tautología como una proposición compuesta que es siempre verdadera, una proposición compuesta es una proposición construida utilizando proposiciones con operadores lógicos (Rosen, 2019).
Para denotar variables proposicionales o variables oracionales se utilizan letras, en la lógica proposicional hay diferentes tipos de proposiciones, tal como se indica en la Tabla XI:
Considerando las diferentes proposiciones y cuantificadores se seleccionó proposiciones de tipo condicional. Kenneth Rosen menciona que este tipo de proposiciones se expresa de diferentes formas como: si p, entonces q, si p, q, p es suficiente para q, entre otras.
4.1. Establecimiento de tautologías.
Tras el análisis de los elementos principales identificados que incluyen tanto los elementos explícitos e implícitos del estándar los cuales son: procesos, actividades, roles, tareas, productos de trabajo y estado del producto de trabajo.
A los elementos anteriores se les asignaron letras para utilizar la lógica proposicional estableciendo proposiciones para generar tautologías:
P(x): x es un proceso.
Q(y): y es una actividad del proceso.
R(z): z es una tarea de la actividad del proceso.
S(a): a es un producto de trabajo de la tarea de la actividad del proceso.
T(b): b es un rol que participa en el producto de trabajo de la tarea de la actividad del proceso.
U(c): c es un estado de producto de trabajo de la tarea de la actividad del proceso.
V(x): x tiene actividades.
W(x): x tienen estados.
O(x): x tiene tareas.
M(x): x genera productos de trabajo.
N(x): x tiene roles.
L(x): participan en.
D(x): necesita un.
Tras el establecimiento de las proposiciones se desarrollan dos clases de tautologías:
Tautologías de elementos explícitos: aquellas que cumplen con los elementos explícitos véase sección 3.1. Tabla XII
Tautologías de elementos implícitos: aquellas que cumplen con los elementos explícitos e incluyen los elementos explícitos véase sección 3.4. Tabla XIII
5. Propuestas de mejora
Considerando las tautologías presentes en el estándar y su aplicación, se identificaron las siguientes problemáticas:
Pérdida de estados, por ejemplo, en la actividad GP.1.5. ya que recibe como producto de trabajo de entrada un enunciado de trabajo sin estado.
En total dentro del estándar se detectaron 41 incidencias relacionadas con alguna de las problemáticas mencionadas en este artículo.
6. Aplicación de tautologías al estándar ISO/IEC 29110
Una vez propuestas las tautologías al estándar ISO/IEC 29110 y que tienen por fundamento a la lógica proposicional, se detectaron aspectos de mejora en la implementación del estándar, con respecto al estado de los productos de trabajo. Tras la aplicación de todas las tautologías se identificó que las tautologías que no se cumplen dentro del estándar ISO/IEC 29110 hacen referencia a las tautologías 8 y 10.
Es decir, existen productos de trabajo a los cuales no se identificó la existencia de un estado que inciden en la creación de un producto de trabajo y que al mismo tiempo permiten establecer su versión.
La Figura 3 muestra el total de tareas relacionadas a un producto de trabajo que no indica su estado tanto en el proceso de gestión de proyecto y del proceso de implementación de software.
Como se observa en la Figura 3, para el proceso de gestión de proyecto 15 de 26 tareas que hacen referencia a productos de trabajo no indican su estado.
Mientras que para el proceso de implementación de software son 27 de 41 tareas que no indican su estado.
Tras obtener estos resultados la Tabla XIV muestra las propuestas de mejora con respecto a los estados de los productos de trabajo que están relacionadas a las tareas.
De acuerdo con las propuestas de estados indicados en la Tabla XIV, se pueden agrupar como se muestra en la Figura 4 y 5.
Como se puede apreciar en la Figura 4, GP.1. y GP.2. presentan mayor incidencia en no indicar el estado de producto de trabajo y por tanto un mayor número de mejoras propuestas dentro de sus actividades. En la Figura 5, la actividad con un mayor número de mejoras propuestas es IS.3.
7. Conclusiones y trabajo futuro
Las empresas muy pequeñas de desarrollo de software manifiestan un interés por mejorar la calidad de sus procesos y productos, mediante la implementación del estándar ISO/IEC 29110 ya que se adecua a su contexto. Sin embargo, al implementarlo se identifican distintas problemáticas como lo es la falta de control de versiones en sus productos de trabajo, entre otros. En este contexto las propuestas de mejora realizadas en este artículo para la implementación del estándar ISO/IEC 29110 a través del establecimiento de tautologías sustentan los hallazgos de mejora por medio de la lógica matemática.
Como resultado se identificaron 26 tareas del proceso de gestión de proyectos que hacen referencia a productos de trabajo que no indican su estado, mientras que para el proceso de implementación del software son 15 tareas. Tras este resultado la Tabla XIV propone formalizar un estado del producto de trabajo teniendo mayor incidencia en GP.1., GP.2., IS.3.
La lógica matemática a través de las proposiciones ha permitido establecer tautologías que permiten evaluar que los elementos explícitos e implícitos se cumplan en la estructura de los procesos de este estándar.
Como trabajo futuro dentro de esta investigación se propone desarrollar una herramienta web para facilitar la evaluación de los elementos de los procesos de este estándar.