Click here to load reader

Unidad 2 Calidad Enfocada Al Desarrollo de Si 2

Embed Size (px)

DESCRIPTION

Calidad de los Sistemas de la Información

Citation preview

Calidad de los Sistemas de Informacin

Unidad II. Calidad enfocada al desarrollo de los S.I.Calidad de los Sistemas de Informacin

Calidad en el desarrollo de software El software es definido como la suma total de los programas de cmputo, procedimientos, reglas, documentacin y datos asociados que forman parte de las operaciones de un sistema de cmputo (IEEE Std 729-1993).

Bajo esta definicin el concepto de software va ms all de los programas de cmputo en sus distintas formas: cdigo fuente, binario o cdigo ejecutable, adems de su documentacin. Desarrollo del SW2El desarrollo de software es una actividad compleja que depende principalmente del esfuerzo intelectual de las personas, as como de los procesos y la tecnologa con la que se desarrolla. Existen diversas metodologas y procesos para el desarrollo de software, algunas de las actividades tpicas que se realizan son las siguientes:

1. Requerimientos. Identificar las necesidades del usuario y documentarlas en trminos de los servicios que debe ofrecer el software.

2. Anlisis y diseo. Desarrollar un modelo tcnico conceptual de la solucin que permita cumplir todos los requerimientos especificados y sirva como base para la construccin del software.

3. Codificacin. Implementar el modelo conceptual en un lenguaje o herramienta de programacin, es decir, generar el cdigo fuente, adems de realizar las pruebas unitarias a cada componente de software y la integracin de estos.

4. Pruebas de sistema. Verificar que el software cumpla con los requerimientos especificados y no presente fallas. Depende del requerimeintos es el exito de nuestro proyecto si no hay requerimientos no se puede pasar al analisis y deseo de nuestro proyecto dos tipos:usuario que es lo que qiuiere eu haga y sistema:Analisis : establecer como ban ha estar diseado los proseso de sftw e interfaz tiene que tener esta 3 economico,tecnico,operacionalDiseo: programar el sistema interfaz ituitivo y facilCodificacion:se escoge un lenguaje de programacionpara desarrollaqr el sftw y una vez terminado se lleva las pruebas.Pruebas del sistema: verifica que no tenga errores ya que no tiene que tener el minimo error

3 Calidad de software Las dimensiones clave de la calidad son las siguientes:

1. Nivel de satisfaccin. Grado en el cual los clientes o usuarios perciben que el producto de software cumple sus necesidades, requerimientos y expectativas.2. Valor del producto. Grado en el cual un producto de software tiene valor para sus involucrados, en relacin al ambiente competitivo.3. Atributos de calidad. El grado en el cual un producto de software posee una combinacin de propiedades deseadas (eficiencia, integridad, portabilidad, entre otras).

Existen diversas taxonomas de los atributos de calidad, una de stas es la que propone el Handbook of Software Quality Assurance que considera: a) calidad de diseo (correcto, facilidad de mantenimiento, facilidad de verificacin), b) calidad de desempeo (eficiencia, integridad, fiabilidad, facilidad de uso, facilidad de prueba), c) calidad de adaptacin (facilidad de expansion, flexibilidad, portabilidad, reusabilidad, interoperabilidad. Esfuerzo necesario para acoplar el software sobre una plataforma con otro software y/o plataforma, intra-operabilidad).

44. Defectos. Grado en el cual el producto de software presenta fallas al utilizarse, atribuibles a ste. 5. Calidad del proceso. En relacin al proceso de desarrollo por el cual fue construido el software.

Lograr todas estas dimensiones de la calidad es algo muy complejo, considerando adems que el software es un producto intangible. Los defectos del software son una consecuencia indeseable del error humano.

En cada etapa del desarrollo de software se cometen errores, es por ello que las pruebas y el aseguramiento de la calidad son actividades necesarias en los proyectos de desarrollo de software; y es importante considerar que para el cumplimiento su objetivo, es necesario invertir recursos significativos.

Al contrastar el costo de encontrar errores en cada fase del desarrollo contra el costo incurrido de encontrar el error en una fase posterior, se demuestra que una inversin temprana en prevencin y descubrimiento de errores, mediante aseguramiento de la calidad, estndares, revisiones, auditoras e inspecciones, permiten remover los defectos con un costo significativamente menor.

Defectos y errores en la calidad de los SIUn fallo ocurre cuando algo deja de funcionar : Cuando debera de hacerlo o Como debera de hacerlo.

Los fallos estn referidos directamente al incumplimiento de las especificaciones tanto explcitas como implcitas. (definicin de calidad)

La OCURRENCIA de fallos seala la distancia del producto al objetivo de la calidad y en consecuencia del proceso que lo cre.FallosDefectosUn defecto es la causa de un fallo, es algo en el producto que: Est, pero no debe. No est, pero debe . No est como debe estar.

Desde el punto de vista de la corporacin, sus efectos se computan como COSTE DE LA NO CALIDAD, que se agravan cuanto ms tiempo permanezca sin ser eliminado.

La PRESENCIA de defectos apunta de forma directa a la validez de los procedimientos de inspeccin y prueba.

Un defecto provoca que un programa no cumpla de manera completa y efectiva aquello para lo que fue creado.

Es algo concreto y objetivo: se puede identificar, describir y contabilizar.

Los defectos tienen un coste.

Tipos de defectosDocumentacin. Sintaxis. Organizacin (gestin de cambios, libreras, control de versiones). Asignacin (declaraciones, mbitos, nombres duplicados). Interfaz (dentro del mismo sistema o con otros externos).Chequeo (mensajes de error, trazas, vaidaciones). Datos (estructura, contenido). Funcin (errores lgicos, bucles, recurvisidad).Sistema (configuracin, instalacin, explotacin).Entorno (diseo, compilacin, pruebas). Coste de los defectosCoste de resolver Coste de evitar (SQAP Software Quality Assurance Plan) Otros costes Daos reales Tiempo Imagen Confianza Motivacin

Coste de los defectos (despus de)Un defecto que llega a la fase de explotacin y pervive hasta que ocasiona un fallo arrastra un volumen impredecible de perjuicios que se pueden estimar econmicamente.

En la etapa final se debe impedir la entrega de productos defectuosos al cliente. Procedimientos de inspeccin: Revisin: Protocolos de revisin. Pruebas: Diseo del plan de pruebas. Diseo del protocolo de pruebas. Formacin y entrenamiento del equipo de pruebas.

Coste de los defectos (durante)Los procedimientos de deteccin final de defectos son: Caros: Es un trabajo largo, tedioso y realizado por especialistas. Poco productivos: La tasa de deteccin de defectos sobre el producto terminado no es muy alta. Mal considerados: Sus costes son de difcil justificacin en la cuenta de resultados

Lo ideal es que los defectos no crucen la frontera del desarrollo.

El coste de un defecto est directamente relacionado con la distancia entre el momento en que se introdujo y el momento en que se detecto.

De ello se deduce la importancia de la deteccin temprana y de la incorporacin de procedimientos de revisin en todas las etapas.Coste de los defectos (antes)El nico defecto barato es aquel que no se introdujo. Por muy pronto que se detecte un defecto implica como mnimo la realizacin del RETRABAJO* necesario para su correccin.

Pero en casos ms problemticos incorpora adems el RETRABAJO de las tareas que, pese a haber sido bien realizadas, arrastraron los efectos del error. (No siempre est claro cules son.)

Las metodologas de desarrollo deben contemplar estos aspectos y :

Minimizar el espacio para la comisin de errores (procedimientos). Permitir registrar las relaciones entre las distintas piezas del desarrollo (trazabilidad) Habilitar procedimientos de deteccin temprana (revisiones, pruebas).

*Retrabajo: Trabajo que hay que hay que repetir. El coste de los defectos

El coste de los defectos

Gestin y registro de defectosRegistrar cada defecto que encuentres en un programa.

Registrar la informacin suficiente sobre cada defecto para que puedas entenderlo posteriormente.

Analizar estos datos para ver qu tipos de defectos causan los mayores problemas.

Idear formas de encontrar y corregir estos defectos.

Formas de encontrar defectosAunque no hay forma de acabar con la introduccin de defectos, es posible encontrar y eliminar casi todos los defectos al principio del desarrollo.

Siempre estn implicados estos mtodos:Identificar los sntomas del defecto.Deducir de estos sntomas la localizacin del defecto.Entender lo que es errneo en el programa.Decidir cmo corregir el defectoHacer la correccin.Verificar que el arreglo ha resuelto el programa.Segn Humphrey, la forma ms rpida y eficiente es revisando personalmente el cdigo fuente.As se ven los problemas, no los sntomas.Sin embargo, con experiencia encontrar una media del 75% al 80% de los defectos.Formas de encontrar defectosCon el compilador. Pero no detecta los errores semnticos. Mediante pruebas. Las pruebas de unidad encuentra sobre el 50% de los defectos lgicos. Las de sistema entre un 30% y un 40%. Pero no podemos probar todos los casos.La ms comn de todas: Que los detecten los usuarios. Durante un ao, IBM gast 250 millones de dlares en reparar y reinstalar correcciones de 13,000 errores encontrados por los usuarios: 20,000 dlares por defecto.Revisar antes de compilarSe dedicar el mismo tiempo antes o despus de compilar.Antes de la revisin, se dedicar entre un 12% y un 15% del tiempo a compilar. Despus un 3% o menos.Una vez compilado el programa, la revisin no es tan completa.La compilacin es igualmente efectiva antes o despus de la revisin del cdigo.La experiencia indica que cuando un programa tiene muchos defectos durante la compilacin, generalmente tienen muchos defectos en las pruebas.ACTIVIDAD1.Desarrollar como investigacin en el cuaderno:

Contabliziacin de defectos y errores.Costo de encontrar y corregir defectos

Tipos de pruebasPruebas unitarias Objetivo: comprobar que un mdulo de cdigo (funcin, mtodo, clase,) funciona correctamente.

Pruebas funcionales Objetivo: comprobar que el software desarrollado realiza de manera funcionalmente correcta aquello para lo que fue desarrollado.

Pruebas de Integracin Objetivo: comprobar que los mdulos que componen el cdigo desarrollado funciona correctamente una vez que estos estn integrados entre s.

Pruebas de validacin (de aceptacin) Objetivo: comprobar que el software desarrollado cumple con las expectativas del cliente, tanto desde el punto de vista de la funcionalidad (objetiva) como de la satisfaccin del cliente (subjetiva) Pruebas de caja blanca Objetivo: comprobar desde el interior de los mdulos de cdigo que estos funcionan de manera correcta.

Pruebas de caja negra Objetivo: comprobar desde el exterior (slo prestando atencin a las entradas y salidas) de los mdulos de cdigo que estos funcionan de manera correcta. ACTIVIDAD2.Desarrollar como tarea en el cuaderno la investigacin sobre:

Pruebas de caja blanca y un ejemplo de aplicacinPruebas de caja negra y un ejemplo de aplicacin.ErroresUn error es la accin que ha provocado la introduccin de un defecto en el producto. La COMISIN de errores seala de forma directa a la calidad de los procesos de desarrollo.

Un fallo OCURRE durante el FUNCIONAMIENTO del equipo. Un defecto se INTRODUCE en el PRODUCTO durante su desarrollo. Un error lo COMETE una PERSONA durante el desarrollo.Errores de los usuariosUN FALLO PROVOCADO POR UN ERROR DE UN USUARIO ES UN DEFECTO NUESTRO

Los usuarios tambin cometen, pero eso no debe comprometer las prestaciones del sistema. No deben producir fallos, no es razonable trasladar la culpa al usuario de las averas causadas por la incorrecta utilizacin (salvo especificacin).

Por ello calidad atender tambin a la formacin y entrenamiento de los usuarios

Adems de ello, la calidad del producto y por tanto del proceso de desarrollo debe plantearse bajo la perspectiva del uso y por tanto debe preverse cualquier eventualidad que pueda ocurrir durante la explotacin y proteger el sistema frente a ello. Listas de comprobacinLa clave para realizar una revisin de cdigo efectiva es tener un procedimiento de revisin eficiente.

Una lista de comprobacin contiene una serie de pasos de procedimiento que se quiere y pretende seguir de forma precisa.

La lista de comprobacin encapsula la experiencia personal.Utilizndola con regularidad y adaptndola, permitir la deteccin oportuna de los defectos de los programas.

Un ejemplo de lista de comprobacin completa y compleja es la que realiza la NASA en la cuenta atrs de un lanzamiento, que dura varios das.El principal peligro es que generalmente se encuentra slo lo que busca.Si solamente hace las pruebas de la lista de comprobacin, solamente encontrar lo que est en dicha lista.Haga al menos una revisin general del programa para buscar lo inesperado, desde la perspectiva del sistema o del usuario.Ejemplo de lista de comprobacin

Clasificacin de datos de defectos

Dificultades de encontrar erroresLos defectos enmascaran o agravan a otros.Interaccionan y enmascaran sntomas de otros.Es difcil, incluso en programas pequeos, probar todos los caminos lgicos.En sistemas complejos, al probar slo las condiciones que pensamos ms importantes, pasamos por alto muchos defectos.A mayor nmero de defectos que entran en la fase de pruebas, compilacin o revisin, mayor la probabilidad de dejarlos en el producto.Valores de rendimiento

Costos de la calidad en el desarrollo de software Costos de Prevencin

Costo de todos aquellos esfuerzos para asegurar la calidad del software y prevenir defectos en todas las fases del desarrollo de software. Implica costes incurridos cuando modificas el proceso para evitar introducir errores: Anlisis para comprender los defectos, mejora de especificacin de requisitos, diseo e implementacin, rediseo y pruebas de un nuevo proceso.

Por ejemplo: aseguramiento de la calidad (planeacin de la calidad, mejora de procesos, definicin de procesos, polticas y estndares, obtencin, anlisis y uso de datos sobre la calidad, anlisis de causas races), requerimientos (especificaciones y prototipos), administracin del proyecto (planeacin, capacitacin, recopilacin de mtricas), librera de reuso (capacitacin y herramientas), administracin de la configuracin (capacitacin y herramientas), consultora. a) Costos para asegurar la calidad o costos de conformidad Costos de evaluacin

Costo del esfuerzo para descubrir la condicin de la calidad del software (evaluaciones planeadas); incluyen todo el trabajo de valoracin del producto para ver si tiene defectos, excluyendo el tiempo dedicado a la correccin de defectos.

Esto comprende por ejemplo: evaluacin de proyectos (revisin de especificaciones de requerimientos, diseo y componentes, verificaciones y validaciones en general, inspecciones, pruebas unitarias, de integracin y de sistema), auditoras de calidad del producto, evaluaciones externas, pruebas de productos adquiridos. b) Costos por falta de calidad o costos de no conformidadCostos de fallas internas

Costo del esfuerzo para detectar y corregir problemas previos a que el usuario los detecte, por ejemplo: corregir defectos y el retrabajo correctivo en todas las etapas.

Costos de fallas externas Costo del esfuerzo para corregir problemas que son detectados por el usuario. Esto incluye remocin de fallas (mantenimiento correctivo, retrabajo, codificacin y prueba de defectos, compra de actualizaciones de productos), soporte (soporte tcnico para responder por los defectos, preparacin de apuntes de respuestas de soporte, investigacin de las quejas del usuario), compensacin (penalizaciones, reclamaciones, productos devueltos, reembolsos, descuentos, costos de garanta), otros (mala reputacin, prdida de ventas, usuario insatisfecho, prdida de la confianza del cliente).

Como controlar la calidad del SWAseguramiento de la calidad del SW (SQA)La calidad de los productos de software puede ser mediante un proceso iterativo de mejora continua que requiere control de direccin, coordinacin y retroalimentacin de muchos procesos simultneos:

Los procesos del ciclo de vida del SW.El proceso de deteccin de error/defecto, retirada de los mismos y prevencin.El proceso de mejora de calidadEsto implica la utilizacin de procesos estndares como los ISOs que permitan localizar especficamente la falla en el software y as poder depurarlo.

Esto se logra a travs de:

Procesos de Aseguramiento de la Calidad.Procesos de verificacin.Procesos de validacin.Procesos de Revisin.Procesos de Auditora. Mejora de procesos como alternativa para mejorar la calidad del software Para construir un sistema de software de alta calidad, debe asegurarse que cada una de sus partes sea de alta calidad. Para mejorar la calidad de un producto, debe mejorarse la calidad del proceso. Cuando calidad del software es pobre, el proceso de desarrollo se enfoca a detectar y corregir defectos.

Las empresas de software requieren reducir costos, mejorar calidad y mejorar tiempos.

Para lograr estos objetivos y mantenerse competitivas, deben mejorar sus procesos de desarrollo de software. Los desarrolladores de software estn conscientes que todo el software potencialmente tiene defectos, esto hace que se realicen actividades para prevenir, encontrar y corregir errores en el software.

Los costos de la mejora de procesos comprenden a) costos iniciales (no recurrentes), b) costos de mantenimiento (recurrentes) y c)costos de optimizacin. En cada uno de ellos existen factores de costo como son: recursos humanos, tecnologa y administracin.

El proceso inicial por ejemplo, empieza con el reconocimiento de la alta direccin sobre la necesidad de la organizacin en mejorar y termina cuando el proceso de ingeniera de software est suficientemente bien definido y practicado.

El tiempo de este esfuerzo es de 4 a 6 aos dependiendo de factores como el estado de la organizacin y la cantidad de apoyo de la administracin para el esfuerzo de mejora.

Algunos de los costos de esta fase estn relacionados con: la evaluacin inicial, implementar programa de mtricas, la documentacin procesos, la adquisicin de herramientas y la capacitacin inicial.Herramientas para asegurar la calidadEstndares de desarrollo Propios Adoptados

Soluciones de DiseoCdigos fuente de referenciaConfiguracin y unificacin del IDE en entornos de desarrollo corporativos Herramientas de revisin de cdigo Algunas herramientas SW JUnit : http://www.junit.org/

Cactus : http://jakarta.apache.org/cactus/ Jtest: http://www.parasoft.com/jsp/products/jtest.jsp/

Jmeter: http://jakarta.apache.org/jmeter/

Crucible: http://www.atlassian.com/software/crucible/

Selenium: http://seleniumhq.org/ ACTIVIDAD Desarrollar como investigacin en carpeta de evidencias:

Clculo del costo de la calidadwww.w3c.org //htmlwww.jigsaw.w3.org/css-validator //css41