Calidad Del Software - Resumen PDF
Calidad Del Software - Resumen PDF
Calidad Del Software - Resumen PDF
Software
Curso 2014/15
Resumen de la asignatura
para apuntrix.com
Índice
I Introducción a la Calidad 1
1. Concepto de Calidad 1
1.1. Definición de Calidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Conceptos relacionados con la Calidad . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1. Conceptos relacionados con la Gestión de Calidad . . . . . . . . . . . . . . 2
1.2.2. Conceptos relacionados con la Documentación de la Calidad . . . . . . . . 3
1.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
II Calidad de Productos 31
5. Calidad de producto software 31
5.1. Modelos clásicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2. Normas ISO sobre calidad de producto software . . . . . . . . . . . . . . . . . . . . 31
5.3. Familia de normas ISO 25000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3.1. Normas sobre Gestión de Calidad (ISO/IEC 2500n) . . . . . . . . . . . . . . 32
5.3.2. Normas sobre Modelado de Calidad (ISO/IEC 2501n) . . . . . . . . . . . . 32
5.3.3. Normas sobre Medición de Calidad (ISO 2502n) . . . . . . . . . . . . . . . . 35
5.3.4. Normas sobre Requisitos de Calidad (ISO 2503n) . . . . . . . . . . . . . . . 35
5.3.5. Normas sobre Evaluación de Calidad (ISO 2504n) . . . . . . . . . . . . . . . 35
5.3.6. Otras normas de la Familia 25000 . . . . . . . . . . . . . . . . . . . . . . . . 37
5.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
IV Calidad de Procesos 71
9. Evaluación y mejora de procesos 71
9.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9.2. Panorámica general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9.2.1. Armonización de estándares . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9.3. La norma ISO/IEC 90003 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
9.4. Seis-Sigma para software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9.5. EFQM para software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
9.6. Mejora de procesos en Pymes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
9.6.1. COMPETISOFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
9.6.2. ISO 29110 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Se pueden resumir las ventajas y desventajas de las cuatro vistas con una tabla:
1
La calidad realizada: la que es capaz de obtener la persona que realiza el trabajo.
La calidad planificada: la que se ha pretendido obtener. Es la que aparece descrita en una
especificación.
La calidad necesaria: la que el cliente exige con mayor o menor grado de concreción.
La gestión de la calidad pretenderá conseguir que estos tres círculos coincidan lo más posible.
Todo lo que esté fuera de dicha coincidencia será motivo de derroche, de gasto superfluo o de
insatisfacción.
Son muy importantes los términos relativos a la conformidad como aceptación del producto o
servicio:
Conformidad: cumplimiento de un requisito.
No Conformidad: incumplimiento de un requisito.
2
1.2.2. Conceptos relacionados con la Documentación de la Calidad
La documentación contribuye a:
Lograr la conformidad con los requisitos del cliente y la mejora de la calidad.
Proveer la información apropiada.
La repetibilidad y la trazabilidad.
Proporcionar evidencias objetivas.
Evaluar la eficacia y la adecuación continua del sistema de gestión de la calidad.
1.3. Ejercicios
1. De las definiciones de calidad dadas por los gurús y normas internacionales, ¿Cuál consi-
dera que refleja mejor la “vista del fabricante” en terminología de Garvin (1984)? ¿Y cuál
la “vista de usuario”?
La visión del fabricante de Garvin o enfoque basado en la fabricación propone aplicar
la calidad a la estrategia de fabricación. La estrategia de fabricación busca asegurar que
se minimicen las desviaciones del modelo estándar ya que éstas reducen la calidad del
producto fabricado.
La visión de usuario de Garvin determina la calidad según el usuario que utiliza un pro-
ducto o servicio en términos que él necesita, quiere o espera. Los usuarios como clientes
pueden tener unos requisitos de usuario que sean diferentes a los de requerimientos de las
normas o de los estándares tanto internos como externos de las organizaciones. El mero
hecho de cumplir con las normas o las especificaciones no es la respuesta a la calidad, es
simplemente insuficiente.
2. Comente estas dos apreciaciones sobre la calidad: Kitchenham afirma que “la calidad es
difícil de definir, imposible de medir y fácil de reconocer”, según Gillies la calidad es
“transparente cuando está presente, pero fácil de reconocer en su ausencia”. Compare
estas afirmaciones con las definiciones de calidad citadas en este capítulo.
La sentencia de Kitchenham indica que esta visión coincide con la visión trascendental
de Garvin que fija la calidad como algo subjetivo de la persona que la evalúa. También
coincide con Garvin en comentar que esta definición no es útil y desde su punto de vista
se debe buscar una cuantificación de la calidad ya sea en términos absolutos o relativos.
La cita de Gillies es similar a la anterior sobre la visión trascendental de Garvin, y es
consecuencia de la idea que no es posible prever todas las circunstancias relacionadas con
la calidad y por lo tanto la especificación de las necesidades y los requisitos para todas
las características de calidad puede no ser apropiada, y cambiar con los cambios que se
producen en el día a día.
3
3. Describa la organización de la AEC (Asociación Española de la Calidad), y de la ASQ
(American Society for Quality).
Ambas son sociedades dedicadas a la calidad básicamente como recopiladoras de informa-
ción relacionada con la calidad y autoridades de formación y certificación. Las funciones
de estas organizaciones son prácticamente las mismas y se enfocan a:
Dar soporte a los asociados en todo lo relacionado con la calidad, realizando soporte,
formación o auditoría a sus asociados;
Certificación de personas en formación relacionada con calidad (no se debe confundir
con certificaciones de organizaciones);
Formación con un extenso catálogo de cursos desde los temas más generales a los
más específicos, tanto presenciales como semipresenciales;
Fomento de la cultura de la calidad a través de publicaciones tanto de revistas perió-
dicas como de libros relacionados con la calidad;
4. ¿Qué diferencia hay entre una “acción correctiva” y una “corrección”? Ponga ejemplos de
ambas.
Las correcciones son el conjunto de actividades realizadas para eliminar o subsanar lo
que no ha salido bien (no conformidad). La norma define corrección como una acción
tomada para eliminar una no conformidad, por ejemplo, si una no conformidad es que
un catálogo técnico de un producto ha incluido errores, la corrección será modificar el
catálogo eliminando los errores. Una corrección resuelve el problema.
Las acciones correctivas son un conjunto de actividades que se realizan para eliminar la
causa de algo que no ha salido bien. Según la norma, la acción correctiva se define como
la acción tomada para eliminar la causa de una no conformidad detectada u otra situación
no deseada. Si utilizamos el mismo error anterior, si la no conformidad es que el catálogo
tiene errores, debemos buscar la causa que ha provocado ese error, por ejemplo, que los
catálogos se están escribiendo y no se están revisando, y por lo tanto la acción correctiva
será que se debe implantar un método de revisión de los catálogos.
5. Explique qué actividades de la gestión de la calidad podrían considerarse de “control de
la calidad” y cuáles de “aseguramiento de la calidad”.
El control de calidad se refiere a las actividades de la gestión de calidad relacionadas
con el cumplimiento de los requisitos de fabricación. Se utiliza para verificar y medir
que el producto que se entrega o vende tenga la calidad aceptada y que está completo y
comprobado. Por ejemplo, actividades de control de calidad son revisar los documentos o
comprobar medidas.
El aseguramiento de la calidad se refiere a los procesos que se utilizan para la fabricar
el producto o dar servicio. Se trata de actividades que se encargan de comprobar que las
tareas se realizan como se debe realizar sin entrar a analizar el resultado. Por ejemplo, una
auditoría o una lista de comprobación de ítems pueden ser tareas de aseguramiento de
calidad.
6. Especifique el contenido que debería tener un Manual de la Calidad, para ello puede ser
conveniente revisar la norma ISO 10013: Directrices para desarrollar Manuales de la Cali-
dad.
El contenido de un manual de calidad debe incluir los siguientes apartados:
a) Título, alcance y campo de aplicación.
b) Tabla de contenido del manual.
c) Introducción acerca de la organización y el manual.
d) Política de calidad y objetivos de la organización.
e) Descripción de la organización, responsabilidades y autoridades.
f ) Descripción de los elementos del sistema de calidad y las referencias a los procedi-
mientos del sistema de calidad.
g) Definiciones, si corresponde.
4
h) Guía del manual.
i) Anexos con los datos de apoyo.
5
2. Modelos y normas de calidad
2.1. Introducción
Diferentes modelos para la gestión de calidad, y diversas normas, varias de las cuales han
sido aplicadas en las organizaciones. Dentro de las diferentes propuestas destacan la Gestión de
la Calidad Total, el modelo EFQM y Seis-Sigma.
Lo más importante de TQM es cómo podemos utilizarlo. Cada organización debe adaptar su
enfoque para explotar los puntos fuertes y concentrarse en sus debilidades.
ISO 19011. Directrices para la auditoría de sistemas de gestión de la calidad y/o me-
dioambiental. Esta norma proporciona directrices básicas para la realización de una audi-
toría conjunta de ISO 9001 e ISO 14001.
6
La familia de normas ISO 9000 se basa en ocho principios de gestión de la calidad que pueden
ser utilizados por la dirección con el fin de conducir a la organización hacia una mejora en el
desempeño:
Enfoque al cliente: las organizaciones dependen de sus clientes y por lo tanto deberían
comprender las necesidades actuales y futuras de los mismos.
Liderazgo: los líderes establecen la unidad de propósito y la orientación de la organización.
Participación del personal: el personal, a todos los niveles, es la esencia de una organiza-
ción y su total compromiso posibilita que sus habilidades sean usadas para el beneficio de
la organización.
Enfoque basado en procesos: promueve la adopción de un enfoque basado en procesos
cuando se desarrolla, implementa y mejora un sistema de gestión de la calidad. Los clientes
juegan un papel significativo para definir los requisitos como elementos de entrada.
Enfoque de sistema para la gestión: identificar, entender y gestionar los procesos interre-
lacionados como un sistema, contribuye a la eficacia y eficiencia de una organización.
Mejora continua: la mejora continua del desempeño global de la organización debería ser
un objetivo permanente.
Enfoque basado en los hechos para la toma de decisión: las decisiones eficaces se basan
en el análisis de los datos y la información.
Relaciones mutuamente beneficiosas con el proveedor: una relación mutuamente benefi-
ciosa aumenta la capacidad de ambos para crear valor.
7
3. Los procedimientos documentados requeridos en esta norma internacional.
4. Los documentos que la organización determina que son necesarios para asegurarse la efi-
caz planificación, operación y control de sus procesos.
Se establece que debería realizarse un seguimiento y medición de la satisfacción del cliente. Las
diversas fuentes de información se clasifican en:
Activas: si la organización va al cliente y le pregunta cuestiones deliberadas o hace obser-
vaciones directas del comportamiento del cliente.
Pasivas:
La organización debe llevar a cabo auditorías internas a intervalos planificados para determinar
si el sistema de gestión de la calidad:
1. Es conforme con las disposiciones planificadas.
2. Se ha implementado y se mantiene de manera eficaz.
También trata sobre el seguimiento y medición de los procesos y del producto. Así como del
control del producto no conforme, del análisis de datos.
Por último en la norma se aborda la mejora, tanto la mejora continua como las acciones
correctivas y preventivas. En estos temas se profundiza en la norma ISO 9004.
8
2.4. Modelo EFQM
2.4.1. Visión general
Fue creado como marco para evaluar las organizaciones con el fin de conceder el European
Quality Award, se puede utilizar como:
Herramienta para autoevaluación.
Forma de comparación (benchmark) con otras organizaciones.
Orientación al cliente.
Liderazgo y coherencia en los objetivos.
Gestión por procesos y hechos.
Desarrollo e implicación de las personas.
9
Las diferencias fundamentales con las normas ISO pueden resumirse en:
2.4.2.1. Liderazgo
Los líderes excelentes se basan en que estos:
Desarrollan la misión, visión, valores y principios éticos y actúan como modelo de referen-
cia.
Se implican personalmente para garantizar el desarrollo del sistema de gestión.
2.4.2.3. Personas
Se evalúan:
Planificación, gestión y mejora de los recursos humanos.
10
2.4.2.4. Alianzas y recursos
Las organizaciones excelentes planifican y gestionan las alianzas externas, sus proveedores
y recursos internos en apoyo de su política y estrategia y del eficaz funcionamiento de sus
procesos, por lo que se determinan los siguientes subcriterios:
Gestión de las alianzas externas.
Gestión de los recursos económicos y financieros.
Gestión de los edificios, equipos y materiales.
Gestión de la tecnología.
Gestión de la información y del conocimiento.
2.4.2.5. Procesos
Se evalúa:
Diseño y gestión sistemática de los mismos.
Introducción de mejoras mediante innovación.
2.4.2.6. Clientes
El modelo establece dos subcriterios basados en medidas de percepción y en indicadores de
rendimiento.
2.5. Seis-Sigma
Tiene su origen en la estadística. Se puede considerar como una filosofía de gestión que
agrupa varias técnicas con el fin de conseguir procesos casi perfectos, cuyo origen se remonta a
1986 en la empresa Motorola.
Se basa en los siguientes presupuestos:
Prevenir defectos.
Reducir la variación.
Centrarse en el cliente.
Tomar decisiones basadas en hechos.
Alentar el trabajo en grupo.
11
Se proponen dos metodologías: DMAIC (mejorar un proceso existente) y DMADV (diseñar nue-
vos productos o procesos).
2.6. Ejercicios
1. Analice la utilización de la aproximación Seis Sigma en la gestión de la calidad en diferen-
tes sectores: automóvil, servicios, defensa, etc.
Seis Sigma es un método de mejora continua que se propone específicamente para un
sector de fabricación pero que ha sido adaptada a otros sectores.
En el sector automovilístico los ejemplos de aplicación son:
Calidad en el proceso de suministros.
Seguridad y fiabilidad de automóviles acabados.
Reducción de defectos en cada etapa de producción.
Calidad de las piezas ya sean suministros simples o montajes.
Reducción del tiempo de fabricación.
Reducción de los defectos de diseño.
Calidad del proceso de diseño.
Reducción del tiempo para alcanzar la primera fabricación de un nuevo modelo.
En la fabricación en líneas de producción continua, los ejemplos son:
Mejorar el rendimiento de cada turno de producción.
Reducir materiales defectuosos y desechables.
Reducir los fallos del proceso de producción y las paradas completas.
Incrementar la capacidad de la planta.
Aumentar la productividad de los operarios.
Reducir el tiempo de reinicio del proceso después de una parada.
Crear mecanismos para prevenir fallos de los eslabones de la cadena.
Mejorar el control del proceso.
En el sector del desarrollo de software puede aplicarse a:
12
Reducir el tiempo total de desarrollo de aplicaciones.
Reducir el número de errores que se encuentran en la fase de explotación.
Mejorar el proceso de estimación para reducir tiempo y coste.
Crear sistemas de detección de errores lo más pronto posible y de la forma más auto-
mática posible.
Reducir el coste por defectos en cada fase de producción de software.
Reducir el “re-trabajo” de aplicaciones ya entregadas y que deben rehacerse para
resolver errores encontrados en explotación.
4. Analice los diferentes niveles de madurez propuestos por la norma ISO 9004 (principiante,
proactivo, flexible, progresivo, exitoso).
14
Nivel de Nivel de
Comentario
madurez desempeño
No hay una aproximación sistemática que sea evidente.
1 Principiante
Los resultados son pobres o impredecibles.
Aproximación sistemática basada en problema o la
2 Proactivo prevención. Se disponen de los mínimos datos sobre la
mejora.
Aproximación sistemática basada en el proceso. Se usa
3 Flexible una etapa temprana de aplicación de las mejoras
sistemáticas. Hay objetivos y procesos de mejora.
Se usa el proceso de mejora continua y se detecta la
4 Progresivo
mejora de resultados y la tendencia de la mejora.
El proceso de mejora está integrado en la organización y
5 Exitoso
se evalúan los resultados de la mejora.
5. ¿Qué diferencias aprecia entre la construcción del software y la fabricación de otro tipo de
productos industriales? Analice hasta qué punto las normas de calidad presentadas en este
capítulo pueden ser aplicables a los sistemas informáticos.
Las principales particularidades en el proceso de construcción de software y que lo hacen
diferente a otros procesos productivos son:
El software es intangible
No hay un proceso único y estándar de creación de software
No hay una relación cerrada entre tipos de producto software y proceso que lo genera
El constructor último del software es el ingeniero de software
15
3. Calidad de los Sistemas Informáticos
3.1. Concepto de Calidad del Software
Una definición de calidad software bastante extendida es la que indica que es:
El grado con el que un sistema, componente o proceso cumple los requisitos
especificados y cubre las necesidades o expectativas del cliente o usuario.
Informar a los grupos afectados sobre las actividades y resultados del aseguramiento de la
calidad software.
Elevar a la dirección aquellos aspectos que no puedan solucionarse en el contexto del
proyecto.
16
3.2. Situación de la calidad de SI
Sólo el 32 % de los proyectos informáticos finalizan en el tiempo estimado, con los recursos
planificados y con una calidad aceptable, mientras que casi una cuarta parte (24 %) no llegan a
finalizar nunca. El resto lo hace pero consumiendo más recursos o con menos funcionalidades
de los previstos. Proponen distintos niveles de madurez que determinan la forma de trabajar de
una organización.
17
3.5. Calidad de un SI y la Gestión del Conocimiento
3.5.1. Necesidades de la Gestión del Conocimiento en Organización de Software
Todas las organizaciones que desarrollan y mantienen software comparten las siguientes
necesidades:
Comprender los procesos y productos.
Evaluar los éxitos y fracasos.
Aprender de las experiencias.
Empaquetar experiencias exitosas.
Reutilizar experiencias exitosas.
Las organizaciones dedicadas al desarrollo del software requieren y generan grandes cantida-
des de conocimiento de diverso tipo acerca de todos los componentes que identificamos en el
apartado anterior: producto, procesos, proyecto, personas y plataformas.
La calidad de los SI no puede ser mejorada si todo este conocimiento no se encuentra dispo-
nible o no se utiliza adecuadamente.
En este sentido la gestión del conocimiento permite “producir mejor software, de una forma
más rápida y económica, así como tomar mejores decisiones”, ya que facilita:
La localización de fuentes de conocimiento.
La reutilización de experiencias.
La mejora de los procesos de desarrollo del software.
La reutilización de artefactos del proceso de desarrollo.
Existen organizaciones de todo tipo que empiezan a adoptar arquitecturas de gestión de conoci-
miento como la que se muestra en la figura. La gestión de conocimiento se puede considerar el
nexo que une las actividades de producción diarias con las iniciativas de mejora y los objetivos
de negocio.
En las organizaciones software, la gestión del conocimiento se da específicamente en las
siguientes áreas:
Gestión de configuración y control de versiones, ya que los sistemas de este tipo crean
indirectamente la memoria del proyecto, que indica la evolución del software y puede
servir para identificar expertos.
Decisiones de diseño, que es una aproximación que consiste en capturar explícitamente
decisiones de diseño para crear una memoria del producto.
Trazabilidad, que contribuye indirectamente a la memoria del producto.
Informe de problemas y trazabilidad de defectos, los cuales, pudiéndose considerar fuen-
tes de conocimiento “negativo”, podrían llegar a transformarse en conocimiento “positivo”.
Herramientas CASE y entornos de desarrollo de software.
18
Figura 3: Arquitectura de gestión de conocimiento
19
Ciclo de aprendizaje, que comprende el proceso dialéctico que integra la experiencia local
y los conceptos organizacionales.
Desempeño organizacional, que agrupa los resultados de las actividades de mejora de la
organización.
Factores facilitadores, que reflejan las condiciones que facilitan la creación de conocimiento
y la mejora de procesos software.
Define la creación del conocimiento en Ingeniería del Software como el intercambio dinámico
entre dos dialécticas: entre el conocimiento organizacional y el local; y entre la generación y la
interpretación del conocimiento organizacional.
20
3.6.3. Base o Repositorio de Experiencia
Una base de experiencia debe:
Contener el conocimiento relevante para la organización.
Residir en un marco de aprendizaje bien concebido.
Disponer de metodologías que establezcan cómo se estructura la experiencia.
Estar automatizada lo máximo posible.
Hay que tener en cuenta diferentes aspectos de calidad a la hora de construir y gestionar un
repositorio de experiencia:
Guía al usuario, sobre todo para empezar reutilizando las experiencias.
Usabilidad, ya que una pobre usabilidad puede alejar al usuario.
Conformidad con el proceso, hacer un proceso mejorado centrado en el repositorio de
experiencias, siguiendo la estructura del proceso subyacente.
Mecanismos de realimentación, por medio de diferentes canales (correo electrónico, piza-
rras, FAQ, contactos telefónicos, etc.).
Mantenibilidad, para que las restructuraciones sean fáciles.
3.7. Ejercicios
1. Analice en qué cuadrante del marco propuesto por Card (1995) se situarían las siguientes
técnicas:
3. Estime, consultando las fuentes bibliográficas que considere oportuno, el coste total debido
a la baja calidad del software en el que puede haber incurrido su país o comunidad.
Respecto al “estado del arte” en la calidad y la certificación del software en España lo
habitual es que las empresas prefieren establecer sus propios medios de medición. Lo que
normalmente valoran los clientes como signo de calidad es la entrega a tiempo y que el
valor del software se corresponda con su precio. La dificultad para medir la calidad del
software radica en la naturaleza especial del software que en vez de fabricarse, en sentido
clásico, se desarrolla y además de forma artesanal ya que normalmente se construye a
medida. Por ello el coste se lo lleva el diseño y el producto final es más lógico que físico.
A nivel de empresa, la calidad debe formar parte de la política general y la dirección debe
expresarla explícitamente diciendo lo que debe hacerse y haciendo lo que se dice. Además
21
debe considerarse la posibilidad de conseguir una certificación de terceros. Lo habitual en
nuestro país es que no exista una cultura de la innovación y la calidad en las organizaciones
y podríamos definir la calidad del software en España como desconocida, aunque algunos
y evidencias apuntan a una calidad errática. En muchas empresas se han institucionalizado
las malas prácticas y se nota una carencia de profesionales y una necesidad de reciclaje de
los existentes. La calidad en el software es proporcionar a los clientes lo que quieren, de
acuerdo con unos estándares y unas especificaciones de los que desean, con un grado
predecible de fiabilidad y uniformidad, a un precio que se ajusta a sus necesidades. Para
obtener software de calidad no basta con aplicar una ingeniería del producto adecuada, sin
considerar todos los procesos que intervienen en su desarrollo de una manera integrada,
sistemática y sincronizada para obtener un producto de calidad, en los plazos y coste
acordados.
Según los estudios específicamente en España, se señalan como fallos más frecuentes en
proyectos software la desviación de tiempo de proyectos, los costes de mantenimiento y
una calidad desconocida en la mayor parte de los proyectos realizados. Este último punto
se apoya en el hecho de que un 28 % de las empresas de software españolas no utilizan
ningún modelo de calidad en el periodo 2006-2010.
22
4. Aplicación práctica (apuntes E.D.)
4.1. El departamento de calidad en las organizaciones
Los cinco elementos de cualquier sistema de gestión de la Calidad son: la estructura de la
organización, el plan de calidad, los recursos, los procesos y los procedimientos. La estructura
organizacional es la jerarquía de funciones y responsabilidades que define una organización. El
primer criterio que se debe tener en cuenta a la hora de fijar la estructura es la dimensión de la
organización que se quiere implantar.
La motivación. Gracias a los círculos se puede motivar de una forma más constante a los
trabajadores, ofreciéndoles oportunidades de participar en los objetivos de la empresa y de
sentirse valorados.
La integración. Los círculos facilitan la ruptura de los compartimentos estancos, y hacen
que sus integrantes conozcan y valoren el trabajo de los demás.
La reorganización. Cuando una reorganización puede ser lenta en el tiempo, es una buena
alternativa encomendar a los círculos el estudio de dicha reorganización.
Se reúnen periódicamente para analizar y resolver los problemas que ellos mismos descu-
bren.
Deben participar diversas categorías laborales.
No tiene relación jerárquica de autoridad y dependencia, sus miembros son igualitarios.
23
Técnicas empleadas Brainstorming o generación espontánea de ideas. Se procura que los par-
ticipantes den el máximo número de ideas, sin importar su calidad.
Técnicas de registro de la información, usando la hoja de registro y el muestreo. La Hoja
de Registro permite al círculo organizar la información obtenida en un formato que puede ser
fácilmente entendido y analizado.
Técnicas de análisis de información, donde se incluyen las tablas resumen de información y
diversos tipos de gráficas.
Técnicas de análisis de problemas, donde sobresale el diagrama causa-efecto, que es una
representación gráfica de la relación que existe entre las causas potenciales de un problema y el
problema mismo.
Modelos de inspección.
Modelos de control de calidad.
Modelo de aseguramiento de calidad.
Modelo de inspección La inspección consiste en separar los productos con defectos. Implica la
realización de una operación automática o manual que incrementa el coste del producto creado
y que además limita la detección de fallos a cuando estos ya se han producido.
Aparece un grupo funcional en la organización encargado de las inspecciones.
Modelo de control de calidad El control de calidad consiste en medir y evaluar la calidad del
producto en todas las fases del proceso. Implica la utilización de un control estadístico basado
en muestreos y controles que permiten asegurar la conformidad de los productos. La principal
ventaja de este modelo es que permite introducir una prevención gracias al control de entrada.
Las organizaciones suelen introducir un grupo de control de calidad en la jerarquía departa-
mental.
24
Figura 5: Grupo de Control de Calidad en la jerarquía departamental
de la organización (se puede considerar como una organización autónoma que interviene en el
resto).
25
Un manual de la calidad.
Los procedimientos documentados requeridos por la norma.
Los documentos requeridos por la organización para la planificación, operación y control
eficaz de sus procesos.
Los registros de la calidad requeridos por la norma ISO 9001.
Estos documentos son: Manual de Calidad, Manual de Procedimientos, Instrucciones de tra-
bajo, Planes de Calidad específicos, Especificaciones de materiales y/o productos, Registros y
formularios.
Instrucciones de trabajo Son las que describen específicamente cómo se llevan a cabo las ac-
tividades que describen los procedimientos. Sólo se realizan en función de la complejidad de la
actividad.
26
Plan de gestión de configuración.
Plan del proyecto.
Plan de calidad.
Documento de especificación de requisitos software.
Diagramas de flujo de datos y modelo E/R.
Plan de pruebas y aceptación del sistema.
Diagramas de estructuras, modelo de datos relacional y pantallas.
Plan de pruebas de integración.
Código.
2. Gestión de la calidad
Las tareas a realizar por el responsable de calidad son:
Ayudar a que el equipo de proyecto realice su trabajo de calidad. La forma de cumplir
este objetivo es comprobando el grado en el que los miembros del equipo del proyecto
registran sus datos de forma exacta y completa.
Guiar al equipo en la realización de un producto de calidad.
Moderar e informar de forma adecuada al equipo en las inspecciones realizadas. Las
inspecciones se deben realizar según el procedimiento previsto y se deben rellenar los
datos correspondientes.
Dirigir al equipo en la realización y seguimiento del plan de calidad. Se deben acordar
los productos y criterios que se seguirán para obtener productos de alta calidad.
Informar al responsable del proyecto cuando existan problemas de calidad.
Establecer estándares de documentación, codificación, etc.
Revisar y aprobar todos los productos antes de que sean entregados al Comité de
Control de Cambios para su introducción en la línea base del proyecto.
Ser el moderador de las inspecciones del equipo.
El responsable de calidad no formará parte del equipo de desarrollo con objeto de no caer
en responsabilidades de desarrollo que tiendan a omitir la calidad.
3. Métricas
Algunos ejemplos de medias relativas a las “tasas de revisión e inspección” y de “rendi-
mientos de fase” son:
Tasa de revisión e inspección en la fase de requisitos.
Tasa de revisión e inspección en la fase de diseño de alto nivel.
Rendimiento en las inspecciones de requisitos.
Rendimiento en las revisiones e inspecciones de diseño.
4. Revisiones, inspecciones y auditorías
En esta sección se deberán describir los procedimientos concretos que se llevan a cabo para
realizar las revisiones, inspecciones y auditorías.
27
Política de la Calidad La alta dirección debe asegurar que:
Es adecuada al propósito de la organización.
Incluye el compromiso de satisfacer los requisitos y de mejorar continuamente la eficacia
del SGC.
Proporciona un marco de referencia para establecer y revisar los objetivos de la calidad.
Se comunica y entiende dentro de la organización.
Se revisa para mantenerla adecuada continuamente.
Objetivos de Calidad La alta dirección debe asegurar que los objetivos de la calidad se esta-
blecen en las funciones y niveles pertinentes dentro de la organización. Los objetivos deben ser
medibles y coherentes con la política de la calidad.
Los objetivos deben comunicarse claramente a todo el personal, que debería ser capaz de
trasladarlos a sus contribuciones individuales.
Gestión de los Recursos La organización debe determinar y proporcionar los recursos necesa-
rios para:
Implementar y mantener el SGC y mejorar continuamente su eficacia.
Aumentar la satisfacción del cliente.
Los recursos pueden incluir:
Personal
Suministradores
Información
Ambiente laboral
Infraestructura
Recursos financieros
28
Realización del Producto La organización debe planificar y llevar a cabo la producción y el
suministro del servicio bajo condiciones controladas, las cuales deben incluir (cuando sea apli-
cable):
Control del Producto No Conforme La organización debe asegurar que el producto que no se
sea conforme con los requisitos se identifica y se controla para prevenir su utilización o entrega
no intencionada. Los controles y las responsabilidades para tratar los productos no conformes
deben estar definidas en un procedimiento documentado.
La organización debe tratar los productos no conformes mediante una o más de las siguientes
maneras:
Tomando acciones para eliminar la no conformidad detectada.
Autorizando su utilización, liberación o aceptación cuando corresponda por el cliente.
Tomando acciones para prevenir su utilización o aplicación original.
Análisis de Datos La organización debe determinar, recopilar y analizar los datos apropiados
para demostrar su adecuación y la eficacia del SGC y para evaluar donde puede realizarse
la mejora continua del SGC. Debe incluir los datos generados del resultado de la medición y
seguimiento, y de cualquier otra fuente pertinente. Debe proporcionar información sobre:
La satisfacción del cliente.
La conformidad con los requisitos del producto.
Las características y tendencias de los procesos y de los productos.
Los proveedores.
29
Mejora Continua La organización debe mejorar continuamente la eficacia del SGC por medio
de la utilización de:
La política de la calidad.
Acciones Correctivas La organización debe tomar acciones correctivas para eliminar la causa
de no conformidades con objeto de prevenir su repetición. Las acciones correctivas deben ser
apropiadas a los efectos de las no conformidades encontradas. Se debe establecer un procedi-
miento documentado para definir los requisitos para:
Revisar las no conformidades (incluyendo las quejas de los clientes).
Acciones preventivas La organización debe determinar las acciones preventivas para eliminar
las causas potenciales de no conformidad al objeto de prevenir su ocurrencia. Se debe establecer
un procedimiento documentado para definir los requisitos para:
Determinar no conformidades potenciales y sus causas.
Evaluar la necesidad de actuar para prevenir la ocurrencia de no conformidades.
30
Parte II
Calidad de Productos
5. Calidad de producto software
5.1. Modelos clásicos
Históricamente se han desarrollado para evaluar la calidad de los productos software di-
ferentes modelos que pretenden seguir las directrices de calidad de otros tipos de productos:
descomponer la calidad en una categoría de características más sencillas que facilita su estudio.
Todos estos modelos clásicos requieren identificar métricas para esas características de cali-
dad que permitan medir cuantitativamente cómo de bueno es un software atendiendo a esos
criterios.
31
Figura 7: Relaciones entre las normas ISO/IEC 9126 e ISO/IEC 14598.
32
Completitud funcional. Grado en el cual el conjunto de funcionalidades cubre todas
las tareas y los objetivos del usuario especificados.
Corrección funcional. Capacidad del producto o sistema para proveer resultados co-
rrectos con el nivel de precisión requerido.
Adecuación funcional. Capacidad del producto software para proporcionar un con-
junto apropiado de funciones para tareas y objetivos de usuario especificados.
Madurez. Capacidad del sistema para satisfacer las necesidades de fiabilidad en con-
diciones normales.
Disponibilidad. Capacidad del sistema o componente de estar operativo y accesible
para su uso cuando se requiere.
Tolerancia a fallos. Capacidad del sistema o componente para operar según lo pre-
visto en presencia de fallos hardware o software.
Capacidad de recuperación. Capacidad del producto software para recuperar los da-
tos directamente afectados y restablecer el estado deseado del sistema en caso de
interrupción o fallo.
Eficiencia de desempeño Trata del desempeño relativo al total de recursos utilizados bajo de-
terminadas condiciones.
Capacidad de Uso Capacidad del producto software de para ser entendido, aprendido, usado
y resultar atractivo para el usuario, cuando se usa bajo determinadas condiciones.
33
Responsabilidad. Capacidad de rastrear de forma inequívoca las acciones de una
entidad.
Autenticidad. Capacidad de demostrar la identidad de un sujeto o un recurso.
Coexistencia. Capacidad del producto para coexistir con otro software independiente,
en un entorno común, compartiendo recursos comunes sin detrimento.
Interoperabilidad. Capacidad de dos o más sistemas o componentes para intercam-
biar información y utilizar información intercambiada.
Mantenibilidad Capacidad del producto software para ser modificado efectiva y eficientemente.
Portabilidad Capacidad del producto o componente de ser transferido de forma efectiva y efi-
ciente de un entorno hardware, software, operacional o de utilización a otro.
Adaptabilidad. Capacidad del producto que le permite ser adaptado de forma efecti-
va y eficiente a diferentes entornos determinados de hardware, software, operaciona-
les o de uso.
Capacidad para ser instalado. Facilidad con la que el producto se puede instalar y/o
desinstalar de forma exitosa en un determinado entorno.
Capacidad para ser remplazado. Capacidad del producto para ser utilizado en lu-
gar de otro producto software determinado con el mismo propósito y en el mismo
entorno.
34
5.3.2.3. Modelo de calidad de datos
La norma entiende por calidad de datos la capacidad de las características de los datos de satisfacer
necesidades explícitas e implícitas bajo determinadas condiciones de uso. Sus características se clasifican
considerando dos puntos de vista:
1. Inherente. Capacidad de las características de los datos de tener el potencial intrínseco
para satisfacer las necesidades explícitas e implícitas. Las características que se consideran
en este apartado son:
Disponibilidad. Capacidad de los datos de poder ser recuperados por los usuarios au-
torizados.
Portabilidad. Capacidad de los datos de poder ser instalados, reemplazados o trasla-
dados de un sistema a otro preservando la calidad.
Recuperabilidad. Capacidad de los datos de mantener y preservar un nivel especificado
de operaciones y de calidad, incluso en caso de fallo.
35
En la Figura 8 se resume las tareas del proceso de evaluación que se agrupan en cuatro
actividades:
36
• Definir la rigurosidad de la evaluación teniendo en cuenta el presupuesto, la fecha
objetivo de la evaluación, etc.
5.4. Ejercicios
1. Compare las características y subcaracterísticas de calidad del modelo de McCall y del
modelo propuesto en la norma ISO 25010, ¿cuál le parece más completo?, ¿a qué elementos
de la calidad le concede más importancia McCall?, y ¿a cuáles la norma 25010?, ¿encuentra
similitud entre ambos?
En el caso de McCall podemos agrupar las once características del modelo en tres grupos:
Revisión del Mantenibilidad
producto Flexibilidad
Testeabilidad
Transición del Portabilidad
producto Reusabilidad
Interoperabilidad
Operación del Correctitud
producto Confiabilidad
Eficiencia
Integridad
Usabilidad
En el caso del ISO 25010, agrupamos según las características internas, externas y de uso:
37
Internas y externas Funcionalidad
al producto Seguridad
Interoperabilidad
Fiabilidad
Mantenibilidad
Usabilidad
Eficiencia
Portabilidad
Uso del producto Usabilidad de uso
Contexto de uso
Riesgo
Adaptabilidad
Algunas de las subcaracterísticas del modelo ISO 25010 son características del modelo
de McCall. Por ejemplo la característica de Corrección aparece en el modelo 25010 como
subcaracterística de Funcionalidad. Lo mismo ocurre con otras características de McCall
como Flexibilidad, Facilidad de prueba, Reusabilidad o Interoperabilidad.
De forma general el modelo 25010 es más completo y cubre más características.
2. Como señala Kan (2003), los parámetros de satisfacción del cliente que monitoriza IBM
son: capacidad, funcionalidad, usabilidad, desempeño, fiabilidad, instalabilidad, mante-
nibilidad, documentación/información y servicio, mientras que Hewlett-Packard utiliza:
funcionalidad, usabilidad, fiabilidad, desempeño y servicio; compare estos parámetros con
las características de la norma ISO 25010.
Para representar las características de los tres modelos presentamos la tabla:
ISO 25010 IBM HP
Capacidad de uso Capacidad Desempeño
Compatibilidad Desempeño Fiabilidad
Eficiencia del desempeño Documentación Funcionalidad
Fiabilidad Fiabilidad Usabilidad
Funcionalidad Funcionalidad Servicio
Portabilidad Instalabilidad
Seguridad Mantenibilidad
Servicio
Usabilidad
En los dos modelos de las compañías aparece la característica del “Servicio” que en el caso
del ISO 25010 está incluida como subcaracterística de la capacidad de uso. Sin embargo
hay otras características del ISO 25010 que no se consideran en los modelos corporativos
como Seguridad, Portabilidad o Compatibilidad.
3. Tomando como base el proceso de selección propuesto por la norma ISO 25040 defina un
proceso de selección para herramientas de análisis y diseño orientado a objetos, adaptando
si fuera necesario el modelo de calidad de la ISO 25010. Compare el modelo definido con
la norma ISO 14102.
El estándar ISO 25040 propone como pasos del proceso de evaluación seguir los siguientes
apartados:
Preparar y establecer los requisitos de evaluación.
Especificar la evaluación.
Diseño de la evaluación.
Evaluar.
Documentar para concluir.
Si lo que se quiere es realizar una evaluación de herramientas CASE podrían plantearse de
forma resumida los siguientes pasos:
38
Establecer los requisitos Los requisitos de evaluación se considerarán en los siguientes
aspectos: soporte para el modelado, mantenimiento de los modelos realizados, docu-
mentación y configurabilidad de la herramienta.
Especificar la evaluación Los requisitos anteriores deben evaluarse en características con-
cretas y medibles que podemos obtener del estándar ISO 25010. Por ejemplo, en el
caso de la capacidad de modelado podríamos obtener las siguientes medidas: funcio-
nalidad de la edición de UML estándar, adecuación de la edición UML, rendimiento
en la edición UML y usabilidad de la edición UML.
Diseñar la evaluación Es necesario diseñar un plan de evaluación a partir de los requisitos
y la especificación de la evaluación. Una opción posible es considerar la evaluación
basándose en un cuestionario en el que fijamos puntuaciones.
Ejecutar la evaluación El propósito de la evaluación de la ejecución es el de obtener los
resultados de la realización de acciones para medir y verificar el producto de software
de acuerdo con los requisitos de evaluación, tal como se indique en la especificación
de evaluación y como estaba previsto en el plan de evaluación.
Informar la evaluación Los informes de evaluación se generan una vez que se dispone
de la información en conjunto de todas las medidas sobre las herramientas. Debe
ajustarse a la norma ISO/IEC 25041:2012.
Respecto al ISO 14102 para la evaluación de herramientas CASE proporciona un método
sistemático para la evaluación y adopción de este tipo de herramientas, una equivalencia
entre los requisitos y las características a evaluar y un proceso de selección para determinar
la mejor opción en cada caso.
En general el proceso de selección propuesto en este estándar es similar al propuesto
con carácter general según el ISO 25040 puesto que propone básicamente cuatro pasos:
inicial que dé lugar a los requisitos que la organización tiene para el uso de la herramienta
CASE, un paso de estructuración que determina el marco de evaluación, el paso de la
evaluación que genera un informe de evaluación, y un paso final de selección que aplica
los criterios fijados en la estructuración al informe de evaluación para dar lugar a un
informe de selección.
4. Compare las diferentes propuestas existentes sobre modelos de calidad para componentes
–por ejemplo Simao y Belchior (2003) o Berton et al. (2005)– analizando qué características y
subcaracterísticas de la norma ISO 25010 se han adoptado tal cual, modificado o descartado
para este tipo de software.
Los modelos más amplios como el ISO 9126 o el ISO 25000 no son adecuados para su
aplicación a este tipo de software. Intentan proponer mdoelos basados en la obtención de
medidas sobre las características particulares de este tipo de software. En concreto y co-
mo ejemplo, el modelo propuesto por Simao y Belchior propone un total de 124 atributos
organizados según seis características básicas como la funcionalidad, la fiabilidad, la usa-
bilidad, la eficiencia, la mantenibilidad y la portabilidad y desde tres puntos de vista: el
dominio de aplicación, la función en la arquitectura y el nivel de abstracción. Todos estos
atributos se evalúan siguiendo un cuestionario de preguntas que permiten realizar la eva-
luación de los elementos individuales y se integran utilizando un modelo de agregación
basado en lógica difusa en el que se pondera la importancia de cada atributo en el modelo
según una tabla de valores creada por expertos en software de componentes.
5. Desarrolle un proceso de análisis y selección para sistemas de información geográfica (SIG)
teniendo en cuenta las características distintivas de este tipo de sistemas. Proponga a con-
tinuación diferentes formas de medir las características propuestas.
Siguiendo el estándar 25040 es necesario determinar los cuatro pasos: análisis, especifica-
ción, diseño y realización. El análisis de los requisitos de la evaluación se puede plantear
en tres niveles: en el nivel básico puede utilizarse ISO 25010 para el modelo de calidad del
producto SIG y el ISO 25030 para el modelo de calidad de uso del SIG. un segundo nivel
podría tener en cuenta cuestiones como el presupuesto y las fechas de entrega; y un tercer
nivel sirve para definir los niveles mínimos esperados en la evaluación.
Como no se indica nada en relación al punto de vista del evaluador del SIG podrían
plantearse dos opciones: una que se tratara de la visión de un explotador/desarrollador
39
del sistema, y otra que se tratara sólo de la visión de un usuario. Consideremos únicamente
este segundo punto de vista.
De acuerdo al estudio, la experiencia y la observación de los sistemas SIG, podemos deter-
minar que los atributos a considerar en la evaluación del uso de los SIG son: productividad,
curva de aprendizaje, satisfacción de uso y tasa de fallos. Los factores que podemos consi-
derar pueden ser:
Términos/conceptos usados en el SIG son claros y no ambiguos.
Uso de conceptos técnicos en acciones de usuario.
Navegación de funcionamiento básico.
Mensajes de error claros y no ambiguos.
Uso de convenciones estándar en los mapas.
Calidad de la presentación del mapa.
Alternativas de acciones sobre el mapa: zoom/pan/layer.
etc. . .
40
6. Calidad del producto de software (apuntes E.D.)
6.1. Introducción a la medición del software
6.1.1. Conceptos básicos de la medición
La necesidad de medir es evidente en la mayoría de las actividades técnicas o científicas.
Definimos medición como el proceso por el cual se asignan números o símbolos a tributos de entidades
del mundo real de tal forma que los describan de acuerdo a reglas claramente definidas.
Toda medición debe asegurar una adecuada representación del atributo real medido median-
te los símbolos o números asignados. Así, los datos obtenidos como medidas deben representar
los atributos de las entidades reales que pretendemos caracterizar y el manejo de dichos datos
debe preservar las relaciones que existen entre dichas entidades. Para establecer medidas debe-
mos partir de nuestra observación del mundo real o dominio. Debemos identificar cuáles son las
entidades que queremos medir (p.ej. código) y definir qué atributo deseamos caracterizar (p.ej.
longitud de código).
Es importante identificar las relaciones empíricas que se pueden establecer entre las entida-
des reales en relación con el atributo que nos interesa. Pueden ser simples comparaciones que
establecen un orden o relaciones de otros tipos. Se puede hablar entonces del dominio como de
un sistema de relaciones empíricas. La medición asigna un valor a cada entidad para caracte-
rizar su atributo y debe establecer también qué relación entre valores se corresponde con cada
relación empírica. Lo importante es que la medición que establezcamos no resulte inconsistente
con las relaciones observadas en el mundo real.
Se podrían establecer múltiples representaciones para un mismo sistema de relaciones em-
píricas. En general, cuantas más relaciones empíricas estén especificadas, más se restringe la
variedad de representaciones posible. Una asignación que se establece entre mundo real y valo-
res de medida se suele denominar escala de medición. Podemos presentar cinco tipos principales
de escalas de medición:
Nominal: se clasifica cada entidad (p.ej. código) en grupos (COBOL, Basic, Java, etc.).
Ordinal: se clasifican las entidades en grupos pero estableciendo un orden (p.ej. fallos de
software: parada de sistema, mal funcionamiento, leve o cosmético).
De intervalo: establece un orden y además informa sobre que la diferencia existente entre
un valor y otro consecutivo en orden es siempre la misma.
41
5. Realimentación. Recomendaciones obtenidas de la interpretación de métricas técnicas
transmitidas al equipo de software.
Está demostrado que no existe un conjunto de métricas que puedan aplicarse de forma uni-
versal, e independiente de lenguajes, entornos o metodologías de programación, por lo que los
elementos básicos que debemos considerar a la hora de determinar una métrica son:
Complejidad de la métrica: cuánto nos cuesta obtenerla.
Calidad de la medida: cómo de bien mide, en términos de corrección y precisión.
Utilidad de la medida: realmente sirve para algo en términos de consistencia y utilidad en
el proceso de medición.
Como variante de esta métrica se define EDSI (Effective Delivered Source Instructions) como
DSI más las sentencias efectivas que se encuentran en un misma línea física de código.
Una de las medidas clásicas del software es la propuesta por Halstead, que define un progra-
ma P como una colección de tokens que se clasifican en operadores y operandos. Las métricas
básicas para medir el tamaño de un programa son:
42
µ1 : número de operadore únicos
µ2 : número de operandos únicos
N1 : número de ocurrencias de los operadores
N2 : número de ocurrencias de los operandos
N ( P) = N1 + N2
El vocabulario de P:
µ ( P ) = µ1 + µ2
El volumen de P:
V ( P) = N ( P) ∗ log2 µ( P)
Que sería las discriminaciones mentales para hacer un programa. Y desde este esfuerzo y
aplicando estudios psicológicos sobre las capacidades de discriminar en el cerebro humano,
Halstead fija el tiempo como:
E( P)
T ( P) =
β
Ejemplo de métricas Halstead Dado el siguiente fragmento de código en Java, calcular las
medidas de Halstead para el procedimiento ordenar que implementa:
1 void ordenar(int vector, int tamano) {
2 int i, j, t;
3 if(tamano<2) return;
4 for(i=0; i<tamano; i++) {
5 for(j=i+1; j<n; j++) {
6 if(vector[i]>vector[j]) {
7 t=vector[i];
8 vector[i] = vector[j];
9 vector[j] = t;
10 }
11 }
12 }
13 }
43
Operador No de Operador No de
ocurrencias Ocurrencias
< 3 = 5
> 1 [] 6
- 1 { 3
, 2 } 3
; 9 + 1
( 4 ++ 2
) 4 for 2
if 2 int 1
return 1
Y los operandos:
Operando No de Operando No de
ocurrencias Ocurrencias
0 1 i 8
1 2 j 7
2 1 tamano 3
vector 6 t 3
Y el esfuerzo:
17 ∗ 30
E( P) = 392 ≈ 14112
2∗7
Que pasado al factor de tiempo se queda en 793 segundos que son aproximadamente 13
minutos. Ahora siempre cabe la pregunta: ¿corresponde esta medida con su estimación personal
para resolver el problema de ordenación planteado?
6.2.1.2. Medir la reutilización La reutilización del software es una de las actividades más
utilizadas en la construcción de software. En ocasiones no está claro a lo que se llama reutili-
zación ni cómo se mide esta mejora. Se pueden encontrar diferentes modelos de métricas de
reutilización:
Modelos de nivel de reutilización: sirven para estimar cuánto hemos reutilizado diferen-
ciando código nuevo de código reutilizado o adaptado.
Modelos de reusabilidad: describen el patrón de un componente reutilizable. Esta medida
es de interés desde la perspectiva del desarrollo para reutilización.
Modelos de influencia de la reutilización: estiman cuánto se ha mejorado con la reutiliza-
ción.
44
• Modelos de coste-beneficio. Se considera tanto los costes como los beneficios del desa-
rrollo sin reutilización y con reutilización.
• Modelos de ahorro de costes. Permiten estimar la inversión ahorrada por la reutiliza-
ción de productos existentes.
• Modelos de recuperación de la inversión con reutilización o ROI: permiten estimar el
beneficio neto de la reutilización tras haber consumido ciertos recursos.
Esta medida es fácil de usar siempre que quede bien establecido lo que es reusado dentro
del total; ¿se debe incluir un elemento reusado tantas veces como se use o sólo una?. En algún
modelo, para evitar este tipo de cuestiones, se prefiere hablar en términos de medida de objetos
software: módulos, macros, objetos, etc. Se define así un nuevo porcentaje de reutilización PR1
con la siguiente fórmula:
1
PR1 = 1 − ∗ 100
IR
Y el BTRi en cada caso se calcula como la suma de los Beneficios por Reutilización en la fase
de Desarrollo (BRD) y los Beneficios por la fase de Mantenimiento (BRM):
El beneficio por reutilización se contabiliza como lo que nos ahorramos en el coste de desa-
rrollo:
45
Siendo IR las instrucciones reusadas y (1-CRR) el porcentaje del esfuerzo ahorrado por la
reutilización.
En cuanto a los beneficios por la fase de mantenimiento, se pueden calcular como:
Como ejemplo, supongamos un desarrollo completo realizado por tres equipos de trabajo que
cada uno ha realizado un subsistema. Estos equipos han reusado en librerías de clases y métodos
10KLOC el primer equipo, 15KLOC el segundo y 5KLOC el tercero (total IR = 30KLOC). La
mayor parte de estas IR proceden de una librería en la que se invirtió en su momento. Además
los tres equipos han necesitado 1500 LOC adicionales de librerías nuevas y que han quedado
incorporadas al repositorio. Suponemos que el CRR es 0,2 y el CRER es 1,5. Además conocemos
que la tasa de error de los ingenieros involucrados en el proyecto es 1,5 por cada KLOC y el
coste de fijar un error es de 5.000 . El coste establecido en la organización es de 100 /LOC para
el desarrollo de nuevas aplicaciones. Calcular el Project ROI final en este proyecto.
Es necesario obtener los beneficios por la reutilización, primero en desarrollo:
Y el mantenimiento:
30 KLOC
BDMi = IR ∗ ( Tasa errores) ∗ (Coste error ) = ∗ 5000/error
1, 5 errores/KLOC
= 20 errores ∗ 5000/error = 0, 1 millones
Por lo tanto el total es:
46
Cuenta del número total de Puntos Función sin ajustar.
Cuenta de Puntos Función para cada componente del sistema.
14
VAF = 0, 65 + 0, 01 ∑ Fi
i =1
47
5. Clasificación de componentes. Una vez que se han inventariado tanto las transacciones
lógicas como los ficheros lógicos, puede procederse a la clasificación de los componentes
del sistema. Se trata de determinar la complejidad de cada componente (algo subjetivo) y
tabular los resultados.
6. Revisión de las 14 características generales del sistema (GSC’s). Es necesario volver a
calcular el Factor de Ajuste (VAF).
7. Tabulación de los resultados. Para mostrar los resultados obtenidos, se construye una
tabla donde se indican los tipos de componentes contabilizados (filas) y la complejidad
asociada a cada uno de ellos (columnas).
El número total de puntos de función sin ajustar corresponde con la siguiente expresión:
15
PFsA = ∑ ( N o de componentes de tipo i ∗ peso del componente i)
i =1
8. Validación de resultados. Antes de utilizar el resultado final obtenido para posibles esti-
maciones, el proceso de conteo descrito en los pasos anteriores deberá ser exhaustivamente
revisado para detectar posibles errores u omisiones que hayan podido producirse.
Los Puntos Función Mark II se obtienen de forma similar al proceso anterior, como resultado
del producto de dos componentes: el Tamaño de Procesamiento de la Información (TPI) y el
Ajuste de Complejidad Técnica (ACT). Se analiza la especificación del sistema desde el punto
de vista de las transacciones lógicas. Donde una transacción lógica es una combinación única
de entrada/proceso/salida desencadenada por un único evento de interés para el usuario o por
una necesidad de recuperar información. Para cada transacción hay que contar el número de
elementos de entrada (EE) y de salida (ES) que implica, así como las Entidades de Datos (ED)
tratadas. A cada tipo se le asigna un peso (P1 , P2 , P3 ) para obtener el TPI. En los PF Mark II
los pesos se deben calibrar en cada entorno en donde se va a aplicar la medida a partir de unos
valores de referencia que son: P1 = 0, 58, P2 = 1, 66, P3 = 0, 26.
Las expresiones de cálculo son:
Ejemplo de métrica con Puntos de Función Calcular los puntos de función para una apli-
cación de procesado de texto que recibe un documento y opcionalmente un fichero diccionario
personal. La aplicación separa todas las palabras del documento de acuerdo a un diccionario y
genera un listado con todas ellas. El usuario puede pedir un informe con el número de palabras
procesadas y el número de errores encontrados.
Primero debemos calcular los puntos de función no ajustados teniendo en cuenta:
48
Figura 9: Diagrama para la aplicación de procesado de texto del ejemplo.
Para calcular los puntos de función ajustados necesitamos calcular el factor de ajuste VAF
que debe considerar los 14 factores:
Con la fórmula:
14
VAF = 0, 65 + 0, 01 ∑ Fi
i =1
49
Nulo (peso 0): F3 , F5 , F9 , F11 , F12 .
Medio (peso 3): F1 ,F2 ,F6 ,F7 ,F8 ,F14 .
Alto (peso 5): F4 ,F10 .
Y por lo tanto los puntos de función ajustados resultan:
14
VAF = 0, 65 + 0, 01 ∑ Fi = 0, 65 + 0, 01 (18 ∗ 10) = 0, 93
i =1
coste(n)
que relacione el número de pasos con el consumo de coste espacial o temporal.
En cuanto al análisis de casos, intenta tener en cuenta no sólo los pasos para resolver un
problema sino también el funcionamiento para un caso concreto de entrada. Así, la función
anterior se convierte en:
coste(n, l )
siendo n el número de pasos y l una instancia. Lo que más nos interesa son los casos peores,
los mejores, y el comportamiento intermedio. Así, si n es el número de pasos para un problema
A de talla determinada definimos:
S(n) = {l : l | Instancia ∧ talla(l ) = n}
Entonces, el coste peor es:
p
coste A (n) = max{coste A (l, n) : l ∈ S(n)} = coste A (l p , n)
el coste mejor es:
costem
A ( n ) = min{ coste A ( l, n ) : l ∈ S ( n )} = coste A ( lm , n )
costemed
A (n) = ∑ P(l ) ∗ coste A (l, n) = coste A (lm , n)
l ∈S(n)
50
6.2.1.5. La estructura del software
A continuación comentamos alguna de las medidas destacables sobre la estructura interna del
software.
El mínimo número de caminos y las métricas de alcanzabilidad. Se trata del número total
de caminos que se pueden describir sobre el grafo del programa. Valores altos de estas medidas
se relacionan con un elevado número de defectos.
También podemos calcular el nivel de anidamiento, que se refiere a insertar una estructura
básica de control (bucle o decisión) dentro del cuerpo de otra. Cuanto mayor es el anidamiento,
más dificultades tendremos en establecer las condiciones de ejecución de determinadas senten-
cias.
La medida más destacada de complejidad es el número ciclomático de McCabe. Esta métrica
mide el número de caminos linealmente independientes (todos aquellos que introducen al menos
un conjunto nuevo de sentencias o una nueva condición) del grafo de flujo de control de un
determinado programa. La complejidad de McCabe se expresa con la medida de la complejidad
ciclomática V(G) siendo G el grafo del flujo de control (que debe ser directo y acíclico), la cual se
calcula como:
v( G ) = e − n + 2
v( G ) = d + 1
v( G ) = R
McCabe propuso el 10 como límite superior práctico para que un módulo sea probado y
mantenido con éxito. Para valores mayores sería interesante dividir el módulo. A mayor número
ciclomático mayor es la complejidad del programa.
51
Figura 11: Código y grafos del ejemplo.
∑ Aristas − ∑ Nodos
V (G) = +2
el valor de la complejidad ciclomática es:
V ( G ) = (11 − 10) + 2 = 3
V ( G 0 ) = (7 − 8) + 2 = 1
52
habitual del estudio de la medición de la fiabilidad del software es resolver el problema de
predecir cuándo podría fallar un sistema.
Uno de los supuestos de trabajo consiste en asumir que los fallos ocurren probabilísticamen-
te en el tiempo según una tasa de intensidad de fallos. En función de los datos de fallos, se
construyen los modelos que permitan predecir la evolución de la fiabilidad del software en el
futuro.
Entre las métricas empleadas para describir el comportamiento del software en cuanto a la
fiabilidad, podemos destacar las siguientes:
El tiempo medio hasta el siguiente fallo (MTTF, Mean Time To Failure).
El tiempo medio de reparación del software (MTTR, Mean Time To Repair).
El tiempo medio entre fallos (MTBF, Mean Time Between Failures).
La disponibilidad D de un sistema se puede concebir de la siguiente manera:
MTTF
D= ∗ 100
MTBF
La densidad de fallos se suele concebir como una función f(t) que se obtiene a partir de
datos de ejecución y que describe la incertidumbre sobre cuándo fallará un componente
de software.
53
6.2.3. Métricas de uso
Para el concepto de usabilidad, no siempre se ha definido claramente si lo que se desea
medir es la calidad del producto, la calidad en uso o ambas. La calidad en uso está directa-
mente condicionada por la percepción que el usuario tiene del producto en uso, en un contexto
determinado.
Vamos a referirnos a la calidad en uso por medio de características de alto nivel como la
efectividad, la productividad, la seguridad y la satisfacción del usuario. Estas características son
de tal nivel de abstracción que no son directamente cuantificables, por lo que necesitaremos
definir atributos que sí lo sean.
En el desarrollo del proceso de evaluación de la calidad en uso se deberán considerar los
siguientes pasos principales:
1. Análisis de los diferentes contextos y tareas en las que al producto de uso debe ser some-
tido a prueba, conforme a la meta de la evaluación.
2. Especificación de los requerimientos de calidad en uso para los contextos y tareas identifi-
cados, en los que se ha de situar a los usuarios para cada perfil. Se establecerá el modelo
de calidad en uso.
3. A partir del modelo de calidad especificado, se diseñarán los criterios, métricas, instrumen-
tos como cuestionarios, casos de prueba, herramientas y procedimientos de evaluación.
4. Una vez planificado y diseñado el proceso de evaluación se llevará a fase de implementa-
ción.
54
1: el modelo no es adaptable. Se presenta de forma rígida para su uso.
2: el modelo puede ser adaptado pero exige ciertas reglas a seguir.
3: el modelo permite ser adaptado.
Criterio 4. Completitud El grado en el que el modelo describe todas sus partes en su totalidad
sin dejar fuera información importante.
Criterio 5. Área de aplicación Se refiere a la aplicabilidad del modelo a las diferentes áreas de
calidad del software.
Respecto a los modelos disponibles, hemos establecido la siguiente valoración de los criterios:
Criterio
Modelo/Estándar Total
C1 C2 C3 C4 C5
McCall 2 2 2 2 3 11
Boehm 2 2 2 2 3 11
FURPS 1 2 3 1 3 10
Dromey 1 2 2 2 3 10
SQAE 2 2 2 2 3 11
Bansiya 2 2 2 2 3 11
ISO 9126 2 2 2 2 3 11
QUINT2 1 2 2 2 3 10
ISO 25000 2 2 2 NA 1 7
Cuadro 4: Modelos de Calidad y su puntuación atendiendo a los criterios expuestos.
55
6.4.2. Guía de medición
Las métricas son fundamentales para el control y mejora del software, ya que, como decía De
Marco, “no se puede controlar lo que no se puede medir”.
En este apartado se han incluido algunos comentarios importantes a la hora de implantar
con éxito métricas software.
En primer lugar se recomienda empezar con pocas métricas y que estas ayuden al negocio.
Una recomendación generalizada es que las métricas deben ayudar a los objetivos de negocio. Es
decir, debemos definir primero los objetivos de negocio y que estos me determinen qué métricas
tomar. Si el objetivo de negocio es “aumentar la satisfacción del cliente con mi producto” se
pueden medir las incidencias, el ratio/tiempo de resolución de errores, la cobertura de pruebas
funcionales, los errores detectados por las pruebas, etc.
Putman y Myers argumentan que las cinco métricas básicas se basan en medir tiempo, es-
fuerzo, tamaño, fiabilidad y productividad, aplicadas a productos/procesos software.
Se debe comenzar con pocas métricas, para ir aumentando iterativamente el proceso de me-
dición.
La mejor forma de medir es en periodos cortos, frecuentemente, de manera automatizada
y definiendo niveles de abstracción. Si los periodos de medición son muy grandes puede que
medir sólo me sirva para confirmar problemas software que ya es muy tarde para resolver. Pero
claro, medir muy frecuentemente puede tener el inconveniente de que lleve y consuma mucho
tiempo, y que esto reste productividad.
Otro elemento adicional consiste en definir los niveles de abstracción. Las métricas que in-
teresan a un programador, no son las mismas que interesan a un jefe de proyecto.
56
Parte III
Calidad del Proyecto
7. La gestión de la calidad de los proyectos
7.1. Introducción
El proceso de gestión de la calidad pretende asegurar que todas las actividades necesarias
para diseñar, planificar e implementar un proyecto se llevan a cabo de forma efectiva y eficiente
de acuerdo a los objetivos del proyecto.
La gestión de la calidad se trata de un proceso que se lleva a cabo de forma continua des-
de que el proyecto ha comenzado, es un proceso de vital importancia para asegurar que los
proyectos cumplen con los requisitos de calidad esperados.
57
Registro de Interesados, que identifica a aquellos que tienen un interés particular o pueden
influir en la calidad.
Línea Base del Rendimiento de Costes, que representa el presupuesto aprobado del pro-
yecto distribuido en el tiempo.
Línea Base del Calendario, que documenta las medidas de rendimiento del calendario del
proyecto, incluyendo sus fechas de inicio y finalización.
Registro de Riesgos, que contiene la información sobre las amenazas y oportunidades que
pueden impactar sobre los requisitos de calidad.
Factores de Entorno de la Empresa, que pueden influir en la planificación de la calidad,
tales como: las leyes gubernamentales; las reglas para un área de aplicación; las condiciones
de trabajo.
Activos de los Procesos de la Organización, que pueden influir tales como: las políticas,
los procedimientos y las pautas de calidad de la organización; las bases de datos históricas;
la política de calidad.
• Tormenta de ideas.
• Análisis de los campos de fuerza.
• Técnicas de grupo nominal.
• Diagramas Matriciales de priorización.
58
Listas de Comprobación de la Calidad, herramienta estructurada, por lo general específica
de cada componente, que se utiliza para verificar que se hayan realizado una serie de pasos
necesarios.
Plan de Mejora del Proceso, que detalla los pasos necesarios para analizar los procesos
de modo que se facilite la identificación de actividades que incrementen el valor de dichos
procesos.
Actualizaciones a los Documentos del Proyecto, siendo los documentos del proyecto que
pueden actualizarse: el registro de interesados y la matriz de asignación de responsabili-
dades.
Actualizaciones de los Activos de los Procesos de la Organización, entre los que se en-
cuentran los estándares de calidad que pueden ser actualizados.
Solicitudes de Cambio, que son generadas a partir de las acciones para aumentar la efecti-
vidad y/o eficacia de las políticas, procesos y procedimientos de la organización ejecutante.
59
Actualizaciones al Plan de Gestión del Proyecto, que afecta a los planes de gestión de
calidad, del calendario y de costes.
Actualizaciones a los Documentos del Proyecto, siendo los documentos del proyecto que
pueden actualizarse: informes de auditorías de calidad, planes de capacitación y la docu-
mentación del proceso.
60
7.2.3.3. Salidas Las salidas del proceso de control de la calidad son:
Mediciones de Control de Calidad, que son los resultados documentales de las actividades
de control de calidad de acuerdo al formato establecido.
Cambios Validados, que son los cambios que han sido ya inspeccionados con resultado
favorable.
Entregables Validados. Mediante la producción de esta salida se satisface uno de los objeti-
vos principales del control de la calidad, que es comprobar la corrección de los entregables.
Actualizaciones de los Activos de los Procesos de la Organización, en concreto los que
se pueden actualizar como resultado del control de la calidad son: listas de comprobación
completadas, que pasan a formar parte de los registros del proyecto, y la documentación
de lecciones aprendidas de la organización.
Solicitudes de Cambio, que se producen si las acciones correctivas o preventivas recomen-
dadas como resultado del control de la calidad requieren un cambio en el plan de gestión
del proyecto.
Actualizaciones del Plan de Gestión del Proyecto, en concreto se puede actualizar el plan
de gestión de calidad y de mejoras del proceso.
Actualizaciones de los Documentos del Proyecto, que incluyen entre otros los estándares
de calidad.
61
7.3.1. Propósito
Aquí se debe definir el propósito específico y alcance del SQAP. Debe incluir una lista de los
elementos software cubiertos por el plan y su uso previsto.
7.3.3. Gestión
Este apartado debe describir la estructura de organización del proyecto, sus tareas y sus roles
responsabilidades. Se divide en:
7.3.4. Documentación
Este apartado se divide en:
Propósito, que debe identificar la documentación que regula el desarrollo, la verificación y
validación, el uso y el mantenimiento del software y listar los documentos que tienen que
ser revisados o auditados para comprobar su conformidad.
Requisitos Mínimos de Documentación, que permitan asegurar que la implementación
del software satisface los requisitos técnicos.
62
7.3.7. Pruebas
En este apartado se identifican todas las pruebas que no han sido incluidas en el plan de
verificación y validación del software para el producto software cubierto por el SQAP y se
establecen los métodos a aplicar.
7.3.13. Formación
Este apartado identifica las actividades de formación necesarias para satisfacer las necesida-
des del SQAP.
7.3.15. Glosario
En este apartado se incluye un glosario de términos del plan SQAP.
63
7.4. Ejercicios
1. Analizar cómo se pueden complementar los procesos de gestión de la calidad de PMBOK
y el estándar IEEE 730.
En PMBOK, dentro del área de conocimiento Gestión de la Calidad, que determina las polí-
ticas, los objetivos y las responsabilidades relativas a la calidad, se incluyen los procesos:
Planificar la Calidad, Realizar el Aseguramiento de Calidad y Realizar el Control de Cali-
dad.
Es dentro del primer proceso de Planificación de la Calidad donde se obtiene como salida
el Plan de Gestión de Calidad, que describe cómo el equipo de gestión del proyecto im-
plementará la política de calidad de la Organización. Uno de los componentes de ese Plan
de Gestión es el aseguramiento de la calidad. Así pues, para realizar este plan una de las
opciones disponible y según la disponibilidad de detalles de los requisitos es el uso del
estándar IEEE 730 como formato tipo.
2. Realizar un búsqueda bibliográfica de casos en los que se haya documentado un plan de
aseguramiento de la calidad del software de acuerdo al estándar IEEE 730. Analizar los
ejemplo para una mayor compresión de la estructura del estándar y las formas en las que
se ha aplicado.
64
8. Calidad del software (apuntes E.D.)
8.1. Conceptos generales del proyecto
8.1.1. Concepto del proyecto
Un proyecto es una secuencia única de actividades complejas e interconectadas que tienen un
objetivo o propósito que debe ser alcanzado en un plazo establecido, dentro de un presupuesto
y de acuerdo con unas especificaciones. Tiene un inicio y un fin.
A la hora de plantearse un proyecto hay dos preguntas que siempre debe hacerse la empresa:
Investigación.
Ingeniería.
Desarrollo.
Organización.
También puede resultar interesante la clasificación de los proyectos atendiendo al carácter in-
terno o externo del cliente:
Proyectos externos son los que encargan clientes o entidades ajenas a la empresa ejecutora.
Por ejemplo: una operadora de telecomunicaciones encarga a una empresa la ejecución de
parte de sus procesos de negocio.
Proyectos internos son los que un empresa ejecuta para sí misma, encargando su dirección
y ejecución a personas o departamentos de la propia entidad.
65
2. Dimensión humana. En un proyecto se insertan muy diversos intereses, en algunos casos
contrapuestos: cliente, jefe de proyecto, especialistas, subcontratistas, empleados, provee-
dores, etc. Todos son necesarios y tienen algo que aportar al proyecto, pero conseguir que
su aportación sea positiva, convergente y coordinada es una tarea de gran dificultad.
3. Gestionar bien o mal. Un proyecto puede estar bien o mal gestionado y de ello depende
el éxito o el fracaso. La acumulación de recursos no produce ningún resultado importante
porque interviene un factor especial: la gestión.
La metodología de gestión de proyectos (Project Management) responde a estos conceptos y los
pretende integrar adecuadamente.
En el caso de proyectos externos es necesario mantener una buena comunicación con los
proveedores o empresas externas.
Toma de decisiones necesarias.
Seguimiento del proyecto.
66
8.2. Conceptos generales de un proyecto software
Este apartado trata sobre la gestión de proyectos informáticos. Se presentan las principales
áreas que una gestión de proyectos software debe abordar: planificación y seguimiento.
Contratos, etc. (cualquier cláusula contractual que defina los requisitos de gestión del pro-
yecto).
67
8.3. Gestión de la calidad de los proyectos según PMBOK
El PMBOK es una guía de procesos y áreas de conocimiento generalmente aceptadas como
las mejores prácticas de la gestión de proyectos. La finalidad principal de la Guía del PMBOK
es identificar el subconjunto de Fundamentos de la Dirección de Proyectos generalmente reco-
nocido como buenas prácticas.
El PMBOK adopta un modelo para la gestión de proyectos organizado como un cuerpo de
conocimiento compuesto por nueve áreas de conocimiento. Estas áreas representan las compe-
tencias y las buenas prácticas que se deben reunir en la gestión de proyectos. Cada área está
compuesta por procesos inherentes al área (44 procesos en total). Y para cada proceso se des-
criben metas, actividades, entradas, salidas, técnicas, destrezas, herramientas y vínculos a los
demás procesos.
Otra característica del PMBOK es el agrupamiento de los procesos en 5 grupos de proce-
sos; siguiendo el orden cronológico del ciclo de vida de un proyecto: Iniciación, Planificación,
Ejecución, Control y Cierre.
Propósito específico y alcance de dicho plan. Se enumerarán todos los ítems cubiertos por
el Plan de Calidad y el uso que se pretende para el software. Se dirá qué parte del ciclo de
vida es cubierto por el Plan de Calidad para cada ítem de software especificado.
Documentos de referencia. Se completa una lista completa de las referencias hechas en
algún lugar del Plan de Calidad.
68
Documentación. En esta sección se identifica la documentación que gobierna el desarro-
llo, verificación y validación, uso y mantenimiento del software, y se establece cómo se
comprobará la adecuación de esta documentación.
Referencia ISO 9001:
Ésta es una debilidad de ISO 9000. No se especifica qué tipo de documentación es necesaria.
Estándares, prácticas y métricas. El objetivo es establecer cómo la conformidad con estos
ítems (estándares, prácticas y métricas) se asegura y se monitoriza.
Tests. En esta sección se identifican todas las pruebas no incluidas en el Plan de V&V y los
métodos que se deben usar.
Referencia a ISO 9001:
ISO 9001 contiene tres cláusulas que tienen que ver con el testing: una que se refiere a la ins-
pección y testing; otra que se refiere al control de la inspección, medición y equipamiento
de pruebas; y una última que se refiere al estado de la inspección y de las pruebas.
Informe de problemas y acciones correctivas. Aquí se describen las prácticas y procedi-
mientos que se siguen para informar, monitorizar y resolver los problemas identificados
en ítems de software y también en su desarrollo y proceso de mantenimiento.
Referencia a ISO 9001:
ISO 9001 hace énfasis en el mantenimiento del producto. Hay dos cláusulas que lo contem-
plan: Acción correctiva y preventiva; y Servicio. En particular separa las acciones preventi-
vas de las correctivas.
Herramientas, técnicas y metodología. En esta sección se identifican las herramientas soft-
ware, herramientas y metodologías que soportan SQAP, el estado que requieren para este
propósito y se describe su uso.
Referencia a ISO 9001:
ISO 9001 establece que el proveedor necesita controlar, calibrar y mantener la inspección,
medición y equipamiento de pruebas. Incluso las herramientas de software necesitan ser
evaluadas por su aplicabilidad en un determinado proyecto.
Control de código. En esta sección se definen los métodos y facilidades usadas para man-
tener, almacenar, asegurar y documentar versiones controladas del software identificado
durante todas las fases del ciclo de vida software.
Referencia a ISO 9001:
Área problemática para ISO 9001. Se discute mucho sobre el diseño y su control, pero el
código nunca se menciona.
Control de Medios. En esta sección se establecen los métodos y facilidades para identifi-
car los dispositivos físicos de cada producto software, y la documentación requerida para
almacenar los dispositivos, incluyendo los procesos de copia y de restauración, y para pro-
teger a estos dispositivos de acceso no autorizado o de daño no advertido o de degradación
a lo largo de las fases del ciclo de vida.
Referencia a ISO 9001:
La situación es parecida a la del control del código. Aquí se refiere al control de los dispo-
sitivos físicos. Esto debe realizarse en interfaz constante con la gestión de configuración.
69
Control de proveedores. Esta sección establece las medidas que aseguren que el software
proporcionado por los proveedores reúne los requerimientos establecidos.
Referencia a ISO 9001:
La cláusula 4.7 discute el purchasing que consiste de: evaluación de los subcontratistas, la
comprobación de que los documentos adquiridos describen el producto pedido, la verifi-
cación del proveedor que cumple con las premisas de subcontratación, y la verificación por
el cliente del producto subcontratado. ISO 9001 tiene una cláusula denominada “control
de productos proporcionados al cliente” (4.7) que presta atención a este tema.
70
Parte IV
Calidad de Procesos
9. Evaluación y mejora de procesos
9.1. Introducción
La calidad final del producto software se encuentra directamente relacionada con la forma en
que se desarrolla y mantiene, es decir, con el proceso; lo que explica la aparición de numerosos
modelos de evaluación de procesos.
En este capítulo se presenta una perspectiva general de los modelos de evaluación, referencia
y mejora de procesos.
71
Determinar la secuencia e interacción de estos procesos.
Determinar los criterios y métodos necesarios para asegurarse de que tanto la operación
como el control de estos procesos sean eficaces.
Asegurarse de la disponibilidad de recursos e información necesarios para apoyar la ope-
ración y el seguimiento de estos procesos.
Realizar el seguimiento, la medición y el análisis de estos procesos.
Implementar las acciones necesarias para alcanzar los resultados planificados y la mejora
continua de estos procesos.
Iniciación del proyecto. Identificar el problema, formar el equipo, identificar los requisitos
preliminares, validar los requisitos, desarrollar un estudio de viabilidad y obtener la apro-
bación del proyecto. Incorporar todos los pasos de la fase de definición del modelo DMAIC
y de la fase de identificación y definición de DMADV.
Análisis del sistema. El sistema o producto (y) es un resultado del diseño y construcción (f)
basado en los requisitos (x), es decir y = f ( x ). Se recomiendan los siguientes pasos:
72
10. Obtener la aprobación.
Diseño del sistema. Tres actividades que son ejecutadas secuencialmente: realizar el diseño
funcional, realizar el diseño técnico y realizar el diseño del programa, que pueden ser
apoyadas por técnicas de DMADV.
Construcción. Es útil comparar la funcionalidad del código contra la matriz de requisitos
del cliente descritos en QFD (Quality Function Deployement).
Pruebas. Un plan de pruebas ayuda a reducir la variación y asegurar que las medidas de
los defectos son repetibles y reproducibles.
Implantación. El objetivo es tener un producto entregable al cliente y colocarlo en produc-
ción en el entorno de trabajo.
9.6.1. COMPETISOFT
COMPETISOFT es una iniciativa integradora de diferentes propuestas de mejora de procesos
software para Pymes desarrolladoras de software. Su objetivo es mejorar el nivel de competi-
tividad de las Pymes productoras de software mediante la creación y difusión de un marco
metodológico común.
73
en tres procesos. t’La categoría de Operación realiza sus actividades de acuerdo a las directri-
ces marcadas por la categoría de Gerencia, y le debe entregar toda la información y productos
generados.
9.6.2.1. Visión general La visión general introduce todos los conceptos principales necesarios
para comprender y utilizar los documentos del ISO/IEC 29110.
9.6.2.2. Perfiles (ISP) Los perfiles se definen con el objetivo de empaquetar referencias a y/o
partes de otros documentos de manera formal con el fin de adaptarlos a las necesidades y
características de las VSE. Preparar perfiles implica producir dos tipos de documentos para esta
norma:
Marco de trabajo y taxonomía. Este documente establece la lógica detrás de la definición y
aplicación de los perfiles. Especifica los elementos comunes a todos los perfiles e introduce
la taxonomía de los perfiles. Este documento está dirigido a autores y revisores de ISP.
Especificaciones de perfil. Por cada perfil, hay un documento de especificación de perfil. Su
propósito es proporcionar la composición definitiva de un perfil, proporcionar enlaces
normativos al subconjunto normativo de estándares usados en el perfil, y proporcionar
enlaces informativos a documentos de “entrada”.
74
9.6.2.3. Guías Las guías contienen directrices de aplicación sobre cómo realizar los procesos
para alcanzar los niveles de madurez. Las guías se desarrollan para la implementación del pro-
ceso y para la evaluación basada en aspectos de dominio, prácticas y riesgos del negocio. Las
guías están dirigidas a VSE y deberían ser accesibles por la VSE. Hay dos tipos de guías:
Guía de evaluación. Esta guía describe el proceso a seguir para realizar una evaluación
que determine las capacidades de proceso y/o la madurez organizacional.
Guías de ingeniería y gestión. Las guías de ingeniería y gestión proporcionan orientación
sobre la implementación de un perfil. Para cada perfil, existe un documento de guía de
ingeniería y gestión.
75
10. Evaluación y mejora de procesos (apuntes E.D.)
10.1. Introducción
La calidad del software está tomando mayor importancia en las organizaciones por su in-
fluencia en los costes finales y como elemento diferenciador de la competencia.
Los modelos de calidad existentes ofrecen normas y parámetros, con pasos específicos para
la creación de proyectos informáticos. La calidad del software es fundamental y su evaluación
se hace pertinente para que se cumplan los propósitos que se quieren lograr.
Favorecer su desarrollo.
Ganar cuota de mercado y acceder a mercados exteriores gracias a la confianza que genera
entre los clientes.
Los beneficios ante los clientes son:
Aumento de la satisfacción.
Eliminar múltiples auditorías.
Acceder a acuerdos de calidad concertada con los clientes.
El control de calidad debe ser aplicado a todas las fases de la producción de software,
incluido el mantenimiento y tareas posteriores a su implantación.
Debe existir una estricta colaboración entre la organización que adquiere el software y el
proveedor del mismo.
El proveedor del software debe definir su sistema de calidad.
Como ya hemos comentado el ISO 90003 es una guía que está formada por una serie de cláusulas
que indican cómo aplicar esta guía. Las cláusulas más importantes que componen el ISO 90003
son:
Administración de la Responsabilidad. Permite organizar la estructura del sistema de ca-
lidad, abordando la estrategia y organización como requerimientos para verificar y revisar
la calidad.
Sistema de Calidad. Requiere una planificación y documentación del sistema de calidad,
requisito conocido como Plan de Garantía de Calidad del Software o SQAP.
76
Acción correctora. No existe una receta para el proceso de acciones correctoras, pero el
estándar IEEE 1044 nos puede ser útil para clasificar los tipos de anomalías que pueden
ser encontradas.
Revisión del contrato. Esta cláusula insiste en la necesidad de que el proveedor examine
los contratos referidos al sistema de calidad.
Especificación de los requerimientos de la Organización. Se establece la premisa, de la
mutua colaboración entre el proveedor y la organización que adquiere el producto softwa-
re.
Planificación del desarrollo. Esta cláusula sitúa los requerimientos en un plan de desarro-
llo.
Planificación de la Calidad. La metodología de medidas de calidad puede sernos útil para
establecer los objetivos de calidad.
Diseño e implementación/testeo y validación. Estas dos cláusulas se centran en las activi-
dades centrales del proceso de desarrollo de software.
Adaptación. Estas pruebas son más bien generales, dado que en los estándares no hay
definido un homólogo.
Generación, entrega e instalación. Los requerimientos de pruebas y medios de control.
Mantenimiento. Esta cláusula proporciona una extensa lista de requerimientos de calidad,
para la fase de mantenimiento del ciclo de vida.
Las cláusulas restantes proporcionan requerimientos para las actividades de soporte, es decir
aquellas que no son específicas de ninguna fase en concreto.
Administración de la configuración/documentos de control. Las actividades que detallan
estos requerimientos, se encuentran en los llamados Planes de Gestión de la Configuración
del Software.
Medidas, reglas y convenciones, herramientas y técnicas. Estas cláusulas nos hablan del
uso de procedimientos y herramientas apropiados para implementar el sistema de calidad.
Compra/productos de software incluidos. Los requerimientos que rigen las compras del
proveedor de los vendedores se encuentran en estas dos cláusulas.
Formación. La única mención que se realiza en los estándares se encuentra en el estándar
730.
Se puede considerar que las relaciones más significativas y directas que mantiene el estándar
ISO 90003 son las que los relacionan con el ISO 9001 y con el IEEE 730, ya vistas en la Parte III.
El primero proporciona normativas de requerimientos para garantizar la calidad de los siste-
mas y es uno de los estándares de calidad más relevantes para la ingeniería del software. El ISO
90003 nos proporciona una guía específica para aplicar las necesidades del ISO 9001 al software.
La estrategia seguida por el 90003 es ampliar la parte de diseño del 9001, mientras dejará sin
tocar las otras partes.
El estándar IEEE 730 establece el puente entre la gestión de la calidad y la ingeniería del
software, el cual recomienda unos requerimientos para llevar a cabo un Plan de Garantía de
Calidad asociado a un proyecto de software. Mientras que la ISO 90003 está pensada para ser
aplicada en toda una organización, el IEEE 730 es aplicado a un único proyecto dentro de esa
organización.
77
de defectos, ayuda a la toma de decisiones sobre tecnologías, diseño y arquitectura de sistemas,
basadas en datos reales.
La meta de Six-Sigma es llegar a un máximo de 3,4 defectos por millón de eventos u oportu-
nidades (DPMO), entendiéndose como defecto a cualquier evento en que un producto o servicio
no logra cumplir los requisitos del cliente.
Si desarrollamos los principales principios en los que se basa Six-Sigma:
1. Liderazgo comprometido de arriba a abajo. La estrategia se apoya y compromete desde
los niveles más altos de la dirección y la organización.
2. Six-Sigma se apoya en una estructura directiva que incluye personal a tiempo completo.
Cada uno de los líderes tiene roles y responsabilidades específicas para formar proyectos
de mejora.
3. Entrenamiento. Cada uno de los actores del programa de Six-Sigma requiere de unos
entrenamientos específicos.
4. Acreditación.
5. Orientada al cliente y enfocada a los procesos. Esta metodología busca que todos los pro-
cesos cumplan con los requerimientos del cliente y que los niveles de calidad y desempeño
cumplan con los estándares de Six-Sigma. Se requiere profundizar en el entendimiento del
cliente y sus necesidades.
6. Dirigida con datos. Los datos son necesarios para identificar las variables de calidad y los
procesos y áreas que tienen que ser mejorados.
7. Se apoya en una metodología robusta. Se requiere de una metodología para resolver los
problemas del cliente, a través del análisis y tratamiento de los datos obtenidos.
11. Six-Sigma se comunica. Los programas de Six-Sigma se basan en una política intensa de
comunicación entre todos los miembros y departamentos de una organización, y de fuera
de la organización.
El Ciclo de Vida del Desarrollo de Software (SDLC) consiste fundamentalmente en cuatro fases:
Análisis, Diseño, Implementación y Pruebas. En el apartado 9.4 de este texto se describe de
manera general cómo Six-Sigma puede ser aplicado e integrado en estas fases.
El alumno debe conocer los dos procesos metodológicos que se proponen en Six-Sigma:
DMAIC para operaciones ya existentes y DMADV para nuevos productos o servicios.
4. Mejorar.
5. Controlar.
78
10.3.2.1. Definir En la fase de definición se identifican los posibles proyectos Six-Sigma que
deben ser evaluados por la dirección para evitar la inadecuada utilización de recursos.
Las salidas que debe proporcionar esta fase son:
10.3.2.3. Análisis En la fase de análisis, el equipo evalúa los datos de resultados actuales e
históricos. Se desarrollan y comprueban hipótesis sobre posibles relaciones causa-efecto.
Identificar las causas (X) de variación y defectos.
Proporcionar evidencia estadística para probar que las causas son reales.
Comprometerse con la meta de mejora para Y.
Las salidas que debe proporcionar esta fase son:
79
10.3.2.5. Control Esta fase de control consiste en diseñar y documentar los controles necesa-
rios para asegurar que lo conseguido mediante el proyecto Six-Sigma se mantenga una vez que
se hayan implementado los cambios.
Las salidas que debe proporcionar esta fase son:
Nuevos procedimientos operativos estándar y controles ya instalados.
Datos de la nueva capacidad del proceso.
Comparación del nuevo nivel de desempeño con la meta.
80
Parte V
Técnicas y Herramientas para la calidad del
software
11. Técnicas y herramientas de calidad (apuntes E.D.)
11.1. Herramientas básicas de medición
11.1.1. Diagrama de flujo
El diagrama de flujo es una representación gráfica de una secuencia de pasos que se realizan
para obtener un resultado. El resultado perseguido puede ser un producto, un servicio, o bien
una combinación de ambos. El proceso para la construcción de un diagrama puede incluir los
siguientes pasos:
1. Preparación de la construcción del diagrama. El grupo de trabajo identificará los organis-
mos implicados en el proceso que debe ser analizado.
2. Desarrollo de la construcción. Definir claramente la utilización del diagrama de flujo y el
resultado que se espera obtener de la sesión de trabajo. Definir los límites del proceso en
estudio. La mejor forma de definir y clarificar dicha definición de los límites del proceso es
decidir cuáles son el primer y último paso del diagrama de flujo. Esquematizar el proceso
en grandes bloques o áreas de actividades. Identificar los grupos de acciones más relevan-
tes del proceso y establecer su secuencia temporal. Realizar el trabajo adecuado para los
puntos de decisión o bifurcación. Cuando se llega a u paso en el que existe un punto de
decisión o bifurcación:
Un ejemplo podría ser la emisión de billetes y facturación de equipajes de una línea aérea para
clientes que llegan sin billetes al aeropuerto. Se plantearía al cliente la realización de dos colas:
una para sacar el billete y otra para la facturación de acuerdo al siguiente proceso (Figura 13).
5. Añadir causas para cada línea principal. Se rellenan cada una de las ramas principales
con sus causas del efecto enunciado. Para incluir estas en el diagrama se escriben al fi-
nal de unas líneas, paralelas a la de la flecha central, y conectadas con la línea principal
correspondiente.
81
Figura 13: Diagrama de flujo para un cliente que desea tomar un vuelo.
6. Añadir causas subsidiarias para las subcausas anotadas. Cada una de ellas se coloca al
final de una línea que se traza para conectar con la línea asociada al elemento al que afecta
y paralela a la línea principal. Este proceso continúa hasta que cada rama alcanza la causa
raíz. Causa raíz es aquella que:
7. Comprobar la validez lógica de cada cadena causal. Para cada causa raíz leer el diagrama
en dirección al efecto analizado, asegurándose de que cada cadena causal tiene sentido
lógico y operativo. Por ejemplo, dado el texto “Un error de lectura es causa de la fatiga,
que es causa de un error en el número codificado”, mostramos su representación en la
Figura 14.
82
Ejemplo En una organización se encarga a un equipo de mejora la solución del problema de
los retrasos en el proceso de órdenes de compra. Para identificar posibles causas del retraso,
se construye un diagrama de causa-efecto mediante proceso lógico paso por paso. El enfoque
adoptado consistió en basar la ordenación del diagrama en las fases del proceso, previamen-
te identificadas a través de un diagrama de flujo. Se observa en la Figura 15 el diagrama de
causa-efecto resultante.
8. De izquierda a derecha trazar las barras para cada categoría en orden descendente. Si existe
una categoría “otros”, debe ser colocada al final sin importar su valor.
9. Trazar la escala del eje vertical derecho para el porcentaje acumulativo, comenzando por el
0 y hasta el 100 %.
10. Trazar el gráfico lineal para el porcentaje acumulativo, comenzando en la parte superior
de la barra de la primera categoría.
11. Dar un título al gráfico.
12. Analizar la gráfica para determinar los “pocos vitales” (las categorías que tienen más peso).
83
Ejemplo Un gran almacén, que registraba elevados costes por hurtos, encargó a un grupo de
trabajo resolver el problema. El equipo decidió empezar las investigaciones recogiendo datos
sobre los costes por hurtos en varias secciones a partir de los cuales realizó un diagrama de
Pareto:
En las primeras cuatro secciones se registran el 77 % de los costes totales por hurtos. Estas
son las “pocas vitales”. El equipo tendrá que concentrar sus esfuerzos en buscar soluciones que
evitan los hurtos en estas cuatro secciones.
a) Formular, de manera precisa, las preguntas que necesitamos contestar en cada mo-
mento para decidir de forma adecuada las futuras acciones a realizar.
84
b) Recoger los datos relativos a esta pregunta.
c) Analizar esos datos para determinar la respuesta a las preguntas planteadas.
d) Presentar los datos de forma que dicha presentación sea capaz de comunicar clara-
mente la respuesta a dichas preguntas.
11.1.5.1. Gráficos de Control por Variables Los pasos que hay que dar para elaborar un dia-
grama de control por variables son los siguientes:
Determinar el indicador de calidad que mejor describa la situación de calidad a controlar.
Tomar valores del indicador de muestras a intervalos regulares de tiempo (unos 25 valores).
85
Decidir el tipo de gráfico de control por variable que deba utilizarse.
Calcular los parámetros estadísticos necesarios (tamaño de la muestra, media, recorrido y
límites de control).
X-Barra o de Medias: permite estudiar cómo varían las medias de las muestras estudiadas.
R o Recorrido: permite estudiar cómo varían los rangos de los valores muestrales estudia-
dos. Se utiliza cuando el tamaño de las muestras es inferior a 10.
S o de desviación típica (σ): permite estudiar cómo varían las desviaciones típicas de los
valores muestrales estudiados. Se utiliza cuando el número de muestras es superior a 10.
X-Barra / R o de Medias-Recorridos: son la representación conjunta de un gráfico X-Barra
con uno R. Si se presentan gráficos paralelos, entonces la distribución sería sesgada. Es
interesante siempre comparar la media de los rangos con la variación permitida.
Ejemplo Gráficos de Control “X, R”. Una empresa productora de ladrillos de construcción
recibió fuertes quejas de su mayor cliente por la inconstancia de la calidad de su producto. Una
de las características principales del ladrillo de construcción es el porcentaje de absorción de
agua. Se decidió controlar el proceso en base a esta característica, utilizando gráficos de control
por variables X, R. Durante una semana se recogieron, en cada uno de los 5 días laborables, una
muestra de cinco ladrillos cada dos horas (4 muestras por jornada de trabajo). Los resultados se
muestran en la tabla de la Figura 18.
86
Figura 19: Límites de Control.
Número de defectos del producto: se pretende determinar si el proceso está bajo control,
estudiando el número de defectos que tiene cada producto. En función de la profundidad
del estudio se encuentran los siguientes diagramas:
87
• Tipo C o de número de no conformidades: representa el número de defectos de todas
las unidades producidas con respecto del tiempo.
• Tipo U o número medio de no conformidades: se realiza calculando la media del
número de unidades no conformes.
Ejemplo Reducción de los rechazos en la inspección final. En una fábrica de montaje de equipos
de medición se presentaban numerosos rechazos en la estación final de inspección. Con el fin
de reducir el porcentaje de rechazos y los costes asociados se desarrolló un plan de mejora en
dos etapas: conseguir primero que el proceso trabajara “bajo control”, eliminando una a una
las causas especiales de variación, y estudiar luego posibilidades de mejora del proceso mismo.
Para realizar la primera parte del plan se decidió utilizar los Gráficos de Control de Número de
Unidades no Conformes “np”. Como “unidad no conforme” se definió a aquel equipo rechazado
en la inspección final.
Para construir el gráfico de control se tomó una muestra diaria de 50 equipos de medición,
procurando que fueran equipos pertenecientes al mismo lote, durante 20 días consecutivos. Los
resultados obtenidos fueron los que se muestran en el Cuadro 7.
√
LCS = n p + 3 ∗ n p = 7, 6 + 3 ∗ 2, 75 = 15, 87
88
√
LCI = n p − 3 ∗ n p = 7, 6 − 3 ∗ 2, 75 = −0, 67
Y por lo tanto puesto que todas las muestras están dentro de los límites de control, el proceso
se encuentra bajo control estadístico. La alta fracción de equipos no conformes no es entonces
debida a causas externas y asignables, sino a causas internas del proceso. La única alternativa
posible es actuar sobre el propio diseño del proceso. Podemos apreciar en la Figura 19 el Gráfico
de Control resultante.
89
1 public class Calculadora {
2 public double Suma(double num1, double num2) {
3 return num1+num2;
4 }
5 }
Lo primero será incluir la clase TestCase y la clase que estamos probando. A continuación
creamos la nueva clase que extiende la clase TestCase, que llamaremos TestCalculadora:
1 import junit.framework.TestCase;
2
3 public class TestCalculadora extends TestCase {
4 public void testSuma() {
5 Calculadora calc = new Calculadora();
6 double resultado = calc.Suma(123,321);
7 assertEquals(resultado, 444);
8 }
9 }
11.2.1. Anotaciones
Las anotaciones son un mecanismo alternativo a la realización de aserciones de forma que
se pueden crear y ejecutar pruebas de una forma más legible. Consiste en palabras reservadas
que comienzan por el símbolo @ y que indican a la API de JUnit determinadas instrucciones
concretas. Las anotaciones más comunes son:
@Test public void method(): identifica a un método de prueba.
@Before public void method(): indica que el siguiente método se debe ejecutar antes de
cada test.
@After public void method(): indica que el método se debe ejecutar después de cada test.
@Ignore: marca que el método de prueba se debe ignorar. Útil cuando se han realizado
actualizaciones sobre el código pero no sobre los casos de prueba.
@Test (expected = Exception class): prueba de excepción. Falla si el método no genera la
excepción esperada.
@Test (timeout = TIMEOUT): prueba de duración. Falla si se tarda más de TIMEOUT ms.
Por ejemplo, si tenemos el siguiente caso de prueba básico:
1 import junit.framework.TestCase;
2
3 public class PruebaUnitaria extends TestCase {
4 String MICADENA;
5
6 public void setUp() {
7 MICADENA = "inicial";
8 }
9
10 public void testValue() {
11 this.Assert.assertEquals("inicial", MICADENA);
12 MICADENA += " 1";
13 this.Assert.assertEquals("inicial 1", MICADENA);
14 }
15
16 public void tearDown() {
17 value = "";
18 }
19 }
90
5 String MICADENA;
6
7 @Before
8 public void setUp() {
9 MICADENA = "inicial";
10 }
11
12 @Test
13 public void testValue() {
14 Assert.assertEquals("inicial", MICADENA);
15 MICADENA += " 1";
16 Assert.assertEquals("inicial 1", MICADENA);
17 }
18
19 @After
20 public void tearDown() {
21 value = "";
22 }
23
24 public static junit.framework.Test suite() {
25 return new JUnit4TestAdapter(PruebaUnitaria.class);
26 }
27 }
Ejemplo con anotaciones Realizar los casos de prueba que considere adecuados para la si-
guiente clase:
1 public class Rectangulo {
2 private int altura;
3 private int anchura;
4
5 Rectangulo() {
6 altura = 0;
7 anchura = 0;
8 }
9
10 Rectangulo(int h, int w) {
11 altura = h;
12 anchura = w;
13 }
14
15 public int getH() {
16 return altura;
17 }
18 public int getW() {
19 return anchura;
20 }
21 public int getA() {
22 return altura*anchura;
23 }
24
25 public String toString() {
26 return "Rectángulo: altura=" + altura + ", anchura =" + anchura + ", área=" +
getA() + ".";
27 }
28 }
Solución:
1 import static org.junit.Assert.*;
2 import org.junit.*;
3
4 public class Prueba_Rectangulo {
5 Rectangulo r;
6 Rectangulo r[] RLista = new Rectangulo[5];
7
8 @Before
9 public void testSetup() {
10 System.out.println("Inicio de pruebas.");
11 }
12
13 @After
91
14 public void testComplete() {
15 System.out.println("Final de pruebas.");
16 }
17
18 @Test
19 public void Caso1() {
20 r = new Rectangulo();
21 try {
22 assertTrue("Caso 1: Valores por defecto", r.getH() == 0 && r.getW() == 0);
23 System.out.println("Caso 1 - OK.");
24 } catch (AssertionError e) {
25 System.err.println(e.getMessage());
26 }
27 }
28
29 @Test
30 public void Caso2() {
31 r = new Rectangulo();
32 try {
33 r = new Rectangulo(8,9);
34 assertTrue("Caso 2: Constructor con valores", r.getH() == 8 && r.getW() == 9
&& r.getA() == 72);
35 System.out.println("Caso 2 - OK.");
36 } catch (AssertionError e) {
37 System.err.prinln(e.getMessage());
38 }
39 }
40
41 @Test
42 public void Caso3() {
43 r = new Rectangulo();
44 try {
45 for(int i=0; i<5; i++) {
46 RLista[i] = new Rectangulo(2*i,3*i);
47 RLista[i].setH(10*i);
48 RLista[i].setW(5*i);
49 assertTrue("Caso 3: Modificación de valores", RLista[i].getH() == 10*i &&
RLista[i].getW() == 5*i && RLista[i].getA() == 50*i*i);
50 }
51 System.out.println("Caso 3 - OK.");
52 } catch (AssertionError e) {
53 System.err.println(e.getMessage());
54 }
55 }
56 }
Ejemplo aplicado En este ejemplo se trata la prueba de un ejemplo simple de método que
realiza facturas de productos vendidos.
1 public class TestFactura extends junit.framework.TestCase {
2
3 public void main (String[] args) {
4 junit.textui.TestRunner.run(TestFactura.class);
5 }
6
7 // Constructor obligatorio, no existe por defecto para la clase TestCase
8 public TestFactura(String name) {
9 super(name);
10 }
11
12 public void testSumaArticulos() {
13 Factura miFactura = new Factura();
14 miFactura.add(new Articulo("articulo 1", 3, 1500.0));
15 miFactura.add(new Articulo("articulo 2", 1, 5000.0));
16
17 assertNotNull("La factura no puede ser nula", miFactura);
18 assertEquals("El total de la factura está mal calculado", 3*1500+5000, 0.0001,
miFactura.getTotal());
19 assertEquals("El número de artículos está mal calculado", 4, miFactura.
countArticles());
20 }
21
92
22 public void testValidacionFactura() {
23 Factura miFactura = new Factura();
24 miFactura.add(new Article("Artículo 1", 3, 1500.0));
25 miFactura.add(new Article("Artículo 2", 1, 5000.0));
26 miFactura.validar();
27
28 assertTrue("La validación de la factura no se ha realizado", miFactura.EsValida
());
29 try {
30 miFactura.add(new Articulo("Artículo 3", 1, 2000.0));
31 fail("Cambiada la factura después de validación");
32 } catch (FacturaException e) {
33 // Aquí se llega en caso de que no haya fallos, puesto que no se puede
cambiar
34 // la factura una vez validada.
35 }
36 }
37 }
93