You are on page 1of 35

Fundamentos de la Calidad del Software El Ciclo de Vida del Desarrollo de Software y la Gestin de la Calidad

Introduccin a la Norma ISO/IEC 12207 Procesos del Ciclo de Vida del Software El Proceso de Aseguramiento de Calidad La Calidad de Software en el Ciclo de Vida La Calidad en el Proceso Unificado

Introduccin a la Norma ISO/IEC 12207

El software es una parte esencial de sistemas convencionales y de tecnologas de la informacin, tales como sistemas de transporte, militares, mdicos y financieros Existe una proliferacin de normas, procedimientos, mtodos, herramientas y entornos para desarrollar y administrar el software

Introduccin a la Norma ISO/IEC

12207
Esta proliferacin ha creado dificultades en
la gestin y en la ingeniera de software, especialmente en la integracin de productos y servicios La disciplina del software necesita evolucionar desde esta proliferacin, hacia un marco de referencia comn que pueda ser usado por los profesionales del software para hablar el mismo lenguaje a la hora de crear y administrar el software

Introduccin a la Norma ISO/IEC 12207


(y su versin revisada IEEE/EIA 12207.0:1996) proporciona ese marco de referencia comn
ISO, International Organization for Standardization IEC, International Electrotechnical Commission IEEE, Institute of Electrical and Electronics Engineers EIA, Electronic Industries Alliance

La Norma Internacional ISO/IEC 12207:1995

Este marco de referencia cubre el ciclo de


vida del software desde la conceptualizacin de ideas hasta su termino y consta de procesos para adquirir y proveer productos y servicios de software

Introduccin a la Norma ISO/IEC 12207


Cubre adems el control y la mejora de estos procesos Los procesos que hay en esta norma internacional forman un conjunto completo Una organizacin, dependiendo de sus necesidades, puede seleccionar un subconjunto apropiado para satisfacer dichas necesidades

Introduccin a la Norma ISO/IEC 12207


Esta norma internacional est, as pues, diseada para ser adoptada a

una organizacin, proyecto o aplicacin concreta Est tambin diseada para ser usada cuando el software es una entidad independiente, est integrado o es parte integral del sistema total Entre los procesos que conforman esta norma, est incluido precisamente, el proceso de Aseguramiento de Calidad del Software

Procesos del Ciclo de Vida del Software


La organizacin de esta norma hace una agrupacin de la actividades que se pueden llevar a cabo durante el ciclo de vida del software en cinco procesos principales, ocho procesos de apoyo y cuatro procesos

organizativos Cada proceso del ciclo de vida est dividido en un conjunto de actividades; cada actividad se subdivide a su vez en un conjunto de tareas

Procesos del Ciclo de Vida del Software


Procesos del Ciclo de Vida del Software Procesos Principales Los procesos principales del ciclo de vida son cinco, que dan servicio a las partes principales durante el ciclo del vida del software Una parte principal es aquella que inicia o lleva a cabo el desarrollo, operacin o mantenimiento de los productos de software Procesos del Ciclo de Vida del Software Procesos Principales

Estas partes principales son el adquiriente, el proveedor, el desarrollador, el operador y el responsable de mantenimiento de productos de software Los procesos principales son los siguientes Procesos del Ciclo de Vida del Software Procesos Principales Proceso de Adquisicin Define las actividades del adquiriente, la
organizacin que adquiere un sistema, producto de software o servicio de software

Proceso de Suministro Define las actividades del proveedor,

organizacin que proporciona un sistema, producto de software o servicio de software al adquiriente

Procesos del Ciclo de Vida del Software Procesos Principales

Proceso de Desarrollo Define las actividades del desarrollador,


organizacin que define y desarrolla el producto de software

Proceso de Operacin Define las actividades del operador,


organizacin que proporciona el servicio de operar un sistema informtico en su entorno real, para sus usuarios

Procesos del Ciclo de Vida del Software Procesos Principales Proceso de Mantenimiento Define las actividades del responsable de
mantenimiento, organizacin que proporciona el servicio de mantenimiento del producto de software; esto es, la administracin de las modificaciones al producto de software para mantenerlo actualizado y operativo. Este proceso incluye la migracin y retirada del producto de software

Procesos del Ciclo de Vida del Software Procesos de Apoyo Existen ocho procesos de apoyo del ciclo de vida. Un proceso de apoyo (o soporte) es el que apoya a otro proceso como parte esencial del mismo, con un propsito bien definido y contribuye al xito y calidad del proyecto de software Un proceso de apoyo se emplea y ejecuta por otro proceso, segn sus necesidades Los procesos de apoyo son los siguientes Procesos del Ciclo de Vida del Software Procesos de Apoyo Proceso de Documentacin Define las actividades de la
administracin de la configuracin

Proceso de Administracin de la Configuracin

Defines las actividades de gestin de la


configuracin

Procesos del Ciclo de Vida del Software Procesos de Apoyo Proceso de Aseguramiento de la Calidad Define las actividades para asegurar, de
una manera objetiva, que los productos de software y los procesos son conformes a sus requerimientos especificados y se ajustan a sus planes establecidos La Revisin Conjunta, Auditora, Verificacin y Validacin pueden ser utilizadas como tcnicas de Aseguramiento de la Calidad

Procesos del Ciclo de Vida del Software Procesos de Apoyo Proceso de Verificacin Define las actividades (para el
adquiriente, proveedor o una parte independiente) para verificar hasta un nivel de detalle dependiente del

proyecto de software, los productos de software

Proceso de Validacin Define las actividades (para el


adquiriente, proveedor o una parte independiente) para validar los productos de software del proyecto de software

Procesos del Ciclo de Vida del Software Procesos de Apoyo Proceso de Revisin Conjunta Define las actividades para evaluar el
estado y productos de una actividad Este proceso puede ser empleado por cualquiera de las dos partes, donde una de las partes (la revisora) revisa a la otra parte (la parte revisada), de una manera conjunta

Procesos del Ciclo de Vida del Software Procesos de Apoyo Proceso de Auditora Define las actividades para determinar la

conformidad con los requerimientos, planes y contrato Este proceso puede ser empleado por dos partes cualesquiera, donde una parte (la auditora) audita los productos de software o actividades de otra parte (la auditada)

Procesos del Ciclo de Vida del Software Procesos de Apoyo Proceso de Solucin de Problemas Define las actividades para analizar y
eliminar los problemas (incluyendo las no conformidades) que sean descubiertos durante la ejecucin del proceso de desarrollo, operacin, mantenimiento u otros procesos, cualesquiera que sea su naturaleza o causa

Procesos del Ciclo de Vida del Software Procesos Organizativos Los procesos organizativos del ciclo de vida son cuatro. Se emplean por una organizacin para establecer e

implementar una infraestructura constituida por procesos y personal asociado al ciclo de vida y para mejorar continuamente esa infraestructura Procesos del Ciclo de Vida del Software Procesos Organizativos Se usan habitualmente fuera del mbito de proyectos y contratos especficos; sin embargo, la experiencia adquirida mediante dichos proyectos y contratos contribuye a la mejora de la organizacin Los procesos organizativos son los siguientes Procesos del Ciclo de Vida del Software Procesos Organizativos Proceso de Gestin Define las actividades bsicas de gestin,
incluyendo la gestin de proyectos,

durante un proceso del ciclo de vida

Proceso de Infraestructura Define las actividades bsicas para

establecer la infraestructura de un proceso del ciclo de vida

Procesos del Ciclo de Vida del Software Procesos Organizativos Proceso de Mejora de un Proceso Define las actividades bsicas que una
organizacin (adquiriente, proveedor, desarrollador, operador, responsable de mantenimiento o gestor de otro proceso) lleva a cabo para establecer, medir, controlar y mejorar sus procesos del ciclo de vida

Proceso de Recursos Humanos Define las actividades bsica para

conseguir personal adecuadamente capacitado (training)

Procesos del Ciclo de Vida del Software Proceso de Ajuste

Los modelos de referencia, al igual que el ISO/IEC 12207, incluyen un Proceso de Adaptacin o ajuste, orientado a definir las actividades bsicas de las adaptaciones de la norma (Anexo A) y proporciona una breve gua (Anexo B) sobre cmo adaptar las directrices de la norma, enumerando los factores clave sobre los que se puede basar las decisiones de adaptacin

El Proceso de Aseguramiento de Calidad


Desde la perspectiva del ISO/IEC 12207, el proceso de Aseguramiento de la Calidad es un proceso para proporcionar la seguridad apropiada de que los productos y procesos de software del ciclo de vida del proyecto son conformes con sus

requerimientos especificados y se apegan a los planes establecidos

El Proceso de Aseguramiento de Calidad


Para ser imparcial, el aseguramiento de la calidad necesita libertad organizativa y autoridad respecto a las personas directamente responsables del desarrollo del producto de software, o que ejecutan el proceso del proyecto

El Proceso de Aseguramiento de Calidad


El aseguramiento de la calidad puede ser interno o externo, dependiendo de si la evidencia de la calidad del producto o proceso se le demuestra a los gerentes del proveedor o del adquiriente El aseguramiento de la calidad

puede hacer uso del resultado de otros procesos de apoyo, tales como verificacin, validacin, revisin conjunta, auditora y solucin de problemas

El Proceso de Aseguramiento de Calidad


La siguiente figura representa lo anterior,
indicando el nmero de captulo tal como lo identifica la norma ISO/IEC 12207

El Proceso de Aseguramiento de Calidad


Este proceso consta de un conjunto de actividades Implementacin del Proceso Aseguramiento del Producto Aseguramiento del Proceso Aseguramiento del Sistema de Calidad

El Proceso de Aseguramiento de Calidad

Implementacin del Proceso Tareas Los objetivos del proceso de


aseguramiento de la calidad debern asegurar que los productos de software y los procesos empleados para proporcionar dichos productos de software cumplen con sus requerimientos establecidos y se apegan a sus planes establecidos Conviene que el proceso de aseguramiento de calidad se coordine con los procesos relacionados de verificacin (seccin 6.4 de la norma), validacin (6.5), revisin conjunta (6.6) y auditora (6.7)

El Proceso de Aseguramiento de Calidad


Implementacin del Proceso Tareas Se deber preparar documentar,
implementar y mantener durante la

El Proceso de Aseguramiento de Calidad


Implementacin del Proceso Tareas Se debern ejecutar las actividades y

vida del contrato un plan para llevar a cabo las actividades y tareas del proceso de aseguramiento de la calidad

El Proceso de Aseguramiento de Calidad


Implementacin del Proceso Tareas

tareas de aseguramiento de calidad en curso y planificadas. Cuando se detecten problemas o no conformidades con los requerimientos del contrato, se debern documentar y stos servirn como entrada al proceso de solucin de problemas. Se debern preparar y mantener registros de estas actividades y tareas, de su ejecucin, de los problemas y de las soluciones

Se deber poner a disposicin del


adquiriente los registros de las actividades y tareas de aseguramiento de calidad, tal como se especifique en el contrato

El Proceso de Aseguramiento de Calidad


Implementacin del Proceso Tareas Se debern asegurar que las personas
responsables de asegurar el cumplimiento de los requerimientos del contrato tienen la libertad, desde el punto de vista organizativo, recursos y autoridad, necesaria para permitir evaluaciones objetivas y para iniciar, efectuar, solucionar y verificar las soluciones a los problemas

El Proceso de Aseguramiento de Calidad


Aseguramiento del Producto Tareas

Se deber asegurar que todos los planes


requeridos por el contrato se documenten, cumplan con el contrato, sean mutuamente consistentes y se ejecuten tal como se requiere Se deber asegurar que los productos de software y la documentacin relacionada cumplen con el contrato y se apegan a los planes

El Proceso de Aseguramiento de Calidad

Aseguramiento del Producto Tareas Durante la preparacin para la entrega

de los productos de software, se deber asegurar que se han satisfecho completamente los requerimientos contractuales y que son aceptables para el adquiriente

El Proceso de Aseguramiento de Calidad


Aseguramiento del Proceso Tareas

Se deber asegurar que aquellos


procesos del ciclo de vida del software (suministro, desarrollo, operacin, mantenimiento y procesos de apoyo incluyendo el aseguramiento de calidad) empleados para el proyecto, cumplen con el contrato y se adhieren a los planes

El Proceso de Aseguramiento de Calidad


internas de ingeniera de software, entorno de desarrollo, entorno de pruebas y libreras cumplen con el contrato Se deber asegurar que los requerimientos aplicables del contratista principal se transfieren al subcontratista y que los productos de software del subcontratista satisfacen los requerimientos del contratista principal

Aseguramiento del Proceso Tareas Se deber asegurar que las prcticas

El Proceso de Aseguramiento de Calidad


Aseguramiento del Proceso Tareas Se deber asegurar que se proporciona
al adquiriente y a otras partes, el soporte y la cooperacin requerida de acuerdo con el contrato, negociaciones y planes Se deber asegurar que las mediciones del producto de software y del proceso de software estn de acuerdo con las normas y procedimientos establecidos

El Proceso de Aseguramiento de Calidad

Aseguramiento del Proceso Tareas Se deber asegurar que el personal


asignado tiene la habilidad y los conocimientos necesarios para cumplir los requerimientos del proyecto y recibe la formacin necesaria

El Proceso de Aseguramiento de

Calidad
Aseguramiento del Sistema de Calidad Tarea Aqu la norma indica que, las

actividades adicionales de gestin de la calidad se debern asegurar de acuerdo con las clusulas del estndar ISO 9001, tal como se haya especificado en el contrato

El Proceso de Aseguramiento de Calidad


La norma indica que como resultado de una implementacin exitosa del proceso de aseguramiento de calidad: Se desarrolla una estrategia para
asegurar la calidad Se produce y mantiene la evidencia del aseguramiento de calidad

El Proceso de Aseguramiento de Calidad

Se identifican y registran los problemas


y/o no-conformidades con los requerimientos acordados Se verifica el apego a las normas, procedimientos y requerimientos acordados de los procesos, productos y actividades

El Proceso de Aseguramiento de Calidad Gestin de la Calidad Dentro de los Procesos Organizativos del ciclo de vida en el modelo ISO/IEC 12207 incluyen al Proceso de Gestin, entre los otros cuatro procesos que lo conforman este grupo El propsito del proceso de gestin por su parte, es organizar, supervisar y controlar la iniciacin y actuacin de cualquier proceso para

lograr sus metas de acuerdo con las metas de negocio de la organizacin El Proceso de Aseguramiento de Calidad Gestin de la Calidad El proceso de gestin se establece por una organizacin para asegurar la aplicacin consistente de prcticas para el uso por la organizacin y los proyectos Mientras estas prcticas son inherentes a la gestin de una organizacin, stas son pensadas para ser instanciadas para el uso de cada uno de los proyectos de las organizaciones El Proceso de Aseguramiento de Calidad Gestin de la Calidad El proceso de gestin incluye

propsitos y resultados para los subprocesos siguientes: Alineamiento Organizativo Gestin de la Organizacin Gestin de Proyecto Gestin de la Calidad Gestin de Riesgos Medicin El Proceso de Aseguramiento de Calidad Gestin de la Calidad Gestin de la Calidad El propsito de la gestin de la calidad es
lograr la satisfaccin del cliente supervisando la calidad de los productos y servicios, en el nivel organizativo y del proyecto para asegurar que renen los requerimientos del cliente

El Proceso de Aseguramiento de Calidad Gestin de la Calidad

Como resultado de la implementacin exitosa de la gestin de calidad, se obtiene Se establecen las metas de calidad con
base a los requerimientos de calidad establecidos e implcitos del cliente Se desarrolla una estrategia global para lograr las metas definidas

El Proceso de Aseguramiento de Calidad Gestin de la Calidad Se establece un sistema de gestin de

calidad para llevar a cavo la estrategia Se realiza y confirma la ejecucin del control de calidad y de las actividades de aseguramiento de calidad identificadas Se supervisa el desempeo actual contra las metas de calidad Se toma la accin apropiada, cuando no se logran las metas de calidad

La Calidad de Software en el Ciclo de

Vida Se afirma, de acuerdo a diversos estudios en la industria, que el costo de los problemas de software son de 100 a 1000 veces ms costosos en repararse despus del desarrollo y liberacin de un producto de software Verificar y administrar la calidad a travs del Ciclo de Vida de un proyecto de desarrollo de software es esencial para alcanzar los objetivos correctos en el tiempo adecuado La Calidad de Software en el Ciclo de Vida Es importante que la calidad de todos los productos de software (artefactos) sea evaluada en diferentes puntos dentro del ciclo

de vida del proyecto as como ste madure Los artefactos deben ser evaluados as como las actividades que los producen, de manera completa y en la conclusin de cada fase o iteracin (si se utiliza, por ejemplo Proceso Unificado) La Calidad de Software en el Ciclo de Vida En particular, en cuanto un producto de software ejecutable es producido, ste debera estar sujeto a una demostracin y pruebas de los escenarios importantes en cada fase o iteracin, lo que proporciona un entendimiento ms tangible de desempeo del diseo y una eliminacin temprana de defectos de arquitectura

La Calidad de Software en el Ciclo de Vida Este es el contraste respecto a un enfoque ms tradicional que suele dejar a las actividades de prueba y de integracin del software hasta etapas tardas del ciclo de vida del proyecto de desarrollo La Calidad en el Proceso Unificado Segn la definicin de RUP (Rational Unified Process, Proceso Unificado de desarrollo de Rational), la calidad se define como las caractersticas que demuestran la consecucin de generar un producto que cumpla o exceda el apego a los requerimientos medidos mediante criterios y mtricas de apego y que es producido mediante un apego a

los procesos La Calidad en el Proceso Unificado Alcanzar la calidad no es tan simple como
cumplir los requerimientos, o producir un producto que cumpla las necesidades y expectativas de los usuarios En su lugar, la calidad tambin incluye identificar los criterios y las mediciones que demostrarn la consecucin de la calidad, y la implementacin de un proceso que asegure que el producto generado por los procesos ha conseguido el grado deseado de calidad, y que sta puede ser repetida y administrada

La Calidad en el Proceso Unificado Un malentendido comn es que la calidad tiene un nico dueo, o es la responsabilidad de alguien o de un grupo El mito generalmente es perpetuado al crear un grupo, muchas veces llamado Aseguramiento de Calidad

y otras veces los nombres son: pruebas, control de calidad, ingeniera de calidad y darle el rol y la responsabilidad de la calidad en el proyecto La Calidad en el Proceso Unificado La calida es, y debera ser siempre, la responsabilidad de todos en un proyecto El alcanzar la calidad debe estar integrada en casi todas las actividades de los procesos, en lugar de ser una disciplina separada, y hacer a cada miembro responsable de la calidad de sus productos (o artefactos) que ellos producen y de la implantacin de los procesos en los cuales estn involucrados La Calidad en el Proceso Unificado En el proceso unificado cada rol o

papel dentro de un proyecto contribuye a alcanzar la calidad en las siguientes formas: Calidad del Producto. Que se refiere a
contribuir al desempeo general de la calidad en cada artefacto producido Calidad del Proceso. Que se refiere a alcanzar la calidad en las actividades de los procesos en los cuales estn involucrados

La Calidad en el Proceso Unificado Todos comparten la responsabilidad y el orgullo de desarrollar productos de alta calidad, o la vergenza de desarrollar productos de baja calidad Pero slo aquellos directamente involucrados con un componente especfico de un proceso son responsables del orgullo, o vergenza, de la calidad de esos

componentes de procesos o artefactos La Calidad en el Proceso Unificado Sin embargo, alguien debe tomar la responsabilidad de administrar la calidad, esto es, dar la supervisin necesaria para asegurar que la calidad est siendo administrada, medida, y alcanzada El rol dentro de RUP que es el responsable de administrar la calidad es el Administrador de Proyecto La Calidad en el Proceso Unificado As, el enfoque del proceso unificado es el de incluir las mejores prcticas en el desarrollo de software moderno de forma tal que ste pueda ser ajustado para amplio rango de proyectos y

organizaciones La meta es asegurar la produccin de software de alta calidad que cumpla con las necesidades de los usuarios finales, dentro de un calendario y presupuesto predecible Fin de la Presentacin Contine en la siguiente actividad El Ciclo de Vida del Desarrollo de Software y la Gestin de la Calidad
Introduccin a la Norma ISO/IEC 12207 Procesos del Ciclo de Vida del Software El Proceso de Aseguramiento de Calidad La Calidad de Software en el Ciclo de Vida La Calidad en el Proceso Unificado