Aspectos del estándar ISO 25000

Normas ISO 25000



Definición:

La Norma ISO 25000, conocida como SQuaRE (System and Software Quality Requeriments and Evaluation) pertenece a una familia de normas que tiene por objeto la creación de un marco de trabajo común para evaluar la calidad del producto software. La finalidad es organizar, enriquecer y unificar dos procesos principales: especificación de requerimientos de calidad del software y evaluación de la calidad del software, soportada por el proceso de medición de calidad del software.

Generalidades:


El modelo de calidad ISO 25000, es un patrón muy detallado que abarca la calidad tanto interna y externa de un producto determinado, en este caso desde su mismo uso, proporcionando una visión general de los contenidos, en este orden de ideas, es importante resaltar que esta parte en esencia es un sinónimo de medición de la calidad. Lo que se busca con este tipo de modelo es guiar el desarrollo, con los requisitos y la evaluación de atributos de calidad que conllevan a realizar un análisis más profundo y significativo, elementos primordiales que hacen de este modelo muy diferente a otros modelos que desde su creación se han especializado en la búsqueda de la calidad de los productos al cual evalúan.

La norma de calidad ISO 25.000, establece un modelo mencionado SQuaRE (Software product Quality Requiments and Evolution),que significa Requisitos de calidad del producto y evaluación; su especialidad es ante todo, es buscar un enfoque mucho más amplio y completo, sin descuidar en ningún momento el proceso; en este sentido atiende específicamente las características  internas y externas del producto, trayendo como consecuencia que el protocolo también permite establecer que los requisitos de calidad sean los adecuados y de esa forma contribuya a que el producto tengan una mayor calidad.

Con relación al Modelo de la ISO 25000, las características internas y externas indican que para que un producto de software sea producido con calidad, se debe tomar en cuenta no solo la calidad del mismo, sino también la calidad del proceso que se está generando en el momento. La calidad interna refleja la calidad externa y la de uso, lo anterior se lleva a cabo mediante la implementación de 6 aspectos trascendentales: funcionabilidad, fiabilidad, usabilidad, eficiencia, mantenibilidad, portabilidad.


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.

 El objetivo general de la creación del estándar ISO/IEC 25000 SQuaRE (System and Software Quality Requirements and Evaluation) es organizar, enriquecer y unificar las series que cubren 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 familia ISO/IEC 25000 es el resultado de la evolución de otras normas anteriores, especialmente de las normas ISO/IEC 9126, que describe las particularidades de un modelo de calidad del producto software, e ISO/IEC 14598, que abordaba el proceso de evaluación de productos software. Esta familia de normas ISO/IEC 25000 se encuentra compuesta por cinco divisiones.

La Norma ISO 25000, proporciona una guía para el uso de las series de estándares internacionales llamados requisitos y Evaluación de Calidad de Productos Software (SQuaRE). La norma establece criterios para la especificación de requisitos de calidad de productos software, sus métricas y su evaluación, e incluye un modelo de calidad para unificar las definiciones de calidad de los clientes con los atributos en el proceso de desarrollo.

Las características de calidad y sus mediciones asociadas pueden ser útiles no solamente para evaluar el producto software sino también para definir los requerimientos de calidad. La serie ISO/IEC 25000:2005 reemplaza a dos estándares relacionados: ISO/IEC 9126 (Software Product Quality) e ISO/IEC 14598 (Software Product Evaluation).

Características:

La certificación de la calidad del producto software con ISO 25000 permite a las empresas conocer la calidad de sus productos, y a las empresas que compran software, decidirse por una solución u otra en función de sus necesidades.

El beneficio principal de adoptar una norma ISO 25000 es el mismo que el de cualquier norma de este calibre, asegurar que productos y servicios sean seguros, de confianza y sobre todo de buena calidad.

La pregunta más común con respecto a la Norma ISO 25000 es cómo obtener la certificación, y es tan sencillo como seguir los siguientes pasos:

1. Solicitud de la evaluación de calidad de un producto.

2. Informe de Evaluación de la calidad.

3. Solicitud de la certificación.

4. Solicitud del Informe de Evaluación.

5. Resultados de la evaluación realizada.

6. Resultado y Certificado de la calidad del producto.

Esta evaluación y certificación supone un hito sin precedentes a nivel internacional en el sector de la calidad e ingeniería del software, siendo el primer caso en el que se evalúa y certifica un producto software para la característica de adecuación funcional bajo los requisitos del estándar ISO 25000.

 

ISO/IEC 25010-Modelos del sistema y calidad del software: Detalla el modelo de la calidad del producto, describiendo ocho características para evaluar el software, las cuales son: A continuación, se detallan algunas de las características del modelo de calidad:

 

Adecuación funcional

Permite medir la capacidad que tiene un producto de software para proveer las funciones que satisfacen requerimientos explícitos e implícitos cuando el software se usa en determinadas condiciones.

Eficiencia de desempeño

Es el comportamiento del sistema: funcionalidad, capacidad, utilización de recursos y respuesta temporal. Dentro de sus características se encuentra que el sistema requiere la utilización de un mínimo de recursos (por ejemplo, tiempo de CPU) para ejecutar una tarea determinada.

Compatibilidad

Es el proceso en el cual dos o más sistemas intercambian información y llevan a cabo funciones requeridas en cuanto a su entorno hardware o software compartido.

Usabilidad

Algunas de las características que la conforman son: comprensibilidad, aprendibilidad, operabilidad, atractivo, cumplimiento de usabilidad, capacidad para reconocer su adecuación, capacidad de aprendizaje, capacidad de ser usado, protección contra errores de usuario, estética de la interfaz de usuario, accesibilidad. También fácil de usar, fácil de aprender, atractivo para el usuario, conforme a normas, uso intuitivo.

Fiabilidad

Madurez, tolerancia a defectos, recuperabilidad, cumplimiento de fiabilidad.

En determinadas condiciones, el software del sistema mantendrá su capacidad-funcionalidad a lo largo de un periodo de tiempo.

 Seguridad

Capacidad de proteger la información y los datos de manera que no puedan ser leídos o modificados por personas o sistemas no autorizados. La autenticidad, la confidencialidad y la responsabilidad son sus principales características.

Mantenibilidad

Es la medida del esfuerzo requerido para realizar cambios en los componentes de un sistema de manera efectiva y eficiente. Algunas de sus características son analizabilidad, modificabilidad, estabilidad, testabilidad, cumplimiento de mantenibilidad, modularidad.

Portabilidad

Es la capacidad del software de ser transferido a un nuevo entorno (software, hardware, organización). Es fácil de instalar y desinstalar, además permite ser adaptado de forma efectiva a diferentes entornos de hardware o software.



Criterios de evaluación y métricas de evaluación

ISO/IEC 25040 define el proceso para llevar a cabo la evaluación del producto software. Dichos criterios de evaluación constan de un total de cinco actividades.

Establecer los requisitos de la evaluación.

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.).

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.

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.

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.

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.

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.

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.

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.

Diseñar la evaluación.

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

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.

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.

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.

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.

Aplicar los criterios de decisión de la evaluación.

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

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.

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.

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.

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.

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.

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.

 

Métricas.

Existen dos tipos de métricas:

- Las métricas orientadas al tamaño y

- Las métricas orientadas a la función.

·   Las métricas orientadas al tamaño su objetivo es medir el tamaño (LCD) y las orientadas a la función (PF). Puntos de función, cuyo objetivo es medir la funcionalidad del software.



·   Las métrica de líneas de códigos consiste en medir cuantas líneas de códigos posee nuestro sistema software, esta medida es directa y se puede realizar utilizando cualquier tipo de herramienta que posee en forma nativa los freeware de desarrollo del software para realizar la medición, el objetivo es que conforme vamos participando en proyectos y vamos completándolo deberíamos generar un histórico en información asociado a cada proyecto, en la tabla de podemos ver dos tipos de proyectos, el cual nos indica las líneas de código, el esfuerzo (horas mes), el coste económico, número de páginas (doc), numero de errores detectados, defectos detectados y número de personas.



Una vez tengamos este histórico podemos medir métricas que son de gran utilidad, ejemplo, número de errores por línea código, numero de defectos detectados por el cliente por línea de código o el coste económico de cada línea de código, esto sirve para realizar una comparación de los distintos tipos de proyectos y valorar la rentabilidad o la productividad adquirida en cada proyecto de software.

Pero a pesar que este tipo de métrica es muy sencilla posee dos desventajas, depende del lenguaje de programación, ya que existen algunos lenguajes que son más expresivos que otros y algunos nos permiten implementar cierta funcionalidad, un lenguaje permite implementarse con una menor línea de códigos que con respecto a otro, esta diferencia es penalizada y es tenida en cuenta por las líneas de código y afecta al cálculo.


Por otro lado, la línea de código no es justa con aquellos programadores que son eficientes a la hora de programar, ya que algunos pueden hacerlo con una menor línea de códigos que otros.

 Para intentar superar estos inconvenientes existe una segunda alternativa que son las métricas orientadas a función, estas métricas lo que pretenden es medir funcionalidad del software lo cual es independiente a la tecnología que se haya utilizado para desarrollar el proyecto, un ejemplo de este tipo de métrica consiste en los puntos de función, los puntos de función es una medida directa donde vamos a poder medir directamente sobre el código, y se centra en medir la funcionalidad de nuestra aplicación software.


El cálculo de los puntos de función viene determinado por la anterior fórmula.

En esta fórmula existen dos componentes, cuenta total y códigos de ajustes, la cuenta total se ajuste mediante la siguiente fórmula:

En esta fórmula existen dos distintos componentes cuenta total y factores de ajustes. El cálculo de cuenta total consiste en analizar nuestra aplicación software e identificar cinco tipos de valores de dominio estos tipos de valores son entradas de usuario, salidas de usuarios, peticiones del usuario, archivos e interfaces externas.

 Las entradas representan las entradas de información que el usuario proporciona a la aplicación, las salidas de usuarios representan aquellas peticiones y salidas interacción que ha tenido el usuario con la aplicación los archivos hacen referencia a aquellas bases de datos o a aquellos recursos de información que necesita nuestra aplicación para funcionar y ejecutarse correctamente y el quinto valor que son las interfaces externas que representa aquellas interfaces de comunicación que nuestra aplicación mantiene con otras aplicaciones o con otro módulos externos el objetivo es que debemos para cada uno de estos valores de dominio identificar cuanto resiste en números y para cada uno de estos se les ponderará por un factor de ponderación existen tres tipos de factores de ponderación según el grado de complejidad: un grado simple, otro medio y el complejo, si asumimos que nuestra aplicación tiene una complejidad media por ejemplo entradas de usuarios el valor sería multiplicado por cuatro, salidas por cinco, peticiones de usuario por cuatro y así consecutivamente, el objetivo es que cada uno de estos valores sea multiplicado por valor de ponderación, se obtiene un valor por cada valor de dominio y se suma y se obtiene un valor de conteo total, con esto tendríamos el primer componente de la fórmula.

 El cálculo de factores de ajuste consiste en evaluar quince distintos tipos de valores, los cuales valoran la complejidad y otros aspectos del sistema software, el objetivo es evaluar cada uno de estos valores y asignarle un valor entre cero y cinco, siendo cero la de menor valor (poca influencia) y cinco la de mayor valor (valor esencial).

 



Mapa mental 



Comentarios

Entradas más populares de este blog

MODELO DE EVALUACIÓN McCall

Cuadros Comparativos de los Modelos de Calidad