LA CALIDAD EN EL DESARROLLO DE SOFTWARE

Slides:



Advertisements
Presentaciones similares
Clase 09.  Garantizar la calidad de software  La prueba nunca termina, del IS translada se translada al usuario  Las casas de software invierte del.
Advertisements

CDA LA TERMINAL IMPLEMENTACION SISTEMA DE GESTION DE CALIDAD NORMA ISO 9001: REQUISITOS SISTEMA DE GESTION DE CALIDAD.
Verificación y Validación de Software
Es el conjunto de conocimientos y técnicas científicas aplicadas a la creación, perfeccionamiento e implementación de estructuras (tanto físicas como.
DIRECCIÓN NACIONAL DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN – DNTIC´S.
Calidad de Software.   ¿Qué es?  ¿Quién lo hace?  ¿Por qué es importante?  ¿Cuáles son los pasos?  ¿Cuál es el producto final?  ¿Cómo me aseguro.
Pruebas de Funcionalidad de Software: Caja Negra y Caja Blanca Curso: Diseño de Sistemas 9no. Semestre.
GROUP OF SYSTEMS IMPLEMENTATION
Análisis y Especificación de Requisitos
Evaluación de la calidad del software
Control de calidad de productos químicos Terminados
Mejores Prácticas en Proyectos de Desarrollo de Software
Tema 4: Ingeniería del Software
Comparación de Modelos Neuronales Utilizadas en la Toma de Decisiones
Proyecto de Software. t07
Fundamentos de negocios y comercio electrónico.
Las acciones técnicas en los procesos artesanales
Proyecto de Software. Clase 06
INGENIERIA EN MINAS GERENCIA EMPRESARIAL
Proceso de Desarrollo de SW
Aplicación Distribuida sobre Arquitectura Multi Capas, caso práctico Módulo Evaluación de RR.HH basado en Competencias ESPE Guillermo Narváez V.
ACTIVIDAD 1 GRUPO 2.
ENFOQUES DE CONSERVACIÓN
BREVE INTRODUCCIÓN.... El estándar fue generado por un equipo de trabajo del IEEE, su finalidad es la integración de los requerimientos del sistema.
Alianza Cooperativa Internacional
Construyendo soluciones Web con SIU-Toba
UNIVERSIDAD NACIONAL DE LOJA Área de la Educación, el Arte y la Comunicación Informática Educativa IV INGENIERIA DE SOFTWARE Taller de Análisis y Diseño.
Universidad manuela beltran - virtual
Ingeniería de Software
La planeación y la organización de problemas técnicos y el trabajo por proyectos en los procesos productivos.
Introducción a la Simulación
Ingeniería de Software
Las herramientas Case Julian madrigal.
Unidad 2.- Marcos de referencia en la gestión de servicios de TI
Metodología del software xp
Especificación de requerimientos por: Sonia Cristina Gamboa Sarmiento
Proceso Unificado de Desarrollo de Software
EXPOSITOR L.C. EDUARDO M. ENRÍQUEZ G.
La Gestión y el Control de Procesos
INTRODUCCIÓN AL CONCEPTO DE CALIDAD Concepto que se ha introducido en forma progresiva en el mundo de la empresa, industrial, comercial y de servicios.
Análisis comparativo entre CMMI e ISO
INTRODUCCIÓN AL CONCEPTO DE CALIDAD Concepto que se ha introducido en forma progresiva en el mundo de la empresa, industrial, comercial y de servicios.
Proceso de Desarrollo de SW
Diferencias programador vs Ingeniero de software
CALIDAD Y AUDITORIA DE SOFTWARE. Rodrigo Cabello Ing. Informático Director de proyectos Think – Ideas in Motion CALIDAD Y AUDITORIA.
Universidad Tecnológica de Puebla División de Negocios
El sistema de Calidad de GFI/AST
1.2. Desarrollo de Software
PROCESO UNIFICADO DE DESARROLLO R.U.P.
CONCEPTOS DE PROYECTOS Y OTROS TÉRMINOS ÚTILES
Calidad en la Prueba de Software
Equipo 2 Arellano Catalán Marco A. Damián Contreras Ma. Guadalupe
Modelo de la cascada (cont.)
Gerencia en Planeación Estratégica Juan Pablo Cepeda Duarte
LAS VARIABLES EN LA INVESTIGACIÓN
Desarrollo de sitios web
Plan de Desarrollo de TI Junio 7, 2018
PROYECTO INFORMÁTICO ¿QUÉ ES UN PROYECTO INFORMÁTICO?
CALIDAD martes, 19 de febrero de 2019
Nuestros canales de comunicación Gestión de la Calidad del Software Modelos y Estándares de Calidad en el Software.
INTRODUCCIÓN AL CONCEPTO DE CALIDAD Concepto que se ha introducido en forma progresiva en el mundo de la empresa, industrial, comercial y de servicios.
Tema 3 Documentación soporte de un sistema de calidad
METODOLOGÍAS ÁGILES Por metodologías ágiles entendemos a aquellas metodologías de gestión que permiten adaptar la forma de trabajo al contexto y naturaleza.
CARRERA DE INGENIERÍA EN ELECTRÓNICA, AUTOMATIZACIÓN Y CONTROL
LA INTEGRACIÓN SEGMENTADA COMO METODOLOGÍA DE DESARROLLO PARA UNA GERENCIA DE SISTEMAS DE INFORMACIÓN EFECTIVOS 05/08/2019.
NORMA ISO/IEC 9126 Norma publicada en Usada para la evaluación de la calidad de software. Establece las características de calidad para productos.
MODELO INTEGRADO DE PLANEACIÓN Y GESTIÓN
Gestión de Proyectos Informáticos (GPI) ISW
SISTEMA INTEGRAL DE GESTION TRI NORMA
Transcripción de la presentación:

LA CALIDAD EN EL DESARROLLO DE SOFTWARE Por : Lic. Adrián Quisbert Vilela

¿En dónde está el software? INTRODUCCION ¿En dónde está el software?

Requerimientos del Usuario Desarrollo de Software INTRODUCCION Modelo de proceso Requerimientos del Usuario Sistema de software Actividades Desarrollo de Software

Factores para el del desarrollo de software Recursos Humanos La calidad del producto El proceso de desarrollo

Factores para el del desarrollo de software El proceso de desarrollo El aseguramiento de la calidad El recurso humano Desarrollo de Software La gerencia del proyecto Las herramientas de desarrollo

Estado del arte en Ingeniería de Software: El desarrollo de software requiere un RH altamente especializado y muy actualizado Estado del arte en Ingeniería de Software: Ingeniería de Software Orientada a Objetos Reutilización de activos y componentes de software Interfases Humano-Computador Interfases web y multimedia Integración de software heterogéneo Objetos y componentes distribuidos Arquitecturas de integración: CORBA, EJB, COM Arquitecturas de software, patrones de diseño.

Construcción de una casa para un perro Puede hacerlo una sola persona. Modelado mínimo. MPC =  ci M1, M2, ...,Mn P = 1 - (ET/ER) Proceso simple. Herramientas simples.

Construcción de una casa Construida eficientemente y en un tiempo razonable por un equipo. Modelado: de planos simples a planos arquitectónicos. Proceso bien definido. Herramientas más sofisticadas.

Construcción de un Edificio Construido por muchas compañías. Requiere Mucho modelado : planos complejos planos arquitectónicos, modelos a escala, planes de ingeniería. Proceso bien definido: equipos arquitectónico, políticas de planeación, Infraestructura de planeación, tablas de tiempos y agendas. Equipo pesado.

El proceso de desarrollo

Los procesos de software Un proceso de software se define como un: "conjunto de actividades, métodos, prácticas y transformaciones que las personas usan para desarrollar y mantener software y los productos asociados [p.ej., planes, especificaciones, diseños y pruebas]" Una premisa fundamental: "La calidad de un producto de software está determinada, en muy buena medida, por la calidad del proceso. CALIDAD DEL PRODUCTO CALIDAD DEL PROCESO

Situación actual La industria del software no ha acabado de salir de la fase artesanal Padecemos de “prisa patológica”, que es consecuencia directa de: Desorganización Falta de planificación Alta dependencia de los “héroes” Dedicamos nuestros esfuerzos de hoy a arreglar lo que se hizo mal ayer

Situación actual La construcción del software en nuestro medio es muy artesanal.

En una organización inmadura (cont.): Si hay plazos rígidos, se sacrifican funcionalidad y calidad del producto para satisfacer el plan No existen bases objetivas para juzgar la calidad del producto Cuando los proyectos está fuera de plan, las revisiones o pruebas se recortan o eliminan

Qué hacer ? Artesanía Ingeniería

Cambio cultural de todos los involucrados!

Por que debemos Cambiar Calidad de Software

DEFINICIÓN DE CALIDAD DEL SOFTWARE La calidad está de moda, en todos los aspectos, pero especialmente en el desarrollo de software. El interés por la calidad crece de forma continua, a medida que los clientes se vuelven más selectivos y comienzan a rechazar los productos poco fiables o que realmente no dan respuesta a sus necesidades. Ahora bien, ¿qué es la calidad del software?

Algunas Definiciones Según Deming, calidad es “Conformidad con los requisitos y confianza en el funcionamiento” Según Juran, calidad es “Adecuación para su uso” Crosby pone más énfasis en la prevención: “hacerlo bien a la primera” Veamos otras definiciones de calidad extraídas de estándares internacionales: “La calidad es la suma de todos aquellos aspectos o características de un producto o servicio que influyen en su capacidad para satisfacer las necesidades, expresadas o implícitas” (ISO 8402) “Grado con el cual el cliente o usuario percibe que el software satisface sus expectativas” (IEEE 729-83) “Capacidad del producto software para satisfacer los requisitos establecidos” (DoD 2168)

“La calidad del software es el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario”. (IEEE, Std. 610-1990).

Unos de los modelos de calidad más antiguos y extendidos es el de McCall [McCall, 1977], y

El modelo de McCall Como ejemplo vamos a ver el modelo de McCall. El modelo de McCall organiza los factores en tres ejes o puntos de vista desde los cuales el usuario puede contemplar la calidad de un producto: - Operación del producto - Revisión del producto - Transición del producto El modelo de McCall se basa en 11 factores de calidad, que se organizan en torno a los tres ejes de la siguiente forma:

Factores que determinan la calidad del software Se centran en tres aspectos importantes de un producto software (McCall): Características operativas Capacidad de soportar los cambios Adaptabilidad a nuevos entornos

Factores de calidad del Software Características operativas Corrección. ¿Hace lo que quiero? Fiabilidad. ¿Lo hace de forma fiable todo el tiempo? Eficiencia. ¿Se ejecutará en mi hardware lo mejor que pueda? Seguridad (Integridad). ¿Es seguro? Facilidad de uso. ¿Está diseñado para ser usado?

Capacidad de soportar los cambios Facilidad de mantenimiento. ¿Puedo corregirlo? Flexibilidad. ¿Puedo cambiarlo? Facilidad de prueba. ¿Puedo probarlo?

Adaptabilidad a nuevos entornos Portabilidad. ¿Podré usarlo en otra máquina? Reusabilidad. ¿Podré reutilizar alguna parte del software? Interoperabilidad. ¿Podré hacerlo interactuar con otro sistema?

FACTOR CRITERIOS Facilidad de uso - Facilidad de operación - Facilidad de comunicación - Facilidad de aprendizaje Integridad - Control de accesos - Facilidad de auditoría Corrección - Completitud - Consistencia - Trazabilidad Fiabilidad - Precisión - Consistencia - Tolerancia a fallos - Modularidad - Simplicidad

Eficiencia - Eficiencia en ejecución - Eficiencia en almacenamiento Facilidad de mantenimiento - Modularidad - Simplicidad - Consistencia - Concisión - Auto descripción Facilidad de prueba - Modularidad - Simplicidad - Auto descripción - Instrumentación Flexibilidad - Auto descripción - Capacidad de expansión - Generalidad - Modularidad

Reusabilidad - Auto descripción - Generalidad - Modularidad - Independencia entre sistema y software - Independencia del hardware Interoperabilidad - Modularidad - Compatibilidad de comunicaciones - Compatibilidad de datos Portabilidad - Auto descripción - Modularidad - Independencia entre sistema y software - Independencia del hardware

Pruebas de Software

Pruebas de Software Las pruebas es el proceso de ejercitar un programa con la intención específica de encontrar errores previos a la entrega al usuario final.

¿Qué muestran las pruebas? errores cumplimiento de requerimientos desempeño indicede calidad

¿Quién prueba el software? desarrollador probador independiente Entiende el sistema pero, es condescendiente y, es dirigido por el “entregable” Debe entender el sistema, pero, intentará provocar fallas, y, es dirigido por la calidad

Prueba exhaustiva

Prueba Selectiva Ruta Seleccionada

Pruebas de Softwre métodos de métodos de caja blanca caja negra Estrategias

Diseñar casos de prueba “Los bugs se esconden en las esquinas y se congregan en los límites ..." OBJETIVO descubrir errores CRITERIO en forma completa

Pruebas de Caja Blanca ... el objetivo es asegurarse que todos sentencias y condiciones han sido ejecutados por lo menos una vez ...

¿Por qué probar? Los errores lógicos y los supuestos incorrectos inversamente proporcionales a la probabilidad de ejecución de las rutas frecuentemente creemos que una ruta no es probable que se ejecute; de hecho, la realidad frecuentemente hay que tomarlo en cuenta los errores tipográficos son aleatorios, su probailidad de que las rutas sin probar contendrán algunos

Pruebas de Ruta Básicas Primero, calculamos la complejidad ciclomática: número de decisiones simples + 1 o número de áreas cerradas + 1 en este caso, V(G)=4

Pruebas de Ruta Básicas Siguiente, se derivan las 1 2 3 4 5 6 7 8 rutas independientes: Dado que V(G) = 4, hay 4 rutas Ruta 1: 1,2,3,6,7,8 Ruta 2: 1,2,3,5,7,8 Ruta 3: 1,2,4,7,8 Ruta 4: 1,2,4,7,2,4,...7,8 Finalmente, se derivan casos de prueba para aplicarse a estas rutas.

Prueba de Iteraciones Iteración simple Iteraciones Anidadas concatenadas Iteraciones no estructuradas

Pruebas de Caja Negra requerimeintos salida entrada eventos

Estrategias de Pruebas de Software

Estrategias de Prueba pruebas unitarias pruebas de integración pruebas sistema pruebas de validación

Pruebas Unitaras módulo a ser probado resultados ingeniero de software casos de prueba

Pruebas Unitarias módulo a ser probado interfaz estructuras de datos locales condiciones de frontera rutas independientes rutas de manejo de errores casos de prueba

Pruebas de Alto Orden pruebas de validación pruebas de sistema pruebas alfa y beta