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

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

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

Transcripción

1 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 2 MADS Group Dept. Computer Science University of A Coruña (Spain) lcastro@udc.es 17 de Septiembre 2013, Madrid

2 VoDKATV Interoud es una compañía gallega (A Coruña) nacida en Marzo de Desarrollo de software para entornos IPTV/OTT (hospitality, telcos, etc): middleware, STB y back-end. VoDKATV es el prinicipal producto de Interoud. VoDKATV es un middleware IPTV/OTT que ofrece una experiencia interactiva al usuario a través de su televisión, PC o dispositivo móvil (smartphones, tablets, dispositivos Android, etc)

3 Interoud Pruebas de unidad Pruebas de componente Servicios VoDKATV VoDKATV ofrece una serie de servicios al usuario: Videoclub. Canales IPTV. PVR (grabación). Navegación por Internet. Juegos. etc. Pruebas de integración Conclusiones

4 Pruebas Software implementado usando diferentes lenguajes de programación: Erlang, Java, C, JavaScript, etc. Las pruebas del software permiten validar el correcto funcionamiento de nuestros sistemas. Sin embargo, muchas veces las pruebas son omitidas. Para muchos programadores, las pruebas son: Un proceso tedioso Algo para lo que nunca sobra tiempo Buscar nuevas técnicas de prueba que puedan paliar estos inconvenientes.

5 Pruebas Participación en proyectos europeos relacionados con las pruebas del software: ProTest ( ): Property-Based Testing Prowess ( ): Property-Based Testing for Web Services El rol de Interoud (anteriormente LambdaStream) es proporcionar casos de estudio reales en donde se apliquen y evalúen las técnicas y aproximaciones para probar el software. Las nuevas técnicas están basadas en el uso de propiedades Property-Based Testing.

6 Property-Based Testing (PBT) Tradicionalmente el código fuente se prueba escribiendo casos de prueba manualmente: Example remove(i: Integer, L: List<Integer>):List<Integer> Se escriben casos de prueba y se comprueba si el resultado es el correcto: Caso de prueba lists:delete(i, L) I = 5, L = [5] lists:delete(5, [5]) = [] I = 0, L = [1, 2] lists:delete(0, [1, 2]) = [1, 2]......

7 Property-Based Testing (PBT) En Property-Based Testing, las pruebas se especifican como una serie de propiedades que el software debe cumplir. Las propiedades describen los requisitos del sistema a probar. Los casos de prueba no se escriben manualmente, sino que existen herramientas que generan casos de prueba a partir de las propiedades. Example remove(i: Integer, L: List<Integer>):List<Integer> La operación remove borra todas las ocurrencias del entero I de una lista de enteros L: {I, L} {int(), list(int())}, I / remove(i, L)

8 QuickCheck QuickCheck es una herramienta de Property-Based Testing, implementada en Erlang, que automatiza la generación, ejecución y evaluación de casos de prueba. prop_remove()->?forall({i, L}, {int(), list(int())}, not lists:member(i, lists:delete(i, L))). Caso de prueba lists:delete(i, L) Propiedad I = 0, L = [] lists:delete(0, []) = [] true I = 0, L = [0, 1] lists:delete(0, [0, 1]) = [1] true I = 1, L = [1,6,1] lists:delete(1, [1, 6, 1]) = [6,1] false Cuando QuickCheck encuentra un error, intenta obtener el caso mínimo que provoca el mismo error (shrinking): {1,[1,1]}

9 Test Driven Development Test Driven Development consiste en repetir iterativamente las siguientes fases: 1 Añadir una prueba simple. 2 Ejecutar las pruebas y comprobar que falla. 3 Implementar funcionalidad hasta pasar las pruebas.

10 Test Driven Development Example Implementar una función string que reemplace las ocurrencias de los elementos por valores concretos. [{"nombre", "Miguel"}]) = "Hola Miguel"

11 Test Driven Development El primer paso consiste en implementar una prueba para dicha función (todavía sin implementación). Example?assertEqual( "Hola Miguel", lstd_template:string( "Hola [{"nombre", "Miguel"}])).

12 Test Driven Development A continuación ejecutamos la prueba: Example test: string_test (module test )...*failed* ::error:undef in function lstd_template:string/2 called as ["nombre","miguel"]) in call from test: -string_test/0-fun-0- /1 in call from test:string_test/0 =================================================== Failed: 1. Skipped: 0. Passed: 0. error

13 Test Driven Development Finalmente implementamos la función para que pase la prueba: Example string(string, Subs) -> "Hola Miguel".

14 Test Driven Development Ejecutamos de nuevo la prueba: Example Test passed. ok

15 Test Driven Development Seguimos añadiendo más pruebas: Example?assertEqual( "Hola Miguel", lstd_template:string( "Hola [{"nombre", "Miguel"}])).?assertEqual( "Hola Laura", lstd_template:string( "Hola [{"nombre", "Laura"}])).

16 Test Driven Development Ejecutamos las pruebas y refinamos la implementación: Example test: string2_test...*failed* ::error:{assertequal_failed, [{module,test}, {line,15}, {expression, "lstd_template : string ( [ \"nombre\", \"Laura\" ] )"}, {expected,"hola Laura"}, {value,"hola Miguel"}]} in function test: -string2_test/0-fun-0- /1 =================================================== Failed: 1. Skipped: 0. Passed: 1. error

17 Test Driven Development + Property Based Testing Qué casos de prueba usar? Textos vacíos: "" Textos Textos con líneas en blanco: \n etc. Hay demasiados casos límites, incluso para módulos sencillos. Usando Property Based Testing, los casos de prueba son generados automáticamente.

18 Test Driven Development + Property Based Testing Example prop_string_empty_list() ->?FORALL( S, string(), S =:= lstd_template:string(s, [])). Caso de prueba String = Â/e", Subs = [] String = [], Subs = [] String = "U", Subs = [] String = "ðqa", Subs = []...

19 Test Driven Development + Property Based Testing specify requirement [incorrect specification] transform requirement into property test implementation against properties modify implementation [bug in property] [bug in implementation] [ok] [test fail] analyze failure [bug in specification]

20 Arquitectura de VoDKATV: integraciones Las integraciones entre componentes se realiza mayoritariamente a través de servicios web. Admin Core Backend AdminGUI Third-party app HTTP/XML VoDKATV-server HTTP/JSON EPG-server Java Asset-Manager HTTP/XML Client HTTP/JSON Erlang Device JDBC Database Third-party app Third-party app HED-STB PC Tablet

21 API de integración Los componentes provee de una API de integración. Uso de Property Based Testing para probar APIs de integración. En concreto, uso de máquinas de estado QuickCheck para especificar cómo debe funcionar el protocolo de comunicación.

22 API de integración Una API de integración está formada por una serie de operaciones: API = {op 1, op 2,..., op o } Cada operación op i : recibe una serie de parámetros devuelve un resultado tiene una serie de precondiciones que deben ser válidas para poder ejecutar la operación tiene una serie de postcondiciones que deben ser válidas después de ejecutar la operación

23 Servicios web Cuando la API de integración es un servicio web, cada operación es una URI. Petición: Método: GET, POST, PUT, HEAD, DELETE. Cabeceras (Accept-Language, Cookie, Date, etc). Parámetros. Respuesta: Cabeceras (Location, Pragma, Set-Cookie, etc). Cuerpo de la respuesta (XML, JSON).

24 Servicios web Por ejemplo: POST <?xml version="1.0" encoding="utf-8"?> <room> <roomid>room_id</roomid> <description>description</description> </room> GET GET GET

25 Pruebas de servicios web SUT QuickCheck State Machine WS Connector HTTP WS

26 La máquina de estados QuickCheck -behaviour(eqc_statem).... % Definir la lista de operaciones command(s) -> oneof( [{call,?module, createroom, [gen_room()]}] ++ [{call,?module, findroombyid, [gen_roomid()]}] ++ [{call,?module, findallrooms, []}] precondition(s, {call,?module, createroom, Room})->... % Normalmente true postcondition(s, {call,?module, createroom, Room}, R)-> % Chequear postcondición para la operación createroom createroom(room)-> % Invocar GET findroombyid(roomid)-> % Invocar GET

27 La máquina de estados QuickCheck QuickCheck genera automáticamente secuencias de operaciones cumpliendo las precondiciones. QuickCheck ejecuta las secuencias de operaciones, comprobando las postcondiciones para cada operación. GET POST <?xml version="1.0" encoding="utf-8"?> <room> <roomid>a</roomid> </room> GET GET GET GET GET GET

28 La máquina de estados QuickCheck Generación automática de la máquina de estados QuickCheck a partir de una descripción del servicio web a probar. WSDL + OCL Generator SUT QuickCheck State Machine WS Connector HTTP WS

29 Pruebas de integración Los componentes software suelen estar estructurados en diferentes módulos. Las interacciones entre los módulos también deben ser probada. QuickCheck module SUT <<use>> Other component

30 Pruebas de integración Con Property Based Testing es posible generar secuencias de operaciones que nos permitan comprobar que se están realizando las llamadas correctas en otros módulos. La prueba de integración no requiere el uso del componente real integrado: se evitan efectos colaterales. QuickCheck module SUT <<use>> Mock component

31 Conclusiones El uso de Property Based Testing nos permite probar más casos de prueba escribiendo menos código de pruebas. El uso de Test Driven Development junto con Property Based Testing nos permite aumentar la cobertura de nuestras pruebas. Uso de QuickCheck como herramienta de Property Based Testing. Uso de Erlang como lenguaje de especificación de pruebas.

32 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 2 MADS Group Dept. Computer Science University of A Coruña (Spain) lcastro@udc.es 17 de Septiembre 2013, Madrid

Demo. TDD desde Cero. Acceptance Test Driven Development. www.iwt2.org formacion@iwt2.org

Demo. TDD desde Cero. Acceptance Test Driven Development. www.iwt2.org formacion@iwt2.org Demo TDD desde Cero Acceptance Test Driven Development www.iwt2.org formacion@iwt2.org Objetivos Objetivos Conocer cómo desarrollar un sistema software combinando pruebas de aceptación y TDD. Aprender

Más detalles

Visual Studio Team System 2010

Visual Studio Team System 2010 Visual Studio Team System 2010 5. Pruebas Automatizadas con Visual Studio 6. Pruebas codificadas de interfaz de usuario 7. Pruebas Web de desempeño Identificación de candidatos para la automatización Visual

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

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

Aplicateca API Validador de Móviles Certificados SMS -

Aplicateca API Validador de Móviles Certificados SMS - Aplicateca API Validador de Móviles Certificados SMS - Manual de integración Versión 1.3 DIDIMO Servicios Móviles Contenido 1. Servicios SMS... 2 2. Créditos... 2 3. Credenciales... 2 4. Funcionalidades...

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

Tema 4: Tecnologías Web Java

Tema 4: Tecnologías Web Java Tema 4: Tecnologías Web Java Introducción Aplicación web Aplicación que corre en al menos un servidor y a la que el usuario accede desde un cliente de propósito general (ej.: navegador en un PC, teléfono

Más detalles

Service Oriented Architecture

Service Oriented Architecture Programación Concurrente y Distribuida Ingeniería en Informática Service Oriented Architecture José Carlos Cortizo Pérez josecarlos.cortizo@uem.es http://www.esp.uem.es/jccortizo D. Sistemas Informáticos

Más detalles

ANEXO 1. ANEXO TÉCNICO

ANEXO 1. ANEXO TÉCNICO ANEXO 1. ANEXO TÉCNICO DESCRIPCIÓN DEL CANAL DE COMUNICACIÓN PUNTOS DE ATENCIÓN DIGITAL, TRÁMITES Y SERVICIO- KIOSKOS El sistema de la aplicación móvil cuenta con una serie de funciones que deberán ser

Más detalles

Introducción al Proceso de Pruebas.

Introducción al Proceso de Pruebas. Introducción al Proceso de Pruebas. Javier Gutiérrez / javierj@us.es Introducción al proceso de pruebas Objetivo: repasar las ideas principales sobre las pruebas del software y, en concreto, las que usaremos

Más detalles

Aplicaciones Web. Introducción. David Cabrero Souto. Grupo MADS (http://www.grupomads.org/) Universidade da Coruña

Aplicaciones Web. Introducción. David Cabrero Souto. Grupo MADS (http://www.grupomads.org/) Universidade da Coruña Aplicaciones Web Introducción David Cabrero Souto Grupo MADS (http://www.grupomads.org/) Universidade da Coruña Ingredientes principales Arquitectura Cliente/Servidor Protocolos y estándares Web HTTP,

Más detalles

Capacitación Rational Funcional Tester

Capacitación Rational Funcional Tester Capacitación Rational Funcional Tester Clínica Alemana Santiago, 28 de abril de 2009 Introducción La presente exposición es sobre las principales características de Rational Functional Tester Describiendo

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

Tema 1 HTTP y aplicaciones web

Tema 1 HTTP y aplicaciones web Tema 1 HTTP y aplicaciones web Indice 1. HTTP para sitios web estáticos 2. HTTP básico para aplicaciones web 3. Aplicaciones AJAX 4. APIs REST 1.1. HTTP para sitios web estáticos Petición/respuesta HTTP

Más detalles

PRUEBAS FUNCIONALES Y DE ACEPTACIÓN

PRUEBAS FUNCIONALES Y DE ACEPTACIÓN PRUEBAS FUNCIONALES Y DE ACEPTACIÓN Por: Julián Camilo Ortega Muñoz Pontificia Universidad Javeriana 2013 INTRODUCCIÓN Este documento tiene como propósito demostrar que las funcionalidades de la aplicación

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 del Software. Pruebas. Pruebas en el PUD. Las pruebas del software. Tipos de prueba Estrategias de prueba

Ingeniería del Software. Pruebas. Pruebas en el PUD. Las pruebas del software. Tipos de prueba Estrategias de prueba Pruebas Pruebas en el PUD Las pruebas del software Diseño de casos de prueba Tipos de prueba Estrategias de prueba 1 2 Iteración en PUD Planificación de la Iteración Captura de requisitos: Modelo de casos

Más detalles

Sistema en Terreno SmartPhone Android

Sistema en Terreno SmartPhone Android Sistema en Terreno SmartPhone Android INTRODUCCION Sin lugar a dudas, los Smartphones y las Tablets Android se están convirtiendo en un aliado indispensable de nuestro trabajo cotidiano, ya que estos dispositivos

Más detalles

Tema 6: Comparativa CORBA/Servicios Web

Tema 6: Comparativa CORBA/Servicios Web Tema 6: Comparativa CORBA/Servicios Web Introducción Para establecer una comparativa, es preciso tener en cuenta CORBA se introdujo en 1991 y Servicios Web en el 2000 CORBA es una solución más madura y

Más detalles

Tema 4: Diseño e Implementación de la Capa Web

Tema 4: Diseño e Implementación de la Capa Web Tema 4: Diseño e Implementación de la Capa Web Índice 4.1 Tutorial de Servlets y JSPs 4.2 Tutorial de Tapestry 4.3 Caso de Estudio: Diseño e Implementación de la Capa Web de MiniBank 4.4 Caso de estudio:

Más detalles

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA Fuente: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html Por qué Java? TIOBE Index for March 2015 Fuente: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

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

Copyright. INSTRUCTIVO DE CONFIGURACIÓN DE PC s DE CLIENTES CASH MANAGEMENT

Copyright. INSTRUCTIVO DE CONFIGURACIÓN DE PC s DE CLIENTES CASH MANAGEMENT Copyright Este es un documento con DERECHOS DE AUTOR RESERVADOS. PROHIBIDA SU REPRODUCCIÓN O UTLIZACIÓN TOTAL O PARCIAL, sin autorización escrita del Gerente General de Banco General Rumiñahui S.A. NOTA

Más detalles

Si usted quiere desarrollar con Bluevia y Java, esto es lo primero que debe saber

Si usted quiere desarrollar con Bluevia y Java, esto es lo primero que debe saber LIMINAL Si usted quiere desarrollar con Bluevia y Java, esto es lo primero que debe saber Mario Linares Vásquez mario.linares@liminal-it.con Junio 30 de 2011 Network as a Service - NaaS Que información

Más detalles

Introducción al lenguaje Java Práctica Editor de Línea

Introducción al lenguaje Java Práctica Editor de Línea Introducción al lenguaje Java Práctica Editor de Línea (Diciembre 2006) 1 Introducción al lenguaje Java Práctica Editor de Línea Dpto. LSIIS. Unidad de Programación Normas y Objetivos Objetivo: el objetivo

Más detalles

Desarrollar el concepto del producto. Asignar requisitos de hardware y software. 1 1.1 1.2 2 2.1 2.2 3.. N

Desarrollar el concepto del producto. Asignar requisitos de hardware y software. 1 1.1 1.2 2 2.1 2.2 3.. N Fase de Análisis de Requerimientos Desarrollar el concepto del producto. Asignar requisitos de hardware y software. Realizar estudios de mercado. Sugerencia: www.anuies.mx para saber cuantas instituciones

Más detalles

En el presente capítulo se describe la programación del instrumento virtual y cómo

En el presente capítulo se describe la programación del instrumento virtual y cómo Capítulo 6. Instrumentación virtual En el presente capítulo se describe la programación del instrumento virtual y cómo éste controla el circuito de captura de señales, la llamada telefónica y escribe los

Más detalles

PROGRAMACIÓN PÁGINAS WEB CON PHP

PROGRAMACIÓN PÁGINAS WEB CON PHP PROGRAMACIÓN PÁGINAS WEB CON PHP Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript y la programación de la parte servidor con la tecnología

Más detalles

Documentación Técnica Conector

Documentación Técnica Conector Documentación Técnica Conector Torre Ejecutiva Sur Liniers 1324, piso 4 Montevideo Uruguay Tel/Fax: (+598) 2901.2929* Email: contacto@agesic.gub.uy www.agesic.gub.uy Indice 1 Introducción...4 2 Casos

Más detalles

Invocación por protocolo de aplicaciones nativas desde páginas Web

Invocación por protocolo de aplicaciones nativas desde páginas Web Invocación por protocolo de aplicaciones nativas desde páginas Web Qué es la invocación por protocolo? Es un funcionamiento universal que los sistemas operativos mantengan una serie de asociaciones entre

Más detalles

Sistemas de Información Administrativo - Universidad Diego Portales. Cátedra : Sistemas de Información Administrativa S.I.A.

Sistemas de Información Administrativo - Universidad Diego Portales. Cátedra : Sistemas de Información Administrativa S.I.A. Cátedra : Sistemas de Información Administrativa S.I.A. Escuela de Contadores Auditores Tema: Ingeniería del Software Estrategias de Pruebas Relator: Sr. Eduardo Leyton G Pruebas del Software (Basado en

Más detalles

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP Práctica 9 GESTIÓN Y UTILIZACIÓN DE REDES LOCALES Curso 2001/2002 TCP/IP: protocolo TCP Introducción Como se ha comentado en la práctica anterior, el protocolo UDP es muy sencillo de implementar, pero

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

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

TFM Comunicación, Redes y Gestión de Contenidos

TFM Comunicación, Redes y Gestión de Contenidos TFM Comunicación, Redes y Gestión de Contenidos Aplicación móvil hibrida para control de asistencia y servicio técnico a domicilio y gestión de partes de trabajo Autor: Patricia Paguay Lara Tutorizado

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

1. Descripción y objetivos

1. Descripción y objetivos Pruebas 1 1. Descripción y objetivos Las pruebas son prácticas a realizar en diversos momentos de la vida del sistema de información para verificar: El correcto funcionamiento de los componentes del sistema.

Más detalles

Diseño de aplicaciones móviles seguras en Android. alvaro.ospina@upb.edu.co aospina@gmail.com

Diseño de aplicaciones móviles seguras en Android. alvaro.ospina@upb.edu.co aospina@gmail.com Diseño de aplicaciones móviles seguras en Android alvaro.ospina@upb.edu.co aospina@gmail.com Agenda Que es Android? Historia? Arquitectura Herramientas Medidas de seguridad Que es Android? Pila de software

Más detalles

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms Patrones Patrones Es una solución reusable de problemas comunes. Los patrones solucionan problemas que existen en muchos niveles de abstracción. desde el análisis hasta el diseño y desde la arquitectura

Más detalles

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

Desarrollo de apps para móviles Android. Entorno de desarrollo

Desarrollo de apps para móviles Android. Entorno de desarrollo Desarrollo de apps para móviles Android Entorno de desarrollo Entorno de desarrollo Las aplicaciones Android van a ser implementadas en Java usando Android SDK. El software necesario para realizarlas es

Más detalles

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

INSTALACIÓ N A3ERP. Informática para empresas INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS Página 1 de 20 INSTALACIÓ N A3ERP INTRODUCCIÓN La instalación de a3erp v9 ha sufrido una trasformación importante respecto a sus versiones anteriores. Cualquier instalación exige la existencia de un pc

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

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

Definiciones. Tema 21_Módulos Menú 1

Definiciones. Tema 21_Módulos Menú 1 Definiciones Un menú es una lista de opciones o de órdenes que forman parte de un mismo título, mediante los cuales se podrán seleccionar determinadas operaciones de la aplicación. El conjunto de todos

Más detalles

Introducción a la extensión de scripting en gvsig 2.0

Introducción a la extensión de scripting en gvsig 2.0 Introducción a la extensión de scripting en gvsig 2.0 2012 gvsig Association Este documento se distribuye con la licencia Creative Commons 1 2 Índice de contenido 1 Introducción... 3 Instalación de la

Más detalles

APACHE 2. Pablo Allietti pablo@lacnic.net Mérida Venezuela Octubre 2003. WALC - 2003 Merida Venezuela

APACHE 2. Pablo Allietti pablo@lacnic.net Mérida Venezuela Octubre 2003. WALC - 2003 Merida Venezuela APACHE 2 Pablo Allietti pablo@lacnic.net Mérida Venezuela Octubre 2003 Introducción Un Servidor es un computador que brinda servicios a otros equipos (clientes) mediante requerimientos Un Servidor WEB

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

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

Qué son los Web Services?

Qué son los Web Services? III. 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: WSDL 3.3. Protocolo: SOAP 3.4. Registro de servicios:

Más detalles

Portafolio de servicios

Portafolio de servicios Portafolio de servicios Calle 613 No. 175 Oficina J, Col. Aragón 4ª y 5ª Sección, México, D.F. Teléfonos: 63.85.75.55 y 63.83.06.37 www.aztecsoluciones.com Aztec Soluciones Tecnológicas, S.A. de C.V. es

Más detalles

Generador de casos de prueba genético

Generador de casos de prueba genético Generador de casos de prueba genético Álvaro Galán Piñero Ingeniería Técnica en Informática de Sistemas, Universidad de Cádiz 24 de Septiembre 2012 1 / 42 Índice 1 Motivación y contexto 2 Planificación

Más detalles

5.1 Introducción a Servicios Web

5.1 Introducción a Servicios Web 5.1 Introducción a Servicios Web Introducción Continuando con el ejemplo de intercambio de información de películas... => Actualmente ya no es necesario implementar la solución sugerida a mano Se han estandarizado

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

MÓDULO DE EXPANSIÓN DW-GSM. Manual de usuario. www.iddero.com 131212-01

MÓDULO DE EXPANSIÓN DW-GSM. Manual de usuario. www.iddero.com 131212-01 MÓDULO DE EXPANSIÓN DW-GSM Manual de usuario www.iddero.com 131212-01 TABLA DE CONTENIDOS 1 INTRODUCCIÓN... 3 2 CARACTERÍSTICAS PRINCIPALES... 3 3 INSTRUCCIONES DE USO... 3 3.1 Ejecución de acciones y

Más detalles

Sesión 17. Servicios web RESTful

Sesión 17. Servicios web RESTful Sesión 17. Servicios web RESTful Luisa Fernanda Rincón Pérez 2015-1 Qué vimos la sesión pasada? 1. Consumir servicio web SOAP desde JAVA 2. Consumir servicio web en PHP 3. Exponer servicio web en PHP Qué

Más detalles

Las pruebas unitarias se crean en una carpeta raíz del symfony: Test/Unit/EjemploTest.php

Las pruebas unitarias se crean en una carpeta raíz del symfony: Test/Unit/EjemploTest.php Pruebas Unitarias Las pruebas unitarias realizadas para la aplicación Courier UCAB fueron desarrolladas para probar las reglas del negocio del sistema; las cuales consisten en las pruebas de los métodos

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

CENTRO DE CONTACTO CON EL CLIENTE MÓDULO DE GESTIÓN DE ACTIVIDADES E INTERACCIONES

CENTRO DE CONTACTO CON EL CLIENTE MÓDULO DE GESTIÓN DE ACTIVIDADES E INTERACCIONES CENTRO DE CONTACTO CON EL CLIENTE MÓDULO DE GESTIÓN DE ACTIVIDADES E INTERACCIONES El asesor comercial tiene como principal misión mantener un contacto personalizado con sus clientes potenciales y actuales.

Más detalles

Red de Recargas Centro de Clearing

Red de Recargas Centro de Clearing Red de Recargas Centro de Clearing Introducción RdR es la Red de Recargas de tarjetas inteligentes para el transporte de viajeros diseñado por Busmatick El sistema RdR cuenta en la actualidad con más de

Más detalles

Servicio de interfaces gráficas para entornos distribuidos. Autor: Sergio de Mingo Gil Tutor: Francisco J. Ballesteros

Servicio de interfaces gráficas para entornos distribuidos. Autor: Sergio de Mingo Gil Tutor: Francisco J. Ballesteros Servicio de interfaces gráficas para entornos distribuidos Autor: Sergio de Mingo Gil Tutor: Francisco J. Ballesteros Índice Introducción Objetivos Metodología y requisitos Servidor de widgets Servidor

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

E-Government con Web Services

E-Government con Web Services E-Government con Web Services Fernando Leibowich Beker * Uno de los grandes avances que produjeron las Nuevas Tecnologías de la Información y la Comunicación es la posibilidad de generar redes de computadoras

Más detalles

Tema 1. Conceptos fundamentales de los Sistemas Operativos

Tema 1. Conceptos fundamentales de los Sistemas Operativos Tema 1. Conceptos fundamentales de los Sistemas Operativos 1. Introducción a los Sistemas Operativos. 1. Concepto de Sistema Operativo. Niveles del software. 2. Funciones principales de un Sistema Operativo.

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

13es Jornades Catalanes d Informació i Documentació

13es Jornades Catalanes d Informació i Documentació 3es Jornades Catalanes d Informació i Documentació VII Jornada de Documentació Audiovisual Dispositius mòbils i serveis d internet: estat de l art Ramón de Cózar ramon.decozar@dnovae.com ÍNDICE INTRODUCCIÓN:

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

MICROSITIOS. Perfiles

MICROSITIOS. Perfiles MICROSITIOS Perfiles API para el consumo de servicios encargados de la creación, visualización, edición, eliminación y demás operaciones sobre los perfiles de usuarios de Metaportal. METAPORTAL 18/07/2014

Más detalles

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO UNIVERSIDADE DA CORUÑA Departamento de Tecnoloxías da Información e as Comunicacións LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO PRÁCTICA 4: Implementación de un Cliente de Correo

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

Unidad II. Interfaz Grafica

Unidad II. Interfaz Grafica Clase:004 1 Unidad II Interfaz Grafica Basado en https://developer.apple.com/library/ios/#referencelibrary/gettingstar ted/roadmapios/chapters/introduction.html 2 Agenda Desarrollo de Apps para IOS. Diseño

Más detalles

Tutorial BMS Server Studio UDP

Tutorial BMS Server Studio UDP Tutorial BMS Server Studio UDP ÍNDICE Página 0. Introducción...3 1. Configuración del puerto UDP...4 2. Ejemplos...6 2.1 Configuración manual...6 2.1.1 Configuración SocketTest...6 2.1.2 Configuración

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

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO En la actualidad la mayoría de las grandes empresas cuentan con un sin número de servicios que ofrecen a sus trabajadores y clientes. Muchos de estos servicios

Más detalles

INSTALACIÓN A3ERP INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS

INSTALACIÓN A3ERP INTRODUCCIÓN CONSIDERACIONES GENERALES DE LA INSTALACIÓN PAQUETES DE INSTALACIÓN PREDEFINIDOS INSTALACIÓN A3ERP INTRODUCCIÓN La instalación de a3erp v9 ha sufrido una trasformación importante respecto a sus versiones anteriores. Cualquier instalación exige la existencia de un pc al que le asignaremos

Más detalles

Creación de materiales didácticos Aplicaciones para dispositivos móviles Lección 4

Creación de materiales didácticos Aplicaciones para dispositivos móviles Lección 4 Creación de materiales didácticos Aplicaciones para dispositivos móviles Lección 4 Bases de datos Índice de contenido Introducción...3 Bases de datos locales: TinyDB... 4 Compartir datos: TinyWebDB...

Más detalles

4 Pruebas y análisis del software

4 Pruebas y análisis del software 4 Pruebas y análisis del software En este capítulo se presentan una serie de simulaciones donde se analiza el desempeño de ambos sistemas programados en cuanto a exactitud con otros softwares que se encuentran

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 WebService para:

Especificación WebService para: Especificación WebService para: Bandeja de salida Carga masiva Consulta de reportes Bogotá, Diciembre 2010 Modelo Unico de Ingresos, Servicio y Control Automatizado Contenido Procedimiento y Especificación

Más detalles

Comunicación entre procesos

Comunicación entre procesos Comunicación entre procesos Patrones de comunicación Comunicación cliente-servidor En la que los mensajes de petición y respuesta proporcionan la base para la invocación remota de métodos o de procedimientos.

Más detalles

Tema: Detección de billetes con OpenCV en Android.

Tema: Detección de billetes con OpenCV en Android. TRABAJO FINAL PARA APROBACION DEL CURSO DE POSTGRADO: INTRODUCCION AL PROCESAMIENTO DIGITAL DE IMAGENES. UN ENFOQUE TEORICO - PRACTICO UTILIZANDO OPEN CV. FACULTAD DE INGENIERÍA. 2013. Autor: Vera, José

Más detalles

Muestra de solicitud para una propuesta de un conjunto de aplicaciones de Gestión de Procesos de Negocio KIT DE HERRAMIENTAS DEL COMPRADOR DE BPMS

Muestra de solicitud para una propuesta de un conjunto de aplicaciones de Gestión de Procesos de Negocio KIT DE HERRAMIENTAS DEL COMPRADOR DE BPMS KIT DE HERRAMIENTAS DEL COMPRADOR DE BPMS Muestra de solicitud para una propuesta de un conjunto de aplicaciones de Gestión de Procesos de Negocio Parte 1 del kit completo de herramientas del comprador

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

Intel Learning Series Theft Deterrent Sistema disuasivo de robos y administrador de activos

Intel Learning Series Theft Deterrent Sistema disuasivo de robos y administrador de activos Intel Learning Series Theft Deterrent Sistema disuasivo de robos y administrador de activos Cómo usar? 1. Inicio de sesión Para iniciar sesión en el servidor de theft deterrent se debe teclear en el navegador

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

Ayuda Aplicación SIGI

Ayuda Aplicación SIGI Ayuda Aplicación SIGI Versión 1.0 Autor Secretaría General Técnica Fecha Inicio 17/03/2013 12:33:00 Fecha último cambio 19/03/2013 11:38:00 Fecha: 19/03/2013 Página 1 de 17 Índice 1. PRESENTACIÓN 3 2.

Más detalles

Tema 5: Integración de Datos Distribuidos

Tema 5: Integración de Datos Distribuidos Tema 5: Integración de Datos Distribuidos Integración de Datos Distribuidos El problema de la integración de datos distribuidos consiste en integrar datos de fuentes distribuidas, heterogéneas y posiblemente

Más detalles

MantSoft AE. Método para el mantenimiento de Software de Alhambra-Eidos. Gestión de incidencias en el mantenimiento correctivo.

MantSoft AE. Método para el mantenimiento de Software de Alhambra-Eidos. Gestión de incidencias en el mantenimiento correctivo. MantSoft AE Método para el mantenimiento de Software de Alhambra-Eidos Gestión de incidencias en el mantenimiento correctivo. Introducción Este documento describe el tratamiento específico que se le da

Más detalles

Curso PHP Módulo 1 R-Luis

Curso PHP Módulo 1 R-Luis Lenguaje PHP Introducción Archivos HTML y PHP: Crear un archivo php es tan sencillo como cambiarle la extensión a un archivo html, por ejemplo podemos pasar de index.html a index.php sin ningún inconveniente.

Más detalles

WEB APP VS APP NATIVA

WEB APP VS APP NATIVA WEB APP VS APP NATIVA Agosto 2013 Por Jesús Demetrio Velázquez 1 Ya decidió hacer su aplicación en Web App o App Nativa? Debido a que surgieron varias preguntas relacionadas con nuestro artículo Yo Mobile,

Más detalles

Lenguaje Java Avanzado

Lenguaje Java Avanzado Lenguaje Java Avanzado Sesión 4: Pruebas con JUnit 2012-2013 Depto. Ciencia de la Computación e IA Índice Introducción a JUnit Implementación de las pruebas Ejecución de pruebas Pruebas con excepciones

Más detalles

Algoritmos y Diagramas de Flujo 2

Algoritmos y Diagramas de Flujo 2 Algoritmos y Diagramas de Flujo 2 Programación Java NetBeans 7.0 RPC Contenido 2.1 Algoritmo...1 Fase de creación de un algoritmo...1 Herramientas de un algoritmo...2 2.2 Diagrama de Flujo...2 Símbolos

Más detalles

Práctica 7. Pruebas. Introducir conceptos básicos de pruebas unitarias en sistemas orientados a objetos.

Práctica 7. Pruebas. Introducir conceptos básicos de pruebas unitarias en sistemas orientados a objetos. Objetivos Introducir conceptos básicos de pruebas unitarias en sistemas orientados a objetos. Material Necesario - Pruebas de caja negra con Junit. www.junit.org Viene integrado en Eclipse, pero al crear

Más detalles

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva de la solución SAP SAP Technology SAP Afaria Gestión de la movilidad empresarial para mayor ventaja competitiva Simplificar la gestión de dispositivos y aplicaciones Simplificar la gestión de dispositivos

Más detalles

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3

Más detalles

Porque hacemos Testing? BY: ALFREDO ALVAREZ

Porque hacemos Testing? BY: ALFREDO ALVAREZ Porque hacemos Testing? BY: ALFREDO ALVAREZ Base para nuestra conversación Cual es el trabajo de un tester? En el pasado-> Mantener la calidad y encontrar Bugs. En estos días-> Mantener el equipo al tanto

Más detalles

Introducción a las Redes de Computadoras. Obligatorio 2 2011

Introducción a las Redes de Computadoras. Obligatorio 2 2011 Introducción a las Redes de Computadoras Obligatorio 2 2011 Facultad de Ingeniería Instituto de Computación Departamento de Arquitectura de Sistemas Nota previa - IMPORTANTE Se debe cumplir íntegramente

Más detalles

Presentación de BlackBerry Collaboration Service

Presentación de BlackBerry Collaboration Service Presentación de Collaboration Service Presentación de Collaboration Service Remitente Servidor de mensajería instantánea Collaboration Service Dispositivo con 10 Destinatario 1 de 13 Presentación de Collaboration

Más detalles

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades: Propósito del prototipo: Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades: 1º. Mostrar noticias y eventos propios del grupo de personas que administren la Web.

Más detalles