You are on page 1of 8

APUNTES DE TCNICAS DE DESARROLLO DE SISTEMA CALIDAD DE SOFTWARE PROFRA.

LAURA MNDEZ SEGUNDO CARACTERSTICAS DEL SOFTWARE El software a diferencia de otros productos, tiene caractersticas muy particulares, es por ello que las ideas sobre calidad creadas y aplicadas en otros sectores industriales tengan que adaptarse a esta situacin. El software - Se desarrolla, no se fabrica. Todo el costo de su produccin se centra en el diseo ya que la replicacin de un programa en una tarea trivial. Se trata de un producto lgico, sin existencia fsica. El verdadero producto de software es el diseo de una serie de instrucciones para la computadora. Su existencia en papel o medio magntico no es ms que una representacin en un cdigo o lenguaje de su autntica naturaleza, las instrucciones. No se degrada con el uso. Por muy intensa que sea su utilizacin, ste es inalterable. Se entrega conscientemente con defectos incluso pblicamente declarados, debido a la complejidad del software y la ausencia de controles adecuados. Es extraordinariamente flexible. Se puede cambiar con facilidad e incluzo se pueden reutilizar trozos de un producto para construir otro.

CALIDAD DEL SOFTWARE La definicin oficial de Calidad del software es la del estndar IEEE Std.6101990: Grado con el que un sistema, componente o proceso cumple Los requisitos especificados. Las necesidades o expectativas del cliente o usuario

EMPRESA/ORGANIZACIN NIVELES DE CALIDAD DEL SOFTWARE: Y PROYECTO

APUNTES DE TCNICAS DE DESARROLLO DE SISTEMA CALIDAD DE SOFTWARE PROFRA. LAURA MNDEZ SEGUNDO NIVEL DE EMPRESA: SISTEMA DE CALIDAD La poltica de calidad forma parte de la poltica general de la empresa. Es importante que la direccin exprese dicha poltica de manera explcita as como lo hace para la poltica financiera, de personal, etc. Por lo tanto, la gestin de la calidad forma parte de las tareas de la direccin, y para tener xito debe contar con el compromiso y la participacin de todos. Actualmente se apoya en la creacin de lo que se denomina Sistema de Calidad para la empresa. El sistema de calidad debe: Ser eficaz y comprendido por todos. Ofrecer confianza en satisfacer las necesidades de los clientes. Poner ms nfasis en prevenir que en detectar y corregir. Un sistema de calidad consta de dos partes: Una parte escrita en una serie de documentos en los cules se describe el sistema, los procedimientos, etc. Ajustndose a una norma (ISO 9001) Otra parte prctica que a su vez tiene dos vertientes principales: o Aspectos fsicos: locales, herramientas, computadoras, etc. o Aspectos humanos: formacin del personal a os niveles (tanto en tcnicas de calidad como en tcnicas de reuniones, comunicacin, etc.) y creacin y coordinacin de equipos de trabajo.

MANUAL DE CALIDAD Todos los elementos, requisitos y medios que adopte la empresa para sus sistema de calidad se deben establecer por escrito en el Manual de Calidad, ste debe describir el sistema de gestin de calidad para servir como referencia permanente al implantar o aplicar el sistema. El Manual de Calidad Puede realizarse para la totalidad de la empresa o Puede haber manuales a nivel departamento, producto, etc o Puede haber manuales especficos (compras, desarrollos, etc.)

La estructura de un manual de calidad es la siguiente: 1. Captulos de introduccin ndice Declaracin de la direccin de la empresa. Poltica de calidad y objetivos generales de la empresa respecto a la calidad. Objeto y campo de aplicacin del manual de calidad Terminologa Gestin del manual de calidad (procedimiento para cambios, aprobacin, etc.) Presentacin de la empresa 2.- Disposiciones para conseguir la calidad: en general en el orden del ciclo de vida.

APUNTES DE TCNICAS DE DESARROLLO DE SISTEMA CALIDAD DE SOFTWARE PROFRA. LAURA MNDEZ SEGUNDO El manual de calidad se puede completar con procedimientos o instrucciones especficas para ciertas actividades o procesos. La existencia de estos procedimientos se debe mencionar claramente en el manual de calidad. Para organizaciones de desarrollo de software procedimientos(tcnicas y metodologas) para : se suelen incluir los

-realizar y documentar el anlisis de los sistemas - realizar y documentar el diseo de los sistemas o de sus bases de datos Constituyen en saber hacer de la empresa. Ejemplos: Procedimiento de especificacin de requisitos (recomendaciones y tcnicas para realizarla, formatos) Procedimiento para las pruebas de software Procedimiento de estilo de codificacin de software

Base Normativa La normatividad de calidad se centra en el nivel de organizacin. ISO 9000: Gestin y aseguramiento de calidad (conceptos y directrices generales)

Como recomendaciones para el aseguramiento externo de la calidad: ISO 9001: Aseguramiento de calidad en organizaciones cuyo proceso abarca desde el diseo hasta el servicio postventa. ISO 9002: Aseguramiento en organizaciones cuya actividad se basa en las fases de produccin y de instalacin. ISO 9003: Aseguramiento en organizaciones cuya actividad requiere slo inspeccin y ensayos finales.

Como recomendaciones para la gestin interna de la calidad: ISO 9004: Elementos de un sistema de calidad NFX 50-160:1988 o UNE 66-907-91: Gua para manuales de calidad

La importancia de estas normas reside en que se emplean como base para que las empresas se certifiquen, es decir, obtengan un visto bueno otorgado por una tercera parte independiente que transmita a sus clientes la confianza en que se trabaja con procedimientos que permiten asegurar la calidad en sus actividades. Para el desarrollo y mantenimiento del software, la norma aplicable es la ISO 9001, ya que aborda todas las actividades del ciclo de vida. De ah que se derive

APUNTES DE TCNICAS DE DESARROLLO DE SISTEMA CALIDAD DE SOFTWARE PROFRA. LAURA MNDEZ SEGUNDO la gua ISO 9000-3 que es la Gua para aplicar ISO 9001 al desarrollo, suministro y mantenimiento de software Esta gua contempla: El marco de trabajo de la empresa: Sistema de calidad, responsabilidad de la direccin y la realizacin de acciones correctivas

Las actividades del ciclo de vida: revisin de contrato, especificacin, planificacin de la calidad, diseo, implementacin, revisiones, pruebas, aceptacin, replicacin, entrega, instalacin y mantenimiento. Las actividades de apoyo: gestin de configuracin, control de documentos, mtricas, convenciones y reglas, herramientas, formacin, registros de calidad y compras.

Dificultades en la implantacin de un sistema de calidad Bastante tiempo de trabajo Resistencia al cambio Riesgo de la desilusin inherente a un fracaso Falta de recursos Falta de formacin y educacin

Condiciones esenciales o recomendaciones para implantar sistemas de calidad Asegurar el compromiso de la alta direccin. Involucrar a los mandos intermedios Proporcionar a todos los empleados formacin e informacin adecuada Utilizar casos reales en su puesta en marcha Definir y efectuar los mecanismos de seguimiento continuo de sus resultados.

Otros consejos prcticos: Buscar el pacto con expertos y tcnicos al momento de establecer metodologas, requisitos, niveles y criterios de aceptacin. Exhibir en los documentos de calidad lo que hacen de verdad o lo que han pactado hacer. Pensar desde el principio en implantar indicadores de calidad que permitan saber qu tal van las cosas. (Utilizar registros de calidad)

CALIDAD A NIVEL DE PROYECTO

APUNTES DE TCNICAS DE DESARROLLO DE SISTEMA CALIDAD DE SOFTWARE PROFRA. LAURA MNDEZ SEGUNDO Planificacin del aseguramiento de la calidad del software en un proyecto Siguiendo las recomendaciones de IEEE 1991 se deben decidir varios aspectos del mismo: La seleccin de uno o varios modelos candidatos del ciclo de vida que se aceptarn y concretarn luego en el ciclo de vida del proyecto especfico. Aspectos relacionados a la financiacin, la disponibilidad y la viabilidad del proyecto. Definicin del entorno del proyecto: metodologas, tcnicas y herramientas. Planificacin de la gestin del proyecto.

A partir de estos puntos se elabora un Plan de Gestin del Proyecto de Software en el que se describe : La gestin da a da del proyecto. La planificacin del Aseguramiento de la Calidad del Software (SQA5) La planificacin de la documentacin que debe generarse a lo largo del ciclo de vida.

El plan de aseguramiento de la calidad son especficos para los diferentes proyectos y se generarn cuando se considere apropiado. Son planes escritos sobre el tema de la calidad en el proyecto que suelen ser coherentes con el sistema de calidad de la empresa (con el manual de calidad y procedimientos de la empresa), si bien, como hemos dicho, deben contemplar su ajuste con normas impuestas por los clientes. Este plan se suele indicar (siguiendo el estndar IEEE Std 730 para Planes de Aseguramiento de Calidad de Software [IEEE, 1984a]): Objetivos de calidad el proyecto y enfoque adoptado para su consecucin. Documentacin referenciada en el plan (por ejemplo, procedimientos, manuales, etc.). Gestin del aseguramiento de la calidad: organizacin (estructura, personal, etc.), actividades y responsabilidades. Documentacin mnima exigible a los desarrolladores del software: documentacin de desarrollo (especificaciones, diseos, documentacin de usuarios, etc.) y de control o de gestin (planes para la validacin y verificacin, etc.) Estndares, normas y prcticas que hay que cumplir, al menos, estndares de documentacin, de estructura lgica, de codificacin (estilo de programacin) y comentarios. Actividades de revisin y auditorias que suelen incluir, al menos, revisiones del anlisis y del diseo de la aplicacin y diversas auditorias previas a la entrega del software.

APUNTES DE TCNICAS DE DESARROLLO DE SISTEMA CALIDAD DE SOFTWARE PROFRA. LAURA MNDEZ SEGUNDO Gestin de la configuracin del Software: se pueden exponer sus actividades explcitamente o refirindose a un Plan de Gestin de la Configuracin especficamente preparado para el proyecto.
Informes de problemas (y de las actividades subsiguientes de correccin) en los que se especificarn los procedimientos para tratar los problemas que surjan y como corregirlos, as como quines son los responsables de cada caso. Herramientas (por ejemplo, analizadores de cdigo o generadores de entornos de prueba), tcnicas y mtodos (por ejemplo, revisiones, inspecciones, etc.) para el apoyo al seguimiento de la calidad; se especificarn los objetivos que se pretenden cubrir con ellas y se especificarn los objetivos que se pretenden cubrir con ellas y se describir la forma de uso de las mismas en el proyecto. Control del cdigo, de los equipos y de los suministradores: almacenamiento y control de versiones de cdigo, control de acceso a equipos y prevencin de daos, y control de las caractersticas del software que se ha subcontratado o se ha comprobado (por ejemplo, bibliotecas de funciones grficas) Recogida, mantenimiento y almacenamiento de datos sobre la documentacin (que se especifique) de las actividades de aseguramiento de la calidad realizadas.

Actividades de aseguramiento de la calidad del software en un proyecto


Mtricas del software para el control de proyectos. La verificacin y validacin del software a lo largo del ciclo de vida, incluyendo las pruebas y los procesos de revisin. La gestin de la configuracin del software.

MODELOS TRADICIONALES DE EVALUACION DE LA CALIDAD DEL SOFTWARE El modelo de McCall se basa en descomponer el concepto de calidad en tres usos o capacidades (desde el punto de vista del usuario del software): capacidad de operacin, capacidad para ser modificado, capacidad de transicin o adaptacin a otros entornos.

Cada Capacidad o uso se descompone en una serie de factores que determinan la calidad en cada una de las capacidades mencionadas.
Facilidad de uso.- Grado de esfuerzo necesario para aprender a utilizar el software, preparar la entrada de datos e interpretar la salida del mismo. Integridad.- Grado en el que se puede controlar el acceso del personal al software o a los datos que utiliza.

APUNTES DE TCNICAS DE DESARROLLO DE SISTEMA CALIDAD DE SOFTWARE PROFRA. LAURA MNDEZ SEGUNDO
Eficiencia: Necesidades de recursos hardware y software requeridos por el software evaluado para realizar sus funciones. Fiabilidad.- Grado o probabilidad de que el software no falle al realizar sus funciones. Correccin.- Grado en el que el software cumple sus especificaciones. Flexibilidad.- Facilidad o grado de esfuerzo necesario para modificar el software en funcionamiento. Facilidad de prueba.- Esfuerzo necesario (o facilidad) para probar el software de modo que se tenga un cierto grado de confianza en que realiza adecuadamente sus funciones. Facilidad de mantenimiento.- Facilidad o grado de esfuerzo para mantener operativo el software mediante la correccin o depuracin de los problemas que pueden aparecer durante su funcionamiento. Tranportabilidad.- Facilidad o grado de esfuerzo necesario para transportar o migrar el software de un entorno de operacin a otro. Capacidad de reutilizacin.- Capacidad o grado de esfuerzo para que el software o alguna de sus partes puedan ser utilizadas en otros desarrollos de software. Capacidad de interoperacin.- Capacidad o grado de esfuerzo necesario para que el software o un sistema puedan operar operar conjuntamente con otros sistemas o aplicaciones de software.

Cada factor determinante se descompone a su vez en una serie de criterios o propiedades que determinan su calidad. Estas propiedades o criterios son en muchos casos propiedades internas de software que no dependen en su apreciacin de quin est observndolas y que los desarrolladores de software consideren que influyen en la calidad. Facilidad de operacin.- Propiedades del software que determinan la facilidad de las operaciones y de los procedimientos relativos a la explotacin del software. Facilidad de comunicacin.- Propiedades del software que proporcionan eficacia y facilidad en las comunicaciones. Facilidad de formacin o aprendizaje.- Propiedades del software que proporcionan al usuario informacin de operaciones reales o que facilitan la familiarizacin inicial con el proyecto. Control de acceso (seguridad).- Propiedades del software que proporcionan facilidades para el control de accesos al software y a los datos que maneja. Facilidad de auditoria.- Propiedades del software que proporcionan facilidades para realizar auditora del software, de los datos empleados o de los resultados obtenidos. Eficiencia de ejecucin.- Propiedades del software que proporcionan un consumo mnimo de recursos de procesamiento al realizar sus operaciones. Eficiencia de almacenamiento.- Propiedades del software que proporcionan unas necesidades mnimas de memoria para su operacin. Exactitud o precisin.- Propiedades del software que proporcionan el grado de precisin requerido para los resultados que hay que obtener.

APUNTES DE TCNICAS DE DESARROLLO DE SISTEMA CALIDAD DE SOFTWARE PROFRA. LAURA MNDEZ SEGUNDO
Consistencia.- Propiedades del software que proporcionan tcnicas y documentacin uniforme y coherente en las distintas etapas del software(especificacin, diseo, implantacin, etc). Tolerancia a fallos.- Propiedades que proporcionan la continuidad del funcionamiento bajo condiciones no habituales. Modularidad.- Propiedades del software que proporcionan una estructura de mdulos adecuadamente independientes. Simplicidad.- Propiedades del software que proporcionan la implantacin de funciones de la manera ms comprensible posible (evitando que qaumente la complejidad). Complecin.- Propiedades del software que proporcionan la implantacin total de todas las funciones requeridas. (COMPLETO) Rastreabilidad.- Propiedades del software que proporcionan una traza o pista reconocible desde los requisitos hasta su implantacin en relacin a un desarrollo especfico y a un determinado entorno de operaciones. Autodescripcin.- Propiedades del software que proporcionan explicaciones sobre el desarrollo de cada funcin. Capacidad de expansin .- Propiedades del software que proporcionan para aadir nuevas capacidades funcionales o datos al sistema. Generalidad.- Propiedades del software que proporcionan amplitud en las funciones realizadas. Instrumentacin.- Propiedades del software que proporcionan la posibilidad de observar el comportamiento del software durante su ejecucin. Independencia entre sistema y software.- Propiedades del software que determinan su dependencia de su entorno lgico de trabajo (sistemas operativos, facilidades, etc.) Independencia de la maquina.- Propiedades del software que determinan su dependencia de su entorno fsico de trabajo(CPU, dispositivos, etc). Normalizacin (o compatibilidad) de comunicaciones.- Propiedades del software que favorecen una fcil intercomunicacin del sistema con otros. Normalizacin (o compatibilidad) de datos.- Propiedades del software que determinan la posibilidad de utilizacin comn de datos con otros sistemas.