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=" 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=" </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(" ++ 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=" style=" 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 = self.state_rooms@pre 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 = self.state_rooms@pre and result.errors->size() = 1 and result.errors->at(0).code = duplicated ) else self.state_rooms = self.state_rooms@pre->including( 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

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

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

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

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

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

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

Capítulo 1 Documentos HTML5

Capítulo 1 Documentos HTML5 Capítulo 1 Documentos HTML5 1.1 Componentes básicos HTML5 provee básicamente tres características: estructura, estilo y funcionalidad. Nunca fue declarado oficialmente pero, incluso cuando algunas APIs

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 FAMILIA PROFESIONAL: INFORMATICA Y COMUNICACIONES MATERIA: 28. DESARROLLO WEB EN ENTORNO SERVIDOR CURSO: 2º DE CFGS DESARROLLO DE APLICACIONES

Más detalles

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN CONCEPTOS DE PRUEBAS DE APLICACIÓN El departamento de Testing se encarga de diseñar, planear y aplicar el rol de pruebas a los sistemas que el PROVEEDOR

Más detalles

Unidad 1. Fundamentos en Gestión de Riesgos

Unidad 1. Fundamentos en Gestión de Riesgos 1.1 Gestión de Proyectos Unidad 1. Fundamentos en Gestión de Riesgos La gestión de proyectos es una disciplina con la cual se integran los procesos propios de la gerencia o administración de proyectos.

Más detalles

Empresa Financiera Herramientas de SW Servicios

Empresa Financiera Herramientas de SW Servicios Empresa Financiera Herramientas de SW Servicios Resulta importante mencionar que ésta es una empresa cuya actividad principal está enfocada a satisfacer las necesidades financieras de los clientes, a través

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

CAPÍTULO 3 Servidor de Modelo de Usuario

CAPÍTULO 3 Servidor de Modelo de Usuario CAPÍTULO 3 Servidor de Modelo de Usuario Para el desarrollo del modelado del estudiante se utilizó el servidor de modelo de usuario desarrollado en la Universidad de las Américas Puebla por Rosa G. Paredes

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

Metodología Orientada a Objetos Clave 43100007 Maestría en Sistemas Computacionales

Metodología Orientada a Objetos Clave 43100007 Maestría en Sistemas Computacionales Metodología Orientada a Objetos Clave 43100007 Maestría en Sistemas Computacionales Modulo 03 UML: Vista de Casos de Uso Artefacto: Actores Catedrático MSC. Jose Juan Aviña Grimaldo e-mail josejuan_avina@gmail.com

Más detalles

MANUAL COPIAS DE SEGURIDAD

MANUAL COPIAS DE SEGURIDAD MANUAL COPIAS DE SEGURIDAD Índice de contenido Ventajas del nuevo sistema de copia de seguridad...2 Actualización de la configuración...2 Pantalla de configuración...3 Configuración de las rutas...4 Carpeta

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Interoperabilidad de Fieldbus

Interoperabilidad de Fieldbus 2002 Emerson Process Management. Todos los derechos reservados. Vea este y otros cursos en línea en www.plantwebuniversity.com. Fieldbus 201 Interoperabilidad de Fieldbus Generalidades Qué es interoperabilidad?

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

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

Introducción. Metadatos

Introducción. Metadatos Introducción La red crece por momentos las necesidades que parecían cubiertas hace relativamente poco tiempo empiezan a quedarse obsoletas. Deben buscarse nuevas soluciones que dinamicen los sistemas de

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

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

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

Manual de Usuario de la Herramienta SICRES-Tester. SIR Sistema de Interconexión de Registros. Tipo de documento. Fecha de entrega 08/04/2014

Manual de Usuario de la Herramienta SICRES-Tester. SIR Sistema de Interconexión de Registros. Tipo de documento. Fecha de entrega 08/04/2014 MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS SECRETARÍA DE ESTADO DE ADMINISTRACIONES PÚBLICAS DIRECCIÓN GENERAL DE MODERNIZACIÓN ADMINISTRATIVA, PROCEDIMIENTOS E IMPULSO DE LA ADMINISTRACIÓN ELECTRONICA

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

Más detalles

Enginyeria del Software III

Enginyeria del Software III Enginyeria del Software III Sessió 3. L estàndard ISO/IEC 15504 Antònia Mas Pichaco 1 Introducción El proyecto SPICE representa el mayor marco de colaboración internacional establecido con la finalidad

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

TOPICOS IV: ING. YIM APESTEGUI FLORENTINO

TOPICOS IV: ING. YIM APESTEGUI FLORENTINO 1 2 MIGRACIÓN DE DATOS E INTEGRACIÓN ENTRE SISTEMAS. Actividades propias de la INGENIERÍA DE SISTEMAS E INF. Se requiere conocimientos técnicos y fundamentales. Planificación y Ejecución. 3 PROCESO DE

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

Ofrezca la nueva tendencia de innovación empresarial con un entorno de red abierta

Ofrezca la nueva tendencia de innovación empresarial con un entorno de red abierta Descripción general de la solución Ofrezca la nueva tendencia de innovación empresarial con un entorno de red abierta Lo que aprenderá A medida que tecnologías como la nube, la movilidad, los medios sociales

Más detalles

JavaScript como Orientación a Objetos

JavaScript como Orientación a Objetos Gustavo Lacoste (gustavo@lacosox.org) October 2012 Resumen El objetivo de las siguientes notas es generar una estructura en JavaScript que nos permita reutilizar de manera limpia las funciones creadas

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

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

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII GUIA DISPONIBLE EN: http://preparadorivan.blogspot.com/ - http://preparadormssi.50webs.com/inicio.html La World Wide Web o la Web, es una de las múltiples

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

SINAUTO. (Captura Requirimientos) GRUPO 03

SINAUTO. (Captura Requirimientos) GRUPO 03 SINAUTO (Captura Requirimientos) GRUPO 03 Iker Jauregi ikerjauregivicente@hotmail.com Iñigo Arregui bateman2012@gmail.com Javier Arce arcjav@hotmail.com Jorge García. jgfand@gmail.com Patxi Campos.patxi948@wanadoo.es

Más detalles

comunidades de práctica

comunidades de práctica 1. Introducción CoSpace es una plataforma web diseñada para proporcionar un espacio virtual de interacción y colaboración entre formadores en comunidades virtuales. Se originó como resultado de las necesidades

Más detalles

GENERACIÓN DE ANTICIPOS DE CRÉDITO

GENERACIÓN DE ANTICIPOS DE CRÉDITO GENERACIÓN DE ANTICIPOS DE CRÉDITO 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de anticipos de crédito permite generar fácilmente órdenes para que la Caja anticipe el cobro de créditos

Más detalles

SCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es

SCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es SCT3000 95 Versión 3.5 Software para la calibración de transductores de fuerza. Microtest S.A. microtes@arrakis.es Introducción El programa SCT3000 95, es un sistema diseñado para la calibración automática

Más detalles

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013 - MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD Rev. 01- FEBRERO 2013 Software de diagnóstico de la seguridad de la información y autoimplantación

Más detalles

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib Manual de uso de la plataforma para monitores CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib [Manual de uso de la plataforma para monitores] 1. Licencia Autor del documento: Centro de Apoyo Tecnológico

Más detalles

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante Modulo 2. Inicio con Java Muchas veces encontramos en nuestro entorno referencias sobre Java, bien sea como lenguaje de programación o como plataforma, pero, que es en realidad Java?, cual es su historia?,

Más detalles

Gestión de Configuración del Software

Gestión de Configuración del Software Gestión de Configuración del Software Facultad de Informática, ciencias de la Comunicación y Técnicas Especiales Herramientas y Procesos de Software Gestión de Configuración de SW Cuando se construye software

Más detalles

Servidores Donantonio

Servidores Donantonio 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

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

Más detalles

DE VIDA PARA EL DESARROLLO DE SISTEMAS

DE VIDA PARA EL DESARROLLO DE SISTEMAS MÉTODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS 1. METODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS. El desarrollo de Sistemas, un proceso

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio). 1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

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

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE Técnicas de prueba El desarrollo de Sistemas de software implica la realización de una serie de actividades predispuestas a incorporar errores (en la etapa de definición de requerimientos, de diseño, de

Más detalles

Ingeniería de Software. Pruebas

Ingeniería de Software. Pruebas Ingeniería de Software Pruebas Niveles de prueba Pruebas unitarias Niveles Pruebas de integración Pruebas de sistema Pruebas de aceptación Alpha Beta Niveles de pruebas Pruebas unitarias Se enfocan en

Más detalles

DISEÑO DE FUNCIONES (TRATAMIENTOS)

DISEÑO DE FUNCIONES (TRATAMIENTOS) DISEÑO DE FUNCIONES (TRATAMIENTOS) Diseño Estructurado. Estrategias para Derivar el Diagrama de Estructura. Diseño de Módulos Programables. 1. DISEÑO ESTRUCTURADO El Diseño es el proceso por el cual se

Más detalles

El Proceso Unificado de Desarrollo de Software

El Proceso Unificado de Desarrollo de Software El Proceso de Desarrollo de Software Ciclos de vida Métodos de desarrollo de software El Proceso Unificado de Desarrollo de Software 1 Fases principales del desarrollo de software Captura de requisitos:

Más detalles

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador

Más detalles

O jeto de apre r ndizaje

O jeto de apre r ndizaje Herramientas de Gestión para Objetos de Aprendizaje. Plataforma AGORA Victor Hugo Menéndez Domínguez Universidad Autónoma de Yucatán, México :: mdoming@uady.mx Manuel Emilio Prieto Méndez Universidad de

Más detalles

OMG UML 2.0 Marcando un hito en el desarrollo de software Resumen Keywords Historia del Surgimiento

OMG UML 2.0 Marcando un hito en el desarrollo de software Resumen Keywords Historia del Surgimiento OMG UML 2.0 Marcando un hito en el desarrollo de software Resumen A través de este artículo se ofrece un panorama amplio y de alto nivel sobre la especificación y los diferentes diagramas del Lenguaje

Más detalles

Análisis del Sistema de Información

Análisis del Sistema de Información Análisis del Sistema de Información 1 1. Definición y objetivos análisis.(del gr. ἀνάλυσις). 1. m. Distinción y separación de las partesdeun todo hasta llegar a conocer sus principios o elementos. 2. m.

Más detalles

Anexo B. Comunicaciones entre mc y PC

Anexo B. Comunicaciones entre mc y PC Anexo B Comunicaciones entre mc y PC En este apartado se hará hincapié en los comandos para el manejo del módulo de comunicaciones desde el PC. Conociendo estos comando se podrá realizar una aplicación

Más detalles

SAQQARA. Correlación avanzada y seguridad colaborativa_

SAQQARA. Correlación avanzada y seguridad colaborativa_ SAQQARA Correlación avanzada y seguridad colaborativa_ Tiene su seguridad 100% garantizada con su SIEM?_ Los SIEMs nos ayudan, pero su dependencia de los eventos y tecnologías, su reducida flexibilidad

Más detalles

arquitectura que maneja. Encontraremos también los diferentes servidores que

arquitectura que maneja. Encontraremos también los diferentes servidores que 3.1 INTRODUCCIÓN A lo largo de este capitulo será descrito ArcIMS, así como las características y arquitectura que maneja. Encontraremos también los diferentes servidores que proporciona ArcIMS, además

Más detalles

SUPLEMENTO EUROPASS AL TÍTULO

SUPLEMENTO EUROPASS AL TÍTULO SUPLEMENTO EUROPASS AL TÍTULO DENOMINACIÓN DEL TÍTULO Técnico Superior en Desarrollo de Aplicaciones Web --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Más detalles

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2 Manual de software Dynamic Cloud 10/2014 MS-Dynamic_Cloud v1.2 ÍNDICE GENERAL 1. INTRODUCCIÓN... 2 1.1 Configuración mínima del PC... 2 2. INSTALAR DYNAMIC CLOUD... 3 2.1 Ejecutar Dynamic Cloud por primera

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

Más detalles

Roles y Características

Roles y Características dominio Roles y Características Una vez instalado Windows Server 2008 y configuradas algunas opciones básicas de Windows Server 2008 desde el Panel de Control o desde el Administrador del Servidor, las

Más detalles

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Antes de analizar lo que es un servidor Web y llevara a cabo su instalación, es muy importante identificar diferentes elementos involucrados

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

Sistema informatizado de Trazabilidad alimentaria

Sistema informatizado de Trazabilidad alimentaria Universdad de Oviedo Trazabilidad Alimentaria Según el reglamento europeo, todas las empresas del sector alimentario han de tener un control de la trazabilidad alimentaria. La forma más eficiente, segura,

Más detalles

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para Empresas en Crecimiento Portfolio SAP BusinessObjects Soluciones SAP para Empresas en Crecimiento Resumen Ejecutivo Inteligencia

Más detalles

GeneXus BPM Suite X. Última actualización: 01 de Setiembre de 2008

GeneXus BPM Suite X. Última actualización: 01 de Setiembre de 2008 Última actualización: 01 de Setiembre de 2008 Copyright Artech Consultores S. R. L. 1988-2008. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento

Más detalles

CONCLUISIONES Y RECOMENDACIONES

CONCLUISIONES Y RECOMENDACIONES CONCLUISIONES Y RECOMENDACIONES CONTENIDO 7.1 Verificación de Hipótesis 7.2 Conclusiones 7.3 Recomendaciones Mónica Cecilia Gallegos Varela - 145 - VERIFICACIÓN DE HIPÓTESIS La hipótesis planteada al inicio

Más detalles

Utilidades de la base de datos

Utilidades de la base de datos Utilidades de la base de datos Desde esta opcion del menú de Access, podemos realizar las siguientes operaciones: Convertir Base de datos Compactar y reparar base de datos Administrador de tablas vinculadas

Más detalles

Figure 7-1: Phase A: Architecture Vision

Figure 7-1: Phase A: Architecture Vision Fase A Figure 7-1: Phase A: Architecture Vision Objetivos: Los objetivos de la fase A son: Enfoque: Desarrollar una visión de alto nivel de las capacidades y el valor del negocio para ser entregado como

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

Descubra las novedades de EasyProf 3.0! Cambios en la filosofía de trabajo

Descubra las novedades de EasyProf 3.0! Cambios en la filosofía de trabajo Descubra las novedades de EasyProf 3.0! EasyProf 3.0 incorpora potentes mejoras y funcionalidades que le permitirá crear sus propios contenidos con mayor facilidad y rapidez. Con EasyProf 3.0 podrá crear

Más detalles

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta Configuración de una red con Windows Aunque existen múltiples sistemas operativos, el más utilizado en todo el mundo sigue siendo Windows de Microsoft. Por este motivo, vamos a aprender los pasos para

Más detalles

MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER ACTIVEX. Versión 4.0

MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER ACTIVEX. Versión 4.0 MANUAL DE INSTALACIÓN DEL COMPONENTE WEBSIGNER ACTIVEX Versión 4.0 1 Control Versión 1.0 Fecha: 01-07-2011 Modificaciones: Primera versión. Versión 2.0 Fecha: 22-09-2011 Modificaciones: Adaptado a websigner

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

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios INTRODUCCION Tema: Protocolo de la Capa de aplicación. FTP HTTP Autor: Julio Cesar Morejon Rios Qué es FTP? FTP (File Transfer Protocol) es un protocolo de transferencia de archivos entre sistemas conectados

Más detalles

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido

Más detalles

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación. Unidad II Metodología de Solución de Problemas 2.1 Descripción del problema (enunciado). Este aspecto nos indica describir de manera objetiva la realidad del problema que se esta investigando. En la descripción

Más detalles

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red. Comercio electrónico. (e-commerce) Las empresas que ya están utilizando la red para hacer comercio ven como están cambiando las relaciones de la empresa con sus clientes, sus empleados, sus colaboradores

Más detalles

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Maxpho Commerce 11 Gestión CSV Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Índice general 1 - Introducción... 3 1.1 - El archivo CSV... 3 1.2 - Módulo CSV en Maxpho... 3 1.3 - Módulo CSV

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

WINDOWS 2008 7: COPIAS DE SEGURIDAD

WINDOWS 2008 7: COPIAS DE SEGURIDAD 1.- INTRODUCCION: WINDOWS 2008 7: COPIAS DE SEGURIDAD Las copias de seguridad son un elemento fundamental para que el trabajo que realizamos se pueda proteger de aquellos problemas o desastres que pueden

Más detalles

Sistemas de Gestión de Calidad. Control documental

Sistemas de Gestión de Calidad. Control documental 4 Sistemas de Gestión de Calidad. Control documental ÍNDICE: 4.1 Requisitos Generales 4.2 Requisitos de la documentación 4.2.1 Generalidades 4.2.2 Manual de la Calidad 4.2.3 Control de los documentos 4.2.4

Más detalles

Arquitectura de sistema de alta disponibilidad

Arquitectura de sistema de alta disponibilidad Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los

Más detalles

Gestión y Desarrollo de Requisitos en Proyectos Software

Gestión y Desarrollo de Requisitos en Proyectos Software Gestión y Desarrollo de Requisitos en Proyectos Software Ponente: María Jesús Anciano Martín Objetivo Objetivo Definir un conjunto articulado y bien balanceado de métodos para el flujo de trabajo de Ingeniería

Más detalles

Ejemplos básicos de webmathematica para profesores

Ejemplos básicos de webmathematica para profesores Ejemplos básicos de webmathematica para profesores Cualquier cálculo hecho dentro Mathematica puede ser realizado usando webmathematica con dos limitaciones significativas. Primero, al usar webmathematica,

Más detalles

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón.

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón. 11. RECIBOS. Desde esta opción de Menú vamos a completar el proceso de gestión de los diferentes tributos, generando recibos, informes de situación, impresiones, etc. 11.1. GENERACIÓN DE RECIBOS. Una vez

Más detalles

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie. Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra

Más detalles

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto Introducción: Sobre casi cualquier tema del quehacer humano que se aborde, existen

Más detalles

Sesión No. 10. Contextualización: Nombre de la sesión: ClickBalance segunda parte PAQUETERÍA CONTABLE

Sesión No. 10. Contextualización: Nombre de la sesión: ClickBalance segunda parte PAQUETERÍA CONTABLE Paquetería contable 1 Sesión No. 10 Nombre de la sesión: ClickBalance segunda parte Contextualización: Como complemento de este sistema a las demás áreas operativas de una empresa como son recursos humanos,

Más detalles