You are on page 1of 86

REVISTA LATINOAMERICANA

DE INGENIERIA DE SOFTWARE
OCTUBRE 2013 VOLUMEN 1 NUMERO 5 ISSN 2314-2642

PUBLICADO POR EL GISI-UNLa

EN COOPERACIN POR LOS MIEMBROS DE LA RED DE INGENIERA DE SOFTWARE DE LATINOAMRICA

ARTCULOS TCNICOS

PSPVDC: Una Propuesta que Incorpora el Diseo por Contrato Verificado al Personal 153-166
Software Process
Silvana Moreno, lvaro Tasistro, Diego Vallespir

Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: 167-206


Un Enfoque Prctico
Eduardo Diez

Estudio Comparativo de Plataformas Cloud Computing para Arquitecturas SOA 207-236


Franco Bocchio
REVISTA LATINAMERICANA
DE INGENIERIA DE SOFTWARE

La Revista Latinoamericana de Ingenieria del Software es una publicacin tecnica auspiciada por la Red de Ingeniera de Software de Latinoamrica (RedISLA). Busca: [a] difundir artculos tcnicos,
empricos y tericos, que resulten crticos en la actualizacin y fortalecimiento de la Ingeniera de Software Latinoamericana como disciplina y profesin; [b] dar a conocer de manera amplia y rpida los
desarrollos cientfico-tecnolgicos en la disciplina de la regin latinoamericana; y [c] contribuir a la promocin de la cooperacin institucional entre universidades y empresas de la Industria del Software. La
lnea editorial, sin ser excluyente, pone nfasis en sistemas no convencionales, entre los que se prevn: sistemas mviles, sistemas, plataformas virtuales de trabajo colaborativo, sistemas de explotacin de
informacin (minera de datos), sistemas basados en conocimiento, entre otros; a travs del intercambio de informacin cientfico y tecnolgica, conocimientos, experiencias y soluciones que contribuyan a
mejorar la cadena de valor del desarrollo en la industria del software.

Comit Editorial
RAUL AGUILAR VERA (Mxico) BELL MANRIQUE LOSADA (Colombia) JOS ANTONIO POW-SANG (Per)
Cuerpo Academico de Ingenieria de Software Programa de Ingeniera de Sistemas Maestra en Informtica
Facultad de Matemticas Facultad de Ingeniera Pontifica Universidad Catlica del Per
Universidad Autonoma de Yucatn Universidad de Medelln
DIEGO VALLESPIR (Uruguay)
PAOLA BRITOS (Argentina) CLAUDIO MENESES VILLEGAS (Chile) Instituto de Computacin
Grupo de Ingeniera de Explotacin de Informacin Departamento de Ingeniera de Sistemas y Computacin Universidad de la Republica
Laboratorio de Informtica Aplicada Facultad de Ingeniera y Ciencias Geolgicas
Universidad Nacional de Ro Negro Universidad Catlica del Norte FABIO ALBERTO VARGAS AGUDELO (Colombia)
Direccin de Investigacin
RAMON GARCA-MARTINEZ (Argentina) JONS MONTILVA C. (Venezuela) Tecnolgico de Antioquia
Grupo de Investigacin en Sistemas de Informacin Facultad de Ingeniera
Licenciatura en Sistemas Escuela de Ingeniera de Sistemas CARLOS MARIO ZAPATA JARAMILLO (Colombia)
Departamento de Desarrollo Productivo y Tecnolgico Universidad de Los Andes Departamento de Ciencias de la Computacin y de la
Universidad Nacional de Lans Decisin
MARA FLORENCIA POLLO-CATTANEO (Argentina) Facultad de Minas
ALEJANDRO HOSSIAN (Argentina) Grupo de Estudio en Metodologas de Ingeniera de Universidad Nacional de Colombia
Grupo de Investigacin de Sistemas Inteligentes en Software
Ingeniera Facultad Regional Buenos Aires
Facultad Regional del Neuqun Universidad Tecnolgica Nacional
Universidad Tecnolgica Nacional

Contacto

Dirigir correspondencia electrnica a: Dirigir correspondencia postal a:


Editor de la Revista Latinoamericana de ngenieria de Software Editor de la Revista Latinoamericana de ngenieria de Software
RAMON GARCIA-MARTINEZ RAMON GARCIA-MARTINEZ
e-mail: rgarcia@unla.edu.ar Licenciatura en Sistemas. Departamento de Desarrollo Productivo y Tecnolgico
e-mail alternativo: rgm1960@yahoo.com Universidad Nacional de Lanus
Pgina Web de la Revista: http://www.unla.edu.ar/sistemas/redisla/ReLAIS/index.htm Calle 29 de Septiembre No 3901. (1826) Remedios de Escalada, Lans.
Pgina Web Institucional: http://www.unla.edu.ar Provincia de Buenos Aires. ARGENTINA.

Normas para Autores

Cesin de Derechos de Autor No retiene los derechos de reproduccin o copia (copyright), por lo que los autores podrn
Los autores toman conocimiento y aceptan que al enviar una contribucin a la Revista disponer de las versiones finales de publicacin, para difundirlas en repositorios institucionales,
Latinoamericana de Ingenieria del Software, ceden los derechos de autor para su publicacin blogs personales o cualquier otro medio electrnico, con la sola condicin de hacer mencin a la
electrnica y difusin via web por la Revista. Los demas derechos quedan en posesin de los fuente original de publicacin, en este caso Revista Latinoamericana de Ingeniera de Software.
Autores. Lista de Comprobacin de Preparacin de Envos
Polticas de revisin, evaluacin y formato del envo de manuscritos Como parte del proceso de envo, se les requiere a los autores que indiquen que su envo cumpla con
La Revista Latinoamericana de Ingenieria del Software recibe artculos inditos, producto del trabajo todos los siguientes elementos, y que acepten que envos que no cumplan con estas indicaciones
de investigacin y reflexin de investigadores en Ingenieria de Software. Los artculos deben pueden ser devueltos al autor:
presentarse redactados en el castellano en el formato editorial de la Revista. El incumplimiento del 1. La contribucin respeta el formato editorial de la Revista Latinoamericana de Ingenieria del
formato editorial en la presentacin de un artculo es motivo de retiro del mismo del proceso de Software (ver plantilla).
evaluacin. Dado que es una publicacin electrnica no se imponen limites sobre la cantidad de 2. Actualidad/Tipo de referencias: El 45% de las referencias debe hacerse a trabajos de publicados
paginas de las contribuciones enviadas. Tambin se pueden enviar comunicaciones cortas que den en los ltimos 5 aos, as como a trabajos empricos, para cualquier tipo de artculo (emprico o
cuenta de resultados parciales de investigaciones en progreso. terico).
Las contribuciones recibidas estn sujetas a la evaluacin de pares. Los pares que evaluaran cada 3. Caractersticas artculos empricos (anlisis cuantitativo de datos): Se privilegian artculos
contribucin son seleccionados por el Comit Editorial. El autor que enve la contribucin al contacto empricos con metodologas experimentales y cuasi experimentales, con pruebas estadsticas
de la Revista ser considerado como el autor remitente y es con quien la revista manejar toda la robustas y explicitacin del cumplimiento de los supuestos de las pruebas estadsticas usadas.
correspondencia relativa al proceso de evaluacin y posterior comunicacin. 4. Caractersticas artculos empricos (anlisis cualitativo de datos): Se privilegian artculos
Del proceso de evaluacin, el articulo enviado puede resultar ser: [a] aceptado, en cuyo caso ser empricos con estrategias de triangulacin terica-emprica, definicin explcita de categoras
publicado en el siguiente numero de la revista, [b] aceptado con recomendaciones, en cuyo caso se orientadoras, modelo terico de anlisis, y anlisis de datos asistido por computadora.
enviar al autor remitente la lista de recomendaciones a ser atendidas en la nueva versin del 5. Caractersticas artculos de revisin: Para el caso de artculos de revisin, se evaluar que los
articulo y su plazo de envio; [c] rechazado, en cuyo caso ser devuelto al autor remitente mismos hayan sido desarrollados bajo el formato de meta anlisis, la cantidad de referencias
fundando el motivo del rechazo. deben superar las 50, y deben explicitarse los criterios de bsqueda, bases consultadas y
pertinencia disciplinar del artculo.
Temtica de los artculos
6. El artculo (en formato word y pdf) se enviar adjunto a un correo electrnico dirigido al contacto
La Revista Latinoamericana de Ingeniera del Software busca artculos empricos y tericos que de la Revista en el que deber constar la siguiente informacin: direccin postal del autor,
resulten crticos en la actualizacin y fortalecimiento de la Ingeniera de Software Latinoamericana direccin de correo electrnico para contacto editorial, nmero de telfono y fax, declaracin de
como disciplina y profesin. que el artculo es original, no ha sido previamente publicado ni est siendo evaluado por otra
La lnea editorial pone nfasis en sistemas no convencionales, entre los que se prevn: sistemas revista o publicacin. Tambin se debe informar de la existencia de otras publicaciones similares
mviles, sistemas multimediales vinculados a la televisin digital, plataformas virtuales de trabajo escritas por el autor y mencionar la versin de la aplicacin de los archivos remitidos (versin del
colaborativo, sistemas de explotacin de informacin (minera de datos), sistemas basados en editor de texto y del conversor a archivo pdf) para la publicacin digital del artculo.
conocimiento, entre otros. Se privilegiarn artculos que contribuyan a mejorar la cadena de valor 7. Loa Autores aceptan que el no cumplimiento de los puntos anteriores es causal de No Evaluacin
del desarrollo en la industria del software. del articulo enviado.
Poltica de Acceso Abierto Compromiso de los Autores de Artculos Aceptados
La Revista Latinoamericana de Ingeniera de Software: La Revista Latinoamericana de Ingeniera del Software busca ser una revista tcnica de calidad, en
Sostiene su compromiso con las polticas de Acceso Abierto a la informacin cientfica, al cuyo desarrollo estn involucrados los investigadores y profesionales latinoamericanos de la
considerar que tanto las publicaciones cientficas como las investigaciones financiadas con disciplina. En este contexto, los Autores de artculos aceptados asumen ante la Revista y la
fondos pblicos deben circular en Internet en forma libre, gratuita y sin restricciones. Comunidad Latinoamericana de Ingeniera del Software el compromiso de desempearse como pares
Ratifica el modelo de Acceso Abierto en el que los contenidos de las publicaciones cientficas se evaluadores de nuevas contribuciones.
encuentran disponibles a texto completo libre y gratuito en Internet, sin embargos temporales, y
cuyos costos de produccin editorial no son transferidos a los autores.
PSPVDC: Una Propuesta que Incorpora el Diseo por
Contrato Verificado al Personal Software Process

Silvana Moreno lvaro Tasistro Diego Vallespir


Facultad de Ingeniera Escuela de Ingeniera Facultad de Ingeniera
Universidad de la Repblica Universidad ORT Uruguay Universidad de la Repblica
Montevideo, Uruguay Montevideo, Uruguay Montevideo, Uruguay
smoreno@fing.edu.uy tasistro@ort.edu.uy dvallesp@fing.edu.uy

ResumenEl desarrollo de software se ha vuelto una actividad de pre- y post-condiciones escritas en Lgica de Primer Orden.
muy importante en el mundo actual. Existen nmeros procesos Cuando las tcnicas y herramientas incorporadas permiten
de desarrollo de software que buscan aumentar la calidad de los demostrar que se cumplen las especificaciones establecidas,
productos y disminuir los tiempos de salida al mercado. Sin estamos en presencia de un mtodo formal, generalmente
embargo, el software contiene defectos y stos causan fallas
potencialmente graves durante su ejecucin. Este trabajo
llamado Verified Design by Contract (VDbC).
propone un nuevo proceso de desarrollo de software denominado En este artculo se presenta una adaptacin del PSP que
PSPVDC que combina el enfoque del Personal Software Process incorpora VDbC con el objetivo de mejorar, en comparacin
(PSP) y del Diseo por Contrato Verificado (VDbC) con el con el uso del PSP sin VDbC, la calidad de los productos
objetivo de mejorar la calidad de los productos con respecto al desarrollados. Se denomina a esta propuesta PSPVDC.
PSP. Adems se presenta una revisin sistemtica de la literatura Esperamos de esta forma aportar en la bsqueda de
que busca conocer las adaptaciones al PSP que hayan sido procesos que ayuden a desarrollar productos de software muy
documentadas, en particular aquellas que incorporan mtodos cercanos a cero defectos.
formales.
La estructura del artculo es la siguiente: primero se
Trminos Clavemtodos formales, diseo por contrato presentan las nociones bsicas del diseo por contrato y el PSP
verificado, personal software process, revisin sistemtica. (secciones II y III). Luego en la seccin IV se presenta una
revisin sistemtica de la literatura realizada con el propsito
I. INTRODUCCION de conocer las adaptaciones existentes al PSP que incorporan
mtodos formales. En la seccin V se presenta el PSPVDC y la
seccin VI presenta algunas medidas de calidad del PSPVDC.
La construccin de software confiable es uno de los Finalmente, se indican las conclusiones obtenidas (seccin
desafos de la Ingeniera de Software. El tamao, la VII).
complejidad de las aplicaciones de software, las tasas
apresuradas de entregas de proyectos, las caractersticas de los II. DISEO POR CONTRATO
equipos de desarrollo, entre otros, hacen que los productos de
software contengan defectos. Estos defectos pueden ocasionar Los mtodos formales son un conjunto de tcnicas para
fallas en el software mientras ste se est ejecutando [1]. La especificar, desarrollar y verificar sistemas de software
presencia de defectos provoca un alto costo de correccin de mediante el uso del lenguaje matemtico. Consisten en
las aplicaciones, as como una prdida de confianza en el demostrar matemticamente que los programas producidos
mismo. La bsqueda de desarrollar software cero defectos ha cumplen sus especificaciones.
dado lugar a un gran nmero de procesos y metodologas de El Diseo por Contratos (DBC) es un mtodo propuesto
desarrollo. por Bertrand Meyer, e inspirado en las ternas de Hoare, para
El Personal Software Process (PSP) es uno de estos especificar el comportamiento de mdulos de software [4], [5].
procesos. El PSP aplica disciplina de proceso y gestin La idea principal detrs de DBC es que una clase y sus
cuantitativa al trabajo individual del ingeniero de software. clientes tienen un "contrato" entre s. Los clientes deben
Promueve la utilizacin de prcticas especficas durante todas garantizar ciertas condiciones antes de llamar a un mtodo
las etapas del desarrollo con el objetivo de mejorar la calidad definido por la clase, y en cambio la clase da como garantas a
del producto y aumentar la productividad del individuo [2], [3]. los clientes ciertas propiedades que se cumplen luego de
Por otro lado, los mtodos formales tambin buscan finalizada la ejecucin del mtodo invocado.
construir software cero defectos. Estos mtodos son un Ciertas implementaciones del DbC permiten que los
conjunto de tcnicas y herramientas para especificar, contratos sean verificables en tiempo de ejecucin. Los
desarrollar y verificar sistemas software mediante el uso de contratos son incluidos en el cdigo del programa en una
lenguaje matemtico formalizado. Consisten en demostrar determinada sintaxis, y se traducen a cdigo ejecutable por el
matemticamente que los programas producidos cumplen sus compilador. Por lo tanto, cualquier violacin del contrato que
especificaciones. se produce mientras se ejecuta el programa puede ser detectado
El diseo por contrato (DbC) es una tcnica para el diseo inmediatamente.
de los componentes de un sistema de software, mediante su
especificacin en un lenguaje formal, generalmente en la forma

Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo 153
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
Los contratos de software se especifican mediante la no deben ser alterados, es decir, sus valores se mantienen
utilizacin de expresiones lgicas denominadas aserciones. incambiados al salir del mtodo.
Existen diferentes tipos de aserciones, entre ellas se encuentran La firma del mtodo es la siguiente:
las precondiciones y las poscondiciones de programas. En lo
que refiere a los contratos en la orientacin a objetos las public int[] getMerge(int[] a, int[] b)
precondiciones y poscondiciones normalmente se definen a
nivel de los mtodos de las clases. Al invocar al mtodo se deben pasar dos vectores
Una precondicin establece lo que espera recibir el ordenados de menor a mayor, lo que nos indica una
proveedor. Visto de otro modo, define las condiciones que precondicin que se debe cumplir. Para cumplir con dicha
debe garantizar el cliente al momento de pedirle al proveedor precondicin es necesario que para todos los elementos del
cierto servicio. vector se cumpla que el elemento que est en la posicin i del
Una poscondicin da como garantas al cliente ciertas vector sea menor o igual al elemento que se encuentra en la
propiedades que se cumplen despus de la llamada al mtodo. posicin i+1.
En definitiva, especifica lo que se cumple luego de que se Una forma de especificar formalmente dicha precondicin
ejecuta el mtodo. Visto desde el lado del proveedor, la se muestra en las siguientes dos aserciones.
poscondicin es lo que ste debe asegurar que se cumpla,
siempre y cuando la precondicin se respete al momento de /*@ requires (\forall int i; i >= 0 && i < a.length-1;
invocar el servicio. a[i] <= a[i+1]); @*/
El Java Modeling Language, abreviado JML y en espaol /*@ requires (\forall int j; j >= 0 && j < b.length-1;
Lenguaje de Modelado para Java es un lenguaje de b[j] <= b[j+1]); @*/
especificacin para programas Java. Las especificaciones JML
describen formalmente el comportamiento de clases y mtodos; El cuantificador \forall sirve para recorrer el vector desde
se escriben como comentarios de anotacin Java en el cdigo una posicin y en determinado rango, haciendo cumplir
fuente, que luego pueden compilarse con determinada condicin. En este caso se recorren los vectores y
cualquier compilador de Java [6]. chequea que para todos elementos el valor de a[i] sea menor o
Aadir especificaciones JML a un programa ayuda a igual al de a[i+1]. La forma de leer la precondicin es Para
comprender qu funcin debe realizar un mtodo o una clase. todo i entre cero (inclusive) y el largo del vector menos 1 (sin
Tambin ayuda a encontrar defectos en los programas, puesto incluir ste) se cumple que a[i] es menor o igual a a[i+1].
que se puede comprobar si un mtodo cumple con su Al terminar de ejecutarse el mtodo se debe cumplir que los
especificacin cada vez que se ejecuta. vectores de entrada no fueron alterados. Esto se especifica
Existen herramientas que permiten compilar la como una poscondicin y una forma de especificarlo es
especificacin formal para ciertos lenguajes de especificacin. utilizando la pseudovariable \old(e).
Para el JML existe el compilador JMLC, este es una extensin Se recorren los vectores de entrada y verifica que para
de un compilador Java y compila los programas Java con todos sus elementos el valor en cada posicin despus de
especificaciones JML. En el cdigo generado se agregan llamar al mtodo es igual al que tenia previo al llamado (a[i] =
instrucciones ejecutables que chequean en tiempo de ejecucin = \old(a[i])).
si los mtodos cumplen con sus especificaciones. En caso de
que una especificacin no se cumpla, se interrumpe la /*@ ensures (\forall int i; i >= 0 && i <= a.length-1;
ejecucin del programa y se notifica cul es la especificacin a[i] == \old(a[i])); @*/
no respetada. Esto permite detectar defectos y por ende se
puede utilizar como una forma de probar el programa durante /*@ ensures (\forall int j; j >= 0 && j <= b.length-1;
el desarrollo de software. b[j] == \old(b[j])); @*/
El JML dispone de dos clusulas especficas para indicar
las precondiciones y las poscondiciones de un mtodo: requires
Cabe aclarar, que en ambos casos se podra haber utilizado
y ensures. Estas clusulas deben ir situadas justo antes de la
la misma variable cuantificadora (i) ya que es local al \forall.
declaracin del mtodo.
Hasta aqu hemos tenido en cuenta las precondiciones y
Adems, el JML aade un conjunto de operadores que hace
poscondiciones para los vectores de entrada al mtodo.
ms cmodo en muchos casos construir aserciones complejas.
Veamos ahora las condiciones que se deben cumplir en lo que
Entre estos operadores se incluyen los cuantificadores ms
respecta al vector esperado como resultado del mtodo.
comunes (\forall, \exists, \sum, \product, \max, \min, etc) que
Como se mencion anteriormente el vector devuelto debe
hacen del JML un lenguaje similar al lenguaje de predicados de
contener de forma ordenada los mismos elementos que los
lgica.
vectores pasados por parmetro.
Tambin el JML define dos seudo variables que pueden ser
Para referenciar al vector resultado se utiliza la
utilizadas en las poscondiciones de los mtodos; \result: valor
pseudovariable \result y se recorre el mismo, como ya vimos
devuelto por el mtodo y \old(E): valor de la expresin E al
anteriormente, para verificar el ordenamiento de los elementos
comenzar la ejecucin del mtodo.
de menor a mayor.
Presentamos a continuacin una forma de especificar
utilizando JML el mtodo merge. Dicho mtodo recibe como
/*@ ensures (\forall int k; k >= 0 && k < \result.length-1;
parmetros dos vectores de enteros ordenados de menor a
\result[k] <= \result[k+1]); @*/
mayor. El mtodo retorna otro vector con esos elementos
ordenados de menor a mayor. Adems, los vectores de entrada

154 Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
Una forma de especificar informalmente que el vector Cada ingeniero es diferente, para ser ms
devuelto contenga los mismos elementos de los vectores eficiente, debe planificar su trabajo basndose en su
pasados por parmetro y no otros es: experiencia personal.
Si denominamos |v|x la cantidad de veces que el Usar procesos bien definidos y cuantificados.
elemento x aparece en el vector v, entonces: para cada Los ingenieros deben asumir la responsabilidad
elemento x que aparece en el vector resultado r, se personal de la calidad de sus productos.
cumple |r|x = |a|x + |b|x. Cuanto antes se detecten y corrijan los errores menos
esfuerzo ser necesario.
El largo del vector resultado debe ser igual a la suma Es ms efectivo evitar los defectos que detectarlos y
del largo de los vectores a y b. corregirlos.
Especificamos formalmente que el largo del vector Trabajar bien es siempre la forma ms rpida y
resultado es igual a la suma del largo del vector a y el b de la econmica de trabajar.
siguiente forma:
El PSP define un conjunto de fases que el ingeniero sigue
/*@ ensures \result.length == (a.length + b.length); @*/ durante el proceso desarrollo. Todas las tareas y actividades
realizadas en estas fases estn definidas en un conjunto de
Para especificar que cada elemento del vector resultado documentos conocidos como scripts. Los scripts permiten
aparece en l tantas veces como en los dos vectores de entrada seguir el proceso de forma disciplinada, y ayudan al ingeniero
utilizamos \num_of. Este cuantificador permite contar la a identificar sus fortalezas y sus debilidades, y crecer a travs
cantidad de elementos de los vectores. Especificamos que para de un proceso de aprendizaje y mejora.
todos los elementos del vector resultado la cantidad de Las fases son Planning, Design, Design Review, Code,
elementos repetidos es igual a la suma de los mismos Code Review, Compile, Unit Test, y Post Mortem. La figura 1
elementos repetidos en a y en b. muestra las fases de PSP.
Formalmente especificamos como sigue:

/*@ ensures (\forall int i; i>= 0 && i < \result.length;


(int)(\num_of int j; j>=0 && j<\result.length; \result[j]
== \result[i]) == (int)(\num_of int j; j>=0 &&
j<a.length; a[j] == \result[i]) + (int)(\num_of int j;
j>=0 && j<b.length; b[j] == \result[i]) ); @*/

La especificacin completa para el mtodo getMerge se


muestra de forma ms clara en la figura 2.
La especificacin de contratos ejecutables permite
introducir pruebas en el propio cdigo y son muy efectivas
para encontrar defectos durante el desarrollo de software. Sin
embargo, como se desprende de este ejemplo, las
especificaciones formales no son sencillas y tienen, como
cualquier actividad, un costo asociado. Como con cualquier
otra tcnica se debe estudiar el costo-beneficio previamente a
aplicarla.
III. PERSONAL SOFTWARE PROCESS Fig. 1. Fases del PSP
El Personal Software Process, conocido por sus siglas como
PSP, es una metodologa de desarrollo de software creada por
el Instituto de Ingeniera del Software (SEI). Est dirigido a los Para cada fase el ingeniero recoge la informacin del
ingenieros, permitiendo mejorar la forma en la que construyen tiempo empleado en la fase y los defectos inyectados y
software. Considera aspectos como la planificacin, calidad, removidos. La informacin sobre los defectos incluye el tipo de
estimacin de costos y productividad. defecto, el tiempo en detectar y corregir el defecto, la fase en la
El PSP fue diseado para ayudar a los ingenieros a seguir que se inyecta y la fase en la que se remueve. El PSP define 10
un proceso disciplinado de ingeniera del software, tipos de defectos a utilizar. La tabla I presenta los tipos de
ensendoles a planificar y dar seguimiento al trabajo, defectos junto con una breve descripcin de los defectos que
utilizando un proceso bien definido y medido. Se caracteriza deben registrarse para cada tipo.
por ser de uso personal y se aplica a programas pequeos de El PSP propone una vista de cuatro dimensiones para lograr
menos de 10.000 lneas de cdigo. Se centra en la un diseo completo. En la vista interna-esttica se especifica la
administracin del tiempo y en la administracin de lgica interna del programa, normalmente el pseudo cdigo. La
la calidad a travs de la eliminacin temprana de defectos [2], vista interna-dinmica corresponde a las posibles maquinas de
[3]. estado, es decir, los estados, las transiciones y acciones entre
estados que puede tener el programa.
Los principios del PSP son:

Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo 155
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
Fig. 2. Especificacin mtodo getMerge

formas de estimar tiempos y tamao. Los nombres de los


procesos y los elementos que se van incorporando durante el
TABLA I. TIPOS DE DEFECTOS DEL PSP curso se muestran en la figura 3. El nivel 2.1 es el proceso
completo del PSP.
Tipo Nombre Descripcin
10 Documentacin Comentarios o mensajes
20 Sintaxis Ortografa, puntuacin, tipos, formato
de instrucciones
30 Componentes o Administracin de cambios, control de
configuracin versiones, bibliotecas
40 Asignacin Declaracin, nombres duplicados,
alcance, lmites
50 Internas Llamados y referencias a
procedimientos, E/S, formatos de
usuarios
60 Chequeo de tipos Mensajes de error, chequeos
inadecuados
70 Datos Estructura, contenido
80 Funcin o lgicos Defectos por lgica, apuntadores, ciclos,
recursin, clculos, funciones
90 Sistema Configuracin, sincronizacin, memoria
100 Ambiente Problemas de diseo, compilacin,
prueba, u otros con los sistemas de
desarrollo

La vista externa-esttica corresponde a la estructura de


clases y la vista externa-dinmica define las interacciones entre
el sistema y el usuario (diagramas de casos de uso, diagrama de
secuencia del sistema, etc). La informacin recabada en cada
una de estas vistas es definida en cuatro templates como se
Fig. 3. Niveles del PSP
muestra en la tabla II.
TABLA II. TEMPLATES DE DISEO DEL PSP
IV. REVISIN SISTEMTICA
Interna Externa
Esttica Logic Specfication Template Function Specfication
Es de nuestro inters conocer las adaptaciones al PSP que
Template hayan sido documentadas, en particular nos interesa conocer
Dinmica State Machine Template Operational Specification las adaptaciones que incorporan mtodos formales.
Template Presentamos en esta seccin una revisin sistemtica que busca
conocer la literatura existente sobre adaptaciones al PSP.
El PSP se ensea mediante un curso. Durante el mismo, los Una revisin sistemtica de la literatura es un medio de
ingenieros construyen programas de software (ejercicios) identificacin, evaluacin e interpretacin de toda la
mientras aprenden progresivamente a planificar, desarrollar y informacin que se disponga relativa a una pregunta de
seguir las prcticas del PSP. En el primer ejercicio, se investigacin, rea temtica o fenmeno de inters [7].
comienza con un proceso simple (el proceso base, llamado PSP La revisin sistemtica realizada responde a dos preguntas
0); a medida que se avanza en el proceso se agregan nuevas de investigacin:
fases como Design Review y Code Review, as como tambin
156 Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
(1) Se han realizado adaptaciones al PSP? Para SCOPUS se agrega el filtro de excluir los artculos
pertenecientes a las areas Life Sciences y Health Sciences
(2) Las adaptaciones propuestas al PSP incorporan
obteniendo 20 resultados.
mtodos formales? Cmo lo hacen?
Por ltimo en la base de Springer se filtran slo artculos,
Para responder a estas preguntamos definimos un protocolo de la disciplina Computer Science y en ingls, obteniendo 20
que especifica los mtodos que se utilizan para llevar a cabo la resultados.
revisin sistemtica. Se define la cadena de bsqueda que En A Bibliography of the Personal Software Process
consta de tres partes. La primera parte est relacionada con las (PSP) and the Team Software Process (TSP) se encuentra 1
formas de nombrar el Personal Software Process, la segunda artculo que adapta PSP utilizando mtodos formales. Este
parte con los posibles sinnimos de la palabra adaptar, es artculo tambin fue encontrado con EBSCO e IEEE.
decir las diferentes formas de presentar un cambio al PSP y la En los Simposios de TSP se encontr 1 artculo que no fue
ltima parte se refiere al uso de mtodos formales. Las encontrado por ninguna otra fuente as como una presentacin
bsquedas fueron realizadas en bibliografa en idioma ingls, (es decir, copias de diapostitivas). Ambos son del Simposio
por ende la cadena de bsqueda es en ingls: 2012, el artculo combina mtodos formales con PSP y la
(personal software process) and ((adapting or extending or presentacin incorpora al PSP tcnicas basadas en modelos.
over or incorporating) or (formal methods or design by
Algunos artculos fueron publicados en ms de una
contract))
revista/conferencia y/o estn repetidos en ms de un buscador,
Las bibliotecas digitales utilizadas para la bsqueda de
por lo que se tienen en cuenta una sola vez a estos artculos
artculos fueron SCOPUS, Springer, IEEE Xplore y EBSCO.
resultando:
Estos buscadores abarcan las principales colecciones de
revistas y actas de conferencias de ingeniera de software. EBSCO 34 artculos
Adems, se realiz una bsqueda de forma manual en A
Bibliography of the Personal Software Process (PSP) and the Springer 19 artculos
Team Software Process (TSP) y en las actas de los Simposios Scopus 18 artculos
TSP realizados desde el 2006 al 2012. A Bibliography of the
Personal Software Process (PSP) and the Team Software IEEE 29 artculos
Process (TSP) es un documento creado por el Software Simposio TSP 2013 1 artculos
Engineers Institute (SEI) que contiene libros, captulos,
secciones y publicaciones en general referentes a PSP y TSP. Simposio TSP 2013 1 presentacin.
Esta bsqueda permite encontrar trabajos realizados con
Finalmente al aplicar los criterios de inclusin/exclusin
respecto al tema de inters que posiblemente no hayan sido
para los resultados de cada buscador el resultado es:
indexados en las bibliotecas digitales.
Cada artculo encontrado en la bsqueda es evaluado para Scopus 2 artculos
decidir si debe o no incluirse teniendo en cuenta el ttulo, las
palabras claves y el resumen. Aquellos artculos que cumplan IEEE 1 artculo
al menos una de las siguientes condiciones sern excluidos: Simposio TSP 2013 1 artculo
No se centran en el Personal Software Process Simposio TSP 2013 1 presentacin
Captulos de libros o libros Tres de los cinco trabajos encontrados adaptan el PSP para
Duplicados en diferentes fuentes incorporar mtodos formales.
Babar y Potter proponen un nuevo proceso denominado B-
No escritos en ingls PSP que incorpora el mtodo formal B al proceso de desarrollo
personal [8]. Suzumori, Kaiya y Kaijiri proponen la
No propongan una adaptacin al PSP o no incorporen
combinacin del mtodo formal VDM y PSP (VDM over PSP)
mtodos formales al mismo
[9] al igual que la propuesta de Kusakabe, Omori and Araki
Debido a que la cantidad de artculos que se espera (VDM-PSP) [10]. Estos tres trabajos son presentados en las
encontrar es muy baja optamos por no realizar un control de la siguientes secciones.
calidad de los artculos. De los otros dos trabajos encontrados, uno modifica al PSP
La sntesis de datos consistir en agrupar a los artculos en para llevar adelante un proceso de desarrollo de software de a
base a las dos preguntas de investigacin planteadas, es decir, pares (pair-programming) [11] y el otro propone una
si es un artculo que adapta a PSP mediante la incorporacin de adaptacin el PSP incorporando tcnicas basadas en modelos.
mtodos formales, si es un artculo que adapta a PSP en La propuesta de adaptacin del PSP para el desarrollo de
cualquier otro aspecto o si es un artculo que utiliza mtodos software de a pares, denominada Collaborative Software
formales con PSP pero sin adaptarlo. Process (CSP) describe los cambios necesarios para distinguir
Al aplicar la cadena de bsqueda en la base de IEEE se las tareas que debe seguir cada rol durante el desarrollo. Los
obtienen 31 resultados. En esta base se filtra la bsqueda autores explican cmo los scripts, templates y formularios del
eliminando los contenidos de tipo Books & eBooks. PSP son ajustados, describiendo en particular los cambios
Utilizando EBSCO se eliminan los filtros que buscan en las necesarios para distinguir las tareas que debe el rol
bases CAB Abstracts 1990-Present, Dentistry & Oral Sciences desarrollador, el rol observador y los momentos en los que se
Source, MEDLINE y Ovid Journals y se obtienen 34 debe realizar el intercambio de roles. Otro cambio propuesto es
resultados. la utilizacin de dos checklists de diseo y dos checklists de
cdigo, uno para cada rol.
Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo 157
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
La presentacin del Simposio TSP propone una adaptacin VDM over PSP agrega y modifica varias fases al PSP,
al PSP incorporando tcnicas de integracin basadas en especficamente modifica la fase de diseo para incorporar la
modelos. El proceso propuesto modifica la fase de diseo para especificacin formal en el lenguaje VDM-SL. Luego de la
desarrollar un modelo de diseo que describa la estructura especificacin formal se realiza la revisin de diseo de PSP y
externa del sistema y el comportamiento y luego refina este a posterior agrega las nuevas fases VDM-SL syntax review,
modelo para describir la estructura interna del sistema y el syntax check, type check y validation.
comportamiento. La fase de revisin de diseo incorpora la Durante VDM-SL syntax review el usuario chequea las
comprobacin del modelo mediante una herramienta de especificaciones en bsqueda de defectos de sintaxis. Las fases
anlisis esttico. Por ltimo las fases de cdigo y Unit Test syntax review, type check and validation son ejecutadas por el
incorporan la generacin de cdigo parcial y la generacin de Toolbox comprobando la sintaxis, el chequeo de tipos e
los test en base a los modelos respectivamente. invariantes y precondiciones de forma dinmica. En esta ltima
Estas dos ltimas adaptaciones no sern explicadas en fase no aplican tcnicas de verificacin formal ya que la
mayor profundidad ya que no hacen uso de los mtodos propuesta VDM-PSP es utilizada por estudiantes principiantes.
formales. Los autores proponen introducir VDM over PSP en 4
niveles, de forma de introducir las tcnicas de VDM poco a
A. Propuesta B-PSP [8]
poco.
Los autores de la propuesta B-PSP combinan los enfoques
de mtodos formales y PSP con el objetivo de construir VDM over PSP0: corresponde al proceso base de PSP
software fiable y de alta calidad dentro de los plazos y a utilizar, es decir PSP 2.1
presupuesto esperado. VDM over PSP1: se introducen las especificaciones
B-PSP incorpora al PSP las fases Specification, Auto funcionales en VDM-SL. Adems de VDM over PSP0,
Prover, Animation y Auto Proof. Durante la fase de el usuario utiliza VDM-SL para especificar tipos de
Specification se especifican las B-machines utilizando el datos, pre-condiciones, descripciones de funciones
lenguaje formal B. Posteriormente las fases de Auto Prover y implcitas e invariantes de cada tipo de datos.
Animation se realizan con la ayuda del B toolkit, controlando la
sintaxis bsica y la dependencia entre machines, generando las VDM over PSP2: se introducen las especificaciones
obligaciones de pruebas y brindando animacin. Durante la lgicas en VDM-SL. Adems de VDM over PSP1, el
fase de Auto Proof se realiza una demostracin interactiva de la usuario especifica la especificacin interna de cada
prueba mediante el B toolkit. funcin.
B-PSP propone adems la generacin de cdigo
VDM over PSP3: se introduce la Toolbox para validar
automticamente, aunque no explica durante que fase se
las especificaciones escritas en VDM-SL. Este nivel
realiza. La propuesta elimina las fases de design, design
corresponde al proceso completo VDM over PSP.
review, code, code review, code compile y Unit Test, pero no
aclara si las actividades realizadas durante estas se realizan en
alguna de las nuevas fases. Planning
La propuesta B-PSP mantiene la idea de PSP de fomentar a Design
los desarrolladores individuales a medir y evaluar, reconocer Design review
las causas de la introduccin de defectos y evitarlas en el VDM-SL syntax
futuro. Al igual que PSP se recogen los datos de tiempo y review
esfuerzo; en esta propuesta se registran adems las lneas de Syntax check
especificacin formal (LOS) y la cantidad de pruebas (# Proof). Type check
Validation
B. Propuesta VDM over PSP [9]
Code
La propuesta VDM over PSP propone combinar el mtodo
Code review
formal VDM y PSP con el objetivo de mejorar la gestin de la
Compile
calidad. Esta gestin considera dos aspectos: la prevencin de
Unit Test
defectos y la eliminacin de defectos. Para la prevencin de
defectos en VDM over PSP se utilizan checklist y guidelines de Postmortem
revisin al igual que en PSP, mientras que la estrategia para Fig. 5. Fases de VDM over PSP
eliminar defectos es agregar actividades que permitan logar una
mayor calidad en el diseo. Estas actividades se proponen en C. Propuesta VDM-PSP [10]
las nuevas fases VDM-SL syntax review, syntax check, type
check y validation. . La propuesta VDM-PSP combina VDM y PSP basndose
en la importancia de producir software de alta calidad
siguiendo un proceso de desarrollo eficaz y eficiente. Los
Planning
autores creen que a pesar de que PSP proporciona cuatro
Specification plantillas de diseo para aumentar la confianza en el diseo, el
Auto prover uso de los mtodos formales con sus lenguajes de
Animation especificacin formal y sus herramientas sern eficaces en la
reduccin de los defectos.
Auto Proof VDM-PSP incorpora el mtodo formal VDM que dispone
Postmortem de varios lenguajes de especificacin formal y la VDM toolkit
Fig. 4. Fases de B-PSP que permite el chequeo de sintaxis, chequeo de tipos, la
158 Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
utilizacin del intrprete y la generacin de obligaciones de La figura 7 muestra el agregado de estas dos nuevas fases.
pruebas. La propuesta planteada mantiene la mismas fases que
PSP, modificando la fase de diseo para incorporar la
especificacin formal utilizando alguno de los lenguajes que
provee VDM (por ejemplo, VDM ++) y la fase de revisin de
diseo para incorporar la herramienta VDM toolkit. No queda
clara en la propuesta en qu fase se realiza la generacin de las
obligaciones de la prueba.

Planning
Design
Design review
Code
Code review
Compile
Fig. 7. Incorporando las fases de Formal Specification y Proof
Unit Test
Postmortem El PSP propone revisiones personales como mecanismo
Fig. 6. Fases de VDM-PSP efectivo y rpido de remocin de defectos. Especficamente,
propone la revisin del diseo y la revisin del cdigo. Durante
La revisin sistemtica realizada permite conocer la estas revisiones el ingeniero revisa el trabajo realizado
existencia de las adaptaciones realizadas al PSP que incorporan siguiendo una check list en busca de defectos.
mtodos formales. Los trabajos encontrados presentan En PSPVDC la nueva fase de Formal Specification puede
diferentes formas de incorporar mtodos formales al PSP, incurrir a la inyeccin de defectos. Siguiendo la misma idea de
agregando nuevas fases, modificando fases o simplemente PSP de intentar remover la mayor cantidad de defectos de
introduciendo actividades al PSP (manteniendo sus fases). forma temprana se propone una fase de revisin de la
Sin embargo, ninguno de los trabajos encontrados especificacin formal. La fase Formal Specification Review se
incorpora el enfoque de Diseo por Contrato (DbC). Este realiza a continuacin de la especificacin formal y su objetivo
mtodo formal tiene sus caractersticas propias que difieren es revisar, con la ayuda de una check list, la especificacin
tanto de B como de VDM. Por esto, es necesaria una recientemente construida.
adaptacin particular al PSP de forma de poder usar el DbC en Luego de construida y revisada la especificacin formal se
conjunto con el PSP. propone una fase de compilacin de la especificacin formal.
Durante esta fase se compila la especificacin formal
V. EL PSPVDC utilizando herramientas permitiendo generar cdigo ejecutable
El PSPVDC es una adaptacin al PSP que incorpora el adems de remover defectos. En la figura 8 se presenta el
enfoque de diseo por contrato verificado. El objetivo de esta agregado de estas fases.
adaptacin es mejorar la calidad (defectos/kloc) del producto
de software desarrollado, en comparacin con el PSP.
A. Incorporando VDbC al PSP
Para incorporar VDbC se deben realizar las actividades de
Especificar Formalmente y Demostrar Formalmente la
correctitud del cdigo con respecto a dicha Especificacin.
Incorporar estas actividades al proceso puede realizarse de
diversas formas; proponiendo fases nuevas, proponiendo
nuevos pasos a fases ya existentes en PSP o combinando
ambas. En PSPVDC incorporamos dos nuevas fases para dar
soporte a este enfoque, la fase de Formal Specification y la fase
de Proof.
La fase de Formal Specification se propone luego de
finalizado el diseo y realizada la revisin del mismo. Durante
esta fase se especifican los mtodos de las clases anteriormente
diseados y revisados. Llevar a cabo la especificacin en una
Fig. 8. Incorporando las fases de Formal Specification review y compile
nueva fase permite conocer el esfuerzo (tiempo) dedicado
exclusivamente a especificar y conocer los defectos que se
inyectan y remueven al realizar esta actividad. B. Desde Diseo a Codificacin
La fase de Proof es propuesta luego de la compilacin de Un proceso de desarrollo de software consiste de un
cdigo. Durante esta fase se realiza la demostracin de la conjunto ordenado de pasos a seguir para lograr un producto de
correctitud del cdigo con respecto a la especificacin formal. software que resuelva un problema especfico. El PSP define a
Al igual que en la fase de Formal Specification el travs de las fases de Design, Design Review, Code, Code
proponer una nueva fase para la verificacin permite conocer Review, Compile, Unit Testing y Postmortem un proceso
los tiempos y defectos especficamente asociados a la disciplinado donde las salidas de una fase son la entrada directa
verificacin formal. a la fase inmediatamente posterior.
Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo 159
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
En el PSP, una de las actividades a realizar durante la fase cual podramos pensar (analizar costo-beneficio) en eliminar
de Design es el pseudo cdigo. El pseudo cdigo brinda una las fases de Test Case Construct y Unit Test del PSPVDC.
descripcin en alto nivel del programa. En el contexto del
PSPVDC consideramos que la especificacin formal de los
mtodos de las clases debe realizarse antes que el pseudo
cdigo, por lo que eliminamos la actividad de pseudo cdigo
de la fase de diseo e incorporamos una fase nueva de pseudo
cdigo a posteriori de la revisin de la especificacin formal.
De esta forma mantenemos la idea de un proceso de
desarrollo de software bien definido donde la especificacin
formal realizada es tomada como entrada para realizar el
pseudo cdigo y luego ste pseudo cdigo es entrada para la
codificacin.
Luego de la nueva fase de pseudo codigo en PSPVDC se
propone una fase de revisin del pseudo cdigo manteniendo
los lineamientos de PSP en lo que refiere a la deteccin
temprana de defectos. El agregado de estas nuevas fases se
presenta en la figura 9.

Fig. 10. Incorporando la fase de Test Case Construct

D. Las Fases del PSPVDC


El PSPVDC incorpora nuevas fases y modifica otras como
fuimos describiendo en las secciones anteriores. La figura 11
ilustra todas las fases del PSPVDC; las cuales se describen a
continuacin.

Planning
Las actividades a realizar en esta fase son las mismas que
en PSP; obtener los requerimientos, estimar el tamao del
producto, estimar el esfuerzo y estimar los defectos.

Design
Fig. 9. Incorporando las fases de Pseudo Code y Pseudo Code Review Durante el diseo se define la estructura del programa, as
como las clases, mtodos, interfaces, componentes e
interacciones entre ellos.
C. Construccin de los Casos de Prueba El PSP propone cuatro vistas y templates para mantener la
En el PSP la actividad de construccin de los casos de informacin de un buen diseo. Una de estas cuatro vistas es
prueba no est claramente definida en los scripts. Durante los la interna-esttica en la cual se define el pseudo cdigo del
cursos del PSP algunos instructores optan por realizar la programa. En PSPVDC el pseudo cdigo se pospone a una fase
construccin de los casos de prueba durante la fase de Design, posterior, por lo que se elimina de la fase de diseo la
mientras que otros instruyen realizarlos durante la fase de Unit utilizacin del Logic Template utilizado en PSP para el
Testing. Esto no permite conocer claramente el tiempo pseudo cdigo.
dedicado a disear y ejecutar las pruebas, pudiendo estar Adems, durante el diseo en PSP se incluye el diseo de
contenido como tiempo parcial de Diseo ms tiempo de Unit los casos de prueba. En PSPVDC se propone realizar esta
Test o exclusivamente como tiempo de Unit Test. En el actividad en una fase posterior dedicada especficamente a
PSPVDC nos interesa tener claramente diferenciado el tiempo generar los casos de prueba. El motivo de esta separacin es
dedicado a la construccin de los casos de pruebas ya que nuestro inters por disponer del tiempo dedicado
ayudar a conocer y mejorar el proceso. Por lo tanto, decidimos exclusivamente a disear y el tiempo dedicado exclusivamente
agregar al PSPVDC una nueva fase dedicada a la construccin de a construir los casos de prueba.
los casos de prueba. Esta fase se realiza inmediatamente
despus de la fase de Design Review. Los casos de prueba Design Review
buscan probar la especificacin informal del programa a La revisin de diseo se mantiene incambiada con respecto
construir utilizando el diseo para poder construir las pruebas. a PSP, siendo su objetivo detectar defectos inyectados de forma
La figura 10 muestra el agregado de la fase de Test Case temprana.
Construct al PSPVDC.
Luego de analizar los resultados experimentales de aplicar Test Case Construct
PSPVDC se podra mostrar (o no) que la inclusin de VDbC Se lleva a cabo luego de la revisin de diseo. Durante esta
reduce significativamente los defectos que llegan a UT, con lo fase se construye el conjunto de casos de prueba a utilizar para
probar el programa. Disponer de la informacin del tiempo
160 Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
dedicado a construir los casos de prueba y a realizar las Postmortem
pruebas unitarias nos permitir evaluar el beneficio de Por ltimo, durante Postmortem el ingeniero analiza su
mantener estas fases en el proceso o eliminarlas. proceso, prestando atencin a los errores o dificultades en la
aplicacin del proceso para mejorar a futuro.
Formal Specification
Durante esta fase se especifican formalmente los contratos
(Design by Contract). Las pre- y post- condiciones de los
mtodos y el invariante de la clase son especificados en un
lenguaje formal.

Formal Specification Review


La revisin de la especificacin formal tiene el propsito de
detectar lo defectos inyectados durante la especificacin
formal. Se propone la utilizacin de una checklist para que el
ingeniero revise manualmente la especificacin formal en
busca de posibles defectos.

Formal Specification Compile


La compilacin consiste en el chequeo automtico
(utilizando una herramienta) de la sintaxis de la especificacin
formal.

Pseudo Code
Durante esta fase se escribe el pseudo cdigo de los mtodos
de las clases. Se decide realizar esta fase en este momento para
lograr un proceso definido en un orden natural de desarrollo de
software. Proponemos realizar el pseudo cdigo utilizando
como entrada a esta fase la salida de las fases anteriores (la Fig. 11. Fases de PSPVDC
especificacin formal revisada y compilada correctamente).
PSPVDC es guiado por un conjunto de scripts que permiten
Pseudo Code Review seguir el proceso de forma disciplinada y facilitan la
recoleccin de datos. En la figura 12 se presenta el Process
En esta fase se revisa el pseudo cdigo anteriormente Script y en la figura 13 el Development Script de PSPVDC.
producido en busca de defectos. Es una actividad manual,
donde el ingeniero es guiado por una checklist. VI. CALIDAD EN PSPVDC
La calidad en PSP incluye:
Code/Code Review/Compile
estimar el nmero total de defectos inyectados y
Estas tres fases se mantienen con respecto al PSP. Durante removidos
las mismas se codifica el diseo construido utilizando un
lenguaje de programacin, luego se realiza una revisin manual estimar el nmero de defectos inyectados y removidos
y por ltimo se compila el cdigo utilizando una herramienta. por fase
estimar el tiempo requerido por fase
Proof
La idea general de esta fase es complementar el cdigo con Se presenta en esta seccin las modificaciones al PSP para
una prueba formal. El objetivo es que la prueba provea planificar la calidad en PSPVDC.
evidencia de la correccin del cdigo con respecto a las Para estimar el nmero total de defectos inyectados, PSP
especificaciones formales (Diseo por Contrato Verificado). utiliza la estimacin del tamao del programa y datos
Esta prueba debe ser llevada a cabo con la ayuda de una histricos a cerca de los defectos inyectados por KLOC. Para la
herramienta. estimacin del nmero de defectos inyectados y removidos por
fase, PSP realiza una distribucin del total estimado basndose
Unit Test en datos histricos.
Durante esta fase se ejecutan los casos de prueba En PSPVDC se deben de tener en cuenta las nuevas fases
construidos en busca de defectos con respecto a los para las estimaciones de tiempo requerido por fase y el nmero
requerimientos. de defectos. Inicialmente en PSPVDC no se disponen de datos
En el PSPVDC optamos por mantener la fase de Unit Test histricos, por lo que la estimacin inicial se realiza aplicando
aunque se realice una demostracin formal. La demostracin juicio de expertos. Despus de realizar varios estudios, los
formal nos brinda evidencia de la correctitud del cdigo con datos acumulados estarn disponibles para el empleo en las
respecto a la especificacin formal, pero nada garantiza que la estimaciones deseadas.
especificacin formal no contenga defectos. Al ejecutar los La calidad del producto es un aspecto esencial en el PSP.
casos de prueba podemos detectar justamente si el Los desarrolladores deben eliminar los defectos, determinar las
comportamiento del programa es correcto con respecto a los causas de su inyeccin, y aprender a evitar que ocurran
requerimientos. nuevamente. El PSP propone revisiones como un mtodo
Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo 161
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
recomendado para la eliminacin de defectos, ya que es an Formal Specification Compile, Proof, y Testing. El costo de
ms eficaz que las pruebas unitarias [12], [13], [14]. Para llevar evaluacin, por otro lado, es el tiempo empleado en las fases de
a cabo revisiones eficientes es necesario hacer mediciones [15]. Design Review, Code Review, Formal Specification Review y
PSP define varias formas de medir la calidad y control de Pseudo Code Review.
procesos, incluyendo las siguientes: El indicador Appraisal Cost of Quality (% Appraisal
COQ) es definido en PSP como el porcentaje del tiempo
yield
empleado en las fases de Design Review y Code Review
defect removal efficiency respecto al tiempo total de desarrollo. Altos valores de este
indicador estn asociados a una baja cantidad de defectos en
defect removal leverage testing y por lo tanto una alta calidad del producto.
El yield para una fase es definido como el porcentaje de En PSPVDC, modificamos el indicador incorporando el
defectos encontrados en la fase en relacin al nmero total de tiempo empleado en la fase de Formal Specification Review y
defectos que llegan a la fase. Es una medida usualmente Pseudo Code Review. La forma de calcularlo es:
utilizada para conocer la efectividad de las revisiones de diseo
y cdigo as como la compilacin y el testing. Design Review Time +
En PSPVDC puede utilizarse para medir la efectividad de Code Review Time +
las nuevas fases de formal specification review (FSR), pseudo FSR Time +
code review (PCR), formal specification, compile, y proof. PCR Time
El yield del proceso es calculado como el porcentaje de % Appraisal COQ = 100
Total Developmen t Time
defectos inyectados y removidos antes de la primera
compilacin. En PSPVDC ajustamos el clculo teniendo en El indicador Percent Failure COQ (% Failure COQ) es
cuenta las nuevas fases que preceden a la fase de compilacin. definido en PSP como el porcentaje de tiempo empleado en las
fases de Compile y Testing respecto al tiempo total de
En PSP, el Defect removal efficiency es un indicador del desarrollo.
numero de defectos removidos por hora en las fases de Design En PSPVDC modificamos el indicador con el propsito de
Review, Code Review, Compile, y Test. En PSPVDC es incorporar el tiempo dedicado en las fases de Formal
importante conocer el nmero de defectos removidos por hora Specification Compile (FSC) y el tiempo empleado en la fase
en las fases de Formal Specification Review, Pseudo Code de Proof. El nuevo clculo es:
Review, Formal Specification Compile (FSC), y Proof (PRF). Code Compile Time +
El Defect removal efficiency para estos casos se define:
Test Time +
FS C Time +
Proof Time
% Failure COQ = 100
Total Development Time
Una medida til del COQ es la tasa entre los costos de
evaluacin y fallo (A/FR). Dicho indicador es modificado de
forma implcita en PSP VDC debido a los cambios A y FR.
En PSP, un valor de A/FR superior a 2 es considerado de
alta performance. Este valor de benchmark deber ser ajustado
en PSPVDC luego de realizar estudios empricos debido al
El indicador Defect removal leverage es el numero de posible impacto de las nuevas fases.
defectos removidos por hora en una fase con respecto a una
fase base. Normalmente la fase base es Unit Test (UT). En VII. CONCLUSIONES Y TRABAJOS A FUTURO
PSPVDC proponemos incorporar los indicadores DRL
(FSR/UT), DRL (PCR/UT), DRL (FSC/UT), y DRL El desarrollo de software es una actividad creativa e
(PRF/UT), que corresponde al nmero de defectos removidos intelectual realizada por seres humanos. Es comn que durante
por hora en las fases de FSR, PCR, FSC, y PRF un proyecto el equipo de desarrollo cometa errores. Esto se
respectivamente, con respecto a la fase UT. debe tanto a la complejidad actual del software como a la
propia naturaleza humana. Normalmente estos errores terminan
El Cost of quality (COQ) es una medida de la calidad del en defectos en el producto de software y cuando el software se
proceso. Los componentes del COQ son los costos por fallo, est ejecutando estos pueden causar fallos.
evaluacin y prevencin. El costo por fallo (failure cost) es el La bsqueda de formas de desarrollar software con bajo
tiempo dedicado a reparar y el re-trabajo, que se corresponde nmero de defectos ha dado lugar al desarrollo de un variado
en PSP a las fases de Compile y Testing. El costo de nmero de procesos y mtodos. El cometido de dichos
evaluacin (appraisal cost) es el tiempo empleado en procesos es construir software de calidad, en el plazo
inspeccionar, que en PSP se corresponde con las fases de estipulado y dentro de los costos previstos.
Design Review y Code Review. Por ltimo, el costo de En este artculo presentamos un nuevo proceso de
prevencin (prevention cost) es el tiempo dedicado a la desarrollo de software que combina los enfoques del proceso
identificacin y resolucin de las causas de los defectos. de desarrollo personal (PSP) y la tcnica de diseo por contrato
Siguiendo la misma idea, en el PSPVDC el costo por fallo verificado (VDbC).
corresponde al tiempo dedicado a las fases de Code, Compile,
162 Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
Purpose To guide the development of module-level programs
Entry Criteria - Problem description
- PSP Project Plan Summary form
- Size Estimating template
- Historical size and time data (estimated and actual)
- Time and Defect Recording logs
- Defect Type, Coding, and Size Counting standards
- Stopwatch (optional)

Step Activities Description


1 Planning - Produce or obtain a requirements statement.
- Use the PROBE method to estimate the added and
modified size and the size prediction interval of this
program.
- Complete the Size Estimating template.
- Use the PROBE method to estimate the required
development time and the time prediction interval.
- Complete a Task Planning template.
- Complete a Schedule Planning template.
- Enter the plan data in the Project Plan Summary form.
- Complete the Time Recording log.
2 Development - Design the program.
- Document the design in the design templates.
- Review the design and fix and log all defects found.
- Design Test cases.
- Formally specify the methods of every class introduced at
design.
- Review the formal specification and fix and log all
defects found.
- Compile the formal specification and fix and log all
defects found.
- Write down the pseudo code, using the Logic Template.
- Review the pseudo code and fix and log all defects found.
- Implement the design.
- Review the code and fix and log all defects found.
- Compile the program and fix and log all defects found.
- Construct a formal proof of correctness of the code with
respect to its formal specification.
- Test the program and fix and log all defects found.
- Complete the Time Recording log.
3 Postmortem Complete the Project Plan Summary form with actual time,
defect, and size data.

Exit Criteria - A thoroughly tested program


- Completed Project Plan Summary form with estimated
and actual data
- Completed Size Estimating and Task and Schedule
Planning templates
- Completed Design templates and Formal Specification
Templates
- Completed Design Review, Formal Specification Review,
Pseudo Code Review, and Code Review checklists
- Completed Test Report template

- Completed PIP forms


- Completed Time and Defect Recording logs
Fig. 12. Process Script

Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo 163
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
Purpose To guide the development of small programs
Entry Criteria - Requirements statement
- Project Plan Summary form with estimated program size
and development time
- For projects lasting several days or more, completed Task
Planning and Schedule Planning templates
- Time and Defect Recording logs
- Defect Type standard and Coding standard

Step Activities Description


1 Design - Review the requirements and produce an external
specification to meet them.
- Complete Functional and Operational Specification
templates to record this specification.
- Produce a design to meet this specification.
- Record the design in Functional, Operational, and State
templates.
- Record in the Defect Recording log any requirements
defects found.
- Record time in the Time Recording log.
2 Design - Follow the Design Review script and checklist and review
Review the design.
- Fix all defects found.
- Record defects in the Defect Recording log.
- Record time in the Time Recording log.
3 Test Case - Design test cases and record them in the TestReport.
Construct - Record time in the Time Recording log.
4 Formal - Implement the design following the Formal Specification
Specification standard.
- Record in the Defect Recording log any requirements or
design defects found.
- Record time in the Time Recording log.
5 Formal - Follow the Formal Specification Review script and
Specification checklist and review the specification.
Review - Fix all defects found.
- Record defects in the Defect Recording log.
- Record time in the Time Recording log.
6 Formal - Compile the formal specification until there are no
Specification compile errors.
Compile - Record in the Defect Recording log any defects found.
- Record time in the Time Recording log.
7 Pseudo Code - Produce a Pseudo Code to meet the design.
- Record the design Logic Specification templates.
- Record in the Defect Recording log any defects found.
- Record time in the Time Recording log.
8 Pseudo Code - Follow the Pseudo Code Review script and checklist and
Review review the specification.
- Fix all defects found.
- Record defects in the Defect Recording log.
- Record time in the Time Recording log.
9 Code - Implement the design following the Coding standard.
- Record in the Defect Recording log any requirements or
design defects found.
- Record time in the Time Recording log.

10 Code - Follow the Code Review script and checklist and review
Review the code.
- Fix all defects found.
- Record defects in the Defect Recording log.
164 Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
11 Compile - Compile the program until there are no compile errors.
- Fix all defects found.
- Record defects in the Defect Recording log.
- Record time in the Time Recording log.
12 Proof - Construct a formal proof of correctness of the program
with respect to the formal specification.
- Fix all defects found.
- Record defects in the Defect Recording log.
- Record time in the Time Recording log.
13 Test - Test until all tests run without error.
- Fix all defects found.
- Record defects in the Defect Recording log.
- Record time in the Time Recording log.
- Complete a Test Report template on the tests conducted
and the results obtained.

Exit Criteria - A thoroughly tested program that conforms to the Coding


standard
- A formal specification conforming to the Formal
Specification Standard
- Completed Design and Formal Specification templates
- Completed Design Review, Pseudo Code Review, Formal
Specification Review and Code Review checklists
- Completed Test Report template
- Completed Time and Defect Recording logs
Fig. 13. Development Script

En el PSPVDC se proponen fases nuevas para dar soporte al [6] Gary T. Leavens and Yoonsik Cheon, Design by Contract with
VDbC. El objetivo es que el uso de este nuevo proceso logre JML, 2006
productos de mejor calidad que los desarrollados con el PSP. [7] Kitchenham, Guidelines for performing Systematic Literature
Adems, se presenta una revisin sistemtica de la literatura Reviews in Software Engineering, Version 2.3, EBSE Technical
que resume la informacin existente sobre adaptaciones Report EBSE-2007-01
realizadas al PSP y particularmente aquellas que incorporan [8] Abdul Babar, John Potter. Adapting the Personal Software
mtodos formales. Process (PSP) to Formal Methods. Australian Software
Engineering Conference (ASWEC'05), 2005, pp.192-201.
Conocer las diferentes adaptaciones realizadas al PSP que
incorporar mtodos formales brinda conocimiento acerca de las [9] Hisayuki Suzumori, Haruhiko Kaiya, Kenji Kaijiri, VDM over
formas posibles de combinar el enfoque de PSP y mtodos PSP: A Pilot Course for VDM Beginners to Confirm its
Suitability for Their Development, 27th Annual Inter-national
formales. Computer Software and Applications Conference, 2003
Nuestro trabajo a futuro consiste en realizar experimentos
[10] Kusakabe, S., Omori, Y. and Araki K, A Combination of a
controlados que nos permitan comparar la calidad y Formal Method and PSP for Improving Software Process: An
productividad del PSP y del PSPVDC. Se deber realizar una Initial Report. TSP Symposium 2012, St. Petersburg, FL.
buena planificacin teniendo en cuenta el armado de los cursos [11] Williams, L. Integrating pair programming into a software
de PSP, PSPVDC, mtodos formales y de tcnicas de verificacin development process. Software Engineering Education
de programas, adems se deber capacitar a los sujetos en la Conference, Proceedings Jan 1, 2001, p27-36, 10p
aplicacin de los procesos y herramientas de soporte. El anlisis [12] Hayes, William; & Over, James. Personal Software Process
de resultados de los experimentos nos permitir conocer cmo (PSP): An Empirical Study of the Impact of PSP on Individual
funciona el PSPVDC en la prctica y as poder mejorarlo. Engineers (CMU/SEI-97-TR-001). Soft-ware Engineering
Institute, Carnegie Mellon University, 1997.
REFERENCES http://www.sei.cmu.edu/library/abstracts/reports/97tr001.cfm
[1] Ian Sommerville. Ingeniera del Software 7a edicin. University [13] Vallespir, Diego and Nichols, William. Analysis of Design
of Lancaster. ISBN 8478290745, 2005 Defects Injection and Removal in PSP, 19-25. Proceedings of
[2] Watts S. Humphrey. PSP: A Self-Improvement Process for the TSP Symposium 2011: A Dedication to Excellence. Atlanta,
Software Engineers. Addison-Wesley Professional; March. 2005. GA, Sept. 2011.
[3] Watts S. Humphrey. Tsp (sm) Coach Dvlp Teams. Pearson [14] Vallespir, Diego and Nichols, William. An Analysis of Code
Education, 2006 Defect Injection and Removal in PSP, 3-20. TSP Symposium
[4] Meyer, Bertrand. Applying Design by Contract, IEEE 2012 Proceedings (CMU/SEI-2012-SR- 48 015). Software
Computer 25, 10 (October 1992): 40-51. Engineering Institute, Carnegie Mellon University, 2012.
http://www.sei.cmu.edu/library/abstracts/reports/12sr0 15. cfm
[5] Hoare, C.A.R. An Axiomatic Basis for Computer
Programming, Communications of the ACM 12, 10 (1969): [15] Gilb, Tom and Graham, Dorothy. Software Inspection. Addison-
576-580. Wesley, 1994 (ISBN 978-0201-631814).

Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo 165
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
Silvana Moreno. Es Magister en Informtica por la Diego Vallespir. Es Profesor Adjunto de la Facultad de
Universidad de la Repblica, Facultad de Ingeniera. Es Ingeniera de la Universidad de la Repblica (UdelaR),
Profesora Asistente del rea de Ingeniera de Software en Uruguay, es Director del Centro de Posgrados y
la Universidad de la Repblica. Sus intereses en Actualizacin Profesional en Informtica de la UdelaR, es
investigacin son los procesos de desarrollo de software y Director del Grupo de Investigacin en Ingeniera de
su combinacin con los mtodos formales y cmo se Software de la UdelaR. Es Ingeniero en Computacin,
pueden combinar estos enfoques para aumentar la calidad Magister en Informtica y Doctor en Informtica por la
de los productos. Facultad de Ingeniera, UdelaR. Tiene varios artculos publicados en
conferencias internacionales. Sus reas de inters en investigacin son
lvaro Tasistro. Es Doctor en Ciencia de la ingeniera de software emprica, procesos de desarrollo de software y pruebas
Computacin por la Universidad de Gotemburgo. de software. Su hobby es divertirse.
Actualmente dirige la Ctedra de Teora de la
Computacin y el grupo de investigacin en Computacin
Terica de la Escuela de Ingeniera de la Universidad
ORT Uruguay. Sus reas de inters son la Lgica y la
Teora de la Programacin.

166 Silvana Moreno, Alvaro Tasistro, Diego Vallespir. 2013. PSPVDC: Una propuesta que incorpora el Diseo
por Contrato Verificado al Personal Software Process
Revista Latinoamericana de Ingeniera de Software, 1(5): 153-166, ISSN 2314-2642
Aseguramiento de la Calidad en la Construccin de
Sistemas Basados en el Conocimiento: Un Enfoque
Prctico

Eduardo Diez
Laboratorio de Investigacin y Desarrollo en Aseguramiento de Calidad de Software
Grupo Investigacin en Sistemas de Informacin
Departamento Desarrollo Productivo y Tecnolgico. Universidad Nacional de Lans.
Remedios de Escalada, Buenos Aires, Argentina.
ediez@unla.edu.ar

ResumenLa funcin de aseguramiento de la calidad del La funcin de aseguramiento de la calidad del software
software (SQA) se debe basar en un planificado y sistemtico (SQA) se debe basar en un planificado y sistemtico diseo de
diseo de acciones y mtodos, requeridos para garantizar la acciones y mtodos, requeridos para garantizar la calidad del
calidad del mismo. En el presente trabajo, se presenta un diseo mismo. El alcance de la responsabilidad del aseguramiento de
de acciones y mtodos que constituyen un enfoque prctico para
el desempeo de la funcin de SQA en una organizacin,
la calidad, en el desarrollo de software, abarca a muchos
adaptado especialmente a la metodologa IDEAL para el constituyentes de una organizacin, tales como ingenieros de
desarrollo de sistemas basados en el conocimiento. Este enfoque software, lderes de proyecto, clientes, comerciales y personas
no pretende ser exclusivo y en ningn caso limita o inhibe la que trabajan dentro del equipo de SQA (una conformacin del
aplicacin de otras acciones, mtodos o modelos, sino que podr mismo se presentar en captulos sucesivos).
ser su complemento, adaptndolo convenientemente. El enfoque El equipo de SQA debe analizar el software desde diversos
o modelo de aseguramiento de la calidad del software que tiene puntos de vista, respondiendo a algunas de estas preguntas:
las siguientes caractersticas: el modelo de aseguramiento de
calidad de software sugerido es una interfaz a una metodologa,
Satisface el software, de forma adecuada los principales
ideal en este caso, de desarrollo de software, el modelo que aqu factores de calidad?
se presenta no es una metodologa en s misma, sino que debe Se ha realizado el desarrollo del software de acuerdo con
acoplarse a una metodologa de desarrollo para poder estndares preestablecidos?
implementarse, esta interfaz est compuesta por mdulos Se han aplicado las tcnicas y mtodos apropiados para el
independientes, donde cada uno de ellos se asocia a ciertos
desarrollo del software?
procesos de la metodologa ideal.
Para responder a stas y otras cuestiones, en el presente
Palabras ClavesAseguramiento de la calidad del software, trabajo, se presenta un diseo de acciones y mtodos que
sistemas basados en el conocimiento, metodologa ideal. constituyen un enfoque prctico para el desempeo de la
funcin de SQA en una organizacin, adaptado especialmente
I. INTRODUCCION a la metodologa IDEAL para el desarrollo de sistemas basados
en el conocimiento. Este enfoque no pretende ser exclusivo y
La calidad es una cualidad esencial de cualquier producto,
en ningn caso limita o inhibe la aplicacin de otras acciones,
generado por una organizacin, que va a ser usado por otros.
mtodos o modelos, sino que podr ser su complemento,
Antes del siglo veinte, las actividades relacionadas con el
adaptndolo convenientemente.
aseguramiento de la calidad era responsabilidad nica de la
En la seccin II se establecen los Conceptos Bsicos,
persona que construa el producto. La primera funcin de
describiendo brevemente los conceptos de calidad, control y
control y de aseguramiento de la calidad formal fue introducida
aseguramiento de la misma y presentando el alcance de la
por los laboratorios Bell en 1916 y se extendi rpidamente por
funcin de SQA en una organizacin. En la seccin III se
todo el mundo de las manufacturas. Hoy en da, cada empresa
esboza el Modelo General, es decir, el diseo de acciones y
tiene un mecanismo que asegura la calidad de sus productos, de
mtodos que constituyen un enfoque prctico para el
hecho, durante la pasada dcada se ha usado ampliamente
desempeo de la funcin de SQA en una organizacin.
como tctica de mercado, la declaracin explcita de mensajes
Tambin de presenta el modelo de mejora continua del mismo.
que ponan de manifiesto la calidad ofrecida por las empresas.
En la seccin IV se describen los Mdulos del Modelo, se
La evolucin del aseguramiento de la calidad en el
presentan para cada uno de ellos las acciones a desempear, su
desarrollo de software ha sido paralela a la evolucin de la
objetivo, sus entradas, salidas, lista de verificacin, mtricas y
calidad en la fabricacin de hardware. Durante los primeros
participantes involucrados. En la seccin V se describe las
aos de la informtica (los aos 50 y 60), la calidad era
principales Tcnicas y Herramientas, a utilizar en los mdulos
responsabilidad nicamente del programador. Durante los aos
del modelo descrito. En la seccin VI se describe el Nivel de
70 se introdujeron estndares de aseguramiento de la calidad
Servicio Esperado, a travs de un acuerdo de nivel de servicio
para el software en los contratos militares de desarrollo de
recomendado. En la seccin VII se detalla el Equipo de SQA
software y se extendieron rpidamente en los desarrollos de
sugerido, indicando su estructura y responsabilidades. En la
software del mundo comercial.
seccin VIII se establecen las Conclusiones del presente
Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 167
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
trabajo, sealando los beneficios y problemas esperados en la aseguramiento de la calidad y de actividades de control de la
aplicacin de la funcin de SQA en una organizacin. Tambin misma y que estas se complementan fcilmente.
se establecen las bases para un anlisis costo-beneficio. Por
B. Calidad del Software
ltimo se detalla la Bibliografa utilizada para la confeccin del
presente trabajo, ya sea referenciada o consultada. Particularmente, en el caso del software, existen muchas
definiciones distintas en la bibliografa, sin embargo, en lo que
II. CONCEPTOS BSICOS a este trabajo respecta, tomaremos la definicin de R. Pressman
En la presente seccin se establecen los Conceptos Bsicos, [1]:
describiendo brevemente los conceptos de calidad, control y La calidad del software se define como la concordancia con
aseguramiento de la misma y presentando el alcance de la los requisitos funcionales y de rendimiento explcitamente
funcin de SQA en una organizacin. establecidos, con los estndares y procesos de desarrollo
explcitamente documentados y con las caractersticas
A. Paradigma de la calidad implcitas que se espera de todo software desarrollado
El paradigma de la calidad es aplicable a todas las profesionalmente.
actividades que se llevan a cabo en una organizacin. Se puede No hay duda de que la anterior definicin puede ser
definir en trminos generales a la calidad como: modificada o ampliada. De hecho, no tendra fin una discusin
La calidad es la suma de todos aquellos aspectos o sobre una definicin definitiva de la calidad del software. Para
caractersticas de un producto o servicio, que influyen en su los propsitos de este enfoque, la anterior definicin sirve para
capacidad para satisfacer las necesidades de los usuarios. hacer hincapi en tres puntos importantes:
Por otro lado, con respecto a la satisfaccin del usuario, se 1) Los requisitos del software son la base de las medidas de la
puede decir que: calidad. La falta de concordancia con los requisitos es una
La satisfaccin del usuario est determinada por la falta de calidad.
diferencia entre la calidad percibida y la calidad esperada, 2) Los estndares especificados definen un conjunto de
cuando ste hace uso de un producto o servicio. criterios de desarrollo que guan la forma en que se aplica
Los principales elementos del paradigma de la calidad son la ingeniera del software o del conocimiento. En caso de
los siguientes: no seguirse esos criterios, casi siempre habr falta de
La naturaleza de la calidad: Orientacin a los aspectos o calidad.
caractersticas de un producto o servicio que influyan en su 3) Existe un conjunto de requisitos implcitos que a menudo
capacidad para satisfacer necesidades dadas, ms que a la no se mencionan (por ejemplo la necesidad de una interfaz
adecuacin a estndares o a especificaciones preestablecidas. intuitiva). Si el software se ajusta a sus requisitos explcitos
La perspectiva del proceso: Focalizacin en el proceso ms pero falla en alcanzar los requisitos implcitos, la calidad
que en el producto. del software se debilita.
Orientado a datos: Basado en la recoleccin, anlisis y Queda claro a partir de la definicin de calidad del
comparacin de datos. software, que sta es siempre relativa a los requisitos o
Focalizacin en el cliente o usuario: La obtencin de la necesidades que se desea satisfacer. Por eso la evaluacin de la
satisfaccin del cliente o usuario es el objetivo final de todo calidad del software siempre va a implicar la comparacin
proceso. entre los requisitos y el producto generado.
Eliminacin de defectos: Priorizacin de tcnicas de B.1. Puntos de vista de la calidad del software
prevencin de defectos sobre tcnicas de deteccin y
En la ingeniera del software o del conocimiento, la visin
correccin.
de la calidad no es nica, dependiendo del punto de vista desde
Gestin para la calidad: La adopcin del paradigma requiere el cual se la analice, ver figura 1.
del compromiso de la alta direccin. Punto de vista del
En primer trmino, se debe diferenciar entre la calidad del usuario
producto y la calidad del proceso que lo genera.
Las primeras aproximaciones a la calidad estaban basadas
solamente en el control de la calidad del producto terminado,
es decir en actividades que slo desataban acciones correctivas
para eliminar los defectos del producto. A estas actividades se
las suele catalogar como correctivas, tardas y relacionadas con
el producto.
Con el tiempo y tal cual se establece en uno de los Punto de vista del Punto de vista del
principios del paradigma de la calidad, las aproximaciones de ingeniero gerente de proyecto
calidad se fueron trasladando al aseguramiento de la misma Fig. 1. Puntos de vista de la calidad del software
sobre el proceso que genera el producto, es decir en actividades
preventivas, antes que el producto est terminado, y que Dependiendo del punto de vista, se priorizarn distintos
desatan acciones para evitar que el producto terminado tenga factores del software:
defectos. A estas actividades se las suele catalogar como Punto de vista del usuario: El punto de vista del usuario, con
preventivas, tempranas y relacionadas con el proceso. respecto a la calidad, estar basado en los factores externos
Ahora bien, la realidad muestra que toda aproximacin del producto, tales como funcionalidad y facilidad de
eficaz a la calidad, contiene una combinacin de actividades de operacin.

168 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Punto de vista del ingeniero de software: El punto de vista Es difcil, y en algunos casos imposible, desarrollar
del ingeniero del software, con respecto a la calidad, estar medidas directas de los anteriores factores de calidad. Por
basado en los factores internos del producto, tales como tanto, cada factor se descompone en atributos o criterios, ms
modularidad y reusabilidad. fcilmente medibles. Cabe aclarar que cada uno de estos
Punto de vista del gerente del proyecto: El punto de vista del atributos puede corresponder a ms de un factor de calidad.
gerente del proyecto, con respecto a la calidad, estar basado Facilidad de auditora. La facilidad con que se puede
en los factores relacionados con la gestin del proyecto, tales comprobar la conformidad con los estndares.
como costos y cronogramas acorde a lo planificado. Exactitud. La precisin de los clculos y del control.
B.2. Factores que determinan la calidad del software Normalizacin de las comunicaciones. El grado en que se
usan el ancho de banda, los protocolos y las interfaces
Existen muchos factores que afectan a la calidad del
estndar.
software y se pueden clasificar de distintas formas (uno de
ellos es el punto de vista del apartado anterior). En este trabajo Completitud. El grado en que se ha conseguido la total
se presentarn slo a modo descriptivo, algunos factores de implementacin de las funciones requeridas.
calidad que se han propuesto. Concisin. Lo compacto que es el programa en trminos de
McCall y sus colegas [2] han propuesto los siguientes: lneas de cdigo.
Correccin. El grado en que un programa satisface sus Consistencia. El uso de un diseo uniforme y de tcnicas de
especificaciones y consigue los objetivos de la misin documentacin a lo largo del proyecto de desarrollo del
encomendada por el cliente. Responde a la pregunta: Hace software.
lo que quiero? Estandarizacin en los datos. El uso de estructuras de datos y
Fiabilidad. El grado en que se puede esperar que un programa de tipos estndar a lo largo de todo el programa.
lleve a cabo sus funciones esperadas con la precisin Tolerancia de errores. El dao que se produce cuando el
requerida (Hay que decir que se han propuesto otras programa encuentra un error.
definiciones de fiabilidad ms completas). Responde a la Eficiencia en la ejecucin. El rendimiento en tiempo de
pregunta: Lo hace en forma fiable todo el tiempo? ejecucin de un programa.
Eficiencia. La cantidad de recursos de computadora y de Facilidad de expansin. El grado en que se puede ampliar el
cdigo requeridos por un programa para llevar a cabo sus diseo arquitectnico, de datos o procedimental.
funciones. Responde a la pregunta: Se ejecutar en mi Generalidad. La amplitud de aplicacin potencial de los
hardware lo mejor que se pueda? componentes del programa.
Integridad. El grado en que puede controlarse el acceso al Independencia del hardware. El grado en que el software es
software o a los datos, por personal no autorizado. Responde independiente del hardware sobre el que opera.
a la pregunta: Es seguro?
Instrumentacin. El grado en que el programa muestra su
Facilidad de uso. El esfuerzo requerido para aprender un propio funcionamiento e identifica errores que aparecen.
programa, trabajar con l, preparar su entrada e interpretar su
Modularidad. La independencia funcional de los
salida. Responde a la pregunta: Est diseado para ser
componentes del programa.
usado?
Facilidad de operacin. La facilidad de operacin de un
Facilidad de mantenimiento. El esfuerzo requerido para
programa.
localizar y arreglar un error en un programa (Se trata de una
definicin muy limitada). Responde a la pregunta: Permite Seguridad. La disponibilidad de mecanismos que controlen o
ser corregirlo con relativa facilidad? protejan los programas o los datos.
Flexibilidad. El esfuerzo requerido para modificar un Autodocumentacin. El grado en que el cdigo fuente
programa operativo. Responde a la pregunta: Permite ser proporciona documentacin significativa.
cambiado con relativa facilidad? Simplicidad. El grado en que un programa puede ser
Facilidad de prueba. El esfuerzo requerido para probar un entendido sin dificultad.
programa de forma que se asegure que realiza su funcin Independencia del sistema de software. El grado en que el
requerida. Responde a la pregunta: Permite ser probado con programa es independiente de caractersticas no estndar del
relativa facilidad? lenguaje de programacin, de las caractersticas del sistema
Portabilidad. El esfuerzo requerido para transferir el operativo y de otras restricciones del entorno.
programa desde un hardware y/o un entorno de sistemas de Facilidad de traza. La posibilidad de seguir la pista a la
software a otro. Responde a la pregunta: Podr usarlo en representacin del diseo o de los componentes reales del
otra computadora? programa hacia atrs, hacia los requisitos.
Reusabilidad. El grado en que un programa (o partes de un Formacin. El grado en que el software ayuda para permitir
programa) se puede reusar en otras aplicaciones. Esto va que nuevos usuarios apliquen el sistema.
relacionado con el empaquetamiento y el alcance de las Otra lista de factores de calidad es la desarrollada por
funciones que realiza el programa. Responde a la pregunta: Grady y sus colegas [3]. Los factores y sus atributos
Podr reusar alguna parte del software? correspondientes son los siguientes:
Facilidad de nter-operacin. El esfuerzo requerido para La funcionalidad se obtiene mediante la evaluacin del
acoplar un sistema a otro. Responde a la pregunta: Podr conjunto de caractersticas y de posibilidades del programa,
hacerlo interactuar con otros sistemas? la generalidad de las funciones que se entregan y la seguridad
de todo el sistema.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 169
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
La facilidad de uso se calcula considerando los factores 3) Revisiones tcnicas formales que se aplican durante cada
humanos, la esttica global, la consistencia y la paso de la ingeniera del software o del conocimiento.
documentacin. 4) Una estrategia de prueba en mltiples niveles.
La fiabilidad se calcula midiendo la frecuencia de fallos y su 5) El control de la documentacin del software y de los
importancia, la eficacia de los resultados de salida, el tiempo cambios realizados.
medio entre fallos (MTBF), la posibilidad de recuperarse a 6) Un procedimiento que asegure un ajuste a los estndares de
los fallos y la previsibilidad del programa. desarrollo del software (cuando sea posible).
El rendimiento se mide mediante la evaluacin de la 7) Mecanismos de medicin y de informacin.
velocidad de proceso, el tiempo de respuesta, el consumo de
Las anteriores involucran tanto a los ingenieros de software
recursos, el rendimiento total de procesamiento y la
como al equipo de SQA. Los ingenieros de software deben
eficiencia.
aplicar mtodos tcnicos y mediciones slidas, conducir
La capacidad de soporte combina la posibilidad de ampliar el revisiones tcnicas formales y ejecutar pruebas de software
programa (extensibilidad), la adaptabilidad y la utilidad bien planificadas. Por otro lado, de acuerdo al Software
(estos tres atributos representan un trmino ms comn Engineering Institute (SEI) [4], el equipo de SQA tiene como
facilidad de mantenimiento), adems de la facilidad de propsito proveer a la gerencia la visibilidad apropiada del
prueba, la compatibilidad, la posibilidad de configuracin proceso que est siendo usado y de los productos siendo
(posibilidad de organizar y controlar elementos de la desarrollados. El propsito involucra:
configuracin & software)], la facilidad con la que se puede
Revisar y auditar los productos de software y actividades
instalar un sistema y la facilidad con la que se pueden
para asegurar que obedecen a los procedimientos y estndares
localizar los problemas.
aplicables.
Tanto el modelo de McCall como el de Grady, presentan
Proveer al gerente del proyecto de software y a otras
adems frmulas, matrices, pesos ponderados que permiten
gerencias, segn corresponda, los resultados de las revisiones
cuantificar cada uno de los factores presentados. Ms all de
y auditorias. Las discrepancias son primero planteadas dentro
eso, los siguientes puntos deben quedar claros.
del proyecto de software y resueltas all, si es posible. Si no
1) Los modelos aqu presentados son slo una muestra de los se pueden resolver, se debe escalar a niveles superiores para
disponibles, hay varios ms y se actualizan frecuentemente. su resolucin.
2) Al planificar la calidad de un producto de software se debe Las actividades del equipo de SQA, acorde al SEI [4],
seleccionar cuales de los factores de calidad van a ser comprenden:
considerados requisitos, a su vez. Para realizar esta Preparar un plan de SQA para el proyecto: El plan es
seleccin, se debe tener en cuenta lo siguiente: desarrollado durante la planificacin del proyecto y es revisado
Las caractersticas particulares de la aplicacin a por todas las partes interesadas. Las actividades de
desarrollar o de su entorno. As por ejemplo si la aseguramiento de la calidad a desempear por el equipo de
aplicacin se desarrolla para un entorno en el que el ingenieros de software y el equipo de SQA son regidas por este
hardware evoluciona rpidamente, el factor portabilidad plan. El plan identifica:
es importante; si se espera que las especificaciones del Evaluaciones a realizar.
sistema cambien frecuentemente, la flexibilidad ser
Auditoras y revisiones a realizar.
esencial.
Estndares aplicables al proyecto.
El costo de los factores de calidad frente al beneficio que
proporcionan. Es decir realizar un anlisis costo- Procedimientos para reporte y seguimiento de errores.
beneficio. Documentos a ser producidos por el equipo de SQA.
Las interrelaciones entre factores: Algunos factores Retro-alimentacin a proveer al equipo del proyecto de
pueden ser conflictivos entre s. La eficiencia, por software.
ejemplo, est en conflicto con otros factores de calidad. Participar en el desarrollo de la descripcin del proceso de
3) Es necesario medir cada uno de los factores y atributos software del proyecto: El equipo de software selecciona un
seleccionados. Algunos pueden ser medidos directamente y proceso de software para el proyecto, el equipo de SQA
otros slo pueden ser medidos indirectamente. En revisa la descripcin del proceso, verificando que cumpla con
cualquiera de los dos casos la cuantificacin es obligatoria. las polticas de la organizacin, estndares de software
Respondiendo a otro de los principio del paradigma de la internos y estndares impuestos externamente, entre otros.
calidad (orientacin a datos), las comparaciones se deben Revisar las actividades de ingeniera del software o de
basar sobre datos y mediciones concretas y objetivas, no conocimiento para verificar que cumplan con el proceso de
sobre opiniones o subjetividades. software definido: El equipo de SQA identifica, documenta y
hace el seguimiento de cualquier desviacin del proceso y
C. Alcance de la funcin de SQA
verifica las correcciones realizadas.
La calidad del software no es algo en lo que se empieza a Auditar productos de trabajo de software designados, para
pensar una vez que se ha generado el cdigo. Segn R verificar que cumplan con aquellos definidos como parte del
Pressman [1] el aseguramiento de la calidad del software
proceso de software: El equipo de SQA revisa productos
(SQA) es una actividad de proteccin que se aplica a lo largo seleccionados; identifica, documenta y hace el seguimiento
de todo el proceso de ingeniera software y engloba: de las desviaciones; verifica las correcciones realizadas y
1) Un enfoque de gestin de la calidad. peridicamente informa los resultados de su trabajo al
2) Tecnologa de ingeniera del software o del conocimiento gerente del proyecto.
efectiva (mtodos y herramientas).
170 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Asegurar que las desviaciones detectadas sean documentadas mismas. En la figura 2 se muestra la relacin entre el modelo
y manejadas de acuerdo a procedimientos documentados: Las general de aseguramiento de la calidad del software y la
desviaciones pueden encontrase en el plan de proyecto, metodologa IDEAL.
descripciones del proceso, estndares aplicables o productos
de trabajo tcnico. Metodologa de Desarrollo
Interfaz de Aseguramiento de
Registrar cualquier incumplimiento y reportarlo a la alta del Software de la
la Calidad del Software
gerencia: A los incumplimientos se les debe hacer Organizacin
seguimiento hasta que sean resueltos.
El equipo de SQA participa tambin en la tarea de Identifica-
cin de la
Planificacin

recolectar y analizar mtricas de software como as tambin en tarea

establecer y revisar procedimientos, planes y estndares.


III. MODELO GENERAL Desarrollo de
Requerimientos

los
En la presente seccin se esboza el Modelo General, es prototipos

decir, el diseo de acciones y mtodos que constituyen un


enfoque prctico para el desempeo de la funcin de SQA en Ejecucin
Anlisis

una organizacin. Tambin se presenta el modelo de mejora de la


construccin
continua del mismo. del sistema
integrado

A. Modelo de aseguramiento de calidad sugerido Diseo Metodologa,

Una metodologa de desarrollo de software (ya sea para Actuacin


para
Estndares y
conseguir el
software convencional o para sistemas basados en el mantenimien- Normas de la
to perfectivo
conocimiento) establece una forma consistente de ejecutar las Codificacin Organizacin
actividades relacionadas con el software dentro de una
organizacin. Toda metodologa describe: Lograr una
adecuada
Elementos: Cubren un conjunto de actividades bien transferencia
Verificacin
del Sistema
tecnolgica
definidas, relacionadas y agrupadas.
Arquitectura: Establece el orden, las interfaces, las
interdependencias y otras relaciones entre los elementos. Validacin
del Sistema

Adicionalmente, la metodologa podra describir estndares,


mtodos y herramientas.
La metodologa de desarrollo es la que provee continuidad Instalacin

en el proceso de software de una organizacin y es una


referencia para mtricas y mejoras de dicho proceso.
Sobre la base del concepto de metodologa y de los
conceptos bsicos ya definidos en el captulo anterior, se Fig. 2. Relacin entre el modelo general y la metodologa de desarrollo
propone un enfoque o modelo de aseguramiento de la calidad B. Aplicacin del Modelo
del software que tiene las siguientes caractersticas:
El modelo aqu presentado, es un modelo genrico cuya
El modelo de aseguramiento de calidad de software sugerido flexibilidad permite su adaptacin a cada proyecto en
es una interfaz a una metodologa de desarrollo de software. particular. De esta forma, se podrn seleccionar los segmentos
En particular, para el presente trabajo, se utilizar la del mismo que cubran las necesidades de cada proyecto,
metodologa IDEAL. evitando la realizacin de actividades innecesarias.
El modelo que aqu se presenta no es una metodologa en s El modelo general de aseguramiento de la calidad, se
misma, sino que debe acoplarse a una metodologa de documenta en un plan general de aseguramiento de la calidad.
desarrollo para poder implementarse. La flexibilidad, que permite la adaptacin del modelo genrico
Esta interfaz est compuesta por mdulos independientes, o plan general de aseguramiento de la calidad del software, a
donde cada uno de ellos se asocia a ciertos procesos de la todo tipo de proyectos, se formaliza a travs de los planes
metodologa IDEAL. especficos de aseguramiento de la calidad del software para
La interfaz cuenta tambin con un mdulo de ejecucin cada proyecto.
recurrente, en donde, para todas y cada uno de las entradas a El plan especfico de aseguramiento de la calidad, para un
cada uno de los otros mdulos, se verifica la conformidad de proyecto en particular, ser entonces, la adaptacin del plan
las mismas con la metodologa, estndares y normas aplicables general a las caractersticas particulares de ese proyecto. En la
que estn vigentes en la organizacin. figura 3 se muestra la relacin entre el plan general de
El modelo de aseguramiento de la calidad del software aseguramiento de la calidad del software y cada uno de los
sugerido no es dependiente de la metodologa de desarrollo planes especficos.
utilizada en una organizacin, sino que se adapta a ella. Sobre C. Mdulos del modelo
la base de los procesos de la metodologa de desarrollo, sus
precedencias, sus ciclos de ejecucin, y por supuesto de las En el captulo siguiente se describir cada uno de los
caractersticas del proyecto en curso, se seleccionan aquellas mdulos del modelo general de aseguramiento de la calidad
porciones de la interfaz que resulten necesarias para obtener los propuesto, indicando para cada uno de ellos los siguientes:
niveles de calidad deseados y el orden de ejecucin de las

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 171
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Objetivo: Descripcin del propsito del mdulo, para usar permanentes mejoras y actualizaciones de acuerdo a la
como una regla contra la que medir el progreso del mismo. experiencia y a las necesidades que surjan como consecuencia
de la aplicacin del mismo.
En la figura 4 se muestra el modelo de actualizacin y
mejora continua del plan general de aseguramiento de la
calidad del software y de los planes especficos de
aseguramiento de la calidad del software de cada proyecto, as
como la adaptacin del plan general, y la ejecucin y
verificacin de los planes especficos.

Plan General de
Aseguramiento de la
Calidad del Software

Fig. 3. Relacin entre el plan general y los planes especficos

Entrada: Documentos y/o informacin necesaria para


Paso 1
completar el mdulo. El nombre de los documentos es Paso 4
Adaptacin del Plan
genrico, sin embargo este nombre debe ser adaptado al Actualizacin del Plan
General a cada Proyecto
General
nombre del producto resultante, del proceso lgico particular
correspondiente, en la metodologa utilizada.
Proceso: Descripcin de las tareas y acciones que debe
ejecutar el integrante del equipo de SQA para dar por
cumplido el mdulo.
Plan Especfico de
Salida: Productos que deben ser generados al final del Aseguramiento de la
mdulo. Calidad del Software

Lista de verificacin: Checklist que utilizan los integrantes


del equipo de SQA para verificar que ha cumplido el mdulo
correctamente. Las lista de verificacin se definen en tablas,
los campos de esas tablas se explican en la tabla I.
Paso 3 Paso 2
TABLA I. EXPLICACIN DE LOS CAMPOS QUE FORMAN PARTE DE LAS Actualizacin del Plan Ejecucin del Plan
TABLAS QUE DEFINEN LAS LISTAS DE VERIFICACIN Especfico Especfico

CAMPOS EXPLICACIN
Nmero Un nmero que identifica secuencialmente
los tems de control de calidad, el resultado
positivo indicara que ese paso ha sido
Productos resultantes de la
realizado correctamente.
Ejecucin
tem tem especfico de control de calidad que es
usado para medir la efectividad de ejecucin
de este paso. Fig. 4. Modelo de actualizacin y mejora continua
Respuesta El analista de calidad deber indicar en esta
columna si ha realizado el tem referenciado. D.2. Detalle del modelo de mejora continua del plan
La respuesta puede ser: SI, NO o N/A si la A continuacin se detalla el modelo de mejora continua del
misma no es aplicable al proyecto en plan general de aseguramiento de la calidad como as tambin
cuestin.
de los planes especficos correspondientes a cada proyecto
Comentarios Esta columna es utilizada para clarificar la particular.
respuesta de SI, NO o N/A para los tems
indicados. Adicionalmente, y slo para contextualizar los pasos
Generalmente la columna de comentarios correspondientes a la mejora continua, se detallan brevemente
slo se completa en las respuestas por NO; los pasos correspondientes a la adaptacin del plan general, y
las respuestas por NO debern ser la ejecucin y verificacin de los planes especficos:
investigadas y se deber tomar una Paso 1:
determinacin respecto a si este tem deber
ser completado antes de considerar este Entrada: Plan general de aseguramiento de la calidad de
paso completo. software.
Accin: Adaptacin del plan general de aseguramiento
D. Actualizacin del plan de la calidad de software a cada proyecto particular.
D.1. Modelo de mejora continua del plan Salida: Plan especfico de aseguramiento de la calidad
de software para un proyecto particular
El modelo o plan general de aseguramiento de la calidad
del software aqu presentado no mantiene un estado Paso 2:
estacionario o esttico, sino que es dinmico y sujeto a
172 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Entrada: Plan especfico de aseguramiento de la calidad influenciado por un largo nmero de variables, muchas de ellas
de software, para un proyecto particular. son subjetivas, no cuantificables e interrelacionadas en forma
Accin: Ejecucin del plan especfico de aseguramiento compleja.
de la calidad de software.
Salida: Productos resultantes de la ejecucin del plan
especfico de aseguramiento de la calidad de software.
Paso 3:
Entrada: Productos resultantes de la ejecucin del plan
especfico de aseguramiento de la calidad de software.
Accin: Anlisis de la calidad de los productos
resultantes de la ejecucin del plan especfico.
Generacin de recomendaciones y acciones a realizar,
con su correspondiente justificacin, para mejorar el
plan especfico de aseguramiento de la calidad de
software.
Salida: Plan especfico de aseguramiento de la calidad
de software, para un proyecto particular, actualizado.
Paso 4:
Entrada: Actualizaciones realizadas al plan especfico
de aseguramiento de la calidad de software, para un
proyecto particular.
Accin: Anlisis de las actualizaciones realizadas al
plan especfico de aseguramiento de la calidad del Fig. 5. Proceso del mdulo de planificacin
software, con sus correspondientes justificaciones.
Actualizacin del plan general de aseguramiento de la Una estimacin inapropiada de costos puede daar ms a la
calidad del software. calidad del proyecto de software que a cualquier otro factor.
Salida: Plan general de aseguramiento de la calidad del Si la estimacin es incorrecta, el equipo de proyecto har lo
software actualizado. imposible para coincidir con la estimacin. Todo esto provoca
un aumento de costos de mantenimiento, insatisfaccin del
IV. MDULOS DEL MODELO cliente, esfuerzo adicional en el rea del cliente para compensar
la debilidad del sistema, y desanimar al personal del proyecto.
En el presente captulo se describen los Mdulos del La verificacin puede aumentar la validez de la estimacin. La
Modelo, se presentan para cada uno de ellos las acciones a estimacin del software es un proceso de tres partes como se
desempear, su objetivo, sus entradas, salidas, lista de describe a continuacin:
verificacin, mtricas y participantes involucrados.
Validar la sensatez del modelo de estimacin.
A. Planificacin Validar que el modelo incluya todos los factores necesarios.
Verificar la efectividad del modelo estimado de costo.
A.1. Objetivo
El detalle de cada uno de estos puntos, se encuentra en el
Determinar qu recursos estarn disponibles para producir y captulo de Tcnicas y Herramientas.
mantener el software asociado al proyecto.
Determinar cundo y cmo se incurrir en costos de personal, A.3.2. Verificacin del Estado del Proyecto
tiempo de procesamiento, etc. Para conocer el estado del proyecto se sugiere un sistema
Medir el avance del desarrollo del proyecto. simple de acumulacin de puntos para medir el progreso.
Luego este sistema puede compararse con el reporte gerencial
A.2. Entrada del proyecto. Si hay una diferencia significativa entre ambos
sistemas de medicin del progreso, el analista de calidad puede
Plan de desarrollo (de software) del proyecto. cuestionar la validez de los resultados producidos por la
Estimacin del proyecto y mtodo utilizado para realizarla. gerencia de proyecto y/ o sistema de conteo.
Descripcin del proceso de desarrollo a utilizar en el El sistema de puntos para realizar la medicin durante el
proyecto. desarrollo del software, provee un mtodo objetivo, preciso y
eficiente de recoleccin y reporte del rendimiento de la
A.3. Proceso informacin en el campo de la ingeniera que a menudo carece
En la figura 5 se detalla grficamente, el proceso a de visibilidad. El mtodo utiliza informacin basada en tems
desarrollar durante este mdulo: de entregables de software y es obtenida como parte del
proceso de desarrollo. Los resultados son fciles de interpretar
A.3.1.Verificacin de la Estimacin del Proyecto y pueden presentarse en una variedad de formatos. El esquema
Muchos proyectos de software son esencialmente es flexible y puede modificarse para proyectos grandes y
innovadores, pero una ineficaz estimacin del sistema, puede chicos. El detalle del mismo, se encuentra en el captulo de
llevar a un exceso de costos. Estimar costos de software es un Tcnicas y Herramientas.
proceso complicado porque el desarrollo del proyecto es

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 173
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
A.4. Salidas B. Requerimientos
Informe de estimacin del proyecto
B.1. Objetivo
Informe de estado del proyecto
Determinar si los requerimientos expresan las necesidades
A.5. Lista de Verificacin (Checklist) del usuario.
En la tabla I se presenta la lista de verificacin: Verificar la separacin de los requerimientos entre
obligatorios y opcionales.
TABLA II. LISTA DE VERIFICACIN DEL MDULO DE PLANIFICACIN
Verificar que cada requerimiento:
Est debidamente documentado, reflejando las necesidades

Comentarios
Respuesta
del usuario.
tem
#

Se encuentre dentro del alcance definido del sistema en


cuestin.

N/A
NO
Se encuentre dentro de los lmites del presupuesto para el

SI
La gerencia del proyecto, esta de acuerdo en tener un equipo sistema en cuestin.
1 de aseguramiento de la calidad y evaluacin de la estimacin y
estado del plan de desarrollo? Se encuentre bien definido (en forma completa), de manera
2
El equipo de aseguramiento de la calidad conoce la de evitar cambios posteriores.
estimacin del progreso utilizada para el proyecto?
3
El equipo de aseguramiento de la calidad conoce el mtodo Determinar que los requerimientos documentados puedan ser
para realizar los informes de estado del proyecto?
El equipo de aseguramiento de la calidad entiende el mtodo
implementables (pasibles de ser analizados, diseados,
4
utilizado para estimar y calcular? codificados) y verificables (pasibles de ser verificados y
El equipo de aseguramiento de la calidad ha realizado una
5 buena verificacin para determinar la validez de las
validados) en fases posteriores.
estimaciones realizadas?
Si el equipo de aseguramiento de la calidad est en B.2. Entradas
desacuerdo con la validez de las estimaciones realizadas.
6
Existe un procedimiento razonable para manejar tales Minutas de reunin con el usuario.
diferencias?
El equipo del proyecto posee un sistema de reportes Documento de especificacin de requerimientos del usuario.
7
razonable para informar el estado del mismo?
El equipo de aseguramiento de la calidad ha establecido que B.3. Proceso
8 pueden utilizarse los informes de estado de proyecto como
gua para la toma de decisiones? En la figura 6 se detalla grficamente, el proceso a
Existe algn procedimiento a seguir, si los informes de estado
9 indican que el proyecto est por encima o por debajo de las desarrollar durante este mdulo.
estimaciones?
El equipo de aseguramiento de la calidad ha tenido en cuenta HACER VERIFICAR
10 los factores ms importantes en la evaluacin de la estimacin
realizada (Ejemplo: tamao del software, etc.)?
El equipo de proyecto ha recibido una copia del estado del
11 REHACER
mismo?
El equipo de aseguramiento de la calidad tiene conocimiento
12
de cmo se efecta la planificacin? 1 Paso
El equipo de aseguramiento de la calidad tiene conocimiento
13
de cmo se efecta la estimacin del proyecto? Minutas de Reunin con el
Preparar la Matriz de
El equipo del proyecto tiene conocimiento del proceso de Usuario
Riesgo
14 desarrollo utilizado para construir el software especificado por
el proyecto? NO
15 El plan de proyecto est completo?
16 La estimacin del proyecto est totalmente documentada? 2 Paso
17 El proceso de desarrollo est totalmente documentado? SI
Requerimiento Reportes de la
El mtodo de estimacin utilizado para el proyecto, es
18 Realizar un Anlisis de preciso y completo Verificacin
razonable respecto de las caractersticas del mismo?
Factores a Verificar
La estimacin efectuada es razonable como para completar el
19
proyecto segn lo especificado en el plan?
El equipo del proyecto tiene un mtodo definido para Definicin de los
20 requerimientos del
determinar e informar el estado del mismo
Proyecto 3 Paso
El equipo de aseguramiento de la calidad, est de acuerdo
21 con que el estado informado coincide con el estado actual del
proyecto? Conducir un
"Walkthrough"

A.6. Mtricas
Eficacia de la estimacin Duracin actual del proyecto
de la duracin: Duracin estimada del Fig. 6. Proceso del mdulo de requerimientos
proyecto
Eficacia de la estimacin Esfuerzo actual del proyecto
B.3.1. Preparar la Matriz de Riesgo
del esfuerzo Esfuerzo estimado del
proyecto La Matriz de Riesgo es una herramienta diseada para
evaluar el control en los sistemas de informacin.
A.7. Involucrados Uno de los mayores beneficios de la matriz de riesgo es, no
slo la identificacin de los mismos, sino tambin qu es lo que
A.7.1. Equipo de Ingeniera el sistema debe hacer para con cada uno de ellos. En
Gerente de proyecto. principio, la matriz de riesgo es una herramienta de diseo,
pero puede ser usada como herramienta de verificacin.
A.7.2. Equipo de Aseguramiento de la Calidad del Software
En forma ideal la matriz de riesgo comienza en la fase de
Lder de aseguramiento de la calidad del software. requerimientos, se desarrolla en la fase de anlisis y se termina

174 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
en la fase de diseo. La ejecucin de la matriz de riesgo es un Este mtodo se implementa como un proceso de cinco
proceso de cinco pasos, los cuales se encuentran detallados en pasos ejecutados en secuencia, los cuales se encuentran
el captulo de Tcnicas y Herramientas. detallados en el captulo de Tcnicas y Herramientas, que son:
Establecer reglas bsicas
B.3.2. Realizar un Anlisis de Factores a Verificar
Seleccionar el equipo / Notificar a los participantes
Debe llevarse a cabo un proceso para estimar las
incumbencias (concerns) asociadas a la fase de Presentacin del proyecto
requerimientos del desarrollo del sistema. Debe incluirse un Preguntas / recomendaciones
programa de verificacin para cada factor a considerar (son Reporte final
15), cubriendo cada fase del proceso de desarrollo. Para cada El tiempo destinado a cada paso depender del tamao de
factor hay un programa de verificacin que tiene en cuenta la aplicacin que se est revisando y el grado de asistencia
ciertas consideraciones las cuales se encuentran detalladas en el deseado del equipo de walkthrough.
captulo de Tcnicas y Herramientas.
El programa de verificacin enumera aquellos criterios, que B.4. Salidas
aseguran al equipo de aseguramiento de la calidad, que la Matriz de riesgo
magnitud de esa preocupacin es mnima. A estos criterios Anlisis de factores de verificacin.
debe responder el equipo de aseguramiento de la calidad. Informe de la inspeccin (walkthrough) confeccionado.
Tambin se debe realizar una verificacin suficiente para Resumen de la inspeccin (walkthrough) confeccionado.
evaluar si el equipo de proyecto ha manejado adecuadamente
cada criterio de verificacin. B.5. Lista de Verificacin (Checklist)
Los factores a verificar en la etapa de requerimientos son: En la tabla III se presenta la lista de verificacin.
Requerimientos compatibles con la metodologa (Factor de
prueba: Metodologa) TABLA III. LISTA DE VERIFICACIN DEL MDULO DE REQUERIMIENTOS

Funcionalidad de las especificaciones definidas (Factor de Respuesta


# tem Comentarios
prueba: Precisin)
SI NO N/A
Usabilidad de las especificaciones (Factor de prueba: 1
Los requerimientos definidos son
verificables?
Facilidad de uso) El usuario est de acuerdo con el
2
Mantenimiento de las especificaciones (Factor de prueba: requerimiento definido?
Los desarrolladores entienden los
3
Mantenibilidad) requerimientos?
El requerimiento definido coincide con los
Necesidades de portabilidad (Factor de prueba: Portabilidad) 4
objetivos del proyecto?
5 Se identificaron los riesgos del proyecto?
Interfaces del sistema (Factor de prueba: Acoplamiento) Se sigui un proceso razonable en la
6
definicin del requerimiento?
Criterios de performance (Factor de prueba: Performance) El proceso de control de requerimientos, es
7 adecuado para minimizar los riesgos del
Necesidades operativas (Factor de prueba: Facilidad de proyecto?
operacin) Durante el proceso de control de
8 requerimientos, se ha llevado a cabo un
Tolerancia (Factor de prueba: Fiabilidad) walktrough?

Reglas de autorizacin (Factor de prueba: Autorizacin) B.6. Mtricas


Requerimientos de integridad de archivos (Factor de prueba: Estabilidad de los Cantidad de requerimientos
Integridad de archivos) requerimientos: iniciales
Recuperacin ante fallas en los requerimientos (Factor de Cantidad total de
prueba: Auditora) requerimientos
Impacto de fallas (Factor de prueba: Continuidad de
procesamiento)
Completitud de los Cantidad de nuevos
Nivel de servicio deseado (Factor de prueba: Nivel de requerimientos: requerimientos agregados
Servicio)
Cantidad total de
Permisos y accesos (Factor de prueba: Seguridad)
requerimientos
B.3.3. Conducir un Walkthrough de Requerimientos
De los procesos de revisin, la inspeccin o recorrido Tasa de efectividad de la Cantidad de tems cubiertos
(walkthrough) de requerimientos es el menos estructurado y el verificacin: Cantidad total de tems
ms propenso a la creatividad. Por lo tanto ste se convierte en
un proceso de revisin que complementa los objetivos de la B.7. Involucrados
fase de requerimientos. El objeto de este proceso de revisin es
crear una situacin en la cual un grupo de gente con las B.7.1. Equipo de Ingeniera
habilidades adecuadas pueda ayudar al equipo en el desarrollo Gerente de proyecto.
de las soluciones del proyecto. El walkthrough intenta usar la Grupo de anlisis de requerimientos.
experiencia y juicio del equipo de revisin como un soporte en
el proceso de desarrollo. B.7.2. Equipo de Aseguramiento de la Calidad del Software
Lder de aseguramiento de la calidad del software.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 175
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Analistas de aseguramiento de la calidad del software Senior sistema como es percibido por los usuarios de esa
y/o Semi-senior. comunidad.
Reconocer que una especificacin tendr varios niveles de
C. Anlisis
detalle.
C.1. Objetivo Se verificar que la especificacin funcional cumpla, con
Describir la funcionalidad del producto que va a ser al menos, los siguientes lineamientos:
entregado. El formato de la representacin y contenido debera ser
Definir el ambiente en el que va a operar. relevante para el problema. Debe llevarse a cabo, un
desarrollo general para los contenidos de las especificaciones.
Definir la confiabilidad y el compromiso de mantenimiento.
La informacin contenida en la especificacin debe ir de lo
Identificar las necesidades de soporte u operacin, como general a lo particular (estar anidada). Las representaciones
hardware, software, etc. deberan revelar capas de informacin a fin de permitir al
Definir para cada requerimiento, qu prueba se va a ejecutar lector que pueda moverse al nivel de detalle que sea
para asegurar que se cumpla con el mismo. requerido. Se deben indicar esquemas de numeracin dentro
de los diagramas utilizados, indicando el nivel de detalle que
C.2. Entradas
se presenta. Es importante presentar la misma informacin a
Documento de especificacin de requerimientos revisado diferentes niveles de abstraccin para ayudar a su
Documento de especificacin funcional. entendimiento.
C.3. Proceso Los formatos diferentes de diagramas a utilizar y otras
formas de notacin, debern ser restringidas al mnimo en
En la figura C se detalla grficamente, el proceso a nmero y consistentes en su uso. La informacin confusa e
desarrollar durante este mdulo. inconsistente, sea tanto simblica o grfica, perjudica el
entendimiento y propicia errores.
La especificacin funcional, debe ser verificable.
Se verificar que la especificacin funcional cumpla, con al
menos, el siguiente contenido:
I. Introduccin
a. Resumen del Sistema
b. Descripcin del producto
c. Entregables
II. Ambiente
a. Usuarios
b. Servicios
c. Fsico
d. Seguridad
III. Descripcin de la informacin
a. Representacin del contenido de la informacin
b. Representacin del flujo de la informacin
i. Flujo de datos
ii. Flujo de control
IV. Descripcin funcional
a. Particin funcional
Fig. 7. Proceso del mdulo de anlisis
b. Descripcin funcional
i. Narrativa de proceso general
C.3.1. Analizar la Especificacin Funcional ii. Restricciones / Limitaciones
La especificacin funcional, debe ser vista como un iii. Requerimientos de rendimiento
proceso de representacin, a fin de poder llegar a una exitosa iv. Restricciones de diseo
implementacin de software. Algunos principios para v. Diagramas de soporte
especificar, podran ser: c. Descripcin de control
Separar requerimientos funcionales de implementacin. i. Especificacin de control
ii. Restricciones de para el diseo
Desarrollar un modelo del comportamiento deseado del V. Descripcin de situacin
sistema, que comprenda datos y la respuesta funcional del a. Estado del sistema
sistema a los estmulos del ambiente. b. Eventos y acciones
Establecer un contexto en el cual el software opera VI. Validacin y criterios
especificando la forma en la cual otros componentes del a. Lmites y restricciones
sistema interactan con el software. b. Clases de pruebas requeridas
Desarrollar un ambiente en el cual el sistema opere y c. Respuesta esperada del software
reaccione a los estmulos del mismo. d. Consideraciones especiales
Crear un modelo cognitivo en lugar de un diseo o un VII. Cronograma
modelo de implementacin. El modelo cognitivo describe el VIII. Apndices

176 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
C.3.2. Conducir una Inspeccin Formal
La revisin de una especificacin funcional es conducida Correctitud de la Cantidad de funciones
por el desarrollador y el cliente. Dado que las especificaciones funcionalidad: corregidas
forman el punto fundamental y a partir del cual se realizar el Cantidad total de funciones
diseo y subsecuentemente las actividades de la ingeniera del establecidas
software o de conocimiento, se debern extremar los cuidados
para conducir esta revisin. Completitud de la Cantidad de nuevas funciones
La revisin en una primera instancia es conducida en un funcionalidad: agregadas
nivel macro. En este nivel, los inspectores intentan garantizar Cantidad total de funciones
que la especificacin est completa, consistente y exacta. establecidas
Se tendrn en cuenta los siguientes lineamientos para una
revisin detallada: Eficiencia en la Cantidad de defectos detectados
deteccin de defectos: hasta anlisis
Detectar y remplazar trminos vagos.
Cantidad total de defectos
En el caso de listas de elementos, asegurar que hayan sido
incluidos todos.
Eficiencia en la Cantidad de defectos removidos
Cuando se especifiquen rangos (numricos, etc.) asegurarse remocin de defectos: hasta anlisis
que no contengan valores asumidos sin ser definidos
Cantidad total de defectos
expresamente
Estar alerta de verbos y pronombres ambiguos. Tasa de efectividad de Cantidad de tems cubiertos
Identificar afirmaciones que no incluyan certeza. la verificacin: Cantidad total de tems
Cuando una estructura es descripta en palabras, asegurar que
se realice un diagrama para ayudar a comprenderla.
Cuando sea necesario realizar un clculo especificado, TABLA IV. LISTA DE VERIFICACIN DEL MDULO DE ANLISIS

asegurar que se presente al menos dos ejemplos del mismo.


tem Respuesta
# Comentarios
Con respecto a los cambios en los requerimientos, una vez
SI NO N/A
que los mismos han sido finalizados, el usuario deber notar Los objetivos y metas del sistema se mantienen
que cada uno de ellos es una ampliacin del alcance del 1 consistentes con las polticas de software de la
organizacin?
software y por ende, un cambio en la especificacin funcional. La estructura y el flujo de la informacin, est
2 adecuadamente definida por el rea a la cual
Esto incrementar el costo del proyecto y/ o extender el compete el problema?
tiempo establecido para su finalizacin. Son claros los diagramas? Pueden ser
3 explcitos sin necesidad de ser descriptos o
An cuando se realicen las mejores revisiones, cierto narrados?
Las funciones principales del sistema, estn
nmero de problemas en la especificacin persiste. La 4 dentro del alcance? Cada una de ellas ha sido
especificacin es difcil de verificar, por ende las adecuadamente definida?
Es consistente el comportamiento del sistema
inconsistencias u omisiones pueden pasar desapercibidas. 5 con la informacin que debe procesar y las
funciones que debe desarrollar?
Durante la revisin, pueden ser recomendados ms cambios en 6 Las limitaciones del sistema son realistas?
la especificacin funcional. Puede ser extremadamente difcil 7
Ha sido considerado el riesgo tecnolgico del
desarrollo?
estimar el impacto global del cambio, esto es, cmo un cambio 8
Se han considerado requerimientos alternativos
de software?
en una funcin afecta a los requerimientos en otra funcin. Ha sido detallado el criterio de verificacin y
Esto ltimo deber ser tenido muy en cuenta a la hora de 9 validacin? Los mismos, son adecuados para
determinar el xito del sistema?
impactar dicho cambio. Existen inconsistencias, omisiones o
10 redundancias en el modelo de informacin del
sistema?
C.4. Salidas 11 El usuario final ha estado involucrado?
El usuario revis el prototipo y/o manual del
Informe de la Inspeccin 12
usuario?
Resumen de la Inspeccin 13
Han sido debidamente planificadas las
estimaciones de esfuerzo?

C.5. Lista de Verificacin (Checklist) C.7. Involucrados


En la tabla IV se presenta la lista de verificacin.
C.7.1 .Equipo de Ingeniera
Gerente de proyecto.
C.6. Mtricas Grupo de anlisis de requerimientos.
Estabilidad de los Cantidad de requerimientos Grupo de anlisis funcional.
requerimientos: modificados C.7.2. Equipo de Aseguramiento de la Calidad del Software
Cantidad total de requerimientos Lder de aseguramiento de la calidad del software.
establecidos
Analistas de aseguramiento de la calidad del software Senior
y/o Semi-senior.
Estabilidad de la Cantidad de funciones
funcionalidad: modificadas
Cantidad total de funciones
establecidas

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 177
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
D. Diseo procura identificar distritos electorales que muestran una
correlacin histrica alta en los resultados de elecciones
D.1. Objetivo anteriores. El conocimiento del registro de votos de un distrito
Establecer los factores que conducen a un diseo correcto y en especial y los resultados de elecciones previas, nos provee la
preciso base para hacer futuras predicciones. Esos distritos con un
Conducir revisiones de diseo. registro de grandes ganadores pueden servir de muestra, para
Conducir inspecciones de los entregables del diseo luego basados en esas muestras, predecir el resultado de una
eleccin antes que los votos sean contados.
D.2. Entradas Estos tipos de predicciones en sistemas de computacin son
Comprensin del diseo por parte del equipo de bien conocidos, pero no han sido bien utilizados hasta que el
aseguramiento de la calidad concepto de ranking fue desarrollado. Por ejemplo, sabemos
Entregables derivados del diseo: que hay una correlacin positiva entre la participacin del
usuario y el sistema de computacin: cuanto ms involucrado
Especificaciones de entrada
este el usuario, mayor probabilidad de que el sistema sea
Especificaciones de procesamiento exitoso. Tambin sabemos que habr problemas con el sistema
Especificaciones de archivos de computacin que empuja las actuales corrientes de
Especificaciones de salida tecnologa. Por ejemplo, el primer sistema en usar la nueva
Especificaciones de control tecnologa puede ser identificada como un sistema de alto
Diagramas de flujo del sistema riesgo, porque la mayora de los inconvenientes ocurrir
durante la implementacin.
Requerimientos de software y hardware.
Los criterios que se utilizan bajo el concepto de ranking, se
Especificacin de los procedimientos de operacin manual. describen en el captulo de Tcnicas y Herramientas
Poltica de resguardo de la informacin. Al concluir el ranking, el resultado puede ser usado en
Documento de diseo de alto nivel (Lgico) cualquiera de las siguientes formas:
Documento de diseo de detalle (Fsico y lgico) Estimar la extensin de la verificacin: A mayor riesgo, la
D.3. Proceso gerencia del proyecto puede requerir ms verificaciones.
Sabiendo que la aplicacin es de alto riesgo, se alertar al los
En la figura 8 se detalla grficamente, el proceso a gerente del proyecto respecto de la necesidad de tomar las
desarrollar durante este mdulo: medidas correspondientes para reducir el riesgo a un nivel
aceptable.
Identificar mdulos a verificar: Dependiendo de la
sofisticacin del instrumento con el que se obtuvo el ranking,
puede identificarse mdulos especficos para la verificacin.
Por ejemplo, si la lgica computacional se sabe que es de alto
riesgo, la verificacin debera evaluar exhaustivamente la
exactitud de este proceso.
Identificar la composicin del equipo de verificacin: Los
tipos de riesgos asociados con el sistema ayudan a determinar
la composicin del equipo de test. Por ejemplo, si los riesgos
tratan ms con la tecnologa que con la lgica, el equipo de
test debera incluir individuos con conocimientos profundos
en esa tecnologa.
Al ranking de riesgo se llega a travs de un desarrollo
matemtico, como se muestra en el captulo de Tcnicas y
Herramientas.
D.3.2. Anlisis de Factores
El encargado de dirigir la verificacin podr seleccionar
Fig. 8. Proceso del mdulo de diseo los factores de inters apropiados, para ajustar la verificacin,
teniendo en cuenta los siguientes objetivos generales para la
D.3.1. Ranking de Factores de xito fase de diseo:
El ranking (scoring) es una herramienta predictiva que Desarrollar una solucin al problema de negocio planteado.
utiliza experiencias en proyectos anteriores. Los proyectos en Determinar el rol de la tecnologa para resolver el problema.
curso son analizados para determinar los atributos de los Desarrollar especificaciones para los segmentos manuales y
mismos y su correlacin con el xito o el fracaso de proyectos automatizados del sistema.
o sistemas en particular. Una vez que los atributos Cumplir con el plan de accin, procedimientos, estndares y
correlacionados al xito o al fracaso pueden ser identificados, regulaciones.
tambin pueden ser usados para predecir el comportamiento
del sistema que est en desarrollo. Definir los controles que reducirn riesgos de la aplicacin,
llevndolos a un nivel aceptable.
El concepto es el mismo que el usado para predecir el
resultado de las elecciones. La gente que hace las predicciones

178 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Completar el proyecto dentro de las restricciones del Una o ms revisiones pueden llevarse a cabo durante la fase
presupuesto, personal y cronograma establecidos. de diseo. La cantidad de revisiones depender de la
Los factores que deben analizarse durante la fase de diseo importancia del proyecto y del lapso de tiempo en la fase de
se describen a continuacin, y puede encontrarse ms detalle en diseo. As podrn llevarse a cabo revisiones del diseo de alto
el captulo de Tcnicas y Herramientas: Los factores a verificar nivel y del diseo detallado. Cada defecto descubierto durante
en la Fase de Diseo son: la revisin del diseo de alto nivel debe documentarse. Se
Controles de integridad de datos. confeccionar un reporte de defectos. Los defectos deben
documentarse, categorizarse, registrarse, presentarse al equipo
Reglas de autorizacin.
de proyecto para corregir, y referenciarlo al documento
Controles de integridad de archivos. especfico en el cual el defecto fue notado. Un ejemplo del
Pistas de auditoria. formulario para registrar estos defectos, puede encontrarse en
Plan de contingencia. el captulo de Tcnicas y Herramientas.
Mtodo para alcanzar el nivel de servicio requerido.
D.3.4. Conduccin de la Inspeccin de los Entregables de
Procedimientos de acceso. Diseo
Diseo acorde con la metodologa establecida. La Inspeccin es un proceso por el cual los productos
Diseo acorde con los requerimientos establecidos. completos pero no verificados, son evaluados para saber si los
Facilidad de uso. cambios especificados fueron implementados correctamente.
Mantenibilidad del diseo. Para lograr esto, los inspectores examinan los productos
Portabilidad del diseo. antes del cambio, las especificaciones de cambio, y los
Interfaces de diseo. productos luego del cambio para determinar los resultados.
Buscan tres tipos de defectos: Incorrectos (el cambio no se ha
Diseo acorde con criterios establecidos.
hecho correctamente), faltantes (algo que debera haberse
Necesidades de operacin. cambiado, no se cambi), y adicionales (algo fue cambiado o
D.3.3. Conduccin de la Revisin del Diseo agregado sin la intencin de hacerlo).
La revisin de diseo ser estructurada usando la misma D.4. Salidas
informacin bsica que la utilizada para llevar a cabo el Informe de la inspeccin.
ranking. El objetivo es identificar de antemano aquellos
Resumen de la inspeccin.
atributos del diseo que se correlacionan con los problemas del
sistema. Entonces durante la revisin del diseo, se D.5. Lista de Verificacin (Checklist)
investigarn dichos atributos para determinar si el equipo de
En la tabla 4.4 se presenta la lista de verificacin.
proyecto los ha tratado apropiadamente.
La revisin del diseo deber ser conducida por un grupo D.6. Mtricas
de individuos con conocimientos en el proceso de diseo. El Cantidad de defectos detectados
grupo tendr la responsabilidad de revisar la integridad y Eficiencia en la hasta diseo
racionabilidad de la aplicacin. No es necesario que el grupo deteccin de defectos: Cantidad total de defectos hasta
conozca la aplicacin especficamente pero s debe conocer la diseo
metodologa de la organizacin.
La revisin de diseo normalmente es formal y altamente Cantidad de defectos removidos
estructurada. Los miembros del equipo intentan determinar si Eficiencia en la hasta diseo
todas las tareas se han realizado apropiadamente. Al final de la remocin de defectos: Cantidad total de defectos hasta
revisin de diseo, el equipo emite un reporte indicando sus
diseo
hallazgos y recomendaciones acerca del proyecto. El equipo de
revisin de diseo comprende los siguientes miembros:
Tasa de efectividad de Cantidad de tems cubiertos
Personal del proyecto. la verificacin: Cantidad total de tems
Equipo de revisin independiente.
La siguiente es la lista con los pasos de una revisin de Cantidad de cambios introducidas
diseo, la descripcin detallada est en el captulo de Tcnicas en el diseo
y Herramientas: Estabilidad del diseo:
Cantidad total de cambios en el
Seleccionar el equipo de revisin. proyecto
Entrenar los miembros del equipo de revisin.
Notificar al equipo de proyecto. D.7. Involucrados
Asignar tiempos adecuados.
Documentar los datos de la revisin. D.7.1. Equipo de Ingeniera
Revisar los datos con el equipo de proyecto. Gerente de proyecto.
Desarrollar recomendaciones de revisin. Grupo de diseo de alto nivel (o lgico).
Revisar recomendaciones con el equipo de proyecto. Grupo de diseo de detalle (o fsico).
Preparar un reporte final. Grupo de administracin de base de datos.
Grupo de analistas desarrolladores.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 179
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
D.7.2. Equipo de Aseguramiento de la Calidad del Software Respuesta Comenta
# tem
Lder de Aseguramiento de la Calidad del Software SI NO N/A
rios

Analistas de aseguramiento de la calidad del software Senior 25


Han preparado los inspectores una lista de
defectos?
y/o Semi-senior. Se ha programado la inspeccin
26 convenientemente para todos los
inspectores?
E. Codificacin Han concurrido todos los inspectores a la
27
reunin de inspeccin?
E.1. Objetivo 28
Estuvieron de acuerdo todos los inspectores
con la lista de defectos?
Fueron identificados los defectos durante la
El principal objetivo de esta prueba es asegurar que las 29 reunin de revisin registrados y entregados
especificaciones de diseo hayan sido correctamente al autor?
El autor estuvo de acuerdo acerca de
implementadas. 30
realizar las correcciones necesarias?
Se ha desarrollado un proceso razonable
31 para determinar si esos defectos han sido
E.2. Entradas corregidos satisfactoriamente?
La certificacin del moderador ha sido
Los entregables que funcionan como entrada al proceso de 32 tomada en cuenta para el producto /
verificacin de codificacin son los siguientes: entregable inspeccionado?

TABLA V. LISTA DE VERIFICACIN DEL MDULO DE DISEO


Especificaciones de programas.
Respuesta Comenta Documentacin de programas.
# tem
rios
SI NO N/A
Listado de cdigo.
1
El equipo de aseguramiento de la calidad
tiene buenos conocimientos acerca del
Programas ejecutables.
proceso de diseo? Diagramas de flujo de los programas.
Si se han utilizado herramientas
2
automatizadas en la creacin del diseo, las Instrucciones para el operador.
conocen los miembros del equipo de
aseguramiento de la calidad?
Han recibido los miembros del equipo de E.3. Proceso
aseguramiento de la calidad todos los
3
entregables de la fase necesarios para llevar En la figura 9 se detalla grficamente, el proceso a
a cabo las verificaciones correspondientes?
Los usuarios estn de acuerdo con que el desarrollar durante este mdulo:
4
diseo representa la realidad?
El equipo de proyecto cree que el diseo
5
representa la realidad?
Han identificado los miembros del equipo de
aseguramiento de la calidad los factores de
6
xito, tanto positivos como negativos, que
pudieran afectar el xito del diseo?
Han utilizado los miembros del equipo de
aseguramiento de la calidad, tales factores
7
en la puntuacin de las probabilidades de
xito?
Entienden los miembros del equipo de
8 aseguramiento de la calidad los factores
relacionados con el diseo?
Han analizado los miembros del equipo de
aseguramiento de la calidad los factores de
9
test del diseo para evaluar el potencial
impacto sobre el xito del mismo?
Ha sido instruido el equipo de Revisin
10 acerca de lo que representa el xito del
Diseo?
La Gerencia apoya el uso del proceso de
11
revisin del diseo?
El proceso de revisin del diseo fue
12
conducido en un momento apropiado?
Son razonables los tems identificados en el
13
proceso de revisin del diseo?
Estn de acuerdo los miembros del equipo
14 de aseguramiento de la calidad que los tems
identificados necesitan ser verificados?
La Gerencia apoya la ejecucin de
15
inspecciones en el proyecto?
Se ha provisto del tiempo suficiente en el
16 cronograma del proyecto para realizar
Fig. 9. Proceso del mdulo de codificacin
inspecciones?
Han sido instruidos los responsables del
17 proyecto acerca de la importancia de la
participacin en las inspecciones?
E.3.1. Depuracin de Programas
La Gerencia ve las inspecciones como una
parte integral del proceso, en lugar de
Se utilizan tres metodologas para la deteccin y
18
tomarlo como una auditora al desempeo de eliminacin de los errores en la codificacin:
los participantes?
19
Han sido planificados los procesos de Depuracin de errores sintcticos.
Inspeccin?
20
Han sido identificados los inspectores y Depuracin de errores estructurales.
asignado sus roles especficos?
21
Han sido entrenados los inspectores para Depuracin de errores funcionales.
cumplir con su rol?
Se les ha dado a los inspectores los El detalle de cada una de ellas est en el captulo de
22 materiales necesarios para cumplir con la
inspeccin?
Tcnicas y Herramientas.
Se les ha dado a los inspectores tiempo
adecuado para realizar las tareas habituales
23
que le permitirn cumplir con la preparacin
y la reunin para el proceso de inspeccin?
Se han preparado adecuadamente los
24
inspectores para la inspeccin?

180 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
E.3.2. Anlisis de Factores de Codificacin Cantidad de defectos
Eficiencia en la removidos
A continuacin, se detallan los factores a analizar. El remocin de defectos:
detalle de cada uno de ellos est en el captulo de Tcnicas y Cantidad total de defectos
Herramientas:
Implementacin del control de integridad de informacin. Tasa de efectividad de Cantidad de tems cubiertos
Implementacin de reglas de autorizacin. la verificacin: Cantidad total de tems
Implementacin de control de integridad de archivos.
Implementacin de auditoras de rastreo. E.7. Involucrados
Plan de contingencia escrito.
E.7.1. Equipo de Ingeniera
Consecucin del nivel de servicio deseado para el sistema.
Gerente de proyecto.
Implementacin de procedimientos de seguridad.
Grupo de programacin.
Cumplimiento del programa con la metodologa a adoptar.
Programa acorde al diseo (Correctitud). E.7.2 Equipo de Aseguramiento de la Calidad del Software
Programa acorde al diseo (Facilidad de uso). Lder de Aseguramiento de la Calidad del Software
Mantenimiento del programa. Analistas de aseguramiento de la calidad del software Senior
Programa acorde al diseo (Portabilidad). y/o Semi-senior.
Programa acorde al diseo (Acoplamiento).
Desarrollo de procedimientos operativos.
F. Verificacin del Sistema
Criterio de ejecucin del programa (Performance).
F.1. Objetivo
E.3.3. Conduccin de Revisiones de Pares
El objetivo es determinar si el software funcionar
Se utiliza la revisin por pares, para evaluar la estructura y correctamente cuando se ejecute. Para ello:
funcionalidad del programa. La revisin por pares detecta
Se verificar que se haya probado la ejecucin del software
errores sintcticos, ms por observacin personal que por el
en un ambiente separado (test), siendo aproximadamente el
resultado directo del Walktrough.
mismo entorno operacional en que ser ejecutado luego
E.4. Salidas (produccin).
Dos son las salidas de este proceso Las pruebas sern verificadas, una vez terminada su
La eliminacin de todos los errores de codificacin utilizando ejecucin y aprobacin interna.
pruebas estticas. Cualquier desviacin de los resultados esperados ser
Listado de errores encontrados. reportada.
Dependiendo de la severidad y naturaleza de dichos
E.5. Lista de Verificacin (Checklist) problemas, podran llegar a realizarse solicitudes de cambios al
En la tabla VI se presenta la lista de verificacin: sistema antes de su puesta en produccin.

TABLA VI. LISTA DE VERIFICACIN DEL MDULO DE CODIFICACIN F.2. Entradas


Planes de pruebas:
Respuesta Comen
# tem
tarios Pruebas en lnea (On-Line)
SI NO N/A
Es considerada una responsabilidad del programador la
Pruebas por lotes (Batch)
1
verificacin y la validacin de los programas?
El programador entiende la diferencia entre testing esttico y
Pruebas de interfaces.
2
dinmico?
El programa podra ser sometido a testing esttico como
Pruebas de regresin.
3
medio primario para remover defectos? Pruebas de integracin.
El programador entiende el proceso que generar el cdigo
4
del programa? Pruebas de stress.
5 El programador entiende y usa la tcnica de debugging?
6
El programador entiende los conceptos implicados, y los Datos de prueba.
tendr presentes en la verificacin de la programacin?
7
El programador es verificado usando revisin por pares o Resultados de las pruebas.
inspeccin de cdigo?
El programa ser sometido a un test completo antes de
8
ingresar a un nivel superior de test? F.3. Proceso
Todos los defectos no cubiertos estn registrados en
9
detalle? En la figura 10 se detalla grficamente, el proceso a
10
Todos los defectos no cubiertos fueron corregidos antes de desarrollar durante este mdulo:
ingresar al siguiente nivel de verificacin?

E.6. Mtricas
Densidad de defectos Cantidad de defectos
por componente: Tamao del componente

Cantidad de defectos
Eficiencia en la detectados
deteccin de defectos:
Cantidad total de defectos

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 181
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Verificar y corregir.
Prueba de volumen
El objetivo de dicha prueba es verificar que el sistema
pueda realizar adecuadamente las transacciones cuando sus
programas internos o sus lmites se vean excedidos. Estas
pruebas suelen involucrar grandes volmenes de datos. Los
pasos que se recomiendan para esta prueba son:
Identificar las entradas del sistema.
Identificar las salidas del sistema.
Llevar cada dato a su mxima expresin tratando de
sobrepasar sus lmites.
Documentar las limitaciones.
Realizar la prueba de volumen.
Creacin de casos de prueba
Determinar el nivel de la prueba: Unitaria,
concurrencia, integracin, regresin o stress.
Desarrollar los casos de prueba: Un caso de prueba,
son todos los pasos que deben seguirse en el sistema
para probar dicho caso.
Ejecutar los casos de prueba: Usar el sistema con los
casos desarrollados en el punto anterior.
Fig. 10. Proceso del mdulo de verificacin Analizar los resultados.
Mantener los casos de prueba.
F.3.1. Verificar la Construccin de Datos / Scripts de
Prueba F.3.2. Verificar la Ejecucin de la Prueba
El concepto de construccin de datos de prueba es, Para lograr una prueba efectiva, se debe usar un plan de
simplemente, la creacin de un proceso representativo de la pruebas creado previamente. Esta etapa es la culminacin de un
realidad usando transacciones ficticias. De dichos datos, se trabajo previo preparado para esta fase. Si esto no ocurre, la
tomar una muestra representativa para llevar a cabo una prueba podra resultar poco efectiva y antieconmica.
verificacin de los mismos. La correcta seleccin de dicha Durante esta fase, el equipo de aseguramiento de la calidad,
muestra es la clave para el xito de esta tarea. Dentro de esta llevar a cabo tanto la verificacin de los planes de prueba,
tarea debe abarcarse la verificacin de los siguientes: como la verificacin de la ejecucin de los mismos. Todo esto
Diseo de archivos de prueba se realizar, tomando muestras representativas de los planes y
Estos archivos deben involucrar transacciones normales, sus respectivas ejecuciones.
transacciones con datos invlidos, y transacciones que Se verificar tambin, que los siguientes tipos de prueba
puedan hacer incurrir al sistema en alguna situacin de hayan sido llevados a cabo por el equipo de proyecto durante
excepcin. esta fase:
Ingreso de los datos de prueba Prueba manual, de regresin y funcional
Despus que las transacciones de prueba estn definidas, se La prueba manual asegura que las personas que interacten
deben introducir en el sistema todos los datos necesarios con el sistema van a poder realizar las operaciones
para que las mismas puedan ser procesadas. propuestas; la prueba de regresin es la verificacin de que
Anlisis de los resultados esperados lo que se est instalando no afecta a lo que ya estaba
instalado; y la prueba funcional apunta a que los
Antes de procesar alguna transaccin, el equipo de proyecto
requerimientos del sistema puedan ser ejecutados
debe establecer el resultado esperado para cada transaccin
correctamente en diversas circunstancias.
a probar para poder compararla con el obtenido luego de
realizada la misma. Prueba de autorizacin
Prueba de transacciones En esta prueba deben verificarse las reglas de
autorizaciones (permisos) para ejecutar las distintas
Para la prueba mencionada se recomiendan los siguientes 9
transacciones de la aplicacin.
pasos:
Prueba de integridad
Identificar los recursos de prueba.
Debe ser verificada durante la prueba, los controles sobre la
Identificar las condiciones de prueba.
integridad de los archivos de datos.
Priorizar las condiciones.
Prueba de pistas de auditoria
Seleccionar las condiciones.
La funcin de pistas de auditoria, debe ser probada para
Determinar los resultados esperados. asegurarse que para cualquier transaccin, pueda
Crear transacciones de prueba. realizrsele un seguimiento desde su inicio hasta su fin,
Documentar las condiciones de prueba. para lograr una correcta reconstruccin de la misma cuando
Ejecutar la prueba sea necesario.

182 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Prueba de recuperacin ningn tipo de instrucciones a los usuarios, para que pueda
Si el procesamiento debe continuar aunque el sistema no reproducirse el normal desarrollo de las transacciones, tal
est operativo, puede llegar a tener que provocarse fallas como sera en el ambiente de produccin.
intencionales en el sistema, para poder realizarse la prueba
F.3.3. Verificar el Registro de los Resultados de la Prueba
de continuidad, la cual implica lo antedicho.
Prueba de stress Ya que documentar un problema, es el primer paso para la
correccin del mismo, es necesario llevar adelante una
Es la prueba que asegura y cuantifica el nivel de servicio verificacin del registro de los resultados de la prueba. Esto se
del sistema ante grandes volmenes de datos.
llevar a cabo, tomando muestras representativas de tales
Prueba de seguridad resultados, para su anlisis posterior.
En esta prueba lo que se intenta es violar todos los aspectos Se verificar que estn descriptos al menos, los siguientes
de seguridad del sistema queriendo obtener como resultado aspectos, para todos los problemas encontrados en las pruebas:
que ninguno de estos falle.
Declaracin del problema: Establecer cul es el problema.
Prueba acorde a la metodologa
Criterio: Establecer cmo debera comportarse el sistema.
Todo tipo de prueba, deber ser llevado a cabo de acuerdo a
Efecto: Es la diferencia entre el problema y el
las polticas, estndares y procedimientos establecidos en la comportamiento esperado.
metodologa de la organizacin. Esta ltima debera
especificar el plan de prueba requerido para cada tipo de Causa: Qu puede haber causado el problema?.
prueba, las tcnicas y herramientas de prueba Para lograr una buena documentacin de los problemas, es
recomendadas, as como el tipo de documentacin aconsejable seguir estos tres pasos:
requerida a lo largo de la prueba misma. La metodologa Documentar el desvo: Esencialmente el usuario compara lo
debera especificar el modo de determinar cundo una que es con lo que debera ser, y cuando es identificada una
prueba fue exitosa o no. desviacin en este sentido, corresponde comenzar a
Prueba funcional desarrollar la declaracin del problema.
Esta prueba verifica el correcto cumplimiento de los Documentar el/ los efecto/s: Aqu debe evaluarse lo que el
requerimientos del usuario. problema significa para el sistema. La atencin que se le dar
al mismo, estar directamente relacionada con lo declarado
en el/ los efecto/s.
Prueba de operacin
Documentar la o las causas: La o las causas son la o las
El xito de esta etapa depender fuertemente de la habilidad
razones subyacentes para la condicin. En algunos casos la
de las personas que utilicen el sistema, adems es causa puede ser obvia a travs de los hechos. Pero en otros,
importante que esta prueba se haga en un ambiente lo ms puede ser necesaria una investigacin para encontrarla.
parecido posible al de produccin.
Inspecciones F.4. Salidas
En esta prueba lo que se hace es evaluar el cdigo del Muestra de planes de prueba verificados.
sistema para verificar ciertas reglas que lo harn fcil de Muestra de transacciones de prueba verificadas.
mantener ante supuestas modificaciones. Dichas reglas, Muestra de resultados de la ejecucin de dichas transacciones
debern estar explicadas dentro de los estndares de la verificados.
organizacin.
Desvo de los resultados esperados documentados.
Prueba de desastre
En esta prueba lo que se hace es provocar problemas en el F.5. Lista de Verificacin (Checklist)
ambiente real de la aplicacin ya que es la nica manera de En la tabla VII se presenta la lista de verificacin:
ver realmente cmo se comporta el sistema ante situaciones
inesperadas. TABLA VII. LISTA DE VERIFICACIN DEL MDULO DE VERIFICACIN
Prueba funcional y de regresin
Respuesta Comentarios
# tem
Esta fase de la prueba debe verificar la comunicacin con
SI NO N/A
los sistemas relacionados. Donde, la prueba funcional Todos los pasos fueron realizados como se
1
verifica la interconexin de la nueva funcionalidad, y la especificaron?
Si los pasos no fueron realizados como se especificaron.
prueba de regresin verifica la continuidad del 2 Se afectaron recursos adicionales para resolver
defectos durante la etapa de ejecucin?
funcionamiento del resto de los subsistemas asociados Se estableci un ambiente de prueba apropiado para
3
preexistentes. realizar la prueba del software?
Se entren analistas de calidad en las herramientas de
4
Prueba de performance verificacin que sern utilizadas durante esta etapa?
5 Se fij un tiempo adecuado para esta etapa?
Los criterios de performance son establecidos durante la 6 Se fijaron los recursos adecuados para esta etapa?
fase de requerimientos e intentan ser medidos en la fase de 7
Los mtodos para crear datos de prueba son
apropiados para el sistema?
verificacin. De no poder realizarse porque el ambiente 8
Fueron creados los datos de prueba necesarios para
probar adecuadamente el software?
necesario para llevarla a cabo sera muy costoso, se dejar Fueron programadas todas las tcnicas de verificacin
para ser medido en produccin. 9 indicadas en el plan de prueba para ser ejecutadas
durante este paso? (Ej. Prueba de regresin)
Prueba de facilidad de operacin 10
Fueron determinados los resultados esperados de las
pruebas?
Esta prueba generalmente es realizada por el equipo de 11
Se ha establecido el proceso por el cual se determina
el desvo entre los resultados esperados y los actuales?
Operaciones que tratar normalmente con el sistema y se Se han documentado los resultados esperados y los
12
intenta que el personal del grupo de proyecto no provea actuales cuando existe una diferencia entre ellos?

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 183
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Respuesta Comentarios
G.2. Entradas
# tem
SI NO N/A
Las entradas dependen del alcance asignado a la validacin
13
Se determin el potencial impacto de una desviacin? del sistema (prueba de aceptacin). Estas suelen ser:
(Ej. Problema en la verificacin)
14
Se ha establecido un procedimiento para asegurar las Software probado: Una vez realizada la verificacin de las
acciones / resolucin apropiada de los defectos?
piezas de software se comienza con la prueba de aceptacin.
F.6. Mtricas Plan de Prueba de Aceptacin:
Eficiencia en la Cantidad de defectos detectados Pruebas en Lnea (On-Line).
deteccin de defectos: hasta verificacin Pruebas por Lotes (Batch).
Cantidad total de defectos hasta Pruebas de Interfaces.
verificacin Pruebas de Integracin.
Pruebas de stress.
Eficiencia en la Cantidad de defectos removidos
Pruebas de conectividad.
remocin de defectos: hasta verificacin
Cantidad total de defectos hasta Pruebas de servidores.
verificacin Lista de defectos no resueltos: Quizs no sea prudente
esperar hasta que todos los defectos reportados sean
Tasa de efectividad de Cantidad de tems corregidos antes de empezar las pruebas de aceptacin. En
la verificacin: cubiertos este caso, los encargados de efectuar las pruebas de
Cantidad total de tems aceptacin reciben una lista no resuelta de defectos, la cual
les permitir conocer los procesos incorrectos y as enfocar la
Antigedad media de Total de antigedad de defectos atencin en los criterios principales de aceptacin antes de la
defectos pendientes: pendientes al fin de un perodo prueba.
Cantidad total de defectos G.3. Proceso
pendientes al fin de un perodo
En la figura 11 se detalla grficamente, el proceso a
desarrollar durante este mdulo.
Antigedad media de Total de antigedad de defectos
defectos cerrados: cerrados al fin de un perodo G.3.1. Verificar los Criterios de Aceptacin Definidos
Cantidad total de defectos El usuario deber definir el o los criterios que el software
cerrados al fin de un perodo deber cumplir para ser aceptado.
F.7. Involucrados

F.7.1. Equipo de Ingeniera


Gerente de proyecto.
Representante del grupo de anlisis de requerimientos.
Representante del grupo de anlisis funcional.
Representante del grupo de diseo.
Representante del grupo de analistas desarrolladores.
Grupo de testeo.
F.7.2. Equipo de Aseguramiento de la Calidad del Software
Lder de Aseguramiento de la Calidad del Software
Analistas de aseguramiento de la calidad del software Senior
y/o Semi-senior.
G. Validacin del Sistema

G.1. Objetivo
Describir los procedimientos para identificar los criterios de
aceptacin para el ciclo de vida de los productos y para
validarlos. La aceptacin final no solo tiene en cuenta que el
producto de software resuelva adecuadamente los
requerimientos de los usuarios, sino tambin, reconocer que el
proceso de desarrollo fue adecuado. Como parte del proceso de Fig. 11. Proceso del mdulo de validacin
ciclo de vida, la aceptacin del software permite:
Los requerimientos de aceptacin que el sistema debe
Deteccin temprana de los problemas del software. cumplir, pueden ser divididos en las siguientes cuatro
Preparacin apropiada de los medios para realizar la prueba. categoras:
Consideracin temprana de las necesidades del usuario Requerimientos Funcionales: Referido a las reglas de negocio
durante el desarrollo del software. que el sistema debe ejecutar.

184 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Requerimientos de Performance: Referido a los tiempos y Contenido Descripcin
recursos de operacin.
Uso normal esperado.
Requerimientos de Interfaz: Referido a la relacin humano /
Potenciales usos indebidos.
mquina, mquina / mdulo. Riesgos.
Requerimientos globales de Calidad del Software: Referidos Restricciones.
a la obtencin de los lmites para los factores o los atributos Estndares y Normas.
tales como la fiabilidad, comprobabilidad, exactitud, y Responsabilidades Organizacin y responsabilidades para las actividades de
usabilidad. del usuario aceptacin del sistema.
Estos criterios deberan estar enunciados y documentados Recursos y cronograma de requerimientos.
Requerimientos del recurso.
durante la fase de requerimientos, para ser refinados y
Requerimientos para soporte automatizado, datos
detallados en las fases siguientes. Se proceder a solicitar la especiales, y entrenamiento.
recopilacin de estos requerimientos, luego el equipo de Normas, estndares y convenciones.
aseguramiento de la calidad, proceder a verificarlos. Actualizacin y revisin de los planes de aceptacin.
Se debera determinar con el usuario, el grado de criticidad Procedimientos Informes de anomalas.
de los requerimientos para los tems cuyas categoras se administrativos Control de cambios.
presentan en la tabla VIII. Resguardo de informacin.
Descripcin de Objetivos para el proyecto.
G.3.2. Verificar el Desarrollo del Plan de Aceptacin aceptacin Resumen de criterios de aceptacin.
El primer paso para completar la aceptacin del software es Principales actividades de aceptacin y revisiones.
el desarrollo simultneo de un plan de aceptacin, un plan de Requerimientos de informacin.
Tipos de decisiones de aceptacin.
proyecto y de los requerimientos del software que aseguran que Responsabilidad de las decisiones de aceptacin.
las necesidades del usuario estn representadas correcta y
completamente. Este desarrollo simultneo proveer una visin G.3.3. Verificar la Ejecucin del Plan de Aceptacin
general que asegurar que todo los recursos necesarios, estarn El objetivo de este paso es, verificar el cumplimiento de los
incluidos en el plan de proyecto. criterios de aceptacin, en el producto entregado. Esto se puede
En la tabla IX se detallan los puntos a verificar dentro de un llevar a cabo a travs de revisiones, que involucran verificar
plan de aceptacin tpico. productos provisorios y entregables desarrollados parcialmente,
a lo largo del proceso de desarrollo.
TABLA VIII. TEMS DE REQUERIMIENTOS PARA DETERMINAR SU
CRITICIDAD El criterio de aceptacin del sistema, debera estar
especificado formalmente en el plan del proyecto. El plan
Categora tems identifica los productos a ser verificados, el criterio especfico
Funcionalidad Consistencia interna de documentos, cdigo, y entre de aprobacin/rechazo, las revisiones, y los tipos de
las fases. verificacin que se harn durante el ciclo de vida completo.
Trazabilidad (posibilidad de seguimiento) de la Las decisiones de aceptacin necesitan una estructura sobre
funcionalidad.
la cual operar, algunos componentes son: contratos, criterios de
Verificacin adecuada de la lgica.
aceptacin y mecanismos formales. La aceptacin del software
Preservacin de funcionalidad en el ambiente
productivo. deber referirse a un criterio especfico que los productos
Performance Anlisis de factibilidad de requerimientos de deben tener para ser aceptados. El principal medio para
performance. alcanzar la aceptacin en el desarrollo de los sistemas de
Herramientas de simulacin. software, es mantener una revisin peridica de la
Anlisis de desempeo en el ambiente productivo. documentacin y productos de software.
Interfaz Documentacin de la interfaz. Cuando la decisin de aceptacin requiere cambios, se hace
Complejidad de la interfaz. necesaria otra revisin para asegurarse de que los cambios
Planes de prueba e integracin de la interfaz.
solicitados hayan sido configurados e implementados en forma
Ergonoma de la interfaz.
Prueba de la interfaz en el ambiente productivo. correcta, y que el efecto en cualquier otra parte sea aceptable.
Calidad global del Cuantificacin de medidas de calidad. Las actividades de aceptacin, pueden incluir la
software Criterios para la aceptacin de los productos de verificacin de las piezas de software. La verificacin de
software. aceptacin del software, se vuelve formal, cuando durante el
Suficiencia de documentacin y normas de desarrollo ciclo de vida del desarrollo, el usuario acepta o rechaza el
de sistemas.
mismo. Esto es como un requerimiento contractual entre el
Criterios de Calidad para la Prueba Operacional.
usuario y el equipo del proyecto. El rechazo, generalmente,
TABLA IX. PUNTOS A VERIFICAR DENTRO DE UN PLAN DE ACEPTACIN significa que se deber realizar un trabajo adicional en el
TPICO sistema a fin de hacerlo aceptable para el usuario. La prueba de
aceptacin final, es la ltima oportunidad que tiene el usuario
Contenido Descripcin
para examinar la funcionalidad, interfaz, performance y
Descripcin del Tipo de sistema. aspectos de calidad antes de la revisin final de aceptacin. En
proyecto Ciclo de vida definido por la metodologa de la ese momento, el sistema deber incluir el software a entregar,
organizacin. toda la documentacin de usuario y las versiones finales de
Usuarios del sistema. otros entregables del sistema.
Principales tareas que debe satisfacer el sistema.
Principales interfaces externas del sistema.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 185
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
G.3.4. Revisar la Decisin de Aceptacin G.6. Mtricas
La aceptacin de un sistema generalmente significa que el Cantidad de defectos detectados
proyecto se ha completado, con la excepcin de alguna hasta validacin
Eficiencia en la
contingencia. Cantidad total de defectos hasta
deteccin de defectos:
Las decisiones de aceptacin pueden involucrar alguna de validacin
las siguientes situaciones:
Los cambios solicitados son aceptados antes de pasar a Eficiencia en la Cantidad de defectos removidos
desarrollar la prxima actividad. remocin de defectos: hasta validacin
Algunos cambios, deben ser aceptados y llevados a cabo Cantidad total de defectos hasta
antes de continuar con el desarrollo del producto, y otros, validacin
pueden ser postergados hasta la prxima revisin del
producto. Tasa de efectividad de Cantidad de tems cubiertos
la verificacin: Cantidad total de tems
El desarrollo puede continuar y los cambios podrn ser
aceptados en la prxima revisin.
Estabilidad de las Cantidad de criterios iniciales
No hay cambios solicitados y el desarrollo puede continuar.
criterios de aceptacin: Cantidad total de criterios
Cada una de estas situaciones, ser verificada por el equipo
de aseguramiento de la calidad, teniendo en cuenta los defectos
Estabilidad de la Cantidad de cambios durante la
no resueltos, el cronograma del proyecto, el estado actual del
aceptacin: aceptacin
mismo, los recursos involucrados, etc.
Cantidad total de cambios
G.4. Salidas G.7. Involucrados
Informe de la decisin de Aceptacin.
G.7.1. Equipo de Ingeniera
G.5. Lista de Verificacin (Checklist)
Gerente de proyecto.
En la tabla X se presenta la lista de verificacin. Representante del grupo de anlisis de requerimientos.
Representante del grupo de anlisis funcional.
TABLA X. LISTA DE VERIFICACIN DEL MDULO DE VALIDACIN Representante del grupo de diseo.
Representante del grupo de analistas desarrolladores.
Respuesta
# tem Comentarios Grupo de testeo.
Se incorpor la prueba de aceptacin al plan general de
SI NO N/A
Usuario final.
1
pruebas?
La prueba de aceptacin est enfocada como un G.7.2. Equipo de Aseguramiento de la Calidad del Software
2 proceso del proyecto en lugar de un paso aislado al final
del testing? Lder de Aseguramiento de la Calidad del Software
Fueron seleccionados los usuarios correctos para
3 determinar los criterios de aceptacin para el software y/o Analistas de aseguramiento de la calidad del software Senior
componentes de hardware?
El grupo que define los criterios de aceptacin, es y/o Semi-senior.
4
representativo de los usos del sistema a ser probado?
Esos individuos aceptan la responsabilidad de identificar
5
los criterios de aceptacin?
H. Instalacin
Los criterios de aceptacin fueron identificados
6 tempranamente como para lograr influir en el planteo e
implementacin de la solucin?
H.1. Objetivo
7 Se ha desarrollado y escrito el plan de aceptacin?
El plan de aceptacin es consistente con los criterios de
Realizar una verificacin completa de la fase de instalacin
8
aceptacin? para nuevos sistemas y/o cambio de versiones. La verificacin,
Se estn verificando los productos intermedios por parte
9 de los testeadores, antes de ser utilizados para la incluye, para cada criterio de instalacin identificado, una
siguiente tarea de implementacin? evaluacin recomendada y las tcnicas y herramientas
Se han seleccionado las tcnicas de prueba apropiadas
10
para el test de aceptacin? sugeridas para llevarla a cabo.
Los testeadores tienen el nivel de conocimiento
11
necesario para realizar dicha tarea?
Se afectaron los recursos necesarios para la realizacin H.2. Entradas
12
de la prueba de aceptacin?
Se destin el tiempo necesario para la realizacin de la Plan de instalacin.
13
prueba de aceptacin?
Se han publicado las opiniones internas de la prueba de
Diagrama de flujo de la Instalacin.
14
aceptacin?
Fue buena la reaccin del equipo del proyecto en lo que
Documentos y listados de instalacin (slo si es requerida
15
concierne a los testeadores en la prueba de aceptacin? una instalacin especial).
Se ha tomado la decisin final de aceptacin del
16
sistema? Resultados de la verificacin de instalaciones especiales.
17 Se han identificado los criterios de aceptacin crticos?
Los requerimientos fueron escritos con el detalle Documentacin de pasaje del sistema a produccin.
18 suficiente, de forma tal de poder obtener a partir de ellos
las interfaces? Instrucciones para los nuevos operadores.
Estn los responsables de cada interfaz, descritos en el
19
diagrama? Instrucciones y procedimientos para los nuevos usuarios.
Se ha definido un caso de prueba para cada uno de los
20
lmites que posee el sistema?
Resultado del proceso de instalacin.
Los usuarios del sistema estn de acuerdo con los
21
casos definidos? Los consideran completos? H.3. Proceso
Se definieron tanto las condiciones normales como las
22
fallidas a probar? En la figura 12 se detalla grficamente, el proceso a
Los usuarios estn de acuerdo con que los casos de
23
prueba cubren todos los probables escenarios? desarrollar durante este mdulo:

186 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
H.3.2. Verificacin de la Instalacin de Cambios de Software
El objetivo principal es instalar el cambio requerido en el
tiempo adecuado. A continuacin se detallan los objetivos
especficos de la instalacin de cambios:
Poner a la aplicacin modificada en produccin.
Evaluar la eficiencia de los cambios.
Monitorear la exactitud de los cambios.
Mantener actualizadas con las ltimas versiones disponibles,
los ambientes de prueba y produccin.
Son tres las sub-tareas a verificar en la instalacin de
cambios de software.
a) Verificar si es adecuado el plan de recuperacin ante fallas
Existen varios aspectos de los cambios que impactan en el
proceso de recuperacin ante fallas:
Agregado de una nueva funcin.
Cambio en un JCL (Job Control Language).
Uso adicional de programas utilitarios.
Cambios en perodos de resguardo.
Fig. 12. Proceso del mdulo de instalacin Cambios en los programas.
Introduccin de un formulario nuevo o revisado.
H.3.1. Verificacin de la Instalacin de Nuevo Software Los analistas de calidad deben evaluar el impacto en el
La fase de instalacin posee dos dificultades para el plan de recuperacin, cambio por cambio. Si determinan que el
equipo de aseguramiento de la calidad. La primera es que la cambio afecta a la recuperacin, se debe actualizar el plan.
instalacin es un proceso separado del resto del desarrollo de la b) Verificar que el cambio correcto, fue puesto en produccin
aplicacin. Estas funciones no estn relacionadas con las
necesidades del usuario, pero s con las de instalar en El pasaje de la modificacin, desde del ambiente de
produccin una aplicacin completa y verificada. La segunda prueba a produccin lo debe hacer el dueo del software,
dificultad es que la instalacin ocurre en un lapso de tiempo previa aprobacin del usuario.
muy corto. Es comn que la instalacin dure unas horas. Por lo El ambiente de produccin debera ser capaz de controlar
tanto la verificacin debe ser bien planeada y ejecutada. los programas de acuerdo con la fecha de puesta en
Es importante que los resultados de la verificacin estn produccin. Cada versin del programa en produccin debera
disponibles antes de la instalacin completa del sistema. El ser identificada (etiquetada) de acuerdo a si entra o sale de
objetivo de la verificacin es determinar si la instalacin fue produccin. Debe estar disponible para cada programa un
exitosa, por lo tanto los resultados deben estar disponibles lo historial de los cambios, y as poder proveer pistas de auditora.
antes posible. Esto significa que los resultados a obtener de la Para verificar que se introdujo el cambio correcto en
verificacin deben estar explicitados antes de que la produccin se verificar lo siguiente:
verificacin comience. Los 15 factores a tener en cuenta en la Que los cambios en los programas hayan sido documentados:
verificacin de la instalacin son: El objetivo es contar con un historial, para proveer pistas de
Integridad y exactitud de la instalacin. auditora que indiquen cundo se ha realizado un cambio y
Prohibicin de modificacin de datos durante la instalacin. por otro impedir cambios no autorizados.
Integridad de archivos de produccin. Que se cuente con un procedimiento para pasajes de
versiones del ambiente de prueba al ambiente de produccin.
Registro de pistas de auditora de instalacin.
El dueo del software decide cundo una versin va a ser
Integridad del sistema/versin anterior asegurado pasada a produccin. Esta aprobacin da la orden a
(continuidad de procesamiento). operaciones para dar aviso que el cambio va a ser instalado.
Recuperacin ante fallas de la instalacin. Que el procedimiento citado en el punto anterior se cumpla
Control de acceso durante la instalacin.
Instalacin acorde a la metodologa. c) Verificar que las versiones innecesarias hayan sido
Instalacin en produccin de los programas indicados en la eliminadas
fecha asignada. Los programas con versiones innecesarias (viejas) deben
Puesta a disposicin de instrucciones de instalacin. ser borrados. Esto solo puede hacerse con el debido nivel de
autorizacin. Se debe elaborar un formulario que autorice la
Documentacin completa (Mantenibilidad).
eliminacin de las versiones antiguas. Este formulario lo debe
Documentacin completa (Portabilidad). completar el Gerente del proyecto de mantenimiento de
Interfaces. software y enviarlo al departamento de operaciones.
Monitoreo de la performance. El departamento de Operaciones debe tener un proceso
Procedimientos operativos. para eliminar versiones innecesarias, despus de recibir la
debida autorizacin.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 187
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
H.3.3. Seguimiento en Produccin Grupo de operaciones.
Los sistemas aplicativos son propensos a tener problemas H.7.2. Equipo de Aseguramiento de la Calidad del Software
inmediatamente despus de introducir una nueva versin. Por
eso es necesario monitorear las salidas del aplicativo, una vez Lder de Aseguramiento de la Calidad del Software
instalada la nueva versin en produccin.
El personal asignado al mantenimiento de software y el TABLA XI. LISTA DE VERIFICACIN DEL MDULO DE INSTALACIN
usuario debern proveer pistas, acerca de dnde ellos creen que
Respuesta
podran ocurrir problemas. El tipo de indicios incluye: # tem Comentarios

Investigacin de transacciones. SI NO N/A


Cada cambio es revisado para cada impacto sobre el plan de
Clientes. 1 reinicio/recuperacin?
Si el cambio impacta a la recuperacin, es calculado nuevamente el
Reportes. 2 tiempo de no servicio?
Archivos. 3
Si el cambio impacta a la recuperacin, es estimado nuevamente el
riesgo del tiempo de no servicio?
Performance. Los cambios necesarios para el proceso de recuperacin son
4 documentados?
Estos indicios deben ser documentados mediante el uso de La notificacin de los cambios de la versin de produccin fueron
5 documentados?
un formulario.
Los cambios de los sistemas de aplicacin de control de cambio de
6 aplicacin son controlados por una numeracin?
H.3.4. Documentar los Problemas Existen procedimientos para eliminar versiones antiguas de las
7 bibliotecas de objetos?
Los problemas detectados durante el monitoreo de los Existen solicitudes de eliminacin para que produccin sea autorizado
cambios, deben ser documentados. Adems se debe evaluar el 8 para eliminar programas?
Estn establecidos procedimientos para asegurar que la versin de los
riesgo asociado a ese problema. 9 programas sea pasada al ambiente de produccin en la fecha correcta?
El reporte de un problema causado por un cambio en el 10
Si esto afecta a procedimientos de operacin, Estn notificados los
operadores del da en que la nueva versin se pase a produccin?
sistema, permite asociar tal problema a lo especfico del Estn establecidos los procedimientos para monitorear los cambios de
11 los sistemas de aplicacin?
cambio. Este reporte debe ser enviado al analista de Las personas que monitorean reciben notificacin de que el sistema de
mantenimiento de software para su anlisis y posterior 12 aplicacin fue cambiado?
correccin. 13
Las personas que monitorean los cambios reciben indicios de las reas
consideradas impactadas por el probable problema?
Las personas que monitorean el cambio del sistema de aplicacin
H.4. Salidas 14 reciben una gua de que acciones tomar si el problema ocurre?
Los problemas detectados, inmediatamente despus de que el cambio
Reporte de recuperacin ante fallas. del sistema ocurri, son documentados en un formulario especial para
15 poder vincularlos a un cambio en particular?
Reporte de historia de cambios al software. Se solicita, a las personas que documentan problemas, que documenten
16 el impacto a nivel organizacional que puede implicar el problema?
Reporte de puestas en produccin. La informacin acerca de la instalacin de cambios de software es
Reporte de autorizacin de eliminacin de versiones 17 recopilada y documentada?
El servicio de la direccin realiza revisiones y utiliza la retroalimentacin
innecesarias. 18 de los datos?

Reporte de notificacin de monitoreo de cambios de 19


El servicio de la direccin peridicamente revisa la efectividad de la
instalacin de cambios de software?
software.
Reporte de problemas causados por cambios de Software.
Analistas de aseguramiento de la calidad del software Senior
H.5. Lista de Verificacin (Checklist) y/o Semi-senior.
En la tabla XI se presenta la lista de verificacin. I. Metodologa, Estndares y Procedimientos
H.6. Mtricas I.1. Objetivo
Cantidad de defectos detectados La verificacin de productos, deber ajustarse a la
hasta instalacin organizacin. Esto incluye ajustar el vocabulario y los trminos
Eficiencia en la
Cantidad total de defectos hasta utilizados en la verificacin para que sean los mismos que los
deteccin de defectos:
instalacin utilizados en la organizacin para describir los componentes
del sistema, documentos y productos.
Eficiencia en la Cantidad de defectos removidos
remocin de defectos: hasta instalacin I.2 Entradas
Cantidad total de defectos hasta Metodologa de desarrollo de la organizacin.
instalacin Estndares de la organizacin.
Procedimientos de la organizacin.
Tasa de efectividad de Cantidad de tems cubiertos
la verificacin: Productos que ingresan a cada una de las fases definidas en el
Cantidad total de tems
presente modelo.

H.7. Involucrados I.3 Proceso


En la figura 14 se detalla grficamente, el proceso a
H.7.1. Equipo de Ingeniera desarrollar durante este mdulo.
Gerente de proyecto.
Grupo de mantenimiento de software.
Grupo de instalacin de software.

188 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
I.3.1. Verificar el Cumplimiento de los Estndares de Formato.
Documentacin Secuencia de contenido.
La formalidad, extensin y nivel de detalle de la Ttulos de secciones/prrafos.
documentacin a preparar dependern de las prcticas de la Expansin de los prrafos.
organizacin y del tamao, complejidad y riesgo del proyecto.
Diagramas de flujo y tablas de decisin.
Formularios.
Es aconsejable llevar a cabo una o ms verificaciones de
adecuacin de la documentacin a los estndares de la
organizacin. Tales verificaciones requieren que una persona
capaz, no asociada al proyecto, haga una simulacin de cambio
al sistema basado en la documentacin actual y el
requerimiento de cambio (no deben cambiarse ni la
documentacin real ni los programas). Despus que la persona
haga el cambio, alguien familiarizado con el proyecto debe
evaluar si se ha hecho correctamente. Esta verificacin revelar
si:
La documentacin es entendible para las personas ajenas al
proyecto
Una persona ajena puede utilizar la documentacin para
hacer un cambio correctamente, y lo puede hacer de manera
eficiente y efectiva.
I.3.3. Verificar el grado de actualizacin de la
Documentacin
La documentacin que no est actualizada no ser til. Si
la metodologa de la organizacin ya establece algn mtodo
Fig. 13. Proceso del mdulo de metodologa, estndares y procedimientos para verificar el grado de actualizacin de la documentacin,
dicho mtodo ser usado por el grupo de verificacin durante la
Lo que es adecuado para un proyecto puede ser inadecuado misma. Caso contrario, se propone que el equipo de
para otro. Para verificar la documentacin, se proceder a verificacin de la documentacin utilice cualesquiera de las
comprobar si est completa, es adecuada y cumple con las siguientes cuatro tcnicas de verificacin (que se detallarn se
normas y estndares corporativos. detallan en el captulo de Tcnicas y Herramientas) para
Esta tarea intenta evaluar el apego a los procedimientos y validar la actualizacin de la documentacin:
estndares definidos por la metodologa de la organizacin, Utilizar la documentacin existente para llevar a cabo un
evaluando los criterios as establecidos y determinando si el cambio en la aplicacin
nivel y el alcance de la documentacin cumplen con lo Comparar el cdigo fuente de los programas con la
requerido. documentacin
En el caso que la metodologa de la organizacin, Verificar que la documentacin est vigente
establezca pautadamente la documentacin necesaria para cada Verificar la actualizacin de los documentos con el usuario
tipo de proyecto segn su criticidad, se proceder a verificar si final
la documentacin cumple con cada una de esas pautas.
Las anteriores tcnicas podrn aplicarse sobre los
I.3.2. Verificar la Integridad de la Documentacin documentos completos o sobre partes de los mismos o sobre
una muestra de la documentacin del proyecto.
Para evaluar la integridad de la documentacin, se usarn
los criterios definidos al respecto, en la metodologa de la I.4. Salidas
organizacin. El equipo de aseguramiento de la calidad de
Reporte de documentacin verificada
software deber determinar si cada documento cumple con
esos criterios. Si la documentacin no alcanza a cubrir un I.5 Lista de Verificacin (Checklist)
criterio, deber identificarse la deficiencia y documentarse.
En la tabla XII se presenta la lista de verificacin.
Otros criterios adicionales, que pueden ser utilizados para
evaluar la integridad de cada documento, son discutidos en el I.6. Mtricas
captulo de Tcnicas y Herramientas, nombrndose a Cantidad de documentacin
continuacin cada uno de ellos: vigente no actualizada
Contenido de la documentacin. Documentacin
Cantidad total de documentacin
vigente:
Usuarios del documento. vigente
Redundancia.
Flexibilidad. Revisin de Cantidad de documentos
documentos: revisados
Tamao del documento.
Cantidad de documentos a
Combinacin de diferentes tipos de documentos. revisar

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 189
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
I.7. Involucrados Verificar la efectividad del modelo de estimacin de costos.

I.7.1. Equipo de Ingeniera A.1.1. Validar el Modelo de Estimacin


Gerente de proyecto La organizacin necesita usar un modelo para realizar las
Responsables de elaboracin de documentos estimaciones. El objetivo de este punto es validar la sensatez
Grupo de Metodologa, Estndares y Procedimientos del modelo de estimacin. Esta verificacin deber desafiar el
modelo usando las siguientes 14 caractersticas deseables para
la estimacin de costos.
Estas caractersticas buscan determinar los puntos dbiles
TABLA XII. LISTA DE VERIFICACIN DEL MDULO DE METODOLOGA,
del modelo:
ESTNDARES Y PROCEDIMIENTOS
El alcance del modelo debe estar bien definido.
# tem
Respuesta
Comentarios El modelo debera ser ampliamente aplicado.
SI NO N/A El modelo debe ser fcil de usar.
1 Existen estndares para la documentacin del sistema?
El modelo debe ser capaz de usar informacin actual, cuando
Los miembros del equipo de prueba estn informados sobre las est disponible.
2 intenciones y contenidos de esos estndares?
Los estndares son adaptables a sistemas de varios tamaos, de El modelo debe permitir el uso de datos histricos y
manera que el tamao del proyecto no sea directamente proporcional con
3 al tamao del documento?
ajustarlos para una organizacin en particular y un tipo de
Se les entreg al equipo de aseguramiento de la calidad una copia software.
completa de la documentacin del sistema correspondiente a esta
4 verificacin? El modelo debe ser verificado contra un nmero histrico
El equipo de aseguramiento de la Calidad ha medido las necesidades de
la documentacin de acuerdo a los criterios establecidos por la razonable de proyectos.
5 metodologa de la organizacin?
El equipo de aseguramiento de la calidad ha determinado qu
El modelo debe requerir slo entradas basadas en las
6 documentos deben revisarse? propiedades del proyecto, las cuales estn bien definidas y
Las personas del proyecto estn de acuerdo con las sugerencias del
equipo de aseguramiento de la calidad en cuanto a las revisiones de la pueden ser establecidas con un grado de certeza razonable al
7 documentacin? momento en que la estimacin es llevada a cabo.
El equipo de aseguramiento de la calidad determin la completitud de los
documentos usando los criterios detallados en la metodologa de la El modelo debe proveer entradas basadas en criterios
8 organizacin?
El equipo de aseguramiento de la calidad ha utilizado el proceso de objetivos.
Inspeccin para determinar la completitud de la documentacin del
9 sistema? El modelo no debe ser hipersensible para criterios de entrada
El equipo de Aseguramiento de la Calidad de Software ha determinado subjetivos.
10 el grado de actualizacin de la documentacin del proyecto?
El equipo de aseguramiento de la calidad ha desarrollado un documento El modelo debe ser sensible a todos los parmetros del
11
detallando las deficiencias de la documentacin respecto de los
estndares de la organizacin?
proyecto que fueron establecidos teniendo un marcado efecto
en el costo y no debe requerir entrada de parmetros no
Se ha asegurado el equipo de aseguramiento de la calidad de que las
12 deficiencias descritas estn documentadas? correlacionados con costos.
El modelo debe incluir estimaciones de cmo y cundo van a
I.7.2. Equipo de Aseguramiento de la Calidad del Software
ser necesarios los recursos.
Lder de Aseguramiento de la Calidad del Software
El modelo debe producir un rango de valores por la cantidad
Analistas de aseguramiento de la calidad del software Senior que ha sido estimada.
y/o Semi-senior.
El modelo debe incluir la posibilidad de realizar anlisis de
V. TCNICAS Y HERRAMIENTAS sensibilidad, para que el responsable de la estimacin pueda
ver la variacin de los parmetros seleccionados.
En el presente captulo se presentan y describen El modelo debe incluir alguna estimacin del riesgo para
brevemente las principales Tcnicas y Herramientas completar las estimaciones de tiempo o costo.
identificadas en los mdulos del modelo general de
aseguramiento de la calidad. A.1.2. Validar que el Modelo Incluya Todos los Factores
Tambin se presenta, slo a modo de ejemplo, un conjunto Necesarios
de productos entregables que se obtienen al aplicar stas Los factores que influencian al costo del proyecto de
tcnicas y herramientas. Lo que se pretende mostrar con estos software deben estar divididos en los que contribuyen en el
productos, son los datos que se deberan registrar, ms all del desarrollo y mantenimiento de la organizacin y en aquellos
formato, el soporte electrnico o detalles de implementacin. inherentes al proyecto de software.
A. Estimacin del Proyecto Es importante que los modelos sean usados correctamente y
que todos los factores que influencian los costos de software
A.1. Verificar la Validez de la Estimacin de los Costos de sean imputados correctamente. Los modelos pueden producir
Software resultados incorrectos basados en esa influencia de factores. En
Una estimacin inapropiada de costos puede daar ms a la primer lugar el factor puede ser excluido del modelo como
calidad del Proyecto de Software que a cualquier otro factor, resultado de una incorrecta estimacin. En segundo lugar se
por eso, la verificacin puede aumentar la validez de la puede introducir un factor incorrecto o incompleto al modelo,
estimacin. La estimacin del software es un proceso de tres causando estimaciones incorrectas de costos de software.
partes como se describe a continuacin: Si un factor no fue incluido, el analista de calidad debe
Validar el modelo de estimacin. determinar dnde afecta el factor significativamente en el costo
actual de construir el software. A continuacin se describen los
Validar que el modelo incluya todos los factores necesarios.
factores influyentes en el costo del software:

190 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Tamao del software. Modelos de estimacin incluidos en metodologas de
Porcentaje de diseo y/o cdigo nuevo. desarrollo de sistemas.
Complejidad del sistema de software. Paquetes de software para desarrollo de estimaciones de
Dificultad de diseo y codificacin. software.
Calidad. Uso de puntos de funcin para la estimacin de costos de
software
Lenguajes a usar.
Clasificacin de nivel de seguridad del proyecto. B. Estado del Proyecto: Sistema de Acumulacin de Puntos
Tipo de mquina a utilizar (tecnologa). La creciente complejidad de los sistemas, combinado con los
Utilizacin de hardware. requerimientos para diseos estructurados y modulares, ha
Volatilidad del requerimiento aumentado la cantidad de elementos de software desarrollados
A continuacin se describen los factores influyentes, que y entregados. El aumento de elementos, ms los tradicionales
dependen de la organizacin: hitos usados para medir el progreso han hecho subjetivo y a
menudo poco confiable el seguimiento del desarrollo del
Cronograma del proyecto. software y la prediccin del consumo progresivo del tiempo.
Personal. Se ha utilizado exitosamente un sistema para seguir el
Ambiente de desarrollo. progreso del desarrollo de software a travs de un esquema de
Recursos no atribuibles directamente a aspectos tcnicos del puntos ganados. Los puntos estn asignados en cada paso en el
proyecto. ciclo de desarrollo del software de la organizacin. Los pasos
Recursos de computacin. son hitos en los cuales un producto generado es aceptado. Al
aceptar los productos se ganan los puntos que poseen
Honorarios.
asociados. La proporcin de puntos ganados sobre el total de
Inflacin. puntos posibles se recopila y as se determina el progreso
A.1.3. Verificar la Exactitud del Modelo de Estimacin de logrado. Luego, se generan informes, tabulando la
Costos informacin en una variedad de reportes gerenciales.
El sistema as implementado es flexible y altamente
Se proponen las siguientes cuatro verificaciones para automatizado. Los puntos acumulados son rpidamente
validar las estimaciones producidas por el modelo de verificados, objetivos, y basados en el estado actual del
estimacin de costos de software: desarrollo del proyecto. Clculos simples o comparaciones de
1) Recalcular lo estimado: El analista de calidad puede los puntos acumulados proveen una medida precisa del
validar el proceso de estimacin ejecutando el modelo de progreso, del desvo en el cronograma y la prediccin de
estimacin. El propsito de esto es: progresos futuros.
Validar que los datos de entrada fueron ingresados
correctamente. B.1. Cmo Utilizar el Sistema de Puntos
Validar que los datos de entrada fueron razonables. El sistema de acumulacin de puntos, propuesto por W. Perry
[5], es una extensin del sistema de "hitos". En su forma ms
Validar que la ecuacin matemtica fue calculada
simple se asume que cada tem o componente del software
correctamente.
pasa por procesos de desarrollo similares y hay una cantidad
2) Comparar estimaciones realizadas con proyectos de hitos claramente identificables dentro del proceso.
tpicos: El analista de calidad puede determinar cunto tiempo A modo de ilustracin, se desarrollarn 5 componentes y 4
lleva desarrollar proyectos del mismo tamao y complejidad. hitos definirn el proceso de desarrollo. Los hitos pueden
El clculo realizado por el sistema de estimacin, es luego representar diseos revisados y aceptados, cdigo revisado y
comparado con costos actuales de proyectos tpicos. Si completo, resultados de prueba verificados, y componentes
existiera una diferencia el analista de calidad puede evaluar liberados. En un caso simple, cada hito para cada tem de
ms en detalle, la validacin de la estimacin. software vale 1 punto. En este caso, pueden ganarse 20
3) Razonabilidad de la estimacin: Esta verificacin es puntos. Como parte de cada revisin de diseo, inspeccin de
similar a la del punto anterior, se utiliza la experiencia pasada. cdigo, prueba de verificacin, o entrega, se cumple el hito y
El analista de calidad documenta los factores que influyen se ganan los puntos correspondientes. Al poner en un archivo
sobre la estimacin de costos, documenta el clculo producido una lista con los componentes e hitos logrados (puntos
por el sistema de estimacin y luego valida la razonabilidad de ganados) y crear simples generadores de reportes, puede
esa estimacin teniendo en cuenta experiencias anteriores. Es adquirirse una medida objetiva, precisa y oportuna de los
recomendable un mnimo de tres experiencias consultadas a los resultados. En la tabla XIII se muestra cmo es un reporte
Gerentes de proyecto. En caso en que uno o ms no sienta que simple de estado.
es razonable la estimacin, la misma deber ser rechazada. Este esquema simplificado funciona bien para un conjunto
4) Redundancia en estimaciones de costo de software: El homogneo de componentes donde todos tienen similar
Analista de calidad debe recalcular la estimacin usando otro complejidad y cada hito representa una cantidad de trabajo
modelo de estimacin de costo. Si la diferencia es pequea, la similar. A travs de la introduccin de "pesos" en los factores,
estimacin ser confiable. Caso contrario se tendra que pueden manejarse fcilmente, los componentes de
realizar una investigacin adicional. complejidad diversa o los hitos que representan esfuerzos
A continuacin, se detallan las fuentes de los modelos de dismiles para completarlos.
estimacin de software:
Desarrollos internos (propios) de la organizacin.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 191
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
TABLA XIII. REPORTE SIMPLE DE ESTADO hacer ambas estimaciones es proveer al Gerente del proyecto y
a la alta gerencia de mayor seguridad respecto de la validez de
REPORTE DEL ESTADO DEL SISTEMA
los resultados del reporte de progreso.
TEM DISEO CODIFICACIN VERIFICACIN ENTREGA PUNTOS GANADOS B.2.2. Planeamiento de la Prueba
Componente A 1 1 2 El mtodo de puntos para el seguimiento del progreso indica
Componente B 1 1
cundo ocurrir la prueba. Al tener un sistema que permita al
equipo de proyecto, seguir el progreso, puede asistirlo para
Componente C 1 1
planificar el uso de los recursos de prueba. El sistema de
Componente D 1 1 1 3 puntos no requiere muchos recursos; no obstante est
Componente E 1 1 2
destinado a asistir al equipo de proyecto, indicndole cuando
los programas/subsistemas estarn disponibles para verificar.
TOTALES 5 3 1 0 9

PORCENTAJE 9/20 = 45= %


B.2.3. Reportar el Estado de la Prueba
El sistema de puntos tambin indica cundo est hecha la
El motor del sistema es un archivo de datos y algunos reportes prueba y cuando se liberan los mdulos a produccin. La
simples. El archivo de datos es simplemente una coleccin de informacin contenida en el sistema de puntos es la misma
registros, uno por cada tem que debe seguirse, que contiene que necesitar el equipo de proyecto para reportar los
campos para indicar si se ha alcanzado algn hito. Usualmente resultados de la prueba.
es ventajoso incluir campos para la descripcin de los tems, C. Matriz de Riesgos
analista responsable, identificacin del trabajo, entre otros. La matriz de riesgos es una herramienta diseada para
El mantenimiento o actualizacin del archivo puede ser tan identificar y evaluar riesgos y determinar qu es lo que el
efectivo como modificar registros con un editor de lnea o tan sistema debe hacer con cada uno de ellos.
complejo como crear un programa interactivo para ese A continuacin se describe como usar la matriz de riesgos. En
propsito. Deben usarse algunos medios de acceso limitado forma ideal la matriz de riesgos comienza en la fase de
para restringir modificaciones no autorizadas al archivo. Una requerimientos y se desarrolla y termina en la fase de diseo.
vez actualizado el mismo, para incluir una entrada de datos al La implementacin de esta herramienta es un proceso de cinco
componente en desarrollo se actualizan los campos de estado pasos. Los pasos deben ser ejecutados en la siguiente
de los hitos a medida que se van alcanzando tales hitos. En secuencia:
algunos casos, esto puede ser un proceso manual; una vez que
el evento ocurri y se alcanz el hito, una persona (autorizada) C.1 Identificacin del Equipo de Evaluacin de Riesgos
actualiza el estado en el archivo. En otras circunstancias, en La clave para el xito de la matriz de riesgos es establecer un
sistemas ms sofisticados, un programa puede determinar que equipo evaluador de riesgos, cuya responsabilidad ser
ha ocurrido un hito (compilacin sin errores o prueba exitosa) completar la matriz. El objetivo de completar la matriz, es
y automticamente actualiza el estado del hito. llevar a cabo un control adecuado de requerimientos y diseo
Una vez armado el archivo, se escriben los programas para reducir los riesgos a un nivel mnimo aceptable.
generadores de reportes para imprimir el estado. Para El grupo de riesgo, puede ser parte del equipo que realiza la
proyectos menores, puede ser suficiente un programa que toma de requerimientos o parte del grupo de test, o puede ser
simplemente imprime cada registro, suma los puntos ganados un equipo seleccionado especficamente con el propsito de
y definidos, y calcula el porcentaje de puntos ganados. Los confeccionar la matriz de riesgo. El grupo debera contar con
proyectos ms grandes pueden necesitar varios reportes para entre 3 y 6 miembros, y al menos poseer las siguientes
subsistemas diferentes o reportes resumen que enfaticen los habilidades:
cambios ocurridos. Conocimiento sobre el uso de la aplicacin.
B.2. Utilizacin del Sistema de Puntos como Mtodo de Entender el concepto de riesgo.
Prueba Habilidad para identificar controles.
El mtodo de puntos para seguir el progreso del software Estar familiarizado con ambos, riesgos de la aplicacin y de
puede ser utilizado por el Analista de calidad en alguna de las los servicios de informacin.
tres formas siguientes: Entender el concepto de servicio de informacin y sistema de
diseo.
B.2.1. Validar el Progreso Informado.
Los candidatos en el grupo de riesgo debern al menos incluir
El uso del sistema de puntos por el equipo de aseguramiento
a alguien del rea usuaria, y alguno o todos de las siguientes
de la calidad, elabora una evaluacin del progreso que puede
reas:
compararse con los reportes de progreso del Gerente del
proyecto. Si el seguimiento del progreso es aproximadamente Auditor interno.
el mismo utilizando los dos resultados, el examinador puede Consultor de riesgo.
validar el sentido de los reportes del proyecto producidos por Representante del rea de procesamiento de datos.
el equipo del proyecto. Esto es un anexo de lo que la prueba Representante del rea de seguridad.
normalmente hace, pero puede ser muy valiosa desde la Representante del rea de operaciones.
perspectiva de la alta gerencia. Ntese que si hay una
diferencia significativa en la estimacin del progreso del C.2. Identificacin de Riesgos
proyecto, la diferencia puede estar en el sistema de puntos o El primer objetivo del grupo evaluador de riesgos, es
en el sistema que usa el Gerente del proyecto. El objetivo de identificar los riesgos enfocndose en la aplicacin, pero no en

192 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
los riesgos ambientales. El equipo evaluador de riesgo, puede C.4. Identificar Controles en Cada Sistema
utilizar uno de los dos mtodos siguientes para la Durante la fase de diseo, el equipo de riesgo identificar los
identificacin del riesgo: controles en cada fase del sistema de aplicacin para cada
C.2.1. Anlisis de Escenarios de Riesgos riesgo identificado. Los segmentos de sistemas ms comunes
son:
En este mtodo el equipo de riesgo delibera sobre los riegos
Origen: La creacin del documento fuente ms la
potenciales de la aplicacin usando sus experiencias, juicio y
autorizacin asociada con aquella transaccin original.
conocimiento del rea de aplicacin. Es importante tener
sinergia, as los miembros del grupo pueden cuestionarse uno
a otro para desarrollar una lista completa de riesgos que son TABLA XIV. EJEMPLO DE MATRIZ DE RIESGO AL FINAL DE LA
FASE DE REQUERIMIENTOS
compatibles a la aplicacin.
RIESGO OBJETIVOS DE CONTROL
C.2.2. Lista de Verificacin de Riesgos
Se provee al equipo de riesgo de una lista con los riesgos ms Despachado pero no facturado Asegurar que todos los envos estn facturados

comunes que ocurren en aplicaciones automticas. El equipo Facturado con precio o cantidad Facturar al precio actual el 99% de los tems bsicos y error permitido
errnea menor al 10%
selecciona de la lista aquellos riesgos aplicables a la
Facturado al cliente equivocado Reducir facturas perdidas a menos del 1%
aplicacin. En este mtodo, el equipo necesita pocas
Despacho del producto o cantidad Despachar los productos y cantidades correctas al 99% de los tems de
habilidades porque la lista de riesgos provee el estmulo para equivocada base
el proceso, y el objetivo del equipo es determinar cuales de los
riesgos de la lista son aplicables a la aplicacin. He aqu una
Ingreso de Datos: Transferencia de informacin a un medio
lista de riesgos para su identificacin:
legible por la mquina.
Acceso no controlado al sistema. Comunicacin: El movimiento de datos desde un punto del
sistema a otro. El movimiento puede ser manual o
Prcticas de seguridad no eficaces para la aplicacin.
electrnico.
Errores de procedimiento en los servicios de informacin:
Procesamiento: Aplicacin del sistema lgico a los datos.
Procedimientos y controles.
Almacenamiento: La retencin de datos, por largos o cortos
Manipulacin de medios de almacenamiento. perodos de tiempo.
Errores del programa. Salida: La traduccin de la informacin de computadora a los
Defectos del sistema operativo. medios entendibles y utilizables.
Fallas en el Sistema de Comunicacin: Uso: Satisfaccin de la necesidad del negocio a travs de los
Fallas accidentales. resultados del sistema de procesamiento.
Actas accidentales. El equipo de evaluacin de riesgos, determinar qu controles
son aplicables a qu riesgos y los registrar en el segmento
C.3. Establecer Objetivos de Control correcto del sistema. Al trmino del desarrollo de la matriz de
Durante la fase de requerimientos, deben establecerse los riesgo, el equipo de riesgo har una estimacin para verificar
objetivos de control para cada riesgo. Estos objetivos definen si los controles son los adecuados para reducir el riesgo hasta
el nivel de aceptacin del perjuicio de cada riesgo el nivel de aceptacin identificado en el objetivo de control.
identificado. Otra forma de manifestar el nivel de dao Esto verificar la efectividad de los controles al finalizar el
aceptable, es el objetivo mensurable de control. proceso de diseo. En la tabla XV se muestra un ejemplo de
La adecuacin del control no puede chequearse hasta que no matriz de riesgo para sistemas de facturacin y distribucin al
est definido el nivel de perjuicio de cada riesgo. Por lo tanto, final de la fase de diseo.
mientras que la definicin de los objetivos de control es Los mismos cuatro riesgos identificados durante la fase de
responsabilidad del usuario y del proyecto, puede llevar a la Requerimientos (tabla XIV) tambin se muestran en esta
formacin de un grupo de riesgos para definirlos. Una vez matriz, por lo que los controles estn asociados a cada riesgo.
definidos los objetivos de control, se pueden chequear los En este ejemplo, el riesgo de despachar sin facturar muestra
requerimientos para determinar si son factibles. que los controles 1, 2 y 3 ayudarn a disminuir ese riesgo
En la tabla XIV se muestra un ejemplo de matriz de riesgo al (para una matriz real estos controles deben describirse). La
final de la fase de requerimientos para un tpico sistema de matriz muestra en qu segmento del sistema de aplicacin
Facturacin y Distribucin. Esta matriz muestra cuatro riesgos residen aquellos controles.
para el sistema de Facturacin y Distribucin, y objetivos de Despus de identificar y registrar los controles, el equipo de
control para cada uno de aquellos riesgos. Por ejemplo, uno de riesgo debe determinar si aquellos tres controles y los
los riesgos es que el producto sea enviado pero no facturado. segmentos a los cuales pertenecen son los adecuados para
En esta instancia, el objetivo de control es asegurar que todos reducir el riesgo de despachar sin facturar.
los envos sean facturados. En otras palabras, el nivel de
C.5. Determinar si los Controles son adecuados
perjuicio aceptable de este riesgo es cero, y el equipo del
proyecto debe instalar un sistema que asegure que para cada La verificacin termina cuando el equipo de riesgo determina
envo que se despacha se prepara una factura. Sin embargo, si los controles son los adecuados para reducir cada uno de los
ntese que el siguiente riesgo es que el producto se facturar riesgos identificados al nivel aceptable.
con un precio o cantidad errnea y que los controles tienen
establecido un nivel de defecto mayor a cero, como los otros
dos riesgos.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 193
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
TABLA XV. EJEMPLO DE MATRIZ DE RIESGO AL FINAL DE LA especificaciones determinarn los mtodos de mantenimiento
FASE DE DISEO (Ej.: cambio de parmetros introducido por el usuario) y el
RIESGO DEL SEGMENTO INGRESO intervalo de tiempo en el cual se necesitan implementar dichos
ORIGEN COMUNIC. PROCES. ALMAC. SALIDA USO
DEL SISTEMA DATOS cambios.
Despacho sin facturacin #1 #2 #6
D.5. Necesidades de Portabilidad (Factor: Portabilidad)
#7
Facturado con precio o
calidad errnea
#6 #8 #10 #11 La capacidad para operar el sistema en diferentes tipos de
#9
hardware, o migrarlo a otra versin, deber enunciarse como
Facturado al cliente #12
equivocado #3
#14 #15 #16 parte del requerimiento. La necesidad de tener la aplicacin
Despacho de producto o
#17 #18
#19
#21 #22
desarrollada como portable, puede afectar significativamente
cantidad errnea #20
la implementacin de requerimientos.
D. Anlisis de Factores (Mdulo de Requerimientos) D.6. Interfaces del Sistema (Factor: Acoplamiento)
Se llevar a cabo un proceso para estimar las incumbencias Se debe definir en forma precisa, la informacin esperada
asociadas a la fase de requerimientos del desarrollo del como entrada desde otros sistemas computadorizados y las
sistema. Debe incluirse un programa de verificacin para cada salidas a entregar a otros sistemas. Esta definicin no solo
tem. Hay 15 tems a considerar, cubriendo cada fase del incluye los tipos de informacin intercambiada, sino tambin,
proceso de desarrollo. Para cada tem hay un programa de el momento en el cual debe estar disponible cada interfaz y el
verificacin que tiene en cuenta ciertas consideraciones las procesamiento que se espera como resultado de cada una de
cuales se encuentran detalladas ms abajo. El programa de ellas. Otros factores a tener en cuenta al definir las interfaces
verificacin enumera aquellos criterios, que aseguran al son: privacidad, seguridad y resguardo de la informacin.
equipo de aseguramiento de la calidad, que la magnitud de esa
preocupacin es mnima. A estos criterios debe responder el D.7. Criterios de Performance (Factor: Performance)
equipo de aseguramiento de la calidad. Tambin se debe Debe quedar establecido: la eficacia, economa y eficiencia
realizar una verificacin suficiente para evaluar si el equipo de esperadas del sistema. Estos objetivos son una parte integral
proyecto ha manejado adecuadamente cada factor de del proceso de diseo. Cuando no son alcanzados, la
verificacin. insatisfaccin del usuario est garantizada. Como producto
A continuacin, se detallarn brevemente cada uno de los final de la fase de requerimientos, se realizar el anlisis del
factores a tener en cuenta: costo-beneficio del factor performance, calculado para la
aplicacin.
D.1. Requerimientos Compatibles con la Metodologa
(Factor: Metodologa) D.8. Necesidades operativas (Factor: Facilidad de
El procedimiento utilizado para definir y documentar Operacin)
requerimientos, debe estar presente durante la fase de Las consideraciones operativas deben definirse durante la fase
requerimientos. Cuanto ms formales sean estos de requerimientos. Esto es especialmente importante en
procedimientos, se facilita el proceso de su verificacin. El sistemas de aplicacin manejados por el usuario. Los procesos
proceso de requerimientos es un proceso de, anlisis, toma de a seguir para operar el sistema, en otras palabras, los
decisiones y registro de requerimientos en una forma procedimientos necesarios para procesar transacciones, deben
predefinida para poder utilizarse luego en el diseo. ser lo ms simple posible. Tambin deben considerarse
procedimientos de operacin por excepcin y monitoreo
D.2. Funcionalidad de las Especificaciones (Factor:
centralizado.
Precisin)
La satisfaccin del usuario solo puede asegurarse, cuando se D.9. Tolerancia (Factor: Fiabilidad)
han cumplido los objetivos del sistema. El cumplimiento de Debe definirse la confiabilidad esperada de los controles del
estos objetivos solo pueden medirse cuando stos sean sistema. Por ejemplo, la fase de requerimientos determinar
mensurables. Por ejemplo, los objetivos cualitativos, como la los requerimientos de control para la precisin de la
mejora de servicio, no son mensurables, mientras que s lo es facturacin, el porcentaje de rdenes que necesitan procesarse
el pedido de procesamiento en cuatro horas de usuario. dentro de las 24 horas, etc.
La tolerancia de facturacin puede afirmar que se procesarn
D.3. Usabilidad de las Especificaciones (Factor: Facilidad de
las facturas con tolerancia 1% de los precios de los
Uso)
productos actuales.
La cantidad de esfuerzo requerido para usar el sistema y la Si no se establecen estas tolerancias, no hay base para asignar
habilidad necesaria, deben definirse durante la fase de y medir la confiabilidad del sistema por perodo de tiempo. Si
requerimientos. La experiencia muestra que las aplicaciones no se define el nivel de defectos esperados, normalmente se
difciles de usar finalmente no se utilizan, en cambio los espera cero defectos. Los controles para lograr cero defectos
sistemas funcionales fciles de usar son altamente utilizados. son antieconmicos.
Entonces los desarrolladores, debern crear especificaciones Usualmente es ms econmico, que surja una cantidad mnima
fciles de usar, incrementando as la facilidad del uso del de defectos en el proceso pero que sean detectados y
sistema en s mismo. mensurables.
D.4. Mantenimiento de las Especificaciones (Factor: D.10. Reglas de Autorizacin Definidas (Factor:
Mantenibilidad) Autorizacin)
Debe definirse el grado de mantenimiento esperado, as como Deben especificarse los mtodos de autorizacin (niveles de
tambin las reas donde los cambios son muy probables. Las seguridad) para asegurar que las transacciones se procesen de

194 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
acuerdo con la intencin que tiene la organizacin, respecto E. Inspecciones
del sistema. Las inspecciones y las recorridas walkthrough apuntan a
D.11. Requerimientos de Integridad de Archivos (Factor: asistir a los productores para mejorar su trabajo.
Integridad de Archivos) Las inspecciones intentan examinar tcnicamente el trabajo y
proveer a los productores, una evaluacin independiente de
Se necesita especificar los mtodos para asegurar la integridad
aquellas reas productivas en donde las mejoras son
de los archivos. Esto normalmente incluye el conjunto de
necesarias. Las recorridas son generalmente menos formales y
controles que deben mantenerse dentro del archivo e
estn conducidos en un formato ms educacional. Las
independientemente de la aplicacin. Los controles deben
inspecciones, por el contrario, generalmente tienen un formato
asegurar que los registros de detalle sean consistentes con los
formal, la asistencia es especfica, y la informacin se refleja
totales de control para cada archivo.
en los resultados.
D.12. Recuperacin ante Fallas (Factor: Auditoria) Hay tantos tipos de inspecciones como tipos de productos. Es
La recuperacin abarca los procedimientos de recomposicin de mucha ayuda inspeccionar los requerimientos antes de
ante la identificacin de un problema. Se debe definir para comenzar el diseo de alto nivel, el diseo de alto nivel antes
cada aplicacin, las necesidades de recomposicin de procesos de comenzar el diseo detallado, el diseo detallado antes de
e informacin. Si la recomposicin es necesaria, se necesita comenzar la implementacin, y la implementacin antes de
enunciar el momento para su ejecucin. Este momento, puede comenzar la verificacin. Esto no significa que todos los
variar segn la hora del da y el da de la semana. diseos de alto nivel deben ser inspeccionados antes del
Estos requerimientos de recomposicin afectan el tipo y comienzo de cualquier diseo detallado, pero el diseo
disponibilidad de los datos. especfico a realizar debe basarse en el trabajo que ha sido
inspeccionado. Tambin es de ayuda inspeccionar los casos
D.13. Impacto de Fallas (Factor: Continuidad de verificados y la documentacin.
Procesamiento) Se recomiendan las inspecciones para diseo, codificacin,
La necesidad para asegurar la continuidad de procesamiento casos de prueba, y documentacin. Caso contrario, es
depende del impacto de las fallas. Si la falla causa solo adecuado un proceso de recorrida menos formal.
problemas mnimos, puede ser innecesario asegurarse el E.1. Proceso
procesamiento continuo. Por el contrario, cuando la
continuidad de la operacin es esencial, es necesario duplicar El proceso de inspeccin sigue ciertos principios bsicos:
los equipos y centros de cmputos, para que se pueda La inspeccin es un proceso formal, estructurado a travs de
continuar procesando. un sistema de listas de verificacin (checklists) y roles
definidos para los participantes. Provee un instrumento
D.14. Nivel de Servicio Deseado (Factor: Nivel de Servicio) ordenado para implementar un estndar de excelencia de
El nivel de servicio implica tiempo de respuesta basado en los ingeniera del software o de conocimiento en toda la
requerimientos. El nivel de servicio requerido variar sobre la organizacin.
base de los requerimientos. Cada nivel de servicio deseado Los estndares y listas de verificacin genricas son
necesita estar enunciado; por ejemplo, hay un nivel de servicio desarrollados para cada tipo de inspeccin y, cuando sea
para corregir un error de programacin, otro para instalar un apropiado, se ajustan a las necesidades de un proyecto
cambio y otro para responder a una consulta, etc. especfico. Estas listas cubren el planeamiento de la
D.15. Permisos y Accesos (Factor: Seguridad) inspeccin, la preparacin, la conduccin, la salida y reportes
de normas.
Los requerimientos de seguridad deben desarrollarse
Los inspectores estn preparados de antemano y tienen
mostrando la relacin entre recursos de sistema y humanos.
identificados sus tareas y cuestiones antes de que comiencen
Los requerimientos deben enunciar todos los recursos del
la inspeccin.
sistema disponibles sujetos a control, y luego indicar quin
debe tener acceso a aquellos recursos y con qu propsitos. Al El foco de la inspeccin estar en identificar problemas, no
final del mdulo, el equipo de aseguramiento de la calidad, en resolverlos. Este foco, junto a lo mencionado en el punto
puede emitir juicio acerca de la adecuacin de cada criterio. El anterior, asegura que la inspeccin pueda manejarse con una
equipo debe emitir uno de los siguientes cuatro juicios acerca mnima prdida de tiempo.
de cada criterio: Una inspeccin es conducida por tcnicos para tcnicos. Los
Muy adecuado: El equipo de proyecto ha hecho ms de lo directivos no se involucrarn, aunque sern informados de los
normalmente esperado para el criterio. hallazgos y las fechas en las cuales se resolvern los
Evaluacin adecuada: El equipo de proyecto ha hecho el problemas identificados.
trabajo suficiente para asegurar el control por encima del La informacin de la inspeccin deber ser ingresada a una
criterio. base de datos y se la utilizar para monitorear la efectividad
Evaluacin inadecuada: El equipo de proyecto no ha hecho el de la inspeccin, seguimiento y conduccin de la calidad del
trabajo suficiente, y deben trabajar ms en este criterio. producto.
No aplicable (N/A): Debido al tipo de aplicacin o diseo Mientras mucha gente pueda estar interesada en los resultados
filosfico del sistema por parte de la organizacin, la de la inspeccin, el propsito de la inspeccin es asistir a los
implementacin de este criterio no es aplicable al sistema que productores para mejorar su trabajo. Esto puede hacerse mejor
se est revisando. limitndose a cinco o seis los inspectores. El punto clave de
esta limitacin es la atencin tcnica.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 195
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
El moderador no es el director del trabajo que se est
inspeccionando, ni tampoco ninguno de los otros
participantes. Los moderadores necesitan una base completa
de los principios y mtodos de inspeccin antes de que puedan
hacer un trabajo competente. Esto les dar las herramientas
bsicas y los ayudar a tener mayor confianza en s mismos,
necesaria para liderar tal actividad.
Como las inspecciones bien realizadas requieren de una
intensa concentracin de todos los participantes, stos pueden
quedar exhaustos. Por esto, las sesiones de inspeccin
generalmente no deben exceder las dos horas.
Tambin es de gran ayuda asignar algunos inspectores en
reas productivas especficas durante el proyecto.
E.2. Participantes
Los participantes de la inspeccin, se detallan a continuacin:
El moderador (lder de inspeccin): Persona responsable para
liderar la inspeccin pronta y eficientemente a una conclusin Fig. 15. Resumen de la inspeccin
satisfactoria.
Muestreo: Los atributos que se utilizarn correspondern a
Los productores: Persona/s responsable/s de hacer que se una muestra de todos los atributos abarcados en la
inspeccione el trabajo. implementacin de un sistema.
Los examinadores (inspectores): Generalmente es la gente Alta correlacin positiva. Los atributos elegidos tendrn que
directamente involucrada y conocedora del trabajo que est mostrar una alta correlacin positiva en el pasado con
siendo inspeccionado. cualquier xito o fracaso durante la automatizacin de una
El registrador (quien anota): Alguien que registra los aplicacin. Estos atributos no deberan ser intuitivos sino, que
resultados significativos de la inspeccin. debern ser atributos para los cuales pueda demostrarse que
la ausencia o presencia de los mismos muestre una alta
E.3. Salidas
correlacin con respecto al resultado final del proyecto.
Las salidas a obtener luego de realizarse una inspeccin, se
Facilidad de uso. Para ser efectivo, el proceso de ranking
detallan a continuacin:
debe ser lo ms simple posible.
Informe de Inspeccin (Figura 14)
Desarrollar el ranking de riesgo. El ranking para cada atributo
Resumen de la Inspeccin (Figura 15)
debe determinarse en un formato mensurable de modo que el
ranking de riesgo total pueda ser desarrollado para cada
aplicacin. Esto indicara el grado de riesgo, el rea de riesgo,
y tambin una comparacin de riesgos entre las diferentes
aplicaciones.
Al ranking de riesgo se llega a travs de un desarrollo
matemtico, como se muestra a continuacin.

TABLA XVI. DESARROLLO MATEMTICO PARA OBTENER UN


RANKING DE RIESGO

RIESGO DE LA # DE CARACTERSTICAS FACTOR DE FACTOR PARA


CARACTERSTICA EVALUADAS MULTIPLICACIN EL RANKING

Alta 3 3 9

Media 9 2 18

Baja 12 1 12
Fig. 14. Informe de inspeccin
Total 39

F. Ranking de Factores de xito (Mdulo de Diseo) Para usar esta tabla, el nmero de atributos o caractersticas
El ranking (scoring) es una herramienta predictiva que calificadas con alto, medio y bajo, deber ser totalizado, y los
utiliza experiencias en sistemas anteriores. Se analizan los totales colocados en la columna # (cantidad) de
sistemas existentes para determinar los atributos o Caractersticas Evaluadas.
caractersticas de los mismos y su correlacin con el xito o el Luego a cada nmero se lo multiplica por el factor de
fracaso de cada aplicacin en particular. Una vez que los multiplicacin y as obtener el ranking de riesgo. Por ejemplo,
atributos correlacionados al xito o al fracaso pueden ser el nmero total de caractersticas definidas con alto riesgo
identificados, tambin pueden ser usados para predecir el debe multiplicarse por tres. Luego los tres nmeros se suman
comportamiento del sistema que est en desarrollo. para llegar a totalizar el riesgo total, el cual puede utilizarse
Los lineamientos que se utilizan bajo el concepto de ranking, para comparar entre los diferentes sistemas, o bien, respecto
se describen a continuacin: de un estndar definido por la organizacin. cuanto ms alto
es el puntaje, mayor ser el riesgo, y a menor puntaje menor
riesgo.

196 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
G. Anlisis de Factores (Mdulo de Diseo) G.8. Diseo Acorde con la Metodologa
Los factores que deben analizarse durante el mdulo de diseo El proceso de diseo de sistemas debe ejecutarse y
se describen a continuacin: documentarse de acuerdo con la metodologa establecida por
la organizacin. Los procedimientos estndares de diseo
G.1. Controles de Integridad de Datos
aseguran la facilidad de comprensin por todos los miembros
La integridad de datos va desde la identificacin de riesgos, del equipo capacitados y entrenados en esa metodologa y al
hasta la decisin gerencial de aceptar esos riesgos, establecida mismo tiempo ayuda a asegurar que se cumpla en forma
en trminos de la cantidad de prdidas aceptables. Los completa el proceso de diseo.
controles de integridad de datos se disean a partir de la
tolerancia a tales riesgos, los cuales se encuentran G.9. Diseo Acorde con los Requerimientos
especificados. El diseo del sistema es una transformacin de los
requerimientos de los usuarios en especificaciones ms
G.2. Reglas de Autorizacin
detalladas. Durante cualquier transformacin, pueden ocurrir
Las autorizaciones en los sistemas pueden ser manuales y/o malos entendidos o malas interpretaciones. Entonces, deben
automticas. Los procedimientos para autorizacin manual tomarse las medidas necesarias para asegurar que el diseo
deben especificarse durante la fase de diseo. Los mtodos de cumpla sus objetivos y est focalizado a cumplir con los
autorizacin automtica deben especificarse ms requerimientos definidos.
detalladamente que los manuales, por el hecho de que no se
pueden dejar librados a criterios personales segn la situacin G.10. Facilidad de Uso
que se presente. Cuanto el producto final sea ms fcil de usar, habr mayor
probabilidad que el usuario lo utilice y que las transacciones
G.3. Controles de Integridad de Archivos
sean procesadas correctamente. Deben considerarse las
La integridad de los archivos estar asegurada por los mtodos habilidades necesarias para cada puesto de trabajo y la
de identificacin de archivos, controles automticos y motivacin en el mismo, de todas las personas usuarias del
controles de integridad de archivos mantenidos sistema.
independientemente. Las especificaciones para este proceso
integrador de tres partes debe determinarse durante la fase de G.11. Mantenibilidad del Diseo
diseo. El costo de mantener una aplicacin normalmente excede el
costo de desarrollo. Identificar aquellos aspectos del sistema
G.4. Pistas de Auditoria
que son los ms factibles de cambiar y construir aquellas
Estas pistas proveen la capacidad para rastrear transacciones partes del sistema para facilidad del mantenimiento es un
desde su origen hasta los controles. Adems, las pistas de aspecto importante del proceso de diseo. La mantenibilidad
auditoria se usan para consolidar el procesamiento de del diseo puede cambiar significativamente dependiendo de
transacciones individuales y recuperar la integridad de la frecuencia esperada de los cambios introducidos.
operaciones luego de su prdida.
Frecuentemente los entes gubernamentales especifican las G.12. Portabilidad del Diseo
pistas de auditoria que necesitan retener para cada tipo de Si los requerimientos indican que el sistema debe poder ser
informacin que manipulan. Estas necesidades de transferido desde un ambiente de hardware a otro, o una
informacin, deben definirse durante la fase de diseo. versin de software de base a otra, el diseo debe tener en
cuenta e incorporar estos aspectos de portabilidad. Cuando el
G.5. Plan de Contingencias
hardware y software futuros son inciertos, el diseo debe ser
El plan de contingencias esquematiza las acciones a tomar lo ms general posible y no intentar sacar ventaja de los
ante la aparicin de problemas. aspectos o facilidades que brindan el hardware y software
Este plan deber incluir los mtodos manuales a seguir cuando existentes.
las aplicaciones automatizadas no estuvieran en operacin, as
como tambin, las consideraciones de lugar fsico. Las G.13. Interfaces de Diseo
especificaciones del plan de contingencia deben llevarse a Deben ser identificadas y especificadas y documentadas las
cabo durante la fase de diseo. interfaces con otras aplicaciones. Las especificaciones de las
interfaces deben tambin considerar usos alternativos de la
G.6. Mtodo para Alcanzar el Nivel de Servicio Requerido
informacin de la aplicacin.
La fase de requerimientos define el nivel de servicio a obtener
durante la operacin de la aplicacin. El mtodo para alcanzar G.14. Diseo Acorde con Criterios Establecidos
ese nivel de servicio es desarrollado durante la fase de diseo. El estudio de costo/beneficio realizado durante la fase de
Esto involucra el desempeo del sistema y su habilidad para requerimientos no provee una estimacin de gran precisin.
satisfacer las necesidades de los usuarios a lo largo del tiempo. La estimacin de la fase de requerimientos puede estar
afectada en ms o menos el 50%. Durante la fase de diseo, la
G.7. Procedimientos de Acceso
estimacin del desempeo puede ser definida mejor por lo que
La seguridad en los sistemas automatizados es llevada a cabo se puede hacer una mejor prediccin y as lograr el
predefiniendo quin puede tener acceso a qu recursos y para cumplimiento del criterio de desempeo establecido. Una gua
hacer qu. Esto estar indicado por los perfiles de seguridad til a ser utilizada, es que la precisin de la estimacin del
definidos. Durante la fase de diseo, debern desarrollarse los criterio de desempeo al final de la fase de diseo puede
procedimientos, las herramientas y las tcnicas necesarias para variar en 10%.
crear e implementar los perfiles de seguridad necesarios.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 197
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
G.15. Necesidades Operacionales asigna el tiempo suficiente para permitir una interaccin
El sector de operaciones deber identificar los requerimientos apropiada.
de procesamientos futuros para preparar el manejo de tales Documentar los datos de la revisin: Deben registrarse todos
requerimientos cuando el sistema se implemente. Cuanto ms los hallazgos realizados en la revisin. Normalmente esto
grandes sean los requerimientos de procesamiento, mayor ser puede llevarse a cabo en el checklist, a menos que los
la necesidad de involucrar al sector de operaciones en la comentarios sean muy extensos. En cualquier caso, los datos
consideracin de las alternativas de diseo. deben hacer referencia a preguntas especficas del checklist
que cubran.
H. Revisin del Diseo
Revisar los datos con el equipo de proyecto: La precisin de
El objetivo es identificar aquellos atributos del diseo que se los datos debe ser comprobada por todas las personas
correlacionan con los problemas del sistema. Entonces durante involucradas, y la revisin no debe continuar si esto no est
la revisin de diseo, se investigarn dichos atributos para hecho. Es mejor hacerlo al final de la revisin que durante el
determinar si el equipo de proyecto los ha tratado proceso mismo.
apropiadamente.
Desarrollar recomendaciones de revisin: Basndose en los
El equipo de revisin de diseo comprende los siguientes
datos, el equipo de revisin har sus recomendaciones para
miembros:
corregir cualquier situacin de conflicto. Estas
Personal del proyecto: El personal del proyecto puede
recomendaciones son parte importante del proceso de
conducir su propia revisin del diseo. Normalmente la
revisin.
persona asignada con la responsabilidad de la revisin del
proyecto no es la misma que realmente dise el sistema; sin Revisar recomendaciones con el equipo de proyecto: El
embargo el que revisa puede tener responsabilidad parcial en equipo de proyecto debe ser el primero en recibir las
el diseo. Esto requiere que las personas durante el proceso recomendaciones y tener la oportunidad de aceptar, modificar
de revisin acepten roles y responsabilidades diferentes a los o rechazar las recomendaciones.
que han tenido en el proceso de diseo. Debido a probables Preparar un reporte: Se debe preparar un reporte para
vnculos con el diseo real del sistema, tener una lista de documentar los hallazgos, y las acciones tomadas o a tomar
verificacin de revisin de diseo como herramienta acerca de las recomendaciones. Este reporte puede o no
evaluadora, normalmente cumple una valiosa funcin para enviarse a altos niveles gerenciales, dependiendo de las
el/los que revisan. reglas establecidas en la revisin por la organizacin. Sin
Equipo de revisin independiente: Los miembros de este embargo es importante tener un registro formal del proceso
equipo de revisin no son miembros del proyecto que est de revisin, qu se encontr y las acciones tomadas respecto
siendo revisado. Pueden ser de otros proyectos o del equipo de las recomendaciones.
de aseguramiento de la calidad. Esta manera de operar provee La cantidad de revisiones depender de la importancia del
un mayor grado de independencia para conducir la revisin proyecto y del lapso de tiempo en la fase de diseo. As
ya que no habr conflicto de intereses entre los roles de podrn llevarse a cabo revisiones del diseo de alto nivel y del
diseador y del que revisa. Por otro lado es frecuentemente diseo detallado.
difcil para los inspectores ser crticos unos con otros, H.1. Revisin del Diseo de Alto Nivel
especialmente en situaciones donde el que revisa pueda
eventualmente trabajar para la persona que est siendo Cada defecto descubierto durante la revisin del diseo lgico
revisada. o de alto nivel debe documentarse. Se confecciona un reporte
de defectos para llevar registro de los mismos, incluyendo tipo
La siguiente es una gua en la conduccin de una revisin de
y categora de los defectos. La descripcin de cada defecto se
diseo: registra bajo una columna de Faltante, Errneo o Adicional.
Seleccionar el equipo de revisin: Los miembros del equipo Al final de la revisin del diseo lgico, los defectos se
de revisin deben seleccionarse antes del proceso de revisin resumen y totalizan. En la figura 16 se muestra un formulario
propiamente dicho. de registro de defectos en la fase de diseo de alto nivel:
Entrenar los miembros del equipo de revisin: Las personas
que conducirn la revisin deben estar entrenadas sobre cmo
dirigir la revisin. Mnimamente significa revisar el checklist
y explicar el objetivo e intencin de cada asunto. Tambin es
aconsejable entrenar a las personas involucradas en
relaciones interpersonales y as realizar la revisin en un
ambiente armonioso.
Notificar al equipo del proyecto: El equipo del proyecto debe
estar notificado de la revisin con varios das de antelacin
cuando comienza la revisin y su responsabilidad durante la
misma. Es importante organizar formalmente la revisin para
que estn todos presentes.
Asignar tiempos adecuados: La revisin debe conducirse
formalmente y tan eficientemente como sea posible. An
cuando la misma gente que dise la revisin, la dirija, las
relaciones interpersonales y los efectos de la sinergia de la Fig. 16. Formulario de registro de defectos en la fase de diseo
revisin pueden producir muchos efectos positivos si se de alto nivel

198 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
H.2. Revisin del Diseo Detallado Las estructuras de datos son las adecuadas para colocar los
Cada defecto descubierto durante la revisin del diseo fsico valores que sern utilizados en dichas estructuras?
o detallado debe documentarse. Se confecciona un reporte de I.2. Depuracin Estructural
defectos para llevar registro de los mismos, incluyendo tipo y
categora de los defectos. La descripcin de cada defecto se Los problemas de estructura crean un significante nmero de
registra bajo una columna de Faltante, Errneo o Adicional. defectos en la mayora de las aplicaciones. Estos defectos
Al final de la revisin del diseo fsico, los defectos se ocultan defectos funcionales por lo que su deteccin se torna
resumen y totalizan. En la figura 17 se muestra un formulario difcil. Las preguntas tpicas durante la depuracin estructural
de registro de defectos en la fase de diseo detallado: son:
Se colocaron todas las sentencias necesarias?
Se utilizan todas las definiciones de datos en las sentencias
definidas?
Se utilizan todos los elementos de datos definidos?
Las tablas internas y valores lmite estn usados de manera
que cuando se excede el lmite se puede continuar
procesando?
5.9.3 Depuracin Funcional
Las funciones son los requerimientos que el programa
ejecutar. Las preguntas cuando se depura la funcionalidad
son:
El programa ejecutar la funcin especfica en la forma
indicada?
Algunas de las funciones son mutuamente excluyentes?
El sistema detectar datos incorrectos o ilgicos?
Se acumular apropiadamente la informacin entre
diferentes ejecuciones del programa?
Fig. 17. Formulario de registro de defectos en la fase de diseo
detallado J. Anlisis de Factores (Mdulo de Codificacin)
La profundidad de la verificacin en el mdulo de
I. Depuracin de Programas codificacin, depende de cmo se adecua el sistema a las
necesidades del usuario, al final del mdulo de diseo. A
La depuracin (debugging) permite al programador evaluar
mayor confianza del equipo de verificacin en la adecuacin
la integridad y precisin del programa previo a la conduccin
de la aplicacin al final del mdulo de diseo, tendrn menos
de revisiones y verificaciones menos econmicas. La
inquietudes durante el mdulo de codificacin.
depuracin, incluye el diseo detallado y la codificacin.
En el mdulo de codificacin, el equipo de aseguramiento de
Esta operacin puede ser tan extensa o tan reducida como se
la calidad debe identificar las inquietudes que sean de mayor
quiera. La cantidad de depuraciones a realizar depender de:
inters, y luego desarrollar el proceso de verificacin para
El tiempo de espera hasta que se reciba el siguiente
hacer frente a dichas inquietudes. Al identificarlas, el equipo
programa.
de aseguramiento de la calidad, debe tener en cuenta los
Cronograma de implementacin. cambios que han ocurrido en las especificaciones del sistema
Recursos de prueba desde que se produjo la ltima verificacin. Los objetivos que
Eficiencia de herramientas de test. los miembros del equipo de aseguramiento de la calidad deben
Polticas del rea. considerar en el mdulo de codificacin, son:
La depuracin puede ser sintctica, estructural, o funcional. Los sistemas son mantenibles?
Se han implementado correctamente las especificaciones del
I.1. Depuracin Sintctica sistema?
Las especificaciones y expresiones del programa deben Los programas son compatibles con los estndares y
desarrollarse de acuerdo con la metodologa definida por la procedimientos?
organizacin y los requerimientos recopilados. El Existe un plan de verificacin capaz de evaluar los
programador puede chequear las expresiones y sintaxis para ejecutables?
asegurarse que ha escrito el programa de acuerdo con las
Los programas estn adecuadamente documentados?
reglas establecidas. Al chequear la sintaxis se hacen preguntas
como: Las inquietudes (concerns) a considerar durante esta tarea
La funcin a realizar, est claramente identificada? se describen a continuacin:
Las sentencias del programa estn identificadas Implementacin del control de integridad de informacin: Es
correctamente? necesario tener implementados controles especficos de
manera de lograr la precisin en el procesamiento deseado.
Las sentencias del programa estn construidas utilizando la
Los controles implementados en forma impropia, no
estructura apropiada?
alcanzarn el nivel de tolerancia aceptado, y por la mala
Los elementos de datos estn apropiadamente identificados? comprensin del propsito de los controles, sern
implementadas soluciones simplistas cuando en realidad se

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 199
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
requieren controles complejos para alcanzar los objetivos de los mismos, o deben cambiarse, o bien, debe cambiarse el
control establecidos previamente. sistema para tratar de ajustarlos a las especificaciones
Implementacin de reglas de autorizacin: Es necesario funcionales ya realizadas de la aplicacin.
verificar la implementacin de reglas de autorizacin de Programas acordes al diseo (Facilidad de uso): La
manera de dificultar su evasin. Adems, las reglas de implementacin de especificaciones del sistema puede
autorizacin no deben slo considerar la ejecucin de las invalidar algunas de los aspectos del diseo respecto de la
reglas si no tambin tener en cuenta los mtodos ms facilidad de uso, a menos que los mismos se encuentren
comunes de evadirlas. definidos especficamente. La programacin es la traduccin
Implementacin de controles de integridad de archivos: Los de especificaciones de diseo a lenguaje ejecutable por la
controles de integridad de archivos deben implementarse de mquina. Esto puede entorpecer el logro de la facilidad de
manera que minimicen la probabilidad de prdida la uso. La codificacin debe lograr la facilidad de uso, de igual
integridad, debiendo adems prevenirla y detectarla forma en que se intenta cumplir con el resto de las
oportunamente. especificaciones funcionales.
Implementacin de auditoras de rastreo: Es necesario Mantenibilidad de los programas: El mtodo de codificacin
implementar una verificacin de las auditorias para facilitar puede significar ms para el mantenimiento que las
la recuperacin de informacin de las mismas (rastreo). Si la especificaciones de diseo mismas. Las reglas de
verificacin de la auditoria contiene informacin costosa o mantenimiento deben definirse en parte por los estndares y
demanda mucho tiempo, su valor disminuye en parte por las especificaciones del sistema. Adems, el
significativamente. Las consideraciones de la programador debe utilizar su juicio y experiencia para
implementacin incluyen la cantidad de informacin a desarrollar cdigo altamente mantenible.
recuperar seguida de la facilidad de recuperacin, referencias Programas acordes al diseo (Portabilidad): La portabilidad
cruzadas de informacin para la recuperacin y el tiempo que de los programas depende del lenguaje seleccionado y de
la informacin de la auditoria necesita ser almacenada. cmo se usa ese lenguaje. Las especificaciones deben indicar
Plan de contingencia escrito: El plan de contingencia (serie lo que se hace y no se hace en la programacin para lograr su
procedimientos detallados perfilando aquellas tareas a portabilidad, y la codificacin debe apegarse a esas
ejecutar ante la ocurrencia de problemas) debe describir las especificaciones de diseo. Si la portabilidad es una
tareas preparatorias para que los datos necesarios y otros preocupacin importante y las especificaciones del programa
recursos estn disponibles cuando sea necesario activarse. fallan al definir adecuadamente la portabilidad de la
Abordar el diseo de la contingencia es de poco valor si no se codificacin, la misma quedar en manos del programador.
documenta o no estar en manos de la gente que lo utilizar. Programas acordes al diseo (Acoplamiento): Las
Consecucin del nivel de servicio deseado para el sistema: El especificaciones de diseo deben indicar parmetros a pasar
nivel de servicio deseado puede solo hacerse realidad cuando desde y hacia otros mdulos y aplicaciones del sistema.
los procedimientos y mtodos estn implementados. Uno de Normalmente es una buena prctica del programador,
los procedimientos que debe establecerse, es el monitoreo del verificar que las especificaciones del sistema estn
nivel de servicio para asegurarse que cumple con las actualizadas antes que las funciones sean codificadas. Esto no
especificaciones. La inclusin de la rutina de monitoreo solo asegura que el programa se ajusta al diseo, sino
provee seguridad en el logro del nivel de servicio a largo tambin, que las especificaciones de interconexin entre
plazo, caso contrario, se detectar a tiempo para tomar aplicaciones no se han modificado desde que se document el
medidas correctivas. diseo.
Implementacin de procedimientos de seguridad: La Desarrollo de procedimientos operativos: Los procedimientos
seguridad es la combinacin de previsin y entrenamiento, deben desarrollarse durante la fase de programacin, de
ms herramientas y tcnicas de seguridad. Los forma de poder operar la aplicacin. Durante la fase
procedimientos que aseguran que tanto las herramientas siguiente, los programas ejecutables sern operados. Los
como las tcnicas de seguridad estn disponibles y que procedimientos operativos deben ser consistentes con los
trabajen juntas, deben desarrollarse durante la fase de requerimientos operacionales definidos para la aplicacin.
codificacin. Alcance de los criterios de performance por parte de los
Cumplimiento del programa con la metodologa a adoptar: programas: La creacin del programa provee la primer
Los procedimientos a implementar deben asegurar oportunidad para los usuarios de evaluar si el sistema puede
conformidad con estndares, polticas, procedimientos y lograr el nivel rendimiento deseado. Una evaluacin
mtodos definidos por la organizacin. Si se detecta la no temprana del rendimiento, brindar una buena oportunidad
conformidad, se deberan tomar las medidas necesarias para para hacer ajustes si es necesario.
modificar el diseo y as lograr la conformidad.
K. Revisiones por Pares
Programas acordes al diseo (Correctitud): El cambio
continuo de condiciones puede provocar que varios La revisin por pares contribuye a construir el cdigo de un
miembros del personal del proyecto, ignoren los objetivos del programa a travs de revisiones informales, pero sin embargo
mismo durante la fase de codificacin. El argumento es que efectivas, acerca de la funcionalidad del programa.
siempre hay cambios, de manera que el ajuste a los objetivos Este tipo de revisin provee un anlisis esttico que evala la
del sistema ya definidos, ahora ya no es muy significativa. El estructura y funcionalidad del programa. Puede detectar
equipo de aseguramiento de la calidad, debe desalentar esta errores sintcticos en mayor medida que una simple
forma de pensar y continuamente monitorear la observacin visual, como resultado de un recorrido
implementacin de dichos objetivos. Si no se han alcanzado (walktrhough) de requerimientos.

200 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
La revisin por pares tambin puede ser formal. Las formales K.5. Conducir la Revisin
son tareas integrales en el proceso de programacin, mientras El lder de programacin del proyecto normalmente
que las informales son solicitadas a discrecin del lder de inspecciona la revisin por pares. La revisin comienza
programacin. Adems puede aplicarse a otros productos, no habiendo hecho el lder de programacin, una revisin rpida
slo al cdigo de un programa. de las reglas bsicas, explicado los objetivos, y luego conduce
El equipo de revisin por pares debe tener entre tres y seis al equipo a revisar el procesamiento del programa. El equipo
miembros. Es importante tener por lo menos tres miembros de revisin ser libre de preguntar y comentar sobre cualquier
para obtener variedad de opiniones. Las personas a considerar aspecto de la explicacin del programador y de hacer
para este equipo sern: recomendaciones y sugerencias acerca del programa.
Programadores (por lo menos dos). Generalmente, la revisin por pares es dirigida en forma
Especialistas en JCL (Job Control Language) o similar. democrtica.
Operadores. El rol del lder del equipo es asegurar que las preguntas y
Lderes de programacin. comentarios del equipo sean ordenados, asegurar los derechos
El programa de revisiones por pares se realiza ejecutando las de hacer preguntas, recomendaciones o parar en un punto
siguientes tareas: especfico si, en la opinin del lder de inspeccin, no tiene
sentido continuar discutiendo.
K.1. Establecer Reglas Bsicas para la Revisin
K.6. Conclusiones
Esto no es necesario para cada revisin pero es importante
tener buenas reglas de base. Entre dichas reglas, estn: Al final de la revisin por pares, el lder de programacin
indicar cundo no tiene ms comentarios que hacer y lo deja
reas incluidas y excluidas de la revisin por pares. Por
ejemplo: Ver si la eficiencia de los programas ser incluida. en manos del lder del equipo de revisin por pares. El lder
del equipo de revisin por pares, toma el control y resume la
Cundo se usarn reportes. informacin bosquejada de la revisin y presenta las
Mtodo para seleccionar el lder de la revisin por pares. recomendaciones del equipo de revisin. Idealmente, esto se
Ubicacin de la conduccin de la revisin. hace como actividad grupal, pero algunos equipos de revisin
Mtodo para seleccionar productos a ser revisados por pares. por pares, especialmente cuando el proceso se formaliza,
puede querer algn tiempo a solas para discutir entre ellos lo
K.2. Seleccionar al Equipo de Revisin que han escuchado y lo que van a recomendar. Las
Los integrantes del equipo deben ser seleccionados con la conclusiones y recomendaciones luego se presentan al equipo
suficiente antelacin, de manera que puedan organizar su del proyecto para su consideracin.
tiempo y estar entrenados para la revisin.
K.7. Reportes
K.3. Entrenar a los Miembros del Equipo En el proceso de la revisin por pares, se prepara el reporte
Si una persona del equipo no ha participado previamente en el documentando los resultados. Sin embargo, esto es opcional y
programa de revisin por pares, se la debe entrenar en el no es una parte esencial del proceso de revisin por pares.
proceso. El entrenamiento incluye el entendimiento de las El formato de los informes tpicos ser similar al que ya se han
reglas bsicas de esta revisin, preferentemente algn detallado con anterioridad:
entrenamiento en relaciones interpersonales acerca de cmo Informe de Inspeccin
entrevistar y trabajar con gente en el proceso de la revisin, y Resumen de la Inspeccin
entrenamiento en los estndares y metodologa de
programacin. L. Verificacin de Documentacin
K.4. Seleccionar el Mtodo de Revisin L.1. Integridad de la Documentacin
El lder del equipo debe seleccionar el mtodo de revisin. La Los criterios principales para la verificacin de la integridad
revisin en s misma consiste en dos partes. La primera es una de la documentacin, surgirn de la metodologa y estndares
explicacin general de los objetivos y funcionamiento del de la organizacin. A continuacin, se detallan criterios
programa. La segunda parte es la revisin de los programas adicionales para verificar la integridad de la documentacin:
utilizando el mtodo seleccionado. Los mtodos que pueden Contenido de la documentacin: Al ndice de cada
ser utilizados para conducir la revisin por pares son cuatro: documento le debera seguir una breve descripcin de cada
Diagrama de flujo: El programa se explica desde un diagrama elemento dentro del documento. Cada documento debe tener
de flujo. Esto es ms efectivo cuando el diagrama de flujo es un ndice de contenidos mnimos obligatorios, para poder
producido directamente desde el cdigo fuente. determinar si los documentos contienen toda la informacin
Cdigo fuente: La revisin examina cada lnea del cdigo necesaria. Si faltan elementos, hay un defecto potencial en la
fuente para entender el programa. integridad de la documentacin, la cual debera ser
Muestra de transacciones: El lder de programacin explica notificada.
los programas exponiendo los procesamientos tpicos que Usuarios del documento: Cada tipo de documento estar
ocurren a partir de una muestra representativa de escrito dirigido a un usuario en particular, el cual podr ser
transacciones. una persona o grupo, los cuales usarn el documento para
Especificaciones de programas: Las especificaciones de ejecutar una funcin. (Por ejemplo, operacin,
programas se revisan como un medio para entender el mantenimiento, diseo y programacin).
programa.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 201
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
La informacin deber ser presentada con la terminologa y Formularios: El uso de formularios especficos depende de
el nivel de detalles apropiados para el tipo de usuario al cual las prcticas de la organizacin. Parte de la informacin
est dirigido el documento. especificada en los prrafos del ndice de contenidos puede
Redundancia: Los documentos tpicos dentro del proyecto registrarse en tales formularios. Si es as, el formulario puede
(Ej. Especificacin de Requerimientos, Anlisis de referenciarse desde el prrafo apropiado. Se requiere usar los
Factibilidad, etc.) tendrn alguna redundancia. Se deber formularios que conforman los estndares de la organizacin.
incluir material introductorio en cada tipo de documento para
L.2. Grado de actualizacin de la Documentacin
proveer al lector de un marco de referencia, facilitando la
interpretacin del documento con la menor cantidad de El equipo de verificacin de la documentacin puede usar
referencias cruzadas hacia otros documentos. La informacin cualquiera de las siguientes cuatro verificaciones propuestas
que debera ser incluida en cada tipo de documento diferir para validar la actualizacin de la documentacin. Los tipos de
en su contexto y a veces en la terminologa y nivel de detalle, verificacin posibles se enumeran a continuacin:
porque intenta ser ledo por diferentes usuarios en diferentes L.2.1. Utilizar la Documentacin Vigente
puntos del ciclo de vida del software
La actualizacin puede validarse utilizando la documentacin
Flexibilidad. La flexibilidad en el uso de los documentos vigente para realizar algn cambio en la aplicacin. Esto
depende de los lineamientos vigentes en la organizacin. permite al analista de calidad buscar y confirmar la
Tamao del documento: Cada tipo de documento puede tener consistencia entre varios documentos (por ejemplo, que las
un tamao que va de unas pocas a varias decenas de hojas. La especificaciones en el documento de diseo del programa,
longitud depende del tamao y complejidad del proyecto y sean las mismas que estn en el cdigo actual) y determinar si
del juicio del Gerente de proyecto as como el nivel de la documentacin respalda el funcionamiento del sistema.
detalles necesario para el ambiente en el cual el software
deber desarrollarse y ejecutarse. L.2.2. Comparar el Cdigo Fuente con la Documentacin
Combinacin de diferentes tipos de documentos: En Esta verificacin usa la versin actual del cdigo fuente de
ocasiones, es necesario combinar algunos tipos de uno o ms programas como base de la documentacin. Esta
documentos bajo una sola portada o producir algunos verificacin es realizada sobre la base de una muestra elegida
volmenes con los mismos tipos de documentos. Los tipos de al azar de los programas o parte de los mismos y se las
documentos que pueden ser combinados son manuales para verifica contra la documentacin. El objetivo es determinar si
el usuario, operaciones, y mantenimiento del programa. Para el cdigo es representativo de la documentacin que se posee
sistemas de gran envergadura, puede ser preparado un del mismo.
documento para cada mdulo. Algunas veces el tamao del L.2.3. Verificar la Vigencia de la Documentacin
documento puede requerir ser repartido en varios volmenes
para hacer ms fcil su uso. En esos casos, debern estar Las personas que elaboran la documentacin deben verificar
separados por secciones, sub-secciones, etc. que est vigente. Deben hacerse preguntas especficas, como
stas:
Formato: El formato obligatorio debe ser verificado, y debe La documentacin es 100% representativa de la aplicacin
recomendarse el uso del mismo. en operacin?
Secuencia de contenido: En general, el orden de las secciones La documentacin cambia cada vez que se hace un cambio
y prrafos de un tipo de documento debe ser el mismo que el
en el sistema?
que se muestra en el ndice de contenidos obligatorios. El
orden puede cambiarse si enriquece la presentacin, caso Los individuos que cambian el sistema confan en que la
contrario, debera ajustarse a los estndares ya definidos por documentacin es la correcta?
la organizacin. L.2.4. Verificar la Actualizacin de la Documentacin con el
Ttulos de secciones/prrafos. Estos ttulos generalmente son Usuario
los mismos que los mostrados en la ndice de contenidos. Los usuarios finales deben preguntarse si la documentacin
Pueden modificarse para reflejar la terminologa del software para el sistema est actualizada. Si los usuarios finales no
a documentar si el significado le agrega valor a la estn familiarizados con la documentacin, necesitarn que se
presentacin. Se pueden agregar o eliminar secciones o seleccione una muestra pidiendo piezas especficas de la
prrafos segn sea necesario. documentacin. La documentacin seleccionada debe ser
Expansin de los prrafos: La mayora de los tipos de familiar para el usuario final de manera que se les pueda dar
documentos definidos por la metodologa, estndares o partes representativas del documento y pedir que validen si
lineamientos de la organizacin tienen prrafos con un ttulo estn actualizadas o no.
general y una lista de puntos que pueden discutirse dentro de
ese prrafo. La intencin de esa lista no es establecer la VI. NIVEL DE SERVICIO ESPERADO
discusin de cada uno de estos puntos, sino sugerir la En el presente captulo se describe el Nivel de Servicio
consideracin de los mismos al escribir el prrafo. Este y Esperado, a travs de la cuantificacin de los resultados
todos los otros prrafos pueden expandirse y subdividirse esperados.
para llevar a cabo una mejor presentacin de la informacin.
Diagramas de flujo y tablas de decisin: Los grficos de las A. Generalidades
soluciones a problemas en forma de diagramas de flujo o A.1. Necesidad de cuantificacin
tablas de decisin, pueden estar incluidos o ser un apndice
del documento. Toda aplicacin de un modelo o servicio, requiere de ciertos
niveles de servicio o indicadores que permitan obtener una

202 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
cuantificacin de los resultados de la aplicacin del mismo y/o Comenzando con el problema se pueden rastrear las posibles
establecer las expectativas para aplicaciones futuras. Para ello, causas.
se describen cuatro indicadores.
Los indicadores aqu presentados, tanto su definicin como el B. Indicadores
valor objetivo sugerido, constituyen slo una muestra no
B.1. Indicador A
esttica del tipo de indicadores que habra que considerar; es
decir se pueden agregar nuevos y/o modificar los aqu El indicador A establece el nivel tiempo promedio en que debe
presentados, conforme a la capacidad de la organizacin y a la poder adaptarse el plan general de aseguramiento de la calidad
experiencia en la aplicacin del modelo. a un proyecto en particular. El esquema correspondiente al
indicador A se muestra en la figura 19.
A.2. Definicin de trminos
Con el objeto de clarificar diferentes trminos que se suelen
confundir o usar indistintamente y para precisar los acuerdos
de nivel de servicio, se presenta a continuacin las siguientes
definiciones, propuesta en [6]:
Errores: Estos son equivocaciones humanas como los errores
tipogrficos o sintcticos.
Defectos: Estos son condiciones impropias de un programa
que generalmente son el resultado de un error. No todos los
errores producen defectos en el programa, como comentarios
incorrectos o algunos errores de documentacin. Por el
contrario, un defecto puede producirse por causas ajenas al
programador, como problemas con las herramientas.
Bugs: Son defectos del programa que se encuentran operando
el mismo, ya sea durante la prueba o durante su uso. Los bugs
provienen de los defectos, pero no todos los defectos causan
bugs (algunas estn latentes pero nunca se encuentran). Los
defectos pueden encontrarse muchas veces, dando como
resultado mltiples bugs por defecto.
Fallas: Es un mal funcionamiento en una instalacin de
usuario. Puede ser provocado por un bug, una instalacin
incorrecta, una falla del hardware, etc.
Problemas: Son dificultades encontradas por los usuarios. Fig. 18. Proceso del mdulo de metodologa, estndares y
Pueden provenir de fallas, mal uso o mal entendimiento. Los procedimientos
problemas son eventos relacionados con los humanos,
contrariamente a las fallas que son eventos relacionados con Descripcin: Tiempo promedio insumido en la generacin
el sistema. del plan especfico de aseguramiento de la calidad para un
Entradas Unitarias: Corresponde a cada uno de los elementos proyecto dado.
del conjunto que componen la entrada a cada uno de los Valor objetivo sugerido: Menor o igual a 1 semana.
mdulos del modelo de Aseguramiento de Calidad de
Software propuesto. Ejemplos de estos elementos o entradas
unitarias son documentos, especificaciones, planes,
diagramas, etc.
En la tabla XVII se resumen algunas de las definiciones
establecidas:

TABLA XVII. DEFINICIN DE TRMINOS


Fig. 19. Tiempo promedio en que se debe adaptar el plan
Categora tems medidos Causas
general al proyecto en particular
Errores Acciones humanas Equivocaciones del programador

Defectos Propiedades del programa Errores


B.2. Indicador B
Bugs Mal funcionamiento del programa Defectos del programa
El indicador B establece el nivel de la capacidad de trabajo
concurrente del equipo de SQA en su conjunto. El esquema
Fallas Mal funcionamiento del sistema Bugs y otros mal funcionamientos correspondiente al indicador B se muestra en la figura 20.
Problemas Percepciones humanas Fallas, errores humanos, incomprensin humana Descripcin: Capacidad mxima de entradas unitarias en
proceso de verificacin concurrente.
En la figura 18 se muestran las relaciones entre las categoras Valor objetivo sugerido: Hasta 10 entradas unitarias.
de la tabla anterior. Este diagrama tiene una doble utilidad:

Comenzando con el error del programador, se puede rastrear


en el diagrama hasta llegar al problema.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 203
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Fig. 20. Nivel de capacidad de trabajo concurrente de SQA
Fig. 23. Estructura en tres niveles del equipo de aseguramiento
B.3. Indicador C de la calidad
El indicador C establece el nivel de la rapidez de trabajo del
equipo de SQA. El esquema correspondiente al indicador C se Cada sub-equipo, confirmado por un analista de SQA Senior y
muestra en la figura 21. sus Analistas de SQA Semisenior, podra ser asignado a un
Descripcin: Tiempo mximo promedio de verificacin para proyecto en particular, mientras que, el Lder de SQA de la
una entrada unitaria. organizacin, tiene el control sobre los sub-equipos y
mantiene una visin general que comprende a todos los
Valor objetivo sugerido: Menor o igual a 1 semana.
proyectos de dicha organizacin.

B. Responsabilidades del equipo


A continuacin de describe, slo a modo de ilustrativo, las
principales responsabilidades de cada uno de los perfiles
establecidos en la estructura de la figura 23.
B.1. Lder de SQA
Mantenimiento del dialogo primario con los referentes del
rea de desarrollo.
Fig. 21. Rapidez de trabajo de SQA
Administracin del presupuesto de los proyectos para la
funcin de SQA.
B.4. Indicador D Responsable de asegurar al equipo de trabajo los elementos
El indicador D establece el nivel de eficacia del trabajo del que ste o cualquiera de sus integrantes necesite.
equipo de SQA. El esquema correspondiente al indicador D se Coordinacin de las necesidades polticas de los proyectos
muestra en la figura 22. con las capacidades operativas disponibles.
Descripcin: Porcentaje de defectos detectados en el proceso
Coordinacin de responsabilidades entre los analistas de
de aseguramiento de la calidad del software (Considerando el
SQA de los distintos proyectos.
total de defectos de un sistema desde el inicio del proyecto
hasta 6 meses despus de su puesta en produccin). Mantenimiento de la conduccin de todo el equipo de SQA.
Valor objetivo sugerido: 75% de los defectos Determinacin de los objetivos de SQA, para etapa de un
proyecto y control de su cumplimiento.
Elaboracin peridica de informes de avance y seguimiento.
Participacin en reuniones tcnicas, siempre que resulte
necesario.
Participacin en los mdulos que se indica en el modelo de
aseguramiento de la calidad propuesto.
Supervisin (directa o indirecta) de los analistas de SQA.
Evaluacin de cada integrante del equipo.
Fig. 22. Nivel de eficacia del trabajo de SQA
Responsable de la disciplina y cumplimiento del equipo.

VII. EQUIPO DE SQA B.2. Analista de SQA Senior


Aseguramiento del cumplimiento de su presupuesto
En el presente captulo se detalla el Equipo de SQA sugerido,
asignado.
indicando su estructura y responsabilidades.
Aplicacin de la metodologa de aseguramiento de la calidad
A. Estructura del equipo aseguramiento de la calidad para los proyectos asignados.
El equipo de trabajo de SQA puede tener variadas estructuras Aseguramiento del cumplimiento de los objetivos fijados por
y depender de la propia realidad y caractersticas particulares el lder de SQA.
de la organizacin en la cual el equipo se desempea. Aseguramiento del cumplimiento de la metodologa de
En el presente trabajo se presentar una estructura en tres trabajo fijada.
niveles, muy comn en varias organizaciones. En la figura 23
se esquematiza esta estructura:

204 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Participacin en los mdulos que se indica en el modelo de las razones ya enunciadas que impiden la aplicacin de la
aseguramiento de la calidad propuesto. dicha funcin.
Conduccin y administracin del equipo asignado a su cargo. Aunque instanciada en la metodologa IDEAL, este enfoque
Asignacin de tareas a los analistas de SQA Semi-senior. es independiente de la metodologa de desarrollo que esa
organizacin utilice. La independencia del enfoque con
Supervisin de las tareas de los analistas de SQA Semi-senior
respecto a metodologa utilizada por la organizacin, se debe a
que le correspondan en cada proyecto.
qu el enfoque presentado es general, aplicable a fases
Elaboracin peridica de informes de gestin de su equipo. comunes de cualquier metodologa y a que no obliga a su
Elaboracin de informes por excepcin cada vez que resulte aplicacin rgida, sino que permite su adaptacin a esa
necesario. metodologa y a la propia realidad de la organizacin.
Comunicacin inmediata en situaciones que excedan su Asimismo, el enfoque presentado constituye un complemento
capacidad de control o decisin. no disruptivo de la metodologa de desarrollo que ya utiliza
Responsable primario de la disciplina y cumplimiento de su una organizacin y no obliga a profundos cambios en la
equipo. misma. Por el contrario, si la organizacin no utiliza una
Colaboracin tcnica con el Lder de SQA en las reuniones o metodologa, incentiva la utilizacin de una.
consultas que ste requiera. Algunos de los principales beneficios esperados de la
aplicacin constante y rigurosa de la funcin de SQA,
Asesoramiento al Lder de SQA en toda cuestin tcnica
mediante el enfoque presentado, son los siguientes:
vinculada a su rea de influencia. El software tendr menos defectos latentes, como
B.3. Analista de SQA Semi-senior consecuencia, se reducir el esfuerzo y el tiempo durante las
etapas de prueba y mantenimiento.
Participa en los mdulos que se indica en el modelo de
aseguramiento de la calidad propuesto. Se dar una mayor fiabilidad y, por tanto, una mayor
satisfaccin del cliente.
Cumplimiento detallado con la metodologa de trabajo
impuesta y con las pautas que le fijen sus supervisores. Se podrn reducir los costos de mantenimiento (un porcentaje
sustancial de los costos totales del software).
Elaboracin de informes detallados de cada unidad de
anlisis. El tiempo y el costo total del ciclo de vida del software
disminuir.
Elaboracin de informes por excepcin cada vez que resulte
necesario. Por el lado negativo, la funcin de SQA podra resultar
problemtica por las siguientes razones:
Comunicacin inmediata en situaciones que excedan su
capacidad de control o decisin. Es difcil institucionalizar en organizaciones pequeas, en las
que no estn disponibles los recursos necesarios para llevar a
Colaboracin tcnica con el Analista de SQA Senior en las
cabo esas actividades.
reuniones o consultas que ste requiera.
Representa un cambio cultural, y el cambio nunca es fcil.
VIII. CONCLUSIONES Requiere un gasto que, de otro modo, nunca se hubiera
En el presente captulo se establecen las Conclusiones destinado explcitamente a la ingeniera del software o de
obtenidas al concluir el presente trabajo, sealando los conocimiento o al aseguramiento de la calidad.
beneficios y problemas esperados en la aplicacin de la B. Evaluacin costo-beneficio
funcin de SQA en una organizacin. Tambin se establecen
A la hora de establecer la funcin de aseguramiento de la
las bases para un anlisis costo-beneficio.
calidad del software en una organizacin, es razonable
A. Beneficios y problemas preguntarse si valdr la pena, si el costo de su establecimiento
Aunque pocos profesionales pondran en duda la necesidad de y aplicacin continua se ver justificado por los beneficios
calidad en el software, muchos no estn interesados en alcanzados.
establecer funciones de SQA formales. Las principales En el marco de un anlisis bsico de costo-beneficio, se puede
razones de esta aparente contradiccin son las siguientes: afirmar que la funcin de SQA en una organizacin ser
Los responsables del desarrollo se resisten a hacer frente a los efectiva si se cumple con la siguiente: A > B + C siendo:
costos extras inmediatos y les cuesta ver los beneficios a A: Costo de las fallas que aparecen sin la aplicacin de la
largo plazo. funcin de SQA. Esto incluye, entre otros, las actividades de
Por desconocimiento, muchos profesionales creen que ya reparacin y re-trabajo, resolucin de quejas del cliente,
estn haciendo todo lo que hay que hacer con respecto al retorno y reemplazo del producto, soporte y ayuda al cliente, y
aseguramiento de la calidad. el pago de penalidades contractuales.
B: Costo de la propia aplicacin de la funcin de SQA. Esto
Pocos saben dnde situar esa funcin dentro de la incluye, entre otros, los salarios del equipo de SQA y las
organizacin. actividades de planificacin, revisiones y auditorias.
Todos quieren evitar cierto nivel de burocracia que la funcin C: Costo de las fallas que no se encuentran con la aplicacin
de SQA tiende a introducir en el proceso de ingeniera del de la funcin de SQA. Esto incluye los mismos puntos que A,
software o de conocimiento. pero deberan ser dramticamente inferiores.
En el presente trabajo, se ha presentado un enfoque prctico Sin embargo, es importante resaltar que en un anlisis ms
para la aplicacin de la funcin de aseguramiento de la calidad minucioso habra que considerar tambin otros aspectos, tales
del software en una organizacin, que intenta echar luz sobre como:
Reducciones en los costos de las pruebas y de la integracin.

Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico. 205
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Reduccin del nmero de cambios en las primeras versiones. X. FINANCIAMIENTO
Reduccin en los costos de mantenimiento. Las investigaciones cuyos resultados se presentan en este
y otros de no tan fcil cuantificacin, tales como: trabajo fueron parcialmente financiados por subsidio del
Mejora en satisfaccin del cliente. proyecto UNLa 33B102.
Mejora en la imagen de la imagen externa de la organizacin.
Mejora en la imagen interna del equipo de ingeniera del Eduardo Diez. Es Profesor Asociado del Area de
software o de conocimiento. Ingeniera de Software en la Licenciatura en
Sistemas (Res. CONEAU 1089/12) del
Finalmente, tambin es necesario tener en cuenta al momento Departamento de Desarrollo Productivo y
de hacer un anlisis costo-beneficio, que la funcin de SQA Tecnolgico de la Universidad Nacional de Lans
no necesariamente est circunscripta al mbito de la ingeniera y Profesor Adjunto Regular del rea de Ingeniera
del software o de conocimiento, sino que evoluciona como de Software en la Carrera de Ingeniera
parte de un esfuerzo general de gestin en la organizacin, Informtica de la Facultad de Ingeniera de la Universidad de Buenos
dirigido a mejorar la calidad. A ese esfuerzo general de Aires. Es Profesor de la Maestra en Ingeniera de Software
gestin dentro de la organizacin se lo suele denominar (Acreditada por Resolucin CONEAU nro 239/04) en el marco del
gestin de la calidad total. Convenio Universidad Politcnica de Madrid - ITBA y Profesor de
Posgrado en la Maestra en Ingenieria de Sistemas de Informacin en
IX. BIBLIOGRAFA la Escuela de Posgrado de la Facultad Regional Buenos Aires de la
Universidad Tecnolgica Nacional. Es Investigador del Grupo de
[1] Roger S. Pressman (2001). Software Engineering: A Investigacin en Sistemas de Informacin y dirige del Laboratorio de
Practitioner's Approach. McGraw-Hill. Investigacin y Desarrollo en Aseguramiento de Calidad de Software
[2] J. Mc Call, P. Richards y G. Walters (1977). Factors in Software de la Licenciatura en Sistemas y de la Maestria en Sistemas de
Quality. Rome Air Development Center, United States Air Informacin del Departamento de Desarrollo Productivo y
Force. Tecnolgico de la Universidad Nacional de Lans. Su areas de
[3] R. Grady y D. Caswell (1987). Software Metrics: Establishing a interes en investigacin son Calidad de Software y Modelos de
Company-Wide Program. Prentice Hall. Madurez de Procesos de Software. Es Director del Proyecto UNLa
[4] Carnegie Mellon University - Software Engineering Institute 33B102 Aseguramiento de la Calidad para Proyectos de Explotacin
(1994) The Capability Maturity Model: Guidelines for de Informacin. Es Analista de Sistemas y Licenciado en Sistemas
Improving the Software Process. Addison Wesley. por la Universidad de Belgrano. Es Especialista en Ingeniera de
Sistemas Expertos y Magister en Ingeniera de Software por el
[5] William E. Perry (2000). Effective Methods for Software
Instituto Tecnolgico de Buenos Aires y por la Facultad de
Testing. Wiley Computer Publishing.
Informtica de la Universidad Politcnica de Madrid.
[6] Watts S. Humphrey (1989). Managing the Software Process.
Addison Wesley.

206 Eduardo Diez. 2013. Aseguramiento de la Calidad en la Construccin de Sistemas Basados en el Conocimiento: Un Enfoque Prctico
Revista Latinoamericana de Ingeniera de Software, 1(5): 167-206, ISSN 2314-2642
Estudio Comparativo de Plataformas Cloud
Computing para Arquitecturas SOA
Franco Bocchio 1,2
1. Programa de Maestra en Ingeniera de Sistemas de Informacin.
Escuela de Posgrado, Facultad Regional de Buenos Aires. Universidad Tecnolgica Nacional. Argentina.
2. Laboratorio de Investigacin y Desarrollo en Arquitecturas Complejas.
Grupo de Investigacin en Sistemas de Informacin. Universidad Nacional de Lans. Argentina.
franco.bocchio.ar@member.mensa.org

ResumenLas plataformas Cloud Computing estn fundadas y trata un paradigma, en tanto que los servicios web son solo
en un paradigma tecnolgico moderno que ofrece nuevas una forma posible de consumar la infraestructura utilizando
alternativas a empresas de diversas envergaduras para una estrategia de implementacin especfica.
implementar modelos de negocios innovadores. Con estos nuevos
Podemos decir entonces que SOA es un paradigma
modelos de negocio las empresas pequeas pueden hacer uso de
las plataformas Cloud Computing disponiendo de la posibilidad
arquitectnico que permite el tratamiento de procesos de
de incrementar, tanto progresiva como abruptamente, su negocio distribuidos de nuevos sistemas heterogneos que se
capacidad de cmputo y almacenamiento de datos en funcin de encuentran bajo el control o responsabilidad de diferentes
las necesidades y en tiempo real, implicando una oportunidad propietarios, siendo sus conceptos clave principales los
singular para la competencia de mercado. servicios, la interoperabilidad entre lenguajes, y el bajo
En adicin, las arquitecturas orientadas a servicios otorgan acoplamiento. En tanto que los ingredientes principales de
caractersticas de grandes beneficios para los sistemas modernos, SOA son la infraestructura, la arquitectura y los procesos.
permitiendo altos niveles de reutilizacin de funcionalidades, Es preciso tambin aclarar que SOA no es una bala de
encapsulamiento y nuevas oportunidades para sociedades entre
plata (silver bullet) ni una tecnologa especfica, por lo cual,
proveedores y consumidores de servicios. En este trabajo se
propone, entonces, analizar y comparar las plataformas de los hay casos en los cuales SOA puede ser un paradigma
principales proveedores de servicios Cloud Computing, alineados apropiado y otros en los cuales pueden no ser la solucin ms
a los distintos modelos arquitectnicos SOA que de las adecuada o conveniente.
plataformas antedichas se desprenden con el objetivo de SOA puede ser entendido tambin como un modelo de
encontrar similitudes y diferencias, as como tambin faltantes. diseo cuyas races conceptuales establecen los principios de
encapsulamiento de la lgica de la aplicacin por medio de
Palabras Clave. Cloud Computing, Arquitectura orientada a servicios, los cuales pueden interactuar a travs de protocolos
Servicios, Plataformas. de comunicacin estandarizados.
La arquitectura orientada a servicios representa la
I. QU ES UNA ARQUITECTURA SOA? evolucin a un nuevo modelo que permite la construccin de
aplicaciones distribuidas. Los servicios implementados en esta
SOA es una representacin de una arquitectura abierta,
arquitectura son distribuidos en componentes que proveen
extensible y federada basada en composicin, que promueve la
interfaces bien definidas (las cuales funcionan como contratos),
orientacin a los servicios interoperables e independientes de
que para el caso de los servicios web procesan y distribuyen
los proveedores, los cuales pueden ser identificados en
mensajes basados en XML.
catlogos con gran potencial de reutilizacin e implementados
Las soluciones basadas en servicios encuentran sentido
como servicios Web. SOA puede establecer una abstraccin de
cuando se trata la construccin de aplicaciones y sistemas que
la lgica del negocio y la tecnologa, resultando en un bajo
resuelven problemas organizacionales, departamentales y
acoplamiento entre dominios [1].
corporativos.
SOA es el producto de la evolucin de plataformas de
Un negocio con mltiples sistemas y aplicaciones
tecnologa que se solan utilizar con frecuencia, preservando
desarrolladas en diferentes plataformas pueden utilizar SOA
las caractersticas exitosas de las arquitecturas tradicionales.
para construir soluciones integradas de bajo acoplamiento que
Podemos entender a las arquitecturas SOA como un estilo de
implementan flujos de trabajos unificados y cooperativos [3].
diseo que gua los aspectos de creacin y uso de servicios de
negocio a travs de su correspondiente ciclo de vida. Adems El siguiente ejemplo esclarece el marco terico de SOA: el
define y aprovisiona la infraestructura de tecnologas de la concepto de servicios puede resultar familiar para cualquiera
informacin que permite a diferentes aplicaciones intercambiar que realice compras en lnea utilizando aplicaciones web de
datos y participar en los procesos de negocio, tipo e-commerce (comercio electrnico; algunos ejemplos de
independientemente del sistema operativo o de los lenguajes de estas aplicaciones pueden ser Ebay, Amazon, etc). Una vez
programacin con los cuales estos servicios (y aplicaciones) que se realiza un pedido, se debe proporcionar al sistema los
fueron desarrollados e implementados [2]. datos de una tarjeta de crdito, la cual es tpicamente
autorizada y actualizada (gasto) por un proveedor de servicios
Muchas definiciones de SOA incluyen el trmino servicios
externo. Una vez que la orden ha sido consumada, la compaa
web, sin embargo, es necesario hacer la distincin de estos
de comercio electrnico coordina la entrega con un proveedor
conceptos y aclarar que SOA no es lo mismo que servicios
de servicios de envos para entregar el producto que el cliente
Web puesto que SOA, a diferencia de los servicios web, define
Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 207
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
adquiri. SOA no es la primera arquitectura distribuida que TABLA 1. DESCRIPCIN DE LOS COMPONENTES QUE INTEGRAN LA
permite utilizar componentes a travs de interfaces de dominios ARQUITECTURA GENRICA

independientes, por lo cual su aporte diferencial no reside Trmino Definicin


precisamente en esta caracterstica. SOA usa los servicios web
Este componente (Service Agents) permite a
como puntos de entrada (entry points) de las aplicaciones, los las implementaciones de los servicios de negocio
cuales conceptualmente son equivalentes a los componentes acceder a otras instancias de servicios, con el
proxis y stubs tradicionales utilizados por aos en arquitecturas propsito de reutilizar funcionalidades, testear
minimizar las pruebas funcionales (las
distribuidas, con excepcin de que la interaccin entre los Agentes de funcionalidades reutilizables se encuentran
proveedores de servicios web y los consumidores se Servicio encapsuladas en componentes y se implementan
caracterizan por presentar mucho menor acoplamiento. una nica vez),minimizar el mantenimiento
SOA tambin es un paradigma nico en tanto que incorpora (cuando se implementan mejoras sobre un
componente de servicios reutilizables, todos los
factores que son crticamente importantes para el negocio, tales servicios que refieran a este servicio podrn
como fiabilidad de servicios, integridad de mensajes, beneficiarse con las mejoras implementadas).
integridad transaccional y protocolos de seguridad para los Se refiere a los componentes de interfaz de
Componentes de
mensajes. IU
usuario que sern implementados y desplegados en
Muchas aplicaciones implementan modelos de esta arquitectura
Estos componentes contienen la lgica de
comunicacin sincrnicos rgidos bajo un flujo de trabajo lineal acceso a datos (Data Access Logic Components),
el cual es altamente susceptible a fallas en algn punto. SOA Componentes de
abstrayendo y separando concretamente la capa de
Lgica de Acceso a
asume que los errores ocurren y en efecto ocurrirn, para lo Datos
lgica del negocio de la capa de acceso a datos
cual ofrece estrategias para una eficiente administracin de (separacin y asignacin de responsabilidades por
capas).
estos. Por ejemplo, si un servicio falla al recibir una peticin Corresponden a la implementacin de los
de mensaje en su primer intento, la arquitectura SOA propone servicios de negocio, comprendiendo
que su implementacin reintente el envo de este mensaje, y si Componentes de fundamentalmente las funcionalidades y
el servicio se encontrara por completo no disponible (lo cual Negocio operaciones de negocio requeridas. Implementan
las operaciones definidas en las interfaces del
nunca debera ocurrir en una SOA robusta), la arquitectura negocio (Service Interfaces).
debe estar diseada para evitar posibles fallas catastrficas que Hace referencia a los componentes que
podran interrumpir por completo la recepcin de peticiones Componentes de
implementan procesos competentes a la capa de
Procesos de IU
(requests). interfaz de usuario.
En conclusin, y en un sentido ms amplio, podemos decir Corresponden a las entidades del modelo de
Entidades de dominio (Business Entities). Son utilizadas tanto
que SOA representa un proceso de maduracin de la tecnologa Negocio por los servicios como por los componentes de
como el incremento de uso de los servicios web y tecnologas acceso a datos.
de integracin en general. SOA reconoce que los sistemas de Este componente encapsula e implementa
misin crtica basadas en tecnologas distribuidas deben mecanismos de flujos de trabajo (Business
Flujo de Trabajo
Workflow) que permiten formalizar y organizar los
proporcionar ciertas garantas. Debe asegurar entonces que las del Negocio
procesos del negocio para el modelo de dominio en
solicitudes de servicio se entreguen correctamente, que sern cuestin.
respondidas en el momento oportuno y que se publicarn sus Algunas de las fuentes de datos posibles (Data
polticas de comunicacin e interfaces [4]. Fuentes de datos
Sources) podran ser una base datos relacional,
archivos de datos, un data grid, bases de datos
A CONTINUACIN SE PRESENTA UN EJEMPLO DE NoSQL, etc.
Las interfaces de servicios funcionan como
ARQUITECTURA ALINEADA A SOA Interfaces de contratos, definiendo formalmente las operaciones
En la Figura 1 se presenta un diagrama que modela una Servicios (capacidades) que brindarn los servicios basados
en esta arquitectura.
arquitectura genrica de 3 capas alineada a SOA. A
Estos componentes (Security, Operational
continuacin se presenta la Tabla 1, que describe cada uno de Management, Communication) operan de manera
los componentes que integran esta arquitectura genrica. transversal porque su funcionamiento debe
Seguridad,
considerarse en todas las capas. La aplicacin
gestin operativa,
II. ESTADO DE LA CUESTIN Comunicaciones
podra utilizar tambin componentes para realizar
la administracin de excepciones, autorizar a los
A. Caractersticas de SOA: usuarios a realizar ciertas tareas y comunicarse con
otros servicios y aplicaciones.
Bajo acoplamiento: el acoplamiento es el grado en que Se refiere a los usuarios que harn uso de la
Usuarios
cada mdulo de programa depende de cada uno de los otros aplicacin.
a. Componentes de la arquitectura genrica. Adaptado de [Microsoft Corp., 2003].
mdulos de programa. El bajo acoplamiento generalmente se
correlaciona con la alta cohesin y viceversa [5].
Los servicios web poseen la caracterstica de estar basados Digamos que, sin embargo, el propietario de la unidad
en una estructura flexible mediante la cual, una vez que una central quiere remplazar la mquina antigua con un nuevo
pieza de software ha sido expuesta como un servicio web, es servidor Sun. Como vemos en la parte 2, la mquina Sun
relativamente fcil de mover a otro equipo, puesto que la sustituye a la unidad central, pero la minicomputadora, que es
funcionalidad se encuentra abstrada de la interfaz que define el el consumidor del servicio web no tiene conocimiento de esta
contrato de sus operaciones [6]. sustitucin. La minicomputadora se sigue comunicando por
medio del protocolo SOAP. Es completamente transparente
La figura 2 ilustra el bajo acoplamiento del servicio. En la
para el consumidor del servicio (cliente) que la interfaz del
parte 1 del dibujo, un miniordenador accede a un servicio web
servicio est implementada en una computadora central, en un
que se ha expuesto en un mainframe.
equipo Windows o en cualquier otra plataforma. Una vez que
la unidad central ha sido sustituida por la mquina Sun, la

208 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
minicomputadora contina accediendo al servicio sin percibir WSDL, de manera que se establezca un vnculo entre el cliente
este cambio. (consumidor del servicio) y la nueva direccin del servicio web
en el dominio B.

Fig. 1. Arquitectura de 3 capas alineada a SOA. Adaptado de [70].


Fig. 2. Bajo acoplamiento del servicio. Adaptado de [6]
En las partes 3 y 4 de la figura antedicha el proceso de
sustitucin de ordenadores contina. El propietario de la Dada nuestra amplia experiencia con la Internet en los
minicomputadora la remplaza con un PC. El PC que est ltimos aos, la propiedad de transparencia de la red puede no
equipado con su propia interfaz SOAP puede acceder parecer tan importante, pero en realidad se trata de un aspecto
fcilmente a los servicios web expuestos por la mquina Sun. fundamental para el futuro de la informtica. La combinacin
Si por cualquier razn el propietario del servicio decidiera de acoplamiento dbil y la transparencia de red presentan nada
sustituir la mquina Windows por otro servidor Sun, no habra menos que una revolucin en la informtica empresarial, no
problema alguno; una vez ms se podra acceder al servicio sin porque se trate de una idea novedosa, sino debido a que la
necesidad de realizar ninguna modificacin a ste. La figura 2, infraestructura y los estndares han llegado por fin para que sea
que ilustra el bajo acoplamiento de servicios. una realidad. Las empresas han gastado fortunas en los ltimos
A.1. Transparencia de Red aos en la gestin de interfaces que hacen factible la
interoperabilidad de los equipos en entornos distribuidos.
Debido a que el acoplamiento entre los servicios web es Algunas empresas Norteamericanas gastan cientos de miles de
"flojo" y que los consumidores y los proveedores de servicios millones de dlares por ao en tecnologas de la informacin
de Internet envan mensajes entre s mediante protocolos [6].
abiertos de Internet, los servicios web ofrecen transparencia Reusabilidad y granularidad: Un servicio es un software
total de la red a los que los emplean. Transparencia de la red se reutilizable y auto-contenido, independiente de las aplicaciones
refiere a la capacidad de un servicio web para estar activos en y las plataformas de computacin en las cuales se ejecuta. Los
cualquier parte de una red, o grupo de redes, sin tener ningn servicios tienen interfaces bien definidas y permiten una
impacto en su capacidad de funcionar. Debido a que cada correspondencia entre las tareas de negocio y los componentes
servicio web tiene su propia URL, servicios web tienen una exactos de TI necesarios para ejecutar la tarea. Los servicios
flexibilidad similar a sitios web en Internet. De la misma SOA se centran en tareas de nivel de negocio, actividades e
manera que no hay diferencia en qu parte del mundo un sitio interacciones. La relacin entre los servicios y los procesos de
web est alojado para poder ser navegado, un servicio web se negocios es crtica. Un proceso de negocio es un conjunto de
puede encontrar en cualquier equipo que est conectado a la tareas de negocios relacionados que abarcan personas, sistemas
red y se comunica con protocolos de Internet. Cuando e informacin para producir un resultado o producto especfico.
navegamos por ejemplo Amazon.com para comprar un libro, Con SOA, un proceso se compone de un conjunto de servicios.
no existe ninguna necesidad de conocer dnde residen las Antes de SOA, el foco estaba en sub-tareas tcnicas. Puede
aplicaciones a las cuales estamos est accediendo con nuestro haber odo que la gente llama a esto un buen "nivel de
navegador, lo nico que se necesita saber es la direccin web. granularidad" o bajo "grado de abstraccin." Por la simplicidad
Un mismo servicio web puede estar situado en dos de SOA, sabemos que es ms que una simple relacin uno-a-
dominios diferentes. Si por alguna razn el dominio A se uno entre los pasos de un proceso (como la comprobacin de
encontrara no disponible, entonces el consumidor del servicio una calificacin crediticia) y los servicios que estn diseados
podra acceder al servicio web desde el dominio B de manera para apoyar ese proceso de negocio flexible.
alternativa. Lo nico que tiene que ocurrir es la modificacin
de la direccin (URL) del servicio web en el documento

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 209
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
Cada empresa tiene una visin diferente respecto de la
granularidad que requieren sus servicios en funcin de su
diseo de negocios. En pocas palabras, la granularidad es la
cantidad de funcin que un servicio expone. Por ejemplo, un
servicio de granularidad fina proporciona unidades ms
pequeas de un proceso de negocio, y un servicio de
granularidad gruesa proporciona una tarea de negocio ms
amplia que contiene un mayor nmero de pasos [7].
Los servicios no pueden ser demasiado grandes o
demasiado pequeos, sino que deben tener la granularidad
adecuada. Disear y decidir la granularidad de los servicios es
una cuestin clave que conduce al xito. Si el servicio es
demasiado grande, ser menos reutilizable. Si el servicio es
demasiado pequeo, provoca una disminucin en el
rendimiento y mala asignacin de tareas entre los negocios y
los servicios que los apoyan.
Determinar qu tan grande o pequeo debe disearse un
Fig. 3. Sistemas distribuidos con diferentes propietarios. Adaptado de [3].
servicio es funcin qu tan atmica es la composicin de su
funcin. Las formas de lidiar con problemas y realizar
Es importante observar que este concepto de servicios es modificaciones en los entornos con diferentes propietarios y en
una de las claves para hacer que SOA sea el lenguaje de los entornos donde se dispone de control total, pueden variar. No
negocios. La mayora de los lderes empresariales no se puede implementar la funcionalidad y modificar el
comprenden el valor de SOA. En su lugar, se centran -y con comportamiento de la misma manera en grandes sistemas
razn- en el problema en cuestin. Debido a estos servicios de como en sistemas ms pequeos. Una consideracin
negocio, este lenguaje y la vinculacin de los servicios de importante es que "la poltica" entra en juego: hay que
negocio y SOA se convierten en una pieza fundamental para la comprometerse con los dems, y hay que aceptar que existen
solucin del problema, y constituyen la futura misin diferentes prioridades y soluciones. Porque no se puede
estratgica [7]. controlar todo, hay que aceptar que no siempre puede ser capaz
Sistemas distribuidos: A medida que las empresas crecen se de hacer las cosas a su manera [3].
vuelven ms y ms complejas, y cada vez se involucran ms
empresas y sistemas. Hay una integracin y un cambio A.2. Heterogeneidad
constantes. SOA es muy adecuado para tratar con sistemas Una diferencia muy importante entre los sistemas pequeos
distribuidos complejos. De acuerdo con el modelo de y grandes es la falta de armona. Todos lo sabemos por
referencia SOA de OASIS, es un paradigma para "organizar y experiencia (aunque podramos no estar de acuerdo acerca de si
utilizar capacidades distribuidas. se trata de un fenmeno natural o el resultado de un mal
NOTA: Una definicin ms adecuada para "capacidades diseo). Los grandes sistemas utilizan distintas plataformas,
distribuidas" en IT sera "sistemas distribuidos", o como dice la diferentes lenguajes de programacin (y paradigmas de
definicin de SOA de Wikipedia: "nodos de una red" o programacin), e incluso diferentes componentes middleware.
"recursos de una red." Se trata de un lo de mainframes, ejrcitos de SAP, bases de
SOA permite a las entidades que necesitan ciertas datos, aplicaciones J2EE, pequeos motores de reglas, etc. En
capacidades distribuidas, localizar y hacer uso de esas otras palabras, son heterogneos.
capacidades. En otras palabras, facilita las interacciones entre En el pasado, se han propuesto una gran cantidad de
los proveedores de servicios y sus consumidores, lo que mtodos para resolver el problema de la integracin de
permite la realizacin de funcionalidades de negocio [3]. sistemas distribuidos mediante la eliminacin de la
heterogeneidad: "Vamos a armonizar, y todos los problemas
Diferentes propietarios: La definicin de SOA del modelo de
habrn desaparecido," "Vamos a sustituir todos los sistemas
Referencia de OASIS dice que las capacidades distribuidas
con aplicaciones J2EE", "Vamos a usar CORBA en todas
"pueden estar bajo el control de diferentes dominios de
partes", "Usemos serie MQ," y as sucesivamente. Pero todos
propiedad." Este es un punto muy importante que a menudo es
sabemos que estos mtodos no funcionan. Grandes sistemas
suprimido en definiciones de SOA. Esta es una de las claves
distribuidos con diferentes propietarios son heterogneos.
para ciertas propiedades de SOA, y una razn importante por la
Esto es un hecho, y por lo tanto algo que debemos aceptar
que SOA no es slo un concepto tcnico.
la hora de disear soluciones distribuidas de gran tamao [3].
SOA incluye prcticas y procesos que se basan en el hecho
de que las redes de los sistemas distribuidos no son controladas B. Modelos Usuales de SOA
por los propietarios individuales. Diferentes equipos, diferentes Erl [2009] observa que todos los programas de software
departamentos o incluso diferentes empresas pueden gestionar acaban siendo compuestos, o bien residiendo en alguna forma
diferentes sistemas. Por lo tanto, diferentes plataformas, de combinacin arquitectnica de recursos, tecnologas y
programas, prioridades, presupuestos, etc. deben ser tenidos en plataformas (relacionadas con la infraestructura o no). Si nos
cuenta. Este concepto es clave para la comprensin de SOA y tomamos el tiempo para personalizar estos elementos
de grandes sistemas distribuidos en general. arquitectnicos, podemos establecer un ambiente refinado y
Se presenta la figura 3, que ilustra un conjunto de sistemas normalizado para la aplicacin de programas de software
distribuidos con diferentes propietarios. tambin personalizados. El diseo intencional de la tecnologa

210 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
de arquitectura es muy importante para la computacin integracin tradicional. Esta comparacin por lo general slo es
orientada a servicios. Es esencial crear un entorno en el que los vlida parcialmente, ya que las consideraciones de diseo
servicios pueden ser recompuestos varias veces para maximizar destacadas por la orientacin a servicios aseguran que el diseo
la realizacin de las necesidades de negocio. El beneficio de una composicin de servicios es muy diferente a la de las
estratgico para personalizar el alcance, el contexto y los aplicaciones integradas.
lmites de una arquitectura es significativo. Para comprender Por ejemplo, una diferencia en cmo se documentan las
mejor los mecanismos bsicos de SOA, ahora tenemos que arquitecturas de composicin tiene que ver con la medida de
estudiar los tipos ms comunes de las arquitecturas detalle que estas incluyen acerca de los servicios reutilizables
tecnolgicas que existen. que participan en la composicin. Debido a que estos tipos de
Se presentan a continuacin, en la tabla 2, estos tipos de especificaciones de arquitecturas de servicios estn a menudo
arquitecturas tecnolgicas ms comunes, con sus protegidas (segn las necesidades planteadas por el principio
correspondientes definiciones. de abstraccin de Servicios), una arquitectura de composicin
slo podr hacer referencia a la interfaz tcnica y acuerdo de
TABLA 2. ARQUITECTURAS TECNOLGICAS MS COMUNES. ADAPTADO DE nivel de servicio (SLA), publicado como parte del contrato
[MICROSOFT CORP., 2003] pblico de servicios [8].
Trmino Definicin B.3. Arquitectura de Inventario de Servicios
Arquitectura de La arquitectura de un conjunto de servicios Un inventario de servicio es un conjunto de servicios
Composicin de reunidos en composicin de servicios
Servicios estandarizados y gobernados de manera independiente
Arquitectura que soporta un conjunto de entregados en arquitectura pre-definida.
Arquitectura de
Inventario
servicios relacionados que son Esta coleccin representa un alcance significativo que excede
independientemente estandarizados y el lmite de procesamiento de un nico proceso de negocio e
de Servicios
gobernados
La arquitectura de la propia empresa (para
idealmente abarca numerosos procesos de negocio. El alcance
Arquitectura empresarial y los lmites de una arquitectura de inventario de servicio
cualquier tamao de empresa) orientada a
Orientada a Servicios
servicios pueden variar.
Arquitectura de Servicios
Se trata de la arquitectura de un nico Idealmente, el inventario de servicios es primero modelado
servicio conceptualmente, lo que lleva a la creacin de un modelo de
B.1. Arquitectura de servicios inventario de servicios. A menudo es este modelo el que
termina por definir el alcance del tipo de arquitectura
La arquitectura de servicios es una arquitectura de
requerido, siendo referido como una arquitectura de inventario
tecnologa limitada al diseo fsico de un programa de software
de servicio.
diseado como un servicio. Esta forma de arquitectura de la
Desde una perspectiva de diseo de la empresa, el inventario
tecnologa es comparable en alcance a una arquitectura de
de servicios puede representar un lmite concreto para la
componentes, excepto que se suele contar con una mayor
implementacin de la arquitectura estandarizada. Esto significa
cantidad de extensiones de infraestructura para apoyar su
que debido a que los servicios dentro de un inventario estn
necesidad de aumentar la fiabilidad, el rendimiento, la
estandarizados, son las tecnologas y las extensiones
escalabilidad, la previsibilidad del comportamiento, y sobre
proporcionadas por la arquitectura subyacente.
todo su necesidad de una mayor autonoma. El mbito de
aplicacin de una arquitectura de servicios tambin tender a El alcance de un inventario de servicio puede ser de toda la
ser mayor debido a que un servicio puede, entre otras cosas, empresa, o puede representar un dominio dentro de la empresa.
abarcar mltiples componentes. Por esa razn, a este tipo de arquitectura no se le llama
"arquitectura de dominio". Se relaciona con el alcance del
Considerando que no siempre fue comn documentar una
inventario, que puede abarcar mltiples dominios.
arquitectura diferente para cada componente en aplicaciones
distribuidas tradicionales, la importancia de la produccin de Es difcil comparar una arquitectura de inventario de servicios
servicios que deben existir como programas de software con los tipos de arquitecturas tradicionales, porque el concepto
independiente, muy autosuficiente y autnomo, requiere que de un inventario no ha sido comn. El candidato ms cercano
cada uno de ellos sea diseado de forma individual [8]. sera una arquitectura de integracin que representa algn
segmento importante de una empresa. Sin embargo, esta
B.2. Arquitectura de Composicin de Servicios comparacin slo sera relevante en su alcance, ya que las
El propsito fundamental de entregar una serie de servicios caractersticas del diseo orientado a servicios y los esfuerzos
independientes es que se puedan combinar en composiciones de estandarizacin relacionados intentan convertir un
de servicios totalmente funcionales capaces de automatizar las inventario de servicios en un entorno altamente homogneo
tareas de negocio ms grandes y ms complejas. [8].
Cada composicin de servicios tiene una arquitectura de B.4. Arquitectura Empresarial Orientada a Servicios
composicin de servicios correspondiente. De la misma
Esta forma de arquitectura tecnolgica representa
manera que una arquitectura de aplicacin para un sistema
prcticamente la totalidad de los servicios, composicin de
distribuido incluye las definiciones de la arquitectura de sus
servicios y arquitecturas de inventario de servicios que residen
componentes individuales, esta forma de arquitectura abarca
dentro de una empresa de IT especfica.
las arquitecturas de servicio de todos los servicios que
participan. Una arquitectura orientada a servicios empresariales, es
comparable con una arquitectura tcnica empresarial
Una arquitectura de composicin (especialmente una que
tradicional slo cuando la mayora o todos los entornos
compone servicios que encapsulan sistemas heredados
tcnicos de la empresa estn orientados a servicios. De lo
dispares) puede ser comparado con una arquitectura de
contrario, puede ser simplemente una documentacin de las

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 211
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
partes de la empresa que han adoptado SOA, en cuyo caso ejemplo, entre sus opciones de sistemas operativos se incluyen
existe como un subconjunto de la tecnologa arquitectnica varias distribuciones de Linux y Microsoft Windows Server.
empresarial.
En entornos de mltiples inventarios o en entornos en los C.2.4. Diseo pensado para su uso con otros Amazon Web
cuales los esfuerzos de estandarizacin no fueron un xito total, Services
una especificacin de arquitectura empresarial orientada a Amazon EC2 trabaja con Amazon Simple Storage Service
servicios documentar todos los puntos de transformacin y la (Amazon S3), Amazon Relational Database Service (Amazon
disparidad de diseo que tambin pueda existir. RDS), Amazon SimpleDB y Amazon Simple Queue Service
Adems, la arquitectura orientada a servicios empresarial (Amazon SQS) para proporcionar una solucin informtica
puede establecer estndares y convenciones de diseo que completa, procesamiento de consultas y almacenamiento en
apliquen a la totalidad de empresa que todos los servicios, la una gran gama de aplicaciones [9].
composicin y las implementaciones de la arquitectura del
inventario deben cumplir [8]. C.2.5. Fiable
Amazon EC2 ofrece un entorno muy fiable en el que las
C. Amazon Elastic Compute Cloud instancias de sustitucin se pueden enviar con rapidez y
anticipacin. El servicio se ejecuta en los centros de datos y la
C.1. Descripcin
infraestructura de red acreditados de Amazon. El compromiso
Amazon Elastic Compute Cloud (Amazon EC2) es un
del contrato a nivel de servicio de Amazon EC2 es de una
servicio web que proporciona capacidad informtica con
disponibilidad del 99,95% en cada Regin de Amazon EC2 [9].
tamao modificable en la nube. Est diseado para facilitar a
los desarrolladores recursos informticos escalables y basados
en web. C.2.6. Seguro
Amazon EC2 reduce el tiempo necesario para obtener y Amazon EC2 ofrece diversos mecanismos para proteger los
arrancar nuevas instancias de servidor en minutos, lo que recursos informticos [9].
permite escalar rpidamente la capacidad, ya sea aumentndola
o reducindola, segn cambien sus necesidades. Amazon EC2 C.2.7. Interfaces de seguridad
cambia el modelo econmico de la informtica, al permitir Amazon EC2 incluye interfaces de servicio web para
pagar slo por la capacidad que utiliza realmente. configurar el cortafuegos (firewall) que controla el acceso de
Amazon EC2 presenta un autntico entorno informtico red a grupos de instancias, y el acceso entre estos [9].
virtual, que permite utilizar interfaces de servicio web para
iniciar instancias con distintos sistemas operativos, cargarlas C.2.8. Instancias Aisladas
con su entorno de aplicaciones personalizadas, gestionar sus Al iniciar recursos de Amazon EC2 en Amazon Virtual
permisos de acceso a la red y ejecutar su imagen utilizando los Private Cloud (Amazon VPC), puede aislar sus instancias
sistemas que desee [9]. informticas especificando el rango de IP que desea utilizar, as
como conectarse a su infraestructura de IT existente mediante
C.2. Caractersticas principales la red cifrada IPsec VPN estndar del sector. Tambin puede
optar por lanzar instancias dedicadas en su VPC. Las instancias
C.2.1. Elastic dedicadas son instancias de Amazon EC2 que se ejecutan en
Amazon EC2 permite aumentar o reducir la capacidad en hardware dedicado a un nico cliente para ofrecer ms
cuestin de minutos, sin esperar horas ni das. Puede enviar aislamiento [9].
una, cientos o incluso miles de instancias del servidor
simultneamente. Desde luego, como todo esta operacin se C.2.9. Econmico
controla con API de servicio Web, la aplicacin se escalar Amazon EC2 permite disfrutar de las ventajas financieras
(aumentar o disminuir su capacidad) dependiendo de sus de Amazon. Pagar una tarifa muy baja por la capacidad
necesidades [9]. informtica que realmente utiliza. Consulte las Opciones de
compra de instancias de Amazon EC2 para obtener una
C.2.2. Totalmente controlado descripcin ms detallada [9].
Tendr control total sobre sus instancias. Tiene acceso de
usuario raz (root) a todas ellas, y puede interactuar con ellas C.2.10. Instancias en demanda
como con cualquier otra mquina. Puede detener su instancia y Con On-Demand Instances puede pagar por la capacidad
mantener los datos en su particin de arranque, para reiniciar a informtica por hora, sin compromisos a largo plazo. Esto le
continuacin la misma instancia a travs de las API del servicio liberar de los costes y las complejidades de la planificacin, la
web. Las instancias se pueden reiniciar de forma remota compra y el mantenimiento del hardware y transformar lo que
mediante las API del servicio web. Asimismo, tiene acceso a la normalmente son grandes costes fijos en costes variables
emisin de consola de sus instancias [9]. mucho ms pequeos. Gracias a On-Demand Instances
tambin se elimina la necesidad de comprar una "red de
C.2.3. Flexible seguridad" de capacidad para gestionar picos de trfico
Tendr la posibilidad de elegir entre varios tipos de peridicos [9].
instancia, sistemas operativos y paquetes de software. Amazon
EC2 permite seleccionar una configuracin de memoria, CPU, C.2.11. Instancias reservadas
almacenamiento de instancias y el tamao de la particin de Las instancias reservadas ofrecen la opcin de realizar un
arranque ptimo para su sistema operativo y su aplicacin. Por pago puntual reducido por cada instancia que desee reservar y
recibir a cambio un descuento importante en el cargo de uso

212 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
por horas de dicha instancia. Existen tres tipos de instancias (fsica), por Arquitectura (i386, x86_64), por Root Device
reservadas (instancias reservadas de utilizacin ligera, mediana Type (Elastic block Store, instance-store) or Platform (Ubuntu,
e intensa) que permiten equilibrar el importe del pago Red Hat, Fedora, Windows, Debian, etc.) [11].
anticipado a realizar con su precio por hora efectivo. Est a su
disposicin el Marketplace de instancias reservadas, que le C.5. Amazon EC2 con Microsoft Windows Server y SQL Server
ofrece la oportunidad de vender instancias reservadas si Amazon EC2 con Microsoft Windows Server (ediciones
cambian sus necesidades (p. ej., si desea transferir instancias a 2003 R2, 2008, 2008 R2 y 2012) es un entorno rpido y fiable
una nueva regin de AWS, pasar a un tipo de instancia nuevo o para implementar aplicaciones con Microsoft Web Platform,
vender capacidad para proyectos que finalizan antes de que incluidos ASP.NET, ASP.NET AJAX, Silverlight e Internet
expire el plazo de su instancia reservada) [9]. Information Server (IIS). Amazon EC2 permite ejecutar
cualquier solucin compatible basada en Windows en la
C.2.12. Instancias puntuales plataforma informtica en la nube de AWS, que ofrece alto
Con las instancias puntuales, los clientes pueden ofertar la rendimiento, fiabilidad y rentabilidad. Entre los casos prcticos
capacidad sin utilizar de Amazon EC2 y ejecutar dichas de uso habitual con Windows se incluye el alojamiento de
instancias mientras su oferta supere el precio puntual. El precio aplicaciones empresariales basadas en Windows, alojamiento
puntual cambia peridicamente segn la oferta y la demanda, y de sitios web y de servicios web, procesamiento de datos,
los clientes cuyas ofertas alcancen o superen dicho precio transcodificacin de medios, pruebas distribuidas, alojamiento
tendrn acceso a las instancias puntuales disponibles. Si es de aplicaciones en ASP.NET y cualquier otra aplicacin que
flexible respecto a cundo ejecutar sus aplicaciones, las requiera software de Windows. Amazon EC2 tambin es
instancias puntuales pueden reducir significativamente sus compatible con las bases de datos SQL Server Express, SQL
costes de Amazon EC2 [9]. Web y SQL Standard y, adems, pone estas ofertas a
disposicin de sus clientes con tarifas por horas.
C.3. Amazon CloudWatch (autoescalabilidad) Amazon EC2 ejecutndose sobre Windows Server
Amazon CloudWatch proporciona la supervisin de los proporciona una integracin perfecta con funciones existentes
recursos de la nube de AWS y de las aplicaciones que los en Amazon EC2, como por ejemplo Amazon Elastic Block
clientes ejecutan en AWS. Los desarrolladores y Store (EBS), Amazon CloudWatch, Elastic Load Balancing y
administradores de sistema la utilizan para recopilar mtricas y Elastic IP. Las instancias de Windows estn disponibles en
realizar su seguimiento, obtener conocimientos y reaccionar varias zonas de disponibilidad en todas las regiones.
inmediatamente para que sus aplicaciones y empresas sigan La capa de uso gratuito de AWS incluye instancias de
funcionando sin problemas. Amazon CloudWatch supervisa Amazon EC2 que se ejecutan en Microsoft Windows Server.
recursos de AWS como las instancias de bases de datos de Los clientes que renen los requisitos para incluirse dentro de
Amazon EC2 y Amazon RDS, y tambin puede supervisar la capa de uso gratuito de AWS pueden utilizar hasta 750 horas
mtricas personalizadas generadas por las aplicaciones y los al mes de instancias de t1.micro que se ejecutan en Microsoft
servicios de un cliente. Con Amazon CloudWatch, obtendr Windows Server de manera gratuita [12].
una visibilidad para todo el sistema de la utilizacin de
recursos, el rendimiento de las aplicaciones y el estado de C.6. Soporte para Sistemas operativos Linux
funcionamiento. La AMI de Amazon Linux es una imagen de Linux
Amazon CloudWatch le permite supervisar las instancias mantenida y soportada que ofrece Amazon Web Services para
de Amazon EC2, volmenes de Amazon EBS, Elastic Load su uso en Amazon Elastic Compute Cloud (Amazon EC2).
Balancers y las instancias de bases de datos de Amazon RDS Est diseada para proporcionar un entorno de ejecucin
en tiempo real. Mtricas como la utilizacin de la CPU, la estable, seguro y de alto rendimiento para aplicaciones que se
latencia y los recuentos de solicitudes se proporcionan ejecuten en Amazon EC2. Tambin incluye paquetes que
automticamente para estos recursos de AWS [10]. permiten una fcil integracin con AWS, incluidas
herramientas de configuracin de inicio y muchas bibliotecas y
C.4. Blueprints / Imgenes para acelerar el aprovisionamiento herramientas populares de AWS. Amazon Web Services
Amazon denomina AMIs a sus Blueprints o imgenes tambin proporciona actualizaciones continuas de seguridad y
para acelerar y facilitar el aprovisionamiento de instancias en la mantenimiento para todas las instancias ejecutadas en la AMI
nube. Una mquina de imagen Amazon (AMI) es un tipo de Amazon Linux. La AMI de Amazon Linux se proporciona
especial de sistema operativo pre-configurado y software de sin cargo adicional a los usuarios de Amazon EC2 [13].
aplicaciones virtualizadas que se utiliza para crear una mquina
virtual en el Amazon Elastic Compute Cloud (EC2). Adems, C.7. Soporte para almacenamiento de datos
es la unidad bsica de la implementacin de los servicios Amazon Simple Storage Service (Amazon S3): Amazon S3
prestados mediante EC2. es almacenamiento para Internet. Est diseado para facilitar a
La plataforma Elastic Compute Cloud cuenta con ms de los desarrolladores recursos informticos escalables basados en
2200 imgenes de mquinas virtuales alternativas, con la Web.
diferentes sistemas operativos, aplicativos y configuraciones. Amazon S3 proporciona una sencilla interfaz de servicios
Una de las configuraciones ms populares cuenta con un web que puede utilizarse para almacenar y recuperar la
sistema operativo Ubuntu y software de base LAMP cantidad de datos que desee, cuando desee y desde cualquier
(Linux, Apache, MySQL y PHP). parte de la Web. Concede acceso a todos los desarrolladores a
Adems, las instancias de AMIs se pueden filtrar por la misma infraestructura econmica, altamente escalable,
Proveedor (Ej. IBM, Oracle, Amazon Web Services, Sun fiable, segura y rpida que utiliza Amazon para tener en
Microsystems, Novell, Microsoft o Community), por Regin funcionamiento su propia red internacional de sitios web. Este

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 213
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
servicio tiene como fin maximizar las ventajas del escalado y C.9. Alternativas de Hipervisor
trasladar estas ventajas a los desarrolladores [14]. Amazon EC2 actualmente utiliza una versin altamente
personalizada del hipervisor Xen, aprovechando la
C.7.1. Amazon Relational Database Service (Amazon RDS) paravirtualizacin. Como los huspedes ("Guest") para-
(beta) virtualizados se basan en el hipervisor para proporcionar apoyo
Amazon Relational Database Service (Amazon RDS) es un a las operaciones que normalmente requieren un acceso
servicio web que facilita las tareas de configuracin, utilizacin privilegiado, es posible ejecutar el sistema operativo invitado
y escalado de una base de datos relacional en la nube. sin acceso elevado a la CPU [18].
Proporciona capacidad rentable y de tamao modificable y, al
mismo tiempo, gestiona las tediosas tareas de administracin D. Windows Azure
de la base de datos, lo que le permite centrarse en sus
D.1. Descripcin
aplicaciones y en su negocio.
Windows Azure es una plataforma de nube abierta y
Amazon RDS le permite acceder a todas las funciones de
flexible que permite compilar, implementar y administrar
un motor de base de datos MySQL, Oracle o Microsoft SQL
aplicaciones rpidamente en una red global de centros de datos
Server conocido. Esto supone que el cdigo, las aplicaciones y
administrados por Microsoft. Puede compilar aplicaciones en
las herramientas que ya utiliza en la actualidad con sus bases
cualquier lenguaje, herramienta o marco, permitiendo adems
de datos existentes funcionarn a la perfeccin con Amazon
integrar sus aplicaciones de nube pblicas con el entorno de TI
RDS [15].
existente [19].
C.7.2. Amazon SimpleDB (beta)
D.2. Caractersticas Principales
Amazon SimpleDB es un almacn de datos no relacionales
de alta disponibilidad y flexible que descarga el trabajo de D.2.1. Siempre Disponible
administracin de bases de datos. Los desarrolladores Disponibilidad 24x7x365 [19].
simplemente almacenan elementos de datos y los consultan
mediante solicitudes de servicios Web; Amazon SimpleDB se D.2.2. Alto nivel de servicio
encarga del resto. Windows Azure entrega un Contrato de nivel de servicio
Sin las limitaciones impuestas por las bases de datos mensual del 99,95 % que permite compilar y ejecutar
relacionales, Amazon SimpleDB est optimizado para ofrecer aplicaciones de alta disponibilidad sin importar la
alta disponibilidad y flexibilidad con poca o ninguna carga infraestructura. Proporciona revisiones automticas del Sistema
administrativa. La labor de Amazon SimpleDB pasa Operativo y de los servicios, equilibrio de carga de red
inadvertida: se encarga de crear y gestionar varias rplicas de integrado y resistencia ante errores de hardware. Admite un
sus datos y las distribuye geogrficamente para permitir alta modelo de implementacin con el que se puede actualizar una
disponibilidad y capacidad de duracin. El servicio slo le aplicacin sin inactividad (downtime) [19].
cobra los recursos realmente consumidos en almacenamiento
de los datos y en distribucin de las solicitudes. Es posible D.2.3. Abierto
cambiar el modelo de datos sobre la marcha, y el sistema Windows Azure permite utilizar cualquier lenguaje, marco
indexa los datos automticamente por usted [16]. o herramienta para crear aplicaciones. Las caractersticas y los
servicios se exponen utilizando protocolos REST abiertos. Las
C.8. Soporte para Colas bibliotecas de cliente de Windows Azure estn disponibles
Amazon Simple Queue Service (Amazon SQS) ofrece un para varios lenguajes de programacin, se comercializan bajo
sistema de gestin de colas fiable y ampliable para almacenar una licencia de cdigo abierto y se hospedan en GitHub [19].
mensajes a medida que se transfieren entre sistemas. Mediante
Amazon SQS, los desarrolladores pueden transferir datos entre D.2.4. Servidores ilimitados, almacenamiento ilimitado
componentes distribuidos de aplicaciones que realizan distintas Windows Azure permite escalar aplicaciones a cualquier
tareas, sin perder mensajes y sin necesidad de que cada tamao con facilidad. Es una plataforma de autoservicio
componente est siempre disponible. Amazon SQS facilita la totalmente automatizada que permite el aprovisionamiento de
tarea de creacin de un flujo de trabajo automatizado, recursos en cuestin de minutos. El uso de recursos aumenta o
trabajando en estrecha conexin con Amazon Elastic Compute disminuye de manera flexible en funcin de las necesidades.
Cloud (Amazon EC2) y el resto de los servicios web de la Solo se pagan los recursos que usa la aplicacin. Windows
infraestructura de AWS. Azure est disponible en varios centros de datos del mundo, lo
Amazon SQS funciona utilizando la infraestructura de que permite implementar las aplicaciones cerca de los clientes
gestin de mensajes a escala web de Amazon como un servicio [19].
web. Cualquier sistema de Internet puede aadir o leer
mensajes sin tener instalado ningn software ni configuracin D.2.5. Gran capacidad
de cortafuegos especial. Los componentes de las aplicaciones Windows Azure proporciona una plataforma flexible en la
que utilizan Amazon SQS se pueden ejecutar nube que puede satisfacer los requisitos de cualquier
independientemente y no es necesario que estn en la misma aplicacin. Permite hospedar y ampliar el cdigo de aplicacin
red, que se hayan desarrollado con las mismas tecnologas ni dentro de roles de proceso de un modo totalmente confiable.
que se ejecuten a la vez [17]. Los datos se pueden almacenar en bases de datos SQL
relacionales, almacenes de tablas NoSQL y almacenes de blobs
no estructurados, y existe la opcin de usar la funcionalidad de
Hadoop e inteligencia empresarial para la minera de datos.

214 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
Puede aprovechar la slida funcionalidad de mensajera de nuevo marco (traducido del trmino en ingls "framework"), la
Windows Azure para habilitar aplicaciones distribuidas respuesta es "no". Continuar escribiendo cdigo que se
escalables, as como para entregar soluciones hbridas que se ejecuta en Windows Server. El marco de. NET (3.5 SP1) se
ejecuten en la nube y en un entorno empresarial local [19]. instala por defecto en todas las mquinas, y el cdigo
ASP.NET tpico funcionar. Es tambin posible utilizar el
D.2.6. Cache distribuida y CDN soporte FastCGI para correr cualquier marco que soporte
Los servicios de cach distribuida y red de entrega de FastCGI (como PHP, Ruby on Rails, Python, etc). Si dispone
contenido (CDN) de Windows Azure permiten reducir la de cdigo nativo o binario, tambin puede ejecutarlo [22].
latencia y ofrecer aplicaciones con un gran rendimiento en Cada hipervisor administra varios sistemas operativos
cualquier lugar del mundo [19]. virtuales. Todos ellos corren el sistema operativo Windows
Server compatible con 2008. En realidad, no se nota ninguna
D.3. Autoescalabilidad diferencia entre ejecutar un Windows Server 2008 y estas
El "Bloque de Aplicacin Autoescalable" puede escalar mquinas. Las nicas diferencias son algunas optimizaciones
automticamente su aplicacin de Windows Azure basado en especficas para el hipervisor en el cual estn corriendo [22].
reglas definidas especficamente para su aplicacin. Puede Bajo qu sistema operativo estar corriendo su cdigo en
utilizar estas reglas para ayudar a la aplicacin de Windows Windows Azure? Incluso con toda esta discusin sobre el
Azure a mantener su rendimiento en respuesta a los cambios en funcionamiento del sistema y las optimizaciones de integracin
la carga de trabajo, y al mismo tiempo controlar los costos con el hipervisor, la mayora de los desarrolladores slo se
asociados con el alojamiento de su aplicacin en Windows preocupan por el entorno en el cual corrern sus aplicaciones
Azure. Junto con la escalabilidad, aumentando o disminuyendo (el sistema operativo). La respuesta es simple: Las aplicaciones
el nmero de instancias de rol (working role) en su aplicacin, corren en Windows Server 2008 x64 Enterprise Edition.Bueno,
el bloque tambin permite utilizar otras medidas de casi. Microsoft lo llama "sistema operativo 2008 compatible
escalabilidad tales como funcionalidades determinadas de con Windows Server", que se refiere al hecho de que se trata de
estrangulamiento ("throttling") dentro de la aplicacin o el uso Windows Server en casi todos los aspectos, excepto en algunos
de las acciones definidas por el usuario. cambios de bajo nivel para optimizar el hipervisor. Sin
Brinda adems la posibilidad de optar por implementar el embargo, las aplicaciones estn abstradas varias capas lejos de
bloque en un rol de Windows Azure o en una aplicacin estos cambios, y no deben notar nada distinto respecto de su
interna. ejecucin en una mquina Windows Server normal [22].
El Bloque de Aplicacin Autoescalable forma parte del
Pack de la Enterprise Library 5.0 de Microsoft Integration para D.6. Soporte para Sistemas operativos Linux
Windows Azure. El bloque utiliza dos tipos de reglas para Crear una mquina virtual que ejecute el sistema operativo
definir el comportamiento automtico de escalabilidad para su Linux en Windows Azure es fcil por medio de la Galera de
aplicacin: imgenes (blueprints) utilizando el Portal de administracin. Es
Reglas de restricciones: Para establecer los lmites superior tambin posible acceder a las instancias de estas mquinas
e inferior en el nmero de instancias, por ejemplo, digamos que virtuales Linux para personalizarlas a gusto, por medio de un
8:00-10:00 todos los das quiere un mnimo de cuatro y un usuario con privilegios de adminsitrador ("Root").
mximo de seis instancias, se utiliza una regla de restriccin. Es tambin factible implementar En Azure mquinas
Reglas Reactivas: Para permitir que el nmero de instancias virtuales ya disponibles que corren sistemas operativos Linux,
de rol puedan cambiar en respuesta a los cambios por ejemplo con instancias de mquinas virtuales vmWare.
impredecibles en la demanda, se utilizan reglas reactivas [20]. Para esto, solo es necesario convertir la imagen de la mquina
virtual Linux al formato de Windows Azure (de .vmx a .vmdk),
D.4. Blueprints / Imgenes para acelerar el aprovisionamiento para luego subirla a nuestra cuenta Azure por medio del
Las mquinas virtuales entregadas a demanda ofrecen una administrador de imgenes personalizadas de Windows Azure.
infraestructura de computacin escalable cuando se necesita Algunas de las distribuciones del Sistema operativo Linux
aprovisionar rpidamente recursos para satisfacer las que soporta Windows Azure, inclusive proporcionando
necesidades de un negocio en crecimiento. Es posible obtener blueprints para acelerar el aprovisionamiento de las mquinas
mquinas virtuales de los sistemas operativos Linux y virtuales son las siguientes [21]:
Windows Server en mltiples configuraciones.
Los blueprints de Windows Azure ofrecen la posibilidad de openSUSE 12.3
desbloquear la cartera de TI y la infraestructura de suministro SUSE Linux Enterprise Server 11 Service Pack 2
al ritmo que su negocio requiere. Para ello, simplemente hay Ubuntu Server 12.04 LTS
que elegir la configuracin deseada (instancias de memoria Ubuntu Server 12.10
estndar o alta) y seleccionar una imagen de la galera de Ubuntu Server 13.04
imgenes de mquinas virtuales. OpenLogic CentOS 6.3
Las Mquinas virtuales de Windows Azure ofrecen a los Ubuntu Server 12.10 DAILY
sistemas y aplicaciones la posibilidad de mover los discos
duros virtuales (VHD) desde las instalaciones locales a la nube D.7. Soporte para almacenamiento de datos
(y viceversa) [21].
D.7.1. SQL Server en mquinas virtuales de Windows Azure
Cuando las aplicaciones requieren funcionalidad completa
D.5. Soporte para Sistemas operativos Microsoft Windows
de SQL Server, Mquinas virtuales es la solucin ideal.
Si usted se est preguntando si el cdigo va a ser diferente,
Encontrar ofertas de imgenes de SQL Server 2012 y SQL
ya que se ejecuta en la nube, o si vas a tener que aprender un

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 215
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
Server 2008 R2, en sus ediciones Standard, Web y Enterprise. vdeo, audio e imgenes. Los blobs son un servicio
Si tiene una licencia de SQL Server con Software Assurance, administrado con certificacin ISO 27001 que se pueden
como ventaja adicional puede trasladar la licencia existente a escalar automticamente para satisfacer un rendimiento y
Windows Azure y pagar solo por proceso y almacenamiento. volumen masivos de hasta 100 terabytes, accesibles
La ejecucin de SQL Server en Mquinas virtuales es una prcticamente desde cualquier lugar a travs de REST y las
solucin adecuada en los escenarios siguientes: API administradas [24].
Para desarrollar y probar nuevas aplicaciones de SQL
Server rpidamente No es necesario esperar semanas para el D.8. Soporte para colas
aprovisionamiento local de hardware, sino que basta con captar El bus de servicio de Colas soporta un modelo de
la imagen de SQL Server correcta en la galera de imgenes. comunicacin de mensajera negociado.Cuando se utilizan
Puede optar por realizar la implementacin en un entorno de colas, los componentes de una aplicacin distribuida no se
produccin o local con poco esfuerzo. comunican directamente entre s, en cambio, intercambian
Para hospedar aplicaciones de SQL Server de nivel 2 y mensajes via una cola, lo cual acta como un intermediario. Un
nivel 3 existentes Gracias a los distintos tamaos de VM entre productor de mensajes (remitente) enva un mensaje a la cola y
los que elegir y dada la compatibilidad total con SQL Server, continua su procesamiento. Asincrnicamente, un consumidor
es posible trasladar las aplicaciones de SQL Server locales de mensajes (receptor) obtiene el mensaje de la cola y lo
existentes y disfrutar de la eficacia de la computacin en la procesa. El productor no tiene que esperar una respuesta por
nube. parte del consumidor para poder continuar el proceso y enviar
Para realizar copias de seguridad y restauraciones de bases ms mensajes. Las colas ofrecen la implementacin de la
de datos locales Es posible realizar la copia de seguridad de tcnica "primero que entra, primero que sale" (modelo
una base de datos local en un almacenamiento en blobs de conocido por sus siglas en ingls como "FIFO") enviando
Windows Azure y poder as restaurar la base de datos en una mensajes a uno o ms consumidores que compiten por el
mquina virtual de Windows Azure en caso de que sea tratamiento del mensaje. Es decir, los mensajes suelen ser
necesaria la recuperacin ante desastres en el entorno local. recibidos y procesador por los receptores en el orden en que
Para ampliar aplicaciones locales Cree aplicaciones fueron aadidos a la cola, y cada mensaje es recibido y
hbridas que utilicen activos locales y mquinas virtuales de procesado por un nico consumidor [25].
Windows Azure para disfrutar de una mayor eficacia y alcance
global. D.9. Alternativas de Hipervisor
Para crear aplicaciones de varias capas en la nube Cree una En 2006/2007, un equipo dirigido por Dave Cutler (el padre
aplicacin de varias capas que utilice la funcionalidad de de Windows NT) comenz a trabajar en un nuevo hipervisor
escalado nica del servicio Base de datos SQL para la capa de pensado para ser optimizado para el centro de datos. Este
aplicacin y que aproveche la compatibilidad completa de SQL hipervisor se bas en los siguientes tres principios:
Server en Mquinas virtuales de Windows Azure para la capa
de base de datos [23]. D.9.1. Rpido
El hipervisor de Windows Azure ha sido diseado para ser
D.7.2. Base de datos SQL lo ms eficiente posible. Gran parte de esto se consigue a travs
Para aquellas aplicaciones que necesitan una base de datos de optimizaciones de bajo nivel realizadas a la vieja usanza,
relacional completamente funcional como servicio, Windows tales como empujar cargas de trabajo al hardware siempre que
Azure ofrece la base de datos SQL, antes denominada Base de sea posible. Puesto que Windows Azure controla el hardware
datos de SQL Azure. La base de datos SQL ofrece un alto nivel en sus centros de datos, puede confiar en la presencia de
de interoperabilidad, lo que permite a los clientes crear caractersticas de hardware, a diferencia de hipervisores
aplicaciones en la mayora de los principales marcos de genricos diseados para un mercado ms amplio [22].
desarrollo. Adems, la base de datos SQL, basada en las
tecnologas probadas de SQL Server, permite utilizar los D.9.2. Pequeo
conocimientos y la experiencia existente para reducir el tiempo El hipervisor es construido para ser claro y directo, y no
de solucin, as como crear o ampliar aplicaciones entre los incluye aquellas caractersticas que no estn directamente
sistemas locales y la nube [24]. relacionadas con la nube. Menor cantidad de cdigo no slo
Use la base de datos SQL para: significa un mejor rendimiento, sino que tambin significa
menos cdigo para corregir o actualizar [22].
D.7.3. Tablas
Las tablas ofrecen funcionalidad NoSQL para las D.9.3. Estrechamente integrado con el ncleo
aplicaciones que requieren el almacenamiento de grandes En Windows Azure, el kernel del sistema operativo que se
cantidades de datos no estructurados. Las tablas son un servicio ejecuta en el hipervisor est altamente optimizado para el
administrado con certificacin ISO 27001 que se pueden hipervisor.
escalar automticamente para satisfacer un rendimiento y Con Windows Server 2008, Microsoft lanz un hipervisor
volumen masivos de hasta 100 terabytes, accesibles llamado Hyper-V. A menudo hay confusin sobre las
prcticamente desde cualquier lugar a travs de REST y las diferencias entre Hyper-V y el hipervisor de Windows Azure, y
API administradas [24]. algunos libros / artculos a menudo asumen que se trata del
mismo hipervisor.
D.7.4. Blob no estructurado En realidad, ambos son diferentes y estn construidos
Los blobs son el modo ms sencillo de almacenar grandes tambin con diferentes propsitos. Hyper-V es entregado como
cantidades de texto no estructurado o datos binarios tales como parte de Windows, y est destinado para funcionar en una

216 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
amplia variedad de hardware para una amplia variedad de puede servir a muchos usuarios simultneos sin degradar su
propsitos. El hipervisor de Windows Azure se ejecuta slo en rendimiento, se dice que es escalable. Las aplicaciones escritas
los centros de datos de Microsoft, y se ha optimizado para App Engine escalan automticamente. A medida que ms
especficamente para el hardware que se ejecuta en Windows personas utilizan la aplicacin, App Engine asigna ms
Azure. recursos para la aplicacin y administra el uso de esos recursos.
Como era de esperar con dos productos similares de la La aplicacin en s no necesita saber nada acerca de los
misma empresa, no hay intercambio de cdigo y diseo. En el recursos que utiliza [27].
futuro, las nuevas caractersticas del hipervisor de Windows
Azure tendrn influencias en Hyper-V, y viceversa [22]. E.4. Soporte para Sistemas operativos Linux
Las aplicaciones se ejecutan en un entorno seguro que
E. Google App Engine proporciona un acceso limitado al sistema operativo
subyacente. Estas limitaciones permiten que App Engine
E.1. Descripcin
distribuya peticiones web para la aplicacin en varios
Google App Engine permite crear y alojar aplicaciones web
servidores, as como tambin iniciar y detener los servidores
en los mismos sistemas escalables con los que funcionan las
para satisfacer las demandas de trfico. La caja de arena
aplicaciones de Google. Google App Engine ofrece procesos
(traduccin literal del trmino en ingls "Sandbox") asla la
de desarrollo y de implementacin rpidos, y una
aplicacin en su propio entorno seguro y confiable que es
administracin sencilla, sin necesidad de preocuparse por el
independiente del hardware, sistema operativo y la ubicacin
hardware, las revisiones o las copias de seguridad y una
fsica del servidor web.
ampliacin sin esfuerzos.
Ejemplos de las limitaciones de acceso al sistema operativo
Las aplicaciones Google App Engine son fciles de crear,
incluyen:
fciles de mantener y fciles de escalar a medida que el trfico
Una aplicacin slo puede acceder a otros ordenadores
y las necesidades de almacenamiento de datos crecen. Con App
situados en internet a travs de la URL proporcionada y/o por
Engine no es necesario mantener ningn servidor. Basta con
medio de servicios de correo electrnico. Otros equipos slo se
cargar su aplicacin y esta ya se encontrar lista para servir a
pueden conectar a la aplicacin realizando peticiones HTTP (o
los usuarios [26].
HTTPS) en los puertos estndar.
Las aplicaciones no pueden escribir en el sistema de
E.2. Caractersticas Principales
archivos en ninguno de los entornos de ejecucin. Una
E.2.1. Rpido para iniciar aplicacin puede leer archivos, pero slo los archivos subidos
Sin necesidad de comprar ni mantener ningn software o con el cdigo de la aplicacin. La aplicacin debe utilizar el
hardware, puede prototipar y desplegar aplicaciones almacn de datos de App Engine, memcache u otros servicios
disponibles para los usuarios en cuestin de horas [27]. para aquellos datos que se persisten entre las peticiones.
El cdigo de aplicacin slo se ejecuta en respuesta a una
E.2.2. Fcil de usar peticin de web, una tarea en cola, o una tarea programada, y
Google App Engine incluye las herramientas necesarias debe devolver datos de respuesta dentro de 60 segundos en
para crear, probar, ejecutar y actualizar sus aplicaciones [27]. cualquier caso. Un controlador de solicitudes no se puede
generar un sub-proceso o ejecutar cdigo despus de que la
E.2.3. Conjunto rico de APIs respuesta haya sido enviada [28].
Google App Engine provee un conjunto rico de APIs de
servicios de fcil uso, permitiendo cerar servicios rpidamente E.5. Soporte para almacenamiento de datos
[27]. El almacenamiento de datos de una aplicacin web
escalable puede ser complicado. Un usuario puede interactuar
E.2.4. Escalabilidad Inmediata con cualquiera de las docenas de servidores web en un
No hay prcticamente ningn lmite respecto de qu tan momento dado, y la siguiente peticin del usuario podra ir a
alto o qu tan rpido su aplicacin pueda escalar [27]. un servidor web diferente a la anterior solicitud. Todos los
servidores web deben interactuar con los datos, que tambin se
E.2.5. Modelo de negocio de pago por uso extienden a travs de docenas de mquinas, posiblemente en
Pague por lo que usa, comenzando sin ningn costo inicial. diferentes lugares del mundo.
Pagar slo por los recursos que su aplicacin utilice a medida Con Google App Engine, no es necesario preocuparse por
que crece [27]. nada de eso. La infraestructura de App Engine se encarga de
toda la distribucin, la replicacin y el equilibrio de carga de
E.2.6. Infraestructura probada los datos detrs de una sencilla API-y se obtiene un motor de
Google App Engine utiliza la misma tecnologa probada bsqueda de gran alcance, garantizando tambin las
que alberga otras aplicaciones de Google, ofreciendo transacciones.
automticamente escalabilidad sin problemas. Preocuparse por El repositorio de datos de App Engine y el almacn de
las configuraciones de servidor y balanceo de carga se datos de alta replicacin (HRD) utilizan el algoritmo Paxos
convierte en una cosa del pasado, ya que los expertos de para replicar datos a travs de mltiples centros de datos. Los
Google manejan la supervisin del sistema [27]. datos se escriben en el almacn de datos en objetos conocidos
como entidades. Cada entidad tiene una clave que identifica de
E.3. Autoescalabilidad manera nica. Una entidad puede designar opcionalmente otra
Google App Engine est diseado para alojar aplicaciones entidad como su matriz, la primera entidad es un hijo de la
con muchos usuarios simultneos. Cuando una aplicacin entidad matriz. Las entidades en el almacn de datos forman

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 217
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
as un espacio de estructura jerrquica similar a la estructura de archivos para esos tipos (por ejemplo PHP, Python y
directorios de un sistema de archivos. Ruby/Rails).
El almacn de datos es extremadamente resistente frente a Tambin proporciona herramientas de desarrollo integradas
fallos catastrficos, sin embargo, garantizar la consistencia para apoyar el ciclo de vida de las aplicaciones, incluyendo la
puede ser bastante diferente de lo que usted est familiarizado. integracin de Eclipse, JBoss Developer Studio, Jenkins,
Las entidades que descienden de un antepasado comn se dice Maven y GIT. OpenShift utiliza un ecosistema de cdigo
que pertenecen a un mismo grupo de entidades, las llaves de su abierto para proporcionar servicios clave de la plataforma de
ancestro comn es la clave principal del grupo, que sirve para aplicaciones mviles (Appcelerator), servicios NoSQL
identificar a todo el grupo. Las consultas en una nica entidad (MongoDB), servicios de SQL (PostgreSQL, MySQL), y ms.
de su grupo, llamado consultas de antepasados, hacen JBoss proporciona una plataforma de middleware empresarial
referencia a la clave principal en lugar de la clave de una para aplicaciones Java, proporcionando apoyo para Java EE6 y
entidad especfica. Los grupos de entidad son una unidad de servicios integrados tales como transacciones y mensajes, que
consistencia y transaccionalidad: mientras que las consultas son fundamentales para las aplicaciones empresariales [30].
sobre mltiples grupos de entidades pueden devolver
resultados viciados, eventualmente consistentes, aquellas F.2. Caractersticas Principales
limitadas a un nico grupo de entidad siempre retornan
actualizadas, produciendo resultados muy consistentes [29]. F.2.1. Prestacin de servicios de aplicacin acelerada
La plataforma OpenShift mejora la productividad y la
agilidad de los desarrolladores de aplicaciones vinculada con el
E.6. Soporte para colas
retraso relacionado con los servidores, sistemas operativos,
Una aplicacin puede realizar tareas adems de responder a
middleware y aprovisionamiento mediante aplicaciones de
solicitudes web. Las aplicaciones implementadas en Google
auto-servicio y a la carta. Este aumento de la productividad,
App Engine pueden ejecutar estas tareas siguiendo la
junto con una normalizacin del desarrollo del ciclo de vida de
programacin que se configure, por ejemplo, cada da o cada
aplicacin de flujo de trabajo, permitir la aceleracin de la
hora. Asimismo, es posible ejecutar tareas que ella misma ha
entrega de servicios de aplicaciones. Esto aumenta eficazmente
aadido a una cola, como una tarea en segundo plano creada
la velocidad de las TI [31].
durante el procesamiento de una solicitud.
Las tareas programadas tambin se conocen como "tareas
F.2.2. Dependencia minimizada con el proveedor
cron", administradas por el servicio cron.
Al ser construida sobre una pila de tecnologas de cdigo
Las colas de tareas se incluyen actualmente como una
abierto, la plataforma OpenShift est diseada para
funcin experimental. En este momento, solo el entorno de
proporcionar libertad de eleccin, incluyendo la libertad de
tiempo de ejecucin Python puede utilizar colas de tareas. Se
elegir alejarse de las PaaS. Para lograr esto, dentro de la
incluir una interfaz de cola de tareas para aplicaciones Java en
plataforma OpenShift solo se utilizan lenguajes de cdigo
poco tiempo.
abierto y frameworks sin alteraciones. No se utilizan APIs,
Con el API de la cola de tareas, las aplicaciones pueden
tecnologas o recursos privados. Esto asegura la portabilidad de
realizar fuera de solicitudes de usuario trabajos que se han
aplicaciones de la plataforma OpenShift, evitando as las
iniciado dentro de ellas. Si una aplicacin necesita ejecutar
dependencias con los proveedores de tecnologa utilizada por la
algn trabajo en segundo plano, puede utilizar el API de la cola
plataforma PaaS OpenShift [31].
de tareas para organizarlo en pequeas unidades discretas
llamadas tareas. A continuacin, la aplicacin inserta estas
tareas en una o ms colas. App Engine detecta F.2.3. Pilas de aplicaciones de autoservicio y en demanda
automticamente nuevas tareas y las ejecuta cuando los Al permitir a los desarrolladores desplegar rpida y
recursos del sistema lo permiten [28]. fcilmente las pilas de aplicaciones, la plataforma OpenShift
puede aumentar la productividad y fomentar la innovacin en
el diseo y la entrega de aplicaciones. Las nuevas ideas pueden
E.7. Alternativas de Hipervisor
ser prototipos rpidamente y proyectos de misin crtica
Google App Engine brinda muy escasa informacin acerca
pueden ser llevados al mercado ms rpidamente [31].
del hipervisor que utiliza, ya que no es posible cambiarlo o
utilizar otro, dado que el servicio que brinda App Engine es
PaaS (plataforma como servicio, por sus siglas en ingls F.2.4. Flujos de trabajo estandarizados para Desarrolladores
Platform as a Service), motivo por el cual no es posible [Red Hat Inc., 2013b.] OpenShift como plataforma de
administrar la infraestructura, sino que esta se encuentra aplicaciones cloud permite que la organizacin de desarrollo de
subyacente y transparente para el usuario de la plataforma. aplicaciones pueda normalizar el flujo de trabajo del
programador, y crear procesos repetibles para la entrega de
F. Red Hat Open Shift aplicaciones para agilizar todo el proceso [31].

F.1. Descripcin F.2.5. Polglota


OpenShift es la oferta de plataforma como servicio para Eleccin de los lenguajes de programacin y los softwares
Computacin en la nube de Red Hat. de base. La capacidad de los desarrolladores para elegir entre
En esta plataforma los desarrolladores de aplicaciones Java, Ruby, Node.JS, Python, PHP y Perl en la plataforma
pueden construir, desplegar, probar y correr sus aplicaciones. OpenShift les permite elegir la herramienta adecuada para el
Prporciona espacio en disco, recursos de CPU, memoria, trabajo, y hacer una eleccin diferente para cada proyecto,
conectividad de red y un servidor Apache o JBoss. segn sea necesario. Adems de estos y otros lenguajes de
Dependiendo del tipo de aplicacin que se est construyendo, cdigo abierto, muchos de los marcos de cdigo abierto
tambin proporciona acceso a una plantilla de sistema de populares se incluyen tambin dentro de OpenShift. Algunos

218 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
ejemplos incluyen Rails, Django, EE6, Spring, Play, Sinatra y desarrolladores para comprobar el cdigo en el repositorio Git
Zend [31]. seguro que reside dentro de su contenedor de aplicaciones con
OpenShift. Git permite tanto la gestin rpida, segura y
F.2.6. Aplicaciones empresariales con Java EE6 controlada de origen de la aplicacin de control de versiones de
Ser capaz de desplegar aplicaciones Java EE6 en JBoss cdigo [31].
EAP funcionando en OpenShift permite que muchos
departamentos de TI que se han estandarizado con Java EE F.2.13. Inicio de sesin Remoto por SSH al contenedor de
puedan migrar sus aplicaciones legadas a la nube sin necesidad aplicaciones
de aplicar reingeniera al cdigo o a la arquitectura [31]. La arquitectura nica basada en SELinux de la plataforma
OpenShift permite a los usuarios (desarrolladores u
F.2.7. Servicios de base de datos incorporados operadores) que inicien sesin remotamente en contenedores
Con las opciones de tecnologa de bases de datos de aplicaciones individuales para las aplicaciones
disponibles en OpenShift y la capacidad de tener estas implementadas en las PaaS. El usuario registrado podr ver
instancias de bases de datos conectadas automticamente a las solamente sus procesos, sistema de archivos y archivos de
pilas de aplicacin segn sea necesario, los desarrolladores y registro. Esto le da a los usuarios el acceso que necesitan para
arquitectos de la empresa pueden elegir entre los almacenes de una mejor arquitectura y administracin de sus aplicaciones
datos relacionales clsicos y los modernos NoSQL [31]. [31].

F.2.8. Sistema de cartucho Extensible para agregar servicios F.2.14. Integracin con IDE
Adems de la funcin de idiomas y servicios, los Con integracin incorporada con Eclipse de la plataforma
desarrolladores pueden aadir otro idioma, base de datos o de OpenShift, JBoss Developer Studio y Titanium Studio,
componentes de middleware que necesitan a travs del sistema muchos desarrolladores pueden permanecer completamente
de cartuchos OpenShift personalizable. Esta extensibilidad dentro del IDE con el cual se sientan cmodos a la hora de
Cartucho permite a los desarrolladores (y operaciones) trabajar con OpenShift [31].
extender las PaaS para soportar los estndares o requisitos
especficos de la empresa [31]. F.2.15. Lnea de comandos enriquecida
Para desarrolladores que prefieren trabajar desde la lnea de
F.2.9. Soporte para mltiples entornos (desarrollo / Pruebas / comandos, la plataforma OpenShift incluye un amplio conjunto
Produccin) de herramientas de lnea de comandos que proporcionan acceso
Con la capacidad de la plataforma OpenShift para soportar completo a la interfaz del programador de las PaaS. Estas
mltiples ambientes del ciclo de vida de desarrollo de las herramientas son fciles de usar, as como secuencias de
aplicaciones (como Desarrollo, Calidad, Pre-Produccin y comandos para las interacciones automatizadas [31].
Produccin), las empresas pueden adoptar e implementar la
plataforma PaaS (Platform As A Service) OpenShift sin F.2.16. Desarrollo de aplicaciones mviles
necesidad de cambiar sus metodologas o procesos actuales A travs de una asociacin con Appcelerator, la plataforma
[31]. OpenShift incluye una estrecha integracin con Titanium
Studio IDE mvil que permite el desarrollo de aplicaciones
F.2.10. Dependencia y Gestin de la Construccin mviles en la nube con respaldo para Android o iOS que
La plataforma OpenShift incluye Dependencia y gestin de pueden ser ejecutados por aplicaciones de servidor que se
la Construccin para muchos de los lenguajes de programacin ejecutan en OpenShift [31].
ms populares, incluyendo Bundler para Ruby, NPM para
Node.JS y Maven para Java. Estas herramientas automatizan el F.2.17. Redundancia de componentes del sistema para alta
proceso de identificacin de las dependencias en el cdigo disponibilidad
fuente, y la construccin de la aplicacin completa. Estas La plataforma OpenShift posee una arquitectura con un
caractersticas incrementan la productividad y reducen la plano de control sin estado (stateless Brokers), una
posibilidad de error, volvindose crticas en una plataforma de infraestructura de mensajera, e infraestructura de alojamiento
aplicaciones de nube como PaaS [31]. de aplicaciones (nodos). Cada pieza de la plataforma se puede
configurar con redundancia mltiple para conmutacin por
F.2.11. Integracin Continua y Gestin de Versiones error y equilibrio de carga escenarios para eliminar el impacto
La plataforma OpenShift incluye Jenkins para integracin de fallo de hardware o infraestructura [31].
continua y gestin de lanzamiento. Jenkins puede realizar
pruebas cuando se sube cdigo al repositorio, organizar el F.2.18. Aprovisionamiento automtico de la pila de
proceso de construccin, y promover o cancelar aplicaciones
automticamente una versin de la aplicacin dependiendo de Cuando un desarrollador utiliza la plataforma OpenShift de
los resultados de las pruebas. Esta gestin automatizada de los autoservicio para crear una aplicacin, OpenShift crear
releases se convierte en una parte fundamental para simplificar automticamente los engranajes necesarios, desplegar los
el desarrollo de aplicaciones [31]. runtimes del lenguaje (a travs de cartridges), configurar las
interfaces de red y la prestacin de los ajustes del DNS y,
F.2.12. Gestin de versiones de cdigo fuente finalmente, retornar al usuario las credenciales que necesitar
La plataforma OpenShift incluye el control distribuido de para comenzar a subir el cdigo para la aplicacin. Este
versiones Git y un sistema de gestin de cdigo fuente. El aprovisionamiento automtico reemplaza lo que histricamente
protocolo Git asegurado con SSH es utilizado por los podra tomar das, semanas o incluso meses para el equipo de

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 219
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
operaciones de TI para hacerlo manualmente. Esto libera al de base de datos. Cada uno de los engranajes creados durante la
equipo de operaciones para centrarse en las necesidades crticas escala tiene acceso a la base de datos y puede leer y escribir
de los clientes en lugar de ocuparse en la configuracin de datos consistentemente.
servidores de forma repetida [31]. OpenShift, en su plan de expansin y crecimiento, pretende
aadir ms capacidades como almacenamiento compartido,
F.2.19. Escalabilidad automtica de aplicacin bases de datos a escala, y el almacenamiento en cach
La plataforma OpenShift permite elasticidad cloud, compartida.
proporcionando escalabilidad de aplicacin horizontal La consola web OpenShift muestra cuntas instancias estn
automtica a medida que aumenta la carga de aplicaciones, actualmente siendo consumidas por la aplicacin [33].
eliminando la necesidad de Operaciones para aumentar
manualmente el nmero de instancias de aplicacin [31]. F.4. Blueprints / Imgenes para acelerar el aprovisionamiento
En OpenShift se crean aplicaciones y las aplicaciones se
F.2.20. Eleccin de la infraestructura de nube (No disponible componen de equipos (o instancias). Por razones de
en OpenShift Online) simplicidad, es conveniente pensar en un equipo como un
OpenShift empresarial est diseado para ser desplegado en usuario con un directorio raz y su propio contexto.
la capa superior, y se ejecuta en Red Hat Enterprise Linux Las instancias son lo que ponemos dentro de su equipo para
(RHEL). RHEL es necesario debido a la utilizacin de que sean tiles. Si desea utilizar PHP, usted necesitar un
SELinux dentro de la plataforma OpenShift, y permite adems cartucho de PHP. Si desea utilizar Jboss, deber hacer uso del
brindar Servicios de Soporte Global de Red Hat proveer cartucho Jboss [34].
soporte a las PaaS y a los runtimes y bibliotecas incluidas. OpenShift funciona nicamente con el sistema operativo
OpenShift empresarial no tiene requisitos especficos para la Red Hat Enterprise Linux en su versin 6.3 (o superior) para
capa de infraestructura aparte de que debe ser capaz de proveer las plataformas de hardware x86 o bien x64. A la fecha de
instancias de RHEL. Para ello, los clientes OpenShift creacin de este documento no es factible correr OpenShift
empresarial tienen la opcin de infraestructura. Los clientes de bajo otro sistema operativo [35].
la platasforma como servicios de OpenShift empresarial
cuentan con opciones de infrasestructura, pudiendo F.5. Soporte para almacenamiento de datos
implementar la solucin mediante servidores fsicos, mediante Las aplicaciones online de OpenShift soportan diferentes
una plataforma de virtualizacin, una Infraestructura como motores de bases de datos. Entre ellos podemos mencionr a
servicio, o un proveedor de nube pblica, siempre y cuando las MySQL 5.1, PostgreSQL 8.4, MongoDB 2.2 y SQLite.
instancias de RHEL puedan ser configuradas y accedidas, se Tanto MySQL como PostgreSQL son motores de bases de
pueden implementar. Esto otorga la libertad de implementar la datos relacionales tradicionales basadas en el lenguaje de
solucin PaaS de OpenShift empresarial en la forma que mejor consultas SQL [36].
se ajuste a sus opciones de infraestructura existentes [31]. SQLite, en cambio, es una base de datos que se implementa
simplemente en una librera transaccional tambin basada en
F.3. Autoescalabilidad una base de datos SQL que no requiere configuracin alguna
Por defecto, cuando se crea una aplicacin OpenShift, es [37].
automticamente escalada basndose en la cantidad de Adems, MongoDB es una base de datos documental
peticiones (del ingls request). OpenShift tambin permite OpenSource, de tipo NoSQL, escrita en lenguaje C++ que est
escalar manualmente las aplicaciones ajustando los umbrales principalmente orientada al almacenamiento de documentos
mnimos y mximos permitidos para escalar [32]. basados en formato JSON y tcnicas de Map-Reduce [38].
Cmo funciona la escalabilidad de OpenShift: El cartucho
HAProxy se sienta entre la aplicacin y el Internet pblico y F.6. Soporte para colas
las rutas de trfico web a sus cartuchos web. Cuando aumenta Red Hat OpenShift ofrece soporte para colas de mensajera
el trfico, HAProxy notifica a los servidores OpenShift que con el producto IronMQ [39].
necesita capacidad adicional. OpenShift Chequea que tenga IronMQ es un servicio de colas de mensajera fcil de usar
disponibilidad (de los tres engranajes libres) y luego crea otra y de alta disponibilidad. IronMQ est construido para distribuir
copia de su cartucho web en ese nuevo equipo. El cdigo en el aplicaciones en la nube con necesidades de mensajera crticos.
repositorio git se copia en cada nuevo equipo, pero el directorio Proporciona colas de mensajes en demanda con el transporte
de datos comienza vaco. Cuando se inicia el nuevo cartucho HTTPS, entrega FIFO, y persistencia de mensajes, con
de copia realizar los procedimientos necesarios y el proxy de rendimiento optimizado en la nube [40].
alta disponibilidad (del ingls High availability Proxy, de
acrnimo "HAProxy") comenzar a realizar el enrutamiento de F.6.1.Caractersticas principales
las peticiones web al mismo.
El algoritmo para la escalabilidad hacia arriba y hacia abajo F.6.1.1. Listo para usar
(expansin y decremento) se basa en el nmero de solicitudes Slo tiene que conectar IronMQ a los puntos finales (del
simultneas a su aplicacin. OpenShift asigna 10 conexiones ingls "endpoints") y ya est listo para crear colas y enviar y
por equipo. Si el HAProxy ve que la aplicacin est recibir mensajes. Perfecto para hacer mucho ms cosas de
sosteniendo el 90% de su capacidad mxima, aade otra forma asncrona.
instancia. Si la demanda cae un 50% de su capacidad mxima F.6.1.2. Alta disponibilidad
durante varios minutos, HAProxy elimina dicha instancia. Se ejecuta sobre infraestructuras de nube y utiliza mltiples
Debido a que cada cartucho es "nada compartido", si desea centros de datos de alta disponibilidad. Utiliza almacenes de
compartir datos entre los cartuchos puede utilizar un cartucho datos fiables para la durabilidad y persistencia de sus mensajes.

220 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
F.6.1.3. Rendimiento escalable / Alto otros clouds vendors mencionados, puesto que se implementa
Escrito con la elasticidad y la escalabilidad en su ncleo. en un appliance. PureApplication System, que integra la
Construido con lenguajes de alto rendimiento diseados para la funcionalidad de Cloud, de virtualizacin de aplicaciones y de
concurrencia, se ejecuta en las nubes de potencia industrial. datagrid, funciona todo en una misma "caja" (hardware)
provista por IBM.
F.6.1.4. Mltiples enlaces de lenguaje
Hace uso de un amplio conjunto de bibliotecas de idiomas G.3. Autoescalabilidad
IronMQ como Ruby, PHP, Python, Java, Go, y mucho ms. Obtener aplicaciones basadas en WebSphere rpidamente
Gateways Seguros / OAuth2: Utiliza HTTPS y SSL para en la nube con el Servicio de Carga de Trabajo de aplicacin de
proporcionar pasarelas (del ingls "gateways") seguras para la IBM SmartCloud: El Servicio de Carga de Trabajo de
gestin de colas y mensajes. OAuth2 proporciona flexibilidad, aplicacin (SCAWS) de IBM SmartCloud elimina el tedio de
escalabilidad y seguridad. la gestin de middleware y de infraestructura, lo que permite
implementar ms fcil, rpida y repetidamente aplicaciones
F.7. Alternativas de Hipervisor basadas en WebSphere para la nube pblica de IBM
Si bien OpenShift ofrece tres alternativas para el uso de SmartCloud Enterprise [43].
hipervisores. Estas son KVM (Kernel-Based Virtual Machine), Acelerar y simplificar la llegada a la nube con patrones:
Xen y Qemu. Esta plataforma no ofrece soporte para Como ncleo de la tecnologa PaaS de IBM y construido en los
virtualizadores de Microsoft como Hyper-V, lo cual implica aos de experiencia de IBM, los patrones son plantillas que
limitaciones para la implementacin de Sistemas operativos consisten en software y recursos de la mquina virtual. Los
basados en Kernels Windows. patrones simplifican radicalmente la configuracin y gestin de
Las instalaciones tpicas de OpenShift se realizan con el los recursos de hardware y software, lo que permite a los
hipervisor KVM [41]. equipos implementar rpidamente entornos de aplicaciones
complejas para la nube con resultados validados, de alta
G. IBM SmartCloud calidad y consistentes [43].
Escale las Aplicaciones con escalabilidad automatizada
G.1. Descripcin basada en polticas: Los patrones tienen polticas para
SmartCloud ofrece una gestin de cloud con el valor proporcionar automatizacin de gran alcance, incluyendo una
agregado que permite la eleccin y la automatizacin ms all poltica de enrutamiento para el balanceo de cargas, una
del aprovisionamiento de mquinas virtuales. poltica de registro, una poltica de JVM, y una poltica de
IBM SmartCloud Enterprise+ es un entorno Cloud seguro, escalabilidad basada en reglas automatizadas. Al establecer la
totalmente administrado y listo para produccin, diseado para poltica de ampliacin, un patrn desplegado puede escalar de
garantizar una alta performance y disponibilidad. forma dinmica en funcin de las reglas (por ejemplo, sobre la
SmartCloud Enterprise+ ofrece un control completo de base de tiempo de respuesta de solicitud) [43].
"governance", administracin y gestin, permitiendo definir Rpido aprovisionamiento y escalabilidad: Con el
acuerdos de nivel de servicio (SLA) para alinear las aprovisionamiento de IBM SmartCloud, las organizaciones de
necesidades de negocio y los requisitos de uso. TI pueden implementar rpidamente el tipo especfico de
Ofrece adems mltiples opciones de seguridad y entorno cloud que necesitan sin importar el tamao, para
aislamiento, integrados en la infraestructura virtual y de red, empezar a tomar ventaja del aumento de la flexibilidad y el
manteniendo el cloud separado de otros entornos cloud [42]. rendimiento que ofrece el cloud computing. En cualquier
momento, la nube se puede escalar rpidamente hacia arriba o
G.2. Caractersticas Principales hacia abajo segn sea necesario, para ayudar a las
PureApplication System soporta mltiples virtualizadores. organizaciones a satisfacer las necesidades cambiantes de TI
Es posible virtualizar, por ejemplo, con VMWare o Hyper-V. sin interrumpir las operaciones.
Los usuarios pueden autogestionar los recursos que Despliegue de cientos de mquinas virtuales en menos de
necesitan (patterns de aplicacin, requerimientos de cinco minutos: El aprovisionamiento de IBM SmartCloud
disponibilidad, CPU, memoria, storage, etc) y el sistema realiza permite a las organizaciones tomar ventaja inmediata de la
el deployment y el accounting automticamente. mayor flexibilidad y rendimiento que ofrece el cloud
Es posible definir polticas para las aplicaciones de manera computing. Al acelerar la entrega de los recursos informticos,
que los recursos que esta insume sean elsticos, es decir, que a su vez acelera la entrega de productos y servicios
crezcan o disminuyan de acuerdo con las variaciones de la innovadores, lo que permite una respuesta ms rpida a los
demanda. retos y oportunidades del mercado.
Datagrid provisto por WebSphere eXtreme Scale, que se El aprovisionamiento de IBM SmartCloud permite un
integra con PureApplication System. Ofrece un datagrid rpido despliegue y la integracin de las capacidades de la
distribuido, manejando la peristencia y la transaccionalidad. nube utilizando patrones de carga de trabajo. Los patrones
Adems, opcionalmente soporta la sincronizacin con una pueden ser creados utilizando un patrn suministrado como
fuente de datos. una plantilla o bien se pueden crear desde cero. Una vez creado
WSX brinda una API simple y poderosa para manipular los un patrn, se puede reutilizar una y otra vez para crear varias
datos del grid, permitiendo que sean accedidos por REST o instancias idnticas en la nube. Se puede lograr una integracin
directamente por conector nativo ADO.NET para las significativa con componentes de middleware y recursos de
aplicaciones C#. infraestructura para optimizar los componentes para un tipo
Los servicios de PureApplication System son diferenciales particular de carga de trabajo de la aplicacin. Capacidades
conceptualmente con respecto a los servicios provistos por los dinmicas y elsticas se realizan plenamente. El sistema puede

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 221
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
crear o eliminar recursos adicionales segn sea requerido por la TCO hasta en un 40 por ciento inferior con la gestin del
demanda de la aplicacin [44]. ciclo de vida y la migracin automatizada en cinta
Ofrece la opcin de puerta de enlace (del ingls "gateway")
G.3.1. Caractersticas destacadas con los para sistemas de discos IBM XIV e IBM Storwize
Reducir los costos y la complejidad al permitir solicitudes V7000 [45].
de autoservicio y automatizacin de las operaciones
Obtener una rpida escalabilidad para satisfacer el G.5.2. IBM Storwize V7000 Unified
crecimiento del negocio con un despliegue casi instantneo de Sistema de almacenamiento virtualizado construido para
cientos de mquinas virtuales complementar los entornos de servidores virtualizados.
Evitar los proveedores de tecnologa mediante la creacin Proporcionar hasta 200 por ciento de mejora en el
de cargas de trabajo en la nubes optimizadas para entornos rendimiento con la migracin automtica de las unidades de
heterogneos estado slido de alto rendimiento (SSD) [46].
Acelerar las implementaciones de aplicaciones utilizando Habilita el almacenamiento de hasta cinco veces los datos
los patrones de carga de trabajo repetibles primarios ms activos en el mismo espacio fsico en disco
Optimizar los entornos virtualizados con la gestin del utilizando Real-time Compression [46].
ciclo de vida y anlisis de imagen avanzada Consolida el bloque y el almacenamiento de archivos para
Con herramientas como la Biblioteca Virtual de imagen, simplificar, obteniendo una mayor eficiencia y facilidad de
Construccin de Imagen y Composicin (ICONO), y el Editor gestin [46].
de diseos, El aprovisionamiento de IBM SmartCloud ayuda a Habilita la disponibilidad casi continua de las aplicaciones
las organizaciones a gestionar la expansin de imagen, velar a travs de la migracin dinmica [46].
por el cumplimiento, crear imgenes base, automatizar la Gestin de datos diseada para que sea fcil de usar, con
instalacin de software y crear patrones repetibles. Esta una interfaz grfica de usuario y sistema de gestin con la
amplitud de capacidades ayuda a asegurar que las capacidad "apuntar y hacer clic" [46].
organizaciones no slo puedan crear entornos de nube Metro Mirror y Global Mirror para la replicacin de datos
robustos, sino que tambin puedan controlar y gestionar estos sncrona o asncrona entre sistemas para la eficiencia del
entornos. backup [46].
Implementaciones aceleradas con los patrones de carga de SSD para aplicaciones que requieren alta velocidad y
trabajo reutilizables: El aprovosionamiento de IBM acceso rpido a los datos [46].
SmartCloud ayuda a las organizaciones a desarrollar fcil y RAID 0, 1, 5, 6 y 10 [46].
rpidamente, y probar y desplegar aplicaciones de negocio,
poniendo fin a la utilizacin de los procesos manuales, G.5.3. IBM XIV Storage Systems Gen3
procesos complejos o aquellos que requieren mucho tiempo IBM XIV es un sistema de almacenamiento en disco de alta
asociado a la creacin de entornos de aplicacin. Una vez que gama que permite a miles de empresas hacer frente al desafo
las solicitudes han completado sus tareas, los recursos retornan creado por el crecimiento sorprendente de datos. IBM XIV
automticamente al administrador de recursos compartidos. ofrece un alto rendimiento de punto de acceso y facilidad de
Esta solucin tambin gestiona usuarios individuales y accesos uso para el cambio de juego. Por agilidad ptima en entornos
grupales, dando a los administradores de TI el tipo correcto de de nube, IBM XIV ofrece un escalado simple, altos niveles de
los controles de acceso con niveles de eficiencia ptimos [44]. servicio para cargas de trabajo dinmicas, heterogneas y una
estrecha integracin con hipervisores, as como tambin con la
G.4. Soporte para Sistemas operativos Microsoft Windows y plataforma OpenStack [47].
Linux Almacenamiento en disco virtualizado con hasta 3 terabytes
El aprovisionamiento de IBM SmartCloud ofrece una nica de espacio.
plataforma de gestin a lo largo de las diferentes Un sistema revolucionario, probado, de alta gama de
infraestructuras, ayudando a reducir la complejidad y el coste almacenamiento en disco diseado para el crecimiento de los
de las operaciones. Permite el diseo y despliegue de datos y una incomparable facilidad de uso
aplicaciones compuestas consistentes y repetibles en una nube Alto Rendimiento uniforme, logrado a travs de
de hardware virtualizado ejecutando cualquiera de los paralelismo masivo y ajuste automtico
hipervisores soportados, incluyendo Linux en IBM System z, Almacenamiento virtualizado, fcil aprovisionamiento y
mquinas virtuales basada en el kernel (KVM), Xen, Microsoft agilidad extrema para la nube optimizada y entornos virtuales
Hyper-V, IBM PowerVM e IBM z/VM. Integra cmupto, Opcin de aumento de rendimiento adicional a travs del
almacenamiento de red y distribucin de aplicaciones para manejo libre de almacenamiento en cach SSD
ayudar a permitir la integracin organizacional. Adems, ayuda Alta fiabilidad y disponibilidad a travs de la redundancia
a reducir los costos de licencias y hardware con su soporte para completa, velocidad de reconstruccin sin precedentes
mltiples hipervisores y gestin de entornos mixtos [44]. TCO bajo permitido por el almacenamiento de alta
densidad, la planificacin simplificada, las caractersticas de la
G.5. Soporte para almacenamiento de datos gratuidad y la gestin bajo-touch [47].
G.5.1. IBM SONAS 1.3
21 Petabytes de almacenamiento con rendimiento escalable G.6. Soporte para colas
y accesible a nivel global El bus de Integracin de IBM (antes conocido como
Proporciona escalabilidad extrema para ajustarse a la WebSphere Message Broker) es un bus de servicios
capacidad de crecimiento, satisfaciendo a las aplicaciones empresariales (ESB) que proporciona conectividad y
hambrientas de ancho de banda con rendimiento escalable. transformacin de datos universal para la arquitectura orientada

222 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
a servicios (SOA) y entornos no SOA. Ahora las empresas de la infraestructura de virtualizacin, con una gestin lista para la
cualquier tamao pueden eliminar las conexiones punto a nube. La combinacin de IBM Systems Director y VMControl
punto y procesamiento por lotes, independientemente de la le permite reducir el coste total de propiedad de su entorno
plataforma, protocolo o formato de datos [48]. virtualizado - servidores, almacenamiento y redes - al
disminuir los costes de gestin, aumentando la utilizacin de
Con IBM Integration Bus es posible: Utilizar las capacidades activos, y la vinculacin de rendimiento de la infraestructura de
robustas para hacer frente a los diferentes requisitos de los objetivos de negocio [49].
integracin para satisfacer las necesidades de cualquier tamao VMControl simplifica la gestin de los entornos virtuales a
de proyecto. travs de mltiples tecnologas de virtualizacin y plataformas
Ayudar a toda su organizacin a tomar decisiones ms de hardware. VMControl es una solucin de gestin de
inteligentes de negocios, proporcionando un rpido acceso, virtualizacin multi-plataforma lder que se incluye con
visibilidad y el control sobre los datos que fluyen a travs de ediciones de IBM Systems Director, disponibles por separado o
sus aplicaciones empresariales y sistemas. como un plug-in para IBM Systems Director. Esta diversidad
Conectar toda una serie de aplicaciones heterogneas y de opciones de despliegue le permite seleccionar el nivel
servicios web, eliminando necesidades complejos de ptimo de funcionalidad de VMControl (Express, Standard o
conectividad de punto a punto. Enterprise) para su infraestructura virtualizada y para escalar
Contar con el soporte de aplicaciones y servicios de sin problemas a medida que la misma evoluciona [49].
Microsoft.
Proporcionar una base de integracin estandarizada, G.7.1. Caractersticas destacadas
simplificada y flexible para ayudarle con mayor rapidez y Rene la gestin fsica y virtual en una interfaz nica para
facilidad a apoyar las necesidades del negocio y escalar con el reducir la complejidad
crecimiento del negocio [48]. Ofrece una inigualable plataforma cruzada para la gestin
de mltiples sistemas operativos, lo que ayuda a mejorar la
G.7. Alternativas de Hipervisor prestacin de servicios mediante la eliminacin de silos
IBM Systems Director es la columna vertebral de la aislados de virtualizacin en entornos heterogneos.
plataforma de gestin para lograr una computacin inteligente. Proporciona un "time-to-value" ms rpido, y una mayor
Un componente integral de la cartera de Sistemas de IBM, agilidad del negocio a travs de la gestin de la virtualizacin
IBM Systems Director permite la integration con Tivoli y simplificada que permite una utilizacin ms eficaz de los
plataformas de gestin de terceros, proviendo componentse recursos virtualizados.
para los servicios de gestin integrados. Con Systems Director Establece una precisin y consistencia repetibles gracias a
puede: la automatizacin.
Automatizar las operaciones del centro de datos mediante Reduce los costos operativos y de infraestructura a travs
la implementacin de infraestructuras virtuales cloud-ready de una mayor eficiencia y utilizacin de los recursos [49].
Unificar la gestin de los recursos fsicos y virtuales,
almacenamiento y redes, para los servidores IBM G.8. Soporte para Datagrids
Simplificar la gestin de los sistemas optimizados WebSphere eXtreme Scale proporciona almacenamiento
Lograr una visin nica de la utilizacin real de energa a esencial en cach de objetos distribuido para entornos de nube
travs de su centro de datos de prxima generacin y escalabilidad elstica [50].
Gestin del ciclo de vida simple de las cargas de trabajo El Software de IBM WebSphere eXtreme Scale
con un uso intuitivo y reduccin de la complejidad - IBM proporciona un marco cach escalable de alto rendimiento y
Systems Director ofrece una plataforma unificada integral de tecnologa de redes. WebSphere eXtreme Scale proporciona
gestin de sistemas. Proporciona herramientas para el una mayor calidad de servicio en entornos de computacin de
descubrimiento, el inventario, el estado, la configuracin, alto rendimiento a travs de "caching elstico". El Caching
notificacin de eventos de salud del sistema, monitoreo de los elstico mejora el rendimiento y la rentabilidad de la inversin
recursos, actualizaciones del sistema y la automatizacin de la [50].
gestin. WebSphere eXtreme Scale es una herramienta esencial para
Integracin - Tivoli y plataformas de gestin de terceros la escalabilidad elstica y ofrece estos valiosos beneficios:
proporcionan la base para la gestin integrada de los servicios Procesa grandes volmenes de transacciones con extrema
de virtualizacin. Con una amplia gama de tareas disponibles eficiencia y escalabilidad lineal.
en la plataforma de gestin y las herramientas automatizadas, Construye rpidamente una rejilla elstica transparente,
Director asiste al personal de gestin de sistemas en el aumento flexible y de alta disponibilidad que escala acorde a las
de la productividad, lo que resulta en una mayor capacidad de necesidades de las aplicaciones, eliminando los lmites de
respuesta y servicio [49]. rendimiento de la base de datos.
El valor de la clave de IBM Systems Director es su Proporciona alta disponibilidad y seguridad con copias
capacidad para trabajar en diferentes entornos de TI. Reduce redundantes de datos de la cach. Dispone de esquemas de
drsticamente el nmero de herramientas de gestin e autenticacin que ayudan a garantizar la seguridad del sistema.
interfaces, simplificando la forma en que los administradores Permite a los sistemas de back-end existentes soportar una
de TI realizan sus tareas, y la liberacin de su tiempo para cantidad significativamente mayor de aplicaciones, lo que
satisfacer las cambiantes necesidades del negocio [49]. reduce el coste total de propiedad (del ingls "Total cost of
IBM Systems Director VMControl: gestin de ownership", por sus siglas TCO) [50].
infraestructuras fsicas y virtuales lista parra la nube.
IBM Systems Director VMControl le ayuda a obtener ms de

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 223
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
H. VMware VCloud Suite vCloud Suite incluye VMware vCloud Automation Center, que
introduce un potente modelo de aprovisionamiento de servicios
H.1. Descripcin de TI gestionados en rgimen de autoservicio a travs de un
La virtualizacin ha reducido los costos de IT portal seguro y fcil de usar controlado mediante polticas.
dramticamente, mejorando la eficiencia en gran medida. Las redes definidas por software permiten a las mquinas
Ahora las unidades de negocio necesitan un acceso rpido a los virtuales de una cloud de VMware utilizar los recursos en
recursos de IT para lograr mayor eficiencia en el "time to cualquier lugar del centro de datos, sin importar los lmites de
market" de los proyectos. VMware vCloud Suite es una las redes. Adems, con VMware vCloud Connector, el equipo
solucin de infraestructura integral y completa que simplifica de TI puede estar preparado para una demanda inesperada,
las operaciones de IT ofreciendo mejores SLAs para las recurriendo a clouds pblicas de confianza, fuera de sus
aplicaciones. Ayuda adems a mejorar la agilidad, la eficiencia instalaciones, basadas en VMware cuando sea preciso [52].
y a realizar una gestin inteligente de la administracin de
operaciones de computacin en la nube [51].
Qu es VMware vCloud Suite?: La virtualizacin de
VMware ha ayudado a los clientes a reducir drsticamente los
gastos de capital gracias a la consolidacin de servidores. Ha
mejorado los gastos de explotacin mediante la automatizacin
y ha minimizado la prdida de ingresos porque reduce el
tiempo de inactividad, planificado y no planificado. Sin
embargo, las empresas actuales tambin necesitan reducir el
tiempo de comercializacin de sus productos y servicios. Las
unidades de negocio exigen acceso rpido a los recursos de TI
y a las aplicaciones. Se presenta a continuacin (Figura 4), la
solucin para la nube propuesta por VMware, y tambin un
cuadro que define las responsabilidades de cada uno de los
productos para la gestin e infraestructura de la nube (Figura 5)
[52].

Fig. 5. Responsabilidades de productos [52].

H.2.2. Simplifique y automatice la gestin de operaciones


A medida que el centro de datos se convierte en una cloud
privada o hbrida, la gestin de operaciones cobra una
importancia fundamental. Un entorno gil proporciona
escalabilidad elastica y permite un cambio constante de las
cargas de trabajo. Para respaldar de manera proactiva a la
empresa, el departamento de TI necesita planificacin
inteligente de la capacidad, solucin automatizada de los
Fig. 4. Solucin completa e integrada en la nube [52]. problemas de rendimiento y gestin continua del cumplimiento
normativo. vCloud Suite incluye las completas prestaciones de
H.2. Caractersticas Principales gestin de TI de vCenter Operations Management. La
supervisin del rendimiento y las alertas proactivas garantizan
H.2.1. Agilice el acceso a los recursos y a las aplicaciones
que el departamento de TI pueda reaccionar a los desafos de
vCloud Suite permite a los tcnicos de TI prestar servicios cumplimiento de los acuerdos de nivel de servicio en la cloud
de TI controlados por polticas en rgimen de autoservicio, as
antes de que lleguen a afectar al negocio [52].
como aprovisionar mquinas virtuales y aplicaciones de
mltiples niveles en solo unos minutos. Adems, ampla la
capacidad disponible para las
unidades de negocio tanto de forma interna como externa.

224 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
H.2.3. Mejores acuerdos de nivel de servicio para todas las Analizar y solucionar problemas rpidamente con
aplicaciones visibilidad de la infraestructura virtual vSphere.
Adems de proporcionar agilidad a los propietarios de los Entregar la seguridad y disponibilidad de vSphere a travs
negocios y de realizar una gestin ptima de los recursos del de funciones de gestin proactiva automatizadas, como el
centro de datos, se espera que los equipos de TI aporten los balanceo de carga automtico y fuera de la caja (de la
acuerdos de nivel de servicio de rendimiento, seguridad y expresin en ingls "out-of-the-box") de automatizacin de
recuperacin ante desastres que la empresa necesita [52]. flujos de trabajo.
Ampliar las capacidades de virtualizacin con soluciones
H.2.4. Infraestructura de la nube: ambientales de terceros [52].
Aprovisionamiento e implementacin automatizados.
Forme nuevas aplicaciones con componentes reutilizables e H.4. Blueprints / Imgenes para acelerar el aprovisionamiento
implemntelas en minutos, no semanas. VMware vCenter Server proporciona una gestin
Administracin automatizada de operaciones. Administre centralizada de la infraestructura virtual vSphere. Los
su nube en forma eficiente con herramientas desarrolladas administradores de TI pueden asegurar la seguridad y
especialmente para optimizar el rendimiento, asegurar la disponibilidad, simplificar las tareas del da a da, y reducir la
seguridad y rectificar problemas potenciales antes de que los complejidad de la gestin de la infraestructura virtual.
usuarios se enteren siquiera. Cmo funciona el vCenter Server?: El Control y visibilidad
Disponibilidad, recuperacin ante desastres y cumplimiento centralizada proporciona una gestin centralizada de hosts
normativo. Suministre acuerdos exigentes de nivel de servicio, virtuales y mquinas virtuales desde una nica consola. Esto
proteja sus datos y verifique el cumplimiento de polticas y proporciona a los administradores una mayor visibilidad en la
regulaciones. configuracin de los componentes crticos de una
Visibilidad de los costos del departamento de TI. Planifique infraestructura virtual, todo desde un solo lugar. Con vCenter
la capacidad, optimice la asignacin de recursos y desarrolle un Server, los entornos virtuales son ms fciles de manejar: un
modelo de cobro retroactivo de gastos completo para el solo administrador puede gestionar cientas de cargas de
departamento de TI con sensatez. trabajo, ms del doble de la productividad tpica en la gestin
Capacidad completa de extensibilidad. Personalice su de la infraestructura fsica [52].
entorno, integre soluciones de terceros e interopere con los Infraestructura Virtual entregada con confianza: Cumplir
servicios de computacin en nube pblica regidos por VMware consistentemente con los Acuerdos de nivel de servicio de
[53]. aplicacin crticos para el negocio (del ingls "Service level
agreement", y su acrnimo SLA), exige una gestin proactiva
H.2.5. Operaciones en la nube automatizada para maximizar las capacidades de vSphere.
Servicios segn demanda: Implemente un nuevo modelo de Entre las principales funcionalidades habilitadas por vCenter
autoservicio para reducir los costos del departamento de TI y Server incluyen: VMware vSphere vMotion, VMware vSphere
aumentar la agilidad [53]. Distributed Resources Scheduler, VMware vSphere High
Availability (HA) y VMware vSphere Fault Tolerance.
H.2.6. Implementacin y aprovisionamiento automatizados VMware vCenter Orchestrator tambin proporciona a los
Revolucione el cumplimiento de los pedidos, el desarrollo administradores la capacidad de crear e implementar
de aplicaciones y los procesos de implementacin para generar fcilmente los flujos de trabajo con las mejores prcticas.
gran eficiencia. Con una gestin proactiva automatizada, vCenter Server
Administracin anticipativa de problemas e permite que se cumplan los niveles de servicio mediante el
incidentes. Aproveche la administracin segn polticas y la aprovisionamiento de nuevos servicios de forma dinmica,
automatizacin para eliminar los procesos manuales propensos equilibrando los recursos y la automatizacin de alta
a errores y administrar los sistemas anticipndose a los disponibilidad [52].
problemas.
Administracin de riesgo, el cumplimiento normativo y la H.5. Soporte para Sistemas operativos Microsoft Windows y
seguridad: proteja su negocio asegurando estndares de nivel Linux
empresarial para la manera en que se protegen los sistemas en El Gestor Multi-hipervisor de vCenter Server proporciona
todo su entorno de nube. una gestin integrada y simplificada de hosts VMware e
Administracin financiera del departamento de TI: Adopte Hyper-V, brinando la posibilidad de implementar tanto
un nuevo paradigma financiero que le brinde transparencia y sistemas operativos de la lnea Windows como tambin
conecte los costos de los servicios de TI directamente con la aquellos basados en kernels Linux [52].
demanda y el consumo [53].
H.6. Soporte para almacenamiento de datos
H.3. Autoescalabilidad En el entorno de vCloud Director, el proveedor
VMware vCenter Server proporciona una plataforma expone un conjunto de cmputo virtualizado, almacenamiento
centralizada y extensible para la gestin de la infraestructura y recursos de red para ser consumidos por los usuarios en la
virtual. vCenter Server administra entornos de VMware nube. La puesta en comn de los recursos virtuales se define y
vSphere, proporcionando a los administradores de TI un se gestiona a travs de vCloud Director por el administrador de
control simple y automatizado en el ambiente virtual para una manera que ofrece tanto elasticidad como escalabilidad.
entregar la infraestructura con confianza. Desde la perspectiva de los usuarios (consumidores) los
Principales beneficios: recursos de almacenamiento aparecen como un conjunto
ilimitado de almacenamiento de rendimiento y costo uniforme.

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 225
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
El objetivo de vCloud Director es el de proporcionar a los detecta que el aprovisionamiento de vApp se ha completado,
consumidores la capacidad de almacenamiento ilimitado. Un Orchestrator puede actualizar las bases de datos de gestin de
Proveedor VDC es un fondo de recursos de un clster de la configuracin y otros sistemas de gestin de la informacin
servidores VMware ESX que acceden a un recurso de sobre la nueva instancia de vApp.
almacenamiento compartido. El proveedor VDC puede El AMQP plug-in proporciona la capacidad de controlar y
contener: publicar mensajes AMQP, as como para llevar a cabo tareas
1) parte de un almacn de datos (compartida por otros CDA administrativas, como la configuracin de corredores AMQP y
Provider) gestin de colas. El plug-in AMQP de VMware soporta
2) un almacn de datos completo RabbitMQ as como otras implementaciones de AMQP [55].
3) mltiples almacenes de datos.
Como el almacenamiento se aprovisiona por Organizacin H.8. Alternativas de Hipervisor
de VDCs, la agrupacin de almacenamientos compartido para El Gestor de Multi-hipervisor proporciona una gestin
el proveedor de VDC se considera como una agrupacin de integrada y simplificada de hosts VMware e Hyper-V.
almacenamiento sin distincin de caractersticas de VMware vCenter Server proporciona la gestin
almacenamiento, protocolos u otras caractersticas que lo centralizada de infraestructura virtual vSphere. Los
diferencian de ser algo ms que un espacio de direcciones de administradores de TI pueden asegurar as la seguridad y
gran tamao. disponibilidad, simplificar las tareas del da a da, y reducir la
En el caso de un Proveedor de VDC que se compone de complejidad de la gestin de la infraestructura virtual [52].
ms de un almacn de datos, se considera buena prctica que
los almacenes de datos tengan capacidades de rendimiento Qu es VMware vCenter Multi-Hypervisor Manager 1.1?
iguales, as como protocolos y calidad de servicio. En caso VMware vCenter Multi-Hypervisor Manager es un
contrario, el rendimiento del Proveedor de agrupacin de componente que activa el soporte para los hipervisores
almacenamiento VDC se ver afectado por el almacenamiento heterogneos en VMware vCenter Server. Ofrece los siguientes
ms lento. Algunos VDCs podran terminar con el beneficios a su entorno virtual:
almacenamiento ms rpido que otros. Con el fin de obtener
los beneficios de los diferentes niveles o protocolos de Una plataforma integrada para la gestin de VMware y los
almacenamiento, ser necesario definir los Proveedores VDCs hipervisores de terceros desde una nica interfaz.
separados donde cada proveedor de VDC tendra Alternativas de hipervisores para las diferentes unidades de
almacenamiento de diferentes protocolos y diferentes calidades negocio de la organizacin para satisfacer sus necesidades
de servicio de almacenamiento. Por ejemplo, se podra especficas.
suministrar un proveedor de VDC que se base en un almacn Mltiples proveedores de hipervisores soportados.
de datos de respaldo de discos de 15K RPM FC con un montn Cuando se agrega un host de terceros a vCenter Server,
de cach en el disco para obtener el ms alto rendimiento de todas las mquinas virtuales que existen en el host se detectan
disco, y un segundo proveedor de VDC que se basa en un automticamente y se agregan al inventario de los ejrcitos de
almacn de datos de respaldo de unidades SATA y con poco terceros [56].
cach en la matriz de un nivel inferior. Cabe sealar que
cuando un proveedor de VDC tiene un almacn de datos que se H.8.1. Caractersticas destacadas
comparte con otro Proveedor de VDC, uno puede encontrar vCenter Multi-Hypervisor Manager 1.1 introduce el
que un Proveedor de VDC est causando impacto en el siguiente conjunto de capacidades bsicas de gestin sobre
rendimiento en otro Proveedor de VDC. Por lo tanto, se otros fabricantes:
considera buena prctica tener un proveedor de VDC que tenga Gestin de hosts de terceros incluyendo agregar, quitar,
un almacn de datos dedicado de forma que el aislamiento del conectar, desconectar y ver la configuracin del host.
almacenamiento reduzca las posibilidades de diferentes Posibilidad de migrar mquinas virtuales desde hosts de
calidades de servicios de almacenamiento en un solo proveedor terceros para ESX o ESXi.
de VDC [54]. Capacidad para la provisin de mquinas virtuales en hosts
de terceros.
H.7. Soporte para colas Capacidad para editar la configuracin de la mquina
El plug-in AMQP de VMware vCenter Orchestrator virtual.
permite a las organizaciones activar automticamente los flujos mecanismo de autorizacin integrado del servidor vCenter
de trabajo basados en mensajes Advanced Message Protocol en ESX / ESXi e inventarios de los host de terceros para
Queue Server (AMQP). AMQP es un protocolo de alta obtener privilegios, roles y usuarios.
escalabilidad de publicacin y suscripcin de mensajes que se Deteccin automtica de las mquinas virtuales de terceros
utiliza cada vez ms en las arquitecturas de nube. Es el preexistentes
protocolo de mensajera por defecto para vCloud Director. Con Capacidad para realizar operaciones sobre hosts y mquinas
el AMQP plug-in, las organizaciones pueden definir polticas virtuales.
que activan automticamente los flujos de trabajo especficos Posibilidad de conectar y desconectar DVD, CD-ROM,
en funcin de ciertos mensajes AMQP. Por ejemplo, como unidades de disco y las imgenes de disco para instalar
parte de una actividad de pre-aprovisionamiento de una vApp, sistemas operativos [56].
vCloud Director Orchestrator puede detectar la peticin de
provisin y recuperar automticamente la direccin IP de un
sistema externo antes de permitir que vCloud Director continue
con la actividad de aprovisionamiento. Cuando Orchestrator

226 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
I. OpenStack Capacidad de transmisin de multimedia
Almacenamiento seguro de los objetos
I.1. Descripcin
Copia de seguridad y archivado
OpenStack es un conjunto de proyectos de software de
Escalabilidad Extrema [61]
cdigo abierto que las empresas / proveedores de servicios
pueden usar para configurar y ejecutar su nube de computacin
e infraestructura de almacenamiento. Rackspace y la NASA I.2.3. Servicios de Imagen (Glance)
son los contribuyentes iniciales clave para la pila. Rackspace Servicios de imagenes de OpenStack es un sistema de
contribuy con su plataforma "Archivos en la Nube" (cdigo) bsqueda y recuperacin de imgenes de mquinas virtuales.
para alimentar la parte de almacenamiento de objetos de Puede ser configurado para utilizar uno cualquiera de los
OpenStack, mientras que la NASA aport su plataforma siguientes backends de almacenamiento:
"Nebulosa" (cdigo) para alimentar la parte Compute. El
Consorcio OpenStack ha logrado tener ms de 100 miembros, Sistema de archivos local (por defecto)
incluyendo Canonical, Dell, Citrix, etc en menos de un ao. Almacenar objetos OpenStack para almacenar imgenes
OpenStack hace que sus servicios se encuentren disponibles Almacenamiento directo en S3 (Simple storage service de
por medio de una API compatible con Amazon EC2/S3. Por lo Amazon EC2)
tanto, las herramientas cliente escritas para AWS se pueden Almacenamiento S3 con almacn de objetos como
utilizar con OpenStack [57]. intermediario para el acceso a S3.
HTTP (de slo lectura)
I.2. Caractersticas Principales [OpenStack, 2013f] Funciones y caractersticas:
Proporciona servicios de imgenes [62]
I.2.1. Infraestructura de Cmputo (Nova)
Nova es el controlador de fbrica para Cmputo para la I.3. Autoescalabilidad
nube OpenStack. Todas las actividades necesarias para apoyar Heat es un servicio para orquestar mltiples aplicaciones
el ciclo de vida de las instancias dentro de la nube OpenStack compuestas en la nube utilizando el formato de la plantilla
se manejan por Nova. Esto hace que Nova sea una plataforma CloudFormation AWS, tanto a travs de una API REST
de gestin que administra los recursos de cmputo, redes, OpenStack-nativa como un API de consultas CloudFormation-
autorizacin, y las necesidades de escalabilidad de la nube compatible.
OpenStack. Sin embargo, Nova no proporciona ninguna Heat proporciona una implementacin CloudFormation
capacidad de virtualizacin por s mismo, sino que utiliza las AWS para OpenStack que orquesta una plantilla
API de libvirt para interactuar con los hipervisores CloudFormation AWS que describe una aplicacin de nube
compatibles. Nova expone todas sus capacidades a travs de ejecutando las llamadas apropiadas a la API OpenStack, para
una API de servicios web que sea compatible con la API de generar la ejecucin de aplicaciones de nube.
EC2 de Amazon Web Services [58]. El software integra otros componentes bsicos de
OpenStack en un sistema de plantillas de un archivo. Las
I.2.1.1. Funciones y caractersticas plantillas permiten la creacin de la mayora de los tipos de
Gestin del ciclo de vida de Instancias recursos OpenStack (tales como instancias, IPs flotantes,
Gestin de recursos informticos volmenes, grupos de seguridad, usuarios, etc), as como
Redes y Autorizacin tambin algunas funciones avanzadas tales como una alta
API basada en REST disponibilidad de instancias, autoescalabilidad de instancias, y
Comunicacin consistente, eventualmente asincrnica pilas anidadas. Al proporcionar una integracin tan estrecha
Agnsticismo de Hypervisor: soporte para Xen, XenServer / con otros proyectos ncleo de OpenStack, todos los proyectos
XCP, KVM, UML, VMware vSphere y Hyper-V [59]. ncleo de OpenStack podran recibir un mayor nmero de
usuarios [63].
I.2.2. Infraestructura de Almacenamiento (Swift)
Swift proporciona un almacn de objetos virtuales I.4. Blueprints / Imgenes para acelerar el aprovisionamiento
eventualmente consistentes distribuida para OpenStack. Es
anlogo a Amazon Web Services - Simple Storage Service I.4.1. Oz
(S3). Swift es capaz de almacenar miles de millones de objetos Oz es una herramienta de lnea de comandos que
distribuidos en diferentes nodos. Swift ha incorporado automatiza el proceso de creacin de un archivo de imagen de
redundancia y tolerancia a fallos de gestin y es capaz de mquina virtual. Oz es una aplicacin Python que interacta
transmitir y guardar multimedia. Es sumamente escalable tanto con KVM para pasar por el proceso de instalacin de una
en trminos de tamao (varios petabytes) y de capacidad mquina virtual. Se utiliza un conjunto predefinido de arranque
(Nmero de objetos) [60]. rpido (sistemas basados en RedHat) y ficheros de pre-
configuracin (sistemas basados en Debian) para los sistemas
I.2.2.1. Funciones y caractersticas operativos que soporta, y tambin permite crear imgenes de
Microsoft Windows [64].
Almacenamiento de gran cantidad de objetos
Almacenamiento de objetos de tamao grande
I.4.2. vmbuilder
Redundancia de datos
Vmbuilder (Generador de mquinas virtuales) es una
Capacidad de Archivo - Trabajo con conjuntos de datos
herramienta de lnea de comandos que se puede utilizar
grandes
para crear imgenes de mquinas virtuales para diferentes
Contenedor de datos de mquinas virtuales y aplicaciones
hipervisores. La versin de vmbuilder que viene con
cloud

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 227
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
Ubuntu slo puede crear mquinas virtuales de Ubuntu. La nivel superior del proyecto OpenStack, Red Hat se encuentra
versin de vmbuilder que viene con Debian pueden crear cerca de la parte superior de la lista en trminos de nmero de
mquinas virtuales Ubuntu y Debian [64]. desarrolladores y de contribuciones [65].

I.4.3. BoxGrinder I.7. Soporte para almacenamiento de datos


BoxGrinder es otra herramienta para la creacin de Adems de la tecnologa de almacenamiento de clase
imgenes de mquinas virtuales. BoxGrinder puede crear empresarial tradicional, muchas organizaciones ahora tienen
imagenes de mquinas virtuales Fedora, Red Hat Enterprise una variedad de necesidades de almacenamiento con requisitos
Linux, CentOS. BoxGrinder slo est soportado en Fedora de rendimiento y precios variables. OpenStack tiene soporte
[64]. para almacenamiento de objetos y Block Storage, con muchas
opciones de implementacin para cada uno dependiendo del
I.4.4 VeeWee caso de uso. El almacenamiento de objetos es ideal para el
VeeWee se utiliza a menudo para construir cajas de almacenamiento eficaz con escalabilidad horizontal.
Vagrant, pero tambin puede ser usado para construir imgenes Proporciona una plataforma de almacenamiento accesible por
KVM [64]. medio de una API completamente distribuida que se puede
integrar directamente en las aplicaciones o utilizar para copia
I.4.5. Imagefactory de seguridad, archivo y conservacin de los datos. Block
Imagefactory es una herramienta nueva diseada para Storage permite mejorar el rendimiento y la integracin con las
automatizar la construccin, y convertir y subir imgenes a plataformas de almacenamiento empresarial, como NetApp,
diferentes proveedores de la nube. Utiliza Oz como su back- Nexenta y SolidFire.
end e incluye soporte para las nubes basadas en OpenStack OpenStack ofrece, almacenamiento de objetos escalable y
[64]. redundante utilizando clusters de servidores estandarizados
capaces de almacenar petabytes de datos
I.5. Soporte para Sistemas operativos Microsoft Windows El almacenamiento de objetos no es un sistema de archivos
Es posible utilizar Hyper-V como un nodo de clculo tradicional, sino ms bien un sistema de almacenamiento
dentro de una implementacin de OpenStack. El servicio de distribuido de datos estticos, como imgenes de mquina
cmputo nova se ejecuta como un servicio de 32 bits virtual, almacenamiento de fotos, almacenamiento de correo
directamente en la plataforma de Windows con la funcin electrnico, copias de seguridad y archivos. Al no tener
Hyper-V habilitada. Los componentes de Python necesarios, "cerebro" central, el punto principal de control proporciona una
as como el servicio de Cmputo Nova se instalan directamente mayor escalabilidad, redundancia y durabilidad.
en la plataforma Windows. Los Servicios de Cluster Server de Los objetos y los archivos se escriben en mltiples
Windows no son necesarios para la funcionalidad de la unidades de disco distribuidos en el centro de datos (del ingls
infraestructura OpenStack. El uso de la plataforma Windows "Data Center"), con ka responsabilidad del software de
Server 2012 se recomienda para obtener mejores resultados. OpenStack de asegurar la replicacin y la integridad de los
Las plataformas Windows siguientes han sido probadas como datos en el clster.
nodos de cmputo [63]: Las agrupaciones de almacenamiento (del ingls "Storage
Clusters") escalan horizontalmente simplemente aadiendo
I.5.1 Windows Server 2008R2 nuevos servidores. En caso de que un servidor fallara,
Tanto Server y Server Core con el rol Hyper-V activados OpenStack replica el contenido a otros nodos activos en nuevas
(Nada Compartido La migracin en vivo no es compatible con ubicaciones del clster. Debido a que OpenStack utiliza la
2008r2) lgica del software para asegurar la replicacin y distribucin a
Windows Server 2012: Server y Core (con la funcin travs de diferentes dispositivos, se pueden utilizar, en lugar de
Hyper-V habilita) e Hyper-V Server los equipos ms caros, los discos duros y servidores de datos de
materias primas baratas.
I.6. Soporte para Sistemas operativos Linux Bloque Capacidades de almacenamiento: OpenStack ofrece
Qu es RDO? dispositivos de almacenamiento persistentes a nivel de bloque
RDO es una disposicin de distribucin libre, apoyada por la para su uso con instancias de proceso OpenStack.
comunidad de OpenStack, que se ejecuta en Red Hat El sistema de almacenamiento de bloques gestiona la
Enterprise Linux, Fedora y sus derivados. Adems de creacin, montaje y desmontaje de los dispositivos de bloque
proporcionar un conjunto de paquetes de software, RDO en los servidores. Los volmenes de almacenamiento de
permite adems a los usuarios de la plataforma de computacin bloques se integran plenamente en OpenStack Compute y su
en la nube en los sistemas operativos Red Hat Linux obtener tablero de control permite a los usuarios en la nube gestionar
ayuda y comparar notas sobre la ejecucin de OpenStack. sus propias necesidades de almacenamiento.
El proyecto OpenStack se beneficia de un amplio grupo de Adems, utiliza el almacenamiento del servidor Linux
proveedores y distribuidores, pero ninguno cuenta con la simple, que tiene soporte de almacenamiento unificado para
experiencia en produccin de Red Hat, la experiencia tcnica y numerosas plataformas de almacenamiento, incluyendo Ceph,
el compromiso con la forma de cdigo abierto de la produccin NetApp, Nexenta, SolidFire y Zadara.
de software. Algunas de las ms grandes nubes de produccin Bloquear el almacenamiento es adecuado para escenarios
en el mundo se ejecutan y son apoyadas por Red Hat, y los sensibles al rendimiento, como el almacenamiento de bases de
ingenieros de Red Hat contribuyen a todas las capas de la datos, sistemas de archivos expandibles, o la prestacin de un
plataforma OpenStack. Desde el ncleo de Linux y los servidor con acceso al almacenamiento a nivel de bloque en
componentes del hipervisor KVM hasta los componentes de bruto.

228 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
La gestin de Snapshots proporciona una funcionalidad de Xen - XenServer, Plataforma de Nube Xen (XCP),
gran alcance para hacer copias de seguridad de los datos utilizado para ejecutar mquinas virtuales de Windows o
almacenados en volmenes de almacenamiento en bloque. Los Linux. Es necesario instalar el servicio nova-compute en una
Snapshots se pueden restaurar y utilizar para crear un nuevo mquina virtual para-virtualizado.
volumen de almacenamiento en bloque [66]. PowerVM - virtualizacin de servidores con IBM
PowerVM, utilizado para ejecutar AIX, IBM i y Linux en la
I.8. Soporte para colas tecnologa IBM POWER.
Message Queue (Rabbit MQ Server) Hyper-V - virtualizacin de servidores con Hyper-V de
OpenStack se comunica entre s utilizando la cola de mensajes Microsoft, utilizado para ejecutar indows, Linux, y las
a travs de AMQP (Protocolo avanzado de colas de mensajera, mquinas virtuales FreeBSD. Ejecuta nova-clculo de forma
del ingls "Advanced Message Queue Protocol). Nova utiliza nativa en la plataforma de virtualizacin de Windows.
llamadas asincrnicas para la solicitud de respuesta, con una Bare Metal - No es un hipervisor en el sentido tradicional,
devolucin de llamada que se desencadena una vez que se este controlador dispone de hardware fsico a travs de
recibe una respuesta. Dado que se utiliza la comunicacin controladores configurables (por ejemplo PXE para el
asincrnica, ninguna de las acciones del usuario se bloquea por despliegue de imgenes, e IPMI para la administracin de
mucho tiempo en un estado de espera. Esto es efectivo ya que energa) [69].
muchas de las acciones previstas por la API de llamadas tales
como el lanzamiento de una instancia o aadir una imagen III. ESTUDIO COMPARADO DE LAS ARQUITECTURAS
demandan mucho tiempo [67]. RELEVADAS

A. Descripcin del Problema


Qu puede hacer RabbitMQ?
Las funciones de Mensajera permiten conectar y ampliar las A la fecha de creacin de este trabajo, el mercado de
aplicaciones de software. Las aplicaciones pueden conectarse tecnologas de la informacin cuenta con una amplia oferta de
entre s, como componentes de una aplicacin ms grande, o a plataformas de servicios de Cloud Computing comercializados
los dispositivos de usuario y datos. La mensajera es asncrona, por mltiples proveedores. Muchas de las plataformas de estos
desacoplando las aplicaciones mediante la separacin del envo proveedores proponen servicios anlogos que pueden ser
y recepcin de datos. explotados con diversos lenguajes de programacin y
La entrega de datos, las operaciones no bloqueantes, plataformas de desarrollo. Es por ello que se considera
notificaciones push, publicacin/suscripcin, procesamiento necesario realizar una comparacin, como producto resultante
asincrnico y colas de trabajo son patrones que forman parte de de este trabajo de investigacin, acerca de los servicios y
la mensajera. caractersticas ofrecidos por los principales proveedores de las
RabbitMQ es un broker de mensajera que opera como tecnologas antedichas, en pos de colaborar al esclarecimiento
intermediario. Proporciona a las aplicaciones una plataforma sobre qu plataforma puede ser conveniente para cada caso,
comn para enviar y recibir mensajes, de manera que los identificando adems las fortalezas y debilidades ms
mensajes permanezcan en un lugar seguro hasta que sean relevantes de cada una de ellas, as como tambin las carencias
recibidos [68]. o prestaciones faltantes por parte de cada proveedor de
soluciones.
I.9. Alternativas de Hipervisor B. Caractersticas Consideradas
El mdulo de cmputo de OpenStack soporta varios
En la instancia de diseo del cuadro comparativo se
hipervisores. La mayora de las instalaciones slo utilizan un
seleccionaron un conjunto de caractersticas que por diversas
nico hipervisor, sin embargo, es posible utilizar el
razones fueron consideradas relevantes. A continuacin se
ComputeFilter e ImagePropertiesFilter para permitir la
define cada una de ellas.
programacin de diferentes hipervisores dentro de la misma
instalacin. C. Definicin de las caractersticas evaluadas
Las caracteristicas evaluadas se muestran en la Tabla 3.
KVM - Mquina Virtual basada en el Kernel. Los formatos
de disco virtual que soporta son heredados de QEMU, ya que D. Matriz comparativa
utiliza un programa de QEMU modificado para poner en En la Figura 5 se presenta la matriz comparativa de las
marcha la mquina virtual. Los formatos soportados incluyen arquitecturas relevadas.
imgenes en bruto (del ingls "raw images"), la qcow2 y
formatos de VMware. E. Estudio de la Tabla Comparativa
LXC - Linux Containers (a travs de libvirt), se utiliza para D.1. Escalabilidad automtica (AutoScaling)
ejecutar mquinas virtuales basadas en Linux.
QEMU - Emulador rpido, por lo general slo se utiliza Con respecto a la escalabilidad automtica, algunos
para fines de desarrollo. proveedores de servicios ofrecen capacidades ms
evolucionadas para definir los criterios de escalabilidad. Con
UML - User Mode Linux, por lo general slo se utiliza para
esto nos referimos tanto a la escalabilidad que incrementa los
fines de desarrollo.
recursos disponibles (el trmino popularmente utilizado en
VMware vSphere 4.1 Update 1 y versiones posteriores,
ingls es scale up), como a la escalabilidad que decrementa
ejecuta Linux y Windows basados en imgenes VMware a
los recursos disponibles para las aplicaciones (el trmino
travs de una conexin con un servidor vCenter o directamente
popularmente utilizado en ingls scale down).
con un servidor ESXi.

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 229
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
TABLA 3. CARACTERSTICAS CONSIDERADAS PARA EL ANLISIS DE LAS PLATAFORMAS EN LA NUBE.
Carc- Descripcin
terstica
Escalabilidad automtica Brinda la posibilidad de incrementar o reducir de manera automtica, utilizando un monitor provisto por la plataforma, la cantidad de
(auto-scaling) recursos asignado a un sistema o aplicacin.
Las imgenes o blueprints son mquinas virtuales que ya disponen de un sistema operativo y de los aplicativos o marcos de trabajo
Blueprints / Imgenes
(frameworks) instalados y pre-configurados, para que sea ms rpido comenzar a trabajar en la plataforma, permitiendo al usuario
para acelerar el
final focalizarse en la construccin o despliegue de sus aplicaciones. Un ejemplo popular de blueprint es llamado LAMP, imagen
aprovisionamiento
de mquina virtual conformada por Linux Apache MySQL y PHP.
Soporta Sistema Esta caracterstica permite evaluar la capacidad de implementar sistemas o aplicaciones de usuarios finales que operen bajo Sistemas
operativo Windows Operativos Windows, y en caso afirmativo, tambin definir cules de sus versiones son soportadas.
Soporta Sistema Esta caracterstica permite evaluar la capacidad de implementar sistemas o aplicaciones de usuarios finales que operen bajo Sistemas
operativo Linux Operativos Linux, y en caso afirmativo, tambin definir cules de sus versiones son soportadas.
Soporte para lenguajes Esta caracterstica permite definir cules son los lenguajes soportados por las distintas plataformas en anlisis
Soporte para Esta caracterstica define cules son los medios fsicos que ofrecen las plataformas analizadas para la persistencia de datos.
almacenamiento de datos
Esta caracterstica define cules son los soportes para colas brindados por las diferentes plataformas. Una cola es una estructura de
Soporte para Colas datos, caracterizada por ser una secuencia de elementos en la que la operacin de insercin push se realiza por un extremo y la
(queues) operacin de extraccin pop por el otro. Tambin se le llama estructura FIFO (del ingls First In First Out), debido a que el primer
elemento en entrar ser tambin el primero en salir.
Esta caracterstica permite evaluar cules son las opciones de servidores web (del ingls web server) ofrecidas por cada proveedor.
Un servidor web o servidor HTTP es un programa informtico que procesa una aplicacin del lado del servidor realizando
Servidor Web
conexiones bidireccionales y/o unidireccionales, y sncronas o asncronas con el cliente generando o cediendo una respuesta en
cualquier lenguaje o Aplicacin del lado del cliente.
Esta caracterstica permite evaluar cules son los hipervisores disponibles ofrecidos por cada plataforma. Un hipervisor (del ingls
Alternativas de
hypervisor) o monitor de mquina virtual (virtual machine monitor) es una plataforma que permite aplicar diversas tcnicas de
hipervisor
control de virtualizacin para utilizar al mismo tiempo diferentes sistemas operativos en una misma computadora.
Los caches distribuidos o datagrids son frecuentemente implementados por tablas de hash distribuidas. Las tablas de hash
distribuidas (en ingls, Distributed Hash Tables, DHT) son una clase de sistemas distribuidos descentralizados que proveen un
servicio de bsqueda similar al de las tablas de hash, donde pares (clave, valor) son almacenados en el DHT, y cualquier nodo
participante puede recuperar de forma eficiente el valor asociado con una clave dada. Esta clase de productos ofrecen el beneficio de
Cache In-Memory
mejorar los tiempos de respuesta para la bsqueda de datos, con respecto a los mecanismos de persistencia tradicionales, tales como
distribuido / DataGrid
base de datos relacionales (BDR), puesto que para acceder a un set de datos alojado en una BDR generalmente se debe establecer una
comunicacin TCP y luego acceder al dato realizando una lectura de disco, lo cual es menos eficiente que los caches distribuidos, a
los cuales generalmente se accede por protocolo TCP y luego se accede al dato almacenado en memoria RAM (Random Access
memory).
Las tecnologas Big Data (del idioma ingls grandes datos) hace referencia a los sistemas que manipulan grandes conjuntos de datos
(o data sets). Las dificultades ms habituales en estos casos se centran en la captura, el almacenado, bsqueda, comparticin, anlisis,
Soporte para
y visualizacin. La tendencia a manipular ingentes cantidades de datos se debe en muchos casos a la necesidad de incluir los datos
tecnologas BigData
del anlisis en un gran conjunto de datos relacionado, tal es el ejemplo de los anlisis de negocio, los datos de enfermedades
infecciosas, la lucha contra el crimen organizado, etc.

Ejemplos de estos proveedores ms evolucinoados son la cules sern los umbrales que dispararn los mecanismos de
plataformas Amazon EC2 Cloudwatch, Windows Azure escalabilidad automtica.
Autoscaling application Block y VMware VCloud Director, En el caso de IBM SmartCloud, que implementa sus
que otorgan la posibilidad de definir los criterios y o umbrales mecanismos de autoescalabilidad con Smart Cloud Application
que determinarn las reglas de escalabilidad que dispararn los Workload Scale (SCAWS), ofrece la posibilidad de utilizar
mecanismos necesarios para incrementar o decrementar la plantillas predefinidas provistas por un sitio oficial de IBM que
cantidad de recursos de hardware virtualizados que sern facilitan la configuracin de escenarios de escalabilidad para
asignados a las aplicaciones, de manera que estas puedan diferentes arquetipos de aplicaciones, como por ejemplo IBM
cumplir ajustndose dinmicamente a la demanda de sus Mobile Application Platform Pattern Type, que optimiza las
clientes. En contraposicin, otras plataformas como Google caractersticas de escalabilidad automtica a los criterios
Apps ofrecen escalabilidad automtica no controlada por el tpicos operacionales de aplicaciones Mviles. La plataforma
arquitecto de aplicacin Cloud. En este caso, el arquitecto de de IBM tambin brinda cierta flexibilidad para definir reglas de
aplicacin cloud no podr definir los criterios de escalabilidad escalabilidad.
para sus aplicaciones sino que este criterio se ver regido por Con respecto a la plataforma OpenStack, su propuesta de
los principios ya definidos por Google Apps, el cual cuenta con solucin para la escalabilidad automtica est implementada en
un modelo propio de escalabilidad que no puede ser ajustado u Heat, el cual permite definir plantillas con criterios ms
optimizado de manera alguna por el usuario de la plataforma, avanzados, que permiten definir concretamente los umbrales
en funcin de sus necesidades particulares. cuantificados en niveles porcentuales (por ejemplo de uso de
Con respecto a la autoescalabilidad de la plataforma RAM) que sern considerados como criterios primarios para
OpenShift, provista por HA Proxy, slo es posible definir una aplicar la escalabilidad automtica. Heat ofrece adems la
cantidad mnima y mxima de Cartidges (bsicamente posibilidad de eliminar automticamente las instancias que se
instancias) que podrn ser utilizadas en la aplicacin durante generaron al incrementarse la carga, cuando esta carga de
los procesos de escalabilidad (tanto hacia arriba como hacia trabajo (workload) se encuentre por debajo del umbral
abajo) en funcin de la demanda de recursos de la aplicacin, definido.
sin embargo, el arquitecto de una aplicacin que se ejecuta en
la plataforma OpenShift no cuenta con la posibilidad de definir

230 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
Figura 5. Matriz Comparativa

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 231
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
D.2. BluePrints/Imgenes para acelerar el aprovisionamiento configuraciones (sistemas operativos y plataformas de
Amazon con su plataforma EC2 tiene la mayor oferta de desarrollo). Algunas de estas imgenes fueron creadas por el
imgenes para acelerar el aprovisionamiento de los equipo de OpenStack y y el resto publicadas por los propios
proveedores analizados, contando con casi 2000 plantillas de usuarios de la plataforma, que decidieron compartirlas para
mquinas virtuales con diferentes configuraciones. enriquecer la comunidad.
Otro proveedor que brinda buenas soluciones en este D.3. Soporte para lenguajes
aspecto es Microsoft Azure, que otorga la posibilidad de
El soporte brindando para diferentes lenguajes de
acelerar el aprovisionamiento de mquinas virtuales con
programacin es crucial al momento de seleccionar una
diferentes sistemas operativos y configuraciones listadas en
plataforma, puesto que es un factor limitante significativo en
una galera, brindando adems la posibilidad de crear las
cuanto a las posibilidades que un proveedor puede ofrecer, y
propias imgenes de mquinas virtuales personalizadas para
que sus clientes pueden explotar.
que se adecen perfectamene a las necesidades de sus clientes.
En este aspecto, Amazon EC2 ofrece un amplio abanico
Aunque Microsoft Azure virtualiza sus entornos con su
que cubre los principales lenguajes y plataformas de desarrollo
hipervisor Hiper-V, otorga igualmente la posibilidad de
del mercado actual. Este abanico se deriva del soporte y
convertir mquinas virtuales de VMware de manera que se
compatibilidad de la plataforma con gran cantidad de versiones
puedan subir y utilizar en la plataforma Windows Azure,
de sistemas operativos cubriendo desde aplicaciones .net
facilitando considerablemente la migracin de aplicaciones
escritas en C#, aplicaciones Java multiplataforma, aplicaciones
existentes a su plataforma.
C++, aplicaciones Ruby, y tambin lenguajes interpretados
Google App Engine, en cambio, no brinda la posibilidad de
como Perl y Python.
acelerar el aprovisionamiento de entornos puesto que su
Microsoft Windows Azure, por su parte, brinda soporte
plataforma es Infraestructura como servicio (IaaS); esto
para los lenguajes .Net (C#, Vb.net, J#, Asp.net, etc), Java
implica que App Engine no otorga la posibilidad de crear
(tanto con mquinas virtuales con sistema operativo Microsoft
mquinas virtuales propias ni tampoco utilizar otras existentes.
Windows 2012, como tambin con Sistemas operativos
Existe un nuevo servicio de Google llamado Google App
basados en Kernel Linux, tales como Ubuntu u OpenSUSE),
Compute que otorga la posibilidad de crear mquinas virtuales
Node.js para ejecutar cdigo javascript del lado del servidor
basadas en el sistema operativo Linux y tiende a otorgar
(por su expresin en ingls server side), y tambin Python.
servicios de plataforma como servicio (PaaS), sin embargo,
Podran soportarse adems otros lenguajes y plataformas
esta plataforma an se est gestando y no ha alcanzado un
utilizando imgenes de mquinas virtuales propias, por
grado de madurez siquiera comparable con las plataformas que
ejemplo las VMware, convertidas a su equivalente Windows
en este estudio se tratan y analizan.
Azure definida como disco duro virtual (por su acrnimo en
La plataforma abierta de Red Hat, OpenShift, permite
ingls VHD, de Virtual Hard Disc).
gestionar y acelerar el aprovisionamiento de mquinas virtuales
Las opciones que ofrece Google AppEngine para soporte
por medio de su producto RHC (Red Hat Client), y el uso de
de lenguajes se encuentran limitadas exclusivamente a Python
lenguajes de scripting, mayoritariamente en lenguaje Bash,
y java, con la opcin adicional de Go, que an se encuentra en
bajo el sistema operativo Red Hat Linux.
fase experimental.
VMware brinda una flexibilidad muy grande al permitir
OpenShift mejora las opciones de lenguajes soportados por
acelerar el aprovisionamiento de entornos por medio de
App Engine, otorgando la posibilidad de implementar
VCloud Director y sus imgenes de mquinas virtuales basadas
aplicaciones desarrolladas en Java, Ruby, node.js, python, PHP
en el virtualizador de VMware. Bajo estos lineamientos un
y Perl; sin embargo, dadas las restricciones de sistema
usuario de la plataforma VCloud, basada en CloudFoundry,
operativo que se derivan de que se trata de una plataforma
puede personalizar sus propias mquinas virtuales para que las
abierta, y al no soportar sistemas operativos basados en
mismas se ajusten completamente a sus necesidades, instalando
Windows, no es posible implementar en OpenShift
los sistemas operativos que requiera (como por ejemplo
aplicaciones Win32 u otras basadas en .Net Framework, con
Microsoft Windows Server 2008, Red Hat Linux Enterprise,
lenguajes como C#, J#, Vb.net, Asp.net, etc.
Ubuntu, etc) y tambin el software de base necesario, tales
como plataformas de desarrollo Java, .net, o el paquete clsico Este hecho excluye a un sector del mercado que elige las
conocido por su acrnimo LAMP (Linux, Apache, MySQL y plataformas Microsoft como opcin para desarrollar sus
PHP). aplicaciones.
IBM SmartCloud brinda tambin las herramientas para que IBM SmartCloud limita las posibilidades de soporte nativo
sus usuarios puedan acelerar el aprovisionamiento de entornos en su plataforma para los lenguajes Java y PHP, aunque visto
en su Plataforma como servicios, otorgando 10 tamaos de que es posible hacer uso de imgenes de mquinas virtuales
instancias diferentes para sus mquinas virtuales de manera que soportadas por mltiples hipervisores, sera tambin factible
se puedan ajustar a los requerimientos de sus aplicaciones. implementar aplicaciones desarrolladas en otros lenguajes tales
Asimismo, brinda 3 modelos de licenciamiento: mquinas como aplicaciones .net (C#, J#, Asp.net, Vb.net, etc),
virtuales pre-configuradas con la modaliad de pago basado en aplicaciones PHP, Python y otros lenguajes, incrementando su
el uso, acceder a las imgenes utilizando licencias propias ya potencial de lenguajes para mltiples plataformas, de manera
adquiridas, o subir programas de software de IBM bajo la que permite cubrir un segmento ms amplio del mercado de
modalidad traer software y licencias propias (del ingls aplicaciones.
Bring Your Own Software and License). La plataforma de VMware brinda soporte nativo para los
Por ltimo, OpenStack brinda un modelo de lenguajes Java, C# y C++, maximizando la integracin de estas
aprovisionamiento acelerado otorgando la posibilidad de contar aplicaciones con la Suite de productos que su plataforma
con ms de 1100 mquinas virtuales con diferentes ofrece, por ejemplo para DataGrids distribudos en memoria

232 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
con el producto GemFire e implementaciones de Big Data, que consultas), y tampoco modificar el modelo de datos de la base
pueden interfacear con APIs nativas de estos lenguajes para de datos ya disponible.
mayor performance. Asimismo, dadas las capacidades flexibles Para las aplicaciones nuevas o aquellas que deseen aplicar
de virtualizacin que VMware ofrece, sera tambin posible tcnicas de reingeneira para aprovechar los beneficios de las
implementar aplicaciones desarrolladas en otros lenguajes (por nuevas tecnologas tales como los productos NoSQL, Azure
ejemplo PHP o Ruby), e inclusive hacer uso de sus productos ofrece almacenes de tablas NoSQL permitiendo el
de DataGrids mediante interfaces basadas en protocolos almacenamiento de grandes cantidades de datos no
interoperables como por ejemplo REST sobre HTTP. estructurados, que se pueden escalar automticamente para
OpenStack, por su parte, tambin ofrece soporte con APIs satisfacer un rendimiento y volumen masivos de hasta 100
nativas para gran diversidad de lenguajes de programacin. terabytes, accesibles prcticamente desde cualquier lugar a
Algunos de los lenguajes que pueden gozar de los beneficios travs de REST y las API administradas. La ltima opcin que
de esta plataforma son PHP, Python, Java, C#, Ruby. Esta ofrece Microsoft Windows Azure para almacenamiento
oferta es sumamente atractiva y abarcadora, puesto que cubre consiste en Blobs no estructurados, que otorga la posibilidad de
los lenguajes ms populares y utilizados por las aplicaciones almacenar grandes cantidades de texto no estructurado o datos
tanto de escritorio como aquellas basadas en plataformas web e binarios tales como vdeo, audio e imgenes.
interpretadas, maximizando las posiblidades de atraer nuevos Google App Engine por su parte sugiere una nica
clientes. alternativa para dar solucin a la persistencia de datos,
consistente en una base de datos no relacional conocida como
D.4. Soporte para almacenamiento de datos
Big Table. Si bien Google fue uno de los proveedores
Los servicios de la plataforma Amazon EC2 se destacan pioneros en esta tecnologa, su mercado competitivo ha
por sus alternativas de almaceamiento de datos, puesto que avanzado a pasos agigantados y todos sus proveedores
cuenta con varias opciones disponibles que pueden ser competidores de servicios cloud ofrecen actualmente muchas
aprovechadas de manera independiente por sus clientes en ms alternativas para dar solucin a la persistencia de datos. En
funcin de las necesidades puntuales que cada aplicacin tenga consecuencia, Google App Engine no soporta bases de datos
que cubrir. Algunas de ellas son: relacionales, lo cual dificulta y obstaculiza la migracin de
Amazon Simple Storage Service, que proporciona una aplicaciones existentes tradicionales a su plataforma.
interfaz de servicios web (generalmente basadas en los Para la plataforma OpenShift, por estar basada y pensada
protocolos REST o SOAP sobre HTTP) que puede utilizarse para aplicaciones que corren sobre sistemas operativos Linux
para almacenar y recuperar prcticamente cualquier cantidad (ms particularmente sobre distribuciones de Red Hat Linux),
de datos desde cualquier parte de la Web. Hace uso de la no ofrece la posibilidad de peristir datos en bases de datos SQL
misma infraestructura (econmica, escalable, y segura) que Server de Microsoft, pero s ofrece otras alternativas de
utiliza Amazon para tener en funcionamiento su propia red peristencia de datos relacionales basadas en los populares
internacional de sitios web. Este servicio tiene como fin motores MySQL, PostgresSQL y SQLite. Adems, OpenShift
maximizar las ventajas del escalado y trasladar estas ventajas a ofrece tambin la posibilidad de persistencia de datos en un
los desarrolladores. Otra opcin de almacenamiento de datos motor de base de datos NoSQL muy popular del mercado
ofrecida por Amazon EC2 consiste en Amazon Relational DB (MongoDB) que es una base de datos Open Source de tipo
Service, que ofrece servicios de bases de datos relacionales, las documental con documentos de estilo JSON y esquemas
cuales son altamente compatibles con la amplia mayora de las dinmicos.
aplicaciones ya existentes y con las tcnicas de persistencia de La oferta de IBM SmartCloud para el almacenamiento de
datos ms populares del mercado (maximizando los recursos datos es amplia. Otorga la posibilidad de utilizar almacenes de
humanos disponibles con conocimeintos de estas tcnicas y bases de datos relacionales, como el motor IBM DB2, Oracle,
bases de datos basadas en esta clase de tecnologa). Amazon Microsoft SQL Server, Informix y Sybase. Con respecto a los
EC2 tambin ofrece el servicio Amazon SimpleDB, que es un productos NoSQL, SmartCloud implementa almacenes de
almacn de datos no relacionales de alta disponibilidad y datos basados en productos muy populares como por ejemplo
flexible que no requiere trabajo de administracin de bases de Hadoop.
datos por parte de los clientes de su plataforma. Los En lo que al almacenamiento de datos se refiere, VMware
desarrolladores simplemente almacenan elementos de datos y ha optado la estrategia de apuntar a los motores de persistencia
los consultan mediante solicitudes de servicios Web (en tradicionales que mayor segmento del mercado actual ocupan,
general utilizando APIs basdas en el protoclo REST o SOAP); ofreciendo soporte nativo para bases de datos relacionales tales
Amazon SimpleDB se encarga del resto. como Oracle, Microsoft SQL Server, y PostgreSQL. Adems,
Adems, Amazon ofrece tambin soporte para mltiples es posible persistir datos con otros productos que integran la
versiones de SQL Server, que otorgan primordialmente la suite de VMware vFabric, tales como los almacenes de datos
posibilidad de integrar aplicaciones que persistan sus datos propietarios de su datagrid GemFire. En adicin, para la lnea
utilizando las tecnologas de Microsoft SQL para cumplir su de tecnologas de BigData, VMware brinda soporte para
propsito. Algunas aplicaciones que suelen hacer uso ms mltiples distribuciones de Hadoop que permiten obtener los
frecuente de los motores de base de datos SQL Server, son beneficios de NoSQL.
aquellas aplicaciones desarrolladas en tecnologas .Net y PHP. Por ltimo, OpenStack brinda diferentes posibilidades de
Windows Azure en este aspecto ofrece 3 tipos de almacenamiento de datos, tales como Object Storage
almacenamiento de datos. Uno para dar soporte a SQL (persistencia de objetos implementada por el producto Swift),
Relacional, que permite que las aplicaciones ya desarrolladas Block Storage (peristencia de bloques implemenatada con el
se puedan adaptar y migrar fcilmente a la nube sin necesidad producto Cinder) y tambin brinda soporte para distribuciones
de modificar sus capas de acceso a datos (por los conectores y

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 233
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
de bases de datos relacionales MySQL, tales como Nova, para la virtualizacin en la nube. Adicionalmente, Microsoft
Glance, Cinder y Keystone. permite (como se mencion con anterioridad) la posibilidad de
migrar muqinas virtuales de VMware a formatos aceptados
D.5. Soporte para Colas y Servidores Web
por este virtualizador, de manera que brinda tambin una
En lneas generales, todos los proveedores de servicios alternativa de compatibilidad con esta tecnologa.
cloud ofrecen un nico producto para implementar tcnicas de VMware VCloud permite trabajar con hipervisores ESX,
Colas. ESXi y tambin con el hipervisor de Microsoft Hyper-V.
En el caso de la plataforma Amazon EC2, cuenta con un Por ltimo, OpenStack ofrece el ms amplio abanico para
producto propietario cuyo nombre comercial es Amazon dar soluciones a la virtualizacin, soportando hipervisores
Simple Queue Service. XEN, Hyper-V, KVM, QEMU, Contenedores Linux (LNC) y
Google App Engine tambin ofrece un producto propietario muchos otros.
comercializado como App Engine Task Queue.
OpenShift implementa soluciones para colas con IronMQ
que es un producto de colas pensado para aplicaciones que D.7. Cache In-Memory distribuido / Datagrid
corren en la nube, el cual basa sus comunicaciones en los Los cache In-Memory distribuidos y los datagrids juegan
protocolos HTTP/Rest, brindando adems soporte para JSON. un rol significativo a la hora de optimizar la performance de las
IBM SmartCloud ofrece un producto de colas propietario aplicaciones (y ms an cuando se trata de aplicaciones que
con el cual ya contaba en su suite WebSphere, y que es corrern en la nube, donde la escalabilidad y la performance
comercializado como WebSphere Message Broker. son un punto central), puesto que sustituyen los mecanismos de
VMware y OpenStack, en cambio, proponen como persistencia y bsqueda de datos tradicionales que suelen estar
alternativa para dar solucin a las colas el producto Open basados en hardware de bajo costo, pero tambin de baja
Source popularizado bajo el nomrbe de RabbitMQ, que se basa performance, como son los casos de los discos rgidos (storage)
en el protocolo estndar AMQP, que provee adems APIs para magnticos. Estos mecanismos, al estar implemenatdos sobre
Java y .Net. memorias de acceso aleatorio (del ingls Random Access
Algo similar ocurre con la estrategia elegida por los memory RAM-) son en general inclusive ms veloces que las
proveedores para dar solucin a las necesidades de servidores unidades de estado slido para obtener y persistir datos.
Web: la mayora de los proveedores ofrecen una nica En el caso de Amazon EC2, ofrece gran flexibiliad
alternativa para publicar aplicaciones web, tales son el caso de otorgando una alternativa abierta para la implementacin de
Google App Engine, con Jetty Web Serever, Red Hat productos de Cache In-Memory y datagrids, pudiendo
OpenShift con Apache Server, o IBM SmartCloud con mencionarse el soporte de productos tales como GemFire,
WebSphere Application Server. Oracle Coherence, Gigaspaces XAP, Hazlelcast, etc.
Otros casos como Amazon EC2 y Microsoft Windows En el caso de Windows Azure, ofrece principalmente dos
Azure ofrecen al menos dos alternativas para dar soporte a las alternativas para dar solucin al acceso rpido a los datos:
aplicaciones web, y esto se deriva de que estas plataformas Memcached, el cual se trata de un producto Cache OpenSource
soportan mltiples lenguajes, algunos de los cuales que no de tipo Clave valor (del ingls Key-value) muy popular para
pueden compatibilizar sus ejecuciones en los mismos caching distribuido, con gran adherencia en el mercado
servidores Web, como por ejemplo aplicaciones Web de (algunos de los clientes que usan este producto son Facebok,
Microsoft (Asp.net) que requieren el servidor web Internet Twitter, Wikipedia, YouTube, WordPress, etc.). Este producto
Information Server, y aplicaciones web Java, que requieren tiene sus propios protocolos (inicialmente trabajaba nicamente
Servidores de tipo Apache/Tomcat. con un protocolo de tipo texto y las ltimas versiones del
producto implementan un nuevo protoclo de tipo binario,
D.6. Alternativas de Hipervisores optimizando as el desempeo del mismo. Para hacer uso de
Esta caracterstica es crucial y determinante para el modelo este producto, las aplicaciones deben implementar tcnicas de
de negocio ofrecido por los proveedores de servicios cloud, caching de datos en sus capas de acceso a datos, es decir que su
puesto que en funcin de las alternativas de virtualizacin que implementacin y uso en Microsoft Azure no resulta
estos ofrecen, se deriva la facilidad de portabilidad de transparente para las aplicaciones que requieran optimizar su
mquinas virtuales que contienen las aplicaciones ya existentes desempeo por este camino.
en los datacenters (on premise) de sus potenciales clientes a sus La segunda opcin que ofrece Azure para caching
entornos Cloud. En muchos casos, aplicar reingeniera para distribuido de datos es Windows Azure Caching, que se trata
migrar las aplicaciones o instalarlas y adaptarlas en nuevas de un producto propietario de Microsoft y que adems es
plataformas puede demandar mucho tiempo y resultar costoso compatible con el protocolo de Memcached, de manera que las
en extremo. De all se desprende la relevancia de esta aplicaciones que ya implementaban mecanismos de cache
caracterstica. basados en el protocolo de memcached en sus capas de acceso
Amazon EC2, al igual que Google App Engine y a datos puedan comenzar a hacer uso de este producto
OpenShift, utiliza hipervisores basados en XEN y LXC (Linux minimizando el costo de adaptacin de tecnologa.
Containers) Google App Engine tambin brinda la posibilidad de
IBM SmartCloud, en cambio, ofrece muy buenas utilizar Memcached para optimizar la performance de las
capacidades de virtualizacin, soportando mltiples aplicaciones que corren en esta plataforma.
hipervisores que van desde VMware, Hyper-V hasta otros Con respecto a OpenShift, Red Hat cuenta con su propio
basados en XEN. producto de cache distribuido conocido por el nombre
Windows Azure, por su parte, trabaja con Windows Azure comercial Infinispan, que ya exista antes de que se inicie la era
hipervisor, que se trata de una versin de Hyper-V (el conocido cloud, y formaba parte de la suite de productos de JBoss. Este
y tradicional hipervisor de Microsoft) ajustada y optimizada

234 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
cache es tambin de tipo Key-value y brinda soporte [15] Amazon.com Inc. 2013. Amazon Relational DB Service
transaccional, con el adicional de soporte para NoSQL. (Amazon RDS). http://aws.amazon.com/es/rds/. Pgina vigente
En el caso de IBM SmartCloud, su estrategia de cache al 20/05/2013.
distribuida est basada en un producto propietario [16] Amazon.com Inc. 2013. Amazon SimpleDB (Beta).
comercializado como WebSphere eXtreme Scale, que se puede http://aws.amazon.com/es/simpledb/. Pgina vigente al 20/05/
2013.
utilizar tanto en clouds privados como pblicos, obteniendo
una gran mejora de performance para las aplicaciones. [17] Amazon.com Inc. 2013. Amazon Amazon Simple Queue
Service (Amazon SQS). http://aws.amazon.com/es/sqs/. Pgina
VMware para dar solucin a la necesidad de contar con un
vigente al 20/05/2013.
producto de grid de datos distribuidos, y no perder competencia
de mercado con los otros proveedores, puesto que no contaba [18] Amazon.com Inc. 2013. Overview of Security Processes. The
Hipervisor. http://aws.amazon.com/articles/1697. Pgina vigente
con productos de este tipo, adquiri GemFire y lo integr a su al 21/05/2013.
Suite de VFabric. GemFire es un potente cache que permite
[19] Microsoft Corp. 2013, Windows Azure. Qu es Windows
distribuir la carga y procesamiento de datos en mltiples nodos, Azure.http://www.windowsazure.com/eses/home/features/what-
en propsito de optimizar el rendimiento, permitiendo is-windows-azure/. Pgina vigente al 12/05/2013
transaccionar de manera asncrona con su propia base de datos,
[20] Microsoft Corp. 2013, Windows Azure. How to Use the
o con cualquier otra base de datos (por ejemplo SQL Server, Autoscaling Application Block. http://www.windowsazure.com/
Oracle, MySQL, etc.). Adems, GemFire tiene la en-us/develop/net/how-to-guides/autoscaling/. Pgina vigente al
particularidad que puede trabajar inclusive con nodos que 12/05/2013
pueden encontrarse distribuidos en diferentes datacenters. Este [21] Microsoft Corp. 2013, Windows Azure. Mquinas Virtuales.
mecanismo lo hace especialmente atractivo brindando modelos http://www.windowsazure.com/es-es/home/features/virtual-
de alta flexibilidad y performance para centros de recuperacin machines/. Pgina vigente al 21/05/2013
del desastre (del ingls Disaster recovery datacenters). [22] Krishnan, S. 2010. Programming Windows Azure. Editorial
O'Reilly Media. ISBN-10: 0-59-680197-1
REFERENCIAS
[23] Microsoft Corp. 2013, Windows Azure. Administracin de
[1] Erl, T. 2005. Service-Oriented Architecture: Concepts, datos. http://www.windowsazure.com/es-es/home/features/data-
Technology, and Design. Editorial Prentice Hall PTR. ISBN-10: management/. Pgina vigente al 21/05/2013
0-13-185858-0 [24] Microsoft Corp. 2013, Windows Azure. Base de datos SQL.
[2] Newcomer E., Lomow G. Understanding SOA with web http://www.windowsazure.com/es-es/pricing/details/sql-datab
services (independent technology guides). Addison-Wesley ase/. Pgina vigente al 21/05/2013
Professional, 2004. ISBN-10: 8-13-171113-7 [25] Microsoft Corp. 2013, Windows Azure. What are Service Bus
[3] Josuttis, N. 2007. SOA in Practice, The Art of Distributed Queues. http://www.windowsazure.com/en-us/develop/net/how-
System Design. Editorial O'Reilly. ISBN-10: 0-596-52955-4 to-guides/service-bus-queues/. Pgina vigente al 21/05/2013
[4] Hasan J., Duran M. 2006. Expert Service-Oriented Architecture [26] Google Inc. 2012. Why App Engine. https://developers.
in C# 2005, second edition. Editorial Apress. ISBN 1-59059- google.com/appengine/whyappengine. Pgina vigente al
701-X 12/05/2013.
[5] Stevens, Wayne P., Glenford J. Myers, and Larry L. [27] Google Inc. 2012. Google App Engine the platform for your
Constantine. "Structured design." IBM Systems Journal 13.2 next great idea. https://cloud.google.com/files/GoogleApp
(1974): 115-139. ISBN-10:0-13-288895-5 Engine.pdf. Pgina vigente al 22/05/2013.
[6] Pulier, E., Taylor, H. 2006. Understanding Enterprise SOA. [28] Google Inc. 2012. What Is Google App Engine?.
Editorial Manning. ISBN 1-932394-59-1 https://developers.google.com/appengine/docs/whatisgoogleapp
[7] Carter, S. 2007. The New Language of Business. SOA & Web engine. Pgina vigente al 12/05/2013
2.0. Editorial IBM Press, Pearson plc. ISBN-10: 0-13-195654- [29] Google Inc. 2012. Using the Datastore.
X. https://developers.google.com/appengine/docs/java/gettingstarte
[8] Karmarkar, Anish, et al. Web service contract design and d/usingdatastore. Pgina vigente al 22/05/2013
versioning for SOA. Prentice Hall, 2009. ISBN-10: 0-13- [30] Red Hat Inc. 2013. Open Shift. Open Shift All Versions User
613517-X Guide.https://access.redhat.com/site/documentation/en-US/Ope
[9] Amazon.com Inc. 2013. Amazon Elastic Compute Cloud nShift/2.0/pdf/User_Guide/OpenShift-2.0-User_Guide-en-
(Amazon EC2). http://aws.amazon.com/es/ec2/#functionality. US.pdf. Pgina vigente al 25/05/2013
Pgina vigente al 12/05/2013. [31] Red Hat Inc. 2013. Open Shift. Enterprise Features and Benefits.
[10] Amazon.com Inc. 2013. Amazon Cloud Watch. https://www.openshift.com/enterprise-paas/features-and-benefi
http://aws.amazon.com/es/cloudwatch/. Pgina vigente al ts . Pgina vigente al 25/05/2013
21/05/2013. [32] Red Hat Inc. 2013. Open Shift. OpenShift Online User guide.
[11] Amazon.com Inc. 2013. Amazon Machine Images (AMIs). https://access.redhat.com/site/documentation/en-
https://aws.amazon.com/amis/. Pgina vigente al 21/05/2013. US/OpenShift/2.0/html-single/User_Guide/index.html. Pgina
[12] Amazon.com Inc. 2013. Amazon EC2 con Microsoft Windows vigente al 14/06/2013
Server y SQL Server. http://aws.amazon.com/es/windows/. [33] Red Hat Inc. 2013. Open Shift. Scale Your Applications on the
Pgina vigente al 21/05/2013. web. https://www.openshift.com/developers /scaling. Pgina
[13] Amazon.com Inc. 2013. AMI de Amazon Linux. vigente al 25/05/2013
http://aws.amazon.com/es/amazon-linux-ami/. Pgina vigente al [34] Red Hat Inc. 2013. Open Shift. New OpenShift Cartridge
21/05/2013. Format Part1. https://www.openshift.com/blogs/new-openshift-
[14] Amazon.com Inc. 2013. Amazon Simple Storage Service cartridge-format-part-1. Pgina vigente al 29/05/2013
(Amazon S3). http://aws.amazon.com/es/s3/. Pgina vigente al [35] Red Hat Inc. 2013. Open Shift. How to Install OpenShift
20/05/2013. Enterprise PaaS. https://www.openshift.com/blogs/installing-
enterprise-paas-part-1. Pgina vigente al 29/05/2013

Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA. 235
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642
[36] Red Hat Inc. 2013, Managing Databases in the Cloud. [57] OpenStack 2013o. OpenStack. http://docs.openstack.org/
https://www.openshift.com/blogs/manipulate-your-paas- trunk/openstack-compute/starter/content/OpenStack-d1e94.html.
database. Pgina vigente al 18/06/2013 Pgina vigente al 18/06/2013.
[37] SQLite 2013. SQLite. http://www.sqlite.org/. Pgina vigente al [58] OpenStack 2013, Infraestructura de Cmputo (Nova).
18/06/2013. http://docs.openstack.org/diablo/openstack-compute/starter/
[38] MongoDB 2013. Mongo DB. http://www.mongodb.org/. Pgina content/Open_Stack_Compute_Infrastructure_Nova_-
vigente al 18/06/2013 d1e124.html. Pgina vigente al 18/06/2013
[39] Red Hat Inc. 2013i, IronMQ on OpenShift. https://www. [59] OpenStack 2013, Infraestructura de Cmputo (Nova). Funciones
openshift.com/quickstarts/ironmq-on-openshift. Pgina vigente y caractersticas. http://docs.openstack.org/diablo/openstack-
al 18/06/2013 compute/starter/content/Functions_and_Features-d1e132.html.
Pgina vigente al 18/06/2013
[40] IronMQ. 2013. IronMQ, The Message Queue for the Cloud.
http://www.iron.io/mq. Pgina vigente al 16/06/2013. [60] OpenStack 2013, Infraestructura de Almacenamiento (Swift).
http://docs.openstack.org/diablo/openstack-compute/starter/
[41] Red Hat Inc. 2013. Open Shift. New OpenShift Cartridge
content/OpenStack_Storage_Infrastructure_Swift_-d1e271.html.
Format Part2. https://www.openshift.com/blogs/new-openshift-
Pgina vigente al 18/06/2013
cartridge-format-part-2. Pgina vigente al 29/05/2013
[61] OpenStack 2013, Infraestructura de Almacenamiento (Swift).
[42] IBM Corp. 2011. IBM SmartCloud Enterprise. Enterprise class
Funciones y caractersticas. http://docs.openstack.org/
cloud managed infrastructure. http://www-935.ibm.com/
diablo/openstack-
services/us/en/managed-cloud-hosting/. Pgina vigente al
compute/starter/content/Functions_and_Features-d1e279.html.
15/06/2013
Pgina vigente al 18/06/2013
[43] IBM Corp. 2011. Deploy an app to the cloud at lunch hour and
[62] OpenStack 2013e, Servicios de Imagen (Glance).
still have time to eat. http://www.ibm.com/cloud-computing/
http://docs.openstack.org/diablo/openstack-compute/starter/
us/en/paas.html. Pgina vigente al 12/05/2013
content/OpenStack_Imaging_Service_Glance_-d1e329.html.
[44] IBM Corp. 2011 IBM SmartCloud Enterprise. http://www.ibm. Pgina vigente al 18/06/2013
com/developerworks/cloud/library/cl-cloudfaq.html. Pgina vi-
[63] OpenStack 2013. Hyper-V Virtualization Platform.
gente al 12/05/2013
http://docs.openstack.org/trunk/openstack-compute/admin/ cont
[45] IBM Corp. 2011. IBM Scale Out Network Attached Storage. ent/hyper-v-virtualization-platform.html. Pgina vigente al
http://www-03.ibm.com/systems/storage/network/sonas/. Pgina 18/06/2013.
vigente al 15/06/2013.
[64] OpenStack 2013, Tool support for image creation.
[46] IBM Corp. 2013. IBM Storwize V7000 and Storwize V7000 http://docs.openstack.org/trunk/openstack-image/content/ch_cre
Unified Disk Systems. http://www-03.ibm.com/systems/ ating_images_automatically.html.Pgina vigente al 18/06/2013
storage/disk/storwize_v7000/.Pgina vigente al 16/06/2013.
[65] OpenStack 2013. What is RDO?. http://openstack.redhat.com/
[47] IBM Corp. 2013. IBM XIV Storage System. http://www- Frequently_Asked_Questions#What_is_RDO.3F. Pgina vigen-
03.ibm.com/systems/storage/disk/xiv/overview.html. Pgina vi- te al 18/06/2013.
gente al 16/06/2013.
[66] OpenStack 2013. OpenStack Storage. http://www.openstack.
[48] IBM Corp. 2013. IBM Integration Bus. http://www- org/software/openstack-storage/. Pgina vigente al 18/06/2013.
03.ibm.com/software/products/us/en/integration-bus/. Pgina vi-
[67] OpenStack 2013. Message Queue (Rabbit MQ Server).
gente al 16/06/2013.
http://docs.openstack.org/essex/openstack-
[49] IBM Corp. 2013. IBM Systems Director. http://www- compute/starter/content/Message_Queue_Rabbit_MQ_Server_-
03.ibm.com/systems/software/director/index.html. Pgina d1e223.html. Pgina vigente al 18/06/2013.
vigente al 16/06/2013.
[68] OpenStack 2013. Message Queue (Rabbit MQ Server). Features.
[50] IBM Corp. 2013. WebSphere eXtreme Scale. http://www- http://www.rabbitmq.com/features.html. Pgina vigente al
03.ibm.com/software/products/us/en/websphere-extreme-scale/. 18/06/2013.
Pgina vigente al 16/06/2013.
[69] OpenStack 2013. Selecting a Hypervisor. http://docs.openstack.
[51] VMware Inc. 2013d. VMware vCloud Suite. org/trunk/openstack-compute/admin/content/selecting-a-hyper-
http://www.vmware.com/es/products/datacenter-virtualization/ visor.html. Pgina vigente al 18/06/2013.
vcloud-suite/how-it-works.html. Pgina vigente al 16/06/2013
[70] Microsoft Corp., 2003. Application Architecture for .NET:
[52] VMware Inc. 2013e. VMware vCloud Suite. http://www. Designing Applications and Services. http://www.microsoft.
vmware.com/files/es/pdf/products/vCloud/VMware-vCloud- com/en-us/download/details.aspx?id=20275. Pgina vigente al
Suite-Datasheet.pdf. Pgina vigente al 16/06/2013 16/06/2013
[53] VMware Inc. 2013f. Soluciones para computacin en nube.
http://www.vmware.com/mx/cloud-computing.html. Pgina vi-
Franco Bocchio. Es Especialista en Ingeniera
gente al 16/06/2013
en Sistemas de Informacin por la Universidad
[54] VMware Inc. 2010a. Storage Considerations for VMware Tecnolgica Nacional, en el ao 2013, y el ttulo
vCloud Director. Pooling of Storage Resources. de Ingeniero en Informtica en la Universidad
http://www.vmware.com/files/pdf/techpaper/VMW_10Q3_WP_ FASTA, en el ao 2006. Actualmente ejerce
vCloud_Director_Storage.pdf. Pgina vigente al 16/06/2013. como arquitecto de soluciones de Tecnologas de
[55] VMware Inc. 2013a. VMware vFabric RabbitMQ. la informacin y sus intereses de investigacin
MESSAGING THAT JUST WORKS. http://www.vmware.com/ se focalizan en nuevas arquitecturas y
products/application-platform/vfabric-rabbitmq.html. Pgina plataformas tecnolgicas.
vigente al 12/05/2013
[56] VMware Inc. 2013. VMware vCenter Multi-Hypervisor
Manager 1.1 Release Notes. http://www.vmware.com/
support/mhm/doc/vcenter-multi-hypervisor-manager-11-release-
notes.html#capabilities. Pgina vigente al 16/06/2013

236 Franco Bocchio, 2013. Estudio Comparativo de plataformas Cloud Computing para Arquitecturas SOA.
Revista Latinoamericana de Ingeniera de Software, 1(5): 207-236, ISSN 2314-2642

You might also like