Qa sc

246 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
246
En SlideShare
0
De insertados
0
Número de insertados
3
Acciones
Compartido
0
Descargas
1
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Qa sc

  1. 1. Semana de Aseguramiento de la Calidad – IC@TEC Calidad de Software en Computación Científica Santiago Núñez Corrales, Eng. Investigador, Programa de Investigación e-Science, TEC Director, Tecnologías Digitales, MICITT
  2. 2. La calidad no es un acto, es un hábito. Aristóteles
  3. 3. Agenda1. Introducción2. Una definición dura de calidad3. ¿Qué es computación científica?4. Calidad en el software: el conundrum5. Aspectos de calidad en software científico6. De la Ciencia a la Computación7. Algunas conclusiones
  4. 4. Introducción La calidad es un aspecto central en la vida moderna  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 ingeniería?  Cambio tecnológico
  5. 5. Introducción
  6. 6. Introducción Donald Knuth: el software es un arte! Refleja el estado mental de un programador al resolver un problema Métrica: elegancia de la solución La medida es subjetiva!
  7. 7. Introducción Mundo empresarial: el software es un resultado de ingeniería Resultado de un proceso cuidadoso Estándares, herramientas de diseño, especificación Medida: pulgas
  8. 8.  Mercado: el software tiene más valor entre más innovador es La curva de adopción tiende a ser el modelo de facto Decisiones: ¿desarrollo software para lo más actual, o lo más estable?
  9. 9. Introducción
  10. 10. Introducción Realidad (de la empresa de software CR): estándares sin disciplina Regla de oro frecuente: si funciona no lo toque! Las pulgas se atienden y registran, no sistemáticamente
  11. 11. Introducción Costa Rica debe salir progresivamente del paradigma de maquilas de software Crear aplicaciones en áreas más especializadas Software científico es una de ellas ¿Estamos preparados? No (aún). El software científico agrega varios niveles de complejidad Es un área ideal para el país
  12. 12. Una definición dura de calidad La calidad es un concepto de ingeniería Calidad:  Medida cuantitativa del grado de cumplimiento de un objeto o proceso de un conjunto de especificaciones con límites de tolerancia a desviaciones bien establecidos Implicaciones:  Ocurre en cada paso del proceso, no solo en etapas  Requiere disciplina y perseverancia
  13. 13. Una definición dura de calidad ¿Qué significa asegurar la calidad?  Especificar el funcionamiento ideal u óptimo sin ambiguedades  Definir formalmente los límites de tolerancia  Especificar los pasos requeridos durante el proceso  Especificar para cada paso mecanismos de medición del valor actual  Medir el error entre el valor ideal y el valor actual de los límites de tolerancia  Corregir hasta que el error sea aceptable
  14. 14. Una definición dura de calidad Las mediciones de calidad requieren una evaluación rigurosa ¿Cómo saber si las cosas funcionan? Hablar de calidad requiere de manera invariable de estadística inferencial El mundo real no es determinístico  Variables naturalmente aleatorias  Desconocimiento de condiciones iniciales  Concurrencia de eventos
  15. 15. Una definición dura de calidad El Diseño de Experimentos (DoE) es la única metodología confiable para determinar calidad Por tanto, calidad es un atributo de objetos tecnológicos únicamente Sin experimentos, no es posible tener calidad  Experimentos reales: construcción del artefacto tecnológico y medición de límites de tolerancia en condiciones controladas  Experimentos virtuales: construcción de modelos que aproximan de manera realista estados
  16. 16. Una definición dura de calidad La calidad es un recurso, por lo tanto tiene valor como activo intangible Es parte de la propiedad intelectual y usualmente es una fuente de innovación Para garantizar calidad, se deben seguir los principios del método científico Existen siete factores que determinan el proceso necesario para garantizar calidad Las siete M (7M)
  17. 17. Una definición dura de calidad Market: la exigencia del cliente es incremental, no decremental Man: las personas siempre son parte del problema, no necesariamente de la solución Money: la calidad tiene un costo de entrada, pero un ahorro continuo Material: cada objeto o proceso tiene tanta calidad como de aquello de lo que se compone
  18. 18. Una definición dura de calidad Machine: un proceso que se efectúa un una máquina de alta precisión, si es bien utilizada, producirá resultados con errores menores Method: métodos más inteligentes permiten mantener el equilibrio entre tiempo y costo de la calidad Management: administrar significa establecer reglas claras bajo supuestos sólidos, y tomar decisiones con criterios que conduzcan a optimalidad de resultados
  19. 19. Una definición dura de calidad
  20. 20. ¿Qué es computación científica? La Ciencia es el proceso sistemático de hacer el mundo objetivamente cognoscible El inicio del conocimiento científico es la medición de un fenómeno de manera precisa Se mide tanto el valor obtenido como su error experimental A partir de los datos experimentales, se obtiene una hipótesis y se generan teorías candidatas Cada teoría debe refutarse y se elige la mejor
  21. 21. ¿Qué es computación científica? Existen ocasiones en donde los experimentos no son realizables  Las escalas de tiempo y espacio lo impiden  La cantidad de variables correlacionadas es muy alta  El riesgo de experimentación es inaceptable  Las mediciones no pueden separarse de incertidumbre inherente
  22. 22. ¿Qué es computación científica?
  23. 23. ¿Qué es computación científica? La computación científica, ciencia computacional o e-Science es la aplicación de modelos de simulación traducidos a código fuente ejecutable para generar descubrimientos científicos El computador se transforma de apoyo secundario a una herramienta del mismo nivel que un telescopio o un microscopio La computación se ha convertido en un lenguaje de descripción de la Ciencia
  24. 24. ¿Qué es computación científica?
  25. 25. ¿Qué es computación científica?
  26. 26. ¿Qué es computación científica? Por qué es importante tomar en cuenta la computación científica:  El avance tecnológico del país está atrayendo empresas de alto perfil, y requieren simulación  Start-ups de alto valor agregado  Disminuye los costos de laboratorio  La tendencia mundial es en proyectos interdisciplinarios con conocimientos científicos  El área con mayor potencial de patentes y publicaciones en otras áreas
  27. 27. ¿Qué es computación científica?
  28. 28. ¿Qué es computación científica?
  29. 29. Calidad en el software: elconundrum De regreso en el tema del software, saltan dos preguntas a la vista:  Si el software es un arte, ¿cómo se mide la calidad?  Si el software es una ingeniería, ¿por qué no da buenos resultados? Si la fabricación de autos funcionara como la de software, uno de cada mil explotaría sin razón aparente por día
  30. 30. Calidad en el software: elconundrum Posibles respuestas a las preguntas anteriores:  El desarrollo de software no debe ser un arte, pero la creación de nuevos algoritmos sí lo es  El desarrollo de software depende de la correctitud de las especificaciones  Las especificaciones de software tienden a ser ambiguas. (¿Por qué? ¿Existe alguna forma de resolverlo?)  Parte del problema radica en un desequilibrio entre lo específico y lo general en la etapa de diseño  Es difícil medir la producción en software
  31. 31. Calidad en el software: elconundrum Si el software es un proceso de ingeniería, ¿cómo se define el comportamiento ideal? Multitud de técnicas para especificar el software, muy pocas permiten formalizar Lenguaje Z: un formalismo matemático que permite especificar de manera no ambigua Basado en lógica proposicional, describe objetos y procesos Curva de aprendizaje alta, efectivo
  32. 32. Calidad en el software: elconundrum
  33. 33. Calidad en el software: elconundrum A partir de especificaciones en Z, se puede aplicar un proceso de refinamiento:  Convertir objetos en entidades de software  Convertir procesos en diagramas de secuencia y de estados  Identificar procesos similares entre sí  Identificar generalizaciones El diseño de software también puede ser un proceso calculado y con formalidad
  34. 34. Calidad en el software: elconundrum ¿Cómo se mide la calidad del trabajo del programador?  Cantidad de líneas de código  Cantidad de bugs  Efecto de los bugs (una línea vs piñatas)  Ponderación con el lenguaje de programación  Complejidad del problema  Total de ciclos de retrabajo  Lejanía con especificación final
  35. 35. Calidad en el software: elconundrum Finalmente, existe una cantidad creciente de técnicas, lenguajes de descripción de objetos y demás involucrados en el proceso de calidad Mito: aplicar todas las técnicas recientes garantiza calidad Realidad: las técnicas no garantizan calidad, solo garantizan condiciones bajo las cuales se simplifica el definir métricas duras Falta mucho por aprender de los métodos de otras ingenierías
  36. 36. Aspectos de calidad en elsoftware científico Generalmente el software científico tiene una interacción limitada con el usuario  Los problemas son paramétricos, y los límites de los valores son bien conocidos  Con frecuencia la interfaz gráfica es accesoria  Menor interacción → diagramas de secuencia no incluyen HCI La calidad en el caso de aplicaciones científicas se concentra en la calidad de los resultados con respecto a la realidad
  37. 37. Aspectos de calidad en elsoftware científico Asegurar la calidad en el software científico puede efectuarse analizando los posibles casos de error que existen con respecto a resultados  Representación  Numéricos  Aproximación  Simplicación  Inherentes Sigue siendo software!
  38. 38. Aspectos de calidad en elsoftware científico Errores de representación:  Los datos de eventos asumen rangos continuos  Los datos representables son discretos  Cantor: existen infinitamente más reales que enteros  Overflow, underflow Medida de calidad de un sistema: el error (épsilon) de la máquina Aseguramiento de calidad: utilizar operaciones que controlen el error y un estandar
  39. 39. Aspectos de calidad en elsoftware científico Errores numéricos:  Existen errores independientes de la representación  Ocurren aún con aritmética continua  Dependen de la algoritmia Medida de la calidad de un sistema: error entre una función conocida y su aproximación Aseguramiento de calidad: efectuar benchmarks y elegir el método numérico con mejo balance tiempo/precisión
  40. 40. Aseguramiento de calidad ensoftware científico
  41. 41. Aspectos de calidad en elsoftware científico Errores de aproximación:  En algunas ocasiones, el acoplamiento entre variables es tal que el problema no admite simplificaciones  Se utilizan funciones aproximantes  No es corregible a pesar del método numérico Medida de calidad: error promedio y desviación estándar con respecto a datos reales Aseguramiento de calidad: benchmarking de funciones aproximantes vs tiempo
  42. 42. Aspectos de calidad en elsoftware científico
  43. 43. Aspectos de calidad en elsoftware científico Errores de simplificación:  En ocasiones los problemas complejos pueden abstraerse en versiones más simples  Los detalles pequeños suelen agruparse en términos varios de error  Dos fuentes de error Métrica de calidad: (a) variancia de errores varios, (b) diferencia total con datos reales Aseguramiento de la calidad: elegir menor simplificación posible!
  44. 44. Aspectos de calidad en elsoftware científico
  45. 45. Aspectos de calidad del softwarecientífico Error inherente:  Existen problemas para los cuales la incertidumbre no puede eliminarse  Aleatoriedad  No observabilidad Métrica de calidad: promedio y variancia en el tiempo de valores agregados Aseguramiento de calidad: utilizar métodos que consideren desde el inicio la aleatoriedad y la estocasticidad de los fenómenos complejos
  46. 46. santiago.nunez@micit.go.cr snunezcr@acm.org

×