jueves, 3 de diciembre de 2020

INTRODUCCIÓN

 Según la Real Academia Española el software se refiere a aquel conjunto de programas, procedimientos y pautas informáticas que permiten ejecutar tareas en una computadora. De acuerdo con este concepto es una creación humana puede presentar errores e incidencias, por lo que debe ser manera constante revisado y sometido a controles de calidad  que superen las expectativas de los usuarios.

Ese control tiene establecido unos estándares o criterios de calidad y metodologías para el diseño, programación, prueba y análisis del software desarrollado, con el objetivo de ofrecer una producción confiable, que mantenga concordancia con los requisitos exigidos, elevando así  la productividad y el control en su calidad, que establezca una mejorar  eficacia y eficiencia.

https://images.app.goo.gl/2qFMDW7FMxua753MA


Los estándares definen un conjunto de criterios que guían la forma en que se aplican procedimientos y metodologías al software desarrollado, la certificación de calidad permite una valoración independiente de la organización, donde se demuestra la capacidad de desarrollar productos y servicios de calidad.


https://images.app.goo.gl/QVbMRUTXW3WCJkxX6

Hoy en día los productos de software se han convertido en herramientas estratégicas para el cumplimiento de los objetivos en las organizaciones. Por lo tanto, el interés por la calidad del software crece en la medida que los usuarios son más exigentes y requieren productos que cumplan con sus necesidades.  Los estándares o metodologías definen criterios de desarrollo que tienen como objetivo principal producir software confiable de alta calidad.

El presente documento describe diferentes modelos de evaluación de calidad de software, los cuales pueden ser utilizados como medio para auditar la calidad de los productos de software ya implementados en entornos productivos, así como de productos que se encuentran en proceso de desarrollo.

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.


https://images.app.goo.gl/MWyaAtPH5N3UQc2y5


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.

La familia de Normas ISO/IEC 25000 está compuesta por cinco divisiones:

· ISO/IEC 2501n: división para el modelo de calidad.

· ISO/IEC 2502n: división para la medición de la calidad.

· ISO/IEC 2503n: división para los requisitos de calidad.

· ISO/IEC 2504n: división para la evaluación de calidad.




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 implementacion de 6 aspectos trascendentales: funcionabilidad, fiabilidad, usabilidad, eficiencia, mantenibilidad, portabilidad.




CARACTERISTICAS

 


La familia de normas ISO/IEC 25000, provee un marco de referencia y un lenguaje común para:

·       Identificar y analizar los requerimientos no funcionales de un producto de software o sistema, basados en los atributos de calidad que marca el estándar.

·       Diseñar la arquitectura tecnológica basada en estos requerimientos.

·       Evaluar la calidad interna y externa de un producto de software o sistema.

Adicionalmente, la familia de normas ISO/IEC 25000 contempla los estándares para la definición, medición y evaluación de requerimientos de calidad de datos y de servicios




ISO 9126 es un estándar internacional para la evaluación del Software.

El estándar está dividido en cuatro partes las cuales dirigen, respectivamente, lo siguiente: modelo de calidad, métricas externas, métricas internas y calidad en las métricas de uso.

El modelo de calidad establecido en la primera parte del estándar, ISO 9126-1, clasifica la calidad del software en un conjunto estructurado de características y sub características de la siguiente manera:

·       Funcionalidad – Un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen las necesidades implícitas o explícitas.

o   Idoneidad

o   Exactitud

o   Interoperabilidad

o   Seguridad

o   Cumplimiento de normas.

·       Fiabilidad – Un conjunto de atributos relacionados con la capacidad del software de mantener su nivel de prestación bajo condiciones establecidas durante un período establecido.

o   Madurez

o   Recuperabilidad

o   Tolerancia a fallos

·       Usabilidad – Un conjunto de atributos relacionados con el esfuerzo necesario para su uso, y en la valoración individual de tal uso, por un establecido o implicado conjunto de usuarios.

o   Aprendizaje

o   Comprensión

o   Operatividad

o   Atractividad

·       Eficiencia – Conjunto de atributos relacionados con la relación entre el nivel de desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas.

o   Comportamiento en el tiempo

o   Comportamiento de recursos

·       Mantenibilidad – Conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software.

o   Estabilidad

o   Facilidad de análisis

o   Facilidad de cambio

o   Facilidad de pruebas

·       Portabilidad – Conjunto de atributos relacionados con la capacidad de un sistema software para ser transferido desde una plataforma a otra.

o   Capacidad de instalación

o   Capacidad de reemplazamiento

o   Adaptabilidad

o   Co-Existencia

https://images.app.goo.gl/XiYjiGJyB18dwQLX7


https://images.app.goo.gl/gnU4wcbiFXVZGTTh7


MODELO ISO 25000

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.

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.

La familia de Normas ISO/IEC 25000 está compuesta por cinco divisiones:

· ISO/IEC 2501n: división para el modelo de calidad.

· ISO/IEC 2502n: división para la medición de la calidad.

· ISO/IEC 2503n: división para los requisitos de calidad.

· ISO/IEC 2504n: división para la evaluación de calidad.

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.

.

Características de la familia ISO/IEC 25000

La familia de normas ISO/IEC 25000, provee un marco de referencia y un lenguaje común para:

·       Identificar y analizar los requerimientos no funcionales de un producto de software o sistema, basados en los atributos de calidad que marca el estándar.

·       Diseñar la arquitectura tecnológica basada en estos requerimientos.

·       Evaluar la calidad interna y externa de un producto de software o sistema.

Adicionalmente, la familia de normas ISO/IEC 25000 contempla los estándares para la definición, medición y evaluación de requerimientos de calidad de datos y de servicios.

https://www.youtube.com/watch?v=PXzQpAn_cZc EXPLICA LA ISO 25000

Las ventajas que presenta se pueden desglosar en dos apartados:

 Ventajas para la organización

 - Detecta los objetivos del software con las necesidades reales y efectivas que solicita el cliente final.

- Evita ineficiencias y maximiza la rentabilidad y calidad del producto de software.

 - Cumple los requisitos contractuales y demuestra a los clientes que la calidad del software es primordial.

- El proceso de evaluaciones periódicas ayuda a supervisar continuamente el rendimiento y la mejora. Ventajas para los usuarios finales

- Demuestra el compromiso de la organización con la calidad del software.

Por contra, sus puntos más negativos son:

- No establece los niveles de calidad deseables para cada proyecto.

- No menciona “un número de referencia a lograr”, o el umbral que debe cumplir una métrica.

- Sería irreal fijar un valor, o valores, únicos de referencia para toda la industria.

 



https://es.slideshare.net/mobile/MiguelAngelMarinNaranjo/iso-25000-67653960



 



 


CRITERIOS DE EVALUACIÓN O MÉTRICAS

 



https://es.slideshare.net/mobile/MiguelAngelMarinNaranjo/iso-25000-67653960


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.

Métricas

Existen dos tipos de métricas:

o   Las métricas orientadas al tamaño y

o    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 lineas 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 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, unos lenguajes 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).


A continuación, tenemos el ejemplo de una aplicación software de la seguridad de una vivienda.