Sunteți pe pagina 1din 56

Calidad del Software

Felipe Arancibia B.
Arquitectura de Tecnologa Empresarial
Unidad III: Servicios de una Arquitectura Empresarial de
Ejecucin y Desarrollo
Conceptos Bsicos en Calidad de
Software
Existen distintos puntos de vista respecto a la calidad:

1. Filosfico: Se puede reconocer, pero no definir.

2. Usuario: Cumple con el propsito previsto (fitness for


purpose).

3. Producto: Es algo intrnseco al producto.

4. Valor: Tiene calidad para el que este dispuesto a pagar por ello.
SW vs Otros Productos Industriales
1. Complejidad del Producto:
Parmetro: Numero de Modos Operacionales.
Producto Industrial: Miles de Modos de Operacin.
Software: Millones de Posibilidades.

2. Visibilidad del Producto:


Cmo sabemos si a nuestro software le falta una puerta?
SW vs Otros Productos Industriales
3. Procesos de Desarrollo y Produccin.
3.1: Desarrollo de Producto:
Diseadores y Profesionales de QA (Quality Assurance) disean y
prueban el prototipo para detectar defectos.
3.2: Planificacin de Produccin:
Acciones previas a puesta en produccin.
3.3: Manufactura.
SW vs Otros Productos Industriales
3. Procesos de Desarrollo y Produccin.
3.1: Desarrollo de Producto:
OK: En Software es donde se hacen las pruebas.

3.2: Planificacin de Produccin:


En algunos casos s Software Llave en mano.

3.3: Manufactura.
La manufactura de Software es automtica Copiar CDs y Manuales -.
Caractersticas Bsicas del Desarrollo
de Software
1. Complejidad alta.

2. Invisibilidad del Producto.

3. Deteccin de defectos en menos fases de desarrollo y produccin.


Qu nos obliga a asegurar la Calidad
del Software?
Quien realiza o desarrolla software:
Alumnos y profesores en el mbito de la educacin.
Aficionados.
Profesionales de otras reas que desarrollan software como base para sus
trabajos.
Ingenieros de Software.
Qu nos obliga a asegurar la Calidad
del Software?
Entorno del Desarrollador Profesional:
Condiciones contractuales.
Relacin cliente-proveedor.
Trabajo en equipo.
Cooperacin y coordinacin.
Interfaces con otros sistemas software.
Cambios de componentes del equipo.
Mantenimiento de producto.
Qu nos obliga a asegurar la Calidad
del Software?
Condiciones Contractuales:
Lista de Requerimientos Funcionales.
Presupuesto del Proyecto.
Planificacin Temporal.
En algunos casos: equipos predefinidos.
Qu nos obliga a asegurar la Calidad
del Software?
Relacin Cliente-Proveedor:
Cooperacin continua.
Propenso a cambios.
Qu nos obliga a asegurar la Calidad
del Software?
Trabajo en Equipo.

Componentes con diferentes:


Criterios.
Objetivos.
Ganas.
Planteamientos Profesionales.
Etctera.

Pero con una meta en comn, queramos o no reconocerlo.


Qu nos obliga a asegurar la Calidad
del Software?
Cooperacin y Coordinacin.

La multidisciplinariedad actual exige el trabajo entre diferentes


equipos:
Otros equipos software de la misma organizacin.
Equipos de Software e Infraestructura.
Equipos cliente y proveedor.
Subcontratacin.
Qu nos obliga a asegurar la Calidad
del Software?
Cooperacin y Coordinacin.
Qu nos obliga a asegurar la Calidad
del Software?
Interfaces con otros sistemas de software:
Interfaces de entrada de otros sistemas software.
Interfaces de salida a otros sistemas software.
Interfaces de entrada y salida al panel de control.

Sistema de Sistema de Sistema de


Control de Gestin de Envo de
Asistencia Notas Informacin
Qu nos obliga a asegurar la Calidad
del Software?
Cambio de Componentes del Equipo:
Qu nos obliga a asegurar la Calidad
del Software?
Mantenimiento del Producto:

El Software no se termina cuando se entrega al


cliente, sino que NACE
Un bebe un poco problemtico.
Definicin de Calidad
Definiciones Acadmicas de Calidad:

Totalidad de aspectos o caractersticas de un producto o


servicio que le hace satisfacer necesidades explicitas o
implcitas.
ISO 8492:1986

En una situacin contractual, las necesidades suelen ser explicitas,


mientras que en otras situaciones las necesidades estn implcitas y
hay que averiguarlas y documentarlas.
Definicin de Calidad
Calidad de un producto o servicio es la capacidad de dicho producto
o servicio para satisfacer las exigencias para las que fue creado,
estando su valor medido por el grado de satisfaccin del consumidor
que lo ha adquirido o lo utiliza.

ISO 8402:1994
Definicin de Calidad
Calidad es:

El grado en que un sistema, un componente o un proceso satisface sus


requerimientos especificados.

El grado en que un sistema, un componente o un proceso satisface las


necesidades o expectativas de un cliente o usuario.

IEEE Std. 610.12-1990


Definicin de Calidad
Calidad es valor para alguien:
Traducido al entorno empresarial, algo con calidad es algo que
satisface al cliente, resolviendo sus necesidades explicitas e implcitas.

Calidad en el cumplimiento de los requerimientos.


Es suficiente el cumplimiento de los requerimientos para que un
producto sea de calidad?

Hay distintos enfoques en las definiciones de Calidad.

Hay contradicciones o todas las definiciones son


compatibles?
Definicin de Cliente
Destinatario de un producto proporcionado por el suministrador.
ISO 8402 (1994)

Cliente: Interno o Externo.

Cinco aspectos en el cliente:


El que decide.
El que compra.
El que influye.
El usuario.
El que elige.

Y a veces interesa tener en cuenta al cliente del cliente (Ejemplo:


Confederaciones).

Qu es entonces satisfaccin del cliente?


Definicin de Cliente
Para que el software pueda satisfacer al cliente debe ser usable y
proporcionar una solucin a una necesidad (implcita o explicita) del
cliente, a un costo razonable.

Calidad es la capacidad para ser usado (Juran).

Calidad es valor para el cliente (Weinberg).

Calidad es el grado en que el cliente o usuario percibe que


el software satisface el conjunto de sus expectativas (IEEE
Std. 610.12-1990).
Definicin de Software
Qu es Software?

Programas de ordenador, procedimientos y posible documentacin y


datos asociados, pertenecientes a la operacin de un sistema
informtico.

IEEE Std. 610.12-1990


Definicin de Software de Calidad
Calidad es cumplir con los requerimientos (Juran).
Calidad es cumplir con los requerimientos de una persona
determinada (Weinberg).

Ejemplo: Un editor de textos que sea incapaz de manejar archivos de


ms de 200 o 300 pginas, ser un software de calidad para el que
slo escribe documentos de pocas pginas.

Sin embargo, el mismo editor de textos ser un software de mala


calidad para el que escriba libros o documentos extensos.
Revisin de Errores
Cero defectos = Software de
Ejemplo: Un editor de textos Calidad?
que sea incapaz de manejar
archivos de ms de 200 o 300 Muchas posibilidades =
Software de Calidad?
pginas, ser un software de
calidad para el que slo escribe Cdigo Elegante = Software de
documentos de pocas pginas. Calidad?

Rapidez = Software de
Sin embargo, el mismo editor Calidad?
de textos ser un software de
mala calidad para el que escriba Precio = Software de Calidad?

libros o documentos extensos.


Facilidad de Uso = Software de
Calidad?
Definicin de Calidad del Software
Calidad del Software

Conjunto de caractersticas que confieren al software la aptitud para


satisfacer las necesidades establecidas y las implcitas.

Diferencia entre Software de Calidad y Calidad del


Software

La primera es la percepcin que tiene un cliente, mientras que el


segundo es algo objetivo y cuantificado.
Qu es un Error de Software?
Debemos diferenciar entre:
Error:
- Inconsistencia gramatical en alguna o algunas lneas de cdigo.
- Incoherencia con respecto a algn requerimiento.
Fault (Defecto):
- Es un error de software que no es mitigado por otras lneas.
Failure (Fallo, Avera):
- Es un defecto que ocurre.

Por Ejemplo, un software para una cadena farmacutica:


No se debe vender a clientes que tengan una deuda superior a $20.000,
el programador puso $50.000.
- Es un defecto, pero no es un fallo, pues las farmacias no dan crdito.
- Pero, Y si cambia el criterio?
Causas de Errores en el Software
1. Mala definicin de Requerimientos.
2. Mala comunicacin con el Cliente.
3. Desviaciones deliberadas.
Mala reutilizacin.
Presupuesto/Tiempo.
4. Errores Lgicos de Diseo.
Algoritmos errneos.
Secuenciamiento errneo.
Condiciones de frontera errneos.
Omisin de estados.
Omisin de tratamiento de excepciones.
5. Errores de Codificacin.
6. Incumplimiento de Estndares de Codificacin y Documentacin.
7. Pruebas Incompletas.
8. Errores de Procedimiento.
9. Errores de Documentacin.
CALIDAD DE
PRODUCTO
Calidad de Producto
El objetivo no es necesariamente alcanzar una calidad perfecta, sino la
necesaria y suficiente para cada contexto de uso a la hora de la entrega
y del uso por parte de los usuarios.

Es necesario comprender las necesidades reales de los usuarios con


tanto detalle como sea posible (requerimientos).
Diferentes Aspectos de la Calidad
Interna: Medible a partir de las caractersticas intrnsecas, como el
cdigo fuente.

Externa: Medible en el comportamiento del producto, como en una


prueba.

En uso: Durante la utilizacin efectiva por parte del usuario.


Calidad de Producto
Calidad en el Ciclo de Vida del
Software
Caractersticas, Subcaractersticas y
Atributos de Calidad
Modelo de McCall
ISO/IEC 9126
Calidad de los Productos de Software
ISO/IEC 9126: Calidad de los Productos de Software.

Parte 1: Modelo de Calidad.


Parte 2: Mtricas Externas.
Parte 3: Mtricas Internas.
Parte 4: Mtricas de Calidad en Uso.
ISO/IEC 9126
Calidad de los Productos de Software
Ejemplos de Uso:
Validar la completitud de una definicin de requerimientos.
Identificar requerimientos de Software.
Identificar requisitos para las pruebas del software.
Identificar requisitos para el aseguramiento de la calidad.
Identificar criterios de aceptacin para un producto software
completado.
ISO/IEC 9126
Calidad de los Productos de Software
ISO/IEC 9126
Funcionalidad
Adecuacin
Capacidad del producto software para proporcionar un conjunto apropiado de funciones
para tareas y objetivos de usuario especificados.

Exactitud
Capacidad del producto software para proporcionar los resultados o efectos correctos o
acordados, con el grado necesario de precisin.

Interoperabilidad
Capacidad del producto software para interactuar con uno o ms sistemas especificados.

Seguridad del Acceso


Capacidad del producto software para proteger informacin y datos de manera que las
personas o sistemas no autorizados no puedan leerlos o modificarlos, al tiempo que no se
deniega el acceso a las personas o sistemas autorizados.

Cumplimiento Funcional
Capacidad del producto software para adherirse a normas, convenciones o regulaciones en
leyes y prescripciones similares relacionadas con funcionalidad.
ISO/IEC 9126
Fiabilidad
Madurez
Capacidad del producto software para evitar fallos como resultado de fallos
en el software.

Tolerancia a fallos
Capacidad del software para mantener un nivel especificado de prestaciones
en caso de fallos de software, o de infringir sus interfaces especificadas.

Capacidad de Recuperacin
Capacidad del producto software para reestablecer un nivel de prestaciones
especificado, y de recuperar los datos directamente afectados en caso de
fallo.

Cumplimiento de la Fiabilidad
Capacidad del producto software para adherirse a normas, convenciones o
regulaciones relacionadas con la fiabilidad.
ISO/IEC 9126
Usabilidad
Capacidad para ser Entendido
Capacidad del producto software que permite al usuario entender si el software es
adecuado, y como puede ser usado para unas tareas o condiciones de uso particulares.

Capacidad para ser Aprendido


Capacidad del producto software que permite al usuario aprender sobre su aplicacin.

Capacidad para ser Operado


Capacidad del producto software que permite al usuario operarlo y controlarlo.

Capacidad de Atraccin
Capacidad del producto software para ser atractivo al usuario.

Cumplimiento de la Usabilidad
Capacidad del producto software para adherirse a normas, convenciones, guas de estilo o
regulaciones relacionadas con la usabilidad.
ISO/IEC 9126
Eficiencia
Comportamiento Temporal
Capacidad del producto software para proporcionar tiempos de
respuesta, tiempos de proceso y potencia apropiados, bajo
condiciones determinadas.

Utilizacin de Recursos
Capacidad del producto software para usar las cantidades y tipos de
recursos adecuados cuando el software lleva a cabo su funcin bajo
condiciones determinadas.

Cumplimiento de la Eficiencia
Capacidad del producto software para adherirse a normas o
convenciones relacionadas con la eficiencia.
ISO/IEC 9126
Mantenibilidad
Capacidad para ser Analizado
Es la capacidad del producto software para serle diagnosticadas deficiencias o causas de los
fallos en el software, o para identificar las partes que han de ser modificadas.

Capacidad para ser cambiado


Capacidad del producto software que permite que una determinada modificacin sea
implementada.

Estabilidad
Capacidad del producto software para evitar efectos inesperados debidos a modificaciones
del software.

Capacidad para ser probado


Capacidad del producto software que permite que el software modificado sea validado.

Cumplimiento de la Mantenibilidad
Capacidad del producto software para adherirse a normas o convenciones relacionadas con
la mantenibilidad.
ISO/IEC 9126
Portabilidad
Adaptabilidad
Capacidad del producto software para ser adaptado a diferentes entornos especificados, sin
aplicar acciones o mecanismos distintos de aquellos proporcionados para este propsito por
el propio software considerado.

Instalabilidad
Capacidad del producto software para ser instalado en un entorno especificado.

Coexistencia
Capacidad del producto software para coexistir con otro software independiente, en un
entorno comn, compartiendo recursos comunes.

Capacidad para reemplazar


Capacidad del producto software para ser usado en lugar de otro producto software, para
el mismo propsito, en el mismo entorno.

Cumplimiento de la Portabilidad
Capacidad del producto software para adherirse a normas o convenciones relacionadas con
la portabilidad.
ISO/IEC 9126
Modelo de Calidad para Calidad en Uso
ISO/IEC 9126
Modelo de Calidad para Calidad en Uso
Efectividad
Capacidad del producto software para permitir a los usuarios alcanzar objetivos
especificados con exactitud y completitud, en un contexto de uso especificado.

Productividad
Capacidad del producto software para permitir a los usuarios gastar una cantidad
adecuada de recursos con relacin a la efectividad alcanzada, en un contexto de uso
especificado.

Seguridad fsica
Capacidad del producto software para alcanzar niveles aceptables del riesgo de hacer
dao a personas, al negocio, al software, a las propiedades o al medio ambiente en un
contexto de uso especificado.

Satisfaccin
Capacidad del producto software para satisfacer a los usuarios en un contexto de uso
especificado.
ISO/IEC 14598
Evaluacin del Producto Software
ISO/IEC 14598
Evaluacin del Producto Software
La norma UNE 71048: Tecnologa de la Informacin Evaluacin del
Producto Software (Soporte Lgico):

Parte 1: Visin General.


Parte 2: Planificacin y Gestin.
Parte 3: El Proceso para Desarrolladores.
Parte 4: El Proceso para Adquisidores.
Parte 5: El Proceso para Evaluadores.
Parte 6: Documentacin de los Mdulos de Evaluacin.
ISO/IEC 14598
Evaluacin del Producto Software
ISO/IEC 14598
Establecer el Propsito de la Evaluacin
Productos Intermedios:
Decidir sobre la aceptacin de un producto intermedio de un subcontratista.
Decidir cuando un proceso esta completo y cuando remitir los productos al
siguiente proceso.
Predecir o estimar la calidad del producto final.
Recoger informacin con objeto de controlar y gestionar el proceso.

Producto Final:
Decidir sobre la aceptacin del producto.
Decidir cuando publicar el producto.
Comparar el producto con otros productos competitivos.
Seleccionar un producto entre productos alternativos.
Valorar tanto el aspecto positivo como negativo cuando esta en uso.
Decidir cuando mejorar o reemplazar un producto.
ISO/IEC 14598
Identificar los tipos de producto(s) a ser
evaluados
ISO/IEC 14598
Evaluacin del Producto Software
Especificar el modelo de calidad
ISO 9126-1

Seleccionar mtricas
ISO 9126-2 y 9126-3.
ISO/IEC 14598
Establecer niveles de puntuacin para
las mtricas
ISO/IEC 14598
Establecer criterios para la evaluacin

El evaluador debe preparar un procedimiento para esto, con criterios


distintos para diferentes caractersticas de calidad, cada uno pudiendo
estar expresado en trminos de subcaractersticas individuales, o una
combinacin ponderada de subcaractersticas. El procedimiento
habitualmente incluir otros aspectos como el tiempo y el costo que
contribuyen a la estimacin de la calidad de un producto software en un
entorno concreto.
ISO/IEC 14598
Producir un Plan de Evaluacin
El plan de evaluacin describe los mtodos de evaluacin y el programa
de acciones del evaluador (UNE 71048-3, UNE 71048-4 o UNE 71048-
5). Debe ser consistente con el plan de mediciones (UNE 71048-2).
ISO/IEC 14598
Evaluacin del Producto Software
Tomar Medidas
Para la medicin, las mtricas seleccionadas se aplican al producto
software. Los resultados son valores expresados en las escalas de las
mtricas.

Comparar con los criterios


En el paso de puntuacin, el valor medido se compara con los criterios
predeterminados.

Valorar los resultados


La valoracin, que resume un conjunto de niveles calificados, es el paso
final del proceso de evaluacin del software.

S-ar putea să vă placă și