Sei sulla pagina 1di 48

XI CURSOS DE VERANO DE SANTANDER

CALIDAD DE PROCESOS Y PRODUCTOS SOFTWARE


CALIDAD DEL PRODUCTO SOFTWARE ISO/IEC 25000
16 Julio 2010
D. Moiss Rodrguez Monje

Presentacin

Moiss Rodrguez Monje Ingeniero en Informtica Empresa: Alarcos Quality Center Cargo: Director Tcnico Correo moises.rodriguez@alarcosqualitycenter.com Web: www.alarcosqualitycenter.com

Calidad de Producto Software - ISO/IEC 25000

Sobre Alarcos Quality Center


Nuestra propuesta

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

Datos del Crecimiento Experimentado


2007: El sector TI creci un 9%, del cual el software supuso un 17% (AETIC y MITyC, 2007) 2008: Las factoras de software espaolas dieron trabajo a 10.744 personas y facturaron 376 millones de euros (AETIC, 2009). 2008: Importancia de la externalizacin de software, alrededor de 1,3 B$ (Gartner Group). 2009: Importancia creciente de las certificaciones software.

Calidad de Producto Software - ISO/IEC 25000

Introduccin
Empresas certificadas en CMMI

http://www.sei.cmu.edu/cmmi/casestudies/profiles/pdfs/upload/2010MarCMMI.pdf

Calidad de Producto Software - ISO/IEC 25000

Introduccin
Empresas certificadas en ISO 15504, modelo AENOR

http://www.iso15504.es

Calidad de Producto Software - ISO/IEC 25000

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

Calidad de Producto Software - ISO/IEC 25000

Introduccin
Antecedentes del Sector

http://www.javiergarzas.com/2010/07/matriculas-ingenieria-informatica-telecomunicaciones.html

Calidad de Producto Software - ISO/IEC 25000

10

Introduccin
Antecedentes del Sector

Posicin de Espaa en los informes

http://www.networkedreadiness.com/gitr/main/analysis/showindexranking.cfm?vno=a

Calidad de Producto Software - ISO/IEC 25000

11

Introduccin
Antecedentes del Sector

Demanda de Software Fbricas de Software Dificultad de encontrar a personal

Calidad de Producto Software - ISO/IEC 25000

12

Introduccin
Antecedentes del Sector

Demanda de Software Fbricas de Software Dificultad de encontrar a personal

Externalizacin

Problemas de confianza y control Certificaciones de Calidad

Calidad de Producto Software - ISO/IEC 25000

13

Introduccin
Antecedentes del Sector

Demanda de Software Fbricas de Software Dificultad de encontrar a personal

Externalizacin

Problemas de confianza y control Certificaciones de Calidad

NECESIDAD DE ASEGURAR LA CALIDAD DE LOS SISTEMAS INFORMTICOS


Calidad de Producto Software - ISO/IEC 25000

14

Introduccin
Antecedentes del Sector

Mejorar el proceso, mejora el producto

PROCESOS PROCESOS

PRODUCTOS PRODUCTOS

Mejorar el producto, puede facilitar los procesos


Calidad de Producto Software - ISO/IEC 25000

15

Introduccin
Antecedentes del Sector

Orientaciones de la Calidad

PRODUCTOS

PROCESOS

PERSONAS

Calidad de Producto Software - ISO/IEC 25000

16

Introduccin
Antecedentes del Sector

Actualmente

las principales

iniciativas software se centran en PROCESOS

Calidad de Producto Software - ISO/IEC 25000

17

Introduccin
Antecedentes del Sector

Calidad de Producto Software - ISO/IEC 25000

18

Introduccin
Antecedentes del Sector

Calidad de Producto Software - ISO/IEC 25000

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

Calidad de Producto Software - ISO/IEC 25000

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

Calidad de Producto Software - ISO/IEC 25000

23

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

24

Calidad del Producto Software


Definiciones para la Calidad

Que se entiende por Calidad


Propiedad o conjunto de propiedades inherentes a algo, que permiten juzgar su valor. Real Academia Espaola. Grado en el que un conjunto de caractersticas inherentes cumple con los requisitos. ISO 9000. Calidad es cumplimiento de requisitos. Philip B. Crosby. Calidad es satisfaccin del cliente. William E. Deming Grado en que el producto software satisface las necesidades expresadas o implcitas, cuando es usado bajo condiciones determinadas. ISO 25000.
Calidad de Producto Software - ISO/IEC 25000

25

Calidad del Producto Software


Por qu es necesaria?

Cuando no hay Calidad


Programas que no hacen exactamente lo que se espera Proyectos que no terminan nunca Sistemas informticos que no se utilizan por la dificultad de su manejo Productos software que son imposibles de mantener cuando desaparece la persona o personas que lo desarrollaron Software poco seguro

Calidad de Producto Software - ISO/IEC 25000

26

Calidad del Producto Software


Aspectos de la Calidad del Software (ISO)

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).

Calidad de Producto Software - ISO/IEC 25000

27

Calidad del Producto Software


Relacin entre los aspectos

Proceso

Producto

Efecto del producto

Influye Calidad de proceso Depende de Calidad interna

Influye Calidad externa Depende de

Influye Calidad en uso Depende de Contextos de uso

proveedor

usuario

Calidad de Producto Software - ISO/IEC 25000

28

Calidad del Producto Software


Conclusiones

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

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

30

Principales Normas y Estndares de la Calidad del Producto


Normas internacionales ms destacadas

ISO/IEC 9126:2001 ISO/IEC 14598 Familia de normas ISO 25000

Calidad de Producto Software - ISO/IEC 25000

31

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 9126:2001

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

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 9126:2001

9126-1: Modelo de Calidad

9126-2: Mtricas Externas

9126-3: Mtricas Internas

9126-4: Mtricas de Calidad en Uso

Calidad de Producto Software - ISO/IEC 25000

33

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 9126:2001
interoperabilidad precisin idoneidad adaptabilidad facilidad de instalacin coexistencia intercambiabilidad cumplimiento de portabilidad portabilidad funcionalidad seguridad cumplimiento de la funcionalidad

madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad

analizabilidad cambiabilidad estabilidad capacidad de ser probado

mantenibilidad

usabilidad

inteligibilidad facilidad de aprendizaje

eficiencia

operabilidad atractividad cumplimiento de la usabilidad

cumplimiento de mantenibilidad

comportamiento en el tiempo

cumplimiento de la eficiencia

utilizacin de recursos

Calidad de Producto Software - ISO/IEC 25000

34

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 9126:2001
interoperabilidad precisin idoneidad adaptabilidad facilidad de instalacin coexistencia intercambiabilidad cumplimiento de portabilidad portabilidad funcionalidad seguridad cumplimiento de la funcionalidad

madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad

analizabilidad cambiabilidad estabilidad capacidad de ser probado

mantenibilidad

usabilidad

inteligibilidad facilidad de aprendizaje

eficiencia

operabilidad atractividad cumplimiento de la usabilidad

cumplimiento de mantenibilidad

comportamiento en el tiempo

cumplimiento de la eficiencia

utilizacin de recursos

Calidad de Producto Software - ISO/IEC 25000

35

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 14598

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

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 9126:2001
interoperabilidad precisin idoneidad adaptabilidad facilidad de instalacin coexistencia intercambiabilidad cumplimiento de portabilidad portabilidad funcionalidad seguridad cumplimiento de la funcionalidad

madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad

analizabilidad cambiabilidad estabilidad capacidad de ser probado

mantenibilidad

usabilidad

inteligibilidad facilidad de aprendizaje

eficiencia

operabilidad atractividad cumplimiento de la usabilidad

cumplimiento de mantenibilidad

comportamiento en el tiempo

cumplimiento de la eficiencia

utilizacin de recursos

Calidad de Producto Software - ISO/IEC 25000

37

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 14598

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.

Calidad de Producto Software - ISO/IEC 25000

38

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 9126:2001
interoperabilidad precisin idoneidad adaptabilidad facilidad de instalacin coexistencia intercambiabilidad cumplimiento de portabilidad portabilidad funcionalidad seguridad cumplimiento de la funcionalidad

madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad

analizabilidad cambiabilidad estabilidad capacidad de ser probado

mantenibilidad

usabilidad

inteligibilidad facilidad de aprendizaje

eficiencia

operabilidad atractividad cumplimiento de la usabilidad

cumplimiento de mantenibilidad

comportamiento en el tiempo

cumplimiento de la eficiencia

utilizacin de recursos

Calidad de Producto Software - ISO/IEC 25000

39

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 14598

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

Calidad de Producto Software - ISO/IEC 25000

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 9126:2001
interoperabilidad precisin idoneidad adaptabilidad facilidad de instalacin coexistencia intercambiabilidad cumplimiento de portabilidad portabilidad funcionalidad seguridad cumplimiento de la funcionalidad

madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad

analizabilidad cambiabilidad estabilidad capacidad de ser probado

mantenibilidad

usabilidad

inteligibilidad facilidad de aprendizaje

eficiencia

operabilidad atractividad cumplimiento de la usabilidad

cumplimiento de mantenibilidad

comportamiento en el tiempo

cumplimiento de la eficiencia

utilizacin de recursos

Calidad de Producto Software - ISO/IEC 25000

41

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 14598

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.

Calidad de Producto Software - ISO/IEC 25000

42

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 9126:2001
interoperabilidad precisin idoneidad adaptabilidad facilidad de instalacin coexistencia intercambiabilidad cumplimiento de portabilidad portabilidad funcionalidad seguridad cumplimiento de la funcionalidad

madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad

analizabilidad cambiabilidad estabilidad capacidad de ser probado

mantenibilidad

usabilidad

inteligibilidad facilidad de aprendizaje

eficiencia

operabilidad atractividad cumplimiento de la usabilidad

cumplimiento de mantenibilidad

comportamiento en el tiempo

cumplimiento de la eficiencia

utilizacin de recursos

Calidad de Producto Software - ISO/IEC 25000

43

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 14598

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.

Calidad de Producto Software - ISO/IEC 25000

44

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 9126:2001
interoperabilidad precisin idoneidad adaptabilidad facilidad de instalacin coexistencia intercambiabilidad cumplimiento de portabilidad portabilidad funcionalidad seguridad cumplimiento de la funcionalidad

madurez tolerancia a fallos capacidad de recuperacin cumplimiento de la fiabilidad Calidad Interna/ Externa fiabilidad

analizabilidad cambiabilidad estabilidad capacidad de ser probado

mantenibilidad

usabilidad

inteligibilidad facilidad de aprendizaje

eficiencia

operabilidad atractividad cumplimiento de la usabilidad

cumplimiento de mantenibilidad

comportamiento en el tiempo

cumplimiento de la eficiencia

utilizacin de recursos

Calidad de Producto Software - ISO/IEC 25000

45

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 9126:2001

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.

Calidad de Producto Software - ISO/IEC 25000

46

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 9126:2001

Calidad en Uso

Calidad en Uso

Efectividad

Productividad

Seguridad Acceso

Satisfaccin

Calidad de Producto Software - ISO/IEC 25000

47

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 14598

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

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 14598

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

Principales Normas y Estndares de la Calidad del Producto


ISO/IEC 14598
Establecer propsito de la evaluacin (7.1) Establecer requisitos de evaluacin Identificar los tipos de producto(s) (7.2) Especificar el modelo de calidad (7.3) Seleccionar mtricas (8.1) Especificar evaluacin Establecer niveles para las mtricas (8.2) Establecer criterios de valoracin (8.3) Disear evaluacin Producir plan de evaluacin (9.1) 9126-1 Caractersticas de Calidad 9126-2 Mtricas Externas 9126-3 Mtricas Internas

Tomar medidas (10.1) Ejecutar evaluacin Comparar con criterios (10.2) Valorar resultados (10.3)

Calidad de Producto Software - ISO/IEC 25000

50

Principales Normas y Estndares de la Calidad del Producto


Familia de normas ISO 25000

SQuaRE Software Product Quality Requirements and Evaluation

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

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

52

Familia ISO 25000


Datos sobre la Familia 25000

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

Familia ISO 25000


Partes de la Familia

ISO/IEC 2501n

Divisin de Modelo de Calidad


ISO/IEC 2500n ISO/IEC 2503n

Divisin de Gestin de Calidad


Visin general y gua de SQuaRE Planificacin y Gestin ISO/IEC 2502n

ISO/IEC 2504n

Divisin de Requisitos de Calidad

Divisin de Evaluacin de Calidad

Divisin Medicin de Calidad


Zubrow, D. (2004). Measuring Software Product Quality: the ISO 25000 Series and CMMI. SEI.

Calidad de Producto Software - ISO/IEC 25000

54

Familia ISO 25000


Cambios respecto a ISO 9126 y 14598

Calidad del Producto

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

Calidad de Producto Software - ISO/IEC 25000

55

Familia ISO 25000


Cambios respecto a ISO 9126 y 14598

Calidad en Uso

Efectividad

Productividad

Seguridad

Satisfaccin

Contexto de uso

Riesgo de dao econmico Efectividad Productividad Riesgo de salud

Cumplimiento del propsito Flexibilidad Confianza Placer Cumplimiento de contextos de uso

Riesgo ambiental Confort

Calidad de Producto Software - ISO/IEC 25000

56

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

57

Herramientas para Evaluacin de la Calidad del Producto


Reflexin

La construccin de un marco que


permita llevar a cabo la medicin, requiere tanto de un soporte metodolgico como de un soporte tecnolgico
Lavazza L. 2000. Providing Automated Support for the GQM Measurement Process. IEEE Software 17(3):56-62.
Calidad de Producto Software - ISO/IEC 25000

58

Herramientas para Evaluacin de la Calidad del Producto


Reflexin

Para que las mtricas puedan ser evaluadas de un


modo prctico, eficiente y exacto es necesario contar con herramientas que permitan automatizar la adquisicin, la presentacin y el anlisis de lo valores obtenidos para dichas mtricas.

Giles A, Daich G. 1995. Metrics Tools. Crosstalk, The Journal of Defense Software Engineering.

Calidad de Producto Software - ISO/IEC 25000

59

Herramientas para Evaluacin de la Calidad del Producto


Clasificacin de Herramientas

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.

Calidad de Producto Software - ISO/IEC 25000

60

Herramientas para Evaluacin de la Calidad del Producto


Lista de Herramientas

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

Simian CodeSonar CKJM

Cdigo fuente Cdigo fuente Byte code

Calidad de Producto Software - ISO/IEC 25000

61

Herramientas para Evaluacin de la Calidad del Producto


Herramientas de Anlisis

Mtricas JAVA

Reglas Codificacin

Pruebas

.Net

Simian FxCop

PHP
PHPmd
Calidad de Producto Software - ISO/IEC 25000

62

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio: Java

Datos del Proyecto


Nombre: Ibatis. Descripcin: asocia objetos de modelo (JavaBeans) con sentencias SQL o procedimientos almacenados mediante ficheros descriptores XML, simplificando la utilizacin de bases de datos. Nmero de mdulos: 2 Tamao: 23.528 lneas Licencia: es un proyecto que pertenece y utiliza la licencia de Apache Software Foundation, por lo que es cdigo abierto. Pgina de descarga: http://ibatis.apache.org
Calidad de Producto Software - ISO/IEC 25000

63

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio: Java

Herramientas de Mtricas: JavaNCSS

Calidad de Producto Software - ISO/IEC 25000

64

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio: Java

Herramientas de Mtricas: JDepend

Calidad de Producto Software - ISO/IEC 25000

65

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio: Java

Herramientas de Mtricas: Simian

Calidad de Producto Software - ISO/IEC 25000

66

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio: Java

Herramientas de Reglas: PMD

Calidad de Producto Software - ISO/IEC 25000

67

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio: Java

Herramientas de Pruebas: Emma

Calidad de Producto Software - ISO/IEC 25000

68

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio:.Net

Datos del Proyecto


Nombre: Xsd2Code. Descripcin: Herramienta que permite generar clases de negocio a partir de esquemas XML (ficheros xsd). Es una evolucin de la herramienta xsd.exe que viene con la instalacin de Visual Studio. Nmero de mdulos: 2. El estudio se ha realizado con el mdulo Console. Tamao: 1.051 lneas Licencia: Library General Public License (LGPL). Pgina de descarga: http://xsd2code.codeplex.com/
Calidad de Producto Software - ISO/IEC 25000

69

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio:.Net

Herramientas de Mtricas: NDepend

Calidad de Producto Software - ISO/IEC 25000

70

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio:.Net

Herramientas de Reglas: FxCop

Calidad de Producto Software - ISO/IEC 25000

71

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio: PHP

Datos del Proyecto

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/

Calidad de Producto Software - ISO/IEC 25000

72

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio: PHP

Herramientas de Mtricas: PHPDepend

Calidad de Producto Software - ISO/IEC 25000

73

Herramientas para Evaluacin de la Calidad del Producto


Caso de Estudio: PHP

Herramientas de Reglas: PHPmd

Calidad de Producto Software - ISO/IEC 25000

74

Herramientas para Evaluacin de la Calidad del Producto


Problemas con las actuales herramientas de medicin de calidad

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

Alto coste en tiempo y por lo tanto menor nmero de evaluaciones posibles

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

Calidad de Producto Software - ISO/IEC 25000

75

Herramientas para Evaluacin de la Calidad del Producto


Posible Solucin

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

Ejemplo de Entorno para la Evaluacin de la Calidad del Producto Software


Calidad de Producto Software - ISO/IEC 25000

77

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


Propuesta: Caso Real
ENTORNO METODOLGICO
Metodologa evaluacin de la calidad Modelo calidad mantenibilidad Modelo calidad seguridad Modelo calidad usabilidad Mtricas Heursticas Checklists

REPOSITORIO CENTRAL DEL PROYECTO

ENTORNO TECNOLGICO
Soporte Metodolgico Entorno de Medicin y Visualizacin de la Calidad

Gestin y Divulgacin
Entorno de Gestin

Web del Proyecto Calidad de Producto Software - ISO/IEC 25000

78

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


Entorno Metodolgico

ENTORNO METODOLGICO
Metodologa para la evaluacin de la calidad

Diseo (UML)

Cdigo

Java .Net C PHP

Modelo para la Mantenibilidad

Mantenibilidad

Mtricas, checklists y heursticas para la mantenibilidad del diseo

Mtricas, checklists y heursticas para la mantenibilidad del cdigo

Modelo para la Seguridad

Seguridad

Mtricas, checklists y heursticas para la seguridad del diseo

Mtricas, checklists y heursticas para la seguridad del cdigo

Modelo para la Usabilidad

Usabilidad

Mtricas, checklists y heursticas para la usabilidad del diseo

Mtricas, checklists y heursticas para la usabilidad del diseo

Calidad de Producto Software - ISO/IEC 25000

79

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


Metodologa de Evaluacin

PROCESO DE GESTIN DE LA EVALUACIN DE LA CALIDAD

PROCESO DE EVALUACIN DE LA CALIDAD


FASE 1: PLANIFICACIN FASE 2: ESPECIFICACIN FASE 3: EJECUCIN FASE 4: CONCLUSIN

PROCESO DE GESTIN DE LA INFRAESTRUCTURA

Calidad de Producto Software - ISO/IEC 25000

80

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


Modo de Actuacin

Producto de Trabajo Software

Organizacin que ha externalizado el desarrollo

Fbrica/Departamento de desarrollo software

Evaluacin de la calidad independiente


Calidad de Producto Software - ISO/IEC 25000

81

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


Infraestructura KEMIS

1 Ejecucin peridica PLANIFICADOR PLANIFICADOR MAVEN MAVEN

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

6 8 7 Ejecucin remota BASE DE BASE DE DATOS DATOS Extraccin

Almacenamiento

Servidor Web Servidor Web

9 Respuesta a peticin Cuadro Mando Cuadro Mando Web Web

Calidad de Producto Software - ISO/IEC 25000

82

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


KEMIS: Ejemplo de Resultados

Calidad de Producto Software - ISO/IEC 25000

83

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


KEMIS: Ejemplo de Resultados

Calidad de Producto Software - ISO/IEC 25000

84

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


KEMIS: Ejemplo de Resultados

Calidad de Producto Software - ISO/IEC 25000

85

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


KEMIS: Ejemplo de Resultados

Calidad de Producto Software - ISO/IEC 25000

86

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


KEMIS: Ejemplo de Resultados

Calidad de Producto Software - ISO/IEC 25000

87

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


KEMIS: Ejemplo de Resultados

Calidad de Producto Software - ISO/IEC 25000

88

Ejemplo de Entorno para Evaluacin de la Calidad del Producto


Conclusiones sobre el Entorno Presentado

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

Calidad del Producto Software


Conclusiones

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.

Calidad de Producto Software - ISO/IEC 25000

90

Calidad del Producto Software ISO 25000


Reflexin

If you dont know where you are, a map wont help


Watts H. Humphrey

Calidad de Producto Software - ISO/IEC 25000

91

Calidad del Producto Software ISO 25000


Reflexin

If you dont know where you are (and where you want to go), a map wont help
Watts H. Humphrey

Calidad de Producto Software - ISO/IEC 25000

92

Calidad del Producto Software ISO 25000


Enlaces de Inters

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

Calidad de Producto Software - ISO/IEC 25000

94

XI CURSOS DE VERANO DE SANTANDER

CALIDAD DE PROCESOS Y PRODUCTOS SOFTWARE


CALIDAD DEL PRODUCTO SOFTWARE ISO/IEC 25000
16 Julio 2010
D. Moiss Rodrguez Monje

Potrebbero piacerti anche