qa sc

Download Qa sc

If you can't read please download the document

Upload: santiago-nunez

Post on 26-Jul-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

1. Semana de Aseguramiento de la Calidad IC@TECCalidad de Software en Computacin Cientfica Santiago Nez Corrales, Eng. Investigador, Programa de Investigacin e-Science, TECDirector, Tecnologas Digitales, MICITT 2. La calidad no es un acto, es un hbito. Aristteles 3. Agenda1. Introduccin2. Una definicin dura de calidad3. Qu es computacin cientfica?4. Calidad en el software: el conundrum5. Aspectos de calidad en software cientfico6. De la Ciencia a la Computacin7. Algunas conclusiones 4. Introduccin La calidad es un aspecto central en la vidamoderna Requerimiento comercial Impacto sobre el status de vida Medida de valor La calidad del sofware es un tema complejo El software siempre est en crisis! Arte o ingeniera? Cambio tecnolgico 5. Introduccin 6. Introduccin Donald Knuth: elsoftware es un arte! Refleja el estadomental de unprogramador alresolver un problema Mtrica: elegancia dela solucin La medida essubjetiva! 7. Introduccin Mundo empresarial:el software es unresultado deingeniera Resultado de unproceso cuidadoso Estndares,herramientas dediseo, especificacin Medida: pulgas 8. Mercado: el softwaretiene ms valor entrems innovador es La curva de adopcintiende a ser elmodelo de facto Decisiones:desarrollo softwarepara lo ms actual, olo ms estable? 9. Introduccin 10. Introduccin Realidad (de laempresa de softwareCR): estndares sindisciplina Regla de orofrecuente: si funcionano lo toque! Las pulgas seatienden y registran,no sistemticamente 11. Introduccin Costa Rica debe salir progresivamente delparadigma de maquilas de software Crear aplicaciones en reas msespecializadas Software cientfico es una de ellas Estamos preparados? No (an). El software cientfico agrega varios niveles decomplejidad Es un rea ideal para el pas 12. Una definicin dura de calidad La calidad es un concepto de ingeniera Calidad: Medida cuantitativa del grado de cumplimiento deun objeto o proceso de un conjunto deespecificaciones con lmites de tolerancia adesviaciones bien establecidos Implicaciones: Ocurre en cada paso del proceso, no solo enetapas Requiere disciplina y perseverancia 13. Una definicin dura de calidad Qu significa asegurar la calidad? Especificar el funcionamiento ideal u ptimo sinambiguedades Definir formalmente los lmites de tolerancia Especificar los pasos requeridos durante el proceso Especificar para cada paso mecanismos demedicin del valor actual Medir el error entre el valor ideal y el valor actual delos lmites de tolerancia Corregir hasta que el error sea aceptable 14. Una definicin dura de calidad Las mediciones de calidad requieren unaevaluacin rigurosa Cmo saber si las cosas funcionan? Hablar de calidad requiere de manerainvariable de estadstica inferencial El mundo real no es determinstico Variables naturalmente aleatorias Desconocimiento de condiciones iniciales Concurrencia de eventos 15. Una definicin dura de calidad El Diseo de Experimentos (DoE) es la nicametodologa confiable para determinar calidad Por tanto, calidad es un atributo de objetostecnolgicos nicamente Sin experimentos, no es posible tener calidad Experimentos reales: construccin del artefactotecnolgico y medicin de lmites de tolerancia encondiciones controladas Experimentos virtuales: construccin de modelosque aproximan de manera realista estados 16. Una definicin dura de calidad La calidad es un recurso, por lo tanto tienevalor como activo intangible Es parte de la propiedad intelectual yusualmente es una fuente de innovacin Para garantizar calidad, se deben seguir losprincipios del mtodo cientfico Existen siete factores que determinan elproceso necesario para garantizar calidad Las siete M (7M) 17. Una definicin dura de calidad Market: la exigencia del cliente es incremental,no decremental Man: las personas siempre son parte delproblema, no necesariamente de la solucin Money: la calidad tiene un costo de entrada,pero un ahorro continuo Material: cada objeto o proceso tiene tantacalidad como de aquello de lo que se compone 18. Una definicin dura de calidad Machine: un proceso que se efecta un unamquina de alta precisin, si es bien utilizada,producir resultados con errores menores Method: mtodos ms inteligentes permitenmantener el equilibrio entre tiempo y costo dela calidad Management: administrar significa establecerreglas claras bajo supuestos slidos, y tomardecisiones con criterios que conduzcan aoptimalidad de resultados 19. Una definicin dura de calidad 20. Qu es computacin cientfica? La Ciencia es el proceso sistemtico de hacerel mundo objetivamente cognoscible El inicio del conocimiento cientfico es lamedicin de un fenmeno de manera precisa Se mide tanto el valor obtenido como su errorexperimental A partir de los datos experimentales, se obtieneuna hiptesis y se generan teoras candidatas Cada teora debe refutarse y se elige la mejor 21. Qu es computacin cientfica? Existen ocasiones en donde los experimentosno son realizables Las escalas de tiempo y espacio lo impiden La cantidad de variables correlacionadas es muyalta El riesgo de experimentacin es inaceptable Las mediciones no pueden separarse deincertidumbre inherente 22. Qu es computacin cientfica? 23. Qu es computacin cientfica? La computacin cientfica, cienciacomputacional o e-Science es la aplicacin demodelos de simulacin traducidos a cdigofuente ejecutable para generar descubrimientoscientficos El computador se transforma de apoyosecundario a una herramienta del mismo nivelque un telescopio o un microscopio La computacin se ha convertido en unlenguaje de descripcin de la Ciencia 24. Qu es computacin cientfica? 25. Qu es computacin cientfica? 26. Qu es computacin cientfica? Por qu es importante tomar en cuenta lacomputacin cientfica: El avance tecnolgico del pas est atrayendoempresas de alto perfil, y requieren simulacin Start-ups de alto valor agregado Disminuye los costos de laboratorio La tendencia mundial es en proyectosinterdisciplinarios con conocimientos cientficos El rea con mayor potencial de patentes ypublicaciones en otras reas 27. Qu es computacin cientfica? 28. Qu es computacin cientfica? 29. Calidad en el software: elconundrum De regreso en el tema del software, saltan dospreguntas a la vista: Si el software es un arte, cmo se mide lacalidad? Si el software es una ingeniera, por qu no dabuenos resultados? Si la fabricacin de autos funcionara como lade software, uno de cada mil explotara sinrazn aparente por da 30. Calidad en el software: elconundrum Posibles respuestas a las preguntas anteriores: El desarrollo de software no debe ser un arte, perola creacin de nuevos algoritmos s lo es El desarrollo de software depende de la correctitudde las especificaciones Las especificaciones de software tienden a serambiguas. (Por qu? Existe alguna forma deresolverlo?) Parte del problema radica en un desequilibrio entrelo especfico y lo general en la etapa de diseo Es difcil medir la produccin en software 31. Calidad en el software: elconundrum Si el software es un proceso de ingeniera,cmo se define el comportamiento ideal? Multitud de tcnicas para especificar elsoftware, muy pocas permiten formalizar Lenguaje Z: un formalismo matemtico quepermite especificar de manera no ambigua Basado en lgica proposicional, describeobjetos y procesos Curva de aprendizaje alta, efectivo 32. Calidad en el software: elconundrum 33. Calidad en el software: elconundrum A partir de especificaciones en Z, se puedeaplicar un proceso de refinamiento: Convertir objetos en entidades de software Convertir procesos en diagramas de secuencia yde estados Identificar procesos similares entre s Identificar generalizaciones El diseo de software tambin puede ser unproceso calculado y con formalidad 34. Calidad en el software: elconundrum Cmo se mide la calidad del trabajo delprogramador? Cantidad de lneas de cdigo Cantidad de bugs Efecto de los bugs (una lnea vs piatas) Ponderacin con el lenguaje de programacin Complejidad del problema Total de ciclos de retrabajo Lejana con especificacin final 35. Calidad en el software: elconundrum Finalmente, existe una cantidad creciente detcnicas, lenguajes de descripcin de objetos ydems involucrados en el proceso de calidad Mito: aplicar todas las tcnicas recientesgarantiza calidad Realidad: las tcnicas no garantizan calidad,solo garantizan condiciones bajo las cuales sesimplifica el definir mtricas duras Falta mucho por aprender de los mtodos deotras ingenieras 36. Aspectos de calidad en elsoftware cientfico Generalmente el software cientfico tiene unainteraccin limitada con el usuario Los problemas son paramtricos, y los lmites delos valores son bien conocidos Con frecuencia la interfaz grfica es accesoria Menor interaccin diagramas de secuencia noincluyen HCI La calidad en el caso de aplicacionescientficas se concentra en la calidad de losresultados con respecto a la realidad 37. Aspectos de calidad en elsoftware cientfico Asegurar la calidad en el software cientficopuede efectuarse analizando los posiblescasos de error que existen con respecto aresultados Representacin Numricos Aproximacin Simplicacin Inherentes Sigue siendo software! 38. Aspectos de calidad en elsoftware cientfico Errores de representacin: Los datos de eventos asumen rangos continuos Los datos representables son discretos Cantor: existen infinitamente ms reales queenteros Overflow, underflow Medida de calidad de un sistema: el error(psilon) de la mquina Aseguramiento de calidad: utilizar operacionesque controlen el error y un estandar 39. Aspectos de calidad en elsoftware cientfico Errores numricos: Existen errores independientes de larepresentacin Ocurren an con aritmtica continua Dependen de la algoritmia Medida de la calidad de un sistema: error entreuna funcin conocida y su aproximacin Aseguramiento de calidad: efectuarbenchmarks y elegir el mtodo numrico conmejo balance tiempo/precisin 40. Aseguramiento de calidad ensoftware cientfico 41. Aspectos de calidad en elsoftware cientfico Errores de aproximacin: En algunas ocasiones, el acoplamiento entrevariables es tal que el problema no admitesimplificaciones Se utilizan funciones aproximantes No es corregible a pesar del mtodo numrico Medida de calidad: error promedio y desviacinestndar con respecto a datos reales Aseguramiento de calidad: benchmarking defunciones aproximantes vs tiempo 42. Aspectos de calidad en elsoftware cientfico 43. Aspectos de calidad en elsoftware cientfico Errores de simplificacin: En ocasiones los problemas complejos puedenabstraerse en versiones ms simples Los detalles pequeos suelen agruparse entrminos varios de error Dos fuentes de error Mtrica de calidad: (a) variancia de erroresvarios, (b) diferencia total con datos reales Aseguramiento de la calidad: elegir menorsimplificacin posible! 44. Aspectos de calidad en elsoftware cientfico 45. Aspectos de calidad del softwarecientfico Error inherente: Existen problemas para los cuales la incertidumbreno puede eliminarse Aleatoriedad No observabilidad Mtrica de calidad: promedio y variancia en eltiempo de valores agregados Aseguramiento de calidad: utilizar mtodos queconsideren desde el inicio la aleatoriedad y laestocasticidad de los fenmenos complejos 46. [email protected]@acm.org