Professional Documents
Culture Documents
CALIDAD DE COMPONENTES
SOFTWARE
INTRODUCCIN
En los ltimos aos se constata una tendencia creciente por parte de las
organizaciones a desarrollar sus sistemas software mediante la combinacin de
componentes, en lugar de desarrollar dichos sistemas partiendo de cero. Esta tendencia es
debida a varios factores. Entre ellos cabe destacar: la necesidad de las organizaciones de
reducir los costes y el tiempo dedicados al desarrollo de los sistemas software; el
crecimiento del mercado de componentes software; la reduccin de la distancia entre
clientes y proveedores de software gracias a la creacin de nuevos canales de
comunicacin y marketing (p.e., www.componentsource.com); y la existencia de
tecnologas que facilitan el desarrollo de sistemas basados en componentes.
1
Incluso en el caso de componentes de granularidad gruesa, como sistemas ERP o
similares, y excepto en raras ocasiones, surge la necesidad de integrarlos con sistemas externos.
RA-MA CAPTULO 10: CALIDAD DE COMPONENTES SOFTWARE 149
En este captulo se proponen los modelos de calidad del software como elemento
vehicular para el anlisis de la calidad de los componentes software. Tras un compendio
de las propuestas ms conocidas, se presenta el estndar ISO/IEC 9126-1 como marco de
referencia, as como nuestra propuesta de extensin de dicho estndar que incluye un
refinamiento de los factores de calidad no funcionales y una extensin con factores de
calidad no tcnicos, de aplicacin especialmente en el caso de componentes OTS.
Finalmente se expone el mtodo IQMC para la construccin de modelos de calidad para
dominios particulares.
MODELOS DE CALIDAD
Segn el estndar ISO 8402 (1986), un modelo de calidad puede definirse como el
conjunto de factores de calidad, y de relaciones entre ellos, que proporciona una base para
la especificacin de requisitos de calidad y para la evaluacin de la calidad de los
componentes software. Los modelos de calidad se estructuran generalmente como una
jerarqua (ya sea un rbol, ya sea un grafo dirigido), donde factores de calidad ms
genricos, como eficiencia o usabilidad, se descomponen en otros ms particulares, como
tiempo de respuesta o facilidad de aprendizaje, probablemente en diversos niveles de
descomposicin.
Caswell, 1987). La ventaja de estos modelos fijos es que proporcionan una vista comn y
comparable que se reutiliza en cada proyecto (v. fig. 10-2), ya que el conjunto de factores
de calidad siempre es el mismo. Ahora bien, tiene como inconveniente su poca
flexibilidad (Gilb, 1988) debido a que asumen que siempre bastar con un subconjunto de
sus factores para evaluar la calidad en cualquier proyecto.
Figura 10-2. Ejemplo de modelo de calidad fijo: el modelo de Boehm et. al.
Objetivo Objetivo
Propsito Mejorar
Objeto Las lneas de tiempo
Objetivo Objeto (proceso) Cambiar tiempo de proceso
Punto de vista Administradores
Pregunta 1 Cul es la velocidad de proceso requerida actualmente?
Tiempo promedio del ciclo
Mtrica 1 Desviacin estndar
% de veces fuera del limite
Pregunta 2 Est mejorando el rendimiento?
(Tiempo promedio del ciclo actual 100) / Tiempo promedio inicial
Mtrica 2
Calificacin subjetiva de los administradores
Figura 10-4. Estructura de los modelos de calidad segn el estndar IEEE 1061.
El ISO/IEC 9126 original fue substituido en 2001 por dos estndares relacionados,
el ISO/IEC 9126 de calidad del software y el ISO/IEC 14598 de evaluacin de productos
software (v. fig. 10-5). La versin de 2001 del ISO/IEC 9126 consiste de cuatro partes:
9126-1 (2001), presenta un modelo de calidad, que es comn para medir la calidad interna
y externa, y uno distinto para medir la calidad en uso; 9126-2 (2003), presenta posibles
mtricas externas para atributos de calidad externos; 9126-3 (2003), presenta posibles
mtricas para atributos de calidad internos; y 9126-4 (2004), presenta posibles mtricas
para evaluar atributos de calidad en uso. Cabe destacar que en este cambio, las
subcaractersticas mencionadas anteriormente pasaron de ser recomendadas en un anexo,
a formar parte del estndar.
154 RA-MA
Proceso de Producto
Software Impacto del
Recursos y Producto
Entorno Evaluacin Software
Product Software
Nmero de capas
En general todas las propuestas incluyen elementos de alto nivel, utilizados con
propsitos de clasificacin, y elementos de bajo nivel, utilizados con propsitos de
descripcin detallada y evaluacin de caractersticas observables de los componentes. Eso
s, se observa una falta de uniformidad en la nomenclatura utilizada en diversos estndares
(se usan indistintamente trminos como factor, atributo, caracterstica, etc.).
RA-MA CAPTULO 10: CALIDAD DE COMPONENTES SOFTWARE 155
Es difcil considerar una de las dimensiones sin considerar las implicaciones sobre
la otra. En general se puede decir que la reusabilidad de un modelo de calidad se reduce al
hacerlo mas especfico y se incrementa al hacerlo ms general
Los factores externos son todos aquellos factores que pueden ser directamente
percibidos por los usuarios y que afectan su trabajo (usualmente relacionadas a la
funcionalidad y usabilidad), mientras que los factores internos hacen referencia a las
caractersticas constructivas de los componentes, que son tan solo accesibles y
controlables por sus fabricantes. No todas las propuestas existentes insisten en esta
separacin, que s podemos encontrar p.e. en el estndar ISO/IEC 9126 (2001-2003) y en
los modelos resultantes de aplicar el mtodo SQUID (Begh et al., 1999).
Caractersticas/
Definicin
Subcaractersticas
Capacidad del producto software para proporcionar las funcionalidades
Funcionalidad que satisfacen las necesidades explicitas e implcitas cuando el software
se usa bajo unas ciertas condiciones
Capacidad del producto software para proporcionar un conjunto de
Adecuacin
funciones apropiado para unas ciertas tareas y objetivos de usuario
Capacidad del producto software para proporcionar los resultados o
Exactitud
efectos correctos o acordados, con el grado necesario de precisin
Capacidad del producto software para interactuar con uno o ms
Interoperabilidad
sistemas
Capacidad del producto software para proteger informacin y datos de
manera que las personas o sistemas no autorizados no puedan leerlos o
Seguridad
modificarlos, al tiempo que no se deniega el acceso a las personas o
sistemas autorizados
Capacidad del producto software para adherirse a normas, convenciones
Cumplimiento
o regulaciones en leyes y prescripciones similares relacionadas con la
funcional
funcionalidad
Capacidad del producto software para mantener un nivel especificado
Fiabilidad
de prestaciones cuando se usa bajo unas cierta condiciones
Capacidad del producto software para evitar fallar como resultado de
Madurez
fallos en el software
Capacidad del software para mantener un nivel especificado de
Tolerancia a fallos
prestaciones en caso de fallos software o de infringir sus interfaces
Capacidad del producto software para reestablecer un cierto nivel de
Capacidad de
prestaciones y de recuperar los datos directamente afectados en caso de
recuperacin
fallo
Cumplimiento de Capacidad del producto software para adherirse a normas, convenciones
la fiabilidad o regulaciones relacionadas con al fiabilidad
Capacidad del producto software para ser entendido, aprendido, usado y
Usabilidad ser atractivo para el usuario, cuando se usa bajo condiciones
especificadas
Capacidad del producto software que permite al usuario entender si el
Capacidad para ser
software es adecuado y cmo puede ser usado para unas tareas o
entendido
condiciones de uso particulares
Capacidad para ser Capacidad del producto software que permite al usuario aprender sobre
aprendido su aplicacin
Capacidad para ser Capacidad del producto software que permite al usuario administrarlo y
administrado controlarlo
Capacidad de ser
Capacidad del producto software para ser atractivo al usuario
atractivo
Capacidad del producto software para adherirse a normas,
Cumplimiento de
convenciones, guas de estilo o regulaciones relacionadas con la
la usabilidad
usabilidad
Caractersticas/
Definicin
Subcaractersticas
Capacidad del producto software para proporcionar prestaciones
Eficiencia apropiadas, relativas a la cantidad de recursos usados, bajo condiciones
determinadas
Capacidad del producto software para proporcionar tiempos de
Comportamiento
respuesta y de proceso y ndices de respuesta al realizar sus funciones
temporal
bajo unas ciertas condiciones
Capacidad del producto software para usar las cantidades y tipos de
Utilizacin de
recursos adecuados cuando el software lleva a cabo su funcin bajo
recursos
condiciones determinadas
Cumplimiento de Capacidad del producto software para adherirse a normas o
la eficiencia convenciones relacionadas con la eficiencia
Capacidad del producto software para ser modificado. Las
modificaciones podran incluir correcciones, mejoras o adaptacin del
Mantenibilidad
software a cambios en el entorno, y requisitos y especificaciones
funcionales
Capacidad del producto software para serle diagnosticadas deficiencias
Capacidad de ser
o causas de los fallos en el software, o para identificar las partes que han
analizado
de ser modificadas
Capacidad para ser Capacidad del producto software que permite que una determinada
cambiado modificacin sea implementada
Capacidad del producto software para evitar efectos inesperados
Estabilidad
debidos a modificaciones del software
Capacidad para ser Capacidad del producto software que permite que el software
probado modificado sea validado
Cumplimiento de Capacidad del producto software para adherirse a normas o
la mantenibilidad convenciones relacionadas con la mantenibilidad
Portabilidad Capacidad del producto software para ser migrado de un entorno a otro
Capacidad del producto software para ser adaptado a diferentes
Adaptabilidad entornos, sin aplicar acciones o mecanismos distintos de aquellos
proporcionados para este propsito por el propio software
Instalabilidad Capacidad del producto software para ser instalado en un cierto entorno
Capacidad del producto software para coexistir con otro software
Coexistencia
independiente, en un entorno comn, compartiendo recursos comunes
Capacidad para Capacidad del producto software para ser usado en lugar de otro
reemplazar producto software, para el mismo propsito, en el mismo entorno
Cumplimiento de Capacidad del producto software para adherirse a normas o
la portabilidad convenciones relacionadas con la portabilidad
Las mtricas para atributos bsicos deben ser objetivas, ya que deben ser
medidos de una formal y precisa, independiente de la percepcin que puedan tener las
personas involucradas en el proceso de medida. Para los atributos derivados algunas veces
no es posible encontrar mtricas objetivas para medirlos en funcin del valor de los
atributos en que se descomponen. En estos casos se necesita una mtrica subjetiva.
Sin embargo, tambin en dichas experiencias hemos observado que otros factores
de calidad que usbamos para descomponer los propios del estndar, eran reusados
regularmente. Este hecho hizo que realizramos una extensin en cuanto a detalle de los
factores de calidad del estndar a la que llamamos modelo ISO/IEC 9126-1 extendido.
Dicho modelo aade 60 nuevas subcaractersticas, 34 de las cuales en el tercer nivel de
162 RA-MA
Caractersticas/
Definicin
Subcaractersticas
Capacidad del producto software para proporcionar las funcionalidades que satisfacen las
Funcionalidad
necesidades explicitas e implcitas cuando el software se usa bajo unas ciertas condiciones.
Capacidad del producto software para proporcionar un conjunto de funciones apropiado para
Adecuacin
unas ciertas tareas y objetivos de usuario
Capacidad del producto software para proporcionar los resultados o efectos correctos o
acordados, con el grado necesario de precisin
Capacidad del producto software para proporcionar recursos para permitir
monitorizar y verificar la correctitud de los resultados o efectos acordados
Historial de Capacidad del producto software para proporcionar una historia
Verificabi- cambios de los cambios en los datos gestionados
lidad Versin de Capacidad del producto software para almacenar/ proveer
datos versiones de los datos gestionados
Capacidad de Capacidad del producto software de proveer mecanismos de
Exactitud
logging anotacin o log
Capacidad del producto software para proporcionar mecanismos para determinar
la correctitud de los resultados o efectos acordados
Capacidad del producto software para proporcionar mecanismos
Resultados de
Efecti- para realizar pruebas directas de los resultados o efectos
autotest
vidad acordados
Resultados de Capacidad del producto software segn reportes publicados por
pruebas terceras organizaciones sobre los resultados de pruebas de los
publicados resultados o efectos acordados
Capacidad del producto software para interactuar con uno o ms sistemas
Capacidad del producto software para interoperar con unos ciertos sistemas
Interopera- Por medio de Capacidad del producto software para interoperar directamente
bilidad protocolos con otros sistemas por medio de unos determinados protocolos
Interoperabilidad directa Por medio de Capacidad del producto software para interoperar directamente
APIs con otros sistemas por medio de unas ciertas libreras API
Interopera-
Capacidad del producto software para interoperar directamente con otros sistemas
blidad
por medio de mecanismos indirectos
indirecta
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
Capacidad del producto software para proporcionar mecanismos para prevenir el
acceso no-autorizado deliberado o accidental a la funcionalidad del producto
Capacidad del producto software para proporcionar mecanismos
Gestionada por
Seguridad para prevenir el acceso no-autorizado deliberado o accidental a
la aplicacin
en la la funcionalidad del producto
aplicacin Capacidad del producto software segn reportes publicados por
Gestionada por terceras organizaciones para proporcionar mecanismos para
Seguridad
terceros prevenir el acceso no-autorizado deliberado o accidental a la
funcionalidad del producto
Capacidad del producto software para proporcionar mecanismos para prevenir el
acceso no-autorizado deliberado o accidental a los datos gestionados
Capacidad del producto software para proporcionar mecanismos
Seguridad Datos
para prevenir el acceso no-autorizado deliberado o accidental a
en los almacenados
los datos almacenados
datos
Capacidad del producto software para proporcionar mecanismos
Datos
para prevenir el acceso no-autorizado deliberado o accidental a
transmitidos
los datos transmitidos
Cumplimiento Capacidad del producto software para adherirse a normas, convenciones o regulaciones en
funcional leyes y prescripciones similares relacionadas con la funcionalidad
La figura 10-10 ilustra esta necesidad. Por ejemplo, en la etapa inicial del DSBC, es
necesario normalmente establecer el presupuesto estimado que se puede dedicar a la
adquisicin de componentes OTS. Posteriormente, en la etapa de seleccin, deben
considerarse usualmente factores tales como el posicionamiento en el mercado de los
proveedores potenciales de componentes, su experiencia en el dominio del proyecto, etc.
En la figura 10-11 aparece una propuesta de los dos primeros niveles que formaran
lo que hemos venido a denominar modelo ISO/IEC 9126-1-NT (Carvallo et al, 2006,
2007). Hemos tratado que el resultado fuera uniforme respecto el modelo original, por lo
que obtenemos una ratio caractersticas-subcaractersticas similar: 15 subcaractersticas
para 3 caractersticas. El contenido del catlogo es como sigue (v. Carvallo et al. 2006b,
para una descripcin detallada de los factores individuales):
164 RA-MA
Caractersticas/
Definicin
Subcaractersticas
Proveedor Caractersticas del proveedor que pueden influenciar en la calidad del producto software
Estructura
Descripcin de la estructura de la organizacin de la empresa del proveedor
organizacional
Posicionamiento Descripcin del nivel y orientacin de la empresa del proveedor en el mercado
Reconocimiento de la capacidad del proveedor de realizar proyectos similares basado en
Reputacin
certificaciones y experiencias pasadas
Servicios ofrecidos Descripcin de los servicios ofrecidos por el proveedor
Soporte Descripcin de los mecanismos de soporte ofrecidos por la empresa del proveedor
Caractersticas del contrato entre el proveedor y el cliente que pueden influenciar la
Negocio
calidad del producto software
Esquema licencia Descripcin de las opciones de licencia posibles para el producto
Propiedad Descripcin de aspectos referentes a los derechos de propiedad intelectual del producto
Garanta Detalle de las garantas que se ofrece para el producto
Descripcin de los costes de los componentes del producto, y el coste total de propiedad
Costes de licencia
segn los tipos de licencia disponibles
Costes de
Estimacin de costes para la plataforma de explotacin requerida
plataforma
Costes de
Estimacin de los costes de implantacin del producto basada en anteriores experiencias
implantacin
Coste de red Estimacin de los costes adicionales para la operacin de red
Caractersticas de los aspectos comerciales del producto software que pueden influenciar
Producto
su calidad
Historia Evolucin del producto desde que apareci en el mercado
Entregables Detalle de los entregables que se ofrecen una vez implantado el producto
Parametrizacin y Descripcin del esfuerzo inicial requerido para preparar el producto para su puesta en
customizacin explotacin
Al igual que suceda con el modelo de calidad estndar ISO/IEC 9126-1, este
modelo general que proponemos para factores no tcnicos debe descomponerse en
subcaractersticas adicionales y atributos. En nuestras experiencias en procesos de
seleccin de componentes OTS (descritas en Carvallo et al., 2006), as como mediante el
estudio exhaustivo de propuestas en la misma direccin (detallado en Carvallo et al.,
2007), hemos identificado diversos factores adicionales que aparecen con alta frecuencia,
en concreto 144 nuevos factores entre subcaractersticas y atributos. Con ellos hemos
configurado el modelo ISO/IEC 9126-1-NT extendido. En la figura 10-12 se muestra un
ejemplo de atributos identificados:
Atributo
Definicin Mtrca Ejemplo
no-tcnico
Tiempo transcurrido desde
Producto en el Tiempo = Aos
que el componente est 5 aos
mercado Aos = Integer
disponible en el mercado
Versiones = Conjunto(Versin)
Versiones del componente Versin = Tupla(Nmero Versin, Tiempo)
Versiones del (V1, 2 aos)
que actualmente estn Nmero Versin = String
producto (V2, 1 ao)
disponibles en el mercado Tiempo = Aos
Aos = Integer
Indica si el componente ha
Produccin
sido desarrollado por el Desarrollo propio = Boolean Cierto
propia
propio proveedor
Figura 10-13. Extensin del ISO 9126-1 y su refinamiento para un contexto particular.
El mtodo IQMC consiste de siete pasos (v. fig. 10-14) que, aunque se presentan
como si fueran secuenciales, pueden ser simultaneados y/o iterados si se considera
necesario. En el primer paso, el mbito de calidad es explorado en profundidad y, a
RA-MA CAPTULO 10: CALIDAD DE COMPONENTES SOFTWARE 167
continuacin, los seis pasos restantes conducen la construccin del modelo de calidad
partiendo de las caractersticas de calidad, y su descomposicin en subcaractersticas del
catlogo ISO/IEC 9126-1 extendido. Es importante hacer hincapi en la diferencia de
detalle que existe dentro de este catlogo entre lo que son los factores de calidad tcnicos
y los no-tcnicos. Esta diferencia hace que en el mtodo que se describe a continuacin no
se realiza un mismo enfoque para unos que para otros. En concreto cuando se habla de
refinamiento de algn tipo de factor de calidad, para los factores tcnicos nos referimos
ms bien a una descomposicin de dichos factores en factores de ms bajo nivel de
abstraccin, y slo ocasionalmente a la eliminacin o modificacin de algn factor ya
existente. En cambio, cuando hablamos de refinamiento de factores de calidad no-
tcnicos, nos referimos ms bien a la eliminacin de factores que no sean relevantes para
el contexto para el que se construye el modelo, y slo ocasionalmente a aadir o modificar
algn factor ya existente. En otras palabras, se puede llegar a considerar que la parte
tcnica de nuestro catlogo pertenece a la categora de modelos de calidad mixtos,
mientras que la parte no-tcnica ms bien parece un modelo de calidad fijo.
Paso 0. Estudio del mbito del software. Este paso consiste en realizar un
estudio del mbito al cual pertenecen los componentes software para los que se quiere
evaluar la calidad. Es un paso opcional que puede soslayarse en caso de poseer el
conocimiento suficiente, de ah su numeracin. Es recomendable revisar fuentes de
informacin que describan dicho mbito (Ayala y Franch, 2009). Por otra parte tambin
puede ser interesante realizar algn tipo de modelizacin del mbito para realizar una
unificacin de la terminologa identificada en las distintas fuentes de informacin de cara
a los pasos siguientes.
CONCLUSIONES
RA-MA CAPTULO 10: CALIDAD DE COMPONENTES SOFTWARE 169
AGRADECIMIENTOS
Este trabajo ha sido parcialmente apoyado por el proyecto de investigacin
TIN2007-64753 subvencionado por el Ministerio de Ciencia e Innovacin.
BIBLIOGRAFA
AYALA, C.P. y FRANCH, X. (2009). Gestin Sistemtica de la Calidad de la
Informacin en los Procesos de Seleccin de Componentes de Software. En: Procs. XII
Conferencia Iberoamericana de Ingeniera de Requisitos y Ambientes de Software
(IDEAS09).
BOEHM, B.W., BROWN, J.R., KASPAR, H., LIPOW, M., MACLEOD, G.J. y
MERRITT, M.J. (1978). Characteristics of Software Quality. North Holland Publishing
Company.
BOTELLA, P., BURGUS, X., CARVALLO, J.P., FRANCH, X., GRAU, G., MARCO,
J. y QUER, C. (2004). ISO/IEC 9126 in Practice: what do we need to know?. En: Procs.
1st Software Measurement European Forum (SMEF04), Ed. Instituto di Recerca
Internazionale.
BOTELLA, P., BURGES, X., CARVALLO, J.P., FRANCH, X., PASTOR, J.A. y
QUER, C. (2003). Towards a Quality Model for the Selection of ERP Systems. En:
Component-Based Software Quality, Methods and Techniques, LNCS 2693, Springer-
Verlag.
FRANCH, X. y MARCO, J. (2004). A Quality Model for the Ada Standard Container
Library. En: 8th Ada-Europe International Conference on Reliable Software
Technologies, LNCS 2655, Springer-Verlag.