Automatización de Pruebas para Servicios Web: Generación de Propiedades y Modelos *

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Automatización de Pruebas para Servicios Web: Generación de Propiedades y Modelos *"

Transcripción

1 Automatización de Pruebas para Servicios Web: Generación de Propiedades y Modelos * Macías López 1, Henrique Ferreiro 1, Miguel A. Francisco 2, Laura M. Castro 1 MADS Group, University of A Coruña (Spain) 1, Interoud Innovation S.L. (Spain) 2 Abstract: Los servicios web son una solución muy extendida a la hora de integrar componentes durante la construcción de una aplicación o sistema software, así como para facilitar la comunicación entre diferentes sistemas, ya que proporcionan un mecanismo para acceder a sus funcionalidades suficientemente flexible como para favorecer la máxima reutilización. Para que dicha integración tenga éxito, son esenciales las tareas de prueba, algo a lo que los servicios web no son ajenos: al igual que en cualquier otro desarrollo de software, es imperativo validar su comportamiento y garantizar su calidad tanto como sea posible, de la manera más eficiente posible. En la práctica, el compromiso entre el esfuerzo y el costo conduce con demasiada frecuencia al desarrollo de suites de prueba de menor tamaño y menor alcance de lo que sería deseable. En este trabajo presentamos un framework para la realización de pruebas a servicios web a partir de su especificación escrita en WSDL y sus restricciones de negocio escritas en OCL, que sigue un enfoque de caja negra y utiliza pruebas basadas en propiedades. Esta combinación de estrategias nos permite afrontar el problema de la generación de suites de prueba y casos de prueba de mejor calidad mediante su derivación automática a partir de la descripción formal de los servicios web. Para ilustrar las ventajas de nuestro framework, presentamos un caso de estudio real: un servidor de contenidos multimedia distribuido. Keywords: pruebas basadas en propiedades, servicios web, WSDL, OCL 1. Introducción A medida que Internet crece en importancia en nuestra sociedad, la necesidad de facilitar el acceso a diferentes tipos de sistemas a través de la web se ha vuelto más importante que nunca. La forma habitual de hacerlo es a través de servicios web, cuyo objetivo es proporcionar un medio para interacción entre componenes software o sistemas, o entre sistemas y usuarios finales. Hay múltiples maneras de describir estas interacciones, siendo una de las más comúnmente utilizadas WSDL (Web Services Description Language) [W3C01], un lenguaje basado en XML para especificar las operaciones que ofrece un servicio web. El estándar WSDL opera a nivel sintáctico y no hay una manera de representar los requisitos o condiciones de funcionamiento del servicio web simplemente utilizando la información en WSDL. Por lo tanto, con el fin de añadir información semántica a la descripción del servicio web, la descripción WSDL debe completarse con Trabajo parcialmente financiado gracias a FP7-ICT Ref Automatización de Pruebas para Servicios Web 1 / 15

2 anotaciones semánticas que expresan condiciones previas, postcondiciones y los efectos de cada invocación de servicio. Se han propuesto una serie de opciones para hacer esto, tales como WSDL-S (Web Services Semantics) [W3C05], SWRL (Semantic Web Rule Language) [W3Cb], u OCL (Object Constraint Language) [OMG12]. Para garantizar la calidad de un servicio web [Emm06], es necesario garantizar que las operaciones funcionan tal y como indica su especificación, esto es, que la información semántica no se viola. Basándonos en trabajos previos [FC12], que utilizan descripciones UML junto con restricciones OCL para realizar pruebas automáticas de componentes de software, proponemos aplicar pruebas basadas en propiedades (PBT) [DWA + 10] para pruebas automáticas de servicios web. PBT se basa en la utilización de propiedades que el sistema a probar (SUT) necesita satisfacer, en lugar de casos de prueba individuales. A partir de propiedades, diferentes herramientas pueden generar esos casos de prueba específicos automáticamente. Usando la técnica que proponemos, es posible utilizar una aproximación de caja negra para describir el comportamiento funcional del SUT y utilizar esta especificación para generar propiedades para la realización de pruebas. En particular, dada una descripción WSDL de un servicio web y su definición semántica en OCL, podemos generar esas propiedades en lugar de escribirlas manualmente. En este artículo explicamos cómo se ha desarrollado esta propuesta. Como caso de estudio, hemos utilizado VoDKATV, un middleware IPTV/OTT que proporciona una experiencia multimedia avanzada a los usuarios finales, como es el acceso a vídeo bajo demanda, o servicios de navegación por Internet. La sección 2 describe el estado del arte, introduciendo los conceptos en los que se fundamenta nuestro trabajo y un análisis de diferentes enfoques que podrían utilizarse para probar servicios web. La sección 3 explica la arquitectura de nuestro framework, describe sus componentes y cómo interactúan. La sección 4 presenta información detallada sobre VoD- KATV, sus principales componentes y el servicio web específico que hemos seleccionado como terreno de prueba. Por último, en la sección 5 se presentan las conclusiones y trabajos futuros. 2. Background 2.1. WSDL WSDL-S y OCL Un servicio web es un componente software modular y bien definido que ofrece una API que se accede a través de la red, típicamente, Internet. Las aplicaciones utilizan los servicios web mediante el envío y recepción de mensajes escritos en un formato estandarizado, como XML [W3Ca] o JSON [Cro06]. Gracias a la utilización de formatos estándar y comunicaciones HTTP, los servicios web permiten la cooperación de sistemas independientemente de sus características tecnológicas específicas, así como la integración de componentes en sistemas grandes. WSDL es un lenguaje basado en XML para la definición de servicios web en términos de operaciones, entradas, salidas, mensajes, tipos de datos, así como protocolos específicos para el acceso a los servicios. Con poco esfuerzo podemos transformar las especificaciones WSDL en implementaciones en casi cualquier lenguaje de programación para realizar llamadas a dicho servicio web. Algunas de las herramientas de transformación más utilizadas son Apache CXF [Apab] o Apache Axis2 [Apaa] para Java, y podemos encontrarlas incluso integradas en conocidos IDEs, como Eclipse [Ecl]. WSDL se considera, pues, ampliamente aceptado en la industria como estándar para la descripción de servicios web. Automatización de Pruebas para Servicios Web 2 / 15

3 Los servicios web semánticos pueden enriquecerse con la descripción semántica de su comportamiento. Las descripciones semánticas se expresan con ontologías, una conceptualización formal de un dominio particular. La descripción se crea usando componentes de ese dominio y expresando sus relaciones. WSDL-S tiene como objetivo añadir este tipo de información a los servicios web, extiendendo el lenguaje de especificación WSDL y permitiendo búsqueda automática, descubrimiento, selección, composición e integración entre servicios de dominios heterogéneos. En nuestra propuesta, utilizamos el atributo modelreference que WSDL-S agrega a efectos de anotación; este atributo define la asociación entre una entidad WSDL y un concepto (externo) que describe su semántica. Gracias a este atributo, mantendremos la descripción WSDL y OCL por separado, por lo que cambios en una no afectarán a la otra. Utilizaremos OCL para expresar estos conceptos. OCL es un lenguaje formal usado para la representación de condiciones en modelos UML. Estas condiciones pueden ser invariantes del sistema que se está modelando, o consultas sobre los objetos descritos en el modelo. Un aspecto importante de restricciones OCL es que no tienen efectos secundarios: la evaluación de una expresión OCL no cambia el estado del modelo. Utilizaremos OCL para describir precondiciones y postcondiciones de las operaciones incluidas en la especificación WSDL de un servicio web Pruebas de servicios web La mayor parte de los trabajos publicados sobre pruebas de servicios web presentan métodos para crear buenos conjuntos de pruebas, desde una perspectiva de caja negra. Ejemplos de esto son [AAM10], donde los autores utilizan la técnica de matriz ortogonal (OAT), el método de pares definido por [NS09], y la técnica de partición de [BLTC08]. Algunas propuestas construyen artefactos intermedios para ayudar en el proceso, como por ejemplo [ZZK07], que construye un autómata finito usando BPEL, o [TG07] que combina UML y OCL. En [BBMP09] se presenta un marco completo para realizar pruebas a partir de una especificación WSDL, donde los casos de prueba se generan utilizando un criterio de cobertura y algunas heurísticas. Esta solución también se utiliza en [BIPT09], donde la información acerca de cómo los clientes deben interactuar con el servicio web se infiere. El trabajo previo más próximo a nuestra propuesta, en la que la información semántica se suministra en SWRL [W3Cb] en lugar de OCL, es [NS08]. En todos estos enfoques, no obstante, hay una manifiesta falta de automatización en diferentes momentos del proceso de prueba. Por último, [Lam12] presenta uno de los pocos enfoques totalmente automáticos, en el que se utiliza una herramienta de PBT, pero no se utiliza información semántica, por lo que las pruebas se mantienen en el nivel sintáctico Pruebas basadas en propiedades usando QuickCheck Como alternativa a la producción de las pruebas de forma manual a partir de una especificación de alto nivel en lenguaje natural, o para escribir un modelo formal para describir un sistema o componente, la PBT utiliza sentencias declarativas para especificar las propiedades que el software debe satisfacer de acuerdo con su especificación. Con este enfoque, los casos de prueba pueden entonces ser generados a partir de las propiedades, un proceso que se puede automatizar, lo que permite ejecutar un gran número pruebas para cada propiedad, aumentando la eficacia del proceso de prueba. Automatización de Pruebas para Servicios Web 3 / 15

4 En nuestro trabajo, hemos utilizado QuickCheck, una herramienta de PBT que automatiza la generación, ejecución y evaluación de casos de prueba. QuickCheck originalmente fue desarrollada por Claessen y Hughes para el lenguaje Haskell [CH00] y re-diseñado, mejorado y comercializado por Quviq AB para Erlang [AH03]. Quviq QuickCheck 1 proporciona generación y ejecución de casos de prueba, permitiendo ejecutar una gran cantidad de pruebas con muy poco esfuerzo, para comprobar si los componentes cumplen dichas propiedades. Para probar sistemas complejos, sin embargo, las propiedades aisladas no son suficientemente expresivas. Para este tipo de situaciones, en lugar de secuencias de casos de prueba independientes, necesitamos secuencias de llamadas que modifican el estado del servicio, y comprobaciones de que las condiciones se cumplen antes y después de cada interacción, así como que el estado global del servicio sigue siendo coherente con su comportamiento esperado después de cada llamada. Sistemas de almacenamiento en la nube a los que se accede a través de servicios web son ejemplos de este tipo de sistemas. En este trabajo se generarán de forma automática, a partir de WSDL y OCL, tanto propiedades aisladas como modelos de máquinas de estado, en función de si el SUT es un sistema sin estado o un sistema con estado. 3. Transformando WSDL + OCL en propiedades Los requisitos de un sistema representan las necesidades que debe cubrir, que son, por lo general, especificadas de manera abstracta, sin entrar en detalles de implementación. El uso de PBT para probar los servicios web que puedan implementar una especificación WSDL dada, requiere describir esos requisitos en forma de propiedades que describan los requisitos del SUT. Para ello, se obtiene información tanto del WSDL como de las restricciones en OCL (precondiciones y postcondiciones de cada operación), y la combinación de ambos nos permite construir nuestro modelo de prueba, compuesto por un conjunto de propiedades. Dependiendo de las necesidades del servicio web, el modelo de prueba puede ser diferente: para los servicios web sin estado, se generan propiedades universalmente cuantificadas; para los servicios web con estado, los requisitos se modelan utilizando una máquina de estados. Tanto a partir de las propiedades como del modelo de máquina de estados del servico web, QuickCheck es capaz de generar casos de prueba concretos y, a continuación, nuestro framework utiliza un adaptador HTTP (generado también a partir de la especificación WSDL) para ejecutarlos directamente contra el SUT. Por lo tanto, para emplear este framework no necesitamos conocer los detalles técnicos del lenguaje de implementación de un servicio web determinado. Además, si se conserva la misma API, distintas implementaciones de un servicio web se puede probar con las mismas propiedades y/o modelo. La arquitectura general de nuestro framework se muestra en la figura 1. En primer lugar, utilizamos la información del archivo WSDL, extraída a través de un parser WSDL. Por ejemplo, a continuación se muestra un extracto de un archivo WSDL que describe un servicio web que proporciona una operación pow (wsdl:interface) que recibe como parámetros GET (wsdl:binding) un entero a y un entero positivo b (pow de wsdl:types), y devuelve otro entero como resultado (powresponse de wsdl:types): 1 De ahora en adelante, nos referiremos a Quviq QuickCheck simplemente como QuickCheck. Automatización de Pruebas para Servicios Web 4 / 15

5 SUT WSDL file OCL constraints WSDL parser OCL parser Type information (data + services) Semantic information (services) QuickCheck properties/model test cases adapter Figura 1: Arquitectura de prueba propuesta <wsdl:types> <xs:schema...> <xs:element name="pow"> <xs:complextype> <xs:sequence> <xs:element minocurs="0" name="a" type="xs:int" /> <xs:element minocurs="0" name="b" type="xs:positiveinteger" /> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="powresponse"> <xs:complextype> <xs:sequence> <xs:element minoccurs="0" name="return" type="xs:int" /> </xs:sequence> </xs:complextype> </xs:element>... </xs:schema> </wsdl:types> <wsdl:interface name="mathutilsinterface"> <wsdl:operation name="pow"> <wsdl:input element="msg:powparams"/> <wsdl:output element="msg:powresponse"/> <wssem:modelreference="powconstraints"/> </wsdl:operation> </wsdl:interface> Automatización de Pruebas para Servicios Web 5 / 15

6 <wsdl:binding name="mathutilshttpbinding" type="http://www.w3.org/ns/wsdl/http" interface="tns:mathutilsinterface"> <wsdl:operation ref="tns:pow" whttp:method="get" whttp:location="pow" /> </wsdl:binding> <wsdl:service name="mathutils" interface="tns:mathutilsinterface"> <wsdl:endpoint name="mathutilshttpendpoint" binding="tns:mathutilshttpbinding" address="http://localhost:8080/mathutils/"> </wsdl:endpoint> </wsdl:service> A partir de este ejemplo, nuestro parser debe analizar diferentes etiquetas como el nombre del servicio (etiqueta service), el atributo WSDL-S modelreference que apunta al archivo OCL, la URL (address) de cada operación (operation) del servicio (binding), etc. En el ejemplo anterior, el WSDL hace referencia a un archivo powconstraints que describe la semántica de las operaciones descritas en el WSDL, expresando las precondiciones y postcondiciones de cada operación. Por ejemplo, dicha especificación podría indicar que el resultado de la operación pow se obtiene multiplicando el entero a por sí mismo b veces. Esto puede ser expresado en OCL con el siguiente código, el cual describe una postcondición (post) en donde se usa la operación iterate que se encarga de iterar a través de todos los elementos de una lista, en este caso una secuencia de b elementos (Sequence{1..b}), y comprueba que el resultado final sea igual a la multiplicacion del elemento a por sí mismo tantas veces como elementos tenga dicha secuencia, es decir, b veces: context MathUtils::pow(a: Integer, b: UnlimitedNatural): Integer post: result = Sequence{1..b}-> iterate(i : Integer; acc : Integer = 1 acc*a) Este archivo OCL también es analizado por nuestra herramienta, comprobando si hay información semántica asociada a cualquiera de las operaciones recuperadas en el paso anterior. Por último, recuperada la información requerida de los archivos WSDL y OCL, es el momento de construir las propiedades a partir de las que QuickCheck va a generar los casos de prueba. Con respecto a los parsers de WSDL y OCL, hemos preferido hacer nuestras propias implementaciones. Decidimos implementar nuestro propio parser de WSDL porque necesitamos integrar el resultado con la información semántica proporcionada en forma de restricciones OCL, como paso previo a la generación de propiedades. Por otro lado, también existen diferentes herramientas para tratar ficheros OCL, pero en la práctica totalidad de los casos, su análisis tiene que ser realizado asociado a un modelo UML. Esto nos ha llevado nuevamente a desarrollar nuestro propio parser OCL, aprovechando parcialmente el trabajo realizado por el proyecto OCLNL [ocl]: una gramática BNF etiquetada [FR03] para OCL. Utilizamos esta gramática junto con una herramienta de generación de compiladores (BNFC) [bnf] para construir el árbol de sintaxis abstracta, el analizador léxico y el parser Servicios web sin estado Los servicios o sistemas sin estado no tienen un estado interno que se vea afectado por el resultado de una secuencia de llamadas a su API, por lo que la respuesta devuelta por una llamada Automatización de Pruebas para Servicios Web 6 / 15

7 específica es independiente del momento concreto en que se ejecuta. En este caso, el nombre de la operación que se quiere probar y el tipo de su resultado y los argumentos que se recuperan del archivo WSDL son suficientes para construir las pruebas, siendo las restricciones especificadas en el archivo OCL utilizadas como oráculo de dichas pruebas. El ejemplo WSDL del apartado anterior describe el servicio web MathUtils, que ofrece la operación pow con una postcondición especificada en el archivo de OCL. Con esa información, nuestra herramienta genera automáticamente la siguiente propiedad: prop_pow() ->?FORALL({A, B}, {ocl_gen:int(), ocl_gen:nat()}, begin mathutils:pow(a, B) == ocl_seq:iterate(fun(i, Acc) -> Acc * A end, 1, ocl_seq:new(1, B)) end). Esta propiedad es utilizada por QuickCheck para generar casos de prueba específicos. Así, cada par de número entero (ocl gen:int()) y número natural (ocl gen:nat()) que se genera ({A, B}), se utiliza como parámetros para la función mathutils:pow/2, la cual realiza la llamada a la operación pow proporcionada por el SUT, gracias al adaptador HTTP: pow(arg1, Arg2) -> inets:start(), Req = httpc:request("http://localhost:8080/mathutils/pow?a=" ++ Arg1 ++ "&b=" ++ Arg2), case Req of {ok, {{Version, 200, Reason}, Headers, Result}} -> list_to_float(result); Other -> "Unknown error" end. Este adaptador realiza la petición a la URL concreta utilizando la función httpc:request/1, donde la URL del servicio web se obtiene del archivo WSDL, y devuelve el resultado obtenido. El valor devuelto por el servicio web es finalmente contrastado, como parte de la propiedad, con respecto a la postcondición especificada en el archivo OCL. Para ello, se han creado módulos Erlang, como ocl_seq, que implementan cada una de las operaciones disponibles en OCL, como iterate, los cuales se usan en la propiedad generada prop_pow. En general, la propiedad generada que pruebe que una operación f que recibe unos parámetros P, y que lleva asociada una precondición pre, cumple una postcondición post, es la siguiente:?forall(p,?suchthat(p, G(), pre(p)), begin R = f(p), post(p, R) end). la cual será usada por QuickCheck para generar datos aleatorios que cumplan las precondiciones, se ejecute la función a probar (usando el adaptador HTTP), y se compruebe si la postcondición especificada se cumple. La mayor diferencia entre PBT y los métodos de prueba en los que los datos de entrada se especifican manualmente es el uso de generadores. QuickCheck incorpora una biblioteca de generadores de datos básicos (enteros, strings, listas, etc.) a partir de los cuales pueden construirse otros más complejos. Utilizando esta librería básica de QuickCheck, nuestro framework proporciona generadores para todos los tipos soportados por OCL, y usa esos generadores para construir generadores de tipos complejos en caso de ser necesario [FC12]. Este enfoque conduce a una mejora significativa respecto a las pruebas tradicionales [Pet07] y respecto a la mayoría Automatización de Pruebas para Servicios Web 7 / 15

8 de los trabajos mencionados en la sección 2.2, ya que en lugar de valores concretos, definimos tipos, rangos, y condiciones que los datos de entrada tienen que cumplir, y que son así generados automáticamente en lugar de escritos manualmente. QuickCheck no sólo puede generar una gran cantidad de pruebas concretas derivadas de las propiedades, y ejecutarlas contra el SUT. Otra característica clave de QuickCheck es su capacidad de, cuando se encuentra un caso de prueba que falla, reducirlo de forma automática a un contraejemplo equivalente más pequeño, de manera que resulte más fácil de depurar la razón del fallo. Siguiendo con el ejemplo anterior, se ejecuta la propiedad prop pow, obtenemos: > Testing property: pow...failed! After 52 tests. {-13,16} Shrinking..(2 times) {13,15} que representa la ejecución de 52 pruebas hasta que se revela una incoherencia entre la propiedad y el comportamiento real del servicio web, en concreto, cuando el parámetro a es 13, y b es 16 (13 16 ). En este caso, el fallo es el conocido error de redondeo de los flotantes, como aparece explicado en [ACH08]. Ante un error, debemos determinar si es necesario ajustar la propiedad, o bien corregir el SUT Servicios web con estado En contraposición a los componentes sin estado donde cada acción es independiente entre sí, muchos sistemas tienen un comportamiento que depende de las acciones anteriores. Con el fin de probar estos sistemas, el estado interno tiene que ser tomado en cuenta en el proceso de prueba. QuickCheck tiene soporte para pruebas de este tipo de sistemas mediante el uso de máquinas de estados. En lugar de especificar propiedades generales, se especifica una única propiedad concreta: dada cualquier secuencia de comandos invocados sobre el servicio web, siempre que satisfagan las precondiciones indicadas, sus resultados conformarán las respectivas postcondiciones (figura 2):?FORALL(Commands, commands(statemmodel), ok = run_commands(statemmodel, Commands)). donde StatemModel se construye en QuickCheck mediante la implementación de una serie de callbacks que permiten especificar la lista de comandos de interés (funcionalidades del servicio web a probar), las precondiciones y postcondiciones para verificar el estado del sistema tras cada interacción, y la información que se necesita mantener en el estado interno de la prueba. Las pruebas consisten entonces en secuencias generadas al azar a partir de las posibles transiciones definidas para cada estado [AHJW06]. Nuestro caso de estudio, que procedemos a explicar en la siguiente sección, entra en esta segunda categoría de servicios web con estado. 4. Caso de estudio: VoDKATV 4.1. Arquitectura de VoDKATV VoDKATV es un middleware IPTV/OTT que proporciona a los usuarios finales acceso a diferentes servicios en una pantalla de TV, tablet, smartphone, PC, etc., lo que permite un avanzada Automatización de Pruebas para Servicios Web 8 / 15

9 Figura 2: Pruebas con estado experiencia multimedia multi-pantalla. VoDKATV es un sistema distribuido compuesto por varios componentes, que se integran a través de servicios web (figura 3). La parte principal del sistema de VoDKATV es el paquete core, que contiene los componentes clave del sistema. Los componentes básicos usan los componentes del backend para obtener información de sistemas externos, por ejemplo, la EPG de canales IPTV (proporcionado por el componente EPGServer) o los contenidos multimedia en alquiler de un catálogo de vídeo bajo demanda (proporcionado por el componente AssetManager). Por otro lado, los componentes básicos son utilizados por los clientes (clients), es decir, las aplicaciones que los usuarios finales utilizan para acceder al sistema en una pantalla de TV, teléfono inteligente o cualquier otro dispositivo compatible. Finalmente, la arquitectura también incluye aplicaciones de administración para gestionar y configurar el sistema (paquete admin). Hemos utilizado VoDKATV como caso de estudio para nuestro framework. En concreto, hemos utilizado el servicio web proporcionado por el componente VoDKATV-server, que devuelve datos en formato XML Aplicación de la propuesta al caso de estudio VoDKATV almacena información sobre los usuarios y los dispositivos que pueden acceder al sistema. Los dispositivos se identifican mediante una dirección MAC, y están asociados a un hogar (o room, en nomenclatura VoDKATV). Cuando un nuevo usuario se registra en el sistema VoDKATV, se crea un nuevo hogar y se registran los dispositivos de ese usuario para ese hogar. El Automatización de Pruebas para Servicios Web 9 / 15

10 Figura 3: Arquitectura de VoDKATV servicio web elegido como caso de estudio ofrece, entre otras, operaciones para crear, modificar, actualizar y eliminar hogares y dispositivos. Por ejemplo, el WSDL para crear un nuevo hogar: <wsdl:operation name="createroom" pattern="http://www.w3.org/ns/wsdl/in-out" style="http://www.w3.org/ns/wsdl/style/iri" wsdlx:safe="true"> <wsdl:input element="msg:createroomparams"/> <wsdl:output element="msg:createroomresponse"/> </wsdl:operation> donde createroomparams especifica los parámetros del servicio web: <xsd:element name="createroomparams"> <xsd:complextype> <xsd:sequence> <xsd:element name="roomid" type="xsd:string" /> <xsd:element name="description" type="xsd:string" minoccurs="0" maxoccurs="1" /> </xsd:sequence> </xsd:complextype> </xsd:element> y createroomresponse es la respuesta devuelta por el servicio web: <xsd:element name="createroomresponse"> <xsd:complextype> <xsd:sequence> <xsd:element name="roomid" type="xsd:string" /> <xsd:element name="description" type="xsd:string" minoccurs="0" maxoccurs="1" /> <xsd:element name="error" type="tns:error" minoccurs="0" maxoccurs="1" /> </xsd:sequence> </xsd:complextype> </xsd:element> Automatización de Pruebas para Servicios Web 10 / 15

11 <xsd:complextype name="error"> <xsd:sequence> <xsd:element name="code" type="xsd:string" /> <xsd:element name="params" type="tns:errorparams" minoccurs="0" maxoccurs="1"/> <xsd:element name="description" type="xsd:string" /> </xsd:sequence> </xsd:complextype> <xsd:complextype name="errorparams"> <xsd:sequence> <xsd:element name="param" type="tns:errorparam" minoccurs="1" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="errorparam"> <xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="value" type="xsd:string" /> </xsd:complextype> Nuestro enfoque requiere especificar el comportamiento del servicio web de modo que los casos de prueba puedan generarse automáticamente. La especificación de CreateRoom será: si el identificador de hogar está vacío, el servicio web debe devolver un error required; si ya existe el identificador de hogar, debe devolverse un error duplicated; en otro caso, el hogar debe crearse, y el servicio web debe devolver su identificador (roomid) y descripción (description). Esta especificación se escribe con precondiciones y postcondiciones OCL. A diferencia del ejemplo MathUtils (sección 3), que es un componente sin estado, aquí tenemos que saber qué hogares se crearon previamente para poder evaluar si el sistema VoDKATV debe devolver un error o no, esto es, se trata de un servicio web con estado. Para ello, escribimos las postcondiciones OCL usando state_rooms como parte del estado interno del modelo de prueba. Dicha variable de estado contendrá los hogares que deben ser creados correctamente en sistema, es decir, cuando no se obtiene un error required o duplicated. Con este enfoque, la especificación para la operación CreateRoom se puede escribir en OCL, usando la operación including de OCL para añadir los hogares al estado, de la siguiente manera: context VoDKATVInterface::CreateRoom( roomid:string, description:string): CreateRoomResponse post CreateRoom: if ((roomid = ) or (roomid = null)) then (self.state_rooms = and result.errors->size() = 1 and result.errors->at(0).code = required ) else if (self.state_rooms->select( room room.roomid = roomid)->notempty()) then (self.state_rooms = and result.errors->size() = 1 and result.errors->at(0).code = duplicated ) else self.state_rooms = Automatización de Pruebas para Servicios Web 11 / 15

12 Tuple { roomid:string = roomid, description:string = description }) and result.roomid = roomid and result.description = description endif endif Esta especificación de OCL, junto con el WSDL, es transformada por nuestro framework para generar propiedades QuickCheck. Para ello, se utiliza el mismo método descrito en [FC12]. En este caso, al emplear una variable de estado (state_rooms) y el operador se generará una representación de máquina de estado. Las máquinas de estados QuickCheck requieren la especificación de los siguientes elementos (figura 2): los comandos a ejecutar (es decir, las operaciones del servicio web a probar); las precondiciones para cada operación (definidas en el fichero OCL); las postcondiciones para cada operación (definidas en el fichero OCL); la información almacenada en el estado interno y su valor inicial; la actualización del estado interno tras la ejecución de cada operación. Como ya hemos mencionado, el modelo QuickCheck se conecta a un adaptador HTTP (sección 3) generado por nuestra herramienta a partir del WSDL. Por lo tanto, cuando se prueba una operación, se invocará la correspondiente operación del servicio web y el resultado se contrasta con la correspondiente postcondición. El siguiente es el código generado para comprobar que se devuelve un error required cuando el identificador de hogar está vacío: postcondition(prestate, AfterState, call,?module, createroom, [RoomId, Description], Result) -> case RoomId of "" -> Error = ocl_datatypes:get_property(errors, Result), ocl_seq:eq(afterstate#ts.rooms, PreState#ts.rooms) andalso ocl_string:eq(ocl_datatypes:get_property(code, Error))),"required") end;... Así, nuestra herramienta es capaz de crear automáticamente un modelo de prueba QuickCheck ejecutable a partir de las descripciones WSDL y OCL, capaz de realizar pruebas automáticamente para comprobar la conformidad del servicio web descrito por el WSDL con las restricciones semánticas expresadas en OCL Análisis de resultados QuickCheck genera casos de prueba concretos a partir del modelo de prueba generado, es decir, secuencias aleatorias de comandos con valores aleatorios para los parámetros (de acuerdo con las posibles precondiciones). Además, estas secuencias son ejecutadas, invocando las correspondientes operaciones del servicio web, y determinando si el SUT cumple con las postcondiciones. En el caso de VoDKATV, pueden generarse y ejecutarse cientos de miles de casos de prueba en cuestión de segundos. Dichos casos de prueba han incluído 29 operaciones diferentes de Automatización de Pruebas para Servicios Web 12 / 15

Uso de propiedades y modelos para las pruebas de sistemas distribuidos basados en la integración de componentes heterogéneos

Uso de propiedades y modelos para las pruebas de sistemas distribuidos basados en la integración de componentes heterogéneos Uso de propiedades y modelos para las pruebas de sistemas distribuidos basados en la integración de componentes heterogéneos Miguel A. Francisco 1 Laura M. Castro 2 1 Interoud Innovation S.L. (Spain) miguel.francisco@interoud.com

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

Semantic Annotation for WSDL and XML SAWSDL

Semantic Annotation for WSDL and XML SAWSDL 1 Universidad Rey Juan Carlos I Semantic Annotation for WSDL and XML SAWSDL Presentación: Luis Miguel Serrano Cámara Recuperación de la Información 2 Indice 1.- Introducción 2.- SAWSDL en WSDL 2.0 3.-

Más detalles

Aplicación de técnicas de pruebas automáticas basadas en propiedades a los diferentes niveles de prueba del software

Aplicación de técnicas de pruebas automáticas basadas en propiedades a los diferentes niveles de prueba del software Aplicación de técnicas de pruebas automáticas basadas en propiedades a los diferentes niveles de prueba del software Autor: Miguel Ángel Francisco Fernández Directora: Laura M. Castro Souto Tesis doctoral

Más detalles

DESARROLLO WEB EN ENTORNO SERVIDOR

DESARROLLO WEB EN ENTORNO SERVIDOR DESARROLLO WEB EN ENTORNO SERVIDOR CAPÍTULO 7: Programación de servicios Web Marcos López Sanz Juan Manuel Vara Mesa Jenifer Verde Marín Diana Marcela Sánchez Fúquene Jesús Javier Jiménez Hernández Valeria

Más detalles

WEBBER: USO DE COMPONENTES PARA LA ARMONIZACIÓN DE CONTENIDOS Y METADATOS

WEBBER: USO DE COMPONENTES PARA LA ARMONIZACIÓN DE CONTENIDOS Y METADATOS WEBBER: USO DE COMPONENTES PARA LA ARMONIZACIÓN DE CONTENIDOS Y METADATOS Autores: Introducción Diego R. López RedIRIS diego.lopez@rediris.es El trabajo necesario para mantener un servidor de información

Más detalles

GLOSARIO. Análisis Bottom-Up: Técnica utilizada en tareas de ingeniería inversa la cual parte de

GLOSARIO. Análisis Bottom-Up: Técnica utilizada en tareas de ingeniería inversa la cual parte de GLOSARIO Análisis Bottom-Up: Técnica utilizada en tareas de ingeniería inversa la cual parte de una descripción de bajo nivel (código fuente) para generar descripciones con un mayor grado de abstracción.

Más detalles

SSTQB. Nivel Fundamentos. Examen ejemplo. Programa de estudios 2010

SSTQB. Nivel Fundamentos. Examen ejemplo. Programa de estudios 2010 SSTQB Nivel Fundamentos Examen ejemplo Página 1 de 12 Fecha publicación: 28 - octubre - 2015 Índice Preguntas... 3 Respuestas... 12 Página 2 de 12 Fecha publicación: 28 - octubre - 2015 Preguntas 1 2 Una

Más detalles

Uso de Propiedades Abstractas para Especificación de Pruebas Funcionales de Caja Negra

Uso de Propiedades Abstractas para Especificación de Pruebas Funcionales de Caja Negra PROLE 2011 Uso de Propiedades Abstractas para Especificación de Pruebas Funcionales de Caja Negra Miguel A. Francisco 3 LambdaStream Spain Laura M. Castro 1,2 Víctor M. Gulías 4 Universidade da Coruña

Más detalles

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática La Necesidad de Modelar Analogía Arquitectónica Tiene sentido poner ladrillos sin hacer antes los planos? El modelo, los planos, ayuda a afrontar la complejidad del proyecto. Cuál es el lenguaje adecuado

Más detalles

INTEROPERABILIDAD ESTÁNDARES APLICADOS EN COSTA RICA

INTEROPERABILIDAD ESTÁNDARES APLICADOS EN COSTA RICA INTEROPERABILIDAD ESTÁNDARES APLICADOS EN COSTA RICA Ing. Marco Jiménez HA-2508 SEMINARIO DE TEMAS ARCHIVÍSTICOS 21-09-2010 Temas de la presentación Definiciones Interoperabilidad Sistema Importancia de

Más detalles

Conceptos de Orquestador O2 EMPRESAS TUXPAN www.tuxpan.com

Conceptos de Orquestador O2 EMPRESAS TUXPAN www.tuxpan.com EMPRESAS TUXPAN www.tuxpan.com AÑO 2007 INDICE DE CONTENIDO 1 Software de Servicios y Orquestación de Procesos 2 1.1.1 Introducción 2 1.1.2 Software de Orquestación como Integrador 3 1.1.3 Automatización

Más detalles

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo. GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.

Más detalles

Especificación Técnica del WebService de Autenticación y Autorización

Especificación Técnica del WebService de Autenticación y Autorización Especificación Técnica del WebService de Autenticación y Autorización Índice de contenido Introducción...3 Propósito...3 Descripción General del Servicio...3 Referencias...4 Invocación del WSAA...4 Sincronización

Más detalles

Especificación Técnica del Web Service de Autenticación y Autorización WSAA Para el desarrollo de Clientes de Entidades Externas

Especificación Técnica del Web Service de Autenticación y Autorización WSAA Para el desarrollo de Clientes de Entidades Externas Servicio Nacional de Aduanas Subdirección de Informática Departamento de Desarrollo de Sistemas Especificación Técnica del Web Service de Autenticación y Autorización WSAA Para el desarrollo de Clientes

Más detalles

Modelos de Software. Ingeniería en Sistemas de Información 2015

Modelos de Software. Ingeniería en Sistemas de Información 2015 Modelos de Software Ingeniería en Sistemas de Información 2015 Diagrama de Clases UML La línea que separa el modelado de la programación a veces se vuelve algo difusa. Existen muchas herramientas que permiten

Más detalles

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)

Más detalles

Desarrollo y servicios web

Desarrollo y servicios web Desarrollo y servicios web Luisa Fernanda Rincón Pérez 2014-2 Qué vimos la clase pasada? Introducción a Big Data Introducción a bases de datos NOSQL Características bases de datos NOSQL MongoDB como motor

Más detalles

Historia de revisiones

Historia de revisiones Binary Rain Glosario Versión 1.1 Historia de revisiones Fecha Versión Descripción Autor 17/08/2012 1.0 Creación del documento Carolina Trias 18/08/2012 1.1 Revisado y corregido por SQA Mercedes Marzoa

Más detalles

Bienvenidos a la presentación: Introducción a conceptos básicos de programación.

Bienvenidos a la presentación: Introducción a conceptos básicos de programación. Bienvenidos a la presentación: Introducción a conceptos básicos de programación. 1 Los programas de computadora son una serie de instrucciones que le dicen a una computadora qué hacer exactamente. Los

Más detalles

GENERACIÓN DE CASOS DE PRUEBA PARA COMPOSICIONES DE SERVICIOS WEB ESPECIFICADAS EN BPEL

GENERACIÓN DE CASOS DE PRUEBA PARA COMPOSICIONES DE SERVICIOS WEB ESPECIFICADAS EN BPEL Taller sobre Pruebas en Ingeniería del Software PRIS 2006 GENERACIÓN DE CASOS DE PRUEBA PARA COMPOSICIONES DE SERVICIOS WEB ESPECIFICADAS EN BPEL José García-Fanjul, Javier Tuya y Claudio de la Riva Departamento

Más detalles

DISEÑO DE UN CURSO INTERACTIVO Y ADAPTATIVO DE PROCESADORES DE LENGUAJES

DISEÑO DE UN CURSO INTERACTIVO Y ADAPTATIVO DE PROCESADORES DE LENGUAJES Alfonseca, M., Carro, R.M., Pulido, E. and Rodríguez, P. (2000): Diseño de un curso interactivo y adaptativo de procesadores de lenguajes. Proceedings of JENUI 2000: VI Jornadas sobre la Enseñanza Universitaria

Más detalles

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 18 CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 2 Código IFC297_2 Versión 5 Situación RD 1201/2007 Actualización

Más detalles

4 o Ingeniería Informática

4 o Ingeniería Informática Esquema del tema 1. Introducción 4 o Ingeniería Informática II26 Procesadores de lenguaje Estructura de los compiladores e intérpretes 2. Etapas del proceso de traducción 3. La interpretación 4. La arquitectura

Más detalles

Grupo de Procesadores de Lenguajes - Línea: Código Móvil Seguro

Grupo de Procesadores de Lenguajes - Línea: Código Móvil Seguro Grupo de Procesadores de Lenguajes - Línea: Código Móvil Seguro Francisco Bavera Martín Nordio Jorge Aguirre Marcelo Arroyo Gabriel Baum Ricardo Medel Resumen En el último tiempo Proof-Carrying Code (PCC)

Más detalles

Design by Contract with JML. Gary T. Leavens y Yoonsik Cheon

Design by Contract with JML. Gary T. Leavens y Yoonsik Cheon Design by Contract with JML Gary T. Leavens y Yoonsik Cheon Diseño por Contrato con JML Java Modeling Language combina: Mi logo es mas lindo que el de Martín.. :P Diseño por Contrato de Eiffel (Meyer).

Más detalles

Framework para la Generación Dinámica de Invariantes en Composiciones de Servicios Web con WS-BPEL

Framework para la Generación Dinámica de Invariantes en Composiciones de Servicios Web con WS-BPEL Framework para la Generación Dinámica de Invariantes en Composiciones de Servicios Web con WS-BPEL Antonio García Domínguez, Manuel Palomo Duarte e Inmaculada Medina Bulo Departamento de Lenguajes y Sistemas

Más detalles

Programación orientada a

Programación orientada a Programación orientada a objetos con Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos de la programación

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

Desarrollo de Servicios Web para la ETN

Desarrollo de Servicios Web para la ETN ........... Desarrollo de Servicios Web para la ETN Primer Informe de Avance JULIO, 2010 Primer Informe de Avance Desarrollo de Servicios Web para la ETN Crear Servicios Web que hagan disponible la información

Más detalles

Openbravo WebServices

Openbravo WebServices Openbravo WebServices External Point Of Sale 16 Agosto 2006 Revisión 1.1 Visit us at www.openbravo.com Tabla de Contenidos I.Introducción... 3 II.Definición del producto... 4 II.1Tipo Product... 4 II.2Tipo

Más detalles

http://www.cem.itesm.mx/extension/ms

http://www.cem.itesm.mx/extension/ms Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

Más detalles

Hacia la Integración de Técnicas de Pruebas en Metodologías Dirigidas por Modelos para SOA

Hacia la Integración de Técnicas de Pruebas en Metodologías Dirigidas por Modelos para SOA Hacia la Integración de Técnicas de Pruebas en Metodologías Dirigidas por Modelos para SOA Antonio García Domínguez Inmaculada Medina Bulo Mariano Marcos Bárcena Universidad de Cádiz Escuela Superior de

Más detalles

BPMN vs UML. Los Requerimientos y el Modelo del Negocio. Autor: Norberto Figuerola

BPMN vs UML. Los Requerimientos y el Modelo del Negocio. Autor: Norberto Figuerola BPMN vs UML Autor: Norberto Figuerola Los Requerimientos y el Modelo del Negocio Normalmente, siempre que iniciamos un esfuerzo de desarrollo de software éste tiene como objetivo automatizar procesos del

Más detalles

Práctica Java POJO de Integración de Sistemas Tienda de Comercio Electrónico

Práctica Java POJO de Integración de Sistemas Tienda de Comercio Electrónico Práctica Java POJO de Integración de Sistemas Tienda de Comercio Electrónico Curso académico 2008-2009 1 Introducción La práctica de Integración de Sistemas consistirá en el diseño e implementación de

Más detalles

Tema 18. Servicios Web.

Tema 18. Servicios Web. Tema 18. Servicios Web. Los web services son componentes software que permiten a los usuarios usar aplicaciones de negocio que comparten datos con otros programas modulares, vía Internet. Son aplicaciones

Más detalles

CAMINANDO HACIA LA WEB SEMÁNTICA

CAMINANDO HACIA LA WEB SEMÁNTICA CAMINANDO HACIA LA WEB SEMÁNTICA Jesualdo Tomás Fernández Breis Universidad de Murcia jfernand@um.es Web actual La información que vemos nosotros... Lugares para viajar y precio Ofertas de Viajes Viajes

Más detalles

Técnicas Avanzadas de Testing Automático

Técnicas Avanzadas de Testing Automático Técnicas Avanzadas de Testing Automático Marcelo Frias ITBA - Buenos Aires, Argentina CONICET Preliminares: Calidad Validación y Verificación Especificaciones y V&V Análisis estático y dinámico Inspecciones

Más detalles

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

Generación Automática de Casos de Prueba Investigación en Variables Enteras

Generación Automática de Casos de Prueba Investigación en Variables Enteras Generación Automática de Casos de Prueba Investigación en Variables Enteras Diego Vallespir Ligugnana Universidad de la República, Facultad de Ingeniería, Instituto de Computación Grupo de Ingeniería de

Más detalles

GLOSARIO DE TÉRMINOS

GLOSARIO DE TÉRMINOS MINISTERIO DE EDUCACIÓN, CULTURA Y DEPORTE SECRETARÍA DE ESTADO DE EDUCACIÓN, FORMACIÓN PROFESIONAL Y UNIVERSIDADES DIRECCIÓN GENERAL DE FORMACIÓN PROFESIONAL INSTITUTO NACIONAL DE LAS CUALIFICACIONES

Más detalles

Programación de red con Cisco Application Centric Infrastructure

Programación de red con Cisco Application Centric Infrastructure Informe técnico Programación de red con Cisco Application Centric Infrastructure Descripción general En este documento se examina la compatibilidad de la programación de Cisco Application Centric Infrastructure

Más detalles

Examen de AAD 21/06/2004, 11:30 13:00 (90 )

Examen de AAD 21/06/2004, 11:30 13:00 (90 ) Examen de AAD 21/06/2004, 11:30 13:00 (90 ) APELLIDOS: SOLUCIÓN NOMBRE: DNI: Publicación de notas: 05/07/2004 (racó FIB). Revisión examen: 06/07/2004, 13:00, D6-117. Durante el examen puedes consultar

Más detalles

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la Servicios web Introducción Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes

Más detalles

Capítulo 5. Implementación y Tecnologías Utilizadas

Capítulo 5. Implementación y Tecnologías Utilizadas Capítulo 5. Implementación y Tecnologías Utilizadas Cada vez más, se está utilizando Flash para desarrollar aplicaciones basadas en Web, pues permite la construcción de ambientes con mayor interacción.

Más detalles

Glosario. actividad. 1. (tarea) 2. es un subproceso que no requiere mas descomposición.

Glosario. actividad. 1. (tarea) 2. es un subproceso que no requiere mas descomposición. Glosario Aclaraciones Los conceptos del glosario están ordenados alfabéticamente. Un concepto puede ser un único término como meta o una frase como ambiente de ingeniería de software centrado en procesos.

Más detalles

La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México

La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México Licencia La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México S. A de C.V., Está protegida por derechos de autor y / u otras leyes aplicables. Cualquier uso diferente a

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 17 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE Versión 1.8 Área de Aplicaciones Especiales y Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Manual de usuario del

Más detalles

Generación de código para Hibernate desde modelos UML

Generación de código para Hibernate desde modelos UML Generación de código para Hibernate desde modelos UML Alejandro Nogueiro Mariscal Ingeniería Técnica en Informática de Sistemas, Universidad de Cádiz 24 de Septiembre 2012 1 / 35 Índice 1 Motivación y

Más detalles

TEMA 5. Otras arquitecturas distribuidas IV. Web Services

TEMA 5. Otras arquitecturas distribuidas IV. Web Services TEMA 5. Otras arquitecturas distribuidas IV. Web Services IV. Web Services 1. Qué son los Web Services? 2. Ejemplos de Web Services 3. Tecnologías y arquitectura 3.1. Arquitectura 3.2. Lenguaje de descripción:

Más detalles

Ingeniería de Software en SOA

Ingeniería de Software en SOA Ingeniería de Software en SOA ECSDI LSI-FIB-UPC cbea Curso 2014/2015 ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 1 / 51 Índice 1 Directrices para la IS en SOA 2 Modelo de referencia

Más detalles

Curso de doctorado Web Semántica: Tecnologías semánticas aplicadas a la definición de QoS

Curso de doctorado Web Semántica: Tecnologías semánticas aplicadas a la definición de QoS Curso de doctorado Web Semántica: Tecnologías semánticas aplicadas a la definición de QoS Rodrigo García * Universidad de Oviedo uo64507@uniovi.es Resumen El concepto de calidad de servicio o QoS aparece

Más detalles

Capítulo 6: Instrumentación: Diseño del Sistema de H2O

Capítulo 6: Instrumentación: Diseño del Sistema de H2O Capítulo 6: Instrumentación: Diseño del Sistema de H2O Digital Media Server El video en demanda a través del web aún está restringido a las grandes empresas que pueden pagar por contar por un servicio

Más detalles

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Página 1 de 21 CUALIFICACIÓN DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC154_3 Versión 5 Situación RD 1087/2005 Actualización

Más detalles

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com Introducción a los Servicios Web Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com Servicios Web y Soa En un contexto SOA y los servicios web son una oportunidad de negocios en la actualidad.

Más detalles

Introducción a AJAX y visión global de la práctica

Introducción a AJAX y visión global de la práctica Introducción a AJAX y visión global de la práctica Modelo de aplicaciones Web clásico (1) La mayor parte de las interacciones del usuario causan una petición HTTP al servidor Web El servidor Web procesa

Más detalles

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB Existen varios tipos de tecnologías para los Servidores Web, estas tecnologías se pueden dividir en 4 grupos principales que son: Tecnologías al lado del cliente

Más detalles

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes. SISTEMAS DISTRIBUIDOS DE REDES 2.- MODELOS ORIENTADOS A OBJETOS DISTRIBUIDOS 2.1. Tecnologías de sistemas distribuidos Para la implementación de sistemas distribuidos se requiere de tener bien identificados

Más detalles

5.1. Qué es Internet? controla todo el sistema, pero está conectado de tal manera que hace

5.1. Qué es Internet? controla todo el sistema, pero está conectado de tal manera que hace 5. Internet 5.1. Qué es Internet? Internet es una red mundial de equipos que se comunican usando un lenguaje común. Es similar al sistema telefónico internacional: nadie posee ni controla todo el sistema,

Más detalles

Capitulo III. Diseño del Sistema.

Capitulo III. Diseño del Sistema. Capitulo III. Diseño del Sistema. Para el desarrollo del sistema en la presente tesis se utilizo el paradigma orientado a objetos utilizando el lenguaje Java en su versión 1.2. Por medio de este lenguaje

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 6. Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 6. Actualización Página 1 de 19 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 6 Situación Contraste externo Actualización

Más detalles

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 6. Actualización

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 6. Actualización Página 1 de 19 CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 2 Código IFC297_2 Versión 6 Situación Contraste externo Actualización

Más detalles

Taller de Sistemas de Información 3. Presentación SCA

Taller de Sistemas de Información 3. Presentación SCA Taller de Sistemas de Información 3 Presentación SCA Integrantes: Gustavo Fava Diego Salido Marcos Techera agosto de 2008 TSI 3 1 Introducción a SCA Aplicación: conjunto de componentes de software trabajando

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

IBM Rational Statemate ayuda a los ingenieros de sistemas a enfrentarse a los retos del mercado de sistemas integrados complejos

IBM Rational Statemate ayuda a los ingenieros de sistemas a enfrentarse a los retos del mercado de sistemas integrados complejos ZP09-0207, con fecha 2 de junio de 2009 IBM Rational Statemate ayuda a los ingenieros de sistemas a enfrentarse a los retos del mercado de sistemas integrados complejos Índice 1 Resumen de características

Más detalles

Prueba de software. Ingeniería de software Eduardo Ferreira, Martín Solari

Prueba de software. Ingeniería de software Eduardo Ferreira, Martín Solari Prueba de software Ingeniería de software Eduardo Ferreira, Martín Solari 1 Temario Prueba de software Estrategias, niveles y tipos de prueba Pruebas de caja blanca Pruebas de caja negra Proceso de prueba

Más detalles

Sede Electrónica del Automóvil

Sede Electrónica del Automóvil Gestores 1880 SAU Sede Electrónica del Automóvil Consulta de datos EITV Proyecto: Sede Electrónica del Automóvil (SEA) Contenido: Consulta de datos EITV Identificador: SEA19202412 Versión: v5 Creación

Más detalles

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V Bibliografía Tema V Tecnología de objetos distribuidos y arquitectura de componentes. Szyperski, C. 1998. Component Software. Addison-Wesley. Ruiz Cortés, 1998. A. CORBA: Una visión general. http://www.lsi.us.es/~aruiz

Más detalles

Práctica de Integración de Sistemas Aplicación Web.NET: Sitio de Comentarios de Eventos Deportivos

Práctica de Integración de Sistemas Aplicación Web.NET: Sitio de Comentarios de Eventos Deportivos Práctica de Integración de Sistemas Aplicación Web.NET: Sitio de Comentarios de Eventos Deportivos 1. Introducción Curso académico 2009-2010 La práctica de Integración de Sistemas consiste en el diseño

Más detalles

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente Capítulo 5: Aplicaciones cliente 46 5.1 La aplicación cliente en la Pocket PC La aplicación desarrollada para el cliente en un dispositivo móvil como corresponde a la Pocket PC necesita una capa muy delgada

Más detalles

Introducción al lenguaje de especificación JML

Introducción al lenguaje de especificación JML Introducción al lenguaje de especificación JML Elena Hernández Pereira Óscar Fontenla Romero Tecnología de la Programación Octubre 2006 Departamento de Computación Facultad de Informática Universidad de

Más detalles

Migración de datos automática a partir de la información de los esquemas conceptuales 1

Migración de datos automática a partir de la información de los esquemas conceptuales 1 Migración de datos automática a partir de la información de los esquemas conceptuales 1 J.Pérez 1, J.A.Carsí 1, I.Ramos 1, V.Anaya 1, J.Silva 1, Departamento de Sistemas Informáticos y Computación Universidad

Más detalles

Proceso de testing. Ingeniería del Software I. Actividades del proceso de testing. Actividades del proceso de testing

Proceso de testing. Ingeniería del Software I. Actividades del proceso de testing. Actividades del proceso de testing Ingeniería del Software I Testing Martina Marré martina@dc.uba.ar Proceso de testing RECORDEMOS El testing no es sólo una etapa del proceso de desarrollo Tradicionalmente, empezaba al término de la implementación,

Más detalles

Para el desarrollo de aplicaciones Web se han generado múltiples tecnologías entre ellas se encuentran:

Para el desarrollo de aplicaciones Web se han generado múltiples tecnologías entre ellas se encuentran: Desarrollo de aplicaciones y servicios web Cinxgler Mariaca Minda Cinxgler@udistrital.edu.co Presidente Capítulo de Computadores Rama IEEE Universidad Distrital Francisco José de Caldas Resumen: Este articulo

Más detalles

SERVICIOS: EXPLORACIONES EN SOA y WEB.

SERVICIOS: EXPLORACIONES EN SOA y WEB. SERVICIOS: EXPLORACIONES EN SOA y WEB. López, G. 1 ; Jeder, I 1.; Echeverría, A 1.; Grossi, M.D. 2 ; Servetto, A 2.; Fierro, P. (PhD.) 3 1. Laboratorio de Informática de Gestión - Facultad de Ingeniería.

Más detalles

Búsqueda sobre catálogos basada en ontologías

Búsqueda sobre catálogos basada en ontologías Búsqueda sobre catálogos basada en ontologías Alianis Pérez Sosa, Yuniel Eliades Proenza Arias Universidad de las Ciencias Informáticas. Carretera a San Antonio Km 2 ½, Reparto Torrens, La Lisa, Ciudad

Más detalles

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 16 CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC304_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

TEMA 5 LA FAMILIA XML EN LA NUEVA WEB

TEMA 5 LA FAMILIA XML EN LA NUEVA WEB TEMA 5 LA FAMILIA XML EN LA NUEVA WEB La Web, tanto cuantitativa como cualitativamente, se ha desarrollado extraordinariamente siendo el objeto de este texto ubicar el papel que XML juega y va a jugar

Más detalles

Ejemplo: agencia de viajes por internet

Ejemplo: agencia de viajes por internet Introducción Modelado de casos de uso Propósito y definición Casos de uso y extracción de requisitos Carácter hipotético de los casos de uso El modelo de casos de uso Notación. Actores y casos de uso.

Más detalles

Una Arquitectura para una Herramienta de Patrones de Diseño

Una Arquitectura para una Herramienta de Patrones de Diseño Una Arquitectura para una Herramienta de Patrones de Diseño José Sáez Martínez 1, Jesús García Molina, Pedro J. Jiménez García Departamento de Informática, Lenguajes y Sistemas. Campus de Espinardo C.P.

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

Perfil UML para el desarrollo de aplicaciones WAP

Perfil UML para el desarrollo de aplicaciones WAP Perfil UML para el desarrollo de aplicaciones WAP Ricardo Soto D., Mauricio Camara J. Escuela de Ingeniería Informática, Pontificia Universidad Católica de Valparaíso, Chile E-mail: ricardo.soto@ucv.cl,

Más detalles

Análisis del Sistema de Información

Análisis del Sistema de Información Análisis del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD ASI 1: DEFINICIÓN DEL SISTEMA... 6 Tarea ASI 1.1: Determinación del Alcance del Sistema... 6 Tarea ASI 1.2: Identificación

Más detalles

Gestión de la composición semántica de servicios web para el dominio de turismo

Gestión de la composición semántica de servicios web para el dominio de turismo Gestión de la composición semántica de servicios web para el dominio de turismo María-Belén Rayo, Manuel Noguera, José Luis Garrido, Kawtar Benghazi E.T.S.I.I.T., Departamento de Lenguajes y Sistemas Informáticos,

Más detalles

Análisis de la visibilidad global de los publicadores de los recursos geográficos estandarizados

Análisis de la visibilidad global de los publicadores de los recursos geográficos estandarizados Análisis de la visibilidad global de los publicadores de los recursos geográficos estandarizados Aneta J. Florczyk, F.Javier López-Pellicer, Juan Valiño-García, Javier Nogueras-Iso, F.Javier Zarazaga-Soria

Más detalles

2524 Developing XML Web Services Using Microsoft ASP.NET

2524 Developing XML Web Services Using Microsoft ASP.NET 2524 Developing XML Web Services Using Microsoft ASP.NET Introducción La meta de este curso es de proveer a los estudiantes con el conocimiento y habilidades requeridas para desarrollar soluciones basadas

Más detalles

Generación de pruebas de sistema a partir de la especificación funcional

Generación de pruebas de sistema a partir de la especificación funcional Departamento de Lenguajes y Sistemas Informáticos Escuela Técnica Superior de Ingeniería Informática Universidad de Sevilla Avda Reina Mercedes, s/n. 41012 SEVILLA Fax : 95 455 71 39. Tlf: 95 455 71 39.

Más detalles

(http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=openesb-instalarintroduccion)

(http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=openesb-instalarintroduccion) Tutorial de BPEL con OpenESB (I) Indice 1. Tutorial de BPEL con OpenESB (I) 1. Introducción 2. El proceso de negocio 3. Identificar los servicios web requeridos 4. Modelar el proceso de negocio con BPEL

Más detalles

Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software

Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software Ramón Gómez-Romero, Karen Cortés Verdin, Juan Carlos Pérez Arriaga, Ángeles Arenas Valdés Universidad

Más detalles

Práctica Java POJO de Integración de Sistemas Sitio Web de Apuestas Deportivas

Práctica Java POJO de Integración de Sistemas Sitio Web de Apuestas Deportivas Práctica Java POJO de Integración de Sistemas Sitio Web de Apuestas Deportivas Curso académico 2009-2010 1 Introducción La práctica de Integración de Sistemas consistirá en el diseño e implementación de

Más detalles

PWSP Manual de Usuario

PWSP Manual de Usuario PWSP Manual de Usuario Plataforma de Servicios Web del Grupo PentaSoft Febrero 2007 http://ws.pentasoft.es http://ws.test.pentasoft.es PWSP PentaSoft Web Services Platform es un producto registrado de

Más detalles

Tema 3: Bases de datos en Entorno Web

Tema 3: Bases de datos en Entorno Web Tema 3: Bases de datos en Entorno Web 1. Introducción. Un sistema de bases de datos proporciona un control centralizado de los datos. Esto contrasta con la situación que prevalece actualmente, donde a

Más detalles

DESARROLLO WEB EN ENTORNO SERVIDOR

DESARROLLO WEB EN ENTORNO SERVIDOR DESARROLLO WEB EN ENTORNO SERVIDOR CAPÍTULO 9: Desarrollo de aplicaciones Web híbridas Marcos López Sanz Juan Manuel Vara Mesa Jenifer Verde Marín Diana Marcela Sánchez Fúquene Jesús Javier Jiménez Hernández

Más detalles

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el Capitulo II. Análisis de herramientas y tecnologías de desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el lenguaje de Modelo de Objetos llamado UML (Unified

Más detalles

Antes de imprimir este documento piense en el medio ambiente!

Antes de imprimir este documento piense en el medio ambiente! Versión 1.0 Página 1 de 14 1. OBJETIVO: Suministrar la metodología que se aplicará para la estimación de esfuerzo para los desarrollos nuevos en el ICBF, para lo cual se detallan los aspectos a tener en

Más detalles

Servicio Web. Estándares empleados. Ventajas de los servicios web. Inconvenientes de los servicios Web

Servicio Web. Estándares empleados. Ventajas de los servicios web. Inconvenientes de los servicios Web Servicio Web Un servicio web (en inglés, Web services) es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones

Más detalles

Sistema para el alquiler, control de películas y clientes en una videotienda

Sistema para el alquiler, control de películas y clientes en una videotienda CASO DE PRUEBA: Sistema para el alquiler, control de películas y clientes en una videotienda Documento de arquitectura Y servicios Versión Historia de Revisión Fecha Versión Descripción Responsable

Más detalles