Professional Documents
Culture Documents
CALIDAD DE PROCESOS Y
PRODUCTOS SOFTWARE
CALIDAD DEL PRODUCTO SOFTWARE
ISO/IEC 25000
16 Julio 2010
D. Moiss Rodrguez Monje
Presentacin
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
5
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
Demanda de
Software
Fbricas de
Software
Dificultad de
encontrar a
personal
12
Introduccin
Antecedentes del Sector
Demanda de
Software
Externalizacin
Fbricas de
Software
Problemas de
confianza y
control
Dificultad de
encontrar a
personal
Certificaciones
de Calidad
13
Introduccin
Antecedentes del Sector
Demanda de
Software
Externalizacin
Fbricas de
Software
Problemas de
confianza y
control
Dificultad de
encontrar a
personal
Certificaciones
de Calidad
14
Introduccin
Antecedentes del Sector
PRODUCTOS
PRODUCTOS
PROCESOS
PROCESOS
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
20
Introduccin
Antecedentes del Sector
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
26
27
Proceso
Influye
Calidad de
proceso
Influye
Calidad
interna
Depende de
Efecto del
producto
Producto
Influye
Calidad
externa
Depende de
proveedor
Calidad
en uso
Contextos
de uso
Depende de
usuario
28
29
ndice
Introduccin
Calidad del Producto Software
30
ISO/IEC 9126:2001
ISO/IEC 14598
Familia de normas ISO 25000
31
32
9126-2: Mtricas
Externas
9126-3: Mtricas
Internas
9126-4: Mtricas de
Calidad en Uso
33
seguridad
idoneidad
cumplimiento de la funcionalidad
adaptabilidad
madurez
facilidad de instalacin
tolerancia a fallos
coexistencia
capacidad de recuperacin
funcionalidad
intercambiabilidad
cumplimiento de la fiabilidad
cumplimiento de portabilidad
portabilidad
analizabilidad
mantenibilidad
fiabilidad
Calidad
Interna/
Externa
usabilidad
inteligibilidad
facilidad de aprendizaje
cambiabilidad
eficiencia
estabilidad
operabilidad
atractividad
cumplimiento de mantenibilidad
cumplimiento de la usabilidad
comportamiento en el tiempo
cumplimiento de la eficiencia
utilizacin de recursos
34
seguridad
idoneidad
cumplimiento de la funcionalidad
adaptabilidad
madurez
facilidad de instalacin
tolerancia a fallos
coexistencia
capacidad de recuperacin
funcionalidad
intercambiabilidad
cumplimiento de la fiabilidad
cumplimiento de portabilidad
portabilidad
analizabilidad
mantenibilidad
fiabilidad
Calidad
Interna/
Externa
usabilidad
inteligibilidad
facilidad de aprendizaje
cambiabilidad
eficiencia
estabilidad
operabilidad
atractividad
cumplimiento de mantenibilidad
cumplimiento de la usabilidad
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
seguridad
idoneidad
cumplimiento de la funcionalidad
adaptabilidad
madurez
facilidad de instalacin
tolerancia a fallos
coexistencia
capacidad de recuperacin
funcionalidad
intercambiabilidad
cumplimiento de la fiabilidad
cumplimiento de portabilidad
portabilidad
analizabilidad
fiabilidad
Calidad
Interna/
Externa
mantenibilidad
usabilidad
inteligibilidad
facilidad de aprendizaje
cambiabilidad
eficiencia
estabilidad
operabilidad
atractividad
cumplimiento de mantenibilidad
cumplimiento de la usabilidad
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
seguridad
idoneidad
cumplimiento de la funcionalidad
adaptabilidad
madurez
facilidad de instalacin
tolerancia a fallos
coexistencia
capacidad de recuperacin
funcionalidad
intercambiabilidad
cumplimiento de la fiabilidad
cumplimiento de portabilidad
portabilidad
analizabilidad
mantenibilidad
fiabilidad
Calidad
Interna/
Externa
usabilidad
inteligibilidad
facilidad de aprendizaje
cambiabilidad
eficiencia
estabilidad
operabilidad
atractividad
cumplimiento de mantenibilidad
cumplimiento de la usabilidad
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
seguridad
idoneidad
cumplimiento de la funcionalidad
adaptabilidad
madurez
facilidad de instalacin
tolerancia a fallos
coexistencia
capacidad de recuperacin
funcionalidad
intercambiabilidad
cumplimiento de la fiabilidad
cumplimiento de portabilidad
portabilidad
analizabilidad
fiabilidad
Calidad
Interna/
Externa
mantenibilidad
usabilidad
inteligibilidad
facilidad de aprendizaje
cambiabilidad
eficiencia
estabilidad
operabilidad
atractividad
cumplimiento de mantenibilidad
cumplimiento de la usabilidad
comportamiento en el tiempo
cumplimiento de la eficiencia
utilizacin de recursos
41
Eficiencia
42
seguridad
idoneidad
cumplimiento de la funcionalidad
adaptabilidad
madurez
facilidad de instalacin
tolerancia a fallos
coexistencia
capacidad de recuperacin
funcionalidad
intercambiabilidad
cumplimiento de la fiabilidad
cumplimiento de portabilidad
portabilidad
analizabilidad
mantenibilidad
fiabilidad
Calidad
Interna/
Externa
usabilidad
inteligibilidad
facilidad de aprendizaje
cambiabilidad
eficiencia
estabilidad
operabilidad
atractividad
cumplimiento de mantenibilidad
cumplimiento de la usabilidad
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
seguridad
idoneidad
cumplimiento de la funcionalidad
adaptabilidad
madurez
facilidad de instalacin
tolerancia a fallos
coexistencia
capacidad de recuperacin
funcionalidad
intercambiabilidad
cumplimiento de la fiabilidad
cumplimiento de portabilidad
portabilidad
analizabilidad
mantenibilidad
fiabilidad
Calidad
Interna/
Externa
usabilidad
inteligibilidad
facilidad de aprendizaje
cambiabilidad
eficiencia
estabilidad
operabilidad
atractividad
cumplimiento de mantenibilidad
cumplimiento de la usabilidad
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
Especificar
evaluacin
9126-1 Caractersticas de
Calidad
9126-2 Mtricas Externas
9126-3 Mtricas Internas
Disear
evaluacin
50
SQuaRE
Software Product Quality Requirements and Evaluation
51
ndice
Introduccin
Calidad del Producto Software
Principales normas y estndares de la Calidad
del Producto Software
52
ISO/IEC 2501n
Divisin de Modelo
de Calidad
ISO/IEC 2500n
ISO/IEC 2503n
Divisin de
Requisitos de
Calidad
Divisin de
Gestin de Calidad
Visin general y
gua de SQuaRE
Planificacin y
Gestin
ISO/IEC 2504n
Divisin de
Evaluacin de
Calidad
ISO/IEC 2502n
Divisin Medicin
de Calidad
Zubrow, D. (2004). Measuring Software Product Quality: the ISO 25000 Series and CMMI. SEI.
54
Funcionalidad
Rendimiento
Compatibilidad
Usabilidad
Fiabilidad
Seguridad
Aprendizaje
Madurez
Confidencial.
Operabilidad
Disponibilidad
Integridad
Proteccin a
Errores de
Usuario
Tolerancia a
Fallos
No repudio
Mantenibilidad
Portabilidad
Inteligibilidad
Completitud
Comport.
en el tiempo
Coexistencia
Correccin
Idoneidad
Utilizacin de
Recursos
Interoperabilid.
Atractividad
Autenticidad
Capacidad de
recuperacin
Responsabil.
Modularidad
Reusabilidad
Adaptabilidad
Analizabilidad
Facilidad de
Instalacin
Cambiabilidad
Intercambiabil.
Capacidad de
Ser probado
Accesibilidad
55
Calidad en Uso
Efectividad
Productividad
Seguridad
Riesgo de dao
econmico
Efectividad
Productividad
Satisfaccin
Contexto de
uso
Cumplimiento del
propsito
Flexibilidad
Confianza
Riesgo de salud
Placer
Cumplimiento de
contextos de uso
Riesgo ambiental
Confort
56
ndice
Introduccin
Calidad del Producto Software
Principales normas y estndares de la Calidad
del Producto Software
Familia ISO 25000 (SQuaRE)
58
Giles A, Daich G. 1995. Metrics Tools. Crosstalk, The Journal of Defense Software
Engineering.
59
60
NOMBRE
LICENCIA
INTERFAZ
LENGUAJES
ENTRADA
RESULTADO
PMD/CPD
BSD-style
Lnea
comandos
Java
Cdigo
Fuente
Texto plano
xml
CheckStyle
LGPL
Lnea
comandos
Java
Cdigo
Fuente
Texto plano
xml
Klocwork k7
Software
propietario
GUI
Lnea
comandos
C/C++/Java
Byte code
Cdigo fuente
HTML
JDepend
BSD
Lnea
comandos
Java
Byte code
Texto plano
XML
JavaNCSS
GNU GPL
Lnea
comandos
Java
Cdigo fuente
Texto plano
XML
McCabe IQ
Software
propietario
GUI
Cdigo fuente
Texto plano
Grficos
Simian
Software
propietario
Lnea
comandos
Cdigo fuente
Texto plano
CodeSonar
Software
propietario
Lnea
comandos
C/C++ y ADA
Cdigo fuente
HTML
CKJM
Open
Source
Software
Lnea
comandos
Java
Byte code
Texto plano
61
Mtricas
Reglas
Codificacin
Pruebas
JAVA
.Net
Simian
FxCop
PHP
PHPmd
Calidad de Producto Software - ISO/IEC 25000
62
64
65
66
67
68
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
IMPACTO
75
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
Modelo calidad
mantenibilidad
Mtricas
Modelo calidad
seguridad
Heursticas
Modelo calidad
usabilidad
Checklists
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
ENTORNO METODOLGICO
Metodologa
para la
evaluacin de la
calidad
Diseo (UML)
Cdigo
Java
.Net
C
PHP
Mantenibilidad
Mtricas, checklists y
heursticas para la
mantenibilidad del diseo
Mtricas, checklists y
heursticas para la
mantenibilidad del cdigo
Seguridad
Mtricas, checklists y
heursticas para la seguridad
del diseo
Mtricas, checklists y
heursticas para la seguridad
del cdigo
Usabilidad
Mtricas, checklists y
heursticas para la usabilidad
del diseo
Mtricas, checklists y
heursticas para la usabilidad
del diseo
79
FASE 2:
ESPECIFICACIN
FASE 3:
EJECUCIN
FASE 4:
CONCLUSIN
80
Producto de Trabajo
Software
Organizacin que ha
Fbrica/Departamento
externalizado el desarrollo
de desarrollo software
Evaluacin de la
calidad independiente
81
MAVEN
MAVEN
PLANIFICADOR
PLANIFICADOR
Clculo
PLUGINS
PLUGINS
GCS
GCS
4 Mtricas
CONFIG.
CONFIG.
Mtricas
Mtricas
Scripts
Scripts
Configuracin
Configuracin
Almacenamiento
8
7
Ejecucin
remota
BASE DE
BASE DE
DATOS
DATOS
Extraccin
Servidor Web
Servidor Web
9 Respuesta a peticin
Cuadro Mando
Cuadro Mando
Web
Web
1 - Infraestructura de Medicin
Bsica. Nivel Operativo
2
Medicin
2 - Infraestructura de Medicin
Avanzada. Nivel Tctico y Estratgico
1
Ejecucin peridica
82
83
84
85
86
87
88
90
91
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
CALIDAD DE PROCESOS Y
PRODUCTOS SOFTWARE
CALIDAD DEL PRODUCTO SOFTWARE
ISO/IEC 25000
16 Julio 2010
D. Moiss Rodrguez Monje