Continuous Integration Contenido
|
|
|
- Marcos Gallego Villalobos
- hace 10 años
- Vistas:
Transcripción
1 Continuous Integration Contenido Continuous Integration... 1 Principios del Manifiesto Ágil... 3 Concepto... 3 Qué es integrar?... 3 Qué implica construir?... 3 Entonces, Qué es la Integración Continua?... 3 Factores Críticos de Éxito... 4 Prácticas de Integración Continua... 5 Mantener un único repositorio de fuentes Hacer el Build Auto-Testeable... 5 Automatizar la construcción del Build... 5 Commits diarios a la línea base... 6 Cada commit implica un build en la línea base en una máquina de Integración... 6 Mantenga el build rápido... 7 Probar en un ambiente clonado del entorno de producción... 9 Debe ser fácil para cualquier persona conseguir el último ejecutable... 9 Todo el mundo debe poder ver lo que está sucediendo... 9 Automatizar el despliegue... 9 Frecuencia de integración... 9 Builds Manuales y Servidores de Integración Continua Build Manual - El Script de Integración Continua Integración Síncrona Servidores de Integración Continua Integración Asíncrona En resumen Beneficios de la Integración Continua Reduce el riesgo de fallas en la integración sobre la línea base Integraciones frecuentes Conocimiento del estado de la aplicación (qué funciona, qué no funciona, bugs)... 12
2 Menos bugs Los bugs se encuentran y corrigen más rápido Reducir procesos repetitivos Establecer mayor confianza en el producto Aclarando Conceptos Integración Continua (Continuous Integration) Entrega Continua (Continuous Delivery) Despliegues Continuos (Continuous Deployment) Métricas Herramientas Herramienta Plataforma Build Sistema de control de versiones Disparadores del build Herramientas de prueba Servicios de notificación RTC y el Soporte a la Integración Continua Mantener un único repositorio de fuentes Automatizar la construcción del Build Hacer el Build Auto-Testeable Commits diarios a la línea base Cada Commit implica un build en la línea base en una máquina de Integración Mantenga el build rápido Probar en un ambiente clonado del entorno de producción Debe ser fácil para cualquier persona conseguir el último ejecutable Todo el mundo debe poder ver lo que está sucediendo Automatizar el despliegue Opiniones, ejemplos y comentarios... 22
3 Principios del Manifiesto Ágil A continuación se mencionan dos de los principios ágiles que se deben tener en cuenta para entender porqué la integración continua es importante al hablar de metodologías de desarrollo ágiles. Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor. Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible. Concepto Qué es integrar? Podemos decir que integrar consiste colocar todo el código de la aplicación junto en un solo lugar previo a llevar a cabo un build. Qué implica construir? Construcción (Build): una construcción implica algo más que compilar, podría consistir en compilar, ejecutar pruebas, usar herramientas de análisis de código, desplegar... entre otras cosas. Un build puede ser entendido como el proceso de convertir el código fuente en software que funcione. Entonces, Qué es la Integración Continua? La Integración Continua (Continuous Integration - CI) es una práctica de desarrollo de SW donde los miembros de un equipo integran su trabajo frecuentemente (por lo menos una vez al día al final del día), lo que lleva a múltiples integraciones por día. El término se comenzó al utilizar desarrollar software utilizando como proceso de desarrollo al conocido como Extreme Programming (programación extrema) el cual hace mención a la integración continua dentro de sus doce prácticas ( Cada integración es verificada por un build que puede ser llevado a cabo de manera automática o manual (diferencia que veremos más adelante siendo cada uno más o menos adecuado dependiendo del contexto) pero nunca dejando de lado el hecho que debe incluir la ejecución de los tests con el objetivo de detectar errores de integración lo más rápido posible. Muchas veces esta práctica suele ser difícil de implementar por la resistencia de los miembros del equipo de trabajo. Sin embargo, una vez que la misma se va incorporando como una parte propia de las tareas de los miembros del equipo, hace que resulte mucho más fácil de lo que la teoría dice. Es importante tener en cuenta que para que la integración continua pueda ser implementada de manera exitosa es necesario que todos los miembros del equipo estén de acuerdo en trabajar en el desarrollo de SW llevando a cabo esta práctica. Cuando se logra la implementación de esta práctica en un ambiente de trabajo estamos en condiciones de cumplir otro objetivo íntegramente relacionado con el desarrollo ágil: estar listos para entregar SW que funcione.
4 Para poder lograr esto es necesario que removamos uno de los principales problemas a la hora de dar por finalizado un desarrollo: Las demoras existentes entre que se termina el desarrollo y la aplicación realmente puede liberarse. Para ello debemos actuar sobre las causas de este problema, como realizar el merge de todas las partes, crear el instalador, cargar la base de datos, etc. Factores Críticos de Éxito A continuación se mencionan los Factores Críticos de Éxito para poder implementar esta práctica: Acuerdo entre los miembros del equipo Solución rápida de builds erróneos Build Automático y Auto-Testeable Builds erróneos esporádicos Acuerdo entre los miembros del equipo: los miembros del equipo deben asentir el trabajar realizando commits frecuentemente y que cada vez que los realizan el build no debe romperse. Si el build se rompe, deben estar conscientes que deben arreglarlo. Acuerdo: De ahora en adelante nuestro código del repositorio va a compilar exitosamente y va a pasar las pruebas. Build Automático y Auto-Testeable: los builds que se llevan a cabo después de cada integración de código deben ejecutarse automáticamente y deben incluir pruebas, a fin de detectar y resolver errores rápidamente. Builds erróneos esporádicos: los builds con errores todavía van a seguir existiendo (porque todos somos seres humanos y cometemos errores), pero van a ser poco frecuentes y cada vez la cantidad de builds fallados será menor. Solución rápida de builds erróneos: debido a que los commits se realizan más frecuentemente y por lo tanto también las integraciones y los builds, cuando hay errores se pueden resolver más rápidamente porque se encuentran más acotados.
5 Prácticas de Integración Continua Mantener un único repositorio de fuentes. Se debe hacer foco en mantener la información del proyecto, sea cual fuere, dentro de un único repositorio común. Para la práctica de integración continua lo que interesa principalmente es que el código fuente se encuentre en el repositorio y sea actualizado constantemente. Sin embargo, tengamos en cuenta que esta es una práctica que puede llevarse a cabo en cualquier proceso de desarrollo sea cual fuere, el cual podría involucrar la creación y uso de más elementos de trabajo. Además, en la actualidad existen muchas herramientas que permiten gestionar el repositorio. Hacer el Build Auto-Testeable Tradicionalmente existe un concepto en donde la tarea de construir el build consiste en compilar, linkear, agregar librerías, y todo aquello que sea necesario para que un programa se pueda ejecutar sin inconvenientes. Cuando esto se logra no quiere decir que el SW es correcto, solamente significa que está funcionando, pero hay una diferencia entre funcionar y funcionar correctamente (es decir, tener un build realmente exitoso). Para poder decir que tenemos un build exitoso es necesario que ejecutemos pruebas. Una buena manera para detectar errores rápida y eficientemente es incluir pruebas automatizadas en el proceso de construcción del build. Como todos sabemos, el testing no es perfecto, pero puede detectar una gran cantidad de errores (bugs), los cuales serán posteriormente corregidos antes de tener el build exitoso que tanto deseamos y que cumple con uno de los lineamientos de trabajar ágilmente. El aumento en la utilización de metodologías ágiles para el desarrollo de SW (como Programación Extrema (XP) y Test Driven Development (TDD)) ha dado un gran impulso a esta tarea de incorporar pruebas en la construcción de los build, pero no quiere decir que tengamos que practicar alguna de ellas (o ambas) para poder lograrlo. Una de las herramientas más utilizadas al trabajar con la creación de pruebas automáticas son las herramientas XUnit. XUnit es el nombre dado a la familia de frameworks de pruebas que se han vuelto ampliamente conocidos entre los desarrolladores. Automatizar la construcción del Build El objetivo principal es simplificar y agilizar la tarea de construcción de los builds. Debido a que a menudo las integraciones para llevar a cabo un build de manera manual pueden ser tediosas, complicadas y además insumir demasiado tiempo, sobre todo en proyectos de gran escala, es recomendable contar con entornos automatizados para llevar a cabo las compilaciones y que estas sean lanzadas con la ejecución de un simple script. A su vez, debemos tratar de que TODOS los aspectos referentes a la construcción de un build estén incluídos dentro de esta automatización (scripts de bases de datos, poblamiento de tablas, pruebas unitarias). De esta manera cualquiera debería de ser capaz de descargar el código fuente del repositorio, ejecutar un comando (referenciando al script) y tener el sistema andando.
6 Un punto importante a tener en cuenta es que deberíamos de llevar a cabo el armado de los builds en un ambiente separado y con las mismas características del ambiente de destino final de la aplicación. Esto suele no ser posible por lo que puede ser una buena alternativa la utilización de máquinas virtuales. La automatización del build es sumamente importante para poder trabajar con integración asíncrona. Commits diarios a la línea base La integración ronda principalmente alrededor de la comunicación. La integración permite a los desarrolladores decir a otros desarrolladores acerca de los cambios que han hecho. La comunicación frecuente permite a la gente a conocer más rápidamente los cambios que se desarrollan. El pre-requisito para que un desarrollador realice un commit a la línea principal (Base line Línea Base) es que pudo construir correctamente su código lo que incluye, por supuesto, superar las pruebas de compilación. Al hacer esto con frecuencia, los desarrolladores rápidamente se dan cuenta si hay un conflicto. Esta es la clave para solucionar rápidamente los problemas: encontrarlos rápidamente. Si los desarrolladores realizan commits seguido entonces los conflictos o problemas pueden ser detectados rápidamente y son más fáciles de resolver ya que no han ocurrido demasiados cambios. Aquellos conflictos que se quedan sin ser detectados durante semanas son muy difíciles de resolver. Cada commit implica un build en la línea base en una máquina de Integración Al hacer commits diaria y frecuentemente se obtienen builds frecuentes y exitosos, los cuales deberían estar testeados y pasados ya que el build debe ser auto testeable (Ver Práctica Hacer el Build Auto- Testeable). En la práctica, para poder lograr esto, es imprescindible que quien quiere llevar a cabo un commit actualice localmente el código de la aplicación y recompile. Luego, la compilación debe (idealmente) llevarse a cabo en una máquina destinada únicamente a fines de integración. El commit llevado a cabo sólo se considerará exitoso si el build (con sus tests) ha sido exitoso en este ambiente. Como hemos dicho, el desarrollador que está llevando a cabo el commit es el responsable de que el build sea exitoso en ese momento y por lo tanto es el responsable del mismo y debe supervisarlo y resolver cualquier conflicto para asegurar su éxito y estabilidad. Hay dos formas principales para asegurar el build: Hacer un build manual o Contar con un servidor de integración continua. El Build Manual es el más simple de describir. Esencialmente es similar a la construcción que un desarrollador hace en su ambiente local antes del commit al repositorio. El desarrollador va a la máquina de integración, luego de haber commiteado su código, comprueba la cabeza de la línea principal, actualiza el código en dicha PC (realiza un check out) y comienza a realizar el build. En la integración manual el desarrollador debe estar atento al progreso y si la compilación (build) es exitosa, entonces su tarea está completa y se considera como DONE la integración.
7 Un servidor de integración continua actúa como un monitor del repositorio. Cada vez que se finaliza un commit al repositorio, el servidor realiza automáticamente un check out en la PC de integración, inicia la construcción (build) y notifica a quien realizó el commit el resultado. Quien hizo el commit NO PUEDE CONSIDERAR COMO DONE esta tarea hasta que no recibe la notificación correspondiente - por lo general un correo electrónico. Más adelante se profundizan las ventajas y desventajas de cada uno de ellos. (Ver sección Builds Manuales y Servidores de Integración Continua) Como hemos dicho, el objetivo de la integración continua es encontrar problemas tan pronto como sea posible y para lograr esto es fundamental que si el build falla sea identificado o notificado (dependiendo de la técnica de integración utilizada) y corregido de inmediato. El punto de trabajar con integración continua es que siempre desarrollamos sobre una línea base estable. Mantenga el build rápido El punto de integración continua es proporcionar una retroalimentación rápida. Se dice que para lograr esto el tiempo ideal de compilación es de diez minutos. La idea de tener tiempos bajos para la construcción del build es ahorrar tiempo a los desarrolladores porque cada minuto menos de reducción es un minuto ahorrado para cada desarrollador. Sin embargo esta es una tarea difícil ya que el tiempo del build implica también la ejecución de pruebas, agregando más tiempo a la tarea de de construcción. El punto aquí está en encontrar el equilibrio entre tiempo y capacidad de detectar errores. Hay tres estrategias que se pueden implementar para mantener el build rápido: 1. Estrategia 1: tener 2 builds (Integración en etapas Síncrona y Asíncrona) Esta es una de las estrategias más utilizadas a la hora de cumplir con esta práctica y consiste en dos etapas: La primera etapa sería hacer las pruebas de compilación y de ejecución, que son las pruebas unitarias y de integración (de componentes, no de sistema) y algunas pruebas críticas que involucren poco o ningún acceso a datos. Estas pruebas pueden correr muy rápido, manteniendo el build dentro del tiempo ideal de diez minutos. La desventaja es que cualquier error que pueda existir relacionado con el acceso a datos no será encontrado. En la segunda etapa se ejecuta una suite diferente de pruebas que sí involucran el acceso a datos reales y además de pruebas asociadas al comportamiento de la aplicación. Esta suite podría llegar a tardar un par de horas en ejecutarse. Se trata de un build secundario que está separado del principal y que se ejecuta cuando se puede a partir del último ejecutable bueno surgido a partir del último build exitoso. Si el build secundario falla no es necesario detener todo, como sí lo sería en el caso del principal, pero el equipo sí debe arreglar los errores lo más rápido posible para evitar que se sigan propagando y que el impacto sea mayor. Puede ocurrir que lleve uno o dos días poder atender estos errores, dependiendo del estado del proyecto. Si esto ocurre, no es algo crítico, ya que quien falló fue el build secundario, pero se debe hacer lo posible por solucionar los errores rápidamente. De esta forma en esta etapa se pueden ejecutar pruebas más complejas como pruebas de performance, estabilidad, carga, etc. Debido a que
8 este build puede ejecutarse sin que el desarrollador que realizó el commit tenga que finalizar su finalización (a diferencia del primero) se suele decir que corre de manera asíncrona o que es un build asíncrono. Una aclaración importante a esta estrategia es que hay quiénes consideran que tener múltiples builds no es practicar integración continua, ya que uno de los objetivos es estar siempre listos para liberar software que funcione, y no podemos decir que nuestro producto está libre de errores y que podemos liberarlo cuando solamente ha superado exitosamente las pruebas del build rápido. (Ver Builds Manuales y Servidores de Integración Continua) 2. Estrategia 2: mejorar los test por etapas Una estrategia a considerar cuando se encuentran errores en el build secundario y no en el primario es agregar los tests que fallaron al build principal para asegurarse de que han sido corregidos y no tener que esperar a que el segundo build se ejecute, ya que como dijimos este build no se atiende de manera inmediata. 3. Estrategia 3: Agrupar de acuerdo al diseño Esta estrategia es la predominante cuando se habla de grandes grupos trabajando en un mismo producto. El grupo se divide en subgrupos que trabajan sobre diferentes módulos de la aplicación. En teoría, este tipo de modelo basado en la propiedad del código tiene responsabilidades e interfaces claramente definidas, que permiten a cada equipo trabajar en su propia área sin tener que preocuparse en la integración con el resto del producto. Sin embargo, la realidad indica que las aplicaciones nunca se comportan tal y como se espera y que las integraciones Sí fallan, por lo que la integración continua sigue siendo una buena alternativa para trabajar bajo esta estrategia. En este entorno, la integración continua se enfrenta a problemas asociados con grandes números de personas trabajando sobre la misma rama al mismo tiempo. Sin embargo, es posible dar a cada equipo su propia rama de integraciones locales sobre la cual cada equipo puede trabajar sin afectar a los demás equipos. Cada una de estas ramas se integra con la principal regularmente, por ejemplo cada dos horas. Esto reduce la cantidad de commits sobre la línea principal y por lo tanto la cantidad de integraciones. La desventaja que tiene esta estrategia es que se requiere que los módulos, los puntos de integración y las API estén claramente definidos, por lo que se requiere llevar a cabo el diseño de la aplicación por adelantado. Esto implica que el diseño no podrá ser modificado fácilmente y sabemos que no siempre se puede diseñar bien la primera vez y a veces estos diseños necesitan ser refinados. Esta desventaja es de sumo peso a la hora de tomar decisiones y es el principal motivo por el cual las organizaciones prefieren que el código sea de propiedad colectiva, y no de propiedad de equipos.
9 Probar en un ambiente clonado del entorno de producción El objetivo aquí es eliminar el riesgo asociado al entorno, ya que si los entornos son diferentes no estamos en condiciones de asegurar que lo que pasó en el entorno de pruebas será lo que sucederá (o no) en el entorno de producción. Sabemos que puede ser muy difícil e incluso hasta imposible tener ambientes clonados por cuestiones de costo. Debido a esto, una buena opción es utilizar máquinas virtuales para simular los ambientes. Debe ser fácil para cualquier persona conseguir el último ejecutable Una de las partes más difíciles del desarrollo de software es asegurarse de que se construye el software adecuado. Es muy difícil precisar lo que un cliente quiere de antemano y que esta especificación sea correcta es aún más difícil. Suele ser más fácil para las personas ver algo que no es del todo correcto y decir a partir de esto qué es lo que necesita más precisamente. Los procesos ágiles usan esta característica de los clientes para mejorar el producto bajo desarrollo. Es por esto que cualquiera que esté involucrado con un proyecto de software debe ser capaz de obtener la última versión ejecutable y ser capaz de ejecutarla a fines de: demostraciones, pruebas exploratorias, o simplemente para ver lo que ha cambiado esta semana. Todo el mundo debe poder ver lo que está sucediendo La integración continua se basa en la comunicación y es necesario que todo el mundo pueda ver fácilmente el estado del sistema y los cambios que se han hecho a él. Por ejemplo, cada día el grupo de control de calidad podría poner un color verde en el día si recibieron una versión estable que pasó las pruebas o un cuadrado rojo en caso contrario. Automatizar el despliegue Para trabajar con Integración Continua se necesitan múltiples entornos, uno para ejecutar las pruebas al realizar un commit sobre la línea base y uno o más para ejecutar las pruebas secundarias. Esto implica instalar ejecutables varias veces al día por lo que es una muy buena idea automatizar esta tarea. Con esto se logra u rápido despliegue en diferentes ambientes. Frecuencia de integración Como dijimos, uno de los objetivos de la integración continua es tener el código listo para entregar. Para ello necesitamos responder una pregunta: Cuán frecuentemente debemos integrar nuestro código? Lo cierto es que no hay una respuesta exacta para esta pregunta. Algunos dicen que lo ideal es integrar cada dos horas y que en el peor de los casos debemos integrar nuestro código una vez al día. Sin embargo, cuando empezamos a trabajar aplicando esta práctica, el peor de los casos es el mejor inicio. En mi opinión, este tiempo debería ser acordado entre los miembros del equipo considerando, al definir el mismo, las siguientes premisas: A Mayor tiempo sin integrar el código, Mayor es la probabilidad de tener conflictos y Mayor será el esfuerzo necesario para la resolución de los mismos. Mientras más frecuente se lleven a cabo las integraciones, lo más probable es las mismas sean triviales reduciendo la probabilidad de conflictos.
10 Sin embargo, tengamos en cuenta también que si las integraciones son demasiado frecuentes y hay muchas personas integrando (porque el equipo es grande) se puede llegar a formar una cola de espera de integración. Builds Manuales y Servidores de Integración Continua Cuando hablamos de ejecutar builds manuales, tarea conocida también como ejecutar el Script de Integración Continua, estamos hablando de un build en el cual el desarrollador lleva a cabo todas las acciones desde que sube su código al repositorio hasta que el build finaliza y ha verificado que el mismo está libre de errores, es decir, está confirmando que el build y las pruebas pasaron exitosamente antes de pasar a la siguiente tarea. Cuando hablamos de servidores de integración continua hacemos referencia a servidores que se encargan del proceso de armado del build, generación de ejecutables y ejecución de pruebas sin la presencia o control del desarrollador. Solamente basta con que este lleve a cabo un commit para que el servidor comience a realizar su trabajo. Mientras el desarrollador puede seguir adelante con su trabajo. Se suele decir que cuando ejecutamos el script estamos ejecutando una integración síncrona y cuando utilizamos servidores de integración, estamos llevando a cabo una integración asíncrona. Dicho esto, vamos a explicar de qué se trata cada uno de ellos en más detalle: Build Manual - El Script de Integración Continua Integración Síncrona Para ejecutar este tipo de integración necesitamos dos elementos: Pasos: 1. Una PC de integración 2. Un Token de integración Lo primero que tenemos que realizar es actualizar nuestro código con el que se encuentra en el repositorio. Para ello debemos: 1. Comprobar que el token integración está disponible. Si no lo está, otro miembro del equipo está haciendo commit de su código (checking in), por lo que debemos esperar hasta que termine. 2. Si el token está disponible lo tomamos y comenzamos a hacer check out (bajamos localmente el código) de los últimos cambios que se llevaron a cabo en el repositorio. No hay problemas si varios miembros del equipo realizan check out al mismo tiempo, pero nadie puede tomar el token hasta que terminemos de subir nuestro código y de integrarlo. Aquí puede suceder: a. Que ocurran conflictos cuando se hace el check out. En este caso deberás resolverlos (haciendo merge o lo que corresponda) y luego realizando el build en tu PC (incluyendo la ejecución de las pruebas). b. Que no existan conflictos (es posible) y que comencemos a realizar el build localmente (siempre incluyendo la ejecución de las pruebas) 3. Hacer check in del código (o commit).
11 Nota: 4. Ir a la máquina de integración, bajar los cambios y ejecutar el build (obviamente incluyendo las pruebas). Aquí puede suceder lo siguiente: a. Que el build falle en la máquina de integración, por lo que deberemos solucionar el problema antes de dar por finalizada la integración. b. Que el build sea exitoso, por lo que se considera que la integración ha finalizado y se debe de devolver el token de integración. Puede suceder que el build esté fallando en nuestra PC (ambiente local) a causa de alguna configuración que no tengamos seteada apropiadamente. Una alternativa para determinar el origen de la falla es hacer el build en la PC de integración para validar que efectivamente sea este el problema. Si no es un problema de configuración, como dijimos anteriormente, deberemos hacer un rollback para determinar la causa de los errores y resolverlos. Servidores de Integración Continua Integración Asíncrona La integración asíncrona requiere la utilización de una herramienta de CI (IC). Estas herramientas tienen la particularidad de no requerir que el build pase antes de que el código sea verificado. Como resultado, los errores que se encuentran en el build se propagan y provocan demoras. El mayor problema con la integración asíncrona es que tiende a resultar en builds rotos. Si se hace check in de código que no funciona y recién nos enteramos media hora o una hora más tarde, tendremos que interrumpir la tarea que estamos haciendo para arreglar el problema. Si alguien hizo check out de este código, entonces va a tener problemas. En resumen Manual o Síncrona 1. Check Out 2. Build 3. Chequear resultados 4. Check In 5. Check Out en la PC de Integración 6. Build 7. Chequear resultados Server o Asíncrona 1. Check Out Automático 2. Iniciar el build 3. Avisar al desarrollador (generalmente por mail) 4. Si hay errores, se deben resolver 5. Si no hay errores, se considerada terminada la integración Beneficios de la Integración Continua Reduce el riesgo de fallas en la integración sobre la línea base Al llevar a cabo esta práctica no queremos decir que no van a haber errores en las integraciones que llevemos a cabo, pero estamos reduciendo el mismo ya que la tendencia es integrar código que está funcionando, porque los builds y los tests pasaron exitosamente. Algunos de los riesgos que ayuda a mitigar esta práctica son: La falta de cohesión de software, despliegue Descubrimiento de defectos de última hora
12 Baja calidad del software La falta de visibilidad del proyecto Integraciones frecuentes Las integraciones frecuentes permiten llevar cabo otra práctica conocida como entregas frecuentes (continuous deployment), lo que permite poder entregar frecuentemente código al cliente para que sea validado y de esta manera poder recibir feedback respecto de si nuestro trabajo es lo que el espera. Un beneficio adicional es que nos permite estar en contacto con el cliente, lo cual es sumamente importante en entornos de desarrollo ágiles. Conocimiento del estado de la aplicación (qué funciona, qué no funciona, bugs) Nos permite conocer qué está funcionando, qué no y cuáles son los errores existentes. Aporta mayor visibilidad del estado del software. Algunas de las ventajas de conocer el estado de la aplicación son: Decisiones eficaces: Un sistema de CI puede proporcionar información JIT (Just In Time - justo a tiempo) sobre el estado del build y métricas de calidad. Algunos sistemas de CI también pueden mostrar la tasa de defectos y el estado de completitud de las funcionalidades a ser entregadas. Identificación de tendencias: tendencias en el éxito o el fracaso de construcción, calidad general y otra información del proyecto. Menos bugs Cuando integramos continuamente estamos ejecutando un set de pruebas que dijimos no debe arrojar errores. La reducción de los bugs está asociada a cuán buena sea la suite de pruebas que tenemos asociada al producto. Los bugs se encuentran y corrigen más rápido Debido a que integramos y ejecutamos las pruebas e inspecciones (de código) varias veces al día, hay una mayor probabilidad de que se descubran y reparen los defectos encontrados más rápidamente. Esto se debe a que es más acotado el espectro en el cual se debe buscar y corregir el mismo porque la cantidad de código modificado en cada integración es menor. Reducir procesos repetitivos Mediante la automatización podemos asegurar que en cada integración: El proceso se ejecuta de la misma manera cada vez. Se sigue un proceso ordenado. Por ejemplo, se ejecutan las inspecciones (análisis estático) antes de ejecutar los scripts de prueba. Esta automatización de los procesos permite a la gente dedicar su tiempo a resolver cuestiones más importantes y productivas relacionadas al desarrollo del producto de software. Genera software desplegable Al trabajar con esta práctica, y cumpliendo con los principios de Agile mencionados anteriormente, podemos estar en condiciones de entregar SW que funcione cuando nos lo soliciten, a fin de que el mismo sea validado de manera temprana y los defectos sean descubiertos y solucionados rápidamente.
13 Establecer mayor confianza en el producto Esto se debe a que el build se considera correcto si las pruebas estáticas y funcionales han sido superadas exitosamente y estas se ejecutan cada vez que alguien hace un commit al repositorio. Aclarando Conceptos Integración Continua (Continuous Integration) Builds frecuentes que pasan los tests. Problema: NO tener una PC de integración. Entrega Continua (Continuous Delivery) Esto significa que no solamente estamos integrando y compilando frecuentemente incluyendo la ejecución de las pruebas, sino también que estamos desplegando nuestro código frecuentemente en un ambiente de pruebas. Clave: Automatizar el despliegue. Despliegues Continuos (Continuous Deployment) La aplicación está lista para entregarse en el ambiente de producción Problema: Más riesgo porque se despliega en el ambiente de producción (o sea al cliente) Forma de Mitigación del riesgo: Incrementar la cantidad de pruebas sobre el código. Probablemente sea necesario combinar los dos tipos de integración. Nota: Esta distinción entre los tres conceptos tiene otras definiciones dependiendo del autor. A continuación cito una distinción realizada por Martin Fowler, la que otorga esta definición diferente a lo ya visto. El menciona que la definición anterior de Despliegues Continuos aplica para Entrega Continua, y redefine el concepto de Despliegues Continuos. De esta forma, las definiciones quedarían de la siguiente manera para los conceptos mencionados: Entrega Continua (Continuous Delivery) La aplicación está lista para entregarse en el ambiente de producción. Despliegues Continuos (Continuous Deployment) Cada build bueno es liberado a producción. Problema: Más riesgo porque se despliega en el ambiente de producción (o sea al cliente) Forma de Mitigación del riesgo: Incrementar la cantidad de pruebas sobre el código. Probablemente sea necesario combinar los dos tipos de integración. Métricas Entre las métricas que se suelen tomar de esta práctica se pueden identificar: Mantenibilidad
14 Extensibilidad Seguridad Fiabilidad Cumplimiento de estándares Tasa de errores Tests ejecutados exitosos Tests ejecutados fallidos Cantidad de builds exitosos Cantidad de builds fallidos Duplicidad de código Cantidad de líneas de código Complejidad ciclomática Cobertura de código Comentarios en el código Las métricas proporcionan visibilidad del estado del proyecto y la forma más sencilla de obtenerlas es a través de la utilización de una herramienta de integración continua.
15 Herramientas A pesar de que la integración continua es una práctica que no requiere de ninguna herramienta, es sumamente útil contar con un servidor de integración continua que nos ayude, como dijimos anteriormente, con la construcción automática de los builds y la ejecución de las pruebas contenidas en los mismos. A continuación se muestra un resumen de algunas de las herramientas más utilizadas. La fuente se obtuvo del siguiente informe: Continuous Integration - What companies expect and solutions provide Author: Georg Fleischer Contact: [email protected] Se comparó el mismo con información obtenida de los siguientes sitios que hacen referencia a diferentes herramientas utilizadas para integración continua, tanto pagas como no: El informe lista: herramienta, plataforma de instalación, como implementa los builds, sistema de control de versiones contra el cual puede funcionar, qué dispara la generación del build, formas de visualizar los resultados de las pruebas, notificación de los resultados. Herramienta
16 Plataforma Build
17 Sistema de control de versiones
18 Disparadores del build Herramientas de prueba
19 Servicios de notificación RTC y el Soporte a la Integración Continua Como dijimos anteriormente, existen varias herramientas que nos permiten llevar a cabo la integración continua. Una de estas herramientas es Rational Team Concert (en adelante RTC) que entre otras cosas ayuda a los equipos de desarrollo de software a implementar un sistema de integración continua. A continuación veremos como cada una de las prácticas que mencionamos anteriormente (ver Prácticas de Integración Continua) puede ser soportada por esta herramienta: Mantener un único repositorio de fuentes. RTC implementa un componente de control de código fuente que administra el código fuente, documentos y otros artefactos que un equipo crea. Un aspecto a destacar en la utilización de RTC es que permite el desarrollo simultáneo de múltiples versiones de artefactos compartidos, por lo que los equipos pueden trabajar en varias líneas (branches) de desarrollo al mismo tiempo. Automatizar la construcción del Build Se debe reducir el tiempo necesario para construir versiones automáticas a través del análisis de que ha cambiado respecto del build anterior con el fin de determinar que tiene que ser reconstruido.
20 RTC implementa un componente denominado Team Build, que proporciona apoyo para la automatización, monitoreo y conocimiento de los builds de un equipo. Este componente incluye un Build Engine y un conjunto de herramientas Ant. El kit de herramientas Ant puede realizar diversas operaciones como indicar el progreso del build, publicar los artefactos construidos, mantener logs de los builds y publicar los resultados del build y de los tests. Cabe aclarar que no sólo se pueden utilizar las herramientas de Ant, sino también otros lenguajes de scripting pueden ser considerados para integrarse con el Team Build. Hacer el Build Auto-Testeable RTC no es un IDE, por lo que no tiene las características para definir e implementar las pruebas unitarias. Sin embargo, su componente Team Build incluye soporte para la ejecución y el análisis de los resultados de los distintos frameworks de pruebas unitarias, como JUnit, NUnit, etc. Así los equipos de desarrollo serán capaces de ejecutar y comprobar los resultados de todas las pruebas unitarias del proyecto. Commits diarios a la línea base El componente de RTC que permite llevar a cabo los builds incluye una característica denominada construcción personal, la cual permite a un desarrollador de ejecutar un build en su propio espacio de trabajo (workspace) en lugar de la línea principal. El resto del equipo no será notificado de este tipo de construcciones. Cada Commit implica un build en la línea base en una máquina de Integración El componente Team Build de RTC permite a los desarrolladores (si tienen los permisos adecuados) solicitar la ejecución de un build.
21 Otra forma de llevar a cabo un build es que el mismo sea disparado automáticamente cuando se realiza un commit sobre el repositorio. Una tercera alternativa que RTC ofrece es integrar el código fuente y el Team Build basado en el concepto de acciones de seguimiento. Estas acciones de seguimiento son declaraciones lógicas que se ejecutan después de que un evento específico se ha producido en el servidor. Así la idea principal sería crear una acción de seguimiento cada vez que se hace un commit sobre el repositorio. RTC incluye un gran número de acciones de seguimiento ya incorporadas, pero pueden ser creadas algunas nuevas. Por último, una alternativa que también es utilizada es crear tareas programadas con RTC para que los builds sean disparados en una determinada frecuencia de tiempo. Mantenga el build rápido RTC no puede ayudar mucho en este aspecto. Lo que el Team Build puede hacer es proporcionar información para las áreas que provocan más demoras en el armado del build. Así se pueden detectar las posibles áreas a mejorar para futuras compilaciones. Probar en un ambiente clonado del entorno de producción El componente Team Build de RTC puede ser instalado en varios ambientes de manera simultánea y apuntar al mismo servidor de RTC. Debe ser fácil para cualquier persona conseguir el último ejecutable Como dijimos anteriormente, el componente Ant de RTC posee varias herramientas las cuales incluyen una serie de tareas, las que permiten ejecutar varias acciones cuando se lleva a cabo un build. Entre ellas hay dos que permiten al build publicar los artefactos. Estas son: son artifactlinkpublisher y artifactfilepublisher. Todo el mundo debe poder ver lo que está sucediendo RTC contiene un componente denominado Dashboard. Es un componente con una interfaz Web que provee información rápida respecto del estado del proyecto. Provee además la capacidad de poder hacer drill down de la información a fin de tener mayor nivel de detalle. Provee información respecto de todas las actividades incluidas en el build, historial de las ejecuciones, fecha de las ejecuciones de los builds, etc. RTC también provee un componente denominado Reporting, el cual provee reportes con información de la duración de un build, estado del build, errores en las pruebas que se ejecutaron como parte del armado del build, etc. Automatizar el despliegue Como dijimos anteriormente, RTC posee el componente Team Build, el cual puede ser instalado en múltiples ambientes y plataformas, todos apuntando al mismo servidor de RTC y con las funcionalidades que tiene incorporadas este componente podemos automatizar los despliegues.
22 Opiniones, ejemplos y comentarios 1. Muchos equipos encuentran que este enfoque conduce a reducir significativamente los problemas de integración y permite a un equipo desarrollar software cohesivo más rápidamente. 2. Comúnmente hay dos reacciones cuando se habla de esta práctica: a) Decir "Esto no va a funcionar acá y b) "Practicarlo (trabajar de esta manera) no hará mucha diferencia". Una vez que los equipos de trabajo comienzan a trabajar con esta práctica surge la tercera reacción, donde dicen: c) "Sí lo hacemos No podríamos no hacerlo". 3. Respecto del negocio Lo ideal es que el código en el repositorio está siempre listo para ser liberado, pero a pesar de que pueda ser técnicamente capaz llevar a cabo un release (casi libre de errores, con las pruebas pasadas, etc.), no siempre va a estar listo para ser liberado desde una perspectiva de negocios. 4. Para garantizar un build que esté siempre operativo debemos: Asegurarnos que lo que funciona en nuestra PC va a funcionar en la PC de cualquier miembro del equipo. Asegurarnos que nadie baje código para el que no se ha verificado que genere un build exitoso. 5. La práctica de integración continua representa un cambio en el proceso de construcción del software. Se pretende que la integración de los componentes, la cual es una tarea poco frecuente y muy dolorosa (porque lleva mucho tiempo y esfuerzo), sea simple y parte de las actividades diarias de un desarrollador. Esta práctica permite avanzar constantemente con pequeños pasos.
23 Referencias Link
Base de datos en Excel
Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de
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
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
GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES
GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. [email protected]
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
Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.
UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:
SÍNTESIS Y PERSPECTIVAS
SÍNTESIS Y PERSPECTIVAS Los invitamos a observar, a identificar problemas, pero al mismo tiempo a buscar oportunidades de mejoras en sus empresas. REVISIÓN DE CONCEPTOS. Esta es la última clase del curso.
MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD
MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...
http://www.informatizate.net
http://www.informatizate.net Metodologías De Desarrollo De Software María A. Mendoza Sanchez Ing. Informático - UNT Microsoft Certified Professional - MCP Analísta y Desarrolladora - TeamSoft Perú S.A.C.
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
Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net
2012 Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net Servinet Sistemas y Comunicación S.L. www.softwaregestionproyectos.com Última Revisión: Febrero
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.
Gestión de Oportunidades
Gestión de Oportunidades Bizagi Suite Gestión de Oportunidades 1 Tabla de Contenido CRM Gestión de Oportunidades de Negocio... 4 Elementos del Proceso... 5 Registrar Oportunidad... 5 Habilitar Alarma y
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.
Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual
Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los
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,
De la Integración Continua a la Entrega Continua
Febrero 2014 Eder Castro Lucas Arquitecto de soluciones en atsistemas De la Integración Entrega Continua Qué es la? La es una disciplina de desarrollo de software que hace uso de un conjunto de patrones
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
PRU. Fundamento Institucional. Objetivos. Alcance
PRU INSTRUCCIONES: a continuación se describe el flujo de trabajo correspondiente al área de procesos de PRUEBAS para el desarrollo de software, en el cual se debe apoyar para la ejecución de sus actividades;
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología
Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto
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
COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX
COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX En este manual se presenta el proceso de configuración de una Maquina Virtual en VirtualBox, que será utilizada para instalar un Servidor
Manual del Usuario. Sistema de Help Desk
Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos
Procesos Críticos en el Desarrollo de Software
Metodología Procesos Críticos en el Desarrollo de Software Pablo Straub AgileShift Imagine una organización de desarrollo de software que consistentemente cumple los compromisos con sus clientes. Imagine
NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE IGNACIO BAYUGAR
NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE IGNACIO BAYUGAR [email protected], i id [email protected] NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE El desarrollo ágil El nuevo rol de
Propiedad Colectiva del Código y Estándares de Codificación.
Propiedad Colectiva del Código y Estándares de Codificación. Carlos R. Becerra Castro. Ing. Civil Informática UTFSM. Introducción. n. En este trabajo se presentan específicamente dos prácticas de XP: Collective
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
Análisis y gestión de riesgo
Marco Dueñes Intriago María Cabrales Jaquez Resumen capitulo 6 Ingeniería del software Análisis y gestión de riesgo Estrategias de riesgo proactivas vs reactivas Una estrategia considerablemente más inteligente
Implementando un ERP La Gestión del Cambio
Artículos> Implementando un ERP - La Gestión del Cambio Artículo Implementando un ERP La Gestión del Cambio 1 Contenido Sumario Ejecutivo 3 Los sistemas ERP flexibilizan la gestión de la empresa y su cadena
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 [email protected] Dirección General de Presupuestos y Estadística Consejería de Hacienda
Curso Excel Básico - Intermedio
Curso Excel Básico - Intermedio Clase 4 Relator: Miguel Rivera Adonis Introducción Base de Datos: Definición de Base de Datos Ordenar datos Formulario Filtros Trabajar con Sub-Totales Validación de Datos
Operación 8 Claves para la ISO 9001-2015
Operación 8Claves para la ISO 9001-2015 BLOQUE 8: Operación A grandes rasgos, se puede decir que este bloque se corresponde con el capítulo 7 de la antigua norma ISO 9001:2008 de Realización del Producto,
Guía de uso del Cloud Datacenter de acens
guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar
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
Estándares para planes de calidad de software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008
Estándares para planes de calidad de software Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008 DIFERENCIA ENTRE PRODUCIR UNA FUNCION Y PRODUCIR UNA FUNCION
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
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
Testing. Tipos, Planificación y Ejecución de Pruebas
Testing Tipos, Planificación y Ejecución de Pruebas Contenido Definiciones del Testing de Software Objetivos, conceptos Tipos de Test Testing a-la RUP Rol del Testing en el proceso Artefactos Trabajadores
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
Práctica del paso de generación de Leads
Práctica del paso de generación de Leads La parte práctica de este módulo consiste en poner en marcha y tener en funcionamiento los mecanismos mediante los cuales vamos a generar un flujo de interesados
Analítica para tu Tienda Online
Analítica para tu Tienda Online Mide, analiza y actúa para mejorar tus resultados Índice 1. Qué es la analítica 2. Configura tu Tienda Online para utilizar tu herramienta de analítica 3. Métricas más habituales
Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina
Datos del autor Nombres y apellido: Germán Andrés Paz Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Correo electrónico: [email protected] =========0========= Introducción
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
En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.
1 de 18 Inicio Qué es un foro En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas. En el campus virtual, el foro es una herramienta
Mesa de Ayuda Interna
Mesa de Ayuda Interna Documento de Construcción Mesa de Ayuda Interna 1 Tabla de Contenido Proceso De Mesa De Ayuda Interna... 2 Diagrama Del Proceso... 3 Modelo De Datos... 4 Entidades Del Sistema...
Su Solicitud del Mercado de Seguros: Comprobación de identidad (ID) e inconsistencias en la información
Su Solicitud del Mercado de Seguros: Comprobación de identidad (ID) e inconsistencias en la información Cuando llene una solicitud para conseguir cobertura médica a través del Mercado de seguros, tendrá
Resumen del trabajo sobre DNSSEC
Resumen del trabajo sobre Contenido 1. -...2 1.1. - Definición...2 1.2. - Seguridad basada en cifrado...2 1.3. - Cadenas de confianza...3 1.4. - Confianzas...4 1.5. - Islas de confianza...4 2. - Conclusiones...5
MANUAL DE USUARIO APLICACIÓN SYSACTIVOS
MANUAL DE USUARIO APLICACIÓN SYSACTIVOS Autor Edwar Orlando Amaya Diaz Analista de Desarrollo y Soporte Produce Sistemas y Soluciones Integradas S.A.S Versión 1.0 Fecha de Publicación 19 Diciembre 2014
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
AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7
Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos
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
Aproximación local. Plano tangente. Derivadas parciales.
Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 004-005 Aproximación local. Plano tangente. Derivadas parciales. 1. Plano tangente 1.1. El problema de la aproximación
MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)
MANUAL DE AYUDA SAT Móvil (Movilidad del Servicio Técnico) Fecha última revisión: Abril 2015 INDICE DE CONTENIDOS INTRODUCCION SAT Móvil... 3 CONFIGURACIONES PREVIAS EN GOTELGEST.NET... 4 1. INSTALACIÓN
INSTRUCCIONES BÁSICAS DE ACCESO AL PORTAL DEL CLIENTE
Para poder acceder a la información como Cliente debe acceder a la Plataforma Digital y registrarse, tal como hacía hasta ahora, con su usuario y contraseña. Si no cuenta con sus datos de acceso, puede
Gestión de la configuración en el software (SCM) Ingeniería de software Eduardo Ferreira, Martín Solari
Gestión de la configuración en el software (SCM) Ingeniería de software Eduardo Ferreira, Martín Solari 1 Temario Definiciones Problemas del cambio Elementos de la configuración Actividades de SCM Identificación
Medias Móviles: Señales para invertir en la Bolsa
www.gacetafinanciera.com Medias Móviles: Señales para invertir en la Bolsa Juan P López..www.futuros.com Las medias móviles continúan siendo una herramienta básica en lo que se refiere a determinar tendencias
Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi
Gestión de Permisos Bizagi Suite Gestión de Permisos 1 Tabla de Contenido Gestión de Permisos... 3 Definiciones... 3 Rol... 3 Perfil... 3 Permiso... 3 Módulo... 3 Privilegio... 3 Elementos del Proceso...
Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica)
Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica) Servinet Sistemas y Comunicación S.L. www.softwaregestionsat.com Última Revisión: Octubre 2014 FUNCIONALIDADES SAT
Administración Colaborativa de Riesgos
Administración Colaborativa de Riesgos Introducción Después de varios años trabajando y dando consultoría en empresas de diferentes giros, llego a la conclusión de que la administración de los riesgos
INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas
INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas 1 INTRODUCCIÓN. Una visión global del proceso de creación de empresas Cuando se analiza desde una perspectiva integral el proceso de
1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE
MANUAL DE USUARIO DE ABANQ 1 Índice de contenido 1 ÁREA DE FACTURACIÓN......4 1.1 ÁREA DE FACTURACIÓN::PRINCIPAL...4 1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA...4 1.1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA::General...4
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
Analítica para tu web
Analítica para tu web Mide, analiza y actúa para mejorar tus resultados Índice 1. Qué es la analítica web 2. Configura webmaker para utilizar tu herramienta de analítica web favorita 3. Métricas más habituales
MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn
MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn Tegucigalpa M. D. C., Junio de 2009 Que es un CMS Un sistema de administración de contenido (CMS por sus siglas en ingles) es un programa para organizar
Mesa de Ayuda Interna
Mesa de Ayuda Interna Bizagi Suite Mesa de Ayuda Interna 1 Tabla de Contenido Mesa de Ayuda Interna... 3 Elementos del proceso... 5 Apertura del Caso... 5 Inicio... 5 Abrir Caso... 5 Habilitar Cierre del
Brindamos asesorías que involucran tecnología y personal calificado, estos hacen de DOCTUM su mejor aliado.
SOFTWARE DE GESTÓN Doctum sabe que es necesario entregar servicios que otorguen un valor agregado, sobre todo para la gestión documental de la empresa, lo que reduce los costos asociados a mano de obra
METODOLOGÍA PARA LA MEJORA Y DIGITALIZACIÓN DE TRÁMITES. Etapa 1: Diagnóstico Cómo es mi proceso actual?
METODOLOGÍA PARA LA MEJORA Y DIGITALIZACIÓN DE TRÁMITES Etapa 1: Diagnóstico Cómo es mi proceso actual? El primer paso para mejorar un trámite, ya sea con miras a digitalizarlo o solo para mejorarlo en
Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000
Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000 Informe 14 de marzo de 2014 Copyright 2014 20000Academy. Todos los derechos reservados. 1 Resumen ejecutivo Antes
MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO
MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO Fecha última revisión: Junio 2011 INDICE DE CONTENIDOS HERRAMIENTA DE APROVISIONAMIENTO... 3 1. QUÉ ES LA HERRAMIENTA DE APROVISIONAMIENTO... 3 HERRAMIENTA
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
10. El entorno de publicación web (Publiweb)
10. El entorno de publicación web (Publiweb) 10.1. Introducción El entorno de publicación Web es una herramienta que permite la gestión de nuestras páginas Web de una forma visual. Algunos ejemplos de
Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.
Apéndice C. Glosario A Actividades de coordinación entre grupos. Son dinámicas y canales de comunicación cuyo objetivo es facilitar el trabajo entre los distintos equipos del proyecto. Actividades integradas
Manejo de versiones 392
Manejo de versiones 392 El desarrollo de software es un trabajo en equipo y cierto grado de confusión es inevitable. No puedo reproducir el error en esta versión! Qué pasó con el arreglo de la semana pasada?
Manual para la utilización de PrestaShop
Manual para la utilización de PrestaShop En este manual mostraremos de forma sencilla y práctica la utilización del Gestor de su Tienda Online mediante Prestashop 1.6, explicaremos todo lo necesario para
Planificación en Team Foundation Server 2010
Planificación en Team Foundation Server 2010 Planificación y Seguimientos en Proyectos Agile con Microsoft Visual Studio Team Foundation Server 2010 Dirigido a: Todos los roles implicados en un proyecto
Resumen. Funcionamiento. Advertencia
Resumen Módulo: Librería: IMPEXP.DLL Acoplable a: FactuCont 5, versiones monopuesto y red Descripción: Permite exportar datos de documentos, clientes, proveedores y artículos en un solo fichero para poder
Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online
Guías _SGO Gestione administradores, usuarios y grupos de su empresa Sistema de Gestión Online Índice General 1. Parámetros Generales... 4 1.1 Qué es?... 4 1.2 Consumo por Cuentas... 6 1.3 Días Feriados...
Seminario de Informática
Unidad II: Operaciones Básicas de Sistemas Operativos sobre base Windows 11. Herramientas del Sistema INTRODUCCION Este apunte está basado en Windows XP por ser el que estamos utilizando en el gabinete
Capitulo 3. Desarrollo del Software
Capitulo 3 Desarrollo del Software 3.1 Análisis del sistema 3.1.1 Organización de la autopista virtual Para el presente proyecto se requiere de simular una autopista para que sirva de prueba. Dicha autopista
Creación y administración de grupos locales
Creación y administración de grupos locales Contenido Descripción general 1 Introducción a los grupos de Windows 2000 2 Grupos locales 5 Grupos locales integrados 7 Estrategia para utilizar grupos locales
La Pirámide de Solución de TriActive TRICENTER
Información sobre el Producto de TriActive: Página 1 Documento Informativo La Administración de Sistemas Hecha Simple La Pirámide de Solución de TriActive TRICENTER Información sobre las Soluciones de
Obteniendo más valor de su Sistema ERP
Artículo Obteniendo más valor de su Sistema ERP 1 Contenido Cómo obtener el máximo de su inversión en tecnología?... 3 Dónde estarán los Sistemas ERP en 2 años?... 3 Sistema ERP en la Empresa o en La Nube?...
SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO
SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO 1 Objetivo del Manual Elaborado por: Revisado por: Aprobado por: Fecha: 13/08/2015 Difusión: Información del Manual
Demo. TDD desde Cero. Acceptance Test Driven Development. www.iwt2.org [email protected]
Demo TDD desde Cero Acceptance Test Driven Development www.iwt2.org [email protected] Objetivos Objetivos Conocer cómo desarrollar un sistema software combinando pruebas de aceptación y TDD. Aprender
CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA. BizAgi Process Modeler
CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA BizAgi Process Modeler TABLA DE CONTENIDO PROCESO DE MESA DE AYUDA INTERNA... 3 1. DIAGRAMA DEL PROCESO... 4 2. MODELO DE DATOS... 5 ENTIDADES DEL SISTEMA...
Charlas para la Gestión del Mantenimiento Fernando Espinosa Fuentes
Charlas para la Gestión del Mantenimiento Fernando Espinosa Fuentes Conseguir una alta eficiencia de los activos es un reto importante ya que tiene un impacto significativo sobre los beneficios. Afecta
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
Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora
Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar
Volumen TECNOLOGÍA DE ADMINISTRACIÓN EMPRESARIAL SIMI EVOLUTION (9.0) Guía de usuario
Volumen 1 TECNOLOGÍA DE ADMINISTRACIÓN EMPRESARIAL SIMI EVOLUTION (9.0) Guía de usuario SISTEMA INTEGRADO DE MANEJO INMOBILIARIO Guía administración módulo CALLCENTER Tecnología de Administración Empresarial
Semana 12. Instalación de antivirus. Semana 12. Empecemos! Qué sabes de...? El reto es... Instalación de antivirus
Empecemos! Queridos participantes, en esta semana aprenderemos sobre la función de un programa antivirus, de manera que puedas darle la importancia que amerita y utilizarlo sin complicación alguna. Simplemente
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
REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP
REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP Visual Sale posee módulos especializados para el método de ventas transaccional, donde el pedido de parte de un nuevo cliente
Manual de operación Tausend Monitor
Manual de operación Tausend Monitor Luego de haber realizado satisfactoriamente el proceso de instalación, al iniciar el programa le aparecerá la siguiente ventana: El usuario principal y con el primero
ANEXO : PERFILES. Guía de Comunicación Digital para la Administración General del Estado. ANEXO PERFILES
ANEXO : PERFILES Guía de Comunicación Digital para la Administración General del Estado. ANEXO PERFILES ANEXO: PERFILES. 3 1. REQUISITOS ANTES DE TENER EL SITIO WEB. 4 1.1 TOMA DE REQUISITOS. 4 1.2 ANÁLISIS
3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE
3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE Software Configuration Management (SCM) es una disciplina de la Ingeniería de Software que se preocupa de [Ber92] [Ber84] [Bou98] [Mik97]: Identificar y documentar
DECLARACIÓN DE PRIVACIDAD DE FONOWEB
DECLARACIÓN DE PRIVACIDAD DE FONOWEB Fonoweb se compromete a respetar su privacidad y la confidencialidad de su información personal, los datos de las comunicaciones y el contenido de las comunicaciones
Caso práctico de Cuadro de Mando con Tablas Dinámicas
1 Caso práctico de Cuadro de Mando con Tablas Dinámicas Luis Muñiz Socio Director de SisConGes & Estrategia Introducción Hay una frase célebre que nos permite decir que: Lo que no se mide no se puede controlar
PREGUNTAS FRECUENTES DE ACL SCRIPTHUB
PREGUNTAS FRECUENTES DE ACL SCRIPTHUB Qué es ScriptHub? ACL estará ofreciendo más de cien scripts de "mejores prácticas" en ScriptHub través de una amplia gama de asuntos y materias. Siempre se puede iniciar
