Академический Документы
Профессиональный Документы
Культура Документы
1
Manual Aseguramiento Calidad de Software
2
Manual Aseguramiento Calidad de Software
PHILIP CROSBY
Menciona que la calidad es gratis, definiéndola como “Conformidad con los requerimientos"
e indicando que el 100% de la conformidad es igual a cero defectos.
Establece que en las organizaciones que no se trabaja con un plan que contemple la calidad,
los retrabajos y desperdicios alcanzan del 20 al 40%.
Promueve sus 14 pasos para administrar la calidad en un libro denominado "Calidad sin
Lágrimas".
Autor del libro " La Calidad es Gratis ", se le conoce por su lema de Cero Defectos.
La aproximación de CROSBY
Compromiso de la dirección.
Equipo de mejora de la calidad.
Medición de la calidad.
Evaluación del coste de la calidad.
Conciencia de la calidad.
Acción correctora.
Planificación del cero defectos.
El día cero defectos.
Entrenamiento de los supervisores.
Fijación de metas.
3
Manual Aseguramiento Calidad de Software
Eliminación de metas.
Eliminación de causas de error.
Reconocimiento.
Consejos de calidad.
Hacerlo todo de nuevo.
La aproximación de DEMING:
No se pueden tolerar los niveles aceptados de error.
Crear constancia en el propósito de mejorar el producto/servicio.
Dejar de depender de la inspección en masa.
Dejar hacer negocios sobre la base del precio.
Mejorar el sistema de producción y servicio.
Implantar la formación.
Erradicar el miedo.
Adoptar e implantar el liderazgo.
Derribar las barreras entre departamentos.
Eliminar los eslóganes exhortaciones y metas
Eliminar cuotas numéricas.
Fomentar el orgullo por el trabajo.
Estimular la educación y la auto mejora.
Lograr la transformación.
4
Manual Aseguramiento Calidad de Software
JOSEPH M. JURAN
Afirma que la Alta Administración es la responsable del cambio, abogando por crear el
cambio cuando el proceso necesita mejorarse y por prevenir el cambio cuando los problemas
son esporádicos.
Logró desarrollar la técnica de los Costos de Calidad, elaborando un Manual de Calidad, en
donde existe un fuerte contenido administrativo enfocado a la planeación, organización y
responsabilidad.
En 1954 fue invitado por el JUSE para dar conferencias en Japón, por lo que junto con
Deming e Ishikawa se les considera los principales promotores del éxito de Japón.
La aproximación de JURAN
Planificación de la calidad.
Identificar los clientes.
Establecer las necesidades de los clientes.
Desarrollo de productos/servicios según necesidades del cliente.
Desarrollo de procesos acorde con los productos anteriores.
Transferir los planes resultantes al personal.
Control de calidad.
Evaluar los resultados operativos.
Comparar los resultados con los objetivos.
Actuar en función de las diferencias corrigiendo las desviaciones.
Mejora de la calidad.
Establecer las infraestructuras necesarias para conseguirla.
Identificar las necesidades concretas para mejorar.
Establecer un equipo responsable.
Proporcionar los recursos, motivación y formación al equipo.
5
Manual Aseguramiento Calidad de Software
WALTER A. SHEWHART
La mayor parte de su carrera profesional la ejerció como ingeniero en Western Electric de
1918 a 1924, y en los laboratorios Bell Telephone como miembro del cuerpo técnico de 1925
hasta su retiro en 1956. También dio cátedras sobre control de calidad y estadísticas
aplicadas en la Universidad de Londres, el Instituto Stevens de Tecnología, la escuela de
graduados del Departamento de Agricultura de Estados Unidos y en la India. Fue miembro
del comité de visitas en el Departamento de Relaciones Sociales de Harvard, profesor
honorario en Rutgers y miembro del comité consultivo del departamento de matemáticas de
Princeton. Miembro fundador de la Sociedad Americana de Calidad (ASQ).
Sin embargo, la calidad del software es un concepto complejo que no se puede definir de una
forma simple. Clásicamente, la noción de calidad es que el producto desarrollado cumple sus
especificaciones (Crosby), 1979). En un mundo ideal, esta definición aplica a todos los
productos pero, para sistemas de software, existen problemas:
6
Manual Aseguramiento Calidad de Software
Obviamente, se han hecho esfuerzos para mejorar las especificaciones, pero en la actualidad
se tiene que aceptar que son imperfectas. Se reconocen los problemas con las
especificaciones existentes y se diseñan procedimientos para mejorar la calidad dentro de las
restricciones impuestas por una especificación imperfecta. En particular, los atributos de
software, como la mantenibilidad, la portabilidad o la eficiencia, son atributos de calidad
críticos que no se especifican explícitamente pero que afectan la calidad percibida del
sistema.
Los buenos administradores de la calidad tienen como propósito desarrollar una “cultura de
la calidad” donde cada persona responsable del desarrollo del producto es motivada para que
logre un alto nivel de la calidad del producto. Fomentan en los equipos a tomar
responsabilidad de la calidad de su trabajo y a desarrollar nuevos enfoques de mejora de la
calidad. Aunque los estándares y los procedimientos son la base de la administración de la
calidad, los administradores de la calidad experimentando reconocen que existen aspectos
intangible para la calidad del software (elegancia, transparencia, etc) que no están incluidas
en los estándares. Apoyan al personal interesado en estos aspectos inteligibles de la calidad y
fomentan el comportamiento profesional en todos los miembros del equipo.
7
Manual Aseguramiento Calidad de Software
Puesto que los miembros del equipo de aseguramiento y control de la calidad son
independientes, pueden tomar una visión objetiva del proceso y reportar problemas y
dificultades a los administradores principales de la organización.
8
Manual Aseguramiento Calidad de Software
ISO 9001 es un modelo genérico de un proceso de calidad. Describe varios aspectos de ese
proceso y define que estándares y procedimientos deben existir dentro de una organización.
Puesto que no se refiere específicamente a una industria, no están definidos en detalle.
Dentro de una organización especifica, el conjunto de procesos de calidad apropiados se
define y documenta en un manual de calidad.
9
Manual Aseguramiento Calidad de Software
Las actividades de aseguramiento de la calidad (QA) definen un marco de trabajo para lograr
la calidad del software. Los procesos QA comprenden definir o seleccionar estándares
aplicables al proceso de desarrollo de software o a los productos de software. Estos
estándares pueden estar incrustados en procedimientos o procesos aplicables durante el
desarrollo. Los procesos se pueden apoyar en herramientas que capturan el conocimiento de
los estándares de calidad.
Existen dos tipos de estándares que se establecen como parte del proceso de
aseguramiento de la calidad:
Existe una relación muy cercana entre los estándares del producto y del proceso. Los
estándares del producto se aplican a las salidas del proceso del software y, en muchos
casos, los estándares del proceso incluyen actividades específicas del proceso que
aseguran que se siguen los estándares del producto.
10
Manual Aseguramiento Calidad de Software
Los standards aseguran que todos los ingenieros dentro de una organización adopten las
mismas prácticas. En consecuencia, se reduce el esfuerzo de aprendizaje cuando se comienza
un nuevo trabajo.
11
Manual Aseguramiento Calidad de Software
Algunas veces los ingenieros de software consideran a los estándares como burocráticos e
irrelevantes para las actividades técnicas del desarrollo de software. Esto es así cuando los
estándares requieren llenar formularios tediosos y registrar el trabajo. Aunque por lo general
los ingenieros están de acuerdo en que los estándares son necesarios, a menudo tienen buenas
razones del porque dichos estándares no son necesariamente apropiados para su proyecto en
particular.
Para evitar estos problemas, los administradores de la calidad que fijan los estándares
requieren estar informando a tomar en consideración los siguientes pasos:
12
Manual Aseguramiento Calidad de Software
2. Revisar y modificar los estándares de forma regular con el fin de reflejar las
tecnologías cambiantes. Una vez que los estándares se desarrollan, tienden a
plasmarse en un manual de estándares de la organización y a menudo existe una
resistencia a cambiarlos. Un manual de estándares es esencial pero debe evolucionar
acorde a las circunstancias y la tecnología cambiantes.
3. Proveer herramientas de software para apoyar a los estándares donde sea necesario.
Los estándares clericales son la causa de muchas quejas debido al trabajo tedioso que
se requiere para implementarlos. Si se dispone de una herramienta de apoyo, no existe
la necesidad de esfuerzo adicional en el desarrollo de los estándares.
13
Manual Aseguramiento Calidad de Software
Documentación interna
La documentación interna contiene información dirigida a quienes leerán el código fuente del
programa. Se incluye información sumaria para identificar el programa y describir algoritmo,
estructuras de datos y flujo de control. Usualmente esta información se ubica al comienzo de
cada componente en un conjunto de comentarios que se denomina bloque de encabezado.
Encabezamiento: Así como un buen periodista incluye el por que, el cuando, el donde, y los
quienes de una historia, es necesario incluir al comienzo de los programas un
encabezamiento que contenga la siguiente información acerca de cada componente:
14
Manual Aseguramiento Calidad de Software
15
Manual Aseguramiento Calidad de Software
3. Estándares para el intercambio de documentos. Estos aseguran que todas las copias
electrónicas de los documentos sean compatibles.
Los estándares del proceso definen el proceso utilizando para producir los documentos. Esto
implica definir los procedimientos involucrados en el desarrollo del documento y las
herramientas de software utilizadas para la producción del documento. También definen
procedimientos de comprobación y refinamiento que aseguren que se produzcan documentos
de alta calidad.
Los estándares de calidad del proceso de documentos deben se flexibles y les debe ser
posible ajustarse a todos los tipos de documentos. Para los documentos de trabajo o
memorando, no es necesario comprobar explícitamente la calidad. Sin embargo, si los
documentos son documentos formales utilizados para desarrollos posteriores o son
documentos a entregar a los clientes, se debe adoptar un proceso formal de calidad. La
(figura 24.5) muestra uno de los modelos.
16
Manual Aseguramiento Calidad de Software
17
Manual Aseguramiento Calidad de Software
La calidad del proceso es muy impotente en el desarrollo del software. La razón esto es que
es difícil medir los atributos de software, como la mantenibilidad, sin utilizar el software por
un periodo largo. El mejoramiento de la calidad se centra en identificar buenos productos de
calidad, examinar el proceso utilizado para desarrollar estos productos y después generalizar
estos procesos para que se apliquen a varios proyectos. Sin embargo, la relación entre el
proceso del software y la calidad del producto de software es compleja. Cambiar el proceso
no siempre conduce a mejorar la calidad del producto.
18
Manual Aseguramiento Calidad de Software
Existe un vínculo claro entre la calidad del proceso y la calidad del producto en la
manufactura debido a que el proceso es relativamente fácil de estandarizar y supervisar. Una
vez que se calibran los sistemas, se ejecutan una y otra vez para producir producto de
software de alta calidad. El software no se manufactura, se diseña. Puesto que el
desarrollo de software es un proceso creativo más que mecánico, la influencia de las
habilidades individuales y las experiencias es importante. Los factores externos, como la
novedad de la aplicación o la presión comercial para entregar un producto, también
afectan la calidad del producto con respecto al proceso utilizado.
Sin embargo, la calidad del proceso tiene una influencia importante en la calidad del
software. La administración de la calidad del proceso comprende:
19
Manual Aseguramiento Calidad de Software
La planeación de la calidad inicia en las primeras etapas del proceso del software. Un plan de
calidad define la calidad del producto deseado. Define como valorar esta calidad. Por lo
tanto define lo que significa “software de alta calidad”. Sin tal definición, los diferentes
ingenieros pueden trabajar en direcciones opuestas de tal forma que optimicen distintos
atributos del producto. El resultado de un proceso de planeación de la calidad es un plan de
calidad del proyecto.
20
Manual Aseguramiento Calidad de Software
El control de la calidad implica vigilar el proceso de desarrollo de software para asegurar que
se sigan los procedimientos de aseguramiento y estándares de calidad. Los productos
resultantes de un proceso de software se comprueban contra los estándares definidos del
proyecto en el proceso d control de calidad.
21
Manual Aseguramiento Calidad de Software
El equipo de revisión incluye aquellos miembros del proyecto que pueden hacer una
contribución efectiva. Por ejemplo, si se revisa el diseño de un subsistema, los diseñadores de
los subsistemas relacionados se incluyen en el equipo de revisión. Ellos proporcionan
aspectos importantes en las interfaces de subsistemas que podrían estar olvidadas si el
subsistema se considera de forma aislada.
El equipo de revisión tiene un cuerpo principal de tres a cuatros personas designadas como
revisores principales. Uno de los miembros es el diseñador principal que tiene
responsabilidad de tomar decisiones técnicas impotentes. Los revisores principales invitan a
otros miembros del proyecto para que contribuyan en la revisión. Ellos no se involucran en la
revisión de todo el documento. Más bien, se concentran en aquellas partes que afectan a su
trabajo. De forma alternativa, el equipo de revisión hace circular el documento a revisar y
solicita comentarios escritos de otros miembros del equipo del proyecto.
22
Manual Aseguramiento Calidad de Software
Los documentos a revisar se distribuyen con anterioridad a ka revisión para dar tiempo a los
revisores a que lo lean y comprendan. Aunque esto puede interrumpir el proceso de
desarrollo, la revisión no es efectiva si el equipo de revisión no comprende adecuadamente
los documentos antes de que tenga lugar la revisión.
La revisión misma es relativamente corta (dos horas a lo más). El autor del documento en
revisión debe seguir el documento junto con el equipo de revisión. Un miembro del equipo
preside la revisión y otro registra formalmente todas las decisiones de la revisión. Durante
esta, el presidente es responsable de asegurar que se consideren todos los comentarios
escritos. Al término de la revisión, se anotan las acciones y los formularios que registran los
cometarios y las acciones son firmados por el diseñador y el presidente de la revisión.
Después, estos pasan a formar parte de la documentación formal del proyecto. Si solo se
descubren problemas menores, no es necesaria una revisión adicional. El presidente es
responsable de asegurar que se hagan los cambios requeridos. Si se requiere cambios
importantes, se acuerda un seguimiento de la revisión.
23
Manual Aseguramiento Calidad de Software
La medición del software se refiere a derivar un valor numérico para algún atributo de un
producto de software o un proceso del software. Comparando estos valores entre ellos y con
los estándares aplicados en la organización, es posible sacar conclusiones de la calidad del
software o de los procesos del software. Por ejemplo, suponga que una organización hace
planes para introducir una nueva herramienta de prueba de software. Antes de introducir la
herramienta, se registra el número de defectos descubiertos en el software en un tiempo dado;
después de introducir la herramienta, se repite este proceso. Si se descubren más defectos en
la misma cantidad de tiempo después de introducir la herramienta, entonces parecería que
provee ayuda útil para el proceso de validación del software.
Varias compañía grandes tales como Hewlett-Packerd (Grandy, 1993) y AT&T (Barnard y
Price, 1994) han introducido programas de métricas que utilizan métricas recolectadas en sus
procesos de administración de la calidad. El enfoque fue recolectar métricas sobre defectos
en los programas y en los procesos de verificación y validación. Offen y Jeffrey (1997) y
Hall y Fenton (1997) discuten la introducción de tales programas en la industria. El manual
ami (Pulford 1996) da consejos detallados sobre la medición y su utilización para la mejora
de procesos.
Sin embargo, aun es poco común la utilización de medidas y métricas sistemáticas de
software. Existe una reticencia para introducir medidas debido a que los beneficios no son
claros. Una razón de esto es que, en muchas compañías, los procesos del software utilizados
aun están pobremente organizados y no son suficientemente maduros como para utilizar las
medidas. Otra razón es que no existen estándares para las métricas y, por lo tanto, existe
ayuda limitada para la recolección y análisis de datos. Muchas compañías no estarán
preparadas para introducir mediciones hasta que estén disponibles tales estándares y
herramientas.
24
Manual Aseguramiento Calidad de Software
Una métrica de software es cualquier tipo de medida relacionada con un sistema, proceso o
documentación de software. Algunos ejemplos son las medidas que se utilizan para calcular
el tamaño de un producto en líneas de código, el índice de Fog (Gunning, 1962), que es una
medida de la claridad de un párrafo en un texto escrito, el numero de fallas reportadas en un
producto de software entregado y el numero de personas-día requeridas para desarrollar un
componente del sistema.
Las métricas son de control o de predicción. Las métricas de control por lo general se asocian
con los procesos del software; las métricas indicadoras se asocian con los productos de
software. Ejemplos de las métricas de control o de procesos son el esfuerzo y el tiempo
promedio requerido para reparar los defectos reportados. Ejemplos de métricas de predicción
son la complejidad ciclomatica de un modulo, la longitud promedio de los indicadores en un
programa y el numero de atributos y operaciones asociadas con los objetivos de un diseño.
Ambas métricas influyen en la toma de decisiones administrativas.
A menudo, es imposible medir los atributos de calidad del software de forma directa.
Los atributos como la mantenibilidad, la complejidad y la compresión se ven afectados por
diversos factores y no existen métricas directas para ellos. Más bien es necesario medir algún
atributo interno del software (como el tamaño) y suponer que existe una relación entre lo que
se puede medir y lo que se quiere saber. De forma ideal, existe una relación clara valida entre
los atributos de software internos y externos.
25
Manual Aseguramiento Calidad de Software
Figura 24.9
Metricas de prediccion
Y control
Proceso de Producto de
Desoftware software
Medidas de
Medidas de prediccion
control
Decisiones
administrativas
La figura 24.10 muestra algunos atributos de calidad externos de interés y los atributos que
pueden medirse y estar relacionados con los atributos externos. El diagrama sugiere que
existe una relación entre los atributos externos e internos pero no dice que relación es. Si la
medida del atributo interno es un indicador útil de la característica interna del software, se
deben cumplir tres condiciones (Kitchenham, 1990).
26
Manual Aseguramiento Calidad de Software
27
Manual Aseguramiento Calidad de Software
4. Identificar las mediciones anómalas. Una vez que se obtienen las mediciones de
los componentes, se comparan entre ellas y con las mediciones previas
registradas en una base de datos de mediciones. Se deben observar los valores
más altos y más bajos de cada métrica puesto que estos sugieren que puede haber
problemas con los componentes que exhiben estos valores.
28
Manual Aseguramiento Calidad de Software
Los datos recolectados se mantienen como un recurso organizacional, de igual forma los
registros históricos de todos los proyectos deben conservarse aun cuando los datos no se
hayan utilizado durante un proyecto particular. Una vez que se haya creado una base de
datos suficientemente grande de mediciones, se hace la comparación con los proyectos y
las métricas específicas se refinan de acuerdo con las necesidades organizacionales.
Figura 24.11
Proceso de medicion
Del producto
Analizar
Elegir medidas
Componentes
A realizar
anomalos
Seleccionar Identificar
Componenetes Medidas
A evaluar anomalas
Medir caracteristicas
De los componentes
29
Manual Aseguramiento Calidad de Software
Estas diferentes métricas están relacionadas con diversos atributos de calidad. Las métricas
dinámicas ayudan a valorar la eficiencia y la fiabilidad de un programa mientras que las
estáticas ayudan a valorar la complejidad, la compresión y la mantenibilidad de un sistema de
software.
Las métricas dinámicas por lo general están relacionadas de forma cercana con los atributos
de calidad del software. Es relativamente fácil medir el tiempo de ejecución requerido por
funciones particulares y estimar el tiempo requerido para iniciar un sistema. Esto se relaciona
directamente con la eficiencia del sistema. De forma similar, se puede registrar el número y
el tipo de caídas del sistema y relacionarlos directamente la fiabilidad del software.
30
Manual Aseguramiento Calidad de Software
31
Manual Aseguramiento Calidad de Software
32
Manual Aseguramiento Calidad de Software
33
Manual Aseguramiento Calidad de Software
Para conseguir tener un proceso de producción de software sin fallos, adecuado a las
necesidades estipuladas en un principio y entregado a tiempo, esta claro que la producción de
software debe convertirse en un proceso disciplinado y aceptado por todos.
Son varias las razones por las que puede fallar el proceso de software, mencionamos las
tres principales:
34
Manual Aseguramiento Calidad de Software
Hasta ahora hemos empleado el termino "proceso de software", pero ¿qué queremos decir
con este término?: "Un proceso es un conjunto de pasos definidos para lograr una
tarea", mientras que "un proceso definido es aquel que esta escrito a tal detalle que
permite que los ingenieros lo usen constantemente". Los procesos definidos ayudan a la
planificación y desarrollo de un trabajo. El proceso que establezcamos debe ser flexible y
debe facilitar el cambio y la innovación. Al mismo tiempo el proceso debe poder ser
aprendido.
Acabamos de ver una pequeña introducción al significado del CMM. También consideramos
brevemente las ventajas de su empleo en una organización. Ahora bien, ¿tan bueno es el
CMM que no tiene ningún inconveniente? Por supuesto que el CMM tiene inconvenientes,
aunque mejor deberíamos llamarlo riesgos.
El CMM puede ser mal interpretado, para evitarlo es conveniente que las personas que lo
utilicen comprendan el modelo y sus implicaciones a la hora de aplicarlo a la organización.
Este modelo es fruto del trabajo de SEI (Software Engineering Institute), desde 1986
centra sus esfuerzos en mejorar la practica del proceso del Software. En 1991 consiguieron
35
Manual Aseguramiento Calidad de Software
estabilizar la primera versión del CMM. Desde entonces este modelo se ha empleado en
organizaciones tales como el Departamento de Defensa de los EEUU, sedes que necesitaban
controlar de manera exhaustiva el proceso de producción de software.
A la hora de aplicar el CMM debemos tener claro una serie de aspectos sobre la
organización, dichos aspectos son:
1. El tamaño de la organización.
2. Su nivel cultural.
3. Las tecnologías que emplea.
El CMM establece 5 posibles niveles de madurez en los que puede encontrarse una
organización:
36
Manual Aseguramiento Calidad de Software
Nadie puede obtener el significado exclusive del CMM. El CMM no aporta una medida
absoluta, no existe un nivel de 2'5, todos los resultados deben ser interpretados, mejor así ya
que el CMM es flexible para adaptarse en su utilización a las peculiaridades de cada
organización. Debido a este punto, el conocimiento del Modelo por parte de quien lo aplica
se hace aún más importante.
Nos queda ahora abordar en profundidad el proceso del CMM, para ello debemos tener en
cuenta las siguientes definiciones [Paulk 1994]:
a) Institucionalizar: Edificar una infraestructura y una cultura que soporte los métodos, las
prácticas y los procesos para que éstos sean la forma real de hacer negocios.
Será fundamental conocer cual es el grado de conocimientos de todos sus trabajadores, así
como el esquema cultural y social en que se ubica la empresa.
e) Nivel de madurez: Plataforma bien definida desde la que podemos obtener un proceso
maduro de software.
37
Manual Aseguramiento Calidad de Software
Comenzaremos este apartado dando una definición formal al CMM [Dymon1997]. “El
CMM es un modelo que describe cómo las prácticas de la ingeniería del software de una
organización evolucionan bajo ciertas condiciones:
El CMM guarda cierta relación con los estándares de calidad como ISO 9001, en palabras de
Dymon, “este estándar es efectivo para proporcionar una base de una buena práctica por
debajo de la cual una organización no debería descender”. Por el contrario, el CMM es un
estándar progresivo con una dimensión dinámica que conduce a una organización a mejorar
continuamente sus prácticas actuales de software.
Según los estudios realizados por el SEI una organización que se encuentre en un nivel
de madurez 3 podría obtener sin problemas la certificación ISO 9001. Pero una
organización que posea una certificación ISO 9001 podría quedar ubicada en un nivel
de madurez 2 o 3, dependiendo del caso. Para obtener mayores detalles en esta comparación
se puede consultar la obra [Paulk 1994].
CARACTERÍSTICAS DE LOS NIVELES DEL MODELO DE CMM
38
Manual Aseguramiento Calidad de Software
2) Nivel 2: Nivel repetible, en este nivel existe una disciplina básica en la gestión de procesos
basada en la repetición de tareas aprendidas previamente. Ya hay una planificación en
términos de coste, calendario y requisitos.
3) Nivel 3: Nivel definido, el proceso es estándar y consistente, se conoce lo que hace que el
proceso de software tenga éxito y se aplica a toda la organización.
5) Nivel 5: Nivel optimizado, existe una evolución continua en la optimización del proceso.
El CMM se centra en los tres principales aspectos que influyen en una organización:
a) Las personas: Se trata por disciplinas como el desarrollo organizativo, gestión de los
RRHH y la Gestión de la Calidad Total (TQM).
39
Manual Aseguramiento Calidad de Software
c) El proceso. Pero, ¿cómo se gestiona el proceso y cómo se mejora?, ¿se puede comprar? La
gestión del proceso se puede aprender e institucionalizar, aquí es donde entra el CMM.
El cambio puede empezar a aplicarse a través del ciclo de Deming: Planificar, Hacer,
Verificar y Actuar [Deming 1982]. Adaptado a nuestra situación, Iniciar es acordar el motivo
y la estrategia para el cambio. Diagnosticar es acordar qué cambiar, posteriormente debemos
Establecer la infraestructura (equipos y planes), Actuar (llevar a cabo los planes) e
Institucionalizar (capturar y reutilizar las lecciones aprendidas).
Volvemos aquí a insistir en algo de crucial importancia, la aplicación del modelo requiere el
compromiso de la alta dirección ya que está claro que durante un tiempo ciertos recursos
deberían desviarse de las actividades de generar ingresos y dedicarse a la mejora del proceso.
40
Manual Aseguramiento Calidad de Software
Historia
Se denomina ISO 9000 a una serie de estándares que pueden ser usados por diferentes
empresas para establecer la gestión de un sistema de calidad. Pero hay que aclarar que ISO
9000 no tiene nada que ver con la calidad absoluta del producto; sólo se refiere a la forma de
establecer guías para un sistema de gestión de la calidad.
Los estándares fueron publicados por primera vez en 1987, por la International Organization
for Standardization (ISO), cuya sede central está en Ginebra, Suiza.
Hasta cierto punto, los estándares británicos BS 5750 sirvieron de base para las series ISO
9000. Y más lejos aún, otra referencia clara para ISO 9000 son los estándares generados
durante la Segunda Guerra Mundial en los Estados Unidos, con especificaciones militares
muy precisas, que tenían por objetivo evitar la falta de coordinación entre distintos
fabricantes o suministradores de armas y otros productos. Estas especificaciones pasarían
posteriormente a la OTAN bajo la denominación AQAP.
La serie ISO 9000 se compone de cinco documentos independientes aunque relacionados. El
estándar ISO 9000 es una guía para la selección y uso de los estándares reales, ISO 9001,
ISO 9002 e ISO 9003. ISO 9000 incluye las siguientes definiciones para el resto de la serie:
- Política de Calidad
- Gestión de Calidad
- Sistema de Calidad
- Control de Calidad
- Aseguramiento de la Calidad
41
Manual Aseguramiento Calidad de Software
La mayor fuerza de empuje para ISO 9000 en los últimos años ha sido el Acta Única
Europea, ya que la Unión Europea necesitaba un sistema de harmonización para todos sus
miembros, que han desarrollado sus respectivas industrias de manera independiente y con
hábitos comerciales muy diferentes. ISO 9000 ha proporcionado una buena herramienta de
puesta en común.
Objetivos
El propósito de ISO 9000 es incrementar la confianza de los clientes y consumidores en el
sistema de calidad de sus suministradores. Un dato que es particularmente importante cuando
se amplían las distancias entre las partes, o se usan diferentes idiomas y términos. ISO 9000
proporciona el marco común necesario, con requerimientos generales específicos para ambas
partes.
El objetivo, pues, no es determinar que un producto es superior a otro, sino más consistente y
fiable en su producción. Es decir, ISO asegura que la producción genera productos de una
calidad homogénea (sea ésta alta o baja) a lo largo del tiempo. Es decir, un producto de hoy
ha de ser igual que un producto de ayer y lo mismo que uno de mañana.
42
Manual Aseguramiento Calidad de Software
43
Manual Aseguramiento Calidad de Software
44
Manual Aseguramiento Calidad de Software
45
Manual Aseguramiento Calidad de Software
46
Manual Aseguramiento Calidad de Software
47
Manual Aseguramiento Calidad de Software
Responsabili-
dad de la
dirección
Satisfacción
C Medición, C
Gestión de
l análisis, l
Requisitos
recursos
mejora
i i
e e
n Resultado
n
Entrada Realización del
t Producto/ t
producto y/o servicio Servicio
e e
1) Responsabilidad de la dirección
a) Compromiso de la dirección
b) Enfoque al cliente
c) Política de calidad
d) Planificación
e) Responsabilidad, autoridad y comunicación
f) Revisión de la dirección
48
Manual Aseguramiento Calidad de Software
La Norma ISO 9000:2000 constituye una norma explicativa del enfoque de procesos y de los
principales elementos de un sistema de calidad. Contiene también una relación completa del
vocabulario utilizado en Gestión de Calidad.
Las Normas ISO 9001:2000 e ISO 9004:2000 constituyen un par consistente. Esto es, tiene la
misma estructura organizativa.
La ISO 9001:2000 indica los requisitos que una organización debe cumplir, con relación a su
Sistema de Gestión de la Calidad, cuando este sistema es evaluado por una organización
independiente, con relación a su proceso de certificación.
La ISO 9004:2000, con la misma estructura de la 9001, constituye una guía para la mejora
del desempeño de las organizaciones. O sea, ISO 9001 e ISO 9004 han sido diseñadas para
complementarse entre sí.
ISO 9004 proporciona orientación sobre un rango más amplio de objetivos de un sistema de
gestión de la calidad que ISO 9001, especialmente para la mejora continua y la eficiencia
global de la organización, así como su eficacia. Sin embargo la Norma ISO 9004:2000 no
está elaborada con propósitos de certificación.
49
Manual Aseguramiento Calidad de Software
2 5
PLANEAMIENTO GESTION DE
ESTRATÉGICO LAS
PERSONAS 7
RESULTADOS
DEL
1 DESEMPEÑO DE
LIDERAZGO 3 LA
FOCO EN LA ORGANIZACIÓN
6
SATISFACCION DEL GESTION DE
ALUMNO, PARTES LOS
INVOLUCRADAS, Y PROCESOS
MERCADO
4 INFORMACIÓN Y ANALISIS
1.- Liderazgo:
Liderazgo organizacional.
Responsabilidad Pública y Ciudadana.
2.- Planeamiento estratégico:
Proceso de planeamiento estratégico.
Planeamiento operativo.
3.- Enfoque en el alumno y en las otras partes involucradas:
Conocimiento de las necesidades y expectativas del alumno (actual y potencial).
Gestión de la relación y satisfacción del alumno y otras partes involucradas
4.- Información y Análisis:
Medición del desempeño de la organización.
Análisis del desempeño de la organización
5.- Desarrollo del cuerpo docente, de gestión y apoyo:
Sistema de trabajo.
Educación, entrenamiento y desarrollo del personal académico y de apoyo.
Bienestar y satisfacción del cuerpo docente y personal de apoyo.
6.- Gestión de los procesos educativos y de apoyo:
Diseño y gestión del proyecto pedagógico-educativo.
Gestión de procesos de apoyo.
Gestión del las relaciones con etapas anteriores y posteriores
7.- Resultados de desempeño de la organización:
Resultados del desempeño de los alumnos.
50
Manual Aseguramiento Calidad de Software
51
Manual Aseguramiento Calidad de Software
El modelo de McCall organiza los factores en tres ejes o puntos de vista desde los cuales el
usuario puede contemplar la calidad de un producto, basándose en once factores de calidad
organizados en torno a los tres ejes y a su vez cada factor se desglosa en otros criterios:
52
Manual Aseguramiento Calidad de Software
- Consistencia.
53
Manual Aseguramiento Calidad de Software
- Consistencia.
- Auto descripción.
- Modularidad.
Reusabilidad - Auto descripción.
- Generalidad.
54
Manual Aseguramiento Calidad de Software
- Modularidad.
- Modularidad.
Antes de comenzar a utilizar el modelo de McCall hay que seguir las siguientes pautas:
Al comienzo del proyecto habrá que especificar los requisitos de calidad del producto
software, para lo cual se seleccionarán los aspectos inherentes a la calidad deseada del
producto, teniendo que considerarse para ello:
55
Manual Aseguramiento Calidad de Software
• Las características particulares del propio producto que se está diseñando: por
ejemplo, su ciclo de vida que si se espera que sea largo implicará un mayor énfasis en
la facilidad de mantenimiento y la flexibilidad, o bien si el sistema en desarrollo está
destinado a un entorno donde el hardware evoluciona rápidamente implicará como
requisito su portabilidad.
• La relación calidad-precio, que puede evaluarse a través del coste de cada factor de
calidad frente al beneficio que proporciona. La siguiente tabla muestra la relación
calidad-precio para cada factor considerado:
• La determinación de las etapas del ciclo de vida donde es necesario evaluar cada
factor de calidad para conocer en cuales se dejan sentir más los efectos de una calidad
pobre con respecto a cada uno de los factores.
• Las propias interrelaciones entre los factores debido a que algunos factores pueden
entrar en conflicto entre sí: por ejemplo, la eficiencia plantea conflictos prácticamente
con todos los demás factores de calidad. La interacción entre los diversos factores a
evaluar queda reflejada en la tabla I que indica la dependencia entre los factores de
McCall.
56
Manual Aseguramiento Calidad de Software
También habrá que establecer valores deseables para los criterios, para lo cual se emplearán
datos históricos, el promedio en la industria, y con ellos se concretarán los valores finales y
otros intermedios o predictivos en cada período de medición durante el desarrollo, así como
unos valores mínimos aceptables. La explicación para cualquier selección o decisión deberá
ser adecuadamente documentada.
En la fase de desarrollo será necesario implementar las métricas elegidas, analizar sus
resultados y tomar medidas correctivas cuando los valores obtenidos estén por debajo de los
mínimos aceptables.
Una vez finalizado el proyecto será necesario contrastar las medidas predictivas utilizadas y
comprobar si, en efecto, se pueden tomar como indicadores de los valores finales.
57
Manual Aseguramiento Calidad de Software
58
Manual Aseguramiento Calidad de Software
También se conoce por este nombre al software desarrollado por Rational, hoy propiedad de
IBM, el cual incluye información entrelazada de diversos artefactos y descripciones de las
diversas actividades. Está incluido en el Rational Method Composer (RMC), que permite la
personalización de acuerdo a necesidades.
Originalmente se diseñó un proceso genérico y de dominio público, el Proceso Unificado, y
una especificación más detallada, el Rational Unified Process, que luego se vendiera como
producto independiente.
2. Balancear prioridades
Los requerimientos de los diversos inversores pueden ser diferentes, contradictorios o
disputarse recursos limitados. Debe encontrarse un balance que satisfaga los deseos de todos.
59
Manual Aseguramiento Calidad de Software
6. Enfocarse en la calidad
El control de calidad no debe realizarse al final de cada iteración, sino en todos los aspectos
de la producción.
Historia
Desde ese entonces y a la cabeza de Grady Booch, Ivar Jacobson y James Rumbaugh,
Rational Software desarrolló e incorporó diversos elementos para expandir ROP,
destacándose especialmente el flujo de trabajo conocido como modelado del negocio. En
junio del 1998 se lanza Rational Unified Process.
Fase de inicio
Durante la fase de inicio se define el modelo del negocio y el alcance del proyecto.
Se identifican todos los actores y Casos de Uso, y se diseñan los Casos de Uso más
esenciales (aproximadamente el 20% del modelo completo). Se desarrolla, un plan de
negocio para determinar que recursos deben ser asignados al proyecto.
60
Manual Aseguramiento Calidad de Software
61
Manual Aseguramiento Calidad de Software
Fase de elaboración
62
Manual Aseguramiento Calidad de Software
Fase de construcción
La finalidad principal de esta fase es alcanzar la capacidad operacional del producto de forma
incremental a través de las sucesivas iteraciones. Durante esta fase todos los componentes,
características y requisitos deben ser implementados, integrados y probados en su totalidad,
obteniendo una versión aceptable del producto.
63
Manual Aseguramiento Calidad de Software
Fase de transición
64
Manual Aseguramiento Calidad de Software
Roles
Un rol define el comportamiento y responsabilidades de un individuo, o de un grupo de
individuos trabajando juntos como un equipo. Una persona puede desempeñar diversos roles,
así como un mismo rol puede ser representado por varias personas.
Las responsabilidades de un rol son tanto el llevar a cabo un conjunto de actividades como el
ser el dueño de un conjunto de artefactos.
Analistas:
Analista de procesos de negocio.
Diseñador del negocio.
Analista de sistema.
Especificador de requisitos.
65
Manual Aseguramiento Calidad de Software
Desarrolladores:
Arquitecto de software.
Diseñador
Diseñador de interfaz de usuario
Diseñador de cápsulas.
Diseñador de base de datos.
Implementador.
Integrador.
Gestores:
Jefe de proyecto
Jefe de control de cambios.
Jefe de configuración.
Jefe de pruebas
Jefe de despliegue
Ingeniero de procesos
Revisor de gestión del proyecto
Gestor de pruebas.
Apoyo:
Documentador técnico
Administrador de sistema
Especialista en herramientas
Desarrollador de cursos
Artista gráfico
Especialista en pruebas:
Especialista en Pruebas (tester)
Analista de pruebas
Diseñador de pruebas
66
Manual Aseguramiento Calidad de Software
Otros roles:
Stakeholders.
Revisor
Coordinación de revisiones
Revisor técnico
Cualquier rol
Actividades
Una actividad en concreto es una unidad de trabajo que una persona que desempeñe un rol
puede ser solicitado a que realice. Las actividades tienen un objetivo concreto, normalmente
expresado en términos de crear o actualizar algún producto.
Artefactos
Un producto o artefacto es un trozo de información que es producido, modificado o usado
durante el proceso de desarrollo de software. Los productos son los resultados tangibles del
proyecto, las cosas que va creando y usando hasta obtener el producto final.
Flujos de trabajo
Con la enumeración de roles, actividades y artefactos no se define un proceso, necesitamos
contar con una secuencia de actividades realizadas por los diferentes roles, así como la
relación entre los mismos. Un flujo de trabajo es una relación de actividades que nos
producen unos resultados observables. A continuación se dará una explicación de cada flujo
de trabajo.
67
Manual Aseguramiento Calidad de Software
1. Flujos de Trabajo
Se utilizarán Diagramas de Actividad para modelar los Flujos de Trabajo (workflows) del
área problema, tanto los actuales (previos a la implantación de nuevo sistema) como los
propuestos, que serán soportados por el sistema desarrollado.
3. Glosario
Es un documento que define los principales términos usados en el proyecto.
Permite establecer una terminología consensuada.
datos relacional, este modelo describe la representación lógica de los datos persistentes, de
68
Manual Aseguramiento Calidad de Software
acuerdo con el enfoque para modelado relacional de datos. Para expresar este modelo se
8. Modelo de Implementación
Este modelo es una colección de componentes y los subsistemas que los contienen. Estos
componentes incluyen: ficheros ejecutables, ficheros de código fuente, y todo otro tipo de
ficheros necesarios para la implantación y despliegue del sistema.
9. Modelo de Pruebas
Para cada Caso de Uso se establecen pruebas de Aceptación que validarán la correcta
implementación del Caso de Uso. Cada prueba es especificada mediante un documento que
establece las condiciones de ejecución, las entradas de la prueba, y los resultados esperados.
12. Producto
Todos los ficheros fuente y ejecutable del producto.
69
Manual Aseguramiento Calidad de Software
70
Manual Aseguramiento Calidad de Software
El Proceso Unificado esta basado en componentes, lo cual quiere decir que el sistema
software en construcción esta formado por componentes software, interconectados a través
de interfaces.
Los Proceso Unificado utilizan el lenguaje Unificado de Modelado (Unified Modeling
Language, UML) para preparar todos los esquemas de un sistema de software. De hecho,
UML es una parte esencial del Proceso Unificado sus desarrollos fueron paralelos.
71
Manual Aseguramiento Calidad de Software
No obstante, los verdaderos aspectos definitorios del Proceso Unificado se resumen en tres
frases clave dirigido por casos de uso, centrado en la arquitectura e iterativo e incremental.
Esto es lo que hace único el Proceso Unificado.
72
Manual Aseguramiento Calidad de Software
73
Manual Aseguramiento Calidad de Software
74
Manual Aseguramiento Calidad de Software
ANEXOS
75
Manual Aseguramiento Calidad de Software
76
Manual Aseguramiento Calidad de Software
conseguirlo
Identificar las necesidades concretas para mejorar
Establecer un equipo responsable
Proporcionar los recursos, motivación y formación
al equipo
Total General
Leyenda:
77
Manual Aseguramiento Calidad de Software
NOMBRE:_____________________________________________________
EMPRESA:____________________________________________________
DESCRIPCIÓN APLICA
SI/NO
Compromiso de la dirección
Equipo de mejora de la Calidad
Medición de la Calidad
Evaluación del Costo de la Calidad
Conciencia de la Calidad
Acción correcta
Planificación del cero defectos
El día cero defectos
Entrenamiento de los supervisores
Fijación de Metas
Eliminación de Metas
Eliminación de causas de error
Reconocimiento
Consejos de Calidad
Hacer todo de nuevo
No se puede tolerar los niveles aceptados de error
Crear constancia en el propósito de mejorar el producto y servicios
Dejar de depender de la inspección en masa
Dejar de hacer negocios sobre la base del precio
Mejorar el Sistema de Producción y Servicios
Implantar la formación
Erradicar el miedo
Adoptar e implantar el liderazgo
Derribar las barreras entre Depto.
Eliminar los eslóganes exhortaciones y metas
Eliminar cuotas numéricas
Fomentar el orgullo por el trabajo
Estimular la educación, Auto mejoras
Lograr la transformación
Identificar los Clientes
Establecer las Necesidades de los Clientes
Desarrollo de productos servicios según necesidades del Cliente
Desarrollo de Procesos acorde con los productos anteriores
Transferir los planes Resultantes al Personal
Evaluar los resultados operativos
78
Manual Aseguramiento Calidad de Software
SISTEMA DE COMPRAS
NARRATIVA DEL SISTEMA
El sistema de Compras comprende tres grandes procesos: Solicitud de Requerimiento,
Cotizaciones y Generación de Orden, todos estos procesos interactúen entre si generando
información los cuales la salida en la culminación de cada uno de los procesos representa la
entrada de información necesaria para que los demás procesos se desarrollen con normalidad.
Además de estos tres grandes procesos el sistema de Compras también se relaciona con el
sistema administrativo financiero, almacén, planificación y recursos humanos.
Dentro de las actividades que realiza cada proceso están las siguientes:
79
Manual Aseguramiento Calidad de Software
CASO PRACTICO
USO HERRAMIENTA UML
Modelo sistema de Compras
80
Manual Aseguramiento Calidad de Software
81
Manual Aseguramiento Calidad de Software
82
Manual Aseguramiento Calidad de Software
TABLA 8.1
83
Manual Aseguramiento Calidad de Software
Mellor (1992) explica por qué las fallas del hardware son sustancialmente diferentes de las
fallas del software.
El hardware complejo falla cuando un componente se rompe y deja de funcionar de
acuerdo con lo especificado. Por ejemplo una compuerta lógica puede quedar retenida en
O o en 1 y una resistencia se puede poner en corto circuito. La causa es física (por ejemplo,
oxidación, corrosión, sobretensión) y el defecto se produce en un instante particular. Para
arreglar el problema, se repara o reemplaza la parte afectada y el sistema puede restaurarse
a su estado previo.
Sin embargo, los defectos del software pueden existir en un producto por un tiempo muy
largo y activarse solamente cuando existen ciertas condiciones que transforman el defecto
en una falla. Esto significa que, el defecto está latente y el sistema seguirá fallando (bajo las
mismas condiciones) a menos que se modifique el software para corregir el problema
subyacente.
Debido a esta diferencia en los efectos de los defectos, la confiabilidad del software se debe
definir de una manera distinta a la del hardware. Cuando se repara hardware, retorna a su
nivel de confiabilidad previo a la falla, es decir se mantiene la confiabilidad. Pero cuando se
repara software, la confiabilidad puede incrementar o disminuir. Por lo tanto, la meta de
confiabilidad en ingeniería de hardware es la estabilidad; la meta correspondiente en la
ingeniería del software es el aumento de la confiabilidad.
84
Manual Aseguramiento Calidad de Software
En julio de 1997, la NASA tuvo algunos problemas con el dispositivo de aterrizaje del
Pathfinder que colocó al dispositivo de exploración Sojourner sobre el planeta Marte. El
software del Pathfinder le permitía posarse obre la superficie de Marte, liberar al
explorador Sojourner y gestionar la comunicación entre Tierra y el aterrizador. Sin
embargo, debido a fallas relacionadas con la administración de pilas y punteros durante los
procesos de conmutación, el Pathfinder se reinicializó a sí mismo, interrumpiendo su
trabajo por algunos períodos de tiempo.
El Sojourner estaba equipado con un controlador serial de tareas simple 80C85, que
trabajaba muy bien. Pero la NASA necesitó un software mucho más complejo para
gestionar las funciones más complejas del Pathfinder. Durante el diseño, la NASA
seleccionó en primer lugar un procesador objetivo (target) y luego encontró el software
apropiado para ejecutar en él. En consecuencia, la NASA seleccionó un procesador de IBM
muy resistente a la radiación, una versión nueva de su R6000, similar al procesador
utilizado en PowerPC. El chip de 32 bits resultaba atractivo porque utilizando un sistema
operativo de tiempo real comercial para él se evitaba el costo de construir un software
específico. Por lo tanto, el próximo paso de la NASA fue encontrar un sistema operativo
para el Pathfinder.
85
Manual Aseguramiento Calidad de Software
86
Manual Aseguramiento Calidad de Software
87
Manual Aseguramiento Calidad de Software
Wilde, Matthews y Huitt (1993) han investigado las diferencias entre el mantenimiento de
los sistemas orientados a objetos y los procedimentales. Destacan algunos beneficios en lo
referente a la orientación a objetos:
• Los cambios por mantenimiento a una sola clase de objeto en general no afectan al resto
del programa.
• El personal de mantenimiento puede reutilizar objetos fácilmente, escribiendo solamente
una pequeña cantidad de código nuevo.
Sin embargo, también existen varios inconvenientes:
• Las técnicas orientadas a objetos pueden hacer que los programas sean más difíciles de
comprender, debido a la profusión de partes del programa. Resulta difícil discernir la
intención original del diseñador a causa de la dificultad de localización: los planos del
programa se encuentran dispersos a través de numerosos segmentos de programa no
contiguos.
• Por la misma razón, la existencia de múltiples partes puede dificultar la comprensión del
comportamiento global del sistema.
• La herencia puede contribuir a que las dependencias sean difíciles de rastrear.
• El enlace dinámico hace que sea imposible determinar cuál de los varios métodos se va a
ejecutar, por lo que quienes realizan el mantenimiento deben considerar todas las
alternativas.
• Por ocultar los detalles de la estructura de datos, la función del programa puede estar
distribuida entre varias clases. Esto hace que resulte difícil detectar y descifrar la
interacción de las clases.
88
Manual Aseguramiento Calidad de Software
Es muy fácil mostrar que el número de líneas de código constituye una medida válida del
tamaño de un programa. Sin embargo, no es una medida válida de la complejidad, ni forma
parte de un sistema exacto de predicción de la complejidad. Fenton y Pfleeger (1997)
explican que la falencia no está vinculada con la medida de líneas de código sino con la
definición imprecisa de complejidad. Aunque la complejidad se describe generalmente co-
mo un atributo que puede afectar la confiabilidad, la aptitud para el mantenimiento, el costo
y demás, la imprecisión que rodea su definición representa un problema en el campo de la
investigación de la complejidad.
Pero los problemas asociados con la complejidad no impiden que el número de
líneas de código sea útil para medir otros atributos, además del tamaño. Por ejemplo,
suponer que existe una asociación estocástica entre un gran número de líneas de código y un
gran número de defectos de la prueba unitaria. Esta relación puede ayudar para seleccionar
una estrategia de prueba y reducir el riesgo.
Por otra parte, hay numerosos estudios que exhiben una significativa correlación
entre líneas de código y número ciclomático. ¿Prueba esta correlación que el número
ciclomático se incrementa con el tamaño? Si el número ciclomático fuera una medida de
tamaño, el código más largo sería siempre código el más complejo. Es fácil construir un
contraejemplo a esta hipótesis. Si se examinan cuidadosamente los datos que muestran la
relación entre número ciclomático y líneas de código, lo que se observa es que el número de
decisiones en un componente usualmente se incrementa con la longitud del código.
89
Manual Aseguramiento Calidad de Software
90
Manual Aseguramiento Calidad de Software
91
Manual Aseguramiento Calidad de Software
92
Manual Aseguramiento Calidad de Software
93
Manual Aseguramiento Calidad de Software
94
Manual Aseguramiento Calidad de Software
El Sistema de Control de Código Fuente (sccs, por su sigla en inglés) distribuido con la
mayoría de las versiones de un IX de AT&T está pensado para controlar la línea de base
del software de un proyecto. También puede utilizarse para otros documentos
relacionados a proyectos, siempre que tengan formato de texto. Utilizando un enfoque
delta, sccs permite múltiples versiones y emisiones y un programador puede solicitar
cualquier versión o emisión del sistema a un tiempo dado. El sistema básico se guarda
junto con las transformaciones. Esto es, para un componente dado, sccs almacena en un
archivo el código básico para la versión 1.0 de dicho componente, el delta para
transformarlo en la versión 2.0 y el delta para pasar de la versión 2.0 a la 3.0. De manera
similar, sccs puede almacenar diferentes ediciones o una combinación de versión y
edición. Por lo tanto, cualquier edición o versión siempre está disponible para su uso o
modificación; sccs sólo aplica los deltas apropiados para derivarla desde la básica. Sin
embargo, hacer cambios en versiones o ediciones intermedias puede dar lugar a
problemas, dado que el delta para la próxima versión o edición está basado en el texto de
la versión previa. Por otra parte, la flexibilidad de sccs en el manejo de múltiples
versiones y ediciones significa que un vendedor puede utilizar sccs para soportar
simultáneamente numerosas versiones y ediciones de los productos.
Un programador solicita que sccs elabore una versión o edición utilizando el comando
"get", Cuando se incluye la llave l/-e", que indica que el componente debe ser editado, sccs
bloquea el acceso al componente a todos los demás usuarios, hasta que se comprueba la
devolución del componente modificado.
El Sistema de Lenguaje Ada (ALS) es un ambiente de programación diseñado con una
gestión de configuración como factor clave de diseño (Babich 1986). No aplica una
estrategia de gestión de configuración particular. De hecho incorpora comandos de tipo
UNIX que soportan las herramientas de configuración. A diferencia de sccs, ALS almacena
las revisiones por separado, como archivos distintos. Además congela todas las versiones
y ediciones excepto la actual. Es decir, las versiones y ediciones antiguas no pueden ser
modificadas a menos que se genere una réplica nueva que esté disponible para los
usuarios.
ALS permite agrupar colecciones de versiones y ediciones relacionadas en conjuntos de
variantes. Los conjuntos de variantes pueden estar basados en una versión de producción
más unas cuantas versiones de desarrollo, o en una versión con varias ediciones
subsiguientes. También le adjunta a cada archivo información de atributos tales como
fecha de creación, nombres de quienes lo han utilizado, fecha de la última prueba o el
propósito del archivo. El sistema también rastrea las asociaciones de manera que todos los
archivos en un sistema o todos los archivos en un conjunto de variantes puedan ser
rotulados.
El esquema de control para ALS involucra bloqueos para los nombres de las personas
autorizadas para leer, sobre escribir, agregar o ejecutar datos en el archivo. El sistema
95
Manual Aseguramiento Calidad de Software
también asigna permisos para que ciertas herramientas accedan o interactúen con un
archivo.
Cusumano y Selby (1997) informan que los desarrolladores de Microsoft deben ingresar su
código en una base de datos de producto en un horario particular por la tarde. Después, el
equipo de proyecto recompila el código fuente crea una nueva “construcción” del producto
en evolución. Cualquier código que sea lo bastante defectuoso como para impedir que la
96
Manual Aseguramiento Calidad de Software
97
Manual Aseguramiento Calidad de Software
Mills (1997) describe la forma en que su compañía utiliza la automatización para probar un si
tema de cotización de seguros de automóviles. Cada sistema contiene los perfiles de riesgo
de aproximadamente 90 aseguradoras y productos, lo que le permite al agente de seguros
suministrar información acerca de un automóvil y a su conductor recibir una cotización para
los seguros premium. La entrada Incluye 50 campos, tales como edad, experiencia en
conducción, área de circulación, tipo de uso, tamaño del motor y numero de personas que
utilizan el automóvil. Esta información ayuda a ubicar al candidato en una de 20 áreas, uno
de más de 20 grupos de vehículos, cinco clases de uso, tres tipos de cobertura de seguro y 15
grupos de edades. El sistema de cotización rastrea 14 productos en 10 sistemas de
aseguramiento, donde cada sistema se actualiza por lo menos mensualmente.
Por lo tanto, el número de casos de prueba que se necesita para probar a fondo el sistema de
cotización es muy grande, y una gran parte del proceso de prueba está en decidir cuántos
casos de prueba son suficientes. Bate (1997) presenta los cálculos para mostrar que la
comprobación de 5.000 condiciones para un sistema en el National Westminster Bank
requiere 21.000 guiones; dado que cada guión toma 3 minutos para el chequeo manual, la
prueba demandaría unos 7,5 meses de trabajo de una persona en una plataforma. Esta
situación es claramente inaceptable para el sistema de seguros descrito por Milis, que
involucra numerosas condiciones y guiones de prueba. Los desarrolladores estimaron que
podrían probar entre 100 Y 200 casos en modo loteado (batch) y los aseguradores les dieron
directivas para ejecutar 100 pruebas aleatorias. Pero, utilizando comprobación automatizada,
un tercer participante ejecuta 30.000 cotizaciones de prueba planeadas por cliente obre cada
sistema de cotización todos los meses. ¡Y el proceso de prueba tarda menos de una semana
para completar el Milis informa que la diferencia mayor entre la prueba automatizada y la
manual, aparte de la velocidad, es que la mayoría de los defectos se descubren temprano en el
proceso de comprobación dejando mas tiempo disponible para corregirlos antes que se emita
la próxima versión del sistema.
98
Manual Aseguramiento Calidad de Software
Ejercicios Prácticos
Calidad del Software
Ejercicio
Ejercicio 3 En el contexto del tema gestión de riesgos, suponga que usted es el dueño
de una pequeña empresa de desarrollo de software, por ejemplo formada por cinco
programadores.
Considere el riesgo asociado a la pérdida de todos los archivos de datos y código
fuente y conteste las siguientes preguntas:
99
Manual Aseguramiento Calidad de Software
Ejercicio 7 Explicar por qué está mal pensar que la Ingeniería de Software consume
mucho tiempo e interfiere con la productividad del programador. Repasar la
respuesta dada en el ejercicio 4. Con todo esto en mente, ¿cuál sería la mejor
estrategia para reducir los tiempos de codificación?.
Ejercicio 9 En el contexto del tema Factores de calidad externos del software, considere
la métrica para medir la portabilidad de un sistema que ya está operando en un
ambiente e1 y se desea migrar a un ambiente e2:
e2
Portabilidad = 1 – ET / ER
100