domingo, 31 de mayo de 2020

Generalidades

La Organización Internacional para la Estandarización (ISO) es una organización no gubernamental con membresía de 161 cuerpos nacionales, ubicada en Suiza. A través de sus miembros, reúne a expertos en distintas áreas para compartir sus conocimientos y desarrollar Estándares Internacionales (conocidos como normas ISO) que apoyen la investigación y proporcionen soluciones a desafíos globales. Las normas ISO son voluntarias y están basadas en el consenso de un grupo imparcial de expertos. Estas características son especialmente relevantes y son la razón de su popularización y credibilidad a nivel internacional. 
Aunque, los principales productos de ISO son sus estándares internacionales, también publica informes técnicos, especificaciones técnicas, especificaciones disponibles públicamente, erratas técnicas, y guías.
Las normas ISO proporcionan especificaciones globales para productos, servicios y sistemas, con el fin de asegurar calidad, seguridad y eficiencia. Hasta el momento, la organización ha publicado 22102 estándares, cubriendo prácticamente la totalidad de industrias.
Dentro de los estándares más aplicados a la calidad del software se encuentran los siguientes: ISO/IEC 9126, ISO/IEC 14598, ISO/IEC 25000 este último proporciona una guía para el uso de la nueva serie de normas internacionales denominadas Sistemas y Requisitos de Calidad del Software y Evaluación (SQuaRE).
ISO/IEC 25000 
El estándar ISO/IEC 25000, conocido como SQuaRE (System and Software Quality Requirements and Evaluation), es una familia de normas que tiene por objetivo la creación de un marco de trabajo común para evaluar la calidad del producto software.
Constituye una serie de normas basadas en ISO/IEC 9126 y en ISO/IEC 14598 cuyo objetivo principal es guiar el desarrollo de los productos de software mediante la especificación de requisitos y evaluación de características de calidad.
El objetivo de ISO 25000 es proporcionar una visión general de los contenidos de SQuaRE, modelos de referencia y definiciones comunes, así como la relación entre los documentos. La última revisión se produjo en 2014, por lo que el próximo año será revisada y actualizada.
Los requisitos de la ISO 25000 se centran además en dos procesos principales: especificación de requisitos de calidad del software y evaluación de la calidad del software, soportada por el proceso de medición de calidad del software.
La ISO 25000 está compuesta por cinco áreas:
  • ISO 2500n: Gestión de calidad
  • ISO 2501n: Modelo de calidad: compuesto entre otros por fiabilidad, seguridad, mantenibilidad y        usabilidad.
  • ISO 2502n: Medición de calidad
  • ISO 2503n: Requisitos de calidad
  • ISO 2504n: Evaluación de calidad



Referencias


Crespo, A. (2018). ISO 25000: La calidad del producto Software. Obtenido de https://www.excentia.es/iso-25000

Portal ISO 25000. (2020). Estándar ISO 25000. Obtenido de https://iso25000.com/








Productos y empresas certificadas

En la página oficial de la norma se encuentra la relación de las empresas y los productos que ya están certificados en ISO25000, algunas de estas son:

BITWARE S.L.: es una empresa dedicada a la consultoría y venta de proyectos y soluciones en el área de ingeniería de software y hardware, actualmente tiene dos productos certificados en ISO25000, BITDOC y BitRRHH.

ENXENIO: es una empresa de desarrollo de software que está enfocada en el área de la investigación, actualmente cuenta con una solución de distribución de contenidos digitales apoyados en varios de sus productos y está certificada por la ISO25000.

 

Como se puede ver en la imagen la empresa certificadora es AENOR, una empresa cuya actividad es el desarrollo de normas, técnicas y certificaciones que contribuyen a mejorar la calidad de las empresas, sus productos y servicios. Para otorgar la certificación ISO/IEC 25000 a las empresas desarrolladoras de software, AENOR se apoya en AQC Lab, primer laboratorio en España acreditado por la Entidad Nacional de Acreditación (ENAC) para la realización de ensayos de evaluación de la calidad de aplicaciones software bajo la familia de normas ISO/IEC 25000 centrados en la mantenibilidad; AQC Lab entrega un informe en el que hace una evaluación detallada a la calidad del producto que produce la empresa y en caso de que el informe sea positivo, AENOR procede a establecer la viabilidad y otorgar la certificación. 


Referencias

Roa Molina, P., Morales, G., & Gutiérrez, P. (2015). Norma ISO/IEC 25000. Obtenido de file:///C:/Users/Sandra/Downloads/8373-Texto%20del%20art%C3%ADculo-47605-3-10-20160327%20(1).pdf

Norma ISO 25000. (2019). Productos certificados. Obtenido de https://iso25000.com/index.php/productos-certificados

Criterios de evaluación

ISO/IEC 25040 define el proceso para llevar a cabo la evaluación del producto software. 

Dicho proceso de evaluación consta de un total de cinco actividades.


Actividad 1: Establecer los requisitos de la evaluación

El primer paso del proceso de evaluación consiste en establecer los requisitos de la evaluación.

Tarea 1.1: Establecer el propósito de la evaluación: En esta tarea se documenta el propósito por el que la organización quiere evaluar la calidad de su producto software (asegurar la calidad del producto, decidir si se acepta un producto, determinar la viabilidad del proyecto en desarrollo, comparar la calidad del producto con productos de la competencia, etc.).

Tarea 1.2: Obtener los requisitos de calidad del producto: En esta tarea se identifican las partes interesadas en el producto software (desarrolladores, posibles adquirientes, usuarios, proveedores, etc.) y se especifican los requisitos de calidad del producto utilizando un determinado modelo de calidad.

Tarea 1.3: Identificar las partes del producto que se deben evaluar: Se deben identificar y documentar las partes del producto software incluidas en la evaluación. 

El tipo de producto a evaluar (especificación de requisitos, diagramas de diseño, documentación de las pruebas, etc.) depende de la fase en el ciclo de vida en que se realiza la evaluación y del propósito de ésta.

Tarea 1.4: Definir el rigor de la evaluación: Se debe definir el rigor de la evaluación en función del propósito y el uso previsto del producto software, basándose, por ejemplo, en aspectos como el riesgo para la seguridad, el riesgo económico o el riesgo ambiental. En función del rigor se podrá establecer qué técnicas se aplican y qué resultados se esperan de la evaluación.


Actividad 2: Especificar la evaluación

En esta actividad se especifican los módulos de evaluación (compuestos por las métricas, herramientas y técnicas de medición) y los criterios de decisión que se aplicarán en la evaluación.

Tarea 2.1: Seleccionar los módulos de evaluación: En esta tarea el evaluador selecciona las métricas de calidad, técnicas y herramientas (módulos de evaluación) que cubran todos los requisitos de la evaluación. Dichas métricas deben permitir que, en función de su valor, se puedan realizar comparaciones fiables con criterios que permitan tomar decisiones. Para ello se puede tener en cuenta la Norma ISO/IEC 25020.

Tarea 2.2: Definir los criterios de decisión para las métricas: Se deben definir los criterios de decisión para las métricas seleccionadas. Dichos criterios son umbrales numéricos que se pueden relacionar con los requisitos de calidad y posteriormente con los criterios de evaluación para decidir la calidad del producto. Estos umbrales se pueden establecer a partir de benchmarks, límites de control estadísticos, datos históricos, requisitos del cliente, etc.

Tarea 2.3: Definir los criterios de decisión de la evaluación: Se deben definir criterios para las diferentes características evaluadas a partir de las subcaracterísticas y métricas de calidad. Estos resultados a mayor nivel de abstracción permiten realizar la valoración de la calidad del producto software de forma general.


Actividad 3: Diseñar la evaluación:

En esta actividad se define el plan con las actividades de evaluación que se deben realizar.

Tarea 3.1: Planificar las actividades de la evaluación: Se deben planificar las actividades de la evaluación teniendo en cuenta la disponibilidad de los recursos, tanto humanos como materiales, que puedan ser necesarios. En la planificación se debe tener en cuenta el presupuesto, los métodos de evaluación y estándares adaptados, las herramientas de evaluación, etc.

El plan de evaluación se revisará y actualizará proporcionando información adicional según sea necesario durante el proceso de evaluación.


Actividad 4: Ejecutar la evaluación

En esta actividad se ejecutan las actividades de evaluación obteniendo las métricas de calidad y aplicando los criterios de evaluación.

Tarea 4.1: Realizar las mediciones: Se deben realizar las mediciones sobre el producto software y sus componentes para obtener los valores de las métricas seleccionadas e indicadas en el plan de evaluación. Todos los resultados obtenidos deberán ser debidamente registrados.

Tarea 4.2: Aplicar los criterios de decisión para las métricas: Se aplican los criterios de decisión para las métricas seleccionadas sobre los valores obtenidos en la medición del producto.

Tarea 4.3: Aplicar los criterios de decisión de la evaluación: En esta última tarea se deben aplicar los criterios de decisión a nivel de características y subcaracterísticas de calidad, produciendo como resultado la valoración del grado en que el producto software cumple los requisitos de calidad establecidos.


Actividad 5: Concluir la evaluación

En esta actividad se concluye la evaluación de la calidad del producto software, realizando el informe de resultados que se entregará al cliente y revisando con éste los resultados obtenidos.

Tarea 5.1: Revisar los resultados de la evaluación: Mediante esta tarea, el evaluador y el cliente de la evaluación (en caso de existir) realizan una revisión conjunta de los resultados obtenidos, con el objetivo de realizar una mejor interpretación de la evaluación y una mejor detección de errores.

Tarea 5.2: Crear el informe de evaluación: Una vez revisados los resultados, se elabora el informe de evaluación, con los requisitos de la evaluación, los resultados, las limitaciones y restricciones, el personal evaluador, etc.

Tarea 5.3: Revisar la calidad de la evaluación y obtener feedback: El evaluador revisará los resultados de la evaluación y la validez del proceso de evaluación, de los indicadores y de las métricas aplicadas. El feedback de la revisión debe servir para mejorar el proceso de evaluación de la organización y las técnicas de evaluación utilizadas.

Tarea 5.4: Tratar los datos de la evaluación: Una vez finalizada la evaluación, el evaluador debe realizar el adecuado tratamiento con los datos y los objetos de la evaluación según lo acordado con el cliente (en caso de ser una tercera parte), devolviéndolos, archivándolos o eliminándolos según corresponda.

Referencias:
Portal ISO 25000. (s.f.). La familia de normas ISO/IEC 25000. Obtenido de 2020: https://iso25000.com/index.php/normas-iso-25000/iso-25040?limit=3&limitstart=0



Características de la ISO 25000

En este modelo se determinan las características de calidad que se van a tener en cuenta a la hora de evaluar las propiedades de un producto software determinado.

La calidad del producto software se puede interpretar como el grado en que dicho producto satisface los requisitos de sus usuarios aportando de esta manera un valor. Son precisamente estos requisitos (funcionalidad, rendimiento, seguridad, mantenibilidad, etc.) los que se encuentran representados en el modelo de calidad, el cual categoriza la calidad del producto en características y subcaracterísticas.

El modelo de calidad del producto definido por la ISO/IEC 25010 se encuentra compuesto por ocho características de calidad que se describen en la siguiente figura.

1. Adecuación funcional: Representa la capacidad del producto software para proporcionar funciones que satisfacen las necesidades declaradas e implícitas, cuando el producto se usa en las condiciones especificadas. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:

Completitud funcional. Grado en el cual el conjunto de funcionalidades cubre todas las tareas y los objetivos del usuario especificados.
Corrección funcional. Capacidad del producto o sistema para proveer resultados correctos con el nivel de precisión requerido.
Pertinencia funcional. Capacidad del producto software para proporcionar un conjunto apropiado de funciones para tareas y objetivos de usuario especificados.

2. Eficiencia de desempeño: Esta característica representa el desempeño relativo a la cantidad de recursos utilizados bajo determinadas condiciones. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:

Comportamiento temporal. Los tiempos de respuesta y procesamiento y los ratios de throughput de un sistema cuando lleva a cabo sus funciones bajo condiciones determinadas en relación con un banco de pruebas (benchmark) establecido.

Utilización de recursos. Las cantidades y tipos de recursos utilizados cuando el software lleva a cabo su función bajo condiciones determinadas.

Capacidad. Grado en que los límites máximos de un parámetro de un producto o sistema software cumplen con los requisitos.

3. Compatibilidad: Capacidad de dos o más sistemas o componentes para intercambiar información y/o llevar a cabo sus funciones requeridas cuando comparten el mismo entorno hardware o software. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:

Coexistencia. Capacidad del producto para coexistir con otro software independiente, en un entorno común, compartiendo recursos comunes sin detrimento.

Interoperabilidad. Capacidad de dos o más sistemas o componentes para intercambiar información y utilizar la información intercambiada.

4. Usabilidad. Capacidad del producto software para ser entendido, aprendido, usado y resultar atractivo para el usuario, cuando se usa bajo determinadas condiciones. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:

Capacidad para reconocer su adecuación. Capacidad del producto que permite al usuario entender si el software es adecuado para sus necesidades.

Capacidad de aprendizaje. Capacidad del producto que permite al usuario aprender su aplicación.

Capacidad para ser usado. Capacidad del producto que permite al usuario operarlo y controlarlo con facilidad.

Protección contra errores de usuario. Capacidad del sistema para proteger a los usuarios de hacer errores.

Estética de la interfaz de usuario. Capacidad de la interfaz de usuario  de agradar y satisfacer la interacción con el usuario.

Accesibilidad. Capacidad del producto que permite que sea utilizado por usuarios con determinadas características y discapacidades.

5. Fiabilidad: Capacidad de un sistema o componente para desempeñar  las funciones especificadas, cuando se usa bajo unas condiciones y periodo de tiempo determinados. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:

Madurez. Capacidad del sistema para satisfacer las necesidades de fiabilidad en condiciones normales.

Disponibilidad. Capacidad del sistema o componente de estar operativo y accesible para su uso cuando se requiere.

Tolerancia a fallos. Capacidad del sistema o componente para operar según lo previsto en presencia de fallos hardware o software.

Capacidad de recuperación. Capacidad del producto software para recuperar los datos directamente afectados y reestablecer el estado deseado del sistema en caso de interrupción o fallo.

6. Seguridad: Capacidad de protección de la información y los datos de manera que personas o sistemas no autorizados no puedan leerlos o modificarlos. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:

Confidencialidad. Capacidad de protección contra el acceso de datos e información no autorizados, ya sea accidental o deliberadamente.

Integridad. Capacidad del sistema o componente para prevenir accesos o modificaciones no autorizados a datos o programas de ordenador.

No repudio. Capacidad de demostrar las acciones o eventos que han tenido lugar, de manera que dichas acciones o eventos no puedan ser repudiados posteriormente.

Responsabilidad. Capacidad de rastrear de forma inequívoca las acciones de una entidad.

Autenticidad. Capacidad de demostrar la identidad de un sujeto o un recurso.

7. Mantenibilidad: Esta característica representa la capacidad del producto software para ser modificado efectiva y eficientemente, debido a necesidades evolutivas, correctivas o perfectivas. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:

Modularidad. Capacidad de un sistema o programa de ordenador (compuesto de componentes discretos) que permite que un cambio en un componente tenga un impacto mínimo en los demás.

Reusabilidad. Capacidad de un activo que permite que sea utilizado en más de un sistema software o en la construcción de otros activos.

Analizabilidad. Facilidad con la que se puede evaluar el impacto de un determinado cambio sobre el resto del software, diagnosticar las deficiencias o causas de fallos en el software, o identificar las partes a modificar.

Capacidad para ser modificado. Capacidad del producto que permite que sea modificado de forma efectiva y eficiente sin introducir defectos o degradar el desempeño.

Capacidad para ser probado. Facilidad con la que se pueden establecer criterios de prueba para un sistema o componente y con la que se pueden llevar a cabo las pruebas para determinar si se cumplen dichos criterios.

8. Portabilidad: Capacidad del producto o componente de ser transferido de forma efectiva y eficiente de un entorno hardware, software, operacional o de utilización a otro. Esta característica se subdivide a su vez en las siguientes subcaracterísticas:

Adaptabilidad. Capacidad del producto que le permite ser adaptado de forma efectiva y eficiente a diferentes entornos determinados de hardware, software, operacionales o de uso.

Capacidad para ser instalado. Facilidad con la que el producto se puede instalar y/o desinstalar de forma exitosa en un determinado entorno.

Capacidad para ser reemplazado. Capacidad del producto para ser utilizado en lugar de otro producto software determinado con el mismo propósito y en el mismo entorno.


Referencias 

ISO 25000. (2019). ISO/IEC 25010. Obtenido de https://iso25000.com/index.php/normas-iso-25000/iso-25010?limit=3&limitstart=0

ISO 25000. (2019). ISO/IEC 25010. Obtenido de https://iso25000.com/index.php/normas-iso-25000/iso-25010?limit=3&start=3

ISO 25000. (2019). ISO/IEC 25010. Obtenido de https://iso25000.com/index.php/normas-iso-25000/iso-25010?limit=3&start=6

Métricas de evaluación

ISO/IEC 2502n – División de Medición de Calidad Estas normas incluyen un modelo de referencia de la medición de la calidad del producto, d...