Pequeña Introducción a la Calidad del Software

Calidad del Software

Todas las metodologías y herramientas tienen un único fin Producir software de gran calidad

Definiciones de calidad del software
– “Concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos con los estándares de desarrollo explícitamente documentados y con las características implícitas que se espera de todo software desarrollado profesionalmente”
R.S. Pressman (1992).

– “El conjunto de características de una entidad que le confieren su aptitud para satisfacer las necesidades expresadas y las implícitas”
ISO 8402 (UNE 66-001-92).

• Conclusiones
– Los requisitos del software son la base de las medidas de calidad. La falta de concordancia con los requisitos es una falta de calidad.

– Los estándares o metodologías definen un conjunto de criterios de desarrollo que guían la forma en que se aplica la ingeniería del software. Si no se sigue ninguna metodología siempre habrá falta de calidad.

– Existen algunos requisitos implícitos o expectativas que a menudo no se mencionan, o se mencionan de forma incompleta (por ejemplo el deseo de un buen mantenimiento) que también pueden implicar una falta de calidad.

Aseguramiento de calidad del Software


(Software Quality Assurance)

• El aseguramiento de calidad del software es el conjunto de actividades planificadas y sistemáticas necesarias para aportar la confianza en que el producto (software) satisfará los requisitos dados de calidad.

• El aseguramiento de calidad del software se diseña para cada aplicación antes de comenzar a desarrollarla y no después.

• Algunos autores prefieren decir garantía de calidad en vez de aseguramiento.

– Garantía, puede confundir con garantía de productos
– Aseguramiento pretende dar confianza en que el producto tiene calidad

• El aseguramiento de calidad del software está presente en:

– Métodos y herramientas de análisis, diseño, programación y prueba
– Inspecciones técnicas formales en todos los pasos del proceso de desarrollo del software116r
– Estrategias de prueba multi escala
– Control de la documentación del software y de los cambios realizados
– Procedimientos para ajustarse a los estándares (y dejar claro cuando se está fuera de ellos)
– Mecanismos de medida (métricas)
– Registro de auditorías y realización de informes

• Actividades para el aseguramiento- de calidad del software

– Métricas de software para el control del proyecto
– Verificación y validación del software a lo largo del ciclo de vida

• Incluye las pruebas y los procesos de revisión e inspección
– La gestión de la configuración del software

Gestión de la calidad del software



(Software Quality Management)

• Gestión de la calidad (ISO 9000)
– Conjunto de actividades de la función general de la dirección que determina la calidad, los objetivos y las responsabilidades y se implanta por medios tales como la planificación de la calidad, el control de la calidad, el aseguramiento (garantía) de la calidad y la mejora de la calidad, en el marco del sistema de calidad.

• Política de calidad (ISO 9000)
– Directrices y objetivos generales de una organización, relativos a la calidad, tal como se expresan formalmente por la alta dirección

• La gestión de la calidad se aplica normalmente a nivel de empresa
• También puede haber una gestión de calidad dentro de la gestión de cada proyecto

El catálogo de Gestión de calidad ofrece:

1 .Gestión de calidad de software durante el ciclo de vida.
2. Pruebas funcionales automatizadas de software para una amplia gama de aplicaciones.
3. Pruebas de carga de software, pruebas de rendimiento y pruebas de una amplia gama de aplicaciones, como web, Java, Microsoft .Net.
4. Soluciones de conformidad y seguridad de sitios web para identificar vulnerabilidades.
5. Solución de gestión de calidad de ciclo vital para la planificación de pruebas, el contra flujo de trabajo y la generación de informes.
6. Pruebas funcionales para garantizar la distribución de software basada en la calidad.
7. Completo conjunto de herramientas de análisis de tiempo de ejecución diseñadas para el rendimiento de las aplicaciones.

Software Quality Control

1 .Calidad permite una valoración
2. Independiente que debe demostrar que la organización es capaz.
3 .De desarrollar productos y servicios de calidad.
4 .Métricas para determinar los factores de calidad.
5. Facilidad de auditoría.
6. Exactitud.
7. Normalización de las comunicaciones.
8. Completitud.
9. Consistencia.
10. Estandarización de los datos
11. Tolerancia de errores
12. Eficiencia de la ejecución
13. Facilidad de expansión.
Una idea general sobre un software de calidad es aquel que debiera cumplir con los requerimientos funcionales y además de ser, confiable y aceptable.

Control de la calidad del software

• Son las técnicas y actividades de carácter operativo, utilizadas para satisfacer los requisitos relativos a la calidad, centradas en dos objetivos fundamentales:

– mantener bajo control un proceso
– eliminar las causas de los defectos en las diferentes fases del ciclo de vida

• En general son las actividades para evaluar la calidad de los productos desarrollados

Sistema de Calidad

Es un método planificad y sistemáticos de medios y acciones, encaminados a asegurar suficiente confianza en que los productos o servicios, se ajusten a las especificaciones.


Se administra de forma ordenada la calidad de la misma en el proceso de forma continua para la mejora de esta, los principales elementos son:

1. estructura de la organización: está dada en el organigrama de los sistemas de la empresa donde se jerarquizan los niveles directivos y de gestión.

2. estructura de las responsabilidades: en esta indica a personas y departamentos. La mejor forma de explicitar la responsabilidad en calidad.

3. procedimientos: responden al plan permanente de pautas detalladas para el control de las acciones de organización.

4. procesos: es la sucesión complementada de operaciones para lograr un objetivo en específico.

5. recursos: económicos, humanos y técnicos que deben estar definidos de forma clara y circunstancial.

Estos últimos apartados no siempre son tomados en cuenta o llevados en cuenta por parte de una empresa.

En general el sistema de calidad está condicionado por:

-organización con la que se cuenta

-tipo y naturaleza del producto o servicio

-medios materiales y humanos

-exigencias de mercado o clientes

Tengamos en cuenta que:

-la “imagen” también vende, y la imagen da calidad

-calidad es lo que el cliente está dispuesto a pagar por lo que compra

Certificación de la Calidad


Para saber que es certificado de calidad, primero debemos saber primero que es normalización.se trata de un proceso por el que las características de un producto o servicio quedan reflejadas en un documento denominado “norma”. Esto se logra tras un acuerdo de todos los interesados en el producto o servicio.


Teniendo en cuenta lo anterior podemos deducir que la certificación de la calidad es el resultado de un proceso por el que los evaluadores de la entidad den certificación, examinan la conformidad del producto, para comprobar di cumple con las normas establecidas. Si es conforme se procede a emitir un documento público certificando el resultado del examen.


Un certificado de calidad debe tener siempre un periodo de validez, y además del certificado debe tener también:


-el alcance del certificado: a qué tipo de productos de servíos se aplica.

-la norma de referencia que se ha utilizado como elemento de examen.


-la entidad u organismo de certificación que ha emitido el certificado, después del examen de sus auditores y expertos.

-información sobre el fabricante u organizador que ostenta el certificado.

FACTORES QUE DETERMINAN LA CALIDAD DE SOFTWARE

Esta clasificado en tres grupos:


Operaciones del producto

Características operativas:

Corrección ¿Hace lo que se pide?
Es el grado en que una aplicación satisface sus especificaciones y consigue los objetivos dados por el cliente.

Fiabilidad ¿Lo hace de forma fiable todo el tiempo?
Es lo que se puede esperar, que lleve acabo las operaciones especificadas y con la precisión requerida.

Eficiencia ¿Qué recursos hardware y software necesita?
La cantidad de recursos de una aplicación para realizar las operaciones con los tiempos de respuesta adecuados.

Integridad ¿Puedo controlar su uso?
Es el grado que se puede controlar el acceso al software, a los datos a personal no autorizado.

Facilidad de uso ¿Es fácil y cómodo de manejar?
El esfuerzo requerido para aprender el manejo de una aplicación, trabajo, con ello introducirlos y conseguir resultados.

Revision del producto

"Capacidad para soportar cambios"

Facilidad de mantenimiento ¿puedo localizar las fallas?
El esfuerzo requerido para localizar y reparar errores.

Flexibilidad ¿pudo añadir nuevas opciones?
Es el esfuerzo requerio pra modificar una aplicacion de forma que cumpla con lo especificado en los requisitos.

Transicion del porducto

"Adaptabilidad o nuevos entornos"

Portabilidad: ¿podre usarlo en otra maquina?
El esfurzo requerido pra transferir la aplicacion a otro hardware o sistema operativo

Reusabilidada: Es el grado en que partes de una aplicacion pueden utilizarse en otras aplicaciones.

Interoperabilidad: Es el esfuerzo necesario para comunicar la apalicacion con otras aplicaciones o sistemas informaticos.

METRICAS DE CALIDAD DEL SOFTWARE

MÉTRICAS TÉCNICAS: Se centran en las características de software por ejemplo: la complejidad lógica, el grado de modularidad. Mide la estructura del sistema, el cómo esta hecho.

MÉTRICAS DE CALIDAD: proporcionan una indicación del ajuste del software a los requisitos implícitos y explícitos del cliente. Es decir cómo voy a medir que mi sistema se adapte a los requisitos que me pide el cliente.

MÉTRICAS DE PRODUCTIVIDAD. Se centran en el rendimiento del proceso de la ingeniería del software. Es decir que tan productivo va a ser el software que voy a diseñar.

MÉTRICAS ORIENTADAS A LA PERSONA. Proporcionan medidas e información sobre la forma que la gente desarrolla el software de computadoras y sobre todo el punto de vista humano de la efectividad de las herramientas y métodos. Son las medidas que voy a hacer de mi personal que va hará el sistema.

MÉTRICAS ORIENTADAS AL TAMAÑO. Es para saber en que tiempo voy a terminar el software y cuantas personas voy a necesitar. Son medidas directas al software y el proceso por el cual se desarrolla, si una organización de software mantiene registros sencillos.
Las métricas nos ayudan a entender tanto el proceso técnico que se utiliza para desarrollar un producto, como el propio producto,el proceso para intentar mejorarlo, y se mide para intentar aumentar su calidad.
Para poder justificar la existencia de este tipo de métrica, se dice que éstas deben ser enunciadas y utilizadas para administrar el proceso de desarrollo y que debe ser conforme al producto de software particular
Estas medidas deben ser utilizadas para los siguientes propósitos:


Recopilar información y reportar valores de métricas sobre bases regulares.
Identificar el actual nivel de desempeño por cada métrica.
Tomar acción en reparar, si los niveles de las métricas crecen peor o exceden los niveles objetivos establecidos
Establecer metas de mejoras especificas en términos de las mismas métricas.