Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Presentacin
Moiss Rodrguez Monje Ingeniero en Informtica Empresa: Alarcos Quality Center Cargo: Director Tcnico Correo moises.rodriguez@alarcosqualitycenter.com Web: www.alarcosqualitycenter.com
La principal actividad de AQC se centra en la consultora y prestacin de servicios en el rea de la calidad de los sistemas de la informacin. Especficamente en temas relacionados con: Creacin y mejora de fbricas/departamentos de software Calidad de procesos y productos software Testing de sistemas informticos Calidad de datos Ingeniera de procesos
Calidad de Producto Software - ISO/IEC 25000
ndice
Introduccin Calidad del Producto Software Principales normas y estndares de la Calidad del Producto Software Familia ISO/IEC 25000 (SQuaRE) Herramientas para Evaluacin de la Calidad del Producto Ejemplo de Entorno para la Evaluacin de la Calidad del Producto Software
Calidad de Producto Software - ISO/IEC 25000
ndice
Introduccin
Calidad del Producto Software Principales normas y estndares de la Calidad del Producto Software Familia ISO 25000 (SQuaRE) Herramientas para Evaluacin de la Calidad del Producto Ejemplo de Entorno para la Evaluacin de la Calidad del Producto Software
Calidad de Producto Software - ISO/IEC 25000
Introduccin
Antecedentes del Sector
Introduccin
Empresas certificadas en CMMI
http://www.sei.cmu.edu/cmmi/casestudies/profiles/pdfs/upload/2010MarCMMI.pdf
Introduccin
Empresas certificadas en ISO 15504, modelo AENOR
http://www.iso15504.es
Introduccin
Antecedentes del Sector
http://www.computing.es/Noticias/201007010021/Gartner-revisa-a-la-baja-sus-previsiones-de-inversion-mundial-en-TI-para-2010.aspx
Introduccin
Antecedentes del Sector
http://www.javiergarzas.com/2010/07/matriculas-ingenieria-informatica-telecomunicaciones.html
10
Introduccin
Antecedentes del Sector
http://www.networkedreadiness.com/gitr/main/analysis/showindexranking.cfm?vno=a
11
Introduccin
Antecedentes del Sector
12
Introduccin
Antecedentes del Sector
Externalizacin
13
Introduccin
Antecedentes del Sector
Externalizacin
14
Introduccin
Antecedentes del Sector
PROCESOS PROCESOS
PRODUCTOS PRODUCTOS
15
Introduccin
Antecedentes del Sector
Orientaciones de la Calidad
PRODUCTOS
PROCESOS
PERSONAS
16
Introduccin
Antecedentes del Sector
Actualmente
las principales
17
Introduccin
Antecedentes del Sector
18
Introduccin
Antecedentes del Sector
19
Introduccin
Antecedentes del Sector
Hay poca evidencia en que cumplir un modelo de procesos asegure la calidad del producto, la estandarizacin de los procesos garantiza la uniformidad en la salida de los mismos, lo que puede incluso institucionalizar la creacin de malos productos
Kitchenham, B. y Pfleeger, S. L. (1996). "Software Quality: The Elusive Target." IEEE Software 20(1): 12-21.
Calidad de Producto Software - ISO/IEC 25000
20
Introduccin
Antecedentes del Sector
Las evaluaciones deberan basarse en evidencias directas del producto, y no en evidencias circunstanciales del proceso
Maibaum, T. y Wassyng, A. 2008. A Product-Focused Approach to Software Certification. Computer Volume: 41, Issue: 2: 91-93
Calidad de Producto Software - ISO/IEC 25000
21
Introduccin
Conclusiones
Necesidad de asegurar la calidad del software Preocupacin por la calidad de los productos Inters en la medicin de la calidad de los productos
22
Introduccin
Conclusiones
Actualmente existe la
Necesidad de asegurar la calidad del software Preocupacin por la calidad de los productos Inters en la medicin de la calidad de los productos
necesidad de un entorno (metodolgico y tecnolgico) que permita automatizar la adquisicin del producto, la medicin de la calidad, el anlisis y la presentacin de los resultados
23
ndice
Introduccin
24
25
26
Interna: medible a partir de las caractersticas intrnsecas del propio producto software (como el cdigo fuente). Externa: medible a partir del comportamiento del producto software (como durante una prueba) En uso: medible durante la utilizacin efectiva por parte del usuario (en un entorno de pre o produccin).
27
Proceso
Producto
proveedor
usuario
28
Es el grado en el que producto software incorpora un conjunto de caractersticas, de manera que garantiza el cumplimiento de los requisitos y necesidades del cliente. El objetivo no es necesariamente alcanzar una calidad perfecta, sino la necesaria y suficiente para cada contexto de uso a la hora de la entrega y del uso por parte de los usuarios. Es primordial comprender la existencia de distintas visiones de la calidad (productor, usuario, valor, etc.). Dada la complejidad de la calidad, es necesario utilizar un modelo que especifique las caractersticas de calidad
Calidad de Producto Software - ISO/IEC 25000
29
ndice
30
31
Primera versin de 1991 Revisada y actualizada en 2001 Actualmente se encuentra en estado 90.93 Formada por 4 partes Establece un modelo de calidad para el producto software.
Calidad de Producto Software - ISO/IEC 25000
32
33
madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad
mantenibilidad
usabilidad
eficiencia
cumplimiento de mantenibilidad
comportamiento en el tiempo
cumplimiento de la eficiencia
utilizacin de recursos
34
madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad
mantenibilidad
usabilidad
eficiencia
cumplimiento de mantenibilidad
comportamiento en el tiempo
cumplimiento de la eficiencia
utilizacin de recursos
35
Funcionalidad
Adecuacin: Capacidad del producto software para proporcionar un conjunto apropiado de funciones para tareas y objetivos de usuario especificados. Exactitud: Capacidad del producto software para proporcionar los resultados o efectos correctos o acordados, con el grado necesario de precisin. Interoperabilidad: Capacidad del producto software para interactuar con uno o ms sistemas especificados. Seguridad de acceso: Capacidad del producto software para proteger informacin y datos de manera que las personas o sistemas no autorizados no puedan leerlos o modificarlos, al tiempo que no se deniega el acceso a las personas o sistemas autorizados Cumplimiento funcional: Capacidad del producto software para adherirse a normas, convenciones o regulaciones en leyes y prescripciones similares relacionadas con funcionalidad.
Calidad de Producto Software - ISO/IEC 25000
36
madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad
mantenibilidad
usabilidad
eficiencia
cumplimiento de mantenibilidad
comportamiento en el tiempo
cumplimiento de la eficiencia
utilizacin de recursos
37
Fiabilidad
Madurez: Capacidad del producto software para evitar fallar como resultado de fallos en el software. Tolerancia a fallos: Capacidad del software para mantener un nivel especificado de prestaciones en caso de fallos software o de infringir sus interfaces especificados. Capacidad de recuperacin: Capacidad del producto software para reestablecer un nivel de prestaciones especificado y de recuperar los datos directamente afectados en caso de fallo. Cumplimiento de la fiabilidad: Capacidad del producto software para adherirse a normas, convenciones o regulaciones relacionadas con al fiabilidad.
38
madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad
mantenibilidad
usabilidad
eficiencia
cumplimiento de mantenibilidad
comportamiento en el tiempo
cumplimiento de la eficiencia
utilizacin de recursos
39
Usabilidad
Capacidad para ser entendido: Capacidad del producto software que permite al usuario entender si el software es adecuado y cmo puede ser usado para unas tareas o condiciones de uso particulares. Capacidad para ser aprendido: Capacidad del producto software que permite al usuario aprender sobre su aplicacin. Capacidad para ser operado: Capacidad del producto software que permite al usuario operarlo y controlarlo. Capacidad de atraccin: Capacidad del producto software para ser atractivo al usuario. Cumplimiento de la usabilidad: Capacidad del producto software para adherirse a normas, convenciones, guas de estilo o regulaciones relacionadas con la usabilidad. 40
madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad
mantenibilidad
usabilidad
eficiencia
cumplimiento de mantenibilidad
comportamiento en el tiempo
cumplimiento de la eficiencia
utilizacin de recursos
41
Eficiencia
Comportamiento temporal: Capacidad del producto software para proporcionar tiempos de respuesta, tiempos de proceso y potencia apropiados, bajo condiciones determinadas.
Utilizacin de recursos: Capacidad del producto software para usar las cantidades y tipos de recursos adecuados cuando el software lleva a cabo su funcin bajo condiciones determinadas.
Cumplimiento de la eficiencia: Capacidad del producto software para adherirse a normas o convenciones relacionadas con la eficiencia.
42
madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad
mantenibilidad
usabilidad
eficiencia
cumplimiento de mantenibilidad
comportamiento en el tiempo
cumplimiento de la eficiencia
utilizacin de recursos
43
Mantenibilidad
Capacidad para ser analizado: Es la capacidad del producto software para serle diagnosticadas deficiencias o causas de los fallos en el software, o para identificar las partes que han de ser modificadas. Capacidad para ser cambiado: Capacidad del producto software que permite que una determinada modificacin sea implementada. Estabilidad: Capacidad del producto software para evitar efectos inesperados debidos a modificaciones del software. Capacidad para ser probado: Capacidad del producto software que permite que el software modificado sea validado. Cumplimiento de la mantenibilidad: Capacidad del producto software para adherirse a normas o convenciones relacionadas con la mantenibilidad.
44
madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad
mantenibilidad
usabilidad
eficiencia
cumplimiento de mantenibilidad
comportamiento en el tiempo
cumplimiento de la eficiencia
utilizacin de recursos
45
Portabilidad
Adaptabilidad: Capacidad del producto software para ser adaptado a diferentes entornos especificados, sin aplicar acciones o mecanismos distintos de aquellos proporcionados para este propsito por el propio software considerado. Instalabilidad: Capacidad del producto software para ser instalado en un entorno especificado. Coexistencia: Capacidad del producto software para coexistir con otro software independiente, en un entorno comn, compartiendo recursos comunes. Capacidad para reemplazar: Capacidad del producto software para ser usado en lugar de otro producto software, para el mismo propsito, en el mismo entorno. Cumplimiento de la portabilidad: Capacidad del producto software para adherirse a normas o convenciones relacionadas con la portabilidad.
46
Calidad en Uso
Calidad en Uso
Efectividad
Productividad
Seguridad Acceso
Satisfaccin
47
Norma de 1999 Actualmente se encuentra en estado 90.60 Formada por 6 partes Establece los procesos para realizar la evaluacin de la calidad del producto software Directamente relacionada con ISO 9126
Calidad de Producto Software - ISO/IEC 25000
48
Parte 1: Visin general Parte 2: Gestin y planificacin Parte 3: Proceso para los desarrolladores Parte 4: Proceso para los adquisidores Parte 5: Proceso para los evaluadores Parte 6: Documentacin de los mdulos de evaluacin
Calidad de Producto Software - ISO/IEC 25000
49
Tomar medidas (10.1) Ejecutar evaluacin Comparar con criterios (10.2) Valorar resultados (10.3)
50
Nace por las inconsistencias entre ISO 9126 e ISO 14598. El objetivo es aglutinar bajo una misma familia el modelo de calidad y el proceso de evaluacin.
Calidad de Producto Software - ISO/IEC 25000
51
ndice
Introduccin Calidad del Producto Software Principales normas y estndares de la Calidad del Producto Software
52
La versin de la primera parte es de 2005. Actualmente est en desarrollo (6 Mayo 2010 ISO 25010 pasa al estado 40.60) Formada por 5 partes (divisiones). Sustituir a las normas ISO 9126 e ISO 14598.
Calidad de Producto Software - ISO/IEC 25000
53
ISO/IEC 2501n
ISO/IEC 2504n
54
Funcionalidad
Rendimiento
Compatibilidad
Usabilidad
Fiabilidad
Seguridad
Mantenibilidad
Portabilidad
Inteligibilidad Aprendizaje Completitud Correccin Idoneidad Utilizacin de Recursos Comport. en el tiempo Coexistencia Interoperabilid. Operabilidad Proteccin a Errores de Usuario Atractividad Accesibilidad Madurez Disponibilidad Tolerancia a Fallos Capacidad de recuperacin Confidencial. Integridad No repudio Autenticidad Responsabil. Modularidad Reusabilidad Analizabilidad Cambiabilidad Intercambiabil. Capacidad de Ser probado Adaptabilidad Facilidad de Instalacin
55
Calidad en Uso
Efectividad
Productividad
Seguridad
Satisfaccin
Contexto de uso
56
ndice
Introduccin Calidad del Producto Software Principales normas y estndares de la Calidad del Producto Software Familia ISO 25000 (SQuaRE)
57
58
Giles A, Daich G. 1995. Metrics Tools. Crosstalk, The Journal of Defense Software Engineering.
59
Existen mltiples clasificaciones. Herramientas de Anlisis Dinmico: aquellas herramientas que realizan el anlisis del software ejecutando el cdigo fuente de dicho software. Herramientas de Anlisis Esttico: aquellas herramientas que llevan a cabo el anlisis sin necesidad de ejecutar el software bajo estudio.
60
NOMBRE
PMD/CPD CheckStyle Klocwork k7 JDepend JavaNCSS McCabe IQ
LICENCIA
BSD-style LGPL Software propietario BSD GNU GPL Software propietario Software propietario Software propietario Open Source Software
INTERFAZ
Lnea comandos Lnea comandos GUI Lnea comandos Lnea comandos Lnea comandos GUI Lnea comandos Lnea comandos Lnea comandos
LENGUAJES
Java Java C/C++/Java Java Java Ada, ASM86, C, C#, C++, COBOL, FORTRAN, JAVA, JSP, Perl, PL1, VB, VB.NET Java, C#, C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic C/C++ y ADA Java
ENTRADA
Cdigo Fuente Cdigo Fuente Byte code Cdigo fuente Byte code Cdigo fuente Cdigo fuente
RESULTADO
Texto plano xml Texto plano xml HTML Texto plano XML Texto plano XML Texto plano Grficos Texto plano HTML Texto plano
61
Mtricas JAVA
Reglas Codificacin
Pruebas
.Net
Simian FxCop
PHP
PHPmd
Calidad de Producto Software - ISO/IEC 25000
62
63
64
65
66
67
68
69
70
71
Nombre: Web2Project. Descripcin: Aplicacin Web para el control y gestin de proyectos. Tamao: 112.431 lneas. Licencia: Cdigo Abierto. Pgina de descarga: http://web2project.net/
72
73
74
PROBLEMA La mayora de las herramientas estn diseadas para el trabajo en modo interactivo La mayora de las herramientas solo estn especializadas en un subconjunto de mtricas La mayora de las herramientas no personalizan los resultados en funcin del pblico objetivo (estratgico, tctico, operacional) La mayora de herramientas necesita ser configurada para cada proyecto e incluso para cada evaluacin
IMPACTO
Necesidad de utilizar varias herramientas y de formatear posteriormente los resultados Necesidad de estudiar y modificar los resultados manualmente en funcin de a quin se le presenten Necesidad de hacer diferentes configuraciones por cada tipo de herramienta con los correspondientes costes de tiempo
75
nico entorno para la medicin y evaluacin del software, ofreciendo una solucin global. Basado en un componente metodolgico que establezca y defina los requisitos y pasos. Con un componente tecnolgico integrado y configurable para automatizar la adquisicin, anlisis y presentacin de resultados. Orientado a los tres niveles, operativo, tctico y estratgico, tanto para fbricas de software como para empresas que externalizan el desarrollo.
Calidad de Producto Software - ISO/IEC 25000
76
ndice
Introduccin Calidad del Producto Software Principales normas y estndares de la Calidad del Producto Software Familia ISO 25000 (SQuaRE) Herramientas para Evaluacin de la Calidad del Producto
77
ENTORNO TECNOLGICO
Soporte Metodolgico Entorno de Medicin y Visualizacin de la Calidad
Gestin y Divulgacin
Entorno de Gestin
78
ENTORNO METODOLGICO
Metodologa para la evaluacin de la calidad
Diseo (UML)
Cdigo
Mantenibilidad
Seguridad
Usabilidad
79
80
81
2 Medicin PLUGINS PLUGINS 4 Mtricas 5 Scripts Scripts Configuracin Configuracin 1 - Infraestructura de Medicin Bsica. Nivel Operativo 2 - Infraestructura de Medicin Avanzada. Nivel Tctico y Estratgico Clculo 3 GCS GCS
CONFIG. CONFIG.
Mtricas Mtricas
Almacenamiento
82
83
84
85
86
87
88
Proporciona un entorno de medicin de la calidad acorde a normas internacionales (ISO 25000/ ISO 9126). Permite realizar la evaluacin tanto del cdigo fuente como de los modelos UML. Formado por un entorno metodolgico y tecnolgico. Evaluacin de la calidad del producto automtica y peridica. Utiliza software libre, no hay licencias de uso. Adaptable a la necesidad del cliente (herramientas, mtricas, modelos y metodologa).
Calidad de Producto Software - ISO/IEC 25000
89
Importancia creciente de la calidad del software. Necesidad de la evaluacin del producto software. Importancia de un entorno metodolgico y tecnolgico para llevar a cabo al medicin y evaluacin. Problemas de las herramientas existentes en la actualidad. Propuesta de entorno metodolgico y tecnolgico integrado para la evaluacin de la calidad desde las primeras fases del ciclo de vida.
90
91
If you dont know where you are (and where you want to go), a map wont help
Watts H. Humphrey
92
Webs Interesantes http://iso25000.com/ (Portal en espaol de la ISO 25000) http://www.iso.org (Portal oficial de ISO) http://twitter.com/calidadsoftware Webs de Herramientas http://maven.apache.org/ http://npanday.codeplex.com/Wikipage http://www.aptest.com/resources.html
Calidad de Producto Software - ISO/IEC 25000
93
Preguntas
94