Escolar Documentos
Profissional Documentos
Cultura Documentos
LA CALIDAD
DEL SOFTWARE
Y SU MEDIDA
Reservados todos los derechos
Ni la totalidad ni parte de ese libro puede reproducirse o transmitirse por
ningún procedimiento electrónico o mecánico, incluyendo fotocopia, grabación
magnética o cualquier almacenamiento de información y sistema de recupera-
ción, sin permiso escrito de Editorial Centro de Estudios Ramón Areces, S. A.
ISBN: 84-8004-611-2
Deposito legal: M. 44.635-2003
Impresión por:
LAVEL, S.A.
Humanes (Madrid)
La ingeniería del software como disciplina nacida hace casi cuarenta años como
respuesta a la llamada "crisis de la programación" asume las estrategias de las
ingenierías tradicionales y trata de utilizarlas adaptándolas a la fabricación de
programas para ordenador. Esta misma ingeniería que busca en modelos de calidad
tradicional su más fiel aliado debe proseguir en la mejora continua de sus procesos.
Dentro de esta mejora se encuentra, sin duda, la obtención de medidas adecuadas a
las entidades y atributos que le son propios. Medir implica conocer y conocer
permite manipular aquellos factores de interés en la búsqueda de la excelencia.
Medir la calidad es, por tanto, un requisito imprescindible en las nuevas
metodologías del software y un factor estratégico en el sector de la nueva
economía.
Julio 2003
Los autores
Capítulo 1
La industria del software, como tal industria, tiene muchas de las características
de la industria tradicional, entre ellas la necesidad de que sus productos sean de
calidad. En este capítulo se tratará del concepto de calidad, de sus características y
de sus diferentes estados a través de los tiempos, para terminar con un breve
estudio sobre los costes y beneficios que conlleva la implantación de un sistema de
calidad.
' López Cachero, M. 11 Jornadas de Calidad del Software, organizadas por la Asociación de Técnicos de
Informática. Madnd 2 y 3 de julio de 1998.
24 LA CALIDAD DEL SOFTWARE
'Yourdon, Edward. Investigador ampliamente conocido por idear el método estructurado de análisis y diseño, así
como ser coautor del método denominado CoadIYourdon para programación orientada a objeto en los años
noventa. Autor de más de quinientos artículos y veinticinco libros es licenciado en matemáticas por el MIT y el
Instituto Politécnico de Nueva York. Consultar el sitio http://www.vourdon.com.
'Yourdon Edward, "Lo bueno..¿es lo mejor?", Byte, no 22, octubre 1996. pág. 154.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 25
López Cachero, M. 11 Jornadas de Calidad del Software, organizadas por la Asociación de Técnicos de
Informática. Madrid 2 y 3 de julio de 1998. Registro en audio realizado por nosotros.
López Cachero, M. 11 Jornadas de Calidad del Software, organizadas por la Asociación de Técnicos de
informática. Madrid 2 y 3 de julio de 1998. Registro en audio realizado por nosotros. López Cachero, Manuel.
Rector de la Universidad Alfonso X el Sabio y presidente de la Asociación Española de Normalización y
Certificación, AENOR.
26 LA CALIDAD DEL SOFTWARE
2. CONCEPTO DE CALIDAD
Calidad (del lat. Qualitas, -atis y este calco del griego poiothz) .f. Propiedad o
conjunto de propiedades inherentes a algo, que permiten juzgar su valor. 2. Buena
calidad, superioridad o excelencia. 3. Carácter, genio, índole. 4. Condición o
requisito que se pone en un contrato. 5. Estado de una persona, naturaleza, edad y
demás circunstancias y condiciones que se requieren para un cargo o dignidad. 6.
Nobleza del linaje. 7. Importancia o gravedad de algo. 8. pl. Prendas personales 9.
Condiciones que se ponen en algunos juegos de naipes.
Como se puede observar las acepciones del término son muy variopintas,
aunque añadiremos aquellas que se encuentran en los textos que tratan de la
calidad, tal como se entiende en los ámbitos empresariales, tales como:
'Real Academia Española. Diccionario de la lengua española. 22" Edición. Madrid, 2001. Pág. 401.
' María Moliner. Diccionario de uso del Español. Editorial Gredos S.A. Madrid, 2000. Pág. 224.
UNE-EN ISO 9000. Sistemas de gestión de la calidad. Fundamentos y vocabulario. AENOR. Madrid, 2000. Pág.
16.
Sebastián Pérez, Miguel Ángel; Bargueño Fariñas, Vicente; Novo Sanjurjo, Vicente. Gestión y Control de
calidad. Cuadernos de la V E D . Madrid. UNED. 1994. Pág. 15.
' O Sebastián Pérez, Miguel Angel; Bargueño Fariñas, Vicente; Novo Sanjurjo, Vicente. Op. Cit. Pág. 15.
"JOC Sanders y Eugene Curran. Software Quality. A Framework for Success in Software Development and
Support, Centre for Software Engineering, Dublin, Addison-Wesley Publishing Company, 1994. Pág. 3. La
traducción es nuestra.
28 LA CALIDAD DEL SOFTWARE
''Arthur Andersen. La Calidad en España. Cinco Días. Madrid, 1995. Pág. 28.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 29
/
n CALIDAD
REALIZADA \
\ CALIDAD
PROGRAMADA
y CALIDAD /
Podemos representar estas calidades como tres círculos que se cortan. Lo que la
gestión de la calidad pretende conseguir es que el área común sea la mayor posible,
incluso que lleguen a coincidir para evitar insatisfacciones y gastos superfluos.
A veces se habla de calidad percibida, que no tiene que coincidir con la
realizada, ya que depende de la subjetividad de algunas de las características, por
ejemplo la estética, y es debido a que los usuarios no disponen de la información
completa. En estos casos los productos o servicios se evalúan más por su nombre
de marca o la publicidad que por sus características objetivas. La calidad percibida
es el grado de calidad que el cliente cree que tiene el producto o servicio. Al ser
subjetiva del cliente, el sistema de gestión poco puede hacer para que la calidad
percibida sea igual a la realizada, salvo incrementar la comunicación a fin de
conseguir la convergencia.
Prestaciones
" Sebastián, Miguel Angel; Bargueño, Vicente; Novo, Vicente. Gestión y Control de calidad. Madrid. UNED.
1994.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 31
Diferenciación
Fiabilidad
Conformidad
Duración
Asistencia técnica
Estética
Es muy subjetiva y está muy ligada a la personalidad del usuario, que no tiene
por qué aceptar los cánones establecidos. La forma de un producto, su color, sabor,
tacto o sonido o gráficos afectan de forma diferente a los diferentes usuarios. En un
programa de videojuegos la calidad que percibe el usuario está muy ligada a la
estética (parte gráfica, música de fondo, diseño de los personajes, etc.).
se puedan ejecutar las funcionalidades de una forma fácil (facilidad de uso), que lo
hagas lo más rápido posible y con el mínimo consumo de recursos (eficiencia), que
cuando las circunstancias lo pidan pueda modificarse fácilmente (mantenimiento)
y, por último, que pueda transferirse de un entorno a otro (movilidad o
portabilidad).
Quizás, de las dimensiones manejadas, la del nivel más bajo asumido es la
fiabilidad, ya que el software debe funcionar siempre que se requiera. Qué mayor
fmstración que cuando se está de viaje con un portátil, no pueda utilizarse por un
incidente del sistema operativo.
El siguiente nivel exigido, el intermedio, es la funcionalidad. No sólo el
software debe de tener las funcionalidades que dice tener, sino que debe
comunicarlas. Es decir, el usuario debe disponer de la información suficiente para
poner usar de forma eficaz todas las tareas. El manual de usuario de la aplicación
es un componente más del software.
En un nivel superior se encuentra la facilidad de uso (usabilidad). Además de
hacer lo que debe hacer el software, debe de hacerlo de una forma fácil, natural y
amigable, de ahí la importancia del diseño de las interfaces.
El resto de las características son complementarias de las anteriores, ya que lo
fundamental es que el software, en primer lugar, debe de funcionar, hacer lo que
dice que hace y de una manera fácil. La economía de recursos, la facilidad de
modificación y el transporte del software añaden la miel a la hojuela de las tres
características fundamentales.
En los actuales mercados competitivos son los clientes los que determinan sus
necesidades y si los productos y servicios que se le ofrecen les satisfacen. De ahí
que las empresas deban entender y conocer las necesidades, preferencias,
percepciones y valores de los potenciales clientes y, en base a ellos, y con el fin de
14
Arthur Andersen. La calidad en España. Madrid. Cinco Días. 1995.
34 LA CALIDAD DEL SOFTWARE
De poco sirve que exista una política de calidad y que los directivos la lideren si
el resto del personal no se encuentra involucrado. Un factor fundamental para ello
se encuentra en la selección de personal, ya que la imagen que de la empresa se'
forman los clientes viene condicionada por el entusiasmo, motivación y convicción
que transmiten los empleados; por lo tanto, los candidatos seleccionados deben
tener unas actitudes y características acordes con la orientación de la empresa. Las
empresas que consiguen implantar con éxito este tipo de estrategia son las que han
dado prioridad a la inversión en formación de sus empleados, convirtiendo esta
formación en un mecanismo fundamental en el proceso de motivación, ayudando a
establecer el espíritu de equipo y cooperación necesarios para que la gestión diaria
de la calidad alcance el éxito.
7" La calidad debe ser el criterio que configure todos los sistemas y procesos de
la empresa
Para que la'calidad sea percibida hay que dar a conocer las ventajas
diferenciadoras que pueden ser cumplidos por la empresa para generar expectativas
en los clientes. Nunca deben anunciarse aspectos que sean falsos, ya que
defraudan, causan frustración y suponen la pérdida del cliente. Las estrategias
comunicacionales tienen como objetivo:
Aseguramiento de la calidad
3.1. Inspección
Hacia 1924 se establecen las bases del Control Estadístico de la Calidad, que
recibe su confirmación durante la Segunda Guerra Mundial, contribuyendo a la
producción de guerra que facilitaría el triunfo a los Aliados. Las características son:
l5 Banks, Jeny. Profesor de la Escuela Industrial y de Sistemas Ingenieriles perteneciente al Instituto Tecnológico
"La dirección debe definir la tarea de cada uno de los operarios especificando el
método que deben de usar y cuantificando el tiempo que deben emplear en
realizarla."
La década de los sesenta está caracterizada por una nueva fase en la disciplina
del control de calidad. Era el principio de la denominada por Feigenbaum, en 1956,
Calidad Total. Antes de 1960 el control de calidad estaba esencialmente asociado a
la planta de fabricación. Las estructuras de toma de decisión en el negocio no
utilizaban adecuadamente los resultados y recomendaciones emanadas de las
técnicas estadísticas aplicadas. El concepto de calidad total presentaba la idea de
48 LA CALIDAD DEL SOFTWARE
Calidad dirigida Calidad total dirigida hacia el cuidado Pocas Años noventa
al cliente del cliente y del servicio evidencia
de uso
Calidad dirigida Calidad total dirigida hacia el cliente Pocas Algunas
al mercado existente así como a clientes en evidencias evidencias
l9 Robert H. Dunn. "Quality Assurance", Encyclopedia of Software Engineenng, John Wiley & Sons, 1994. Pág.
20
Robert H. Dunn. "Quality Assurance", Encyclopedia of Software Engineering, John Wiley & Sons, 1994. Pág.
945. La traducción es nuestra.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 53
''Robert H. Dunn. "Quality Assurance", Encyclopedia of Software Engineering, John Wiley & Sons, 1994. Pág.
945. La traducción es nuestra.
54 LA CALIDAD DEL SOFTWARE
4.12. El futuro
6. COSTES DE LA CALIDAD
Los costes de la calidad son suma de otros tres costes: Los costes de las
acciones no previstas (costes de no-calidad), los costes de prevención y los costes
de la inspección o costes de evaluación.
Como puede deducirse de la figura para aumentar el beneficio es necesario
reducir principalmente los costes de la no calidad.
Mantenimiento
Planes de formación
\ / Trabajo \ /
Operario: 20%
Son todos los costes relacionados con los errores de producción. Antes o
después de su entrega al cliente, incluyendo las acciones correctiva, la garantía o la
pérdida de confianza del cliente.
Según estudios de Arthur Andersen, la falta de calidad provoca las siguientes
consecuencias negativas para la empresa:
o Cuesta cinco veces más obtener un cliente nuevo que retener a uno antiguo.
o Sólo el diez por ciento de los clientes que han tenido una mala experiencia
vuelve a repetir la compra.
o Sólo el cuatro por cientos de los clientes defraudados se lo comunica al
proveedor.
o Un cliente insatisfecho comenta su caso con, al mínimo, diez personas.
Costes
1 Costes no calidad
Calidad (%)
COSTE f BENEFllrSIO
' Roberts, Fred S. Measurement Theory with Applications to Decisionmaking, Utility, and the Social Sciences.
Encyclopedia of Mathematics and its Applications. Addison Wesley Publishing Cornpany, 1979.
Roberts, Fred S. Director del Centro de Matemáticas Discretas y Teoría de la Ciencia Computacional, consorcio
formado por las universidades de Rutgers y Princenton junto a diversas empresas tecnológicas (AT&T, Lucent
Technologies, NEC, entre otras). Consultar la dirección de intemet http:// dimacs.mtgers.edu/index.html.
64 LA MEDIDA DE LA CALIDAD DEL SOFTWARE
Más de veinte años después Norma E. Fenton se cuestiona ''¿Algo ha ido mal o
esperamos demasiado, demasiado pronto?"3. Esta pregunta se justifica, cuatro
lustros después de la conferencia de Garmish, en la situación en la que el desarrollo
de programas para ordenador se encuentra sumido y que ~ i b b ilustras ~ de forma
contundente:
"... por cada seis nuevos sistemas de programación de gran tamaño que
James E. Tomayco. "Milestones in Software Engineering", Encyclopedia of Software Engineering, John Wiley
& Sons, 1994. pp. 687-697. La traducción es nuestra.
Fenton, Norman E. Sojiware Metrics. A Rigorous Approach. London, Chapman & Hall, 1992. Pág 5 . La
traducción es nuestra.
Gibbs, W. Wayt. Licenciado en Física e Inglés por la universidad de Comell, afamado articulista de Scientijc
American, ha publidado numerosos artículos sobre el software y ciencias afines. Ha desarrollado labores de
investigación en nanotecnologia y biotecnologia en el MIT. Consultar http:l/web.mit.edu/knight-sciencel
Gibbs, W. Wayt. "La crisis crónica de la programación", Investigación y Ciencia, Tendencias en Informática.
Pág. 73.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 65
Medir es conocer, y este conocimiento nos permite avanzar sobre bases sólidas.
Pero medir nos proporciona algo más, nos posibilita aplicar las poderosas
herramientas que las matemáticas nos ofrecen, facilitando la manipulación de datos
con objeto de alcanzar una visión de la entidad estudiada que de otra forma hubiera
sido imposible obtener.
" Software Engineering Laboratory. Collected Software Engineering Papers. Vol.: X, SEL-92-003, November,
1992. Pág. 164. La traducción es nuestra.
" Existen numerosos ejemplos que ratifican esta afirmación. Muchos de ellos representaron el comienzo de una
nueva era para la investigación o un avance sustancial en campos científicos de muy diversa orientación. Galileo
Galilei (1546-1642) inventó el termómetro, paso fundamental para el desarrollo de la termodinámica. Evangelista
Torricelli (1608-1647) en 1643, realizó el experimento que permitió la invención del barómetro. Henry Cavendish
(173 1 -181O), inventor de la balanza que lleva su nombre, permite el cálculo de la masa de un cuerpo basándose en
la fuerza de atracción ejercidas por ambas debido a la interacción gravitacional. Willian Crookes (1832-1919)
inventó el radiómetro en 1875. Aparato diseñado para la medida de la energía de una radiación. O los modernos
sistemas del cálculo de distancias basados en el haz láser, son ejemplos que nos permiten afirmar la importancia
que los científicos de todas las épocas han dado a la obtención de medidas fiables. Consultar enciclopedia Salvat
Universal. Barcelona. 1996.
l 3 Kelvin, Willian Thomson, referencia en: Alan L. Mackay. Diccionario de citas científicas. Ediciones de la
Torre. 1992.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 67
l 4 Black, Joseph. Químico y fisico escocés del siglo XVIII. Entre otras aportaciones descubrió el calor latente y el
calor especifico. Consultar enciclopedia Salvat Universal. Barcelona. 1996.
l 5 Joule, James Prescott. Físico británico del siglo XIX. Estableció la teoría mecánica del calor. Consultar
enciclopedia Salvat Universal. Barcelona. 1996.
68 LA MEDIDA DE LA CALIDAD DEL SOFTWARE
Este método tiene como desventaja evidente el alto coste en tiempo y recursos
humanos necesarios para su implantación, así como la subordinación al nivel de
experiencia y conocimientos en el entorno que puedan aportar los técnicos.
Como ventajas se podrían indicar que las estimaciones parciales son
neutralizadas y se presenta una estimación global. Por otro lado las estimaciones
suministradas por este grupo de expertos difícilmente pueden ser obviadas gracias
a la trascendencia que la organización otorga a este proceso al proporcionar
costosos recursos a esta tarea.
70 LA MEDIDA DE LA CALIDAD DEL SOFTWARE
La analogía
La ley de Parkinson
La mejor oferta
Se procura conocer hasta cuánto el cliente está dispuesto a pagar y cuáles son
las ofertas de la competencia. El valor que permite lograr el proyecto se toma como
estimación del esfuerzo.
1. Estimar no es repetir.
2. Estimar no es negociar.
3. Las estimaciones no admiten regateo.
4. Estimar no es dividir en partes una duración fija.
5 . Un retraso en una fase de un proyecto implica un retraso proporcional en
todas las fases siguiente.
6. Si desea que se le proporcione una estimación significativa, no sugiera la
respuesta.
7. Una estimación útil es una proyección en la que la probabilidad no es
optimista ni pesimista.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 71
Hay que tener en cuenta que los errores pueden ser de infravaloración o de
sobrestimación, cuya importancia sigue la ley de Brooke, en el primer caso, y la de
Parkinson, en el segundo. Los dos tipos de errores no se anulan uno al otro cuando
se hace la media de numerosos errores.
4.3. COCOMO
T = C E ~ Ecuación 2.2
E = a ( K L D C )m(x)
~ Ecuación 2.3
15
El valor m(x) en el caso del modelo básico tiene como valor fijo la unidad.
Boehm consideró quince factores de coste diferentes, agrupados según el
siguiente esquema.
2.4. Tiempo.
2.4.1. Planificación temporal del desarrollo requerida.
Cada factor es valorado por separado en una escala ordinal de seis puntos (muy
bajo/bajo/nominal/alta/rnuy altalextra alta). A partir de las tablas hechas públicas
por Boehm se asigna un valor numérico a cada factor y se aplica la ecuación 2.4, el
resultado es el factor de ajuste del esfuerzo.
4.4. SLIM
D , = K I ~ ~ ~ Ecuación 2.7
LA CALIDAD DEL SOFTWARE Y S U MEDIDA 77
Q 1 2 3 4 5
5. MEDIDA
5.1. Definiciones
Se puede clasificar las medidas realizadas en dos tipos bien definidos, medidas
directas y medidas indirectas. Se definen de la siguiente manera:
l 6 Fenton, Norman. Profesor de la Universidad de Queen Mary (Universidad de Londres). Ha sido investigador
principal de en numerosos proyectos relacionados con la medida del software, métodos formales y aspectos
teóricos de la ingeniería del software. Consultar Encyclopedia of Software Engineering, John Wiley & Sons, 1994.
l7 Fenton, Norman E. Sojiware Metrics. A Rigorous Approach. London, Chapman & Hall, 1992. Pág. 3. La
traducción es nuestra.
'' Fenton, Norman E., op. cit. pág. 17. La traducción es nuestra.
l9Fenton, Norman E., op. cit. pág. 19. La traducción es nuestra.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 79
c (C, R)
siendo:
20
Fenton, Norman E., op. cit. pág. 21. La traducción es nuestra.
80 LA MEDIDA DE LA CALIDAD DEL SOFTWARE
Matemáticamente:
N CN, P)
siendo:
5.3. Escalas
Maurice ~ a l s t e a d fue
~ ' el primer investigador que de forma consistente propuso
un proceso de medida para el software. Para ello se apoyó en diferentes fuentes
teóricas, que van desde la sicología del conocimiento, teoría de la información o la
termodinámica, hasta concretar un proceso de medida determinado. La filosofía
básica en la que asentó su teoría fue que la comprensión del software era similar al
proceso mental de manipulación de señales. Halstead definió un conjunto de
medidas que pueden ser extraídas del código fuente del programa. Su influencia en
'' Halstead, Maurice H. Graduado en meteorología por la universidad de Berkeley en 1940, doctor por la
universidad de Jonhs Hopkins de Baltimore, es considerado uno de los pioneros en el software para computadoras.
Realizó importantes aportaciones en la métricas del software a las que inicialmente las denominó "Termodinámica
del Software". Consultar el sitio www.itee.uq.eduíau.
84 LA MEDIDA DE LA CALIDAD DEL SOFTWARE
Estas deficiencias han llevado a que las medidas propuestas por Halstead hayan
sido prácticamente eliminadas del contexto industrial, a excepción de algunos
experimentos aislados. A pesar de esta afirmación hemos encontrado investigadores
22 Baker, A.L. Matemático británico condecorado con la Medalla Fields en 1970 por su trabajo en el campo de la
teoría de los números. Consultar el sitio hnp:l/www.britannica.com.
23
Zweben, Stuart. Profesor de la universidad del Estado de Ohio y responsable del Departamento de Ciencia de la
Información y la Computación. Estudioso de la ingeniería del software, ha centrado sus estudios en la medida de la
calidad del software. Consultar Encyclopedia of Software Engineering, John Wiley & Sons, 1994.
24
Curtis, Bill. Conocido internacionalmente por sus investigaciones sobre la medida del software, diseño de
interfaces o factores humanos y de organización que afectan al proceso software. Doctor por la universidad
Cristiana de Tejas, entre otros títulos, ha publicado casi un centenar de artículos y desarrollado su carrera en
prestigiosos centros de estudio. Consultar Encyclopedia of Software Engineering, John Wiley & Sons, 1994.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 85
que no han perdido toda la esperanza en los procesos propuestos por Halstead.
Alguno de ellos incluso lamenta la muerte de este investigador pues consideran que
su talento hubiera podido superar las críticas que ahora recaen sobre su teoría.
A mediados de la década de los setenta surgió un gran interés por la medida del
software basado en el control de flujo de un programa o módulo. Este hecho
coincidió con el auge de la programación estructurada como aproximación sensible
al desarrollo detallado del diseño de módulos. En este contexto teórico un sistema
un programa fácil de leer, desarrollar, mantener y corregir es aquel que se
encuentra diseñado bajo un limitado número de estructuras de control.
La medida clásica del control de flujo es la denominada "complejidad
ciclomática". Esta medida fue desarrollada por el científico norteamericano
internacionalmente conocido en el ámbito de la medida del software por sus
aportaciones en este campo, Thomas ~ c ~ a bEsta e . es~ una
~ medida basada en una
teoría gráfica, relacionada directamente con el número de "caminos" asociados a
un programa o módulo. McCabe postuló que un valor elevado de la complejidad
ciclomática de un grafo que representa un módulo o programa de forma directa,
implicaría un grado elevado de dificultad en las propiedades de comprensibilidad y
facilidad de prueba. La razón de este discernimiento es que un valor elevado en la
complejidad ciclomática implicaría una densidad elevada de instrucciones tipo "IF,
WHILE" o "REPEAT". La incidencia de estas construcciones es un mayor grado
de dificultad a la hora de leer esos programas o probarlos, ya que implicarían un
mayor número de caminos a explorar al realizar pruebas de datos.
El trabajo de McCabe de 1976, es de obligada referencia en cualquier texto de
ingeniería del software al ser uno de los modelos más originales y copiados de la
historia de la medida del software.
A pesar de este hecho han aparecido estudios críticos sobre la medida propuesta
por McCabe. Se demostró que muchos de los experimentos eran estadísticamente
sospechosos y que la complejidad ciclomática no proporciona mejores predicciones
que aquellas que nos ofrece el modelo de las líneas de código. Esta afirmación se
soporta sobre numerosas experiencias empíricas [Fenton, 19921.
Existen, además, otras críticas realizadas hacia esta teoría gráfica. Por un lado la
falta de trascendencia dada por este modelo a las condiciones de un módulo o
programa. Así, por ejemplo, dos módulos con igual complejidad ciclomática son
enormemente distintos debido al uso de múltiples operadores booleanos,
expresiones aritméticas complejas o abuso de los "flags" en el programa. Otros de
25
MacCabe Thomas, J. Licenciado en matemáticas por las universidades de Privilence y Connecticut. Prestigioso
consultor y autoridad en las áreas de la calidad del software, técnicas de validación y pruebas del software.
Consultar Encyclopedia of Software Engineering, John Wiley & Sons, 1994.
86 LA MEDIDA DE LA CALIDAD DEL SOFTWARE
los problemas se encuentra -en el tratamiento de los datos. Dos programas pueden
tener igual complejidad ciclomática, pero uno de ellos puede ser mucho más difícil
de entender que el otro debido al número y extensión de las variables utilizadas por
cada uno de éstos. A finales de los setenta y principio de los ochenta han aparecido
algunas variantes del modelo de McCabe que intentaban superar estas críticas.
Aparecen modelos que consideran el nivel de anidamiento o complejidad booleana
o tienen en cuenta factores asociados a los datos tratados y de qué forma, por parte
del programa.
Las medidas basadas en el control de flujo impulsaron un área de aplicación de
las medidas del software de enorme potencial. Si un programador utiliza un
detallado diseño, de forma que sea isomórfico con el código final generado,
medidas tales como la complejidad ciclomática pueden ser utilizadas durante la
fase de diseño detallado del programa.
Una de las mayores críticas vertidas sobre el modelo de McCabe es que haya
sido utilizado para medir más factores de calidad que aquellos para los que fue
ideado. Muchos trabajadores, escondidos tras el paraguas del término complejidad,
han erróneamente extendido éste hacia áreas donde McCabe nunca intentó ir.
26
Pamas, David Lorge. Profesor de Ingeniería Computacional y Electricidad de la universidad de McMaster,
Ontario. Miembro de Laboratorio de Investigación de Comunicaciones del Instituto de Telecomunicaciones de
Ontario. Autor de más de 150 publicaciones orientadas al estudio de la estructura del software, diseño de
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 87
En paralelo con el trabajo sobre la medida de los sistemas de diseño, los últimos
años de la década de los setenta y los primeros años de la década de los ochenta
vieron algunos trabajos derivados de las medidas de las especificaciones. Las
medidas extraídas de las especificaciones funcionales del sistema se idearon pare
estimar el coste y esfuerzo o para asegurar la productividad. Allan ~ l b r e t c es
h ~el~
investigador por excelencia en esta área de estudio.
La medida propuesta por Albretch, "punto de funcionalidad, tiene en su ánimo
medir el tamaño funcional del software. Originalmente se intentó en el
procesamiento comercial de datos.
~ ~ m o n desarrolló
s~' un producto industrial basado en la idea original de
Albretch. Este modelo es utilizado, sobre todo, para administradores de grandes
bases de datos, en cuyos sistemas esta medida es de las más populares.
Un problema achacado al punto de funcionalidad es que asume un limitado
número de aplicaciones tipo, principalmente sistemas basados en ficheros de gran
volumen, muy propios de entidades financieras, pero no puede considerarse en
sistemas híbridos tales como aquellos de control de stocks con un gran componente
de comunicaciones. En los primeros años de los ochenta DeMarco presentó una
medida llamada " BANG que intentaba superar este hecho apoyado en factores de
ajuste que dependían del grado de fortaleza de datos y de funciones.
lenguajes, software de seguridad, entre otros campos de estudio. Consultar . Encyclopedia of Software
Engineering, John Wiley & Sons, 1994.
27
Kafura, Dennis G . Licenciado en matemáticas por la universidad de San Francisco y doctor por la universidad
de Purdue, actualmente es responsable del Departamento de Ciencia de la Computación del Instituto Politécnico
de la universidad de Virginia. Su labor investigadora ha alcanzado la programación orientada a objeto,
computación paralela, seguridad informática, métricas, entre otros campos. Consultar Encyclopedia of Software
Engineering, John Wiley & Sons, 1994.
28
Henry, Sallie. Doctora en Ciencia de la Computación por la universidad del Estado de Iowa, ha trabajado en los
campos de la medida del software, metodologias de diseño y programación orientada a objeto. Consultar el sitio
http://www.cs.vt.edu/
29
Albrech, Allan J. Internacionalmente conocido como inventor de la medida denominada análisis del punto
función. Graduado por la universidad de Bucknell en 1949 como ingeniero eléctrico y electrónico, trabajó en IBM
donde desarrolló gran parte de su carrera. Se retiró en 1998 desarrollando ahora una labor de consultor
independiente. Consultar Encyclopedia of Software Engineering, John Wiley & Sons, 1994.
30
Symons, Charles. Científico con más de cuarenta años de experiencia, fue pionero en la medida del software
desarrollando la técnica denominada puntos función MKII. Comenzó su carrera en el uso de ordenadores aplicados
a la energía atómica. Consultar Encyclopedia of Software Engineering, John Wiley & Sons, 1994.
88 LA MEDIDA DE LA CALIDAD DEL SOFTWARE
"un ejemplo de este tipo de organizaciones es la denominada en inglés Intemational Function Point Users Group
(IFPUG). Entidad orientada al desarrollo y mejora de la técnica de medida del punto función y de su extensión
alrededor del mundo.
32 Boehm, Bany. Profesor de Ingeniería del Software y Director del Departamento de Ciencia Computacional en el
Centro de Ingeniería del Software. Doctor ingeniero por la universidad de UCLA en 1961, ha realizado numerosas
aportaciones a la ingeniería del software, tales como el modelo COCOMO, el Modelo Espiral o aproximaciones
teóricas a la administración del software, entre otras. Consultar Encyclopedia of Software Engineering, John Wiley
& Sons, 1994.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 89
33
Fenton, Norman E. Sofmare Metrics. A Rigorous Approach. London, Chapman & Hall, 1992. La traducción es
nuestra.
34
Fenton, Norman E. Sofhoare Metrics. A Rigorous Approach. London, Chapman & Hall, 1992. Pág. 42. La
traducción es nuestra.
90 LA MEDIDA DE LA CALIDAD DEL SOFTWARE
35
Fenton, Norman E., op. cit. pág. 43. La traducción es nuestra.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 91
ser tan abundante como la combinación de atributos internos sea posible. La tabla
2.6 muestra algunos atributos y su entidad asociada. según la visión "METKIT".
Dos últimas definiciones nos permitirán finalizar este repaso teórico a la medida
del software.
El fin último del proceso de medida es el cálculo de alguna magnitud conocida
o predecir un atributo aún inexistente. Este hecho nos lleva a dos definiciones
importantes.
36
Fenton, Norman E. SofhYare Metrics. A Rigorous Approach. London, Chaprnan & Hall, 1992. Pág. 48. La
traducción es nuestra.
92 LA MEDIDA DE LA CALIDAD DEL SOFTWARE
en cualquier proyecto.
37
Fenton, Norman E. Op. Cit. pág. 48. La traducción es nuestra.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 93
8. LA NORMA ISOlIEC9126
No podemos acabar este capítulo sin hacer referencia a la norma ISOIIEC 9126.
Esta norma es trascendente por diversos motivos. Es un intento por normalizar la
medida de la calidad del software por parte de un organismo tan importante como
es el caso de ISO. Asume la medida del software a través de una metodología de
amplia utilización en las ciencias empíricas como es la descomposición jerárquica
en árbol. Considera la medida de la calidad a través de la medida de atributos
directos, indirectos y medida de la calidad de uso, siguiendo la propuesta de Fenton
en su texto sobre la medida del software. La norma ISOIIEC 9126 también propone
un procedimiento de medida con objeto de ser una referencia de carácter
internacional.
Estudiaremos en detalle esta norma en el capítulo VII.
Uso de recursos
fallos aprendizaje para cambios instalación
Capacidad de Adherencia
Interoperatividad Operatividad Estabilidad Coexistencia
recuperación a normas
Adherencia Software Facilidad Facilidad de
Seguridad
a normas atractivo para pmebas reemplazo
Adherencia Adherencia Adherencia Adherencia
a normas a normas a normas a normas
NORMALIZACI~NY CERTIFICACI~N:
NORMA ISO 9001:2000
El aseguramiento de la calidad es un modelo
planificado y sistemático para proporcionar una adecuada
confianza en que un producto es conforme con los
requerimientos técnicos establecidos'
1
Standards Coordinating Comminee of the IEEE Computer Society. Standars Glossary of Software Engineering
Tenninologv. IEEE. Nueva York, 1991. Pág. 60. La traducción es nuestra.
Las normas son reglas metodológicas y modelos adoptados por organizaciones
nacionales o internacionales que se dedican al establecimiento de estándares. Estas
organizaciones se apoyan en foros de expertos que se suelen constituir en comités
muy cualificados.
La Organización Internacional para la Estandarización, más conocida por sus
siglas en inglés, ISO, propone gran cantidad de normativa en numerosos campos
tecnológicos, y es un claro ejemplo de este tipo de instituciones. Su homólogo
nacional es AENOR, Asociación Española de Normalización. Las normas
propuestas por la ISO, o por cualquier otra organización de características
similares, son recomendaciones, no disposiciones legales, es decir no poseen el
rango de Ley.
El Departamento de Defensa norteamericano (DoD), la Agencia Espacial
Europea (ESA), el Instituto de Ingenieros de Eléctrica y de Electrónica
Norteamericano (IEEE), la Agencia 9Espacial Norteamericana (NASA) son
instituciones, entre otras muchas, especialmente activas en la publicación de
normativas de gran impacto mundial.
Las empresas que siguen una determinada norma suelen querer demostrarlo
mediante el correspondiente certificado de la organización generadora del estándar,
y así evitarse gastos en demostrar que cumple las normativas en cada concurso al
que se presente o en cada propuesta a un posible nuevo cliente.
La certificación, inicialmente, sólo se hacía sobre el grado de cumplimiento de
un determinado producto industrial sobre una determinada norma técnica, y que,
por consiguiente, no era necesario comprobarlo a cada momento. La certificación
alcanzó tal difusión y prestigio que las empresas de servicio también quisieron
tener sus certificados, sobre todo el de calidad, ya que la sociedad actual demanda
fundamentalmente calidad. Pero en los servicios el producto es único e irrepetible,
ello es particularmente aplicable a la fabricación del software; un programa es
diferente a otro y una aplicación no tiene nada que ver con otra aplicación. Por lo
tanto lo que se certifica en estos casos no es el cumplimiento de la normativa por
parte del producto, sino que la empresa está organizada y sigue una metodología
que, con una alta probabilidad, dará lugar a un servicio (software) de calidad. Se
certifica, en definitiva, el método con el que la empresa desarrolla el producto final,
en este caso la aplicación informática.
La certificación más conocida es la asociada a la norma de calidad ISO 9001,
aunque existen otras certificaciones como la militar PECAL, para empresas que
desarrollan software para la OTAN, o la asociada al modelo CMM, que expide
Carnegie Mellon.
En España, la certificación más extendida es la asociada a la norma de calidad
ISO 9001 :2000.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 97
4.1. Definición
comprendido por todo el personal, ofrezca confianza a los clientes, sea eficaz y se
centre más en prevenir que en detectar y corregir errores.
O. Índice.
l . Presentación de la empresa.
1.1 Objeto y campo de aplicación.
1.2 Necesidades del cliente.
1.3 Desarrollo del producto.
1.4 Objetivos de la calidad.
2. Normas para consulta.
3. Definiciones.
7
A. Senllé y G. A. Stoll. Calidad total. ISO 9000. Las normaspara la calidad en lapractica. Ed. Gestión 2000.
Barcelona, 1994.
4. Política de calidad.
4.1 Responsabilidades delegadas.
4.1.1 Director de calidad.
4.1.2 Responsable de calidad de diseño.
4.1.3 Responsable de calidad de producción.
4.1.4. Responsable de calidad de servicios.
4.2 Canales de comunicación.
4.3 Amplitud de aplicación.
4.4 Documentación del sistema de calidad.
4.4.1 Registros de la calidad.
4.4.2 Explicación de los registros.
4.5 Procedimientos operativos.
4.6 Planes de calidad.
4.6.1 Planes de formación.
4.6.2 Plan de evaluación de proveedores.
4.6.3 Plan de evaluación del personal.
4.6.4 Plan de adquisición de recursos.
4.7 Auditorias del sistema de calidad.
4.7.1 Programa de auditorias.
4.7.2 Contenido e informe de las auditorias.
4.8 Revisión y evaluación del sistema.
4.9 Mejora de la calidad.
5. El desarrollo del producto.
5.1 Fase de recepción y estudio del pedido.
5.2 Fase de diseño.
5.3 Fase de producción.
5.4 Fase de pruebas.
5.5 Fase de instalación.
5.6 Garantías.
6. Consideraciones financieras.
6.1 Recursos humanos.
6.2 Recursos materiales.
6.3 Otros recursos.
8
IEEE. Estandarfor developing soffware lyfe cycleproceses. Std 1074. IEEE computer society. New York, 1991.
- Definir los aspectos relacionados con la financiación y viabilidad del
proyecto.
- Definir las metodologías, técnicas y herramientas s utilizar.
- Planificar la gestión del proyecto software.
Este plan es específico para cada proyecto, siguiendo las directrices del Manual
de Calidad y de sus Procedimientos y las normas requeridas por los clientes.
Siguiendo el estándar 7309 de la IEEE sobre planes de aseguramiento de la calidad
del software, el plan debe incluir:
9
IEEE. Std 730/1984. Standardfor software quality assuranceplans. IEEE. New York, 1984.
LA CALIDAD DEL SOFTWARE Y SU MEDlDA 103
p p p p p
lo IEEE. Std. 1074/1991. Standardfov developing sofhvare l f e cycleprocesses. IEEE Computer Society. New
York, 1991.
- Acomodación de la norma a las necesidades de las partes contratantes.
- Revisión del contrato para valorar la capacidad de satisfacer los requisitos
de calidad exigidos y sus implicaciones económicas.
- Requisitos técnicos claramente definidos en las especificaciones del
contrato.
I
exigencias de la certificación
No
A
1 Información
al solicitante
Manual de la calidad
procedimientos, otros
documentos aplicables
procedimientos, otros
documentos aplicables Información al solicitante
de la calidad
E3 Informe auditoria
8. LA FAMILIA DE NORMAS I S 0 9000
8.1. Antecedentes
Además de que el protocolo inicial obliga a realizar una revisión de las normas
cada cinco años, existen diversas razones provenientes del enfoque del Sistema de
Gestión de la Calidad definido por las normas ISO para realizar un cambio en las
normas.
A raíz de un conjunto de encuestas a distintas organizaciones se determinaron
las siguientes razones:
Liderazgo.
Enfoque a procesos.
Mejora continua.
En este punto es significativo apuntar que la norma que sustituirá a ISO 9000-
3:1997 aún no se ha liberado por lo que la aplicación a entornos propios del
desarrollo software se encuentra pendiente de adaptación, por lo que se centrará la
atención en la norma ISO 9000-3 al considerarse en esta norma y de forma expresa
aquellos conceptos estudiados en otras normas propias del desarrollo software. Se
introducirán, igualmente, conceptos propios de la norma publicada en el año 2000
con objeto de apreciar el concepto general de la misma.
Planificar
Ejecutar
Medir
Actuar
- El compromiso de la dirección.
- El enfoque al cliente.
- La política de calidad.
- La planificación.
- La administración.
- La revisión por la dirección.
- Suministro de recursos.
- Recursos humanos.
- Instalaciones.
- Entorno de trabajo.
- Planificación.
- Medición y seguimiento.
- Control de las no conformidades.
- Análisis de datos.
- Mejora.
Esta norma expone las recomendaciones para llevar a cabo la mejora del
sistema de gestión de la calidad y explicaciones adicionales con relación a los
requisitos de la norma ISO 9001:2000. No es una directriz para cumplir con la
9001, sino recomendaciones a la dirección de la organización para obtener mejoras.
Consta también de 8 partes.
- Responsabilidades generales.
- Necesidades y expectativas.
- Política de calidad.
- Planificación de la calidad.
- Administración.
- Comunicación.
- Documentación y registro.
- Revisión.
- Recursos de personal.
- Entornos de trabajo, tanto síquicos como físicos, adecuados.
- Recursos de información.
- Recursos financieros.
- Infraestructuras y recursos naturales.
- Suministradores.
- Relativa al cliente.
- Satisfacción del cliente.
- Auditoria interna.
- Financiera.
- Auto evaluación.
- Procesos.
- Productos.
- Partes interesadas.
- Propietarios.
- Suministradores.
- Sociedad.
- Medio ambiente.
- Introducción.
- Objeto y campo de actuación.
- Normas para la consulta.
- Términos y definiciones.
- Sistemas de gestión de la calidad.
- Responsabilidad de la dirección.
- Gestión de los recursos.
- Realización del producto.
- Medición, mejora y análisis.
"Se deben realizar verificaciones del diseño durante las fases apropiadas
del mismo (...). Se deben registrar las medidas de verificación del
diseño""
Para procesos:
Para productos:
" UNE-EN ISO 9000-3. Gestión de la Calidad y Aseguramiento de la Calidad. Parte 3: Directrices para la
aplicación de la Norma ISO 9001: 1994 al desarrollo, suministro, instalación y mantenimiento de soporte lógico.
AENOR. Madrid, 1998. Pág. 20
''Op cit pág. 34
l 3 UNE-EN ISO 9000-3 indica de forma expresa el concepto mantenibilidad. En traducciones realizadas por
nosotros se ha preferido hacer uso del texto "facilidad de mantenimiento".
Como en el estudio de otras normas, UNE-EN ISO 9000-3 aporta ejemplos sin
detallar el procedimiento de medida a utilizar apuntando al uso de técnicas
estadísticas.
El modelo propugna la medida de la calidad explicando este concepto desde el
punto de vista de la satisfacción del cliente.
Capítulo 4
1.1. Definiciones
'Robert H. Dunn. "Quality Assurance", Encyclopedia of Software Engineering, John Wiley & Sons, 1994. Pág.
945. La traducción es nuestra.
122 MODELOS, METODOLOGIAS Y ESTÁNDARES
Aportamos el concepto de industria clásica frente al de industria del software de igual manera que existen
evidentes diferencias y, al mismo tiempo, claros intentos de aproximación entre la ingenieria del software y las
ingenierías más tradicionales como la ingeniería del motor, aeronáutica, de componentes mecánicos, electrónicos
etc.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 123
Los cinco niveles de madurez del proceso software definen una escala ordinal
permitiendo la medida de la madurez de una organización. Los niveles de madurez
son:
Inicial
Repetible
Han sido establecidos procesos básicos de gestión del proyecto que permiten el
seguimiento de costes, planificación y funcionalidad. La necesaria disciplina del
proceso consiste en la experiencia acumulada en éxitos anteriores de proyectos con
similares características. Estas experiencias se convierten en la verdadera guía del
proyecto software. Desarrollos anteriores han podido ser documentados, medidos e
incluso mejorados, y el equipo de desarrollo ha sido entrenado en las mismas.
En este nivel se establecen políticas para la administración del proyecto
software y se implementan procedimientos que permitan aplicar dichas políticas.
De nuevo la planificación y administración de los nuevos desarrollos se basan en la
experiencia de proyectos anteriores.
Debido a que el éxito del desarrollo de aplicaciones se basa en gran medida en
experiencias anteriores, nuevos proyectos con requisitos muy diferentes de los ya
abordados implican un evidente riesgo para la organización.
El proceso software de Nivel 2 puede resumirse en un entorno disciplinado y
se encuentra bajo el control efectivo de un sistema de administración guiado por
planes realistas basados en el rendimiento de proyectos anteriores. En este segundo
Nivel la dirección enérgica para el cumplimiento de las pautas de desarrollo
establecidas sigue siendo un factor fundamental de éxito.
El proceso software para las actividades de dirección e ingeniería está
documentado, estandarizado e integrado en el proceso global de creación,
mantenimiento y administración del software de la organización. Se hacen uso de
prácticas propias de la ingeniería del software, los proyectos se adaptan a los
estándares establecidos y permiten un conocimiento de la situación y progreso del
mismo, las versiones de programas y aplicaciones son controladas y su puesta en
explotación es verificada y aprobada adecuadamente.
La existencia de mecanismos de verificación, estándares, así como entradas y
salidas, permite establecer un proceso definido, apoyo básico de administradores y
guía del personal a su cargo. Debido a la existencia de procesos bien delimitados es
posible controlar el progreso de los proyectos y actuar en consecuencia
permitiendo variaciones en los mismos si fuera necesario frente a la constatación
de desviaciones que pudieran dar origen a retrasos en la entrega del producto o
falta de calidad en los mismos.
El proceso software de Nivel 3 puede ser resumido como estándar y consistente.
El trabajo de administradores, ingenieros de software se rigen por procedimiento
establecidos y modelos determinados que permiten que éstos sean repetibles y
estables. Dentro de líneas de producto establecidas, coste, funcionalidad y agendas
están bajo control y la calidad del software es seguida.
Gestionado
Optimizado
1 Nivel 5 1
Procesos de mejora
continua
I Organización
madura
estandarizados
Organización
Nivel 2
Objetivo: Clarificar requisitos.
Área Clave: Gestión de requisitos (RM).
Objetivo: Documentar los planes.
Área Clave: Gestión de proyectos (SPP).
Objetivo: Recoger medidas de progreso.
Área Clave: Seguimiento y control de proyectos (PTO).
Área Clave: Aseguramiento de la calidad (SQA).
Objetivo: Control de productos.
Área Clave: Gestión de configuración (SCM).
Área Clave: Gestión de subcontratación (SSM).
Nivel 3
Objetivo: Identificar el proceso.
Arrea Clave: Establecimiento del proceso de la organización
(OPF).
Área Clave: Definición del proceso de la organización (OPD).
Área Clave: Gestión integrada del software (ISM).
Área Clave: Ingeniería del producto software (SPE).
Objetivo: Fomentar el trabajo en equipo.
Área Clave: Coordinación entre grupos (IC).
Área Clave: Programa de formación (TP).
Objetivo: Reducir defectos.
Área Clave: Revisión entre iguales (PR).
Nivel 4
Objetivo: Definir metas.
Área Clave: Gestión de la calidad del software (SQM).
Objetivo: Gestionar el progreso.
Área Clave: Gestión cuantitativa del proceso (QPM).
Nivel 5
Objetivo: Optimizar el rendimiento.
Área Clave: Prevención de defectos (DP).
Área Clave: Gestión del cambio de procesos (PCM).
Objetivo: Adoptar nuevas tecnologías.
Área Clave: Gestión del cambio tecnología aplicada (TCM).
Actividades
Compromiso
Describe las acciones que la organización debe lleva a cabo para asegurar que
se ha consolidado un proceso y es duradero. Suele afectar a las políticas de la
organización y al patrocinio de la alta dirección.
Capacidad
Medidas y análisis
Describe los pasos a seguir para asegurar que las actividades se llevan a cabo de
acuerdo con el proceso establecido. Implica al grupo de aseguramiento de la
calidad.
Observando las áreas clave de cada nivel es evidente que existen algunas
directamente relacionadas con el objeto de este libro. En concreto las áreas claves
identificadas como "garantía de calidad del software" y en especial las áreas clave
del Nivel 4, "gestión de calidad y medidas" y "análisis del proceso" son las áreas
en las que centraremos nuestro estudio.
En las "características comunes", antes comentadas, son destacables las
denominadas "medición y análisis". En éstas, de forma expresa, se indica la
necesidad de medir el proceso software y utilizar dichos datos cuantitativos en los
correspondientes análisis.
El propósito del "aseguramiento de la calidad del software", propio del Nivel 2,
es proporcionar a la dirección la adecuada visibilidad del proceso utilizado en el
proyecto software y de los productos que se están construyendo. Los objetivos se
centran en planificación de las actividades propias del aseguramiento del software,
la verificación de la adhesión de los productos y actividades a estándares,
procedimientos y requisitos aplicables y la información al equipo de trabajo. De
forma expresa no se define la calidad del software y en cuanto a la práctica propia
de la medida y análisis, ésta se centra en la medición de costes y calendario de
ejecución del proyecto. Las medidas que se proponen en este modelo son las
siguientes:
132 MODELOS. METODOLOGIAS Y ESTÁNDARES
3
SEI. Capability Maturity Model for Software, Versión 1.l, TR. Software Engineering. Institute-Camegie Mellon
Universitiy. 1993. Pág. 5. La traducción es nuestra.
SEI. Op. Cit. Pág. 36. La traducción es nuestra.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 133
o Funcionalidad.
o Fiabilidad.
o Facilidad de uso.
o Facilidad de mantenimiento.
5
SEI. Op. Cit. Pág. 36. La traducción es nuestra.
3. MODELO BOOTSTRAP
"El proyecto BOOTSTRAP debía fertilizar los campos para introducir moderna
tecnología del software en las empresas. Ésta se haría a través de un análisis del
estado actual de la industria de la ingeniería del software identificando los cambios
potenciales y motivaciones que permitieran aceptar nuevos contextos para la
ingeniería del software"
Madurez BOOTSTRAP
Tecnología
Innovación tecnológica
Sistema de Calidad Funciones para el ciclo de vida
Administración de los Funciones independientes del
recursos ciclo de vida
Metodología
--
Funciones de Procesos
Descripción de procesos Funciones de Desarrollo
Funciones de Administración Medida de los procesos Modelo de desarrollo
Administración de configuración Control de los procesos Requisitos, análisis y definición
y cambio Diseño de la arquitectura
Administración de riesgos Implementación y diseño
Administración de proyectos detallado
Administración de la calidad Prueba
Administración de subcontratistas Operatoria y mantenimiento
Sistemas de propósitos especiales
Desde el nacimiento del proyecto SPICE hasta nuestros días una serie de hitos
se han sucedido en el proceso de creación de la nueva norma. El largo camino
recorrido por ésta nos da cuenta del cuidadoso estudio que requiere la creación de
un modelo de estas características.
En el bienio 1993-1995 el borrador del producto fue desarrollado y se realizaron
las primeras pruebas de campo. En el verano de 1996 se reflejaron diferentes
cambios en la norma para ajustarla a los datos recogidos en las pruebas efectuadas.
En octubre de ese mismo año se celebró un encuentro en Méjico del grupo de
trabajo número 10 (WG10) en el que la comunidad internacional, por primera vez,
pudo conocer las partes que definen el modelo. A mitad de noviembre de 1996 se
entregó a la secretaría del comité SC7 las nueve partes de documento comenzando
el período de votaciones. En la actualidad el proyecto ha alcanzado el llamado
estado 90.92, es decir se encuentra en fase de revisión. La norma ISO/IEC 15504
ha rebasado, por tanto, el estado del borrador DTR (Draft Technical Report) y
también la votación de los miembros del comité JTC1. En los años sucesivos a la
publicación de informe técnico éste se encuentra sujeto a estas revisiones por parte
del ya nombrado comité JTC1. El objeto de este período es reexaminar la situación
del informe técnico publicado y, si es posible, alcanzar el acuerdo internacional
necesario para la publicación de un estándar internacional que reemplace al
mismo.
y guía indicadora
Soporte
SUP. 1 Documentación
MAN. 2 Admir SUP.2 Administración de la
configuración
SUP. 3 Aseguramiento de la
calidad
SUP. 4 Verificación
SUP. 5 Validación
SUP. 6 Revisión
SUP. 7 auditoria
RG. i Orien SUP. 8 Resolución de
-..,.""'- problemas
1 delprocesc
el proceso
nrnrern
Incompleto
Realizado
El propósito del proceso es generalmente alcanzado. Este éxito no tiene por qué
haber sido rigurosamente planificado ni seguido.
144 MODELOS, METODOLOGIAS Y ESTÁNDARES
Gestionado
Establecido
Predecible
Optimizado
Niveles y atributos
Nivel O Proceso Incompleto
Nivel 1 Proceso Realizado
Procesos propios del Ciclo de Vida Rendimiento del uroceso
Cliente K I \ F I2 P r o c e s c ~ . ~ \ d r n ~ n ~ ~ ~ r ' d d ~ ~
Adquisicion. Suministro, Operdcion Admini\iraiii>n del Kcndimitnto
Requisitos Administración del Trabajo del
Inoenieria Producto
Deiarrollo,Mantenimiento Nivel 3. Proceso establecido
Sum~nistrador Definición del Proceso
Documentacion, Adminstracion de Recursos del Proceso
~ o n f i g u r d ~ i oaseguramiento
n, de la calidad, Nivel 4 Proceso Predecible
vrrificdcion, validacion, revision, auditoria, Medida del Proceso
resoluc~onde problemas Control del Proceso
Administracion Nivel S Proceso Optimizado
Administracion, proyecto, cali+d y riesgos Cambio del Proceso
Organizac~m Mejora Continua
Oricntac~on,mejora, recursos humanos.
infraestmctura, medida y reuso
,
1 Nivel 1
Atri. Proc.: Rendimiento del Proceso (51%-100%)
Nivel 2
'ISO/IEC TR 15504-2. Information technology -Software process assessment - Parti2 A reference modelfor
processes andprocess capability. ISOIIEC. Suiza, 1998. Pág. 19.
' ISO/IEC TR 15504-2. Information technology -Software process assessment - Part:2 A reference model for
processes andprocess capability. ISOIIEC. Suiza, 1998. Pág. 20.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 147
ISO/IEC TR 15504-2. Information technology -Sofhoare process assessment - Part:2 A reference model for
processes andprocess capability. ISOIIEC. Suiza, 1998. Pág. 23.
enero de 2001 y la consideración de las aportaciones recopiladas en esos siete
meses.
Para la elaboración de MÉTRICA V.3 se han considerado métodos
(EUROMETODO, SSADM V4, MAGERIT, Information Engineering), normativa
intet-nacional (ISO 12.207, ISOIIEC TR 15504/SPICE, UNE-EN ISO 9001 :2000,
IEEE 610.12- 1.990) y se han tenido en cuenta diferentes tecnologías propias de la
informática y las comunicaciones (clientelservidor, orientado a objeto, reutilización
y bases de datos, entre otras).
La elaboración de MÉTRICA se basa en la participación de diferentes actores
relevantes en la ejecución de proyectos informáticos. En concreto los intervinientes
en la última versión han sido:
conviviendo y los aspectos de gestión que aseguran que un proyecto cumple sus
objetivos en términos de calidad y coste."
EVS 1,
EVS 2, Situación actual
EVS 3, Catálogo de Análisis del
EVS 4, Requisitos Sistema de
EVS 5, y Objetivos Información
EVS 6. Alternativas
de Solución
Solucinn Pronuesta
1. MODELOS CONCEPTUALES
1.1. Definiciones
Olivé define el modelo conceptual como "la búsqueda y definición formal del
conocimiento general sobre un dominio que un sistema de información (SI)
necesita conocer para llevar a cabo las funciones requeridas."2
Como siempre que se habla de calidad, hay que distinguir entre la calidad del
producto y la calidad del proceso realizado para conseguirlo. En este caso, la
calidad del producto se relaciona con las características del modelo conceptual y la
calidad del proceso con la manera en que se desarrollan los modelos conceptuales.
Algunos autores, como Batíni y Gregori entre otros, identifican la calidad de
los modelos con una lista de las propiedades ideales que deben tener los modelos
de datos (tabla 5.1). Estas listas pueden servir para mejorar la calidad de los
modelos, pero, en general, no son estructuradas, las definiciones no son precisas,
solapándose entre sí, presentan objetivos no realistas, presuponen la existencia de
diseño/implementación y otros defectos.
1 Boman et a1 (1997)
Facilidad de compresión, corrección
semántica, estabilidad, compleción
conceptual.
Por ello, otros autores, como Moody, Kesh, Piattini, etc., estudian la calidad
definiendo marcos de referencia para estructurar y organizar los conceptos claves y
las características en el modelado conceptual de los datos. En general, estos
marcos, al definir sólo propiedades deseables y carecer de medidas cuantitativas,
no permiten medir eficazmente la calidad del producto obtenido.
Para evitar los sesgos en el proceso de evaluación de la calidad, ~ o o d ~ ~
propuso en 1998 que era necesario contar con medidas objetivas y cuantitativas
para evaluar la calidad de los modelos conceptuales.
En los siguientes apartados se presentan algunas de las propuestas que sobre
métricas de calidad de los modelos conceptuales han aparecido en los últimos años.
1" Cálculo del valor de cada uno de los componentes ontológicos. Se calcula
individualmente el valor de los componentes estructurales (las relaciones entre los
elementos que forman el modelo: adecuación al problema: 01, validez, 02,
consistencia, 03, y concisión, 04) y de los componentes de contenido (los atributos
de las entidades: completitud, os, cohesión, 06, y validez, 07).
2" Cálculo de los valores de los componentes de comportamiento. Este cálculo
se hace a partir de los valores de los componentes ontológicos relevantes para cada
uno de los componentes de comportamiento. Los componentes de comportamiento
a tener en cuenta son: facilidad de uso desde el punto de vista del usuario, S I ,
usabilidad desde el punto de vista del diseñador, s2, facilidad de mantenimiento, s3,
precisión, s4 y rendimiento, SS.
3" Cálculo de la calidad del modelo Esta cálculo se hace a partir de los valores
de los componentes de comportamiento de acuerdo con la fórmula:
' D. Moody, G. Shanks y P. Darke. Improving the Quality ofEntiQ Relatioship Models-Experience in Research
and Practice. Proceeding of 17'~.Intemational Conference on Conceptual Modelling. Singapur, 1998.
S. Kesh. Evaluating the quality ofentity relationship models. Information and Software Technology,vol. 37 no
12. 1995.
156 MÉTRICAS PARA MODELOS CONCEPTUALES
Los valores de los factores ontológicos son, en algunos casos, estimados por
los usuarios y, en otros, calculados mediante fórmulas ad hoc. Los procedimientos
son los siguientes:
Compleción
Integridad
5
D. Moody. Metrics for evaluating the quality of entity relationship models. Proceedings of
the 1 7 ' ~International Conference on Conceptual Modelling. Singapur, 1998.
158 MÉTRICAS PARA MODELOS CONCEPTUALES
Flexibilidad
Corrección
Simplicidad
- Número de entidades.
- Número de entidades y relaciones.
- Número de constructores.
Integración
Implementabilidad
Comprensibilidad
De ellas, son métricas de tamaño las NE, NA, NCA, NDA y NMVA, y de
complejidad el resto.
Estas métricas del modelo ER son objetivas y han sido validadas teóricamente
por Genero, siguiendo la teoría de Zuse, y empíricamente mediante un caso de
estudio y dos experimentos controlados.
Brito y Carapuqa presentaron las métricas MOOD para medir algunos de los
principales mecanismos de los modelos orientados a objetos (encapsulamiento,
F. Brito e Abreu y W. Melo. Evaluating the impact ofobject-oriented design on Sofrware Quality. Proceedings of
3rdlntemational Metric Symposium, 1996.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 161
Esta métrica presenta medidas objetivas para la complejidad de las clases y han
sido validadas teóricamente por los autores al corroborar que satisfacen los
axiomas de weyuker9. La validación empírica fue realizada por Basil y sus
colaborado re^'^, que encontraron que la posibilidad de encontrar un fallo es
directamente proporcional al valor de DIT e inversamente al del NOC.
9.
Chindamber y C. Kemerer A metric suite for object oriented Desing. IEEE Transactions on Software
Engineering ,20 (6), 1994.
E. Weyuker. Evaluating software c o m p l e x i ~measures. IEEE Transaction Software Engineering, vol. 14, núm. 9,
1988.
l o V. Basili, L. Briand y W. Melo. A validation of Object-Oriented Desing Metrics as Quality Indicators. IEEE
Métricas de tamaño
Métricas de herencia
enero'^ y otros
propusieron en el año 2000 un conjunto de métricas para la
medida de la complejidad estructural de los modelos de clase debido al uso de
relaciones UML. Se clasifican en: métricas a nivel de modelo de clases y métricas
a nivel de clase.
l 2 M- Genero, M. Piattini y C. Calero. An approach to evaluate the complexifv ofconceprual database models. 2"d
European Software Measurement Conference. Madrid. 2000.
M. Genero. Defining and validating metrics for conceptual models. Tesis doctoral. Universidad de Castilla-La
Mancha, 2002.
NaggH La métrica Número de Jerarquías de Agregación es el número total
de jerarquías de agregación dentro de un modelo de clases.
MmDIT La métrica Máximo DZT se define como el máximo de los valores
DIT obtenidos de cada clase del modelo de clases. El valor DIT es
la longitud de la ruta más larga desde la clase a la clase raíz de la
jerarquía de generalización.
MaxHAgg La métrica Máximo HAgg es el máximo de los valores Hagg de
cada clase del modelo de clases. El valor HAgg, dentro de la
jerarquía de agregación, es la longitud de la ruta más larga desde la
clase hasta las hojas.
La técnica del análisis del Punto Función fue ideada por Allan Albrecht,
especialista de la firma IBM, a finales de los años setenta. Diseñó este proceso de
I
Cliff Jones. Actas de las conferencias auspiciadas por la OTAN, Conference-London to analyze the Furure
Direcrion ofSofhyare. Abril 1993. Disponible en http:l/www.comlab.ox.ac.uWarchive. La traducción es nuestra.
Cliff Jones es profesor de la universidad de Manchester experto en metodologias y procesos de desarrollo del
software.
166 EL ANÁLISIS DEL PUNTO FUNCIÓN
Nuestra experiencia con el uso del APF nos indica que la medida alcanzada al
utilizar este método depende de forma dramática de la experiencia del técnico que
evalúa la aplicación, más aún, la medida de una aplicación, realizada por un mismo
técnico varía sustancialmente si ésta es ejecutada cuando la aplicación posee un
nivel de detalle distinto en su documentación. Una aplicación correctamente
documentada implica una mejor y más fácil medida que otra aplicación con
deficiencias en su documentación. El análisis del Punto Función requiere un nivel
de disciplina elevado e incluso procesos de retroalimentación que disminuyen
considerablemente la dispersión de los datos obtenidos. Conocer los problemas
asociados a esta herramienta de medida nos permite minimizar los errores.
Proponemos el uso del APF combinadas con estrategias de revisiones peer to peer.
Uno de los resultados inmediatos de adoptar este tipo de revisiones es la obtención
de'datos más objetivos. Generalmente la información acumulada por una empresa
u organización en la medida de Puntos Función alimenta bases de datos de carácter
corporativo que son utilizadas como repositorios de información que permiten
mejorar los niveles de exactitud en las previsiones de nuevos proyectos. Es muy
habitual el uso de este tipo de estrategias para cuantificar el esfuerzo a realizar para
la ejecución de un nuevo proyecto. Los datos tienen difícil utilidad en otras
empresas pero son sumamente útiles si la organización que acomete este trabajo
insiste en el uso de esta medida y acumula datos históricos.
El análisis del Punto Función es muy utilizado en ecuaciones, como la densidad
de defectos, al sustituir las líneas de código por el número de Puntos Función en la
cuantificación del tamaño de la aplicación informática.
2.2. Identificar los límites en los que se aplicará el conteo de los Puntos
Función
Identificar los límites en los que se aplicará el conteo de los Puntos Función
significa determinar el borde entre el proyecto o aplicación que está siendo medido
y aplicaciones externas o el dominio del usuario.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 169
Este paso requiere la colaboración del usuario final. Consideramos muy útil
para la ejecución de este segundo punto la realización de reuniones con el
responsable funcional o usuario responsable de la aplicación a medir. El punto de
vista por él aportado, unido a la información recabada del equipo de desarrollo,
sistemas e incluso gestor de la base de datos nos permite obtener el conocimiento
necesario para determinar adecuadamente los límites de la aplicación.
El análisis del Punto Función propone una serie de conceptos asociados a los
datos y a las transacciones. Los Tipos de Función de Datos representan la
funcionalidad proporcionada al usuario final que permite dar respuesta a los
requisitos asociados a los datos tanto internos como externos. Los Tipos de
Función de Datos son los Ficheros Lógicos Internos y los Ficheros de Interfaz
Externos. Cuantifiquemos cada uno de ellos.
Afirmativo/Negativo.
o Fichero de Interfaz Externo
Regla 1.
Contabilizar un TED por cada campo no recurrente, único y reconocible para el
usuario en un FLI o FIE.
Regla 2.
Contar un TED por cada campo en un FLI o FIE que existe porque el usuario
requiere que se mantenga una relación con otro FLI. Es lo que se denomina como
clave externa.
Regla 3.
Considerar las siguientes técnicas de implementación como un simple TED,
para el grupo de campos considerado.
- Campos que aparecen más de una vez en un FLI o FIE por razones
tecnológicas o técnicas de implementación.
- Campos repetidos que son idénticos en su formato y existen para permitir
múltiples ocurrencias de un dato.
...
Este proceso permite medir la complejidad según una escala ordinal de tres
puntos.
174 EL ANALISIS DEL PUNTO FUNCIÓN
- Para el sistema el
proceso lógico es único
en relación a otras
Entradas Externas.
- Para el sistema los
elementos de datos
identificados son
diferentes en relación a
otras Entradas Externas.
* El concepto autocontenido proviene del entorno en el que se ideó el método APF y es equivalente al de
transacción, entendida ésta como interacción con el sistema que permite asegurar la coherencia del sistema
después de la finalización correcta o no de dicha transacción.
Afirmativo/Negativo
recibida desde fuera de la aplicación.
- Para el sistema, el
procesamiento lógico es
único en relación con otras
Entradas Externas.
- Para el sistema, los
elementos de datos
identificados son diferentes
en relación con otras
Una salida externa (SE) se define como un proceso elemental que genera datos
o información de control y son enviados fuera de los límites de la aplicación.
Para identificar las Salidas Externas se han de buscar procesos elementales que
se encuentren dentro de la definición propuesta. Las transacciones aspirantes se
someten, entonces, a un cuestionario. Sólo cuando todas las preguntas tienen
respuesta afirmativa podemos resolver que las transacciones estudiadas son SE.
Desde un punto de vista práctico la identificación de SE ha resumido en una
tabla dividida en tres columnas: procesos propuestos, preguntas tipo, respuestas y
un breve comentario (ver tabla 6.9).
178 EL ANALISIS DEL PUNTO FUNCION
AfirmativoMegativo
l
Regla 8 Para identificar el proceso una de
estas dos reglas debe ser aplicada:
- Para el sistema el
procesamiento lógico en la
entrada o salida es Único
desde el punto de vista de
otras Cuestiones Externas.
- Para el sistema los
elementos de datos en la
entrada o salida son
diferentes a otras Cuestiones
?
Externas en la aplicación.
'LI.
ei usuaric
recurren1
Regla 1. Contar un TFR por cada FLI o FIE leído durante el procesamiento de
una salida externa.
coi
S
pro
Fichero "A"
Fichero "B"
iReco
el usu
gas Externia
recuri
Para la Entrada.
Regla 1. Considerar un TFR por cada FLI o FIE leído durante el procesamiento
de la Cuestión Externa.
Para la Salida.
rternas
Para la entrada
Una vez identificados para cada transacción los tipos de ficheros referidos y
tipos de elementos de datos podemos establecer el nivel de complejidad. Para ello
se hace uso de las siguientes tablas.
Complejidad baja
Complejidad media
15
UFC = (Número de items de var iedad i) x ( p e s q) Ecuación 6.7
i=I
Desde un punto de vista práctico el cálculo de los Puntos Función sin ajustar se
determina obteniendo tablas tales como 6.21 y 6.22. Los datos incluidos en las
tablas son a título de ejemplo.
186 EL ANALISIS DEL PUNTO FWCIÓN
po de
nción inción
Tabla 6.21. Cálculo de los Puntos Función sin ajustar para Ficheros Lógicos.
. --- .
Función idos
X3 = o
Medio X4= O
X6= 36
Medio X5= O
X7= 42
X3= 27
1 Medio X4= 4
X6= O
Tabla 6.22.Ejemplo del cálculo de los Puntos Función sin ajustar para
transacciones.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 187
En este caso los Puntos Función sin ajustar se determinarían sumando los
factores indicados en la última columna de las tablas asociadas a transacciones y
ficheros:
a. Evaluar las 14 Características Generales del Sistema sobre una escala de valor
mínimo "0" y valor máximo "5". Esta estimación se ha de basar en la
influencia de cada una de las 14 características sobre el sisterría medido.
b. Determinar el grado de influencia total (TID), sumando el grado de influencia
de cada una de las características evaluadas.
c. Aplicar la ecuación :
1. Comunicaciones.
2. Procesamiento distribuido de datos.
3. Rendimiento.
4. Uso elevado de la configuración.
5. Índice de transacciones.
6. Entrada de datos en-línea.
7. Eficiencia y usuario final.
8. Actualización en-línea.
9. Procesamiento complejo.
10. Reutilización.
1 1. Fácil instalación.
12. Fácil operación.
13. Múltiples sitios.
14. Facilidad de cambio.
El cálculo del factor de ajuste es criticado por ser uno de los componentes más
subjetivos del Análisis del Punto Función.
Donde:
donde:
En este punto se establecen las fórmulas para el cálculo de los Puntos Función
para aplicaciones. Existen dos variantes a esta fórmula.
Fórmula para establecer los Puntos Función iniciales de la aplicación.
Fórmula para restablecer los Puntos Función para una aplicación tras una
mejora que implica un cambio en la funcionalidad de ésta.
La fórmula que establece el valor inicial de los Puntos Función para una
aplicación es:
donde:
Donde:
Identificar FIE
Leyenda
Se aconseja participación del responsable
funcional.
'Juan Izquierdo. "La calidad del software asignatura pendiente en España". Computenvorld, 7-13 septiembre de
2001.
194 LA NORMA ISOIIEC 9126
Factores de calidad
Criterios de calidad
la experiencia del responsable de la calidad del software y la relación que debe establecer
entre medidas a realizar y criterios de calidad.
Modelo de McCall
Corrección
¿Hace el programa lo que quiero?
Fiabilidad
¿Lo hace de forma exacta todo el tiempo?
Eficiencia
¿Se ejecutará sobre el soporte físico de forma
óptima?
Facilidad de uso
i,Puedo utilizarlo?
Figura 7.2. Modelo clásico de calidad del software propuesto por McCall.
Respuesta: S í N o
Preguntas
R D I
1 ¿Hay referencias ambiguas?
2 ¿Todas las funciones definidas son utilizadas?
(-1
Figura 7.3. Pregunta tipo de una lista de comprobación para criterios de calidad.
Las medidas propuestas pueden ser modificadas según el criterio del técnico. Es
muy habitual el uso de la medida de la fiabilidad considerando el número de
errores por el tamaño de la aplicación contabilizados según el número de puntos
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 199
Modelo de Boehm
Independencia
Como nota es interesante destacar la dificultad de traducción de algunos términos ingleses al español. En
muchos casos asistimos a traducciones casi literales de los términos anglosajones. En nuestro caso entendemos
más adecuado el realizar traducciones más libres pero con un significado que entendemos más útil y descriptivo
del vocablo inglés.
IS0.9126 Information technology - Software product evaluation - Quality characteristics and guidelines for
their use. Suiza, 1991. Pág. iv. La traducción es nuestra.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 20 1
Medida de la
Calidad de uso -b calidad de uso
La calidad de uso es definida por la norma como "la capacidad del software que
posibilita la obtención de objetivos específicos con efectividad, productividad,
satisfacción y seguridad".
Es interesante observar como la norma ISOIIEC 9126 aborda el conocimiento
de la calidad dividiéndolo en calidad interna o externa de forma similar a como se
propone por Fenton y que ya explicamos en el capítulo 2. En este caso los
conceptos de atributos internos y externos son menos definidos en la norma que en
la aproximación de Fenton y no coinciden en su totalidad con esta teoría, sin
embargo se observa una aproximación similar al problema considerando diferentes
"niveles" en la calidad que se influyen entre sí.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 203
Calidad
de uso
Eficacia. Capacidad del software para permitir a los usuarios alcanzar objetivos
específicos con precisión y completamente en un contexto específico de uso.
Productividad. Capacidad del producto software para permitir a los usuarios
emplear recursos apropiados con relación a la eficacia alcanzada en un contexto
específico de uso.
Seguridad. La capacidad del producto software para alcanzar niveles aceptables
de riesgo hacia la gente, negocio, software, propiedad o medio ambiente, en un
contexto específico de uso.
Satisfacción. La capacidad del producto software para satisfacer al usuario en
un contexto específico de uso.
La norma ISOIIEC define las métricas internas como aquellas medidas que se
realizan sobre un producto software no ejecutable, tal como la norma indica "un
producto software intermedio debería ser evaluado usando métricas internas".
Las métricas externas son medidas del producto software obtenidas del
comportamiento del sistema en la fase de ejecución del mismo. Finalmente las
métricas de la calidad de uso, como tercer gran concepto propuesto por la norma,
mide la extensión en la que un producto alcanza las necesidades expuestas por el
usuario de forma específica en relación a los objetivos de efectividad, seguridad,
productividad y satisfacción.
Subcaracterística
Característica
Se han de definir en esta fase las escalas propias de las medidas a realizar. Las
escalas han de ser divididas en rangos de acuerdo a niveles de satisfacción de los
requisitos. Se suele elegir una escala 1-10 con objeto de adecuar la evaluación a la
medida utilizada en la práctica común de métodos de evaluación habituales.
METRICA Versión .3
Se apoya en
Definición de requisitos
Selección de métricas
ISO 9126
Métricas
J Obtiene
m Medida
METRICA V 3.0
EVS-CAL 1.3
1 de Calidad
Tabla 7.2. Tareas asociadas a la actividad EVS-CAL1.
Es fácil identificar la tarea EVS-CAL 1.3 como aquella que nos permitirá
completar el primer punto del procedimiento de medida. La tarea EVS-CAL 1.3
será el resultado de las reuniones de trabajo realizadas por el jefe del proyecto y el
equipo de aseguramiento de la calidad, y como producto de esta tarea se
identificarán las propiedades de calidad del software. En este caso se ha
considerado la fiabilidad como la propiedad a evaluar. Es evidente que pueden
identificarse cuantas propiedades se consideren y que el equipo de trabajo detecte.
Cada una de las propiedades deberá sufrir un proceso similar al que seguiremos
con el propuesto para el de fiabilidad con objeto de obtener su cuantificación, su
medida. Es muy importante que los resultados de los equipos de trabajo sean
recogidos por escrito en un acta de reunión o cualquier otro medio que permita
identificar claramente el asenso conseguido y la responsabilidad asumida en la
misma por todos los componentes del equipo. Es demasiado habitual las
modificaciones de requisitos de todo tipo a lo largo del desarrollo de un programa
informático, este hecho es sumamente importante ya que implica la modificación
de todo el proceso de creación del software y afecta a todo el proyecto. La
concreción de criterios de calidad debe ser una exigencia para el equipo de
desarrollo y deben ser capturados con máximo rigor al inicio del proyecto evitando
posibles modificaciones futuras que se convierten en una seria amenaza a la
planificación establecida. Es imprescindible involucrar al usuario y considerar su
"punto de vista" ya que no debemos olvidar que el producto software, como
cualquier otro producto comercial, debe tener como fin dar respuesta a los
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 213
o Selección de métricas.
O Tasar.
o Valoración del criterio.
METRICA V 3.0
Se apoya en
Selecciona
m Métricas
4.2.2. Tasar
.. . . . . . . . . . . . . . . . . . .. .. .. .
. . . . . . . . . . . . .
4 . .. . .. . .. . .. . ... ... ....................
. . . . . . . . . . . . . . . . . . . .. .. .. .
. . . .. .. .. .. .. .. .. .. .. . . . .
....... . . . . . . . .....
. . ..~atiSfactorio.. . .
. ... ... ... ... ... ... ... ... ... ... ... ... ..
. . . . . . . . . . . . . . . . . . .. .. .. ..
Muy . . . . . . . . . . . . .
Insatisfactorio . ... ... ... ... ... ... .. . .. . .. . .. . .. . .. . ..
. . . . . .. .. .. .. .. .. .. .. .. .. . Insatisfactorio
. .. .. .. .. .. .. .. .. .. .. .. .. .
. . . . . . . . . . . . . . . . . . . .. .. .. .
. . . . .. .. .. .. .. .. .. .. .. .. ..
. . . . . . . . . . . . . .. .. .. .. .. .. .
. . . . . . . . . .
b
0,5 1,o
Densidad de defectos
1190,984 = 0,011
10190,984 = 0,110
Con las siguientes unidades:
' Marta D'Amore Benito. Ingeniero de Telecomunicaciones por la UPM, especiiista en Calidad del Software.
¿Para qué las métrica? Boletín Interno Tecnológico de Indra. Madrid.
222 MÉTRICAS DEL SOFTWARE
Tamaño
Productividad = Ecuación 8.1
Esfuerzo
Líneas de código
Productividad = Ecuación 8.2
Personas - mes
Por otro lado, las medidas más habituales utilizadas para cuantificar el tamaño
de una aplicación informática son:
Líneas de código
La productividad es un atributo externo de los recursos, en concreto del recurso personal [Fenton y
Pfleeger, 19971.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 223
Hacer uso de esta medida requiere la definición de lo que entendemos por línea
de código. De esta forma superaremos algunas ambigüedades respondiendo a
varias preguntas anteriores. Una Iínea de código se define como: Cualquier línea
de texto del programa excluyendo comentarios y líneas en blanco.
En muchos casos es interesante considerar también el número de líneas de
comentarios que posee un programa ya que, aunque no son comandos necesarios
para la ejecución del mismo, sí son una fuente de información muy útil que pueden
influir en las posteriores modificaciones o en el mantenimiento de dicho programa.
Así las líneas de código sin considerar los comentarios se especificarán como
NLOC, y aquellas que consideren los comentarios se definen como CLOC. El
número de líneas totales sería:
node cavácteres
LOC = Ecuación 8.5
a
Tokens
Funcionalidad
Reusabilidad
Es muy habitual que los programadores hagan uso más de una vez de programas
o parte de éstos, modificándolos o simplemente reutilizándolos sin llegar a
modificarlos. Esta práctica ha de influir en la medida del tamaño del código, es
considerado por algunos modelos.
La reusabilidad posee dos acepciones que convienen diferenciar. Por un lado
encontramos el código desarrollado de forma externa al programa que se está
implementando y que Fenton definió como reuso público. Es evidente que para la
medida del programa en su conjunto se podría elegir alguna de las opciones
comentadas en este apartado tal y como se hubiera realizado con otros programas
íntegramente desarrollados por el equipo habitual de programadores. Por otro lado
se definiría el reuso privado entendido como módulos reutilizados dentro del
mismo producto. Es en este último caso donde se puede aplicar ciertas técnicas y
ecuaciones que permitan una mejor aproximación al tamaño real de nuestro
programa ya que no puede medirse de forma similar un código desarrollado desde
cero que otro adaptado o simplemente utilizado más de una vez.
El modelo de Boehm, COCOMO tiene en cuenta el hecho de la reusabilidad,
según la ecuación:
a
S , = S , +-S, Ecuación 8.6
1 O0
S, = S, + S ,k Ecuación 8.8
Hombre-Mes
Tamaño de salida
Ecuación 8.9
Personas - mes
Haciendo la sustitución del numerador por cualquiera de las medidas del
tamaño del software propuestas en el apartado anterior se obtendría la
productividad de un programador o del equipo de desarrollo. La productividad es
la medida de un atributo externo propio de un recurso. Se habla de la productividad
(atributo externo) del equipo de desarrolladores (recurso) al realizar el desarrollo
de cierto programa (producto). Se valora al equipo de profesionales no al proceso
de desarrollo.
Pero la medida hombre-mes tiene muchos problemas. Según Brooks, "El
Hombre-Mes, como unidad para medir la magnitud de un trabajo, es un mito
peligroso y equivoco. Implica que los hombres y los meses son intercambiables.
Los hombres y los meses son bienes intercambiables sólo cuando una tarea puede
repartirse entre varios empleados sin que sea necesaria una comunicación entre
ellos. El coste varía, de hecho, como el producto del número de personas y el
número de meses. El avance, no".
En las tareas que pueden repartirse y que además requieren una comunicación
entre subáreas, debe añadirse al total del trabajo a realizar el esfuerzo de
comunicación.
La frontera de comunicación que se ha añadido, se compone de dos partes: la
formación y la intercomunicación.
La formación de los trabajadores incluye la tecnología, los objetivos del trabajo,
la estrategia general y el plan de trabajo. Este esfuerzo varia linealmente con el
número de trabajadores.
El esfuerzo de intercomunicación incluye la coordinación de tareas, las
reuniones de resolución de problemas, etc..
Puntos Función
La medida más utilizada en el caso del tamaño del software ha sido el número
de líneas de código, por lo que la productividad ha venido indicada en la mayoría
de los casos en términos de líneas de código por persona y mes. Las ventajas e
inconveniente que presentaba la media del tamaño en términos de LOC se traslada,
por tanto, a la medida de la productividad. Frente a la sencillez de su contabilidad
aparecen serias dudas de su bondad según el lenguaje de programación utilizado o
la falta de representación de la productividad del equipo de desarrollo al ser
fácilmente alterable añadiendo líneas de código innecesarias o de poca utilidad. La
alternativa es el uso de los Punto Función, según la ecuación:
Errores
número de errores
Calidad = Ecuación 8.1 1
IUOC
Documentación
número de paginas
Ecuación 8.12
KLOC
Nivel de lenguaje
Como resumen de este apartado hay que indicar que la productividad no puede
determinarse exclusivamente como una expresión que envuelva el tamaño de la
salida y el número de personas involucrada en dicha tarea. Debe considerarse la
calidad del producto resultante. Se han de realizar una batería de medidas en las
que se han de incluir datos relacionados con el tamaño del programa resultante,
personal implicado en el proceso, coste del mismo y la calidad resultante.
Densidad de defectos
Tasas
Ecuación 8.15
Con las ecuaciones 8.14J.15, 8.16 se pueden realizar una política de pruebas y
captura de medidas muy valiosas para el desarrollo de aplicaciones y su control de
calidad.
Las revisiones técnicas basan su eficacia en la realización de verificaciones
manuales del diseño o código. La principal preocupación en estos casos en evitar
juicios personales o subjetivos, por lo que se articulan procesos tendentes a evitar
estas actitudes. No nos extendemos en este punto pues se escapa del objetivo de
este apartado
3. Fiabilidad
d,
R(n)= 1 - - Ecuación 8.18
n
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 233
d
h(t) = f ( t ) =--(ln(l-~(t)))=- ln R(t) Ecuación 8.21
1-F(t) dt dt
R(t) = e,
Ih(x)h
Ecuación 8.23
Se define el tiempo medido entre fallos MTTF, acrónimo del inglés Mean Time
to Faillure como:
1
MTTF = - Cfl ti
i=1
Ecuación 8.24
Este valor cambia según el lenguaje utilizado. Para cada algoritmo particular ha
de existir un volumen mínimo. Halstead define la razón de volumen "L" como la
razón entre el volumen de la forma más compacta de un programa y el volumen
del programa real. L debe ser siempre menor que uno.
Halstead teorizo que cada lenguaje podía ser clasificado por un nivel de
lenguaje, "1". Este valor parece estar relacionado con el nivel de abstracción en
especificación de procedimientos. A mayor nivel de lenguaje mayor nivel de
abstracción.
Las críticas al modelo de Halstead se fundamentan en considerar erróneas las
hipótesis de la psicología cognitiva, base teórica del mismo. Por otro lado se han
determinado errores estadísticos cometidos en la validación de pruebas de medidas
obtenidas haciendo uso de las ecuaciones de Halstead [Fenton 19911. Otro hecho
fundamental es que las medidas propuestas en esta teoría obvian el diseño
centrando su información en el código.
Para conocer esta medida es necesario, por tanto, obtener la representación del
programa haciendo uso del grafo de flujo. Los elementos básico que conforman
dicho diagrama se consideran a continuación:
Sentencia "until"
Sentencia "if'.
Sentencia "while".
Uno de los usos más habituales del número ciclomático está asociado con la
ejecución de pruebas. El número ciclomático nos informa del número de caminos
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 237
Henry y ~ a f u r midieron
a~ la complejidad basándose en el flujo de información
entre módulos.
Se define un módulo como "una secuencia identificable de instrucciones
contiguas", que no tienen que ser necesariamente de código fuente (texto de
especificación, de diseño, etc.). Se distinguen los atributos intra-módzdos (atributos
de un módulo vistos como independiente de los otros módulos) y los atributos
inter-módulos (atributos del sistema visto como un conjunto de módulos más o
menos dependientes unos de otros.
El análisis del diseño puede hacerse como si se tratará de grafos, tales como
grafo de llamadas entre módulos, grafos de control, grafos de dependencia de
datos, etc. En los grafos se pueden hacer diversas medidas:
S. Henry y D. Kafura. Software Sfructure metric base on information flow. IEEE Transaction on software
Engineering. Vol 7, no 5, 1981.
4
N. Fenton. Software Metrics. A rigourous Approach. Chapman & Hall. 1992.
238 MÉTRICAS DEL SOFTWARE
~ o o c definió
h~ la cohesión como una "medida del grado de conectividad entre
los elementos de un módulo único, en el caso general, o como el grado de
conectividad entre los elementos de una clase o un objeto único, en el caso del
diseño orientado a objetos".
a) A llama a B.
b) B llama a A, y A devuelve un valor a B, y B lo utiliza inmediatamente.
c) C llama a la vez a A y a B, pasando un valor de A hacia B.
C. Calero, M. Piattini, C. Pascua1 y M:A. Serrano, Towards data warehouse quality rnetrics.Proceedinds of 31d
Workshop on desing and management of data warehouse, 2001.
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 241
RSA(S) = NADT(S)/NAFT(FT).
RFK(S) Ratio de claves ajenas.
RT(Sc) Ratio de tablas. Cantidad de tablas dimensionales por cada tabla de hechos.
7
L. Oman, V. Storey y R. Wang. Systems Approaches to Improving Data Quality.
1994.
http://web.mit.edu/tdqm/www/papers/94/94-0S.html,
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 243
- - - --
8
D. Wixon y C. Wilson. The usability engineering framework for product design and evaluation. Handbook of
human-computer interaction. Elsevier Science, 1997.
6.2. Algunos métodos de evaluación
Usabilitv Inspection
Medidas de ~ielsenl'
7. MEDIDAS DE SEGURIDAD
12
L. Constantine y L. Lockwood. Software for use. A practical guide to the models and methods o j
usage.centered design. Addison-Wesley, 1999.
..
;
;;
f ALGORITMO j/ CLAVES
;!
j 1
........................................i i..................................i
i
CCESIBILIDAD
7.2. SSE-CMM
- Organización.
- Proyecto.
- Ingeniería de seguridad.
Longitud de la clave
Es una medida subjetiva. Esta métrica propone una serie de niveles asociados a
las características de vulnerabilidad de un determinado algoritmo, como si se
LA CALIDAD DEL SOFTWARE Y SU MEDIDA 249
ccs
Un algoritmo tiene nivel CCS (Conditionally Computational Secure) si se
puede decodificar utilizando claves que no son lo suficientemente largas para
lcanzar el nivel CS.
Métricas básicas
Métricas de proceso