You are on page 1of 49

Calidad de Software

Primera Unidad:

FUNDAMENTOS DE CALIDAD
DE SOFTWARE
Sesin 1 :

Conceptos Bsicos de Calidad de Software

Mg. Ing. David Ortiz

Escuela profesional de Ingeniera de Sistemas


CONTENIDO

1. Introduccin
2. SW vs. otros productos industriales
3. Caractersticas bsicas
4. Definiciones de Calidad
5. Casos
Conceptos Bsicos

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 est dispuesto a pagar por


ello.
SW vs. otros productos industriales

1. Complejidad del producto


2. Visibilidad del producto
3. Procesos de desarrollo y produccin
SW vs. otros productos industriales:
complejidad del producto

Parmetro: nmero de modos operacionales


Producto industrial: miles de modos de operacin.
SW: millones de posibilidades.
SW vs. otros productos industriales:
visibilidad del producto

Los productos SW son invisibles


Cmo sabemos si a nuestro SW le falta una
puerta?
SW vs. otros productos industriales:
procesos de desarrollo y produccin (I)

1. Desarrollo de producto:
Diseadores y profesionales de QA (Quality
Assurance) disean y prueban el prototipo para
detectar defectos.
2. Planificacin de produccin:
Acciones previas a puesta en produccin
SW vs. otros productos industriales:
procesos de desarrollo y produccin (y II)

1. Desarrollo de producto:
OK: en SW es donde se hacen las pruebas.
2. Planificacin de produccin:
En algunos casos s software llave en mano.
3. Manufactura
La manufactura SW 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 en el SW (I)

Quin realiza Software:


Alumnos y profesores en el mbito de la
educacin
Aficionados
Profesionales de otras reas que desarrollan SW
como base para sus trabajos
Ingenieros de Software
Qu nos obliga a asegurar la Calidad en el SW
(II): entorno del desarrollador profesional

1. Condiciones contractuales
2. Relacin cliente-proveedor
3. Trabajo en equipo
4. Cooperacin y coordinacin
5. Interfaces con otros sistemas software
6. Cambios de componentes del equipo
7. Mantenimiento de producto
Qu nos obliga a asegurar la Calidad en el
SW (III): condiciones contractuales

Lista de requisitos funcionales


Presupuesto del proyecto
Planificacin temporal
En algunos casos: equipos predefinidos
Qu nos obliga a asegurar la Calidad en el SW
(IV): relacin cliente-proveedor

Cooperacin continua.
Propenso a cambios
Qu nos obliga a asegurar la Calidad en el SW (V):
trabajo en equipo

Componentes con diferentes:


Criterios
Objetivos
Ganas
Planteamientos profesionales
...
... Pero con una meta comn, queramos o
no.
Qu nos obliga a asegurar la Calidad en el SW (VI):
cooperacin y coordinacin

La multidisciplinariedad actual exige el


trabajo entre diferentes equipos:
Otros equipos sw de la misma organizacin
Equipos SW y HW
Equipos cliente y proveedor
Subcontratas
Qu nos obliga a asegurar la Calidad en el SW (VII):
cooperacin y coordinacin

Otro equipo
subcontratado
Equipo de
Equipo de
Desarrollo HW
Desarrollo SW

Equipo de
Desarrollo SW

Otro equipo
Nuestro subcontratado
Equipo

Otro equipo
Otro equipo subcontratado
Equipo de subcontratado
Desarrollo del
Cliente
Qu nos obliga a asegurar la Calidad en el SW (VIII):
interfaces con otros sistemas software

Interfaces de entrada de otros sistemas sw


Interfaces de salida a otros sistemas sw
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 en el SW (IX):
cambio de componentes del equipo
Qu nos obliga a asegurar la Calidad en el SW (y X):
mantenimiento de producto

El software no se termina cuando se entrega


al cliente, sino que NACE!!!
... un beb un
poco problemtico
Definicin de Calidad (I)

Definiciones acadmicas de Calidad:

Totalidad de aspectos o caractersticas de un producto o


servicio que le hace satisfacer necesidades explcitas o
implcitas.

ISO 8492:1986

En una situacin contractual, las necesidades suelen ser explcitas,


mientras que en otras situaciones las necesidades estn implcitas
y hay que averiguarlas y documentarlas.
Definicin de Calidad (II)

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 (III)

Calidad es:

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


satisface sus requisitos 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 (y IV)

Calidad es valor para alguien


Traducido al entorno empresarial, algo con calidad es
algo que satisface al cliente, resolviendo sus necesidades
explcitas e implcitas.
Calidad es el cumplimiento de los requisitos.
Es suficiente el cumplimiento de los requisitos 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 (I)

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.
Qu es entonces satisfaccin del cliente?
Definicin de cliente (y II)

Para que el software pueda satisfacer al cliente debe ser usable y


proporcionar una solucin a una necesidad (explcita o implcita)
del cliente, a un coste razonable.

Calidad es capacidad para ser usado

Calidad es valor para el cliente

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


Calidad es cumplir con los requisitos de una persona
determinada.

Ej: Un editor de textos que sea cero defectos => sw de calidad?


incapaz de manejar ficheros de
muchas posibilidades => sw de
ms de 200 o 300 pginas ser un
calidad?
software de calidad para el que
slo escribe documentos de pocas cdigo elegante => sw de calidad?
pginas.
rapidez => sw de calidad?
Sin embargo el mismo editor de
precio => sw de calidad?
textos ser un software de mala
calidad para el que escriba libros o facilidad de uso => sw de calidad?
documentos extensos.
Definicin de calidad de 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. La segunda es


algo objetivo y cuantificado.
Qu es un error de software? (I)

Debemos diferenciar entre:


Error:
Inconsistencia gramatical en alguna o algunas lneas de cdigo.
Incoherencia con respecto a algn requisito.
Fault: defecto
Es un error software que no es mitigado por otras lneas.
Failure: fallo, avera
Es un defecto que ocurre.
Qu es un error de software? (y II)

Software para una cadena farmacutica:


No se debe vender a clientes que deban ms de
200: el programador puso 500.
Es un defecto, pero no es un fallo, pues pues las
farmacias no dan crdito.
Pero, y si cambia el criterio?
Causas de Errores de Software (I)

1. Mala definicin de requisitos


2. Mala comunicacin con el cliente
3. Desviaciones deliberadas
Mala reutilizacin
Presupuesto/ tiempo
4. Errores lgicos de diseo
Algoritmos errneos
Secuenciamiento errneo
Condiciones frontera errneas
Omisin de estados
Omisin de tratamiento de excepciones
Causas de Errores de Software (y II)

5. Errores de codificacin
6. Incumplimiento de estndares de codificacin y
documentacin
7. Pruebas incompletas
8. Errores de procedimiento
9. Errores de documentacin
Sistema de Gestin de la Calidad (I)

Sistema de gestin de la calidad

Conjunto de elementos mutuamente relacionados que


interactan para establecer la poltica y los objetivos de calidad
de una organizacin, y para dirigir y controlar dicha organizacin
para lograr dichos objetivos.

ISO 9000:2000
Sistema de Gestin de Calidad (y II)

Actividades coordinadas para dirigir y controlar una


organizacin en lo relativo a la calidad.
Generalmente incluye el establecimiento de:
poltica de la calidad
objetivos de calidad
planificacin de la calidad
control de la calidad
mejora de la calidad
aseguramiento de la calidad
ISO 9000:000
Poltica de Calidad

Intenciones globales y orientacin de una organizacin


relativas a la calidad tal como se expresan formalmente por
la Alta Direccin.
Proporciona el marco de referencia para el establecimiento
de los objetivos de la calidad.
ISO 9000:2000
Ejemplos:
Cero defectos
Satisfaccin del cliente.
Prevencin de defectos.
Rapidez de entrega.
Mnimo coste.
Mantenibilidad.
Planificacin de Calidad

Parte de la gestin de la calidad enfocada al establecimiento de


los objetivos de la calidad y a la especificacin de los procesos
operativos necesarios y de los recursos relacionados para cumplir
los objetivos de la calidad.

ISO 9000:2000
Mejora de Calidad

Parte de la gestin de la calidad orientada a aumentar la


capacidad de cumplir con los requisitos de la calidad.

ISO 9000:2000
Aseguramiento de Calidad (I)

Parte de la gestin de la calidad orientada a proporcionar


confianza en que se cumplirn los requisitos de la calidad.

ISO 9000:2000

El aseguramiento de la calidad del software es el sistema de


mtodos y procedimientos empleados para asegurar que el
producto software satisface sus requisitos. Este sistema
implica la planificacin, medida y seguimiento de las actividades
de desarrollo llevadas a cabo.
Aseguramiento de Calidad (y II)

Aseguramiento del producto software


El aseguramiento del producto es el conjunto de
actividades a travs de las cuales se obtiene la adecuacin
al uso, independientemente de dnde o cuando se realicen.
Implica asegurar que el producto es el adecuado y es
desarrollado al coste y en el plazo previsto.

Aseguramiento del software


Conjunto de actividades planificadas y sistemticas que
aseguran que los productos y procesos software son
conformes a los requisitos, estndares y procedimientos.
Bajo el trmino producto se incluye el software, los datos
asociados, la documentacin y todo el papeleo de soporte y
reporte
ltimos conceptos

Conformidad:
Cumplimiento de un requisito.
No conformidad
Incumplimiento de un requisito.
Defecto:
Incumplimiento de un requisito asociado a un uso previsto
o especificado.
ISO 9000:2000
CASOS

Espacio: misiones fallidas

El 4 de junio de 1996 la Agencia


Espacial Europea lanz el cohete
Ariane 5. Un error de programacin
en el mdulo de gestin provoc la
autodestruccin del cohete 37
segundos despus del despegue.
CASOS

Otro caso parecido, aunque de mayor


presupuesto, fue el de la sonda de la
NASA Mars Climate Orbiter, que fue
lanzada a Marte el 11 de diciembre
de 1998 y 286 das despus sobrevol
el planeta rojo a 57 kilmetros de su
superficie en vez de los 150 previstos,
lo que provoc que se destruyera en
atmsfera marciana. El culpable del
error en la trayectoria de la sonda fue
el 'software' informtico basado en la
Tierra. El fallo destruy un proyecto
de 327 millones de dlares.
CASOS

Dinero: Knight Capital


En agosto de 2012, un error de programa
casi provoc la quiebra de la empresa de
inversin Knight Capital. La compaa
perdi 500 millones de dlares en media
hora debido a que sus computadoras
comenzaron a comprar y vender millones
de acciones sin ningn tipo de control
humano. Como resultado, el precio de las
acciones de Knight Capital cay un 75% en
dos das.
CASOS

Medicina: radioterapia
Un error de programacin de la unidad de
control de la mquina de radioterapia
Therac-25 caus entre 1985 y 1987 al
menos seis accidentes en los que los
pacientes recibieron sobredosis masivas de
radiacin. Al menos tres de estos pacientes
fallecieron como consecuencia directa del
exceso de radiacin. Los expertos creen
que el fallo fue causado por un error en el
cdigo que oblig al programa a realizar la
misma accin varias veces.
CASOS

Internet: Amazon
La desactivacin de los servidores del gigante de Internet Amazon el
verano de 2012 priv a muchas personas de sus datos almacenados en la
nube. El accidente, causado inicialmente por una fuerte tormenta, se
agrav repentinamente debido a varios errores del 'software' que
provocaron un fallo de programacin en cadena.
CASOS

Infraestructura: apagn en el noreste de EE.UU.


En agosto del 2003 varios estados del noreste de EE.UU. y la provincia
canadiense de Ontario se quedaron sin luz debido a un corte
de energa resultado de un accidente local. El accidente pas
desapercibido a causa de un fallo del software de vigilancia del
funcionamiento de General Electric Energy y provoc una cadena de
errores.
CASOS

Transporte: Aerolnea American Airlines


En 2013, un error de programacin provoc el caos en la compaa
de aviacin American Airlines. La unin de dos sistemas como resultado
de la fusin de varias compaas areas origin un fallo en el sistema de
reserva de pasajes. Concretamente, el problema surgi con toda
probabilidad cuando se intent unificar plataformas escritas en
diferentes lenguajes de programacin.
CASOS

Justicia: liberacin anticipada de delincuentes


En octubre de 2005 se inform de que 23 presos del Departamento de
Correccionales de Michigan (EE.UU.) haban sido puestos en libertad antes de
que finalizara su condena debido a un fallo de programacin informtica.
Como resultado, los delincuentes salieron de prisin entre 39 y 161 das
antes de lo previsto. El representante de la asamblea estatal, Rick Jones,
expres su preocupacin por el caso, pero seal que le "tranquilizaba" que
los presos liberados no fueran asesinos.
Solo para los que quieren salir adelante

You might also like