Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Competencia.
Un software es de alta calidad cuando cumple con los requerimientos del usuario, si:
– Es confiable; los resultados que entrega varían, no son siempre iguales al procesar
los mismos datos.
– Es fácil de utilizar.
– Es seguro.
Conocer cada uno de los indicadores del proceso de la calidad del software y cómo
se está desempeñando su producto, es indispensable para brindar soluciones claras
a las necesidades de los usuarios, desde un aspecto fácil de manejar y que sea
cómodo. El objetivo, es que logre soportar todos los requerimientos, sea amigable,
seguro, útil, usable, estable y satisfaga las necesidades y requerimientos del usuario
sin que presente fallos o errores.
Dado que las pruebas de calidad de software revisan, supervisan y examinan la forma
en que se desenvuelve el producto, es posible contar con un informe final en el que
se establece si el software cumple o no con lo que espera el usuario, según el
motivo por el cual fue hecho. A la vez que se comprueba la exactitud y confiabilidad
de los procesos apoyados en cada una de las pruebas realizadas: funcionales y no
funcionales.
A pesar de que existen diversas causas que pueden afectar la calidad de un software,
es indispensable hacer conciencia sobre los resultados de los errores que se cometen
al no contar con un control de calidad, ya que existe una amplia probabilidad de que
se presenten un sin número de problemas en el uso del sistema, haciendo que se
perjudique visiblemente la imagen de la empresa, perdiendo clientes potenciales y
costos visibles e invisibles que desfavorece a las organizaciones.
➢ No contar con gestión de pruebas.
Al no contar con un plan de pruebas, no tener casos de pruebas o datos y solo
mirar la funcionalidad del software de manera superficial, hará que obtenga
altos índices de incidencias y como consecuencia, una mala gestión. Esto,
puede hacer que nadie use el sistema y que la inversión realizada no sirva,
ocasionando a su vez costos adicionales de corrección y modificación en el
sistema para arreglar los fallos.
2. Métricas de calidad: Son todas las métricas de software que definen de una u
otra forma la calidad del software; tales como corrección, exactitud, integridad,
facilidad de uso, estructuración o modularidad, pruebas, facilidad de
mantenimiento, reusabilidad, cohesión del módulo, acoplamiento del módulo,
etc. Estas son los puntos críticos en el diseño, codificación, pruebas y
mantenimiento.
Por ejemplo, dados los siguientes valores de un paquete de base de datos en dos
proyectos, podemos calcular la integridad.
Si, por otra parte, la probabilidad de amenaza fuera 0.5 y la posibilidad de repeler un
ataque es solo 0.25, la integridad del sistema es 0.63 (inaceptablemente baja).
También se observa que trabajaron tres personas en el desarrollo del proyecto alfa.
Con los datos registrados durante la elaboración del proyecto se puede generar al
final del proyecto el siguiente conjunto de métricas:
Son medidas indirectas del software y del proceso por el cual se desarrolla. En lugar
de calcular las líneas de código LDC, las métricas de función se centran en la
funcionalidad o utilidad del programa. Los puntos de función nos indican la medida de
la productividad.
Los puntos de función se obtienen utilizando una función empírica basado en medidas
cuantitativas del dominio de información del software y valoraciones subjetivas de la
complejidad del software.
Valor con peso de complejidad = Suma del número de apariciones del elemento i (por
ejemplo, salidas) para cada nivel de complejidad (bajo, medio, alto).
II. Número de salidas del usuario: se encuentra cada salida que proporciona al
usuario información orientada a la aplicación. En este contexto las salidas se
refieren a informes, pantallas de salida de datos, grabación de bandas
magnéticas, listados, mensajes de error, Transferencia de datos a otras
aplicaciones, ya sea mediante archivos o transmisión de datos. Los elementos
de datos individuales dentro de un informe se encuentran por separado. Son
todos aquellos procesos que hacen llegar datos desde la aplicación hacia el
exterior, a un usuario o a otra aplicación. El flujo de datos deberá tener una
sola dirección, del interior al exterior.
Clasificación de las salidas:
III. Números de consultas al usuario: una petición o consulta está definida como
una entrada interactiva que resulta de la generación de algún tipo de respuesta
en forma de salida interactiva (en línea). Se cuenta cada petición por separado.
Son todos aquellos procesos que están formados por una combinación de
entradas y salidas, produciendo una consulta a los datos. El flujo de datos
deberá tener dos direcciones. Como consecuencia de una consulta no se
modifican los datos del sistema. (Igual a tabla de entradas)
Cuando han sido recogidos los datos anteriores se asocian el valor de complejidad a
cada cuenta. Las organizaciones que utilizan métodos de puntos de función
desarrollan criterios para determinar si una entrada es denominada simple, media o
compleja. No obstante, la determinación de la complejidad es algo subjetivo.
Cuando han sido recogidos los datos anteriores se asocian el valor de complejidad a
cada cuenta. Las organizaciones que utilizan métodos de puntos de función
desarrollan criterios para determinar si una entrada es denominada simple, media o
compleja. No obstante la determinación de la complejidad es algo subjetivo.
Para calcular los puntos de función se utiliza la siguiente relación.
Donde PFSA es la suma de todas las entradas de puntos de función sin ajustar
obtenidas de la tabla anterior.
Los valores 0.65 y 0.01 son valores establecidos obtenidos a partir de datos
procedentes de diferentes proyectos referentes al nivel de error producidos en un
promedio de 5000 proyectos.
Fi donde i puede ser de uno hasta 14 los valores de ajuste de complejidad basados
en las respuestas a las cuestiones señaladas en la siguiente tabla (Tabla 4).
Los valores constantes de la ecuación anterior y los factores de peso aplicados en las
encuestas de los ámbitos de información han sido determinados empíricamente.
Evaluar cada factor de complejidad en escala 0 a 5.
Conseguir software de calidad es algo muy complejo que implica tanto una alta
calificación de los profesionales encargados del desarrollo como de la existencia de
procesos en la empresa que realiza el software, de una gestión integral de la calidad
desde el inicio del producto hasta el mantenimiento del mismo, siempre teniendo claro
que la calidad del software NO es negociable, porque al final lo que importa es la
satisfacción de los clientes.
Las herramientas, en la propuesta metodológica de aseguramiento de la calidad del
software, son un conjunto de técnicas y artefactos que ayudan a mantener el control
y a la vez administrar la calidad en el desarrollo desde el inicio hasta el final, de un
producto de software. A continuación, se describirán y mostrarán las herramientas que
propone este método de ACS.
Los constructos a utilizar serán del tipo multivaluados (1-9) en donde 9 es la máxima
aproximación al polo nominal y por su parte 1 su homologo al polo de contraste. De
esta forma se obtendrán los niveles de adecuación que poseen cada uno de los
requisitos elicitados: Verde (7-9), Naranja (4-6) y Rojo (1-3).
NORMAS ISO/IEC
ISO 12207 – Modelos de Ciclos de Vida del Software.
Estándar para los procesos de ciclo de vida del software de la organización, Este
estándar se concibió para aquellos interesados en adquisición de software, así como
desarrolladores y proveedores. El estándar indica una serie de procesos desde la
recopilación de requisitos hasta la culminación del software.
Principales
De apoyo
De organización
Este estándar agrupa las actividades que se pueden llevar a cabo durante el ciclo de
vida del software en cinco procesos principales, ocho procesos de apoyo y cuatro
procesos organizativos.
Norma ISO/IEC 9126
La norma ISO/IEC 9126 de 1991, es la norma para evaluar los productos de software,
esta norma indica las características de la calidad y los lineamientos para su uso, las
características de calidad y sus métricas asociadas, pueden ser útiles tanto como para
evaluar el producto como para definir los requerimientos de la calidad y otros usos.
Esta norma definida por un marco conceptual basado en los factores tales como
Calidad del Proceso, Calidad del Producto del Software y Calidad en Uso; según el
marco conceptual, la calidad del producto, a su vez, contribuye a mejorar la calidad
en uso.
La norma ISO/IEC 9126 define la calidad en uso como la perspectiva del usuario de
la calidad del producto software cuando éste es usado en un ambiente específico y
un contexto de uso específico. Éste mide la extensión para la cual los usuarios pueden
conseguir sus metas en un ambiente particular, en vez de medir las propiedades del
software en sí mismo.
Repetitividad.
Reproducibilidad.
Imparcialidad.
Objetividad.
Para estas características se describen las medidas concretas que participan:
1. ISO/IEC 14598-1 Visión General: provee una visión general de las otras cinco
partes y explica la relación entre la evaluación del producto software y el
modelo de calidad definido en la ISO/IEC 9126.
2. ISO/IEC 14598-2 Planeamiento y Gestión: contiene requisitos y guías para las
funciones de soporte tales como la planificación y gestión de la evaluación del
producto del software.
4. ISO/IEC 14598-4 Proceso para adquirentes: provee los requisitos y guías para
que la evaluación del producto software sea llevada a cabo en función a los
compradores que planean adquirir o reutilizar un producto de software
existente o pre-desarrollado.
5. ISO/IEC 14598-5 Proceso para avaladores: provee los requisitos y guías para
la evaluación del producto software cuando la evaluación es llevada a cabo por
evaluadores independientes.
ISO 15939 tiene un modelo de información que ayuda a determinar que se debe
especificar durante la planificación, performance y evaluación de la medición. Para su
aplicación, cuenta con los siguientes pasos: Recopilar los datos, Preparación de los
datos y Análisis de los datos.
Los planes de calidad obviamente difieren dependiendo del tamaño y del tipo de
sistema que se desarrolle. Existe una amplia variedad de atributos de calidad del
softwares potenciales a considerar en el proceso de planificación de la calidad. Ver
atributos de calidad en la figura siguiente.
El control de la calidad implica vigilar el proceso de desarrollo de software para
asegurar que se siguen los procedimientos y los estándares de garantía de calidad.
En el proceso de control de calidad del proyecto se comprueba que las entregas
cumplan los estándares definidos.
El personal Software Process, conocido por sus siglas como PSP, es una metodología
de reciente creación, proveniente del Instituto de Ingeniería del Software. PSP es una
alternativa dirigida a los ingenieros de sistemas, que les permite mejorar la forma en
la que construyen software. Considerando aspectos como la planeación, calidad,
estimación de costos y productividad. PSP es una metodología que vale la pena
revisar cuando el ingeniero de software está interesado en aumentar la calidad de los
productos de software que desarrolla dentro de un contexto de trabajo individual.
Características
En PSP todas las tareas y actividades que el ingeniero de software debe realizar
durante el proceso de desarrollo de un producto de software, están puntualmente
definidas en un conjunto de documentos conocidos como scripts. Los scripts son el
punto medular en PSP, por lo que hace mucho énfasis en que deban ser guiados en
forma disciplinada, ya que de ello dependerá el éxito de la mejora que se busca. Gran
parte de las tareas y actividades definidas en los scripts generará en su realización
un conjunto de datos, fundamentalmente de carácter estadístico.
La aplicación de PSP en varios procesos de desarrollo, y el análisis de la información
estadística generada e cada uno de éstos, permitirán al ingeniero de software
identificar, tanto sus fortalezas como sus debilidades, y crecer a través de un proceso
de autoaprendizaje y auto mejora.
La calidad de PSP, es u aspecto fuertemente relacionado con la cantidad de defectos
que el producto de software contiene.
Cada uno de estos niveles, con excepción del 3, tiene una versión que los extiende,
introduciendo tareas y actividades para un mejor manejo de los aspectos de interés
en nivel, o bien para incluir nuevos aspectos.
Cada uno de los niveles extiende los aspectos considerados en el nivel inmediato
anterior. Una de las razones de esta clasificación puede ser que el PSP es una
metodología de mejora basada en datos estadísticos, los cuales deben ser
cuidadosamente recabados por el ingeniero de software; el aumento gradual de la
cantidad de datos que debe recolectar el ingeniero introduce, por consiguiente, el
cambio en su manera de trabajo de una manera paulatina. Se recomienda un uso
incremental de PSP, iniciando con el nivel más bajo durante un primer proyecto de
desarrollo y, en proyectos siguientes, ascendiendo a niveles superiores. Los scripts
no pueden utilizarse en forma separada o desordenada.
PSP es una alternativa, de las muchas que han surgido recientemente, para mejorar
el proceso de desarrollo de software. Más que clasificar un conjunto de sentencias
como ventajas y desventajas, a continuación, se citan algunas:
La versión inicial del TSP fue desarrollada por Watts Humphrey en 1996, y el primer
Reporte Técnico para TSP fue publicado en el año 2000, patrocinado por el
Departamento de Defensa de los Estados Unidos. El Libro de Watts Humphrey
llamado "Introduction to the Team Software Process" (Addison Wesley Professional,
Massachusetts, 1999), presenta el TSP en detalle y se enfoca en el proceso de la
construcción de un equipo productor de software, estableciendo objetivos del equipo,
distribuyendo los roles, y otras actividades de trabajo en equipo.
Funcionamiento
Antes que los ingenieros de software puedan participar en el TSP, se requiere que ya
hayan aprendido sobre el Personal Software Process (Personal Software Process),
de manera tal que el TSP pueda funcionar de manera adecuada. El TSP comienza
con un proceso de cuatro días llamado despegue. El despegue está diseñado para
comenzar el proceso de construcción de los equipos y durante éste tiempo, los
equipos y sus administradores establecen metas, definen roles, evalúan riesgos y
producen un plan de equipo. El despegue generalmente se hace con un coach
específicamente entrenado, o con un líder que ya ha gerenciado varios proyectos que
han usado TSP para su desarrollo.
Características TSP
➢ Usa equipos auto-dirigidos con base en el estilo de administración de Peter
Drucker (administración del conocimiento) junto con un coach que ayuda a
desarrollar las habilidades de trabajo en equipo en los individuos.
➢ Tiene procesos operacionales flexibles que permiten a los equipos adaptar los
procesos, contando además con un marco de trabajo de métricas que soporta
a su proceso e incluye técnicas para la administración de la calidad usando
revisiones personales, inspecciones e índices de desempeño de la calidad.
➢ Usa planes detallados con actividades no mayores a 10 hrs en periodos de 3-
6 meses y establece juntas de cierre (postmortems) para finales de ciclo o de
proyecto.
➢ Utiliza lanzamientos de proyectos de 3.5 días para planear las actividades y
para integrar a los miembros del equipo.
➢ Cada miembro tiene asignado roles, metas y riesgos del proyecto.
➢ Los calendarios del equipo son desglosados en calendarios personales que
son ajustados con base en datos personales.
5.6.3 SPICE
Es un estándar importante iniciativa internacional para apoyar el desarrollo de una
Norma Internacional para la Evaluación de Procesos de Software. El proyecto tiene
tres objetivos principales: Para desarrollar un proyecto de trabajo para un estándar
para la evaluación de procesos de software. Para llevar a cabo los ensayos de la
industria de la norma emergente. Para promover la transferencia de tecnología de la
evaluación de procesos de software en la industria mundial del software a nivel
mundial.
5.6.4 CMMI.
Es un modelo de mejora de los procesos de construcción de software que provee los
elementos necesarios para determinar su efectividad. Este modelo puede ser utilizado
como guía para mejorar las actividades de un proyecto, área u organización, ya que
proporciona un marco de referencia para evaluar la efectividad de los procesos
actuales, facilitando con ello la definición de actividades, prioridades y metas para
garantizar la mejora continua. Es el estándar más conocido para la mejora de
procesos en mejora de procesos para el desarrollo de proyectos, gestión de
proveedores y gestión de servicio.
El CMMI establece cinco niveles de madurez los cuales son: Nivel 0: Incompleto El
proceso no se realiza, o no se consiguen los objetivos.
Nivel 1
Inicial o ejecutando: Este es el nivel en donde todas las empresas que no tienen
procesos, es donde el proceso se ejecuta y se logra su objetivo, así sea fuera de
presupuesto y de cronograma.
Nivel 3
Definido: Significa que la forma de desarrollar proyectos está definida, establecida,
documentada y que existen métricas.
Nivel 4 Administrado: Los proyectos usan objetivos medibles y cuantificables para
alcanzar cubrir las necesidades de los clientes y la organización. Es decir, se usan
métricas para gestionar la organización.
5.6.5 MoProSoft.
Es una norma mexicana, basada en procesos para las industrias de software, la cual
sirve para estandarizar operaciones y prácticas en gestión de ingeniería de software,
para así elevar la capacidad de las organizaciones de ofrecer servicios con calidad y
alcanzar niveles internacionales de competitividad. Está enfocado a las Pymes de la
Industria de Software en México. Está dirigido a las empresas o áreas internas
dedicadas al desarrollo y/o mantenimiento de software.
Cuadro comparativo