Anda di halaman 1dari 71

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS UNIVERSIDAD DEL PER, DECANA DE AMERICA

Facultad de Ingeniera de Sistemas e Informtica Unidad de Postgrado

Curso: Aseguramiento de la Calidad de Software


1. Fundamentos de Calidad de Software

Ing. Luis Alarcn Loayza Julio -2013

Agenda
Importancia de la Calidad del SW Qu es Calidad? Problema Control de Calidad Aseguramiento de Calidad Proyecto

Calidad de Software

Porque es importante asegurar la calidad del software?

La implantacin del enfoque de calidad permite a las empresas controlar cada una de sus actividades y, por tanto, mejorar continuamente. La Calidad es parte de la Ingeniera de Software. Comprende la calidad de Producto, del Proceso y Calidad del Proyecto.

Porque es importante asegurar la calidad del software?

Calidad del producto software

Porque es importante asegurar la calidad del software?


La Importancia econmica del software El funcionamiento hoy en da de las maquinas o de todo equipamiento de computo depende en gran medida del software. No es posible imaginar grandes sistemas, en el mbito de las finanzas, industria, control de trfico automotor, ventas a clientes, etc., funcionando sin Software. Calidad del Software Cada vez ms, la calidad software se ha convertido en un factor determinante del xito de los sistemas informticos, tcnicos o aplicaciones comerciales o productos (dispositivos mviles, de comunicacin, etc.) Mtodos y buenas Practicas para la mejora de la calidad La aplicacin de adecuados modelos de calidad, as como mtodos de testing (inspecciones y revisiones) aseguran la mejora de la calidad de los productos software as como del proceso que se sigue para su desarrollo.

Porque es importante asegurar la calidad del software?

Se necesita hablar de calidad en el Software

Porque es importante asegurar la calidad del software?

GRANDES ERRORES DEL SOFTWARE Motivacin. Caso 1: Toyota


T oyota Modelo Prius 2010 05/02/2010 T oyota retira 437 mil autos hbridos con fallas tcnicas. Problemas Prdidas por con 8,5 los frenos. de

millones

dlares, devolucin a dueos. Diagnstico: Problema de un programa de computacin que maneja los controles de los frenos antibloqueo.

Porque es importante asegurar la calidad del software?

GRANDES ERRORES DEL SOFTWARE Motivacin. Caso 1: Toyota


T oyota Motor Corp.
Retiro del Mercado 2,17 millones de vehculos en Estados Unidos debido a problemas con el acelerador, que podra quedar atascado en la alfombrilla. Con esto, Toyota ha retirado globalmente ms de 14 millones de vehculos para arreglar el acelerador y otros defectos desde el 2009.

Fuente:24Feb.2011 http://peru21.pe/noticia/718504/toy ota-retira17-mllns-vehiculos

Porque es importante asegurar la calidad del software?

GRANDES ERRORES DEL SOFTWARE Motivacin. Caso 2: Microsoft


Evento de Presentacin de Windows Vista

Ao 2006
Desde un inicio la presentacin de WV gener imagen negativa en la audiencia mundial

Porque es importante asegurar la calidad del software?

GRANDES ERRORES DEL SOFTWARE Motivacin. Caso 3: Ariane 5


Ariane5,CoheteEuropeo Lanzamiento 4 de Junio de 1996 39.0 segundos gira bruscamente y explota 36.7 segundos se desborda la memoria Costo aproximado: 7 mil millones de dlares Prdida aproximado: 500 millones de dlares

http://www.ima.umn.edu/~arnold/disasters/ariane.html

Porque es importante asegurar la calidad del software?


Grandes Errores del Software - Caso 3 El Lanzamiento del Ariane 5 Vuelo 501, tuvo lugar el 4 de junio de 1996, fue la primera prueba de vuelo del sistema desechable de lanzamiento del Ariane 5. No fue un xito, la lanzadera se destruy 36.7 segundos despus del lanzamiento debido a un mal funcionamiento en el software de control, haciendo de este defecto del software uno de los ms caros de la historia. El software del Ariane 5 reutiliz las especificaciones del Ariane 4, pero la trayectoria de vuelo del Ariane 5 era considerablemente distinta y superaba el rango para el cual el cdigo reutilizado haba sido diseado. En particular, la mayor aceleracin del Ariane 5 provoc un fallo en los ordenadores de respaldo ("back-up") y navegacin inercial primarios, tras lo cual las toberas de la lanzadera fueron dirigidas por datos espurios. Las pruebas previas al vuelo nunca fueron ejecutadas sobre el cdigo reajustado bajo condiciones de vuelo simuladas del Ariane 5, por lo tanto el error no fue descubierto antes del lanzamiento. Fuente: Wikipedia.com

11

Porque es importante asegurar la calidad del software?

GRANDES ERRORES DEL SOFTWARE Motivacin. Caso 4: Therac


Therac25 Instrumento mdico usado para aplicar radiacin a pacientes con cncer. Junio 1985 a Enero 1987 Mensaje Ninguna dosis Muerte y daos permanentes Diagnstico : Sobredosis de radiacin http://courses.cs.vt.edu/%7Ecs3604/lib/Therac_25/Therac_1.html

Porque es necesario asegurar la calidad del software ?


Grandes Errores del Software Caso 4: Rayos X letales del Therac 25 Una serie de pacientes recibieron una dosis letal de radiacin debido a un fallo de software. El Therac - 25 era una mquina para radiacin teraputica producida por la empresa Atomic Energy of Canada Limited. Estuvo involucrada con al menos, seis accidentes conocidos entre 1985 y 1987, en los cuales los pacientes fueron objeto de una sobredosis masiva de radiacin, que en algunos casos fueron del orden de centenas de gray. Al menos cinco pacientes murieron por sobredosis. Estos accidentes destacan los riesgos del control software de sistemas crticos en trminos de seguridad (safetycritical systems). Fuente: Wikipedia.com

13

Porque es importante asegurar la calidad del software?

GRANDES ERRORES DEL SOFTWARE Motivacin. Caso 5: Per


Resultadodeexamendocente Noviembre 2009 Software del MINEDU Diagnstico : Desplazamiento de las filas del listado de los postulantes por puntaje obtenido Impacto poltico, marchas y protestas.

http://peru21.pe/noticia/371483/alegan-falla-tecnica-bajon-notas-pruebadocente

Porque es importante asegurar la calidad del software?

GRANDES ERRORES DEL SOFTWARE Motivacin. Caso 6: Per


CajeroAutomtico 2009 Mujer retira S/.100 de Cajero Automtico y la Mquina le devuelve S/. 500. Indito: El Banco luego la denunci por ROBO

Porque es importante asegurar la calidad del software?

GRANDES ERRORES DEL SOFTWARE Motivacin. Caso 7: Per

GRANDES ERRORES DEL SOFTWARE Ejercicio en clase


Completar una lista de al menos 2 grandes desastres ocasionados por un error de software.
-Fecha - Lugar / Organizacin donde ocurri - Descripcin - Causa probada o ms probable - Monto estimado de prdida - Usted: Qu se pudo hacer antes para evitarlo Tarea 1:
Entrar a la pagina Web indicada, participe en clase mencionando 02 de los 60 fallas de sistemas informticos causados por errores de software: http://www.softwareqatest.com/qatfaq1.html

Porque es importante asegurar la calidad del software?


Los Costos de Reparacin de un Defecto de Software

Fuentes: Barrh Boehm, Software Engineering Economics, Prentice-Hall 1981 National Institute of Standards & Technology, United States Department of Commerce, "The Economic Impacts of Inadequate Infrastructure for Software Testing", May 2002

18

Porque es importante asegurar la calidad del software? Diferenciacin en cantidad de instrucciones

Problemtica Porqu lleva tanto tiempo terminar los programas? Porqu no podemos encontrar todos los errores antes de entregar el software a nuestros clientes? Porqu nos resulta difcil constatar el progreso conforme se desarrolla el software? Porque es alta la brecha de comunicacin entre Desarrolladores y los Usuarios?

20

PROBLEMTICA: Brecha De Comunicacin (Scharer90)

21

Relacin entre error, defecto y fallo

Relacin entre error, defecto y fallo


Error (error): - Es una equivocacin cometida por un desarrollador. Algunos ejemplos de errores son: un error de tipeo, una malinterpretacin de un requerimiento o de la funcionalidad de un mtodo. - El estndar 829 de la IEEE coincide con la definicin de diccionario de error como una idea falsa o equivocada. Por ende un programa no puede tener o estar en un error, ya que los programas no tienen ideas; las ideas las tienen la gente.

Relacin entre error, defecto y fallo


Defecto (fault, defect):
- Un paso, proceso o definicin de dato incorrecto en un programa de computadora. ISO 9126. - Una instruccin incorrecta, incumplimiento de los requisitos de uso previsto. Un error puede conducir a uno o ms defectos. - Un defecto se encuentra en un artefacto y puede definirse como una diferencia entre la versin correcta del artefacto y una versin incorrecta. - De nuevo coincide con la definicin de diccionario, imperfeccin. Por ejemplo, un defecto es haber utilizado el operador < en vez de <=.

Relacin entre error, defecto y fallo


Fallo (failure) :
- Un resultado incorrecto. - En terminologa IEEE, una falla es la discrepancia visible que se produce al ejecutar un programa con un defecto, respecto a la ejecucin del programa correcto. - Es decir, una falla es el sntoma de un defecto. - La terminacin de la capacidad de un producto de realizar una funcin requerida o su - incapacidad para realizarla dentro de lmites previamente especificados. ISO 9126.

Los errores del programador generan defectos en el software que posteriormente se convierten en fallos si dichos defectos no son detectados durante las pruebas.

Calidad del producto software


Diferencia con los productos del proceso industrial
El Software es un producto mental, no fsico (su calidad tambin) Se desarrolla, no se fabrica. (Costo en el diseo, no en la produccin) El software no se deteriora con el tiempo. Es artesanal en gran medida. Se construye a medida, en vez de ser construido ensamblando componentes existentes. El mantenimiento del software es mucho ms complejo que el mantenimiento en fbrica. Fallo en el software implica cambios en el diseo. El software con defectos no se rechaza. Se asume que es inevitable que el software presente errores. Es engaosamente fcil realizar cambios sobre un producto software.

Cul es de mejor calidad?


Hyunday T erracan

Lamborghini Gallardo

Qu es Calidad?

Calidad es
Lo que cuesta mas caro Lo que es ms moderno Lo que usa una mejor tecnologa

Mitos Populares de la calidad


La calidad es un lujo La calidad es intangible, no es medida La calidad es costosa y reduce la productividad La baja calidad significa malos trabajadores La calidad es responsabilidad de Departamento de Calidad

Referentes de la Calidad
1-DCCS_ANEXO_CalidadSoftware_EnfoquesDeCalidad.ppt
Autor
Walter Shewhart

Aporte
Ciclo de Shewart (PDCA): "El proceso metodolgico bsico para asegurar las actividades fundamentales de mejora y mantenimiento: Plan-Do-Check-Act y el control estadstico de procesos SPC Catorce principios para la direccin: Qu se debe contemplar para la direccin de la organizacin. Triloga de Jurn: "La planificacin de la calidad, control de la calidad y mejora de la calidad son los instrumentos de la Direccin en la gestin de la calidad" Crculos de Calidad: "Grupos de voluntarios, estables en el tiempo que tienen como objetivo mejorar la calidad de los procesos y el entorno de trabajo" Just In Time JIT: "Sistema de gestin de produccin que permite entregar al cliente el producto con la calidad exigida, en la cantidad precisa y el momento exacto"

Edward Deming

Joseph Jurang

Kaoru Ishikawa

Taiichi Ohno

Masaaki Imai Genichi Taguchi

Kaizen: "Significa mejora continua en Japons" Ingeniera de la Calidad: "Mtodos para el diseo y desarrollo de los procesos de insdustrializacin con el mximo de eficiencia" Gestin Visual: "Es un sistema que propone que la informacin necesaria est al alcance de las personas que la usan para su trabajo"

Kiyoshi Suzaki

Qu es la Calidad?

DOS PUNTOS DE VISTA DE LA CALIDAD:

Producer view of quality

Customer view of quality

Quality Assurance closes the gap

DEFINIENDO LA CALIDAD
DOS PUNTOS DE VISTA DE LA CALIDAD: Operacionalmente, la palabra calidad est referida a productos. Se dice que un producto es de calidad si este est libre de defectos. Punto de Vista de Calidad del Fabricante: El punto de vista del fabricante tiene que ver con el cumplimiento de 04 caracteristicas: Hacer lo correcto (el Producto), Haciendolo de manera correcta, Haciendolo bien la primera vez y Hacerlo a tiempo sin exceder el costo. Punto de Vista de Calidad del Cliente: Es el cumplimiento de los requisitos a satisfaccin. Esta es la visin de la organizacion responsable del Proyecto y de los Procesos, como tambien de los Productos y Servicios adquiridos, desarrollados y mantenidos por estos procesos.

DEFINIENDO LA CALIDAD
IEEE El grado con el cual un sistema, componente o proceso satisface las expectativas del usuario o cliente . Kaoru Ishikawa Calidad de un producto significa que ste es el ms econmico, el ms til y siempre satisfactorio para el consumidor

DEFINIENDO LA CALIDAD
Walt Disney I do not worry whether something is cheap or expensive. I only worry if it is good. If it is good enough, the public will pay you back for it ---No me preocupa si algo es barato o caro. Slo me preocupa si es bueno. Si es lo suficientemente bueno, el pblico (cliente) te pagar por ello.

ENFOQUES DE CALIDAD
Calidad segn Demming Calidad, es la aplicacin de los principios y tcnicas estadsticas en todas las fases de la produccin, dirigida a la fabricacin ms econmica de un producto (incluye servicio) que es til y que tiene mercado.

DEFINIENDO LA CALIDAD
Drucker Un buen producto no es el que cumple con una determinada especificacin, sino es el que es bien recibido por el cliente.

DEFINIENDO LA CALIDAD
Grado en el que un conjunto de caractersticas inherentes cumple con los requisitos *. Requisito : Necesidad o expectativa, generalmente implcita u obligatoria*.
*T omado de NTP-ISO 9000:2001: Sistemas de Gestin de la Calidad. Fundamentos y Vocabulario *Coincide con definicin de la American Society for Quality, 2000

La Cultura de la Calidad
Ejemplo de la cultura de la calidad en organizaciones de Software

1DCCS_ANEXO_CalidadSoftware_Induccion_CulturaCalidad.p pt

Calidad de Software

La Cultura de la Calidad Tarea Individual para Prxima clase


Completar una lista de al menos relacionados a la cultura de la calidad. Ejemplo:
Ya est prubalo! (respuesta del desarrollador luego de que el sufrido probador detecta y le reporta un error, obviamente la correccin nunca ha sido probado por el desarrollador)

frases

CALIDAD DE SOFTWARE

CALIDAD DEL SOFTWARE

Otra definicin de Calidad del Software:


Punto de vista del cliente: El grado en que un cliente y/o usuario percibe que el producto software satisface sus necesidades. Punto de vista de la industria: Grado en el que un producto de software satisface su especificacin de requerimientos.

43

CALIDAD DEL SOFTWARE


La Calidad del Software es, disponer de un software razonablemente libre de errores, entregado a tiempo y dentro del presupuesto, cumpliendo con los requisitos y / o expectativas, y ser fcil de mantener. Sin embargo, la calidad es un trmino subjetivo, depender de quien es el Cliente y de su influencia global en el contexto de las cosas. Una vista amplia de los clientes de un proyecto de desarrollo de software, puede incluir: a los usuarios finales, los probadores de aceptacin de los clientes, agentes contractuales y gestores del cliente, los gestores /testeadores /vendedores de la organizacin, ingenieros del mantenimiento del software, los accionistas. Cada tipo de Cliente" tendrn su propio punto de vista sobre la "calidad:
El Departamento de contabilidad puede definir la calidad en trminos de ganancias, Un Usuario final puede definir la calidad como fcil de usar y libre de errores.
44

CONTROL DE CALIDAD (QC)


Orientada al cumplimiento de los requisitos de la calidad. NTP-ISO 9000 Sistemas de Gestin de la Calidad. Fundamentos y Vocabulario. Un conjunto de actividades diseadas para evaluar la calidad de los productos desarrollados o fabricados.
NOTA : Este trmino no tiene ningn significado estandarizado en ingeniera de software en este momento.

PLANIFICACIN DE CALIDAD
Implica determinar que normas de calidad son relevantes para el proyecto. Se planifica durante el Plan de Gestin del Proyecto.
Gua de los Fundamentos de la Direccin de PMBOK) Proyectos -

ASEGURAMIENTO DE LA CALIDAD (QA)


Comprende las actividades planificadas y sistemticas implementadas dentro del Sistema de Calidad y que han demostrado ser necesarias para proporcionar la confianza adecuada de que una entidad cumplir con los requisitos de calidad. ISO/IEC 12207:2008, Systems and software engineering Software life cycle processes.4.34 Un conjunto de actividades diseadas para evaluar el proceso por el cual los productos son desarrollados o fabricados.

ASEGURAMIENTO DE LA CALIDAD (QA)


Las actividades planificadas y sistemticas relativas a la calidad para asegurar que el proyecto utilice los procesos necesarios para cumplir con los requisitos. Gua de los Fundamentos de la Direccin de Proyectos - PMBOK.

Propsito de SQA

La preocupacin de los desarrolladores de software es cmo lograr la calidad al elaborar sus productos. La medicin y las mtricas nos ayudan a entender al producto y al proceso que se utiliza para desarrollarlo. Tanto el producto como el proceso deben medirse, el producto se mide para intentar aumentar su calidad y el proceso se mide para intentar mejorarlo.

(Aseguramiento y Control de la calidad del software)

engloba:
1) Mtodos y tcnicas de anlisis, diseo, codificacin y prueba. 2) Revisiones tcnicas formales que se aplican durante cada fase del proceso de desarrollo de software. 3) Estrategias y plan de prueba con diversas escalas. 4) Control de la documentacin del software y de los cambios realizados, 5) Reportes de control de incidencias detectados por QA con evidencias. 6) Un procedimiento que asegure, siempre que sea posible, un ajuste a los estndares de desarrollo del software.

IEE: Especificacin incompleta o errnea; MCC: Mal interpretacin del cliente; DDE: Desviacin deliberada de la especificacin; IEP: Incumplimiento de estndares de programacin; ERD: Error en la presentacin de los datos; IMI: interfaz de modulo inconsistente; ELD: Error en la lgica del diseo; PIE: Prueba incompleta o errnea; DII: Documentacin imprecisa o incorrecta; TLP: Error en la traduccin del diseo a la programacin; IHM: Interfaz ambigua o inconsistente; VAR: Varios

Vista general QC, QA, MPS


ACA AQA AMP

QA

Mejora Procesos

Mtricas 1

Mtricas 2

..

Mtricas N

Proyecto SW 1

Control de Calidad

Proyecto SW 2

Proyecto SW N

Proceso

Producto

Anlisis

Diseo

Construccin

Pruebas

Comparacin SQA y QC

Procesos Procesos de de calidad Calidad Mtricas Mtricas

RequeriRequerimientos mentos

Reportes Reportes

Cambios Cambios

SQA
Pruebas Planes Planes

Riesgos Riesgos Entregables

Desviaciones

Participacin Aseguramiento de calidad

Jefe de Sistemas 10%

SQA 100%

Gestor de proyecto 30%

Analistas 15%

Gestin de la Calidad
Incluye la planificacin estratgica, la asignacin de recursos y otras actividades tales como la medicin a travs de indicadores. Se enfoca a la mejora continua. Gestin: Actividades coordinadas para dirigir y controlar una organizacin ISO 9000. Sistema de Gestin: Sistema para establecer la poltica y los objetivos y para alcanzarlos. Sistema de Gestin de la Calidad: Sistema para dirigir una organizacin con respecto a la calidad- ISO 9000 controlar

QUE LOGRAMOS CON LAS MEJORAS tiempo,costos,alcance


Tiempo de lo que estimamos

Tiempo de lo real

Tiempo del proyecto las mejoras

Clave del xito: Ningn modelo de mejora tiene xito si no se implementa correctamente

Implementador

MISCELANEOS

Calidad de Software

Dnde se encuentra el error?


Programa en Clipper If A > 1 && A < 5 Then Sentencia 1 .. Sentencia N
El fallo se manifestaba funcionalmente, no hay error de lgica, ni error de compilacin

Dnde se encuentra el error?


En Clipper si existe el error, && Significa Comentario. El error fue detectado mediante caja blanca, un programador experto en lenguaje C fue inducido al error en Clipper. En C : No existira error

Dnde se encuentra el error?

Dnde se encuentra el error?

Ambigedad

Pregunta:el check es para responder "Si" o es para responder "No?

Dnde se encuentra el error?


Departamento, Provincia, Distrito: Drowbox Zona: Drowbox de Urbanizacin, PJ, Asentamiento Va : Drowbox de Calle, Jr., Av.

Dnde se encuentra el error?


Departamento, Provincia, Distrito: Drowbox Zona: Drowbox de Urbanizacin, PJ, Asentamiento Va : Drowbox de Calle, Jr., Av.

Pregunta: Y dnde se registra el nombre de la Zona?

PREGUNTAS

Proyecto de Desarrollo
Proyecto del curso: Aplicacin de la NTP ISO/IEC 12207
Grupos de mximo 4 alumnos. Definir un proyecto de desarrollo de sistemas que utilice una de las siguientes metodologas: RUP o MTRICA 3. Se deber elaborar los entregables del proyecto basado en la metodologa de desarrollo seleccionada, a travs de los cuales el proyecto deber cumplir con los requisitos de la NTP ISO/IEC 12207 en las siguientes reas de proceso: - Procesos de desarrollo (principal) - Procesos de aseguramiento de calidad (de apoyo) - Proceso de verificacin - Proceso de validacin - Proceso de revisin conjunta - Proceso de gestin de proyectos

Tarea Grupal A presentar siguiente clase


Mapear las reas de proceso de la NTP ISO/IEC 12207 con la metodologa de desarrollo utilizado en el proyecto (RUP o MTRICA 3)

Anda mungkin juga menyukai