Beruflich Dokumente
Kultur Dokumente
Calidad en el Desarrollo
de Software
Calidad en el Desarrollo
de Software
Objetivo General:
Introducir al alumno a la
Metodologa del PSP, as como
conocer los conceptos acerca de
mtricas en el desarrollo de
Software.
Calidad en el Desarrollo
de Software
ndice
I. Introduccin al Personal Software Process (PSP)
II. Estructura del PSP
I. Introduccin al Personal
Software Process (PSP)
Calidad en el Desarrollo
de Software
Calidad en el Desarrollo
de Software
Antecedentes
Despus de la segunda guerra mundial, la estrategia de calidad en la
mayora de las organizaciones industriales se basaba casi por completo en
las pruebas. Las empresas establecieron departamentos especiales de la
calidad para encontrar y arreglar problemas despus de la produccin de los
productos.
No fu sino hasta los aos 70 y los aos 80 que W. Edwards Deming y J.M.
Juran convencieron a la industria estadounidense que se centrara en
mejorar la forma en la que la gente haca sus trabajos y desarrollaban sus
procesos. [ DEMING; 82 ], [ JURAN 88]
Antecedentes
Aunque la mayora de las organizaciones industriales ahora han adoptado
principios modernos de calidad, la comunidad del software ha continuado
confiando en la prueba como el mtodo principal de la administracin de la
calidad. Para el software, la primera medida principal en la direccin
iniciada por Deming y Juran fu tomada por Michael Fagan cuando en 1976
l introdujo las inspecciones del software [ FAGAN; 86]
Antecedentes
PSP se concentra en las prcticas de trabajo de los ingenieros en una forma
individual. El principio detrs de PSP es se, sirve para producir software de
calidad, cada ingeniero debe trabajar en la necesidad de realizar trabajo de
calidad.
PSP se dise para ayudar a profesionales del software
para que utilicen constantemente prcticas sanas de
ingeniera de software.
Asimismo les ensea a cmo planear y darle un seguimiento a su trabajo, a
utilizar un proceso bien definido y medido, a establecer metas mesurables, y
finalmente a la utilizacin del rastreo constante para alcanzar dichas metas.
PSP les demuestra a los ingenieros a cmo manejar la calidad desde el
principio del trabajo, a cmo analizar los resultados de cada trabajo, y a
cmo utilizar los resultados para mejorar el proceso del proyecto siguiente.
[SEI; 2000] .
Calidad en el Desarrollo
de Software
Qu es PSP?
Un PSP es un proceso personal para desarrollar
software.
pasos definidos
formularios
estndares
Un PSP es un marco de trabajo de medicin y
anlisis que te ayuda a caracterizar tu proceso.
Es tambin un procedimiento definido para
ayudarte a mejorar tu rendimiento.
Calidad en el Desarrollo
de Software
Introduccin
El PSP es un proceso diseado para uso individual,
basado en una versin a escala de un proceso industrial.
El principal objetivo del PSP es ayudar a los ingenieros
software a hacer mejor su trabajo.
EL PSP se ha diseado tambin para demostrar el valor
del uso de un proceso definido y medido.
Por ultimo, el PSP intenta ayudar a los ingenieros y a las
organizaciones a que cumplan las demandas cada vez
mas estrictas para el desarrollo de sistemas software de
calidad
Calidad en el Desarrollo
de Software
Introduccin
El PSP se aplica en tareas personales
estructuradas:
Desarrollo de mdulos de programas.
Definicin de requisitos o procesos.
Realizacin de revisiones o pruebas.
Escritura de documentacin, etc.
El PSP se puede extender al desarrollo de sistemas
software de gran tamao.
Es un proceso de Nivel 5 para los individuos y es un
prerrequisito para el TSP
Calidad en el Desarrollo
de Software
Introduccin
PSP se introduce con siete pasos compatibles.
Escribes uno o dos pequeos programas en cada
paso.
Recoges y analizas los datos de tu trabajo.
Los usas y analizas para mejorar tu trabajo.
Calidad en el Desarrollo
de Software
Estructura de PSP
Comenzando con los requerimientos, el primer paso en
el proceso de PSP es la planificacin.
Existe un script de planificacin que sirve de gua y un
resumen del plan para registrar todos los datos del
mismo. Mientras los desarrolladores van siguiendo el
lineamiento de trabajo sugerido por los scripts, deben ir
registrando los tiempos dedicados y los datos de defectos
en los logs de tiempos y defectos.
Al final de la tarea, durante la fase de postmortem (PM),
deben resumir los datos de tiempo y defectos, medir el
tamao del programa, e ingresar esos datos en el
formulario de sumario del plan. Al finalizar, deben
entregar el producto finalizado y el formulario de
sumario del plan completado.
Calidad en el Desarrollo
de Software
Estructura de PSP
Debido a que generalmente ciertos mtodos de PSP no
son utilizados por los desarrolladores, los mtodos de
PSP son presentados en una serie de siete versiones de
procesos.
Estas versiones son denominadas como PSP0 a PSP3.
Cada versin tiene un mismo conjunto de logs,
formularios, scripts, y standards.
Los scripts de proceso definen los pasos de cada parte
del proceso, los logs y formularios proveen templates
para registrar y almacenar datos, y los standards guan a
los desarrolladores a mientras hacen el trabajo.
En otras palabras, PSP es un proceso que est diseado
para ser utilizado.
Calidad en el Desarrollo
de Software
Estructura de PSP
Est construido en un formato simple de utilizar
con instrucciones simples y precisas. Si bien los
scripts describen qu hacer, en realidad se
parecen ms a checklists que a tutoriales.
Estos no incluyen los materiales instructivos que
seran necesarios para usuarios no entrenados.
El propsito de los scripts es el de guiar a los
desarrolladores en el uso consistente de los
procesos, los cuales ellos conocen (mediante la
asistencia a cursos de capacitacin en PSP o a
travs de bibliografa introductoria en el uso de
PSP).
Calidad en el Desarrollo
de Software
PSP
PSP 22
Revisin
Revisin del
del cdigo
cdigo Calidad Personal
Revisin
Revisin del
del diseo
diseo
PSP
PSP 11
Estimacin
Estimacin del
del Tamao
Tamao Planificacin Personal
Informe
Informe de
de pruebas
pruebas
PSP
PSP 00 Medicin Personal
Proceso
Proceso
Calidad en el Desarrollo
de Software
PSP 2.1
Administracin de PSP 2 PSP 2.1
PSP 2 Formatos de Diseo
Calidad Personal Revisin de Cdigo Formatos de Diseo
Revisin de Cdigo
Revisin de Diseo
Revisin de Diseo
PSP 1.1
PSP 1 PSP 1.1
Proceso de PSP 1 Planeacin de tareas
Estimacin de tamao Planeacin de tareas
Planeacin Estimacin de tamao Planeacin de tiempos de
Reporte de pruebas Planeacin de tiempos de
Personal Reporte de pruebas actividades
actividades
Estndar de tipos de defectos
Estndar de tipos de defectos
PSP 0.1
Proceso de PSP 0 PSP 0.1
PSP 0 Estndar de Codificacin
Medicin Proceso actual Estndar de Codificacin
Proceso actual Medicin de Tamao
Personal Registro de tiempo Medicin de Tamao
Registro de tiempo Propuesta de mejora del proceso
Registro de defectos Propuesta de mejora del proceso
Registro de defectos
Estndar de tipos de defectos
Estndar de tipos de defectos
II.I.I. PSP0
El punto de partida de PSP Calidad en el Desarrollo
de Software
Calidad en el Desarrollo
de Software
II.I.I. PSP0
El punto de partida de PSP
PSP0 es un proceso sencillo, definido y personal.
Utiliza tus mtodos actuales de diseo y
desarrollo.
Recoge datos sobre tu trabajo:
tiempo gastado por fase
defectos encontrados en compilacin y pruebas
Proporciona un informe resumen.
Calidad en el Desarrollo
de Software
II.I.I. PSP0
El punto de partida de PSP
El paso inicial en PSP consiste en establecer una
base que incluya mediciones y un formato de
reportes. Esto permite medir el progreso y define
los cimientos para mejorar. Esencialmente,
PSP0 es el proceso habitual con el que los
desarrolladores escriben software, mejorado
para proveer mediciones.
Calidad en el Desarrollo
de Software
II.II. PSP1
PSP1 Planeacin personal
PSP1 le agrega pasos de planeamiento a PSP0. El
primer paso agrega estimaciones de tamao y
recursos y un reporte de prueba.
En PSP1.1 se introduce planeamiento de
cronograma y seguimiento del proyecto. Los
desarrolladores son enseados a:
Calidad en el Desarrollo
de Software
II.II. PSP1
Entender la relacin entre el tamao de los programas
que escriben y el tiempo que les toma desarrollarlos.
Aprender a realizar compromisos que puedan cumplir.
Preparar un plan ordenado para realizar su trabajo
Establecer una base para realizar un seguimiento de su
trabajo.
II.III. PSP2
Un objetivo de PSP es ayudar a los
desarrolladores a lidiar de manera realista y
objetiva con los defectos que introducen. Los
programadores por lo general se avergenzan de
sus errores. El hecho de que la mayora de los
errores sean tipogrficos o errores tontos hace
que los desarrolladores sientan que pueden
mejorar haciendo ms esfuerzo.
Calidad en el Desarrollo
de Software
II.III. PSP2
El problema es que hacer ms esfuerzo por lo
general hace que las cosas empeoren; las claves,
como en otras actividades, son las habilidades
inherentes y las capacidades.
En PSP2 se enfoca en mejorar la habilidad del
desarrollador para producir programas de calidad.
La idea es hacer al trabajo de calidad ms natural y
consistente. Mejoras significativas en la frecuencia
de defectos de los desarrolladores no son posibles a
menos que conozcan cuantos errores cometen y que
comprendan sus causas y consecuencias.
Calidad en el Desarrollo
de Software
II.III. PSP2
PSP2 agrega diseo personal y revisiones de
cdigo a PSP1. Estas revisiones ayudan a
encontrar defectos de manera temprana y a ver
los beneficios que esto proporciona. Los
desarrolladores analizan los defectos que
encuentran en los primeros programas y usan
estos datos para establecer checklists de revisin
que estn hechos a medida de su experiencia de
defectos personales.
Calidad en el Desarrollo
de Software
II.III. PSP2
El proceso de diseo es contemplado en PSP2.1.
El objetivo no es decirle a los desarrolladores
como disear sino orientar el criterio para la
finalizacin del diseo, es decir, cuando han
terminado que es lo que deben haber obtenido.
Se establece un criterio de completitud de diseo
y se examinan varias tcnicas de verificacin y
consistencia de diseo.
II.IV. PSP3
Proceso Personal Ciclico Calidad en el Desarrollo
de Software
Calidad en el Desarrollo
de Software
II.IV. PSP3
Hasta este punto PSP se concentr en el proceso
lineal para construccin de pequeos
programas. PSP3 presenta mtodos para ser
usados por individuos en la realizacin de
programas de gran escala. De todas formas sigue
enfocado en el individuo y no trata los
problemas de comunicacin y coordinacin que
son una parte importante del desarrollo de
sistemas de gran escala.
Calidad en el Desarrollo
de Software
II.IV. PSP3
Para escalar PSP2 a proyectos ms grandes la
estrategia consiste en subdividir el proceso
personal de desarrollo de grandes programas en
elementos en la escala de PSP2. Estos programas
son entonces diseados para ser desarrollados
en pasos incrementales. La primera construccin
consiste en un mdulo base o kernel que es
ampliado en ciclos iterativos. En cada iteracin
se utiliza un PSP2 completo, incluyendo diseo,
codificacin, compilacin y pruebas.
Calidad en el Desarrollo
de Software
. Diseo detallado
Diseo de . Y
Alto nivel . Repaso del diseo
Implementacin
Desarrollo
Y Repaso del cdigo
Cclico
Compilacin
Postmortem
Pruebas
Integracin
Pruebas del sistema
Uso . Valorar de nuevo
. Y Reciclar
.
Producto
Calidad en el Desarrollo
de Software
II.IV. PSP3
El proceso cclico PSP3 puede ser un elemento efectivo
en un proceso de desarrollo de gran escala solo si cada
incremento sucesivo de software es de alta calidad.
De esta manera los desarrolladores pueden concentrarse
en la verificacin de la calidad del ltimo incremento sin
preocuparse por defectos en ciclos anteriores.
Si un incremento anterior tiene muchos defectos, la
prueba ser ms compleja y los beneficios de escalar PSP
se pierden. Esta es una razn para enfatizar revisiones de
diseo y cdigo en los pasos anteriores de PSP.
Calidad en el Desarrollo
de Software
Planeacin en PSP
Por qu hacer planes?
Te permiten llegar a acuerdos que tu puedas
cumplir
Proporcionar las bases para acuerdo en tu
trabajo
Gua tu trabajo
Te ayuda a seguir tu progreso
Terminacin del proyecto
Calidad en el Desarrollo
de Software
Planeacin PSP
La primera tarea consiste en definir los requerimientos,
describiendo el trabajo a realizar en el mayor detalle posible.
Como la etapa de planificacin es demasiado temprana como para
hacer un diseo completo del producto, los desarrolladores realizan
un diseo conceptual, mediante el cual se obtiene un primer
acercamiento de cmo debe basarse el producto a ser construido en
la etapa de desarrollo.
La siguiente tarea consiste en la estimacin de tamao y de
esfuerzo.
La correlacin entre el tamao de un programa y tiempo de
desarrollo es moderadamente buena para equipos de desarrollo; sin
embargo, para un solo desarrollador, la correlacin es generalmente
un poco mayor. Los desarrolladores realizan las estimaciones
utilizando datos histricos personales de tamao y productividad.
En PSP, las estimaciones se efectan mediante el mtodo PROBE
(PROxy Based Estimating).
Calidad en el Desarrollo
de Software
Planeacin PSP
Necesidad Define los
del usuario requerimientos Tareas
Mtodo PROBE
Recursos
Producir
disponibles
Gestin
Calendario
Planeacin PSP
Una vez que los desarrolladores conocen el tiempo requerido para
cada proceso, deben estimar el tiempo que van a dedicar al trabajo
cada da de la semana, conformando entonces el calendario.
Luego, durante la etapa de desarrollo del producto, los
desarrolladores efectan el diseo detallado, la implementacin y
las pruebas.
Despus de completar el trabajo, los desarrolladores realizan un
anlisis postmortem, en el cual se actualiza el sumario del plan
con los datos reales de tiempos invertidos en cada etapa del
desarrollo, defectos encontrados y removidos, etc, y se comparan los
resultados obtenidos con lo planeado.
Finalmente, los desarrolladores registran toda esta informacin en
sus bases de datos histricas de tamao y productividad. Adems se
examinan las Propuestas de Mejoras (PIP) para hacer ajustes en los
procesos.
Calidad en el Desarrollo
de Software
Planeacin PSP
La Medicin del trabajo personal es el primer paso por el
que comienza el PSP. Es este primer paso los ingenieros
deben aprender como aplicar los formularios del PSP y
apuntar datos de su trabajo personal. Para hacer todo
esto se mide el desarrollo del tiempo y de los defectos.
Esto hace que los ingenieros recojan datos reales y
prcticos y les proporciona una serie de marcar con las
cuales ir midiendo el proceso.
Para realizar un trabajo con PSP se debe empezar por el
primer paso de medicin personal que incluye la gestin
del tiempo y el siguiente rastreo del mismo.
Calidad en el Desarrollo
de Software
Recoleccin de datos
En PSP, los desarrolladores utilizan informacin para
monitorear su trabajo, la cual los ayuda a hacer mejores
planes. Para esto, deben recolectar datos de los tiempos que
dedican a cada fase del proceso, de los tamaos de los
productos que producen, y de la calidad de esos productos.
Las medidas bsicas de PSP son el tiempo que el ingeniero
utiliza en cada fase del proceso, los defectos introducidos y
encontrados en cada fase, y los tamaos de los productos
desarrollados en lneas de cdigo (LOC).
Estos datos se recopilan en cada fase del proceso y se
resumen a la terminacin del proyecto. Todos estos datos se
utilizan para proporcionar una familia de medidas de
calidad de procesos que los ingenieros usan como gua en su
trabajo.
Calidad en el Desarrollo
de Software
Recoleccin de datos
Las principales medidas son:
Tamao tiempo de estimacin de errores
Coste de realizacin
Defectos producidos y corregidos por hora
Produccin del proceso
Valoracin y calidad del coste de los fallos
(COQ)
Valoracin del rango de fallos (A/FR)
Calidad en el Desarrollo
de Software
Por ejemplo
Fecha Inicio Fin Tiempo de Tiempo Actividad Comentarios
Interrupcin Delta
9/9 9:00 9:50 50 Planeacin
Manejo de Interrupciones
Uno de los problemas que se presenta a la hora de
gestionar el tiempo son las interrupciones. Es muy
normal que nos interrumpan por llamadas de telfono,
gente que viene a hablar con nosotros, o tenemos que
parar porque necesitan nuestra ayuda.
Cuando se producen estos casos se almacena este tiempo
en el Registro de Almacenamiento de Tiempo
anotndolo en la columna Tiempo de Interrupcin.
Durante este periodo no solo se anota el tiempo de la
interrupcin sino tambin porqu se ha producido en la
columna de Comentarios.
Calidad en el Desarrollo
de Software
Manejo de Interrupciones
Puesto que el tiempo de interrupcin no es un tiempo
productivo para el trabajo, se debe llevar un registro de
las interrupciones. El tiempo de las interrupciones suele
ser variable, por lo tanto si no se mide, se debera aadir
un nmero aleatorio para todos los datos de tiempo.
Estos datos de tiempo pueden ser tiles para
comprender mejor como es interrumpido el trabajo, ya
que las interrupciones no solo gastan tiempo, sino que
rompen la forma de trabajo y pueden provocar que se
produzcan errores. Conocer como son las interrupciones
podra ayudar a realizar un trabajo ms eficaz y de ms
calidad.
Calidad en el Desarrollo
de Software
Tamao
El tiempo en desarrollar un producto se encuentra
altamente determinado por el tamao del mismo. En
PSP, los desarrolladores primero estiman el tamao de
los productos que planean desarrollar. Luego, al finalizar
el producto, se mide el tamao real obtenido.
Esta informacin permite a los desarrolladores realizar a
futuro una estimacin de tamaos ms precisa. Sin
embargo, para que esta informacin sea til, el tamao
de las mediciones debe corresponderse con el tiempo de
desarrollo del producto. En PSP, el tamao se mide en
Lneas de Cdigo (LOC).
Para realizar un seguimiento de la variacin del tamao
de un programa durante el desarrollo, se deben
considerar varias categoras de LOC.
Calidad en el Desarrollo
de Software
Tamao
Estas son:
Base (son los LOC iniciales del producto original)
Agregadas (es el cdigo agregado a un programa base
existente)
Modificadas (es el cdigo base que es modificado en un
programa existente)
Eliminadas (es el cdigo base que es eliminado de un
programa existente)
Reutilizacin (es el cdigo tomado de una librera u utilizado,
sin realizar ninguna modificacin, en un nuevo programa)
Nueva Reutilizacin (esta medida cuenta los LOC que se
agregan a una librera)
Total (es tamao total del programa, independientemente del
cdigo fuente).
Calidad en el Desarrollo
de Software
Tamao
Luego, para medir el tamao total de un
producto, el clculo es el siguiente:
Total LOC = Base Eliminadas + Agregadas +
Reutilizacin
Las LOC modificadas y de nueva reutilizacin
no son incluidas en el total; esto se debe a que
las LOC modificadas pueden representarse por
LOC eliminadas y agregadas, y las LOC de
nuevo reutilizacin ya se encuentran
contabilizadas en las LOC agregadas.
Calidad en el Desarrollo
de Software
Mediciones de Tiempo
Los desarrolladores utilizan el log de registro de tiempo
para medir el tiempo que dedican a cada fase del proceso.
En este log se anota la hora en que empezaron a trabajar
en una tarea, la hora en que terminaron una tarea, y
cualquier hora en que efectuaron una interrupcin y/o
retomaron una tarea. Por ejemplo, una interrupcin
podra ser una llamada telefnica, un descanso, o alguien
interrumpiendo para hacer una pregunta. Tomando estos
tiempos en forma precisa, los desarrolladores pueden
conocer el esfuerzo que realmente se dedica a las tareas
del proyecto. Debido a que los tiempos de interrupciones
son esencialmente al azar, ignorar estos tiempos sera
introducir un error de gran tamao en la informacin de
tiempos que reducira la exactitud de las estimaciones.
Calidad en el Desarrollo
de Software
Conclusiones
Conociendo los principios y las caractersticas de la
metodologa de PSP, conformada por los procesos de
planificacin, estimacin de tamao y esfuerzo,
recoleccin de datos, manejo de calidad y
especificaciones de diseo, se plantea la posibilidad de
incorporar esta metodologa al contexto de una
empresa pequea, o grupo de desarrollo de software
pequeo analizando los factores operativos,
econmicos y los riesgos a los que se expone
Una vez implementada esta metodologa en el
ambiente de trabajo, un siguiente paso consiste en
enfocarse en la mejora de la eficiencia y de la dinmica
de trabajo a nivel de equipos de desarrollo, mediante el
mtodo conocido como TSP (Team Software Process).