Calidad V2

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

Calidad de

Calidad de
software
Software

Profesora: Vicky Latorre C.


Calidad de Software

Philip Crosby:
El problema de la gestión de la calidad no es lo que la gente no
sabe sobre ella. El problema es lo que creen que saben... A este respecto, la
calidad tiene mucho en común con el sexo. Todo el mundo lo quiere (bajo ciertas
condiciones, por supuesto). Todo el mundo cree que lo conoce (incluso aunque no
quiera explicarlo). Todo el mundo piensa que su ejecución sólo es cuestión de
seguir las inclinaciones naturales (después de todo, nos las arreglamos de alguna
forma). Y, por supuesto, la mayoría de la gente piensa que los problemas en estas
áreas están producidos por otra gente (como si sólo ellos se tomaran el tiempo
para hacer las cosas bien).
Calidad de Software
Definición IEEE Definición de Pressman
1. El grado en que un sistema, componente o proceso 1. Cumplimiento de los requisitos funcionales y de
cumple con los requisitos especificados. rendimiento establecidos explícitamente.
2. El grado en que un sistema, componente o proceso 2. Estándares de desarrollo explícitamente
satisface las necesidades o expectativas del cliente o documentados y características implícitas que se
usuario. esperan de todo software desarrollado
profesionalmente.

El aseguramiento de la calidad del software es:


Un conjunto sistemático y planificado de acciones necesarias para proporcionar la confianza adecuada en que el proceso de
desarrollo de software o el proceso de mantenimiento de un producto de sistema de software se ajusta a los requisitos técnicos
funcionales establecidos, así como a los requisitos administrativos de mantener el cronograma y operar dentro de los límites
presupuestarios.
Más acotada "Calidad significa conformidad con los requisitos" (Crosby, 1979).
"(1) La calidad consiste en aquellas características del producto que satisfacen las necesidades de los
clientes y, por tanto, proporcionan satisfacción al producto.
Libera al cliente (2) La calidad consiste en estar libre de deficiencias" (Juran, 1988).
Calidad De Software
Calidad concepto complejo , multifacético, que se
describirse desde diversas perspectivas:

trascendental
• puede ser reconocida pero no definida
Objetivo : producir del usuario
software de calidad grado de adecuación al propósito
del productor
• conformidad con la especificación
del producto
• ligada a características inherentes del mismo
Calidad engloba todo el
basada en valor
proceso, y está
• ¿cuánto el cliente está dispuesto a pagar?
determinada por factores
directos e indirectos

(David Garvin, de Harvard Business School)


Estándares de Calidad

Algunos de los más Estos estándares


comunes incluyen establecen criterios
Hay varios • ISO/IEC 25000
(SQuaRE),
y procesos para
evaluar y mejorar la
estándares de • ISO/IEC 9126, calidad del software
calidad de software • ISO/IEC 15504 (SPICE),
y
en diferentes
aspectos, como
reconocidos • CMMI (Capability
funcionalidad,
Maturity Model
internacionalmente. Integration). confiabilidad,
usabilidad y
mantenibilidad.
Norma ISO 9126
Estándar publicado 2005 para medir calidad
Marco para evaluar la calidad, definiendo 6 características básicas, descompuestas en subcaracterísticas
Refleja una visión de usuario

Funcionalidad Confiabilidad Facilidad de


Usabilidad Eficiencia Portabilidad
mantención

madurez,
adecuación, facilidad de facilidad de
tolerancia a fallas, facilidad de
precisión, comprensión, análisis, instalación,
recuperación de comportamiento
interoperabilidad, fallas, facilidad de facilidad de conformidad,
temporal,
Seguridad de acceso aprendizaje, cambio, facilidad de
Cumplimiento de la
Cumplimiento facilidad de estabilidad, reemplazo
confiabilidad comportamiento
funcional operación de recursos facilidad de
prueba
Modelo de Calidad ISO 9126

Proporcionar funciones que satisfacen necesidades


FUNCIONALIDAD
declaradas e implícitas cuando se usa
Mantener un nivel especificado de prestaciones cuando se
CONFIABILIDAD
usa
Ser entendido, aprendido, usado y ser atractivo para el usuario
USABILIDAD
cuando se usa…
Proporcionar prestaciones apropiadas, relativas a la
EFICIENCIA
cantidad de recursos usados…
Ser modificado. Las modificaciones pueden incluir
MANTENIBILIDAD correcciones, mejoras o adaptación a cambios en el
entorno, requisitos o especificaciones funcionales…
PORTABILIDAD Ser transferido de un entorno a otro…
Modelo de Calidad ISO 9126
Funcionalidad: Proporcionar funciones que Confiabilidad: Mantener un nivel
satisfacen necesidades declaradas e implícitas especificado de prestaciones cuando se
cuando se usa usa
Proporcionar un conjunto apropiado de funciones para tareas y Madurez Evitar fallar como resultado de fallos en el software…
Adecuación
objetivos de usuario especificados…
Tolerancia a Mantener un nivel especificado de prestaciones en
Proporcionar los resultados o efectos correctos o fallos caso de fallos software o de infringir sus interfaces
Exactitud
acordados, con el grado necesario de precisión… especificados…
Interoperabilidad Interactuar con uno o más sistemas especificados… Capacid Reestablecer un nivel de prestaciones especificado y
2.8
ad de de recuperar los datos directamente afectados
Proteger información y datos de manera que las personas o recuper en caso de fallo.
sistemas no autorizados no puedan leerlos o modificarlos, al ación
Seguridad de acceso
tiempo que no se deniega el acceso a las personas o sistemas
autorizados…º Cumplimien Adherirse a normas, convenciones o
Cumplimiento Adherirse a normas, convenciones o regulaciones en leyes y to de la regulaciones relacionadas con la fiabilidad…
funcional prescripciones similares relacionadas con funcionalidad… confiabilida
d
Modelo de Calidad ISO 9126
Usabilidad: Ser entendido, aprendido, usado y ser atractivo para el usuario cuando se usa
Permitir al usuario entender si el software es adecuado y cómo
Entendibilidad puede ser usado para una tarea o condiciones de
uso particulares…

Aprendibilidad Permitir al usuario aprender sobre su aplicación…

Operatividad Permitir al usuario operarlo y controlarlo…


Atracción
Ser atractivo al usuario…

Cumplimiento de la Adherirse a normas, convenciones, guías de estilo o


usabilidad regulaciones relacionadas con la usabilidad…

Eficiencia: Proporcionar prestaciones apropiadas, relativas a la cantidad de recursos


Comportamiento temporal usados
Proporcionar tiempos de respuesta, tiempos de proceso y potencia
apropiados…

Comportamiento/Utiliza Usar las cantidades y tipos de recursos adecuados cuando el software lleva
ción de recursos a cabo su función…

Cumplimiento de la eficiencia Adherirse a normas o convenciones relacionadas con la eficiencia…


Modelo de Calidad ISO 9126 Mantenibilidad

Mantenibilidad: Capacidad del producto Portabilidad: Capacidad del


software para ser modificado, incluye mejoras, producto software a ser
correcciones o adaptaciones. transferido de un ambiente a otro.
Ser adaptado a diferentes entornos especificados,
Ser diagnosticadas deficiencias o causas de los fallos en el
Analizabilidad sin aplicar acciones o mecanismos distintos de
software, o para identificar las partes que han de ser
Adaptabilidad aquellos proporcionados para este propósito por el
modificadas…
propio software
Permitir que una determinada modificación sea Ser instalado en un entorno especificado…
Cambiabilidad Instalabilidad
implementada…
Evitar efectos inesperados debidos a modificaciones del Coexistir con otro software independiente, en un
Estabilidad software… Coexistencia entorno común, compartiendo recursos comunes…

Facilidad de prueba Permitir que el software modificado sea validado… Reemplazabilida Ser usado en lugar de otro producto software, para
d el mismo propósito, en el mismo entorno…
Cumplimiento de la Adherirse a normas o convenciones relacionadas con la Cumplimien Adherirse a normas o convenciones relacionadas
mantenibilidad mantenibilidad… to de la con la portabilidad…
portabilidad
Norma ISO 25010
• La norma ISO/IEC 25010 hace parte de la familia de normas ISO 25000. Es una norma que está
centrada hacia la usabilidad.
• Determina las características de calidad que se deben tener en cuenta en el momento de evaluar
las propiedades de un producto software terminado.
Modelo de
Calidad McCall
Se focaliza en el producto final, identificando
atributos claves desde el punto de vista del
usuario.

Estos atributos se denominan factores de calidad y


son normalmente atributos externos pero
también se incluyen algunos atributos
posiblemente internos.

Organizado en 3 ejes desde los cuales el usuario


puede contemplar la calidad de un producto,
basándose en once factores de calidad
organizados en torno a los tres ejes y a su vez cada
factor se desglosa en criterios de calidad.
Factores de Calidad McCall
Operación del Producto
1 Correctitud
Grado en que un programa satisface sus especificaciones y consigue los objetivos del usuario.

Ejemplo Dimensiones:
o Misión: Lista definida de 11 tipos de reportes (4
Lista de las salidas requeridas del tipos de cartas, 2 texto plano,etc)
sistema de software (dimensiones): o La precisión Requerida: Probabilidad para salida
no precisa contienendo uno o más errores- no
1. Misión excederá el 1%
2. La precisión requerida o La completitud de la información: Probabilidad
3. La completitud de la información de perder datos no excederá el 1%
4. Lo actual de la información o Lo actual de la información: no mas de dos días
5. La disponibilidad de la información hábiles acerca de participación en eventos y no
6. El estándar para codificación y más de uno acerca de pago o datos personales
documentación o La disponibilidad de la información: Tiempo de
reacción será <2 segundos, tiempo de reportes <4
horas
o El estándar para codificación y documentación:
guía del cliente
Factores de Calidad McCall
Operación del Producto
2 Confiabilidad
El grado en el que se espera que un programa cumpla con su función y con la precisión requerida.

1 2 3 4 5

PRECISIÓN: ATRIBUTOS DEL TOLERANCIA A FALLOS: MODULARIDAD: SIMPLICIDAD: ATRIBUTOS EXACTITUD: LA PRECISIÓN
SOFTWARE QUE ATRIBUTOS DEL SOFTWARE ATRIBUTOS DEL SOFTWARE DEL SOFTWARE QUE DE LOS CÁLCULOS Y DEL
PROPORCIONAN EL GRADO QUE POSIBILITAN LA QUE PROPORCIONAN POSIBILITAN CONTROL
DE PRECISIÓN REQUERIDO CONTINUIDAD DEL UNAESTRUCTURA DE LAIMPLEMENTACIÓN DE
EN LOS CÁLCULOS Y LOS FUNCIONAMIENTO BAJO MÓDULOS ALTAMENTE FUNCIONES DE LA FORMA
RESULTADOS CONDICIONES USUALES. INDEPENDIENTES. MÁS
COMPRENSIBLEPOSIBLE.
Factores de Calidad McCall
Operación del Producto
3 Eficiencia
Recursos de HW necesarios para realizar todas las funciones del
sistema acorde los requisitos
Típicos
1. Capacidades de procesamiento (atributos de sw que minimicen el tiempo de
procesamiento)– MIPS – millones de instrucciones por segundo, MHz – millones de ciclos por
segundo.
2. Capacidades de almacenamiento (atributos de sw que minimicen el espacio de
almacenamiento necesario)– GBs
3. Capacidades de líneas de comunicación – MBPS
4. Tiempo en recargar unidades portables del sistema …

Ejemplo: Una cadena de tiendas esta analizando a que empresa adjudicar la


construcción de su SW:
• Difieren en el volumen de almacenamiento: 20GB por computador y 100 GB en la oficina principal
• Difieren en el número de líneas de comunicación necesarias (A: 3 de 28.8 KBPS, B: 2 de igual capacidad)
Factores de Calidad McCall
Operación del Producto
4 Eficiencia
Seguridad del sistema de software
Requerimiento para prevenir el acceso a personas no autorizadas para distinguir entre la mayoría del personal
permitido para ver la información y un grupo limitado con permisos de escritura
Ejemplo:
Departamento de Ingeniería de una municipalidad local opera un GIS. El departamento está planificando
para permitir a los ciudadanos acceder al GIS a través de Internet. Los requerimientos de Software incluyen
la posibilidad de ver y copiar pero no cambiar.

5 Usabilidad
Alcance de los recursos de personal necesarios para entrenar a un nuevo empleado y operar el
sistema (Esfuerzo requerido para aprender, operar, preparar las entradas e interpretar la salida de
un programa)
Ejemplo Help Desk:
• Personal debería ser capaz de manejar al menos 60 llamadas al día
• Entrenar un nuevo empleado no debería tomar más de 2 días – luego de lo cual el entrenado debería ser
capaz de manejar al menos 45 llamadas al día.
Factores de Calidad McCall
Revisión del Producto
1 Mantenibilidad
Determinar el esfuerzo que necesitarán usuarios y personal de mantención en identificar las razones
de las fallas del software, y verificar su éxito en las correcciones.
Refieren a la estructura modular del software, a la documentación interna de los programas, a los
manuales del programador.
Ejemplo:
• Tamaño del módulo del software no deberá exceder de 30 sentencias
• La programación se adicionará a las guías y estándares de la compañía

2 Flexibilidad
Capacidades y esfuerzos requeridos para apoyar las actividades de mantención adaptativas.
Incluyen los recursos requerida para adaptar un paquete de software a una variedad de clientes de la misma línea,
un rango de productos de qué forma los cambios y adiciones al SW se pueden adaptar a cambios.

Ejemplo: SW de apoyo al profesor. Lidia con la funcionalidades de los avances del alumno, cálculo de notas, impresión de documentos,
cartas de aviso a padres.
SW debería ser adecuado para todos los profesores de todas las manterias de todos los niveles de los colegios sin grandes
complicaciones
Factores de Calidad McCall
Revisión del Producto
3 Capacidad de ser probado
Lidia con las pruebas de un sistema para su operación.
Funcionalidades especiales que ayudan a probar resultados intermedios o archivos de logs,
diagnóstico automático, monitoreo de fallas, etc.

Ejemplo: Unidad de control industrial computarizada que mide estado de producto, reporta niveles de
rendimiento y opera en situaciones predefinidas

• Desarrollar un conjunto de casos de prueba, con reacciones de esperadas en cada etapa – esto
se ejecutará cada día
Factores de Calidad McCall
Transición del Producto
1 Portabilidad
Adaptación de un sistema a otro ambiente consistente de diferente HW, SO
Ejemplo: Se requiere que un paquete diseñado y programado para operar en un Windows 2000 se transfiera a Linux y
Windows NT

2 Usabilidad
Uso de módulos de software originalmente diseñados para un proyecto en un nuevo proyecto.
Se espera ahorrar recursos, acotar tiempos de desarrollo y proveer módulos de alta calidad.
Supuesto: la mayoría de los defectos se han detectados por las actividades de SQA previas, las fallas capturadas por los usuarios originales
del SW …
Ejemplo: Sistema de operación y control de piscina de un hotel para clientes y miembros
– El JP decidió adicionar este requerimiento pues ellos desarrollaron el sistema de golden splash

3 Interoperatividad
Crear interfaces con otros sistemas o con otros equipos

Ejemplo: El firmware de un equipo de un laboratorio médico es requerido para procesar sus resultados acorde a una estructura de datos
estándar (CSV), que sirva como entrada para un número de SIS de laboratorios apegados al estándar
Resumen
Aseguramiento de
calidad de software

•Acciones
sistemáticas y
Software planificadas
Quality
Assurance requeridas
(SQA) para asegurar
la calidad de
software.
Verificación -- ¿estamos
Validación -- ¿estamos
construyendo el
construyendo el
producto
producto correcto?
correctamente?

are we building the are we building the right


Verificación y
Validación
product right? product?

Conjunto de actividades Conjunto de actividades


que aseguran que el sw que aseguran que el sw
implementa construído se ajusta a los
correctamente una requerimientos del
función específica cliente.
Revisiones
Otros que generan
objetivo beneficios
gratuitos

de software Detectar errores y


verificar asegurar
defectos en la fomentar hacer proyectos
satisfacción de cumplimiento de
lógica, función o uniformidad más manejables
requerimientos estándares
implementación
Revisiones de software

Actúan como un filtro

Descubrimiento temprano de defectos -- gran


impacto en los costos de testing y mantención.

Defectos de software presentan un efecto de


amplificación
Revisiones de software Guías De Acción

Definir tamaño, conformación y duración


Limitar tamaño del grupo
Revisar producto, no productor
Exigir preparación previa
Establecer agenda
Definir checklists
Limitar debates y rebates
Asignar recursos
Enunciar problemas, no resolverlos Entrenar a los revisores
Llevar registro Revisar las revisiones
Defectos de software

Definición
Orígenes de defectos
(típicos)
• problema o falla que causa que
un programa o sistema falle • requerimientos
completamente o entregue • diseño
resultados incorrectos
• código
No sirve no conformidad • documentación
con los requerimientos
• malas correcciones
Calidad De Software - Defectos de software
Severidades de defectos (típicas)
• serio - 1
• programa inoperable
• mayor - 2
• funciones principales desactivadas o incorrectas
• menor - 3
• funciones secundarias desactivadas o incorrectas
• superficial - 4
• formatos
Efecto de amplificación de
defectos

Sin revisiones
Con revisiones

Diseño preliminar
0 Diseño detallado
2
0 70% 3 2
Codificación/prueba de unidad
1 15 5
10 1 * 1.5 50% 5
10 24
25 10 * 3 60%

25

Para la integración
24 Prueba de integración

Prueba de validación
12
0 50% Prueba del sistema
6
0 0 50%
3
0 0 50%

Errores latentes
Remoción de defectos
Métrica fundamental, debe recolectarse con frecuencia (típicamente
mensual o trimestral)

Información recolectada: defectos detectados y sus orígenes en las


diversas etapas de la remoción de defectos (pre release)
• revisión de requerimientos
• revisión de diseño
• inspección de código
• pruebas de integración
• pruebas de aceptación

Idea: comenzar a contabilizar lo antes posibles


Análisis costo/beneficio de SQA
Costos de SQA -- prevención y evaluación

Beneficios de SQA -- asociados a disminución de rework (menos defectos y


mayor confiabilidad)

Importante que beneficios superen a los costos

Implicancia: para ganar hay que invertir

También podría gustarte