Está en la página 1de 179

Aseguramiento de la

Calidad del Software


M.C. Juan Carlos Olivares Rojas
jcolivar@itmorelia.edu.mx
http://antares.itmorelia.edu.mx/~jcolivar/
@jcolivares

Enero 2010

Competencias
Comprende la importancia de la calidad y
su aseguramiento en el desarrollo de
software.
Genricas
Instrumentales: Capacidad de anlisis y
sntesis, Solucin de problemas, Toma de
decisiones.

Competencias
Interpersonales: Capacidad de trabajar en
equipo
interdisciplinario,
Compromiso
tico.
Sistmicas: Capacidad de aplicar los
conocimientos en la prctica, Habilidades
de investigacin, Capacidad de generar
nuevas ideas (creatividad), Liderazgo,
Capacidad para disear y gestionar
proyectos,
Iniciativa
y
espritu
emprendedor,
Preocupacin
por
la
calidad, Bsqueda del logro.

Temario
Conceptos bsicos.
Relacin de la Ing. de Software con SQA.
Definicin y propsito del SQA.
Problemas que resuelve la SQA.
Calidad del software en el ciclo de vida
del mismo.

Temario
Roles y responsabilidades de los equipos
de desarrollo.
Habilidades y capacidades del personal
del SQA.
Actividades del SQA.
Mtodos y herramientas.

Evidencias
Definicin propia de Calidad 5%
Catlogo
de
empresas
que
han
implementado controles de calidad en sus
procesos de desarrollo de software. 5%
Documento escrito con la descripcin del
puesto de SQA. 10%
Anlisis FODA de los procesos de desarrollo
de software de una empresa. 10%

Evidencias
Hoja de control de calidad estadstico con
las variables de Lneas de Cdigo, Errores
y Tiempo de Codificacin en el desarrollo
de un software especfico. 10%
Otras actividades 10%
Actividad Evaluadora Parcial 50%

Equipos
E1: Vctor Hernndez y David Sandoval:
Proyecto Mitecua
E2: Dante Solorio y Huber
Proyecto Interprendedor

Duarte,

E3: Mara Guadalupe Orozco, Mdulo de


Tutores
E4: Jose Cid y Jose Garca: Sistema de
Control y Registro de Incidencias.

Equipos
E5: Carlos Fabi

Qu tiene ms calidad?

Los dos tienen


la misma
calidad siempre
y cuando
cumplan con
sus
requerimientos

Para ello
debemos
probar sus
especificacione

Introduccin
Los errores del software le salen muy
Conceptos
bsicos
caros a Estados Unidos: 59 500 millones
de dlares al ao.
50% de los fallos corresponde a los
usuarios el resto a los programadores y
vendedores.
Las pruebas al inicio del ciclo reduciran
los costos por fallos en 22 200 millones
de dlares.

Introduccin
80% de los costos de desarrollo de
Calidad
del
Software
programas se dedican a detectar y
corregir defectos.
La Academia de Ciencias de Estados
Unidos pidi al Congreso una ley que
atribuya a las casas de software una
responsabilidad
civil
por
daos
y
perjuicios a las empresa.

Introduccin
La industria del software presenta
Calidad
del
Software
algunas deficiencias como:
Falta de competitividad
Dbil gestin administrativa
No se aplican estndares internacionales

Introduccin
Calidad para la mayora de las personas:

Concepto popular de calidad

Producto bueno
Sinnimo de bien construido o fabricado
Lo mejor
Lo contrario de engao
La tienen las cosas caras

Introduccin
La calidad es un concepto muy asbtracto
Calidad
del
software
de definir. Generalmente, es transparente
cuando est presente, pero fcilmente
reconocible en su ausencia.
Algunas definiciones bsicas de calidad:
Cualidad o conjunto de cualidades de una
persona o cosa que permiten compararla
con otras de su especie

Introduccin
I do not worry whether something is
Calidad
del
software
cheap or expensive. I only worry if it is
good. If it is good enough, the public will
pay you back for it
Walt Disney
Cmo se distinguen las empresas de
otras?
A travs de orientar sus mejores
prcticas hacia los clientes

Introduccin
Adecuacin (del producto) al uso (Juran)

Calidad del Software

Conformidad
confiabilidad
(Deming)

con
en
el

requisitos
y
funcionamiento

Cero defectos (Crosby)


Prdida econmica que un producto
supone para la sociedad desde el
momento de su expedicin (Taguchi)

Introduccin
Grado en el que un conjunto de
Calidad
del
Software
caractersticas inherentes cumple con los
requisitos (ISO 9000:2000).
Un buen producto no es el que cumple
con una determinada especificacin, sino
el que es bien recibido por el cliente
(Drucker)
La
calidad
no
multidimensional.

es

absoluta,

es

Introduccin
Existen Tipos de calidad?
Calidad del Software
Ms bien enfoques
GESTIN DE
LA CALIDAD

Introduccin
Algunos ejemplos de falta de calidad en
Calidad
del
software
el software:
El programa no est probado
El sistema operativo est incompleto
No estn escritos los requisitos
Estamos fuera de tiempo en un proyecto

Introduccin
En el pasado las empresas vean a la
Calidad
del
software
calidad como un gasto.
Cada vez ms, las empresas se dan
cuenta de que invertir en calidad es una
de las inversiones ms rentables que
pueden hacer
Cuesta mucho menos que no hacer
nada.

Introduccin
Se tienen creencias errneas de Calidad:

Calidad del Software

Analoga de
(Crosby):

la

calidad

con

el

sexo

Todo el mundo es partidario


Todo el mundo cree que la entiende
Todo el mundo cree que los problemas en
esta rea son culpa de otros

Introduccin
No puede medirse / Puede medirse su
Calidad del Software
economa
La calidad cuesta / Retorno de inversin
favorable
Los problemas los provocan los empleados
/ Todo el mundo est implicado
La calidad se origina en el Departamento
de Calidad / Todos deben colaborar

Introduccin
Una mejor definicin de calidad es:
Calidad
del
software
grado
en
que
un
conjunto
de
caractersticas inherentes cumplen con
unos requisitos.
En
pocas
palabras:
SATISFACER
NECESIDADES Y EXPECTATIVAS DE LOS
CLIENTES
Calidad = cliente satisfecho

Introduccin
Slo el 10 - 15 % de las compaas
Calidad
del
Software
miden la satisfaccin de sus clientes. El
resto mide la insatisfaccin: quejas,
reclamaciones,
devoluciones,
reparaciones, etc.
La retroalimentacin por parte del cliente
del producto es importante qu mtodos
consideras que pueden implementarse?

Ciclo Deaming (mejora


continua)
PLANEAR

DEFINIR
METAS

ACTUAR

ACTUAR
DE FORMA
CORRECTIVA

DEFINIR
METODOS

VERIFICAR LOS
RESULTADOS

EDUCAR Y
ENTRENAR

EJECUTAR
LA TAREA

COMPROBAR

HACER

Calidad del Software


El objetivo fundamental del Desarrollo
Conceptos
bsicos
Estructurado de Proyectos es lograr la
calidad del software.
Por calidad se entienden muchas cosas.
Para nuestro curso lo entenderemos
como realizar 100% bien las cosas en el
menor
tiempo
posible
(eficacia
y
eficiencia)

Calidad del Software


La calidad es relativa a las personas, a su
Calidad
del
Software
edad, a las circunstancias de trabajo, el
tiempo
Un caramelo para un nio.
El tiempo varia las percepciones.

La calidad tiene diferentes perspectivas.

Calidad del Software


Perspectivas de la caldad

Calidad del Software

Oportunidad

Co
st
o

Funcionalidad

Calidad del Software


Vistas de la calidad, Garvin (1984):

Calidad del Software

Transcedental
innata)

(calidad

excelencia

Basada en el usuario (adecuacin al


propsito)
Basada en el fabricante (conformidad con
requisitos)

Calidad del Software


Basada en el producto (econmica)

Calidad del Software

Basada en el valor (precio asequible)


Se necesita de los tres enfoques para
lograr la calidad total

Calidad del Software


En general la Ing. Sw tiene los objetivos
Calidad
de
Software
de que el software sea correcto, utilizable
y costo-efectivo.
Sinnimos de calidad es que est libre de
errores. Muchas de las metodologas de
software actuales se basan en esta
premisa.

Calidad del Software


Por qu es difcil lograr la calidad del
Calidad
de
Software
software?
El software es un producto intangible el
cual se logra a travs de un proceso
creativo ya que programar es un arte, el
cual no puede ser sistematizado del todo.

Calidad del Software

Calidad del Software

Por qu es importante el Desarrollo de


Proyectos de forma Metodolgica? El
software es cada vez ms complejo y
costosos que se compara con construir un
edificio.
En 1968 se da un hito importante al
ocurrir la crisis del software y definirse
la Ingeniera de Software como tal.

Calidad del Software

Puede hacerlo una sola persona


Requiere:
Modelado mnimo
Proceso simple
Herramientas simples
Calidad no tan demandante

Calidad del Software

Construida eficientemente y en un tiempo


razonable por un equipo
Requiere:
Modelado
Proceso bien definido
Herramientas ms sofisticadas
Calidad Requerida

Calidad del Software

No cualquier persona o grupo de persona lo realiza.


Imposible sin tcnicas de Ingeniera

Calidad del Software


Para lograr la calidad de un producto de
Calidad
del Software
desarrollo
de software
se necesita que la
organizacin se gestione de forma
sistemtica y transparente. Para ello, ha
surgido lo que se conoce como Sistema
de Gestin de Calidad (SGC).
Tarea: En qu consiste el SGC del
Tecnolgico de Morelia? prximo jueves.
En equipos de dos personas presentar un
resumen (abstract). [no ocupa de ms
requerimientos]

Calidad del Software


De acuerdo con cifras oficiales, el gasto
total en productos de software y
tecnologas de informacin en Mxico
durante 2008 fue cercano a los 1,000
millones de dlares; sin embargo, slo
una fraccin de esta demanda fue
satisfecha por empresas nacionales.

Calidad del Software


Software
LasCalidad
elevadas del
importaciones
se en
deben, en
parte, al alto
nmero de empresas
Mxico
consultoras de origen extranjero.

Las empresas filiales de compaas


extranjeras representan alrededor del 30
por ciento de sus asociados pero
concentran alrededor del 75 por ciento
de las ventas.

Calidad del Software


deldeSoftware
El Calidad
perfil actual
la industriaen
nacional
resulta mayoritariamente
de micro y
Mxico
pequeas empresas (83%).

Las empresas desarrolladoras de software


(definicin del PROSOFT), son de un
tamao muy inferior al promedio
internacional que es de 250 empleados.

Calidad del Software


Calidad de
del
Software
en
Clasificacin
empresas
desarrolladoras
de software: Mxico
Nmero Nmero
de
de
Porcenta
Emplead Empresa
je
os
s
Micro
1 a 10
Pequea 11 a 50
Mediana 51 a 100
Ms de
Grande
100

619
629
130

41%
42%
9%

114

8%

Calidad del Software


Calidad
deldeSoftware
Factores
crticos
xito de laen
industria
de software enMxico
Mxico:
Mxico cuenta con buena dotacin de
capital
humano
e
infraestructura
tecnolgica, pero la calidad de la mano
de obra y el costo de acceso a la
infraestructura son un freno para la
competitividad de la industria.

Calidad del Software


Calidad
del Software en
Puntos
Fuertes:
Mxico
La matrcula en reas de TI crece de
manera exponencial.
Se
tiene
la
mejor
infraestructura
tecnolgica en latinoamrica despus de
Brasil.

Calidad del Software


Calidad
del Software en
Puntos
dbiles:
Mxico
Existe poca investigacin y falta de
acceso a crditos.
La mano de obra es calificada pero
requiere
de
mucho
tiempo
de
entrenamiento.
A pesar de que se cuenta con mucha
infraestructura de TI, el uso de sta es
cara.

Calidad del Software


della Software
en
La Calidad
oferta de
industria est
orientada a la Mxico
provisin de servicios.

muy

Las servicios con mayor contribucin a la


oferta son:
Desarrollo e Integracin
Mantenimiento y Soporte de Software
Consultora

Calidad del Software


en pases
En Calidad
Mxico del
comoSoftware
en muchos
subdesarrollados
la brecha digital es muy
Mxico
marcada.

por
qu
los
Estadounidenses
y
Canadienses prefieren la mano de obra
Hind si al final de cuentas en Mxico se
tienen muchos factores crticos de xito
como: la cercana, afinidad cultural,
menores costos de mano de obra y fcil
traslado?

Evidencia 2
Calidaddedel Empresas
Software que
en
Catlogo
implementadoMxico
controles de calidad

han
en el

desarrollo de software.

En parejas, encontrar una empresa de la


ciudad, estado, o regin cercana que
desarrolle software con controles de
calidad. Investigar que controles de
calidad tiene y COMO LOS IMPLEMENTA
(dar ejemplos). 80% (los porcentajes se
dividen con respecto al nmero de
controles).

Evidencia 2
Software
en (que
Se Calidad
revisar la del
originalidad
del trabajo
no est repetido)
5% extra. Adems de
Mxico
premiar la investigacin de campo 5% extra
(anexando evidencias respectivas).

Se necesita que se d una explicacin lo


ms simple de los controles de calidad.
10%
Se aplicarn las mismas reglas en cuestin
de ortografa 10%
Entrega: mircoles 3 de febrero

Radiografa Industria Sw Mex


Tipos de Organizacin

Radiografa Industria Sw Mex


Esquema de Contratacin

Radiografa Industria Sw Mex


Edad

Radiografa Industria Sw Mex


Escolaridad

Radiografa Industria Sw Mex


Gnero

Radiografa Industria Sw Mex


Antigedad

Radiografa Industria Sw Mex


Salarios

Radiografa Industria Sw Mex


Salarios

Radiografa Industria Sw Mex


Poblacin

Radiografa Industria Sw Mex


Salario Internacional

Radiografa Industria Sw Mex


Salario Tipo de Organizacin

Radiografa Industria Sw Mex


Salario por Funcin

Radiografa Industria Sw Mex


Salario por Rango Edad

Radiografa Industria Sw Mex


Salario Grado de Estudios

Radiografa Industria Sw Mex


Conocimiento y Habilidades

Radiografa Industria Sw Mex


Conocimiento y Habilidades

Radiografa Industria Sw Mex


Plataformas

Radiografa Industria Sw Mex


BD

Radiografa Industria Sw Mex


Otras habilidades

Radiografa Industria Sw Mex


Certificaciones

Radiografa Industria Sw Mex


Certificaciones

Especificaciones
Caractersticas/Requerimientos
que
Gestin
de
la
Calidad
necesitan ser evaluados para medir la
calidad.
La innovacin es un factor clave que
determina calidad.
Qu es el Project Natal?

Especificaciones
Sensor de movimiento en forma de barra
Gestin
de
la
Calidad
horizontal de 36 cm con una cmara RGB
camera, sensor de profundidad, mcrfono
multiarreglo, procesador personalizado
corriendo
software
propietario
que
permte
captura
de
movimientos
completos en 3D, reconocimiento facial y
de voz.

Calidad del Software


Qu se debe de hacer para lograr la
Gestin
de
la
Calidad
calidad de un proceso?
Identificar los procesos crticos.
Encontrar la mejor forma de hacerlo
Llegar a acuerdos

Un sistema de calidad consta de dos


partes.
La
primera
parte
es
la
Documentacin y se incluyen elementos
como manuales, procedimientos y formas
de registro.

Calidad del Software


La segunda parte es la actividad prctica
Gestin
de
la
Calidad
consistente en aspectos fsicos como
herramientas, computadoras, etc.; y
aspectos humanos: formacin del equipo
de trabajo.
Los factores de calidad pueden ser
internos y externos dependiendo del
grado de requerimientos si estos son
funcionales o no funcionales.

Calidad del Software


Gestin de la Calidad ISO
9000
PARTICIPACION
DEL
PERSONAL

ENFOQUE
DE
PROCESO
ENFOQUE
DE
SISTEMA
PARA LA
GESTION
MEJORA
CONTINUA

LIDERAZGO

ENFOQUE

AL
CLIENTE

ALIDAD
RELACIONES
MUTUAMENTE
ENFOQUE
BASADO EN BENEFICIOSAS
CON EL
HECHOS
PROVEEDOR
PARA LA
TOMA DE
DECISION

Uso de Mejores Prcticas


Nos orientan hacia mejores resultados

Calidad del Software

Calidad del Software


El profesor se encuentra actualmente
ante
una
necesidad
de
extrema
importancia.
Necesita
realizar
una
corbata para ir a una junta en donde se
encontrarn altos empresarios del sector
informtico, el detalle es que no sabe a
ser un nudo de corbata
Cmo podra resolver el problema?

Calidad del Software


La solucin ms fcil es
outsorcing (que lo hagan otros).

realizar

Sino se puede, se deber realizar en base


a tres formas bsicas de solucin de
problemas:
Conocimiento
Experiencia
Sentido Comn

Calidad del Software


La forma ms fcil es a travs de una
metodologa para realizar nudos de
corbatas
como
la
planteada
en
http://www.nudo-de-corbata.com/
Lo primero que se tiene que saber es si
debe ser un tipo especial de corbata o no.
Los tipos pueden ir desde nudo de
corbata simple, doble, windsor, medio
windsor, nudo pequeo.

Tipos de Nudos

Simple

Doble

Tipos de Nudos

Windsor

Medio Windsor

Calidad del Software


Las metodologas son un conjunto de
mejores prcticas que si no se llevan a la
prctica o se hacen a medias es muy
difcil que se tenga calidad.
Aun siguiendo las recomendaciones, una
metodologa no garantiza que un
producto tenga calidad.

Evitar Fracaso/Rechazo

Historia de xito
Cada buen final requiere de un buen
inicio

Definicion del Problema/ Reto

Historia de xito
Qu camino seguiremos?

Modelos de Desarrollo

Historia de xito
El planteamiento es lo importante, no la
velocidad

Anlisis Requerimientos y Especificaciones

Historia de xito
Cmo debo hacerlo?

Diseo del Sw y Metodologas

Historia de xito
Sigamos un mtodo confiable y seguro

Sistemas de Alta Integridad

Historia de xito
Clculos
precisos,
matemtica

especificacin

Mtodos Formales

Historia de xito
Una buena administracin siempre nos
llevar por el camino adecuado

Administracin de Proyectos de Sw

Historia de xito
Se debe
calidad

tener

un

buen

manejo

Aseguramiento de Calidad (SQA)

de

Historia de xito
Una buena herramienta no tiene precio

Ambientes de Desarrollo de Software

Historia de xito
El modelo de Mantenimiento debe ser
preparado

Mantenimiento y Evolucin del Sw

Historia de xito
Cada buen final requiere de un buen
inicio

Slo as se puede mantener el xito

SGSI

SGSI

ISO 17799- ISO 27001

Poltica de seguridad
Aspectos organizativos para la seguridad
Clasificacin y control de activos
Seguridad ligada al personal
Seguridad fsica y del entorno
Gestin de comunicaciones y operaciones
Control de accesos
Desarrollo y mantenimiento de sistemas
Gestin de incidentes de seguridad
Gestin de continuidad de negocio
Conformidad

SGSI

SGSI
La seguridad es un proceso. Se necesita
de un Sistema de Gestin de Seguridad
de la Informacin (SGSI).
La informacin es un recurso vital en el
mundo globalizado de hoy en da.

SGSI
SSE/CMM (Systems Security Engineering/
Capability Maturity Model) define:
Nivel 0: Nada de seguridad
Nivel 1: Prcticas de seguridad realizadas
de manera informal
Nivel 2: Planificacin y seguimiento
las prcticas de seguridad

de

SGSI
Nivel 3: Definicin y coordinacin de las
polticas y procedimientos de seguridad.
Nivel 4: Seguridad controlada a travs de
distintos controles y objetivos de calidad.
Nivel 5: Implantacin de un proceso de
mejora continua.

SGSI
Se tiene una jerarqua de seguridad
informtica:
CIA
Polticas
Planes
Procedimientos
Tareas y Operaciones
Registros y Evidencias.

SGSI
Ejemplo de seguridad CIA
Poltica: proteccin del servidor Web de la
organizacin
contra
accesos
no
autorizados.
Procedimiento
1:
Actualizacin
software del servidor Web.

del

Tarea1: Revisin diaria de los parches


publicados por el fabricante.

SGSI
Tarea2: Seguimiento de las noticias sobre
posibles fallos de seguridad.
Procedimiento 2: Revisin de los registros
de actividad en el servidor.
Tarea1: revisin semanal de los logs del
servidor para detectar anomalas.

SGSI
Tarea2: Configuraciones de alertas de
seguridad que permitan reaccionar de
forma urgente ante determinados tipos
de ataques e intentos de intrusin.
Inventario de soportes fsicos. Destructor
de Discos Duros.

SGSI
Un SGSI se encuentra estandarizado en la
norma ISO 27001:2005.
La ISO 17799:2005 define buenas
prcticas de SI pero en si no es
certificable como tal. Se utiliz hasta
antes de definirse el ISO 27001:2005
Est basado en la norma britnica
BS7799 utilizada en seguridad de SI.

SGSI
A
continuacin
se
muestran
principales versiones del estndar:

las

ISO 27000 Vocabulario y Glosario


ISO 27001 Estndar certificable
ISO 27002 Relevo del ISO/IEC 17799:2005

SGSI
ISO 27003 Gua de implantacin
ISO 27004 Mtricas e indicadores
ISO 27005 Gestin de Riesgos
ISO 27006 Requerimientos para las
entidades de auditora y certificacin.

SGSI
Se debe realizar un Plan de Continuidad
del Negocio, el cual puede contener:
DRP Disaster Recovery Planning
BRP Business Resumption Planning
COOP Continuity Operations Planning
CP Contingence Planning
ERP Emergency Response Planning

SGC para el Desarrollo Sw


En base a lo visto de SGC desarrolla un
pequeo modelo de SGC para garantizar
la calidad del software.
El modelo desarrollado deber contener
los elementos vistos en clase de un SGC y
se debern describir al menos tres
controles de aseguramiento de calidad.
En equipos de dos personas. Entrega al
finalizar la clase.

Calidad en el Desarrollo Sw
Calidad del proceso

Herramientas
de desarrollo

Calidad del
producto

Recursos
invertidos

Calidad del grupo de trabajo


Ian Sommerville

Calidad en el Desarrollo Sw

Calidad en el Desarrollo Sw
Anlisis
Requerimientos
Diseo del
Sistema
Diseo de
Objetos
Codificacin

Pruebas

Instalacin

Mantenimiento

Modelo Lineal/Cascada

Calidad en el Desarrollo Sw
Anlisis de los
Requerimientos
Mantenimiento

Diseo del
Sistema

Instalacin

Diseo de
Objetos

Pruebas

Codificacion

Realmente no es tan lineal

Relacin Ing. de Sw con SQA


SQA forma parte fundamental de los
procesos de la Ing. de Software.
El proceso de aseguramiento de calidad
se debe de dar en cada uno de los
procesos de la Ingeniera de Software y
no slo hasta el final.
El SQA es el principal control de calidad y
consiste en la realizacin de pruebas a
todos niveles.

Relacin Ing. de Sw con SQA


El Software Quality Assurance tiene como
objetivo el lograr la calidad del software.
SQA se define por un conjunto de mejores
prcticas que llevan la verificacin y
validacin del software desarrollado.
El proceso de SQA aunque se enfoca ms
en la medicin y control del cdigo fuente
aunque tiene que ver con las dems
reas del proceso.

Relacin Ing. de Sw con SQA


El SQA logra resolver la mayora de los
errores que se podran presentar en el
software, asegurando que este sea
confiable, usable y costo-efectivo.
SQA se compone de muchas actividades
pero la primera de ellas es el proceso de
planeacin. Otras actividades son las
siguientes:

Relacin Ing. de Sw con SQA


Participacin en el desarrollo de la
descripcin del proceso de software del
proyecto
Revisin de las actividades de ingeniera
de software para verificar su ajuste al
proceso de software.
Registrar lo que no se ajusta a los
requisitos e informar a los superiores.

Relacin Ing. de Sw con SQA


Auditoria de los productos de software
designados para verificar el ajuste con
los definidos como parte del proceso del
software.
Asegurar que las desviaciones del
trabajo y los productos de software se
documentan y se manejan de acuerdo
con un procedimiento establecido

Relacin Ing. de Sw con SQA


Se
verifica
objetivamente
la
correspondencia de los productos y
actividades
SW
con
estndares,
procedimientos y requisitos.
Plan de SQA
El grupo SQA
revisa las
actividades
de ISW para
cumplimiento

Grupo SQA:
Cumplimiento
productos
designados
El grupo
SQA
participa y
revisa plan
del proyecto

SDP
Pro
cs.
estado desviaciones

Producto
para
entregar
stds.,
procs.

reqs
SDP

Relacin Ing. de Sw con SQA


Las personas y los grupos afectados son
informados
de
las
actividades
y
resultados del SQA.
Estatuto
de SQA
El grupo de
SQA informa
peridicamente
de los
resultados

Grupo de ISW

Plan de SQA
El grupo de SQA
revisa
peridicamente
sus actividades y
hallazgos con
SQA del cliente

Relacin Ing. de Sw con SQA


Problemas
de
incumplimiento
no
resueltos dentro del proyecto se escalan
a la alta direccin.
Proc.
- resueltas a nivel
de
responsable o PM
- g & c
- escaladas al
director y
revisadas hasta
su resolucin

Desviaciones en
actividades,
productos, son
documentadas y
tratadas
Ac 7

Desviaciones

responsables de
tarea, mandos
intermedios
SW, PM

no
resueltas

director
designado

Calidad Sw en el Ciclo de Vida


La calidad se logra desde el inicio y el
inicio se da a travs de la organizacin de
un equipo de desarrollo por medio de la
persona.
Existen metodologas que se enfocan al
desarrollo de las actividades de la
persona como PSP, en equipos de trabajo
como TSP y a nivel organizativo CMMI.

Calidad en el Desarrollo Sw
Ciclo de Vida de un Producto

Diseo

Orientada al
diseo de
nuevos
productos
(innovacin)

Produccin

Orientada al
control del
proceso
(prevencin)

Entrega

Orientada al
control de
productos
(inspeccin)

Calidad Sw en el Ciclo de Vida


Ejemplo: una de las primeras actividades al
momento de realizar cualquier desarrollo
de
software
es
la
Ingeniera
de
Requerimientos.
Una
tcnica
de
obtencin
de
requerimientos as como de verificacin
son las rbricas.
Son ms avanzadas que las listas de cotejo
(checklist) ya que definen el grado de
calidad.

Rbrica
Una rbrica es un elemento que nos
permite definir en forma tabular los
requisitos que debe tener un producto en
general y evaluarlos en base a un criterio
determinado.

Evidencia 3
Descripcin del puesto de SQA. Entrega
Lunes 8 de Febrero.
Rubro

A (100)

B (85)

C (70)

Z (0)

Revisin
de
Fuentes Consulta al menos tres Consult fuentes pero Consulto alguna fuente No cit o consulto fuentes
Bibliogrficas (20%)
fuentes
bibliogrficas fueron menos de tres o no bibliogrficas que no eran
formales
y las
cita estuvieron bien citadas
formal
adecuadamente
(libros,
revistas, artculos tcnicos)

Presentacin del Trabajo El trabajo se entrega con Falt una seccin o est Faltaron dos secciones o Faltaron 3 o ms secciones
(10%)
un
portada,
ndice, mal planteada.
estn mal planteadas
introduccin, desarrollo y
conclusiones propias

Ejemplificacin de las Se cuentan con al menos Una descripcin de puestos


funciones del SQA (70%)
tres
descripciones
de no
est
ejemplificada
puestos ejemplificando con adecuadamente
organizadores grficos u
otro tipo de evidencia
sustancia las funciones del
SQA

Dos descripciones de la Tres descripciones no estn


funciones del SQA no estn ejemplificadas
ejemplificadas
adecuadamente.
adecuadamente

Debate
El software libre tiene calidad?
mayora de la industria dice que no.

La

Defender una postura argumentada al


respecto. Traer la evidencia que sustente
dicha postura.
Sugerencia: lectura del Artculo: La
Catedral y el Bazar de Eric S. Raymond.
De forma personal escribir los tres
principios que ms llamaron mi atencin.

Dinmica del Viernes


Traer el compilador de Java o IDE
Instalar un analizador de protocolos de
red como Wireshark.
Leer sobre el proceso de auditora en el
desarrollo del software.

Roles y Responsabilidades SQA


El desarrollo de software es una actividad
que
requiere
de
roles
y
de
responsabilidades,
esas
responsabilidades deben estar bien
delimitadas.
Los roles y responsabilidades varan de
empresa a empresa y estn dados por las
metodologas y caractersticas de los
equipos de trabajos.

Roles y Responsabilidades SQA


Ejemplos tpicos de personal involucrado
en equipos de desarrollo: gerente o lder
de proyecto, analista, programador,
diseador, tester, SQA.
Qu
diferencia
existe
entre
un
programador junior y senior?
Salario
Conocimientos
Experiencia (ndices de productivad,
tiempos)

Habiidades y Capacidades SQA


Para
ser
SQA
se
preferentemente con
caractersticas:

debe
cumplir
las siguientes

Conocimiento de todo el proceso de


desarrollo de software
Experiencia en varios roles dentro de la
organizacin
Ser proactivo
Capacidad de seguimiento de actividades
Capacidad de trato con la gente.

Plan SQA ANSI/IEEE


El plan para el aseguramiento de calidad
de productos de software consta de 15
pasos que a continuacin se mencionan.
1.Objetivos
1. Objetivos del plan.
2. Productos de software includos.
3. Alcance en el ciclo de vida
producto.

de

cada

Plan SQA ANSI/IEEE


2. Referencias
Lista de documentos y estndares a los
que se hace referencia en el plan. Por
ejemplo:
ANSI/IEEE
Standard
for
Requirements Specification

Software

ANSI/IEEE Standard for Software Unit


Testing

Plan SQA ANSI/IEEE


3. Administracin
1. Estructura organizacional.
2. Actividades de medicin de Calidad del ciclo
de vida de cada producto.
3. Asignacin de responsabilidades.

4. Documentacin
1. Objetivos.
2. Documentacin
cada producto:

mnima

aceptable

para

Plan SQA ANSI/IEEE


Software requirements specification (SRS)
Software design description (SDD)
Software verification and validation plan
(SVVP)
Software verification and validation report
(SVVR)
User documentation
Software configuration management plan
(SCMP)

Plan SQA ANSI/IEEE


5. Estndares, prcticas y normas
1. Objetivos.
2. Estndares, prcticas y normas de diseo,
programacin, medicin y pruebas para
cada producto. (Ejemplos: Open UP, MSF
Model, etc)

6. Revisin y auditora
1. Objetivos.
2. Nivel mnimo aceptable de
auditora para cada producto:

revisin

Plan SQA ANSI/IEEE


Software requirements review (SRR)
Preliminary design review (PDR)
Critical design review (CDR)
Software verification and validation plan
review (SVVPR)
Software configuration management plan
review (SCMPR)
Functional audit, Physical audit, Inprocess audit
Managerial reviews, Post Mortem reviews

Plan SQA ANSI/IEEE


7. Pruebas
Actividades y pruebas no inlcudas en la
seccin 4.2 (SVVP).

8. Reporte de
correctivas

problemas

acciones

1.Actividades y procedimientos para reportar,


dar seguimiento y resolver problemas del
producto y del proceso.
2.Asignacin de responsabilidades.

Plan SQA ANSI/IEEE


9. Herramientas, tcnicas, y metodologas
1. Objetivo y uso de herramientas de software,
tcnicas, y metodologas de apoyo al plan
de SQA (Ejemplos: PSP, TSP, CMMi, etc)

10. Control del cdigo


1. Objetivo y uso de herramientas para dar
mantenimiento, almacenar, conservar, y
documentar diferentes versiones del cdigo.
NOTA: Puede ser parte del SCMP.

Plan SQA ANSI/IEEE


11.Control de Medios
1. Objetivo y uso de dispositivos para
almacenar, conservar, copiar y proteger el
acceso a diferentes versiones del cdigo.
NOTA: Puede ser parte del SCMP.

12.Control de proveedores
1. Estrategias para asegurar que los productos
de software y los desarrolladores de
proveedores externos cumplen con los
estndares requeridos.

Plan SQA ANSI/IEEE


13.Organizacin
y
retencin
documentos y reportes

de

1. Criterios para seleccionar, conservar y


proteger la documentacin generada como
parte del Plan de SQA. (Ejemplo: Kintana,
The Test Oracle, etc)

14.Capacitacin y entrenamiento
1. Actividades para desarrollar las habilidades
y actitudes necesarias del personal que
participa en el Plan de SQA.

Plan SQA ANSI/IEEE


15.Administracin de riesgos
1. Actividades
y
procedimientos
para
identificar, monitorear, evaluar y controlar
factores de riesgo para cada producto en el
Plan de SQA.

Revisin del Software


Es el proceso de inspeccin ms bsico
que existe en el desarrollo de software.
Del software proporcionado encontrar si
hay errores. Tip: puedes utilizar un
analizador de protocolos para ver si
ocurre algo diferente.
Es difcil realizar la revisin de algo sin un
plan pero es ms difcil no tener una
norma de referencia para poder auditarlo.

Revisin del Software


Es el proceso de inspeccin ms bsico
que existe en el desarrollo de software.
Del software proporcionado encontrar si
hay errores. Tip: puedes utilizar un
analizador de protocolos para ver si
ocurre algo diferente.
Es difcil realizar la revisin de algo sin un
plan pero es ms difcil no tener una
norma de referencia para poder auditarlo.

Herramientas de la Calidad
Existen una infinidad de herramientas de
calidad:
Bsicas
De gestin
De creatividad
Estadsticas
De diseo
De medicin

Calidad del Software


Calidad
en
Anlisis
FODAdel
de laSoftware
industria del
software
en Mxico
Mxico
FORTALEZAS
Uso horario similar
Afinidad cultural
Proximidad y fcil traslado
Menores costos de mano de obra
Buena
infraestructura
aunque
costosa
TLCAN
Estabilidad poltica
Bajo riesgo geopoltico

ms

OPORTUNIDADES
Asociacin con jugadores globales de
desarrollo de TI canadienses
Amplio espacio para el apoyo efectivo
del gobierno
Generar una masa crtica de mano de
obra calificada

DEBILIDADES
Oferta limitada de mano de obra
calificada
Escaso manejo del ingls
Niveles de certificacin de las empresas
mexicanas
Estructura de la industria de TI
Temas de seguridad y corrupcin
Falta de experiencia de las empresas en
proyectos grandes de Mxico
Acceso a capital
Carga y legislacin laboral
AMENAZAS
Alta competencia de pases emergentes
en el mercado de TI (Brasil, Rusia, China y
Filipinas)
Incrementos en el costo de la mano de
obra
Constante innovacin tecnolgica

Evidencia 4
Del catlogo de empresas de la evidencia
2, desarrollar un anlisis FODA de las
tcnicas de aseguramiento de la calidad
de la empresa.
Se evaluar que se haga la comparativa
de los tres controles de calidad y las
cruzas de FD, FA y OD.
Fecha de entrega mircoles 10 de febrero
de 2010.

Herramientas de la Calidad
Calidad
del Software en
Diagrama
de flujo
Mxico
Diagrama causa-efecto
Diagrama de Pareto
Hoja de chequeo
Grafo de control
Histograma
Diagrama de dispersin

Herramientas de la Calidad
Calidad
Software en
Diagramas
dedel
Causa-Efecto
Mxico
1.

2.

Categoria
1

Categoria
2

Categoria
3

3.
4.

Definir el efecto que se quiere


analizar
Determinar causas/subcausas (5 M:
Mtodo, Material, Maquinaria, Mano
de obra, Medio ambiente)
Revisar causas y su interaccin
Seleccionar las causas segn su
grado de contribucin al efecto

EFECTO

Categoria
4

Categoria
5

Herramientas de la Calidad
Calidad
del Software
en
Algunos
ejemplos
de herramientas
de
calidad aplicadas
al software ms
Mxico
especficos son:

Auditoras (revisin en la parte


proceso)
Control estadsticos de errores
codificacin.
Encuestas
Benchmarking
Realizacin de pruebas de escritorio.

del
de

Tarea
Calidad
Traer
impresadel
al Software
menos dos en
hojas
formato horizontal
de 80 columnas x
Mxico
Filas.

en
25

Actividad
Calidad del Software en
Mxico

Actividad
Calidad
Software
Realizar
un del
programa
queenpermita
realizar operaciones
Mxicoaritmticas entre
nmeros complejos (6 operaciones).

Se deber tener una clase complejo que


tenga como mtodos las propiedades
solicitadas.
El programa ser dado en modo texto o
bien con JOptionPane (es indiferente la
interface).

Actividad
deldeber
Software
enrengln
El Calidad
programa se
codificar
por rengln, Mxico
cuadro por cuadro en el
formato de hoja de codificacin.

Tener la seguridad de lo que se est


haciendo est bien.

Nmero complejo

Calidad del Software en


Mxico
(a,b) (c,d) = (a-c)+(b-d)i

Suma, Resta, Multiplicacin, divisin,


igualdad y multiplicacin por un escalar

Actividad
Software
enrealizar
DeCalidad
la hoja dedel
codificacin
dada,
la implementacin
necesaria. Tomar el
Mxico
tiempo de inicio de la codificacin.

Correr el programa. Si presenta errores


de dedo (falt un punto y coma, est
mal un carcter en maysculas y debe
ser en minsculas, etc.) corregirlos hasta
que se pueda ejecutar. Tomar el tiempo
de finalizacin de la codificacin hasta
que el programa compile.

Actividad
Calidad del
Software
en
CONTABILIZAR
todas
las modificaciones
realizadas.
Mxico
Correr el programa con las siguientes
valores de caso de prueba:
Suma: (2+3i) + (3-5i) = (5-2i)
Resta: (2+3i) + (3-5i) = (-1+8i)
Multiplicacin: (2+3i) * (3-5i) = (21-i)

Actividad
Divisin:
Calidad
Software
en
(2+3i)del
/ (3-5i)
= (-0.2647+0.5588i)
Mxico

Igualdad: (2+3i) <> (3-5i) y (2+3i) = (2+3i)


Multiplicacin por escalar: 3 (2+3i) = 6+9i
Indicar si con estos casos de prueba son
suficientes. Si no es suficiente, indicar que
otros casos complementarios se necesitan.

Actividad
Calidad
del bien
Software
en
Sino
se ejecuta
tomar tiempo
de
inicio de reparacin
Mxicoy hasta que est
correcto,
tomar
reparacin

tiempo

final

de

Sumar tiempos de codificacin y de


reparacin.
Contabilizar LOCs del programa final.
Dividir las LOCs entre el tiempo. Por
ejemplo: 100LOCs/4 horas = 25 LOC/hr

ELOC
Calidad
del Software
Lneas
de cdigo
efectivas. Elen
siguiente
cdigo puede Mxico
llegar a tener 6 LOC pero
solo 2 ELOC.

public int suma (int a, int b)


{
int c;
c = a+b;
return c;
}

ELOC
del Software en
Se Calidad
simplifica en:
public int suma(int
a, int b) { return a +b; }
Mxico
No cuentan:
Declaracin de variables o atributos
Ni inicializacin
Si:
Llamadas a mtodos

ELOC
Calidadlas
del
Software
en
Contabilizar
ELOC
del programa.
Mxico
Las lneas de cdigo no cuentan
En la vida real este estimado se ignora
dado que se asume que la codificacin es
de calidad.
Implementar los 4 casos de pruebas a
travs de un test con JUnit.

JUnit
Es el framework de pruebas unitarias
para Java ms utilizado en el mundo.
En IDEs como Netbeans y Eclipse viene
de manera predeterminada.
Para crearlo en Netbeans es muy fcil
slo se escoge la opcin de crear una
prueba unitaria de una clase existente y
crea un bosquejo de prueba con cada
mtodo impelementado.

JUnit
Existen dos versiones populares a
manejar
la
3.x
(anticuada
pero
ampliamente utilizada) y la 4.x (que
maneja
anotaciones
pero
no
es
compatible con versiones viejas).
La ventaja de utilizar pruebas unitarias es
que nos permite corroborar nuestro
cdigo sin necesidad de crear una
aplicacin.

JUnit
En la versin 3.x las pruebas unitarias
tienen la siguiente forma:
Se
importa
la
junit.framework.TestCase;

clase

La clase de prueba hereda de TestCase


Se puede utilizar utilizar un constructor
para inicializar datos.

JUnit
Se utiliza el mtodo setUp() para realizar
un conjunto de acciones antes de evaluar
un caso de prueba.
Se utiliza el mtodo tearDown() para
realizar acciones una vez finalizado el
caso de prueba
Se utiliza el mtodo fail() que recibe una
cadena de mensaje de error para forzar a
una falla.

JUnit
Se
utiliza
el
mtodo
assertEquals(valoresperado,
valorresultante) para saber si el mtodo se
ejecut de manera exitosa.
Se
puede
utilizar
el
mtodo
assertNotNull(objeto) para saber si un
objeto no es nullo.
Para tipos de datos flotantes el mtodo
assertEquals utiliza un parmetro adicional
delta para indicar la presicin.

JUnit
La diferencia con la versin 4.x de Junit
radica en lo siguiente:
Se importan las siguientes clases:
org.junit.After,
org.junit.AfterClass,
org.junit.Before, org.junit.BeforeClass,
org.junit.Test, org.junit.Assert.*;
Se utilizan las anotaciones @BeforeClass,
@AfterClass, @Before, @After para indicar
cuando se utilizan los mtodos auxiliares

JUnit
La clase de prueba no extiende de
ninguna otra pero cada caso de prueba
debe utilizar la anotacin @Test
Se recomienda realizar los casos de
prueba de manera separada uno por uno
y dejarlos siempre presente.

Evidencia 5
Calidad del
en de
Programacin
en Software
Java y/o C++
Races de unaMxico
ecuacin de segundo

las
por

frmula general.

Programacin
en
Pares:
Actividad
Desarrollada por dos personas (en caso de
que queden un individuo, este se realiza
de forma individual no parejas de tres-).
Diferenciar roles de trabajos. Programador
y Registro de Actividades.

Evidencia 5
en
Se Calidad
entregardelunSoftware
reporte escrito
finalizar la clase.
Mxico

al

Evidencia de un modelado previo del


problema 20% (diagramas de UML
casos,
actividades,
secuencia-,
de
bloques, de flujo, etc.) debe de considerar
toda la complejidad del problema.
Evidencia Estimacin de Lneas de
Cdigo, de Tiempo, errores posibles. 10%

Evidencia 5
Calidad
Evidencia
de del
TomaSoftware
de Tiempoen
y rastreo
de lneas de cdigo
que se agregaron y se
Mxico
eliminaron. 10%

Codificacin del programa (sin interfaces


grficas) que resuelva el problema. 20%
Contabilizacin de corridas funcionando
incorrectamente (realizacin de pruebas
unitarias).
Se
dan
los
resultados
previamente. Registro 20%

Evidencia 5
Calidad del Software
en
Contabilizacin
de
errores
compilacin. Registro
5%
Mxico

de

*Reflexin Por qu A no puede ser 0.


Valor 5%
Termino a tiempo (horario de clases).
Valor 10%

Pendientes
Calidad
Software
Jueves
11 ydel
Viernes
12 deenFebrero
Evidencia 5 Mxico
Examen Escrito Terico-Prctico Viernes
19.

Referencias
Calidad
del Software
en
Roger
S. Pressman,
Ingeniera de
software
un enfoque prctico.Ed.
Mxico McGraw Hill.

Piattini M.G. y F.O, Calidad en el


desarrollo y mantenimiento del software.
Ed. RAMA.

Hernndez Ballesteros, J. F. Y Minguet


Melan J. La calidad del software y su
medida, Ed. CERASA.

Referencias
Calidad
IEEE
Std. 730,del
IEEESoftware
Standard foren
Software
Quality Assurance
Plans, New York, IEEE
Mxico
Computer Society, 1989

IEEE Std. 1059, IEEE Guide for Software


Verification and Validation Plans, New
York, IEEE Computer Society, 1993
IEEE Std. 1074, Standard for Developing
Software Life Cycle Processess, New York,
IEEE Computer Society, 1991

Dudas