Está en la página 1de 14

Informe sobre el software medicin de SLA: Integracin CISQ Tamao y

medidas de calidad estructural en relaciones contractuales

El CISQ (Consortium for IT Software Quality - Consorcio para la Calidad de


Software), en el que colaboran SEI (Software Engineering Institute - Instituto de
Ingeniera de Software) y OMG (Object Management Group), surgi como un foro
neutral donde clientes y proveedores de software pudieran desarrollar distintas
tareas o estudios relacionados con la definicin, medicin y mejora de la calidad
del producto software.

La propuesta es de presentar con CISQ un estndar de calidad del producto;


basada en la normativa ISO 25000 (SQuaRE) y teniendo como objetivo describir
un estndar internacional para as permitir a las empresas, a los proveedores de
servicios TI y a los vendedores de herramientas de calidad del software, una
herramienta para automatizar la medicin de cuatro caractersticas de la calidad
del producto software:

Confiabilidad.

Eficiencia de rendimiento.

Seguridad.

Mantenibilidad.

Para lograr este cometido, las diferentes disciplinas de ingeniera hacen claras
distinciones para los diferentes niveles de anlisis. La cuales son necesarias para
poder garantizar que estos atributos de calidad sean analizados desde todas las
perspectivas que podran afectar el desempeo operativo de una aplicacin. En
las aplicaciones de software y sin importar la complejidad se aprecian los
siguientes niveles:

Nivel de unidad: el cual representa la habilidad de analizar una sola


unidad del cdigo. Una unidad de cdigo puede ser un mtodo, una
funcin o un programa completo para lenguajes no estructurados lo cual
dependera de la tecnologa.
Nivel de tecnologa: Correspondiente a la capacidad de analizar un
conjunto integrado de unidades de cdigo con la salvedad de haber sido
escritos en el mismo lenguaje, manteniendo la coherencia de las
dependencias entre programas, as como de los componentes, archivos
o clases. Este anlisis se realiza normalmente en el nivel de la capa de la
aplicacin y siendo descrito como " intratechnology", es decir, dentro de
una clase de tecnologa. As, el anlisis de una aplicacin moderna
incluira una coleccin de anlisis de nivel tecnolgico para cada una de
las diferentes tecnologas integradas en toda una aplicacin.
Nivel del sistema: Siendo la capacidad de analizar las diferentes
unidades de cdigo y diferentes capas de tecnologa para obtener una
visin holstica de todo el negocio que est integrado en la aplicacin.
Este anlisis permite visualizar las rutas completas cuando se hace
alguna transaccin, iniciando desde la entrada del usuario, por medio de
su autenticacin, el comportamiento en el proceso lgico del negocio,
incluyendo incluso al acceso a datos que requieran credenciales de
seguridad fuertes e incluso el acceso de ellas con bajas credenciales.
Esto permitir detectar las violaciones para la buena prctica
arquitectnica, e igualmente detectar las interacciones disfuncionales
entre diferentes tecnologas que podran generar cadas del sistema o
interrupciones operativas, as mismo las infracciones de seguridad, la
corrupcin de datos, y otros problemas que involucren el manejo global
de la aplicacin.

CISQ cubre ochenta y seis reglas de calidad para la ingeniera de software; las
cuales han sido bien definidas para garantizar la seguridad del software, as
mismo su confiabilidad, eficiencia y facilidad de mantenimiento. Estas medidas
estn establecidas bajo las definiciones de la ISO / IEC 25010, las cuales se
presentan a continuacin en la tabla (Tabla 1 Los elementos de la caracterstica
de calidad que mide CISQ a Nivel de unidad y del Sistema):
Tabla 1 Los elementos de la caracterstica de calidad que mide CISQ a Nivel de unidad y del Sistema
Caractersti Buenas prcticas de codificacin- Nivel de Buenas prcticas en tecnologa
ca Unidad arquitectnica - Nivel del Sistema

Fiabilidad Estado de proteccin en entornos con Diseo multi-capa cumplimiento


varios subprocesos Software gestiona la integridad de
Uso seguro de la herencia y el los datos y la coherencia
polimorfismo. Manejo de excepciones mediante
Gestin de lmites de recursos transacciones
Cdigo complejo Arquitectura de la clase
cumplimiento
Administrar los recursos asignados,
Tiempos de espera
Direcciones remotas incorporada
La eficacia Cumplimiento de mejores prcticas Interacciones adecuadas con caras
del Orientada a Objetos o recursos remotos
rendimiento Cumplimiento con las mejores prcticas Rendimiento de acceso de datos y
de SQL gestin de datos
Clculos costosos en bucles Memoria, red y administracin de
Conexiones estticas frente a grupos de espacio en disco
conexin Manejo centralizado de peticiones
Cumplimiento con las mejores prcticas del cliente
de recoleccin de basura Uso de componentes de nivel medio
frente a procedimientos y funciones
de base de datos

La Uso de credenciales codificadas Validacin de entrada


seguridad Desbordamientos de bfer inyeccin SQL
Algoritmos criptogrficos rotos o en riesgo Creacin de scripts entre sitios
Falta de Inicializacin Fracaso en el uso de bibliotecas o
Validacin incorrecta del ndice de matriz marcos aprobados
Bloqueo incorrecto Diseo de arquitectura segura
Referencias a los recursos liberados
Cadena de formato no controlada

Facilidad de Cdigo no estructurado y duplicado Cumplimiento del diseo inicial de la


mantenimiento Alta complejidad cclica arquitectura
Nivel controlado de codificacin dinmica Estructura estricta de la llamada entre
Sobre parametrizacin de mtodos capas arquitectnicas
Codificacin de literales Capas horizontales excesivas
Tamao excesivo del componente
Cumplimiento a cero en las mejores
prcticas

Fuente: (CISQ, 2012)


A nivel de unidad, se estima que un 92% de los errores en el cdigo fuente se
presentan por errores de programacin, pero estos problemas presentados a nivel
de cdigo slo representan el 10% de los defectos en la produccin. Entre tanto
en los niveles de tecnologa y sistema representan slo el 8% de los defectos
totales, El problema radica en la complejidad para ser detectados y corregidos, los
cuales consumen excesivos tiempos de trabajo todo con el fin de alcanzar por lo
menos en un 90% en las 4 caractersticas de calidad controladas por CISQ. Por
eso es esencial esforzarse en hacer principalmente seguimiento a los errores de
programacin de Nivel de tecnologa y a Nivel del sistema, permitiendo reducir la
tasa de incidencias de produccin. (OMG, 2015)

Tabla 2 Medidas de Calidad de la CISQ - Reglas de ingeniera de software contenidas en la medicin


para cada caracterstica de calidad a nivel de unidad y sistema
Caracterstica de Buenas prcticas de codificacin - Buenas Prcticas Arquitectnicas -
calidad del software Nivel de unidad Nivel del sistema
CONFIABILIDAD Estado de proteccin en Cumplimiento del diseo
entornos con varios multicapa
subprocesos El software administra la
Uso seguro de la herencia y el integridad y la coherencia de
polimorfismo los datos
Gestin de lmites de recursos, Manejo de excepciones a
Cdigo complejo travs de transacciones
Gestin de recursos asignados, Cumplimiento de arquitectura
tiempos de espera de clase

EFICIENCIA DE Cumplimiento de las mejores Interacciones apropiadas con


RENDIMIENTO prcticas orientadas a objetos recursos costosos o remotos
Cumplimiento de las mejores Rendimiento de acceso a
prcticas de SQL datos y gestin de datos
Clculos costosos en bucles Gestin de memoria, red y
Conexiones estticas versus espacio en disco
conexiones Manejo centralizado de
Cumplimiento con las mejores solicitudes de clientes
prcticas de recoleccin de Uso de componentes de nivel
basura medio vs. procedimientos /
funciones de DB

SEGURIDAD Uso de credenciales codificadas Validacin de entrada


Desbordamientos del bfer inyeccin SQL
Falta la inicializacin Creacin de scripts entre sitios
Validacin incorrecta del ndice Fracaso en el uso de
de matriz bibliotecas o marcos
Bloqueo incorrecto aprobados
Cadena de formato no Cumplimiento del diseo de
controlada arquitectura segura
MANTENIMIENTO Cdigo no estructurado y Lgica de negocio duplicada
duplicado Cumplimiento del diseo inicial
Alta complejidad ciclo matica de la arquitectura
Nivel controlado de codificacin Estructura estricta de la
dinmica llamada entre capas
Sobre parametrizacin de arquitectnicas
mtodos Capas horizontales excesivas
Codificacin de literales Ventilacin / ventilacin de
Tamao excesivo del varios niveles excesivos
componente

Fuente: (Curtis, CISQ, 2017)

Los SLAs

Los SLAs o acuerdo de nivel de servicio, deben basarse en mediciones claras


derivadas de datos fcilmente disponibles. Los indicadores deben basarse en
normas internacionales bien definidos, de manera que ambas partes tanto el
proveedor como el cliente, puedan discernir sobre los resultados obtenidos. Los
objetivos del uso de los SLAs es de reducir el costo, como minimizar los riesgos.
Por ese motivo las mtricas de calidad de software contratada en SLA deben
cumplir las siguientes caractersticas:

Tener una definicin clara, para evitar ambigedades que generaran


errores de interpretacin.

Tener una empresa modelo o ejemplo con el fin de ser comparables y


corroborar los beneficios al alcanzar esa meta.

Recoleccin automtica, para evitar la recoleccin manual por medio del


estndar IFPUG, que podra generar fallas humanas, sean estas en interpretacin,
errores de concepto y manipulacin.

Permitir el ajuste por el volumen. El ajuste basado en el volumen es


esencial para mantener la equidad y as evitar la variacin relacionada con el
volumen en los resultados de la medicin (Curtis, Dr. Bill; Dickenson, Bill; Kinsey,
Chris, 2015).
Por eso es prctico CISQ el cual cuenta con un sistema adecuado de medicin;
por medio de puntos de funcin automatizada (AFP) y estandarizado por CISQ
que permitirn dar cumplimiento al Acuerdo de Nivel de Servicio (SLA).

Puntos de funcin automatizados (AFP)

Este es el fuerte de CAST ya que Puntos de Funcin Automatizada de CAST


(AFP) es una solucin de conteo de puntos de funcin automtica basada en las
reglas definidas por el Grupo de Usuarios de Punto de Funcin Internacional
(IFPUG) y el Consorcio de Calidad de Software de TI (CISQ). CAST automatiza el
proceso de recuento manual utilizando la informacin estructural obtenida
mediante anlisis de cdigo fuente, estructura de base de datos y transacciones.

CAST AFP genera tres tipos de conteos:

Puntos de Funcin Agregados: Funcin Puntos identificados de las


funciones que son agregadas por los esfuerzos de mejora.
Puntos de Funcin Modificados: Funcin Puntos contados porque la
funcin existente se cambia durante el proyecto de mejora.
Puntos de funcin eliminados: Funcin Puntos contados para funciones
eliminadas durante el proyecto
Puntos de
Funcin
Agregados

CAST
Puntos de
funcin
automatizados

Puntos de Puntos de
Funcin funcin
Modificados eliminados

Figura 1 Puntos de Funcin Automatizados de CAST

Estructura bsica de SLA

Es comn que en los contratos contratados para los SLA, contienen un riesgo
del contrato, esto con el fin de garantizar el cumplimiento y efectividad.
Normalmente se estima un porcentaje ms que un valor fijo, correspondiente del
valor mensual del contrato y con una ponderacin para cada SLA. El factor de
ponderacin representa la cantidad de la cantidad "en riesgo" que se perder si se
inicia el SLA.

En los primeros das de la gestin SLA, los pesos SLA agregado al 100%.
Limitar esto al 100% signific que el surtidor tendra que faltar todos los SLAs para
pagar la cantidad completa del riesgo que sucedi raramente. Los clientes sentan
que fallar en varios SLAs debera activar al mximo.

Para las mtricas de calidad del software el factor de ponderacin suele ser
"sobre ponderado" en 200%, esto con el fin de permitir a los clientes poner un
peso adicional en las mtricas que son ms importantes para ellos (Curtis, Dr. Bill;
Dickenson, Bill; Kinsey, Chris, 2015). El permitir un peso total superior al 100%,
crea una situacin en la que el proveedor podra fallar en 2 y 3 SLAs, de un
posible 10, y pagar la cantidad de riesgo. Sobrepeso puede consumir la cantidad
de riesgo por falta de tan slo dos mtricas (por ejemplo, robustez y seguridad). El
techo es el mximo, y no importa la ponderacin, en riesgo es la parada difcil. En
la mayora de los contratos esto se representa como 10/200, 10% en riesgo, 200%
el sobre ponderado.

Hoy da ese han generado tendencias que buscan que los contratos incluyan un
porcentaje de bonificacin (Normalmente no es ms del 5%) que pueden
emplearse para recuperar parte de la cantidad perdida de alguna falla que active
el SLA, o usado para incentivar reas de importancia y mejora. Esto normalmente
es un evento final del ciclo presupuestario.

El perodo de tiempo para recolectar y notificar SLAs puede variar por contrato.
Siendo el reporte mensual el ms comn pero igualmente los perodos trimestrales
y anuales podran ser ms apropiados. Una tendencia reciente para nuevos
desarrollos es analizar el cumplimiento de SLA al final de cada actividad definid en
el contrato, esto cuando es posible medir el rendimiento de todo el paquete de
trabajo. Los resultados se aplican al final del mismo perodo de tiempo y se aplica
no ms que l mximo % de las tarifas para el perodo que estar en riesgo y
cualquier combinacin todava estar sujeto a ese lmite mximo (Curtis, Dr. Bill;
Dickenson, Bill; Kinsey, Chris, 2015).

Este es un ejemplo describiendo lo antes escrito, es vlido aclarar que cada


contrato Administrado es nico y estas cifras pueden variar segn la necesidad y
complejidad.

Tabla 3 Ejemplo de la distribucin de los porcentajes de un contrato SLA, con un riesgo de 10/250%,
mximo y una bonificacin del 5%,
Mejora
Nombre Descripcin Tipo Perodo Linea Peso Baja Alta
Anual
Base

La probabilidad de Unidad Mensualmente 0.02 35% 0.018 0.022 5%


SEGURIDAD posibles
infracciones de
Sistema Mensualmente 0.02 35% 0.00 0.019 5%
seguridad de una
aplicacin.
El riesgo de fallos
o defectos que Unidad Mensualmente 0.1 25% 0.09 0.11 5%
CONFIABILIDAD puedan resultar
del cambio de Sistema Mensualmente 0.1 35% 0.07 0.10 5%
una aplicacin.

Qu bien el
cdigo controla Unidad Mensualmente 1 25% 0.9 1.1 2%
eventos
RENDIMIENTO inesperados y
cun fcilmente el
rendimiento del
Sistema Mensualmente 1 25% 0.8 1.0 2%
sistema puede
ser restablecida.
La dificultad y la Unidad Mensualmente 3 25% 2.7 3.3 5%
FACILIDAD DE facilidad para
MANTENIMIENTO mantener una
aplicacin. Sistema Mensualmente 3 25% 2.3 2.9 5%

Total 200%

Fuente: (Curtis, Dr. Bill; Dickenson, Bill; Kinsey, Chris, 2015)

El nombre y la descripcin se toman del Consorcio de Calidad de Software


de TI (CISQ).
Tipo; se refiere a la clasificacin de defectos como nivel de unidad o
defectos de nivel de sistema. Siendo de mayor complejidad y riesgo los de
nivel de sistema y por lo tanto tambin recibirn un mayor peso porcentual.
Perodo; Normalmente est vinculado al perodo de facturacin y esta
corresponde al perodo de medicin en el que se recogen las mtricas y se
evalan las sanciones.
Lnea de base; se puede establecer desde un repositorio de la industria
como ISBSG, CAST Appmarq o una lnea de base interna derivada de un
nmero acordado de meses de datos que deben tener en cuenta los picos
estacionales comunes a la empresa o la industria. El repositorio CAST
Appmarq contiene actualmente datos de calidad estructural en ms de 1800
aplicaciones que consisten en ms de 2 Billones de lneas de cdigo y es el
estndar actual para evaluar la calidad estructural en todos los lenguajes
(Curtis, Dr. Bill; Dickenson, Bill; Kinsey, Chris, 2015). Es necesario que la
lnea de base mejore ao tras ao. Si la base de referencia inicial se
estableci con niveles bajos, los datos de los logros de los primeros aos
deberan utilizarse como base para el siguiente, aumentando la mejora
anualmente.
El nivel de activacin que provoca una prdida de la cantidad de "riesgo"
suele establecerse en 10% por debajo del promedio de la industria o el bajo
el valor de la lnea de base inicial. Esto representa un fallo en el servicio
que merece atencin inmediata. Si no se alcanza el umbral durante 3
perodos consecutivos, o 3 fallas en 5 perodos consecutivos, se debe
desencadenar la terminacin por causa. Esto no significa que el contrato se
termine automticamente. La mayora de las clusulas de terminacin por
causa estn diseadas para reunir a las partes para una discusin
inmediata ya que el cliente no est recibiendo el servicio contratado. Como
cuestin prctica, los clientes no quieren soportar los costos de cambio de
terminacin ms que los vendedores quieren sufrir la prdida de ingresos y
reputacin (Curtis, Dr. Bill; Dickenson, Bill; Kinsey, Chris, 2015).
Tanto el cliente como el proveedor debera reunirse peridicamente con el
fin de analizar si se estn considerando adecuadamente las medidas, los
umbrales, as mismo las condiciones de medicin.
La Mejora Anual representa la cantidad esperada de cambio al SLA ao
tras ao con fines de una mejora continua, la cual estar vinculada a
umbrales medibles y alcanzables y que deberan ser incorporados en los
contratos de aplicacin. Cestos se basa en los principios bsicos de ITIL,
CMM / CMMI, y de otros estndares de mejores prcticas. La misin es que
si un proveedor cumple los SLAs, es necesario aumentar la lnea de base;
en caso contrario, si est excediendo el SLA, la lnea base puede
nuevamente ser ajustada a un nivel apropiado con el fin de motivar la
mejora continua.

Errores Comunes de codificacin

Como CISQ, automatiza la medicin de las caractersticas de confiabilidad,


eficiencia de rendimiento, seguridad y mantenibilidad y esta basado en las
definiciones tratadas en la normativa ISO / IEC 25010, presentamos el listado de
los errores ms comunes de codificacin.

Tabla 4 Errores de codificacin que afectan a la fiabilidad


Los errores de codificacin que afectan a la fiabilidad Contexto necesario El impacto en el
negocio (EST).

Error y manejo de excepciones (unidad)


Complejidad de algoritmos Nivel de la unidad 10%
Programacin propensa a errores
Prcticas orientadas a objetos y prcticas estructuradas
(cuando proceda) mejor programacin Nivel de tecnologa 25%
Gestin de lmites de recursos
Cumplimiento del diseo multicapa
Integridad y coherencia de los datos
Manejo de errores y excepciones (entre capas)
Complejidad de transacciones Nivel del sistema 65%
Programacin de tiempo y estado / multi-subprocesos
Deteccin de desreferencia de punteros nulos

Fuente: (Soley, 2017)

Tabla 5 Errores de codificacin afectan la eficiencia


Los errores de codificacin afectan la eficiencia Contexto necesario El impacto en el
negocio
Cumplimiento con las mejores prcticas de recoleccin de
basura Nivel de la unidad 10%

Clculos costosos en bucles


Gestin de memoria, red y espacio en disco
Cumplimiento de las mejores prcticas orientadas a Nivel de tecnologa 10%
objetos
Cumplimiento de las mejores prcticas de SQL
Interacciones apropiadas con recursos costosos y / o
remotos
Rendimiento de acceso de datos y gestin de datos
Nivel del sistema 80%
centralizada de gestin de cliente de nivel medio

Uso de componentes de nivel intermedio versus


procedimientos almacenados y funciones de base de datos
Complejidad del algoritmo

Fuente: (Soley, 2017)


Tabla 6 Errores de codificacin impactando la seguridad
Los errores de codificacin impactando la seguridad Contexto necesario El impacto en el negocio

Bloqueo incorrecto
Fracaso en el uso de bibliotecas o marcos aprobados
Nivel de la unidad 10%
Cadena de formato no controlada
Validacin incorrecta del ndice de matriz
Uso de credenciales codificadas
Referencias a los recursos publicados Nivel de tecnologa 40%

Creacin de scripts entre sitios


Desbordamientos del bfer
Nivel del sistema 50%
inyeccin SQL
Cumplimiento del diseo de arquitectura segura

Fuente: (Soley, 2017)

Tabla 7 Errores de codificacin que impactan la Mantenibilidad


Los errores de codificacin que impactan la Contexto necesario El impacto en el
Mantenibilidad negocio

Complejidad ciclo matica


Codificacin de literales Nivel de la unidad 25%
Tamao excesivo de los programas
Cdigo no estructurado y duplicado
Nivel controlado de codificacin dinmica Nivel de tecnologa 25%
Cumplimiento con 0 de las mejores prcticas
Mdulos acoplados
Estructura estricta de la llamada entre capas
arquitectnicas
Rendimiento de acceso a datos y gestin de datos Nivel del sistema 50%
Capas horizontales excesivas
Acceso a datos encapsulados

Fuente: (Soley, 2017)

Obligaciones

El proveedor tiene la obligacin de corregir ciertas infracciones, debido a que es


quien manipula el cdigo y puede hacer que este pueda ser inutilizable; siendo
esta una de las malas prcticas que puede tener el proveedor. Todo depende de
la aplicacin, ya que en algunas de estas infracciones pueden ser aceptables,
pero existen aplicaciones crticas que generan un problema importante para el
cliente. Por eso es necesario que sea documentado y acordado por el proveedor y
el cliente y ser considerada una falta grave en el contrato SLA. Estas faltas solo
debe aplicarse al cdigo creado por el proveedor, o cdigo modificado por el
proveedor.

Estos pueden Incluir:

Inyeccin de SQL: La infraccin de inyeccin de SQL es tan fcilmente


explotada que no se tolerarn tales deficiencias en el cdigo entregado y debe
eliminarse a expensas del proveedor de servicios antes de su aceptacin o
despliegue operativo (Curtis, Dr. Bill; Dickenson, Bill; Kinsey, Chris, 2015).

No ponerle tiempos de espera para subprocesos: Los subprocesos sin


tiempos de espera o de terminacin, pueden continuar en ejecucin infinitamente
los que consumirn los recursos hasta que el sistema colapse.

Excluir ndices en consultas para tablas mayores a 10 megas, hacindolas


menos eficientes y de lento proceso.

Objetos con ms de un nmero permisible de instrucciones que no se


permiten en el cdigo entregado.

Conclusin y Recomendaciones

Este nuevo enfoque de la gestin de SLA se centra en parmetros de calidad


de software objetivos, financieramente cuantificables y repetibles, que permitirn el
desarrollo y/o comportamiento beneficiosos para las partes involucradas. El uso
de estas mediciones permitir un retorno o retroalimentacin ms claro del
desarrollo de la administracin de un contrato SLA, dando una visin ms clara
para la discusin de inversin en las actividades contratadas.

El control del SLA por medio de CISQ, permitir a los clientes, tener un mejor
control y manejar de manera ms eficiente y con calidad al contar con una
herramienta que le har seguimiento y generacin de indicadores que seran
ajustables para el cumplimiento, mejora o incentivar mejoras por medio de
sanciones o bonificaciones segn el caso.
Permite una estandarizacin que permite la comparacin con otras empresas,
permitiendo el concepto de Benchmarking a nivel de Acuerdos de Nivel de
Servicio (ANS), o Service Level Agreement (SLA).

También podría gustarte