Descargar

Sistema de Gestión de Privilegios en Subversión (página 2)


Partes: 1, 2

Para dar cumplimiento al objetivo planteado se definen las siguientes tareas de investigación:

  • 1- Estudiar los mecanismos para obtener la estructura del repositorio dada la ubicación del mismo.

  • 2- Estudiar los archivos de configuración de privilegios del sistema de control de versiones Subversion y los elementos informáticos que permitan interactuar con los mismos.

  • 3- Estudiar las posibles vías de hacer persistente los cambios realizados en los archivos de configuración del sistema de control de versiones Subversion.

  • 4- Estudiar los mecanismos que permitan un acceso seguro a través de la red para acceder a las configuraciones del Sistema de Control de Versiones.

  • 5- Implementar la solución informática.

  • 6- Probar o validar la solución propuesta.

LA TESIS ESTARÁ COMPUESTA POR LOS SIGUIENTES CAPÍTULOS:

CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA: En este capítulo se abordan el estado del arte así como otros sistemas existentes, la fundamentación de algunos conceptos generales con el objetivo de un mejor entendimiento de los procesos, el estudio de las metodologías, tecnologías y herramientas empleadas para el desarrollo de la solución propuesta.

CAPÍTULO 2: DESCRIPCIÓN Y ANÁLISIS DE LA SOLUCIÓN PROPUESTA: En este capítulo se describe el sistema así como sus características, se exponen cada una de sus etapas así como cada una de las tareas a cumplir. Se muestra además cada una de las funciones a utilizar para el desarrollo del sistema.

CAPÍTULO 3: IMPLEMENTACIÓN Y PRUEBAS: Se abordan temas como las pruebas realizadas al software, en específico la validación a través del método Delphi, además se hace una valoración de las mismas según los resultados obtenidos.

Capítulo 1:

Fundamentación Teórica

Introducción

En el presente capítulo se perfilarán los conceptos fundamentales que servirán de base para el desarrollo del trabajo. Además se realizará una investigación sobre la base de los sistemas existentes que están vinculados a Subversion, así como se analizarán las metodologías, tecnologías y las herramientas utilizadas para el desarrollo del sistema propuesto.

Conceptos Generales

Se mostrarán algunos conceptos necesarios para un mayor entendimiento del trabajo realizado.

Repositorio

Un repositorio, depósito o archivo es un sitio centralizado donde se almacena y mantiene información digital, habitualmente bases de datos o archivos informáticos. El origen de la palabra española repositorio deriva del latín "repositorium", que significaba armario, alacena. Este término es recogido en el Diccionario de la Real Academia Española (DRAE) como: "Lugar donde se guarda algo". Los depósitos están preparados para distribuirse habitualmente sirviéndose de una red informática como Internet o en un medio físico como un disco compacto y pueden ser de acceso público, o pueden estar protegidos y necesitar de una autentificación previa. Los depósitos más conocidos son los de carácter académico e institucional. A diferencia de los ordenadores personales o de los PC de escritorio, los depósitos suelen contar con sistemas de Backup y mantenimiento preventivo y correctivo, lo que hace que nuestra información se pueda recuperar en el caso que nuestra máquina o PC quede inutilizable. Los depósitos se utilizan de forma intensiva en Linux, almacenando, en su mayoría, paquetes de software disponibles para su instalación mediante un gestor de paquetes.

Editores de texto

Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor. Hoy en día, es comúnmente de 7- ó 8-bits en ASCII o UTF-8, rara vez EBCDIC.

Los editores de texto son incluidos en el sistema operativo o en algún paquete de software instalado y se usan cuando se deben crear o modificar archivos de texto como archivos de configuración, scripts o el código fuente de algún programa. El archivo creado por un editor de texto incluye por convención en DOS y Microsoft Windows la extensión .txt, aunque pueda ser cambiada a cualquier otra con posterioridad. Tanto Unix como Linux dan al usuario total libertad en la denominación de sus archivos.Hay una gran variedad de editores de texto. Algunos son de uso general, mientras que otros están diseñados para escribir o programar en un lenguaje. Algunos son muy sencillos, mientras que otros tienen implementadas gran cantidad de funciones. El editor de texto debe ser considerado como una herramienta de trabajo del programador o administrador de la máquina. Como herramienta permite realizar ciertos trabajos, pero también requiere de aprendizaje para que el usuario conozca y obtenga destreza en su uso[1].

Acceso Seguro

Podemos entender como acceso de seguridad a un estado de cualquier tipo de información (informática o no) que nos indica que ese sistema está libre de peligro, daño o riesgo. Se entiende como peligro o daño todo aquello que pueda afectar su funcionamiento directo o los resultados que se obtienen del mismo[2].

Términos relacionados:

  • Activo: recurso del sistema de información o relacionado con éste, necesario para que la organización funcione correctamente y alcance los objetivos propuestos, dígase cuentas de autentificación, artefactos, bibliotecas y repositorios.

  • Amenaza: es un evento que puede desencadenar un incidente en la organización, produciendo daños materiales o pérdidas inmateriales en sus activos.

  • Impacto: medir la consecuencia al materializarse una amenaza.

  • Riesgo: Es la probabilidad de que suceda la amenaza o evento no deseado.

  • Vulnerabilidad: Son aspectos que influyen negativamente en un activo y que posibilita la materialización de una amenaza.

  • Ataque: evento, exitoso o no, que atenta sobre el buen funcionamiento del sistema.

  • Desastre o Contingencia: interrupción de la capacidad de acceso a información y procesamiento de la misma a través de computadoras necesarias para la operación normal de un negocio[22].

Sistemas de Control de Versiones Existentes

En nuestra universidad se cuenta con varios proyectos que usan sistemas de control de versiones y aunque casi todos son estos sistemas son centralizados, existe otro tipo: los sistemas de control de versiones distribuidos.

Sistema de Control de Versiones

Un sistema de control de versiones realiza una versión, revisión o edición de un producto, controla y gestiona el estado en el que se encuentra en un momento dado en su desarrollo o modificación. Se llama control de versiones a la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Los sistemas de control de versiones facilitan la administración de las distintas versiones de cada producto desarrollado, así como las posibles especializaciones realizadas[3]. Hoy en día son protagonistas de este tipo de software SVN (Subversion), Bazaar, Mercurial y Git.

Sistema de Control de Versiones Distribuidos

En un sistema de control de versiones distribuido no hay un repositorio central. Todos los desarrolladores tienen su propia copia del repositorio, con todas las versiones y toda la historia. Por supuesto, según van desarrollando y haciendo cambios, sus fuentes y versiones van siendo distintas unas de otras. Sin embargo, los sistemas de control de versiones distribuidos permiten que en cualquier momento dos desarrolladores cualesquiera puedan "sincronizar" sus repositorios. Si uno de los desarrolladores ha tocado determinadas fuentes y el otro no, los modificados se convierten en la versión más moderna. En caso de que ambos desarrolladores hayan tocado las mismas fuentes, el sistema de control de versiones avisa para que los desarrolladores decidan qué cambios de cada uno son válidos. Una vez hecho todo este trabajo, los repositorios de ambos desarrolladores tendrán la misma versión. En un sistema de control de versiones distribuido lo normal es decidir algún sitio donde esté un repositorio de fuentes que se considera oficial, de forma que ahí es de dónde los nuevos desarrolladores obtienen su primera copia del proyecto y donde los desarrolladores van dejando las modificaciones validadas y aprobadas. De alguna forma, es un sistema de trabajo similar al del sistema de control de versiones centralizado, pero menos rígido, ya que los desarrolladores pueden ir generando y guardando localmente todas sus versiones, e incluso compartirlas entre ellos, antes de dar por válidos los cambios y subirlos al repositorio oficial.

Sistema de Control de Versiones Centralizado

En un sistema de control de versiones centralizado todas nuestras fuentes y sus versiones están almacenadas en un único directorio (llamado repositorio de fuentes) de un ordenador (un servidor). Todos los desarrolladores que quieran trabajar con esas fuentes, deben pedirle al sistema de control de versiones una copia local para trabajar. En ella realizan todos sus cambios y cuando están listos y funcionando, le dicen al sistema de control de versiones que guarde las fuentes modificadas como una nueva versión. Una vez subido el código, está disponible para otros desarrolladores, que pueden actualizarse y pedir la nueva versión. De alguna forma, para el intercambio de fuentes entre ellos, es necesario pasar por el repositorio de fuentes del servidor. Es en el servidor donde están guardadas todas las versiones y los desarrolladores sólo tienen en su copia local aquellas fuentes que han solicitado del servidor.

Herramientas y Tecnologías

En este epígrafe se comentarán algunas características y funcionalidades las herramientas y tecnologías utilizadas; así como el punto de vista del autor a la hora de seleccionar cada una de las herramientas a utilizar.

Subversion

Un sistema de control de versiones es un sistema de administración de configuración de software. Estos sistemas son diseñados específicamente para la administración de árboles de código fuente, y tienen muchas características que son específicas del desarrollo de software tales como el entendimiento nativo de lenguajes de programación, o el suministro de herramientas para la construcción de software. Sin embargo, Subversion no es uno de estos sistemas. Subversion es un sistema general que puede ser usado para administrar cualquier conjunto de ficheros.

Entre las numerosas ventajas de este sistema de control de versiones se encuentran:

  • Versionado de directorios: CVS solamente lleva el historial de ficheros individuales, pero Subversion implementa un sistema de ficheros versionado "virtual" que sigue los cambios sobre árboles de directorios completos a través del tiempo. Ambos, ficheros y directorios, se encuentran bajo el control de versiones.

  • Verdadero historial de versiones: Dado que CVS está limitado al versionado de ficheros, operaciones como copiar y renombrar—las cuales pueden ocurrir sobre ficheros, pero que realmente son cambios al contenido del directorio en el que se encuentran—no son soportadas por CVS. Adicionalmente, en CVS no puede reemplazar un fichero versionado con algo nuevo que lleve el mismo nombre sin que el nuevo elemento herede el historial del fichero antiguo—que quizás sea completamente distinto al anterior. Con Subversion, usted puede añadir, borrar, copiar, y renombrar ficheros y directorios. Y cada fichero nuevo añadido comienza con un historial nuevo, limpio y completamente suyo.

  • Envíos atómicos: Una colección cualquiera de modificaciones o bien entra por completo al repositorio, o bien no lo hace en absoluto. Esto permite a los desarrolladores construir y enviar los cambios como fragmentos lógicos e impide que ocurran problemas cuando sólo una parte de los cambios enviados lo hace con éxito.

  • Versionado de metadatos: Cada fichero y directorio tiene un conjunto de propiedades —claves y sus valores —asociado a él. Puede crear y almacenar cualquier par arbitrario de clave/valor que desee. Las propiedades son versionadas a través del tiempo, al igual que el contenido de los ficheros.

  • Elección de las capas de red: Subversion tiene una noción abstracta del acceso al repositorio, facilitando a las personas implementar nuevos mecanismos de red. Subversion puede conectarse al servidor HTTP Apache como un módulo de extensión. Esto proporciona a Subversion una gran ventaja en estabilidad e interoperabilidad y acceso instantáneo a las características existentes que ofrece este servidor—autenticación, autorización, compresión de la conexión, etc. También tiene disponible un servidor de Subversion independiente y más ligero. Este servidor habla un protocolo propio, el cual puede ser encaminado fácilmente a través de un túnel SSH.

  • Manipulación consistente de datos: Subversion expresa las diferencias del fichero usando un algoritmo de diferenciación binario, que funciona idénticamente con ficheros de texto (legibles para humanos) y ficheros binarios (ilegibles para humanos). Ambos tipos de ficheros son almacenados igualmente comprimidos en el repositorio, y las diferencias son transmitidas en ambas direcciones a través de la red.

  • Ramificación y etiquetado eficientes: El coste de ramificación y etiquetado no necesita ser proporcional al tamaño del proyecto. Subversion crea ramas y etiquetas simplemente copiando el proyecto, usando un mecanismo similar al enlace duro. De este modo estas operaciones toman solamente una cantidad de tiempo pequeña y constante.

  • Hackabilidad: Subversion no tiene un equipaje histórico; está implementado como una colección de bibliotecas compartidas en C con APIs bien definidas. Esto hace a Subversion extremadamente fácil de mantener y reutilizable por otras aplicaciones y lenguajes.

Subversion es muy conocido en la comunidad de software libre y se utiliza en muchos proyectos, incluyendo la fundación del software de Apache, KDE, GNOME, Free Pascal, FreeBSD, GCC, Python, Django, Ruby, Mono, SourceForge.net, ExtJS y Tigris.org. El servicio Google Code también proporciona almacenamiento Subversion para sus proyectos de software libre. Los sistemas de BountySource lo utilizan exclusivamente. Codeplex ofrece acceso tanto para Subversión como para otros tipos de clientes. Subversión también está siendo adoptado en el mundo corporativo. En un informe 2007 de Forrester Research, reconocía a Subversion como el único líder en la categoría de sistema de control de versiones[4].

Lenguaje de Modelado

UML

El Lenguaje Unificado de Modelado, en sus siglas en inglés (UML), es un lenguaje de modelado visual que se usa para especificar, visualizar, construir y documentar artefactos de un sistema de software. Se usa para entender, diseñar, configurar, mantener y controlar la información sobre los sistemas a construir.

UML es un lenguaje de propósito general para el modelado orientado a objetos. UML es también un lenguaje de modelado visual que permite una abstracción del sistema y sus componentes.

Objetivos:

Es un lenguaje de modelado que puede ser usado por todos los modeladores, incluye todos los conceptos que se consideran necesarios para utilizar un proceso moderno iterativo, basado en construir una sólida arquitectura para resolver requisitos dirigidos por casos de uso. Debe ser un lenguaje universal, como cualquier lenguaje de propósito general.

Lenguajes de Programación

Un lenguaje de programación es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo. Son considerados además herramientas que permiten crear programas y software. Estos facilitan las tareas de programación ya que poseen formas adecuadas para su entendimiento y resultan independientes de la computadora a utilizar.

Resultados de Comparación

La realización de una comparación o análisis para seleccionar un lenguaje de programación no es una tarea sencilla en lo absoluto, pocas personas ha podido crear parámetros o métricas para realizarlo. Para esta tarea se obtuvieron algunos criterios de comparación[5] y otros que se agregaron teniendo en cuenta las características del sistema en el Departamento de Soluciones de Aduanas dentro del Centro CIEGE. A continuación le mostramos una tabla con los criterios de comparación que se establecieron para realizar la selección del lenguaje a utilizar:

  • Expresividad: Facilidad del lenguaje para expresar los algoritmos

  • Bien Definido: Consistencia y falta de ambigüedad

  • Tipos y estructuras de datos

  • Transportabilidad/Portabilidad

  • Eficiencia/Performance

  • Generalidad: Aplicabilidad, Uso

  • Plataformas

Después de haber analizado estos aspectos se llevo a una escala cada uno de ellos y se muestra la comparación en la siguiente tabla:

Tabla 1.1 Resumen de Aspectos a evaluar.

Característica

C

C++

Java

Expresividad

Regular

Buena

Muy Buena

Bien Definido

Regular

Muy Buena

Muy Buena

Tipos y Estructuras de datos

Deficiente

Muy Buena

Muy Buena

Transportabilidad / Portabilidad

Buena

Regular

Excelente

Eficiencia / Performance

Excelente

Excelente

Buena

Generalidad

Buena

Muy Buena

Muy Buena

Plataformas

Regular

Regular

Excelente

Java

Java es un lenguaje de programación que tiene sus inicios en 1991 cuando James Gosling (en Sun Microsystems) encabezó un proyecto cuyo objetivo original era implementar una máquina virtual ampliamente portable y un lenguaje de programación ambos orientados a dispositivos "embedded"[6] (procesadores incorporados en diversos dispositivos de consumo masivo como VCR's, tostadoras, PDA's y teléfonos móviles). Java es un lenguaje que posee características muy buenas en cuanto a portabilidad, su uso multiplataforma permite llevar la utilización de la aplicación a diferentes sistemas operativos. Es un lenguaje de código abierto y es otra de las ventajas que brinda pues se podrá continuar trabajando en el mejoramiento y adaptación de este trabajo.

Ambiente de Desarrollo Integrado (IDE)

El ambiente de desarrollo es algo imprescindible en la producción de software. Es donde se definen el conjunto de herramientas y tecnologías (frameworks), versiones a usar y su integración, que intervienen en un proceso de desarrollo de software. Un entorno de desarrollo integrado o Integrated Development Environment (IDE), en inglés, es un programa compuesto por un conjunto de herramientas para un programador. Puede dedicarse en exclusiva a un solo lenguaje de programación o bien, poder utilizarse para varios. Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica GUI. Los IDE"s pueden ser aplicaciones por si solas o pueden ser parte de aplicaciones existentes. El lenguaje Visual Basic por ejemplo puede ser usado dentro de las aplicaciones de Microsoft Office, lo que hace posible escribir sentencias Visual Basic en forma de macros para Microsoft Word. Los IDEs proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación tales como C++, Java, C#, Delphi, Visual Basic y Object Pascal. Es posible que un mismo IDE pueda funcionar con varios lenguajes de programación. Este es el caso de Eclipse, que mediante pluggins se le puede añadir soporte de lenguajes adicionales[7]. El lenguaje Java tienes IDEs como Eclipse, Netbeans, JDeveloper e IntelliJ IDEA que aun es novato. Desde el surgimiento de Java siempre han estado dos IDEs a la vanguardia y se hace muy difícil buscar parámetros y métricas para compararlos, además de que estos softwares están en constante desarrollo y surgen nuevas versiones en muy poco tiempo. Tal es el caso de Netbeans y Eclipse que se hacen encuestas por parte de Java y son estos los que siempre de una u otra forma de turnan el podio. El IDE seleccionado es Netbeans pues el programador se siente más familiarizado con dicho IDE y es mucho más fácil el manejo de las librerías con él.

Netbeans

El IDE Netbeans es una herramienta para programadores pensada para escribir, compilar, depurar y ejecutar programas. Está escrito en Java – pero puede servir para cualquier otro lenguaje de programación. Existe además un número importante de módulos para extender el IDE Netbeans. Es un producto libre y gratuito sin restricciones de uso, de código abierto escrito completamente en Java usando la plataforma Netbeans. Este IDE soporta el desarrollo de todos los tipos de aplicación Java (J2SE, web, EJB y aplicaciones móviles). Entre sus características se encuentra un sistema de proyectos basado en Ant, control de versiones y refactoring.

Netbeans IDE 6.5, la cual fue lanzada el 19 de noviembre de 2008, extiende las características existentes del Java EE (incluyendo Soporte a Persistencia, EJB 3 y JAX-WS). Adicionalmente, el Netbeans Enterprise Pack soporta el desarrollo de Aplicaciones empresariales con Java EE 5, incluyendo herramientas de desarrollo visuales de SOA, herramientas de esquemas XML, orientación a web servicies (for BPEL), y modelado UML. Modularidad. Todas las funciones del IDE son provistas por módulos. Cada módulo provee una función bien definida, tales como el soporte de Java, edición, o soporte para el sistema de control de versiones. Netbeans contiene todos los módulos necesarios para el desarrollo de aplicaciones Java en una sola descarga, permitiéndole al usuario comenzar a trabajar inmediatamente. Sun Studio, Sun Java Studio Enterprise, y Sun Java Studio Creator de Sun Microsystems han sido todos basados en el IDE Netbeans[8].

Librerías de Java

En la mayoría de los sistemas operativos actuales, se ofrece una cantidad de código para simplificar la tarea de programación. Este código toma la forma, normalmente, de un conjunto de librerías dinámicas que las aplicaciones pueden llamar cuando lo necesiten. Pero la Plataforma Java está pensada para ser independiente del sistema operativo subyacente, por lo que las aplicaciones no pueden apoyarse en funciones dependientes de cada sistema en concreto. Lo que hace la Plataforma Java, es ofrecer un conjunto de librerías estándar, que contiene mucha de las funciones reutilizables disponibles en los sistemas operativos actuales[11].

SVNKit

En 2005, una compañía de software llamada TMate Software Ltd. anunció el lanzamiento de la 1.0.0 JavaSVN – una biblioteca de Java puro que interactuaba con Subversion. Desde entonces, el proyecto ha sido renombrado a SVNKit. Esta librería trae Subversion más cerca del mundo Java! SVNKit es un juego de herramientas Java – cumple todas las características de Subversion y proporciona APIs para trabajar con Subversion las copias de trabajo, el acceso y manipular los repositorios de Subversion – todo dentro de la aplicación Java. SVNKit hace que Subversion sea más en el mundo Java.SVNKit está escrito en Java y no requiere ningún binario adicional o aplicaciones nativas. Es portátil y no hay necesidad de código del sistema operativo específico. SVNKit es compatible con la última versión de Subversion. SVNKit es Open Source y puede ser libremente utilizado en las aplicaciones Open Source bajo los términos de la Licencia TMate Open Source[9].

Existen un caso de otra librería mediante la cual interactúan Java y Subversion y es JavaHL, sucede que teniendo en cuenta las funcionalidades, facilidades de interacción y manejo se decidió que SVNKit es la más conveniente para el desarrollo e implementación de la aplicación pues brinda las opciones de conexión desde http, svn y ssh, además nos facilita una estructura del repositorio así como tener un control sobre las sesiones que maneja. JavaHL es una librería que depende del mismo control de versiones y esto le reduciría grandemente la portabilidad de la aplicación e incluso podría traer problemas en dependencia del sistema operativo.

Metodología de Desarrollo Ágil

La familia de métodos de desarrollo ágiles evolucionó a partir de los conocidos ciclos de vida iterativo e incremental. Nacieron de la creencia que un acercamiento más en contacto con la realidad humana –y la realidad del desarrollo de productos basados en el aprendizaje, innovación y cambio darían mejores resultados. Los principios ágiles ponen el énfasis en construir software que funcione que se pueda usar rápidamente, en vez de pasarse mucho tiempo al principio escribiendo especificaciones. El desarrollo ágil se centra en equipos multifuncionales con capacidad para decidir por ellos mismos, en vez de grandes jerarquías y divisiones por funcionalidad. Y se centra en iteraciones rápidas, con el cliente dando su opinión continuamente. Suele pasar que cuando se oye hablar sobre desarrollo ágil hay un gesto de reconocimiento – se parece mucho a lo que se hacía antes, cuando simplemente "lo hacíamos". Las metodologías de desarrollo ágiles generalmente se preocupan más por obtener el producto final que por hacer un exhausto análisis y diseño de los requerimientos y eso es ideal para el desarrollo de herramientas de este tipo, pues uno no sabe a ciencia cierta cuando va a surgir un cambio ni una nueva idea.

Scrum

Scrum es un marco de trabajo iterativo e incremental para el desarrollo de proyectos, productos y aplicaciones. Estructura el desarrollo en ciclos de trabajo llamados Sprint. Son iteraciones de 1 a 4 semanas, y se van sucediendo una detrás de otra. Los Sprint son de duración fija, terminan en una fecha específica aunque no se haya terminado el trabajo y nunca se alargan. Se limitan en tiempo. Al comienzo de cada Sprint, un equipo multifuncional selecciona los elementos de una lista priorizada. Se comprometen a terminar los elementos al final del Sprint. Durante el Sprint no se pueden cambiar los elementos elegidos. Todos los días el equipo se reúne brevemente para informar del progreso y actualizan unas gráficas sencillas que les orientan sobre el trabajo restante. Al final del Sprint, el equipo revisa el Sprint con los interesados en el proyecto y les enseña lo que han construido. Las personas obtienen comentarios y observaciones que se puede incorporar al siguiente Sprint. Scrum pone el énfasis en productos que funcionen al final del Sprint que realmente estén "hechos"; en el caso del software significa que el código esté integrado, completamente probado y potencialmente para entregar. Los roles, artefactos y eventos principales se resumen en la Figura 1.1. Un tema importante en Scrum es "inspeccionar y adaptar". El desarrollo inevitablemente implica aprender, innovación y sorpresas. Por eso Scrum hace hincapié en dar un pequeño paso de desarrollo; inspeccionar el producto resultante y la eficacia de las prácticas actuales; y entonces adaptar el objetivo del producto y las prácticas del proceso, y volver a repetir[10].

edu.red

Figura 1.1

Existen otros tipos de metodologías ágiles que son usadas en el mundo entero entre las que llevan la vanguardia se encuentran XP (Programación Externa) y LSD (Lean Software Development) además de Scrum. Teniendo en cuenta las características en cuanto a:

  • Cantidad de personas que forman un equipo de desarrollo.

  • Tiempo y recursos para desarrollar.

  • Constantes cambios en el desarrollo y la implementación.

Teniendo en cuenta lo planteado anteriormente y habiéndose expuesto las ventajas de Scrum llegamos a la conclusión de es precisamente Scrum la metodología más conveniente para poner en práctica en el equipo de trabajo a desarrollar pues el uso del los Sprint sería de gran utilidad para establecer las metas, así como las reuniones diarias, lo que nos permitiría tener un control, una visión y una versión funcional del producto en todo el proceso de desarrollo.

Sistema Operativo

Distribución Ubuntu 9.10

Ubuntu 9,10 es una distribución GNU/Linux, basada en Debian, que libera sus versiones cada seis meses. Ubuntu en estos momentos es la distribución más extendida y un punto de referencia dentro del amplio abanico de distribuciones GNU/Linux. Con Ubuntu 9.10 se produce un mayor acercamiento al usuario final y se facilita su interacción con el sistema. La nueva versión liberada presenta muchas novedades en diferentes áreas del sistema, como son: el nuevo sistema de archivos, el proceso de arranque y apagado, el control de volumen, mejoras en la usabilidad del sistema, mejoras en el gestor de las conexiones inalámbricas, incluso cambio de color, entre otras. A continuación algunas descripciones de estas novedades:

  • 1. Arranque y apagado del sistema: Upstart es un dominio basado en eventos (trabaja asíncronamente) y se trata de un proceso creado por el núcleo cuya misión es iniciar, supervisar y detener todos los demás procesos del sistema. Entre las mejoras que incorpora Upstart frente al init System V, destacan el arranque de servicios en paralelo, guiado por eventos, servicios que reinician de forma automática si mueren. En esta versión de Ubuntu 9.10 se implementa la habilitación completa del sistema Upstart que ha permitido reducir el tiempo de arranque y apagado y también el tiempo dedicado a la carga del entorno gráfico al inicio.

  • 2. Utilización de GRUB2: El gestor de arranque GRUB2 nos permite la ejecución de scripts, además de interpretar y ejecutar las líneas de configuración de inicio con expresiones condicionales, bucles, variables y funciones. Tiene soporte para más tipos de sistemas de archivos. Su funcionalidad es extensible mediante la carga dinámica de módulos y es portable a diferentes arquitecturas.

1.3.8 Método Delphi

En el inicio de la década de los 60 la fuerza aérea de los EEUU auspició un estudio de la Rand Corporation donde se le dio el nombre de proyecto Delphi. Este método hacía uso de las opiniones de un panel de expertos que poseían conocimientos elevados en asuntos de la defensa del país y posteriormente en temas de investigación y desarrollo, con la finalidad de obtener mejores perspectivas de situaciones o circunstancias futuras de interés estratégico de largo alcance. Es así como inicia el uso del Método Delphi, donde posteriormente se logra un mayor entendimiento y expansión de su efectividad en otras áreas investigativas y se pone en práctica para analizar los resultados esperados[14].

El Método Delphi es un método experto que se basa en la consulta a personas que tienen grandes conocimientos sobre el entorno en el que la organización desarrolla su labor. Estas personas exponen sus ideas y finalmente se redacta un informe en el que se indican cuáles son, en su opinión, las posibles alternativas o sucesos que se obtendrán en el futuro[15].

La calidad de los resultados obtenidos por este método experto dependen de:

  • La elaboración de los cuestionarios.

  • Las predicciones de los expertos consultados.

El Delphi es pronosticado como uno de los métodos más fiables porque se basa en la interrogación a expertos con la ayuda de cuestionarios sucesivos, con el fin de encontrar convergencias en las opiniones y así deducir eventuales consensos. Se basa en la consulta de un grupo de expertos de forma individual por medio de un conjunto de preguntas bien conformadas, que apoyadas por los resultados promedio de la ronda anterior, genera coincidencia de opiniones. Posee la facilidad de combinar el conocimiento y la experiencia de expertos en diversos campos, de forma tal que tiende a arribar a un consenso de opiniones de futuros efectos específicos, cuantificando estadísticamente sus opiniones mediante medidas[16].

Algunas de las ventajas que ofrece el Método Delphi son[17]:

  • Permite la formación de un criterio con mayor grado de objetividad y el consenso logrado sobre la base de los criterios es muy confiable.

  • La tarea de decisiones sobre la base de los criterios de expertos, obtenido por éste tiene altas probabilidades de ser eficiente.

  • Permite valorar alternativas de decisión.

  • Un requisito imprescindible para garantizar el éxito del método, evitar conflictos entre expertos y crear un clima favorable a la creatividad, es ser anónimo.

  • El experto se siente involucrado plenamente en la solución del problema y facilita su implantación.

  • De ello es importante el principio de voluntariedad del experto en participar en la investigación y la confidencialidad de su opinión.

El método presenta 4 características principales[15]:

  • Anonimato: Ningún experto conoce la identidad de los otros que componen el grupo de debate. Esto tiene una serie de aspectos positivos, como son:

  • Impide la posibilidad de que un miembro del grupo sea influenciado por la reputación de otro de los miembros o por el peso que supone oponerse a la mayoría. La única influencia posible es la de la congruencia de los argumentos.

  • Permite que un miembro pueda cambiar sus opiniones sin que eso suponga una pérdida de imagen.

  • El experto puede defender sus argumentos con la tranquilidad que da saber que en caso de que sean erróneos, su equivocación no va a ser conocida por los otros expertos.

  • Iteración y retroalimentación controlada: La iteración se consigue al presentar varias veces el mismo cuestionario. Como se van presentando los resultados obtenidos de los cuestionarios anteriores, se consigue que los expertos vayan conociendo los distintos puntos de vista y puedan ir modificando su opinión si los argumentos presentados les parecen más apropiados que los suyos.

  • Respuesta del grupo en forma estadística: La información que se presenta a los expertos no es sólo el punto de vista de la mayoría, sino que se presentan todas las opiniones indicando el grado de acuerdo que se ha obtenido.

  • Heterogeneidad: Pueden participar expertos de determinadas ramas sobre las mismas bases.

El criterio de expertos puede ser tomado mediante encuestas o entrevistas y empleado en cualquier momento de la investigación, cuya experiencia y opiniones pueden ser de una valiosa contribución, resultando fundamental durante el estudio exploratorio. Durante el proceso de investigación es válido realizar contactos periódicos con los expertos que hayan sido previamente seleccionados a fin de contrastar sus criterios con los resultados obtenidos. El acervo de experiencias se adquiere a través de la rutina de trabajo y en muchas ocasiones se hallan dispuestas en forma escrita solo una pequeña parte de ellas; de ahí la necesidad de indagar dichos conocimientos y experiencias directamente en los hombres que lo producen.

La eficiencia de los resultados pronosticados por este método depende del intervalo de tiempo prolongado; es decir, a corto plazo los resultados se pueden pronosticar con mayor exactitud que en un tiempo de largo plazo.

Para emplear el método Delphi se desarrollan las siguientes fases[18]:

Dichas Fases se resumen en los pasos descritos a continuación:

1.3.8.1. Formulación del Problema

Se formula el cuestionario que se presentará a los expertos para evaluar sus opiniones. Las preguntas deben ser precisas, independientes, considerar las probabilidades sobre datos, hipótesis y/o acontecimientos en una fecha determinada. Es importante definir con precisión que el campo de investigación abarque los conocimientos de los expertos seleccionados para precisar que todos poseen la misma noción de este campo[18].

Conclusiones

En la elaboración de este capítulo se abordaron varios conceptos generales que servirán de guía para la realización de este trabajo, se realizó un estudio sobre el sistema de control de versiones subversión. Además se determinaron las tecnologías, lenguajes, herramientas y metodologías a utilizar para el desarrollo de la solución propuesta, demostrando que éstas son idóneas.

edu.red

Capítulo 2:

Descripción y Análisis de la Solución Propuesta

2.1 Introducción

En el capitulo anterior se realizó un estudio y un análisis de los sistemas, herramientas, metodologías y tecnologías existentes se seleccionaron los más convenientes y óptimos para dar cumplimiento a el objetivo planteado. En este capítulo se estarán explicando los procedimientos y funcionalidades con que contará la solución propuesta.

2.2. Descripción de la Solución Propuesta

Se procede igual que en el anterior epígrafe y así sucesivamente con cada recurso informático utilizado en el trabajo de investigación.

2.2.1. Nuevo Repositorio

El usuario, una vez ya abierta la aplicación, procede a ingresar la dirección http, ssh o svn del repositorio a cual quiere acceder (figura 2.1.1). El sistema verifica que la dirección ingresada por el usuario sea un repositorio, de no serlo se le mostrará un mensaje de error (figura 2.1.2) y será enviado al formulario inicial (figura 2.1.1). Si la dirección http introducida es un repositorio existente se procederá a otro formulario donde se le pedirá autenticación en caso de que así lo requiera el repositorio. El usuario ingresará sus credenciales (figura 2.1.3) y acepta para comprobar que posee permisos para acceder al dicho repositorio. En caso de que no posea permisos el sistema mostrará un mensaje de error (figura 2.1.4) y será enviado a al formulario de autenticación (figura 2.1.3). Si el usuario es identificado correctamente se procederá a pedirle que cargue el archivo de configuración del repositorio, una vez hecho esto se le mostrará el árbol del repositorio al cual accedió (figura 2.2.1).

edu.red

Figura 2.1.1 Se introduce una dirección del repositorio.

edu.red

Figura 2.1.2 Mensaje de error por dirección de repositorio errónea.

edu.red

Figura 2.1.3 Se introducen las credenciales del usuario.

edu.red

Figura 2.1.4 Mensaje de error por falta de permisos.

edu.red

Figura 2.1.5 Desde este formulario se accede al archivo de configuración.

edu.red

Figura 2.1.6 Se muestra la estructura del repositorio.

2.2.2. Asignar Permisos

Cuando un usuario toma la opción de asignar permisos se le muestra un formulario en el cual el usuario introducirá el nombre del usuario a asignar y además podrá seleccionar unos de los permisos establecidos por el sistema (figura 2.2.1) y procederá asignar el permiso seleccionado al nuevo nombre de usuario. Después se le mostrará una tabla con los usuarios y permisos actualizados (figura 2.2.2)

edu.red

Figura 2.2.1 El usuario asigna permiso a un nombre de usuario nuevo.

edu.red

Figura 2.2.2 Se muestran los usuarios con sus respectivos permisos.

2.2.3. Cambiar Permiso

En este formulario (figura 2.3.1) el usuario seleccionará el usuario al que desea cambiar el permiso y seleccionará el nuevo permiso a asignar, luego procederá a modificar dicho permiso. Se le mostrará una tabla con los usuarios y permisos actualizados (figura 2.2.2).

edu.red

Figura 2.3.1 El usuario cambia el permiso de un usuario.

2.2.4. Quitar Permiso

Cuando el usuario ejecuta la opción de quitar permiso inmediatamente se muestra un formulario para que dicho usuario pueda seleccionar el nombre de usuario que desea quitar (figura 2.4.1). Después se le mostrará una tabla con los usuarios y permisos actualizados (figura 2.2.2).

edu.red

Figura 2.4.1 El usuario elimina el permiso de un nombre de usuario.

2.2.5. Adicionar Grupo

A la hora de adicionar un grupo (figura 2.5.1) el usuario debe tener en cuenta que no debe haber ningún campo vacio ni que los usuarios contengas la letra "@". Una vez llenados los campos, el usuario puede tomar la opción de añadirle más usuarios al grupo o sencillamente adicionar el grupo y salir del formulario.

edu.red

Figura 2.5.1 El usuario adiciona un grupo con al menos un usuario.

2.2.6. Editar Grupo

La figura (2.6.1) muestra el formulario de la funcionalidad de editar grupos, aquí un usuario puede seleccionar el grupo del cual desea ver los usuarios que posee y a su vez, eliminar y asignar usuarios a dicho grupo.

edu.red

Figura 2.6.1 Un usuario puede ver, eliminar y adicionar permisos a un grupo.

2.2.7. Eliminar Grupo

Para eliminar un grupo (figura 2.7.1) un usuario solo debe seleccionar el usuario a eliminar y seguido elimina el grupo que desea.

edu.red

Figura 2.7.1 Se elimina el grupo seleccionado por el usuario.

2.3 Clases y Algoritmos

A continuación serán mostradas las clases que fueron utilizadas en la aplicación así como una descripción de sus principales métodos.

2.3.1. Subversion

edu.rededu.red

Tabla 2.1 Atributos y responsabilidades de la clase Subversion

De esta clase podemos decir que es clave del funcionamiento de la aplicación, es aquí donde se lee, interpreta y posteriormente se lleva a entidades el archivo de configuración de Subversión. Esta clase además posee métodos que son de importancia significativa pues sin el correcto funcionamiento de alguno de ellos la aplicación no tendría un buen estado de rendimiento. Entre estos métodos están: leerArchivo(), formarArchivo(), establecerMediosAcceso().

2.3.2. Utiles

edu.red

Tabla 2.2 Atributos y responsabilidades de la clase Utiles

Es una clase que posee como característica principal el apoyo auxiliar de algoritmos que son de menor importancia pero que son utilizados por otras clases. El principal método de esta clase es: leerGrupo (String cadena)

2.3.3. DireccionPermisos

edu.red

Tabla 2.3 Atributos y responsabilidades de la clase DireccionPermisos

Es una clase de tipo entidad, se encarga de formar gestionar los grupos que una vez que fueron ya establecidos por la clase Subversion.

2.3.4. Grupo

edu.red

Tabla 2.4 Atributos y funcionalidades de la clase Grupo

Es una clase de tipo entidad, se encarga de formar gestionar los usuarios así como sus respectivos permisos una vez que fueron ya establecidos por la clase Subversion.

2.4. Diagrama de Clases

  • Los diagramas de clases muestran las diferentes clases que componen un sistema y como se relacionan unas con otras. Se dice que los diagramas de clases son diagramas «estáticos» porque muestran las clases, junto con sus métodos y atributos, así como las relaciones estáticas entre ellas. A continuación se muestra el diagrama de clases referente a la aplicación AdminSVN del Departamento de Soluciones para la Aduana y el Centro CEIGE.

edu.red

Figura 2.1 Diagrama de Clases.

Capítulo 3:

Validación de la solución propuesta

3.1. Introducción

Para validar el modelo propuesto, es necesario contar con el criterio de personas expertas en el tema y que poseen el conocimiento necesario para saber si lo investigado, está realmente cercano a alcanzar la calidad que se espera obtener en los resultados.

El proceso de validación de AdminSVN se realizó mediante el Método Delphi donde se trabaja con un grupo de expertos que se mantienen aislados, los mismos pueden ser empleados de la organización o especialistas externos y además, se analizan los cambios o resultados esperados estimándose el tiempo en que puede ocurrir[14].

3.2. Elección de los Expertos

La selección de un grupo de expertos a encuestar deben ser personas experimentadas, independientes, con reconocida competencia, creativas e interesadas en participar y con conocimiento en el tema que garantice la confiabilidad de los resultados.

Se especifican una serie de criterios de selección de los expertos, por ejemplo:

  • Graduado del Nivel Superior.

  • Conocimientos sobre sistema de control de versiones Subversion.

  • Experiencia laboral.

  • Vinculación al desarrollo de proyectos productivos.

  • Experiencia como administrador de Subversion.

  • Capacidad de análisis y pensamiento lógico.

  • Disposición para participar en la validación.

  • Autocritico.

Primeramente, para la selección de los expertos finales se hace necesario conocer el grado de conocimiento del experto en cuestión, la misma se realiza con la ayuda del Coeficiente de Competencia. Este coeficiente se determina mediante la fórmula: K= ½ (Kc + Ka), donde:

Kc: es el Coeficiente de Conocimientos del experto sobre el tema.

Ka: es el Coeficiente de Argumentación del experto sobre el tema.

Kc se obtiene de la siguiente tabla que recoge una auto evaluación del posible experto.

edu.red

Tabla 3.1: Autovaloración del Coeficiente de Conocimientos (Kc).

El presunto experto marcará en la casilla enumerada, según su criterio acerca de la capacidad que él tiene sobre el tema que se ha sometido a su consideración, en una escala del 1 al 10 y que después para ajustarla a la teoría de las probabilidades se multiplicará por 0,1; de esta forma, si selecciona el 9 en la Tabla 3.1, al multiplicarlo por 0.1 se obtiene Kc = 0.9. La evaluación "1" indica que el experto no tiene absolutamente ningún conocimiento de la problemática correspondiente, mientras que la evaluación "10" significa que el experto tiene pleno conocimiento de la problemática tratada.

Para calcular el coeficiente de argumentación se procede de la siguiente forma. En esta tabla el experto debe marcar, según su criterio, su grado de competencia sobre los aspectos sometidos a consideración. Las marcas de los expertos se traducen a puntos, según la siguiente escala:

edu.red

Tabla 3.2: Autovaloración del Coeficiente de Argumentación (Ka).

Con estos elementos es suficiente para obtener el Coeficiente de Competencia (K). Por ejemplo, si las selecciones del experto en la tabla son las siguientes:

edu.red

Como puede apreciarse el coeficiente de competencia del experto analizado es alto pues 0.8 < 0.9 < 1.0. La forma descrita con anterioridad nos permite seleccionar la competencia de nuestros expertos.

No existe una norma generalizada para determinar el número óptimo de expertos. Para su selección es necesario determinar el número de expertos que debe tener el grupo, hasta 7 expertos el error disminuye exponencialmente, después de 30, aunque el error disminuye, lo hace de manera poco significativa y no compensa el incremento de costos y esfuerzo, por lo que se sugiere utilizar un número de expertos en el intervalo de 7 a 30.

Los expertos seleccionados para formar parte del grupo de validación de la propuesta fueron aquellos cuyos resultados arrojaron un coeficiente de competencia Alto y Medio. De los diez expertos iniciales a los que se les aplicó la Encuesta de Autovaloración, sólo nueve resultaron seleccionados para continuar con la ejecución del método, los resultados se muestran a continuación:

edu.red

Tabla 3.4: Coeficiente de Competencia de los Expertos.

El experto 9 deja de formar parte del grupo de validación de la propuesta, debido a que su Coeficiente de Competencia es Bajo. En la gráfica de coeficiente de competencia se representa el resultado de acuerdo al coeficiente de competencia del grupo resultante para la validación de la propuesta.

Gráfica 3.1 Coeficiente de Competencia.

En la gráfica anterior queda claro que un 33 % de los expertos poseen un índice de competencia alto y un 67 % posee el índice de competencia medio, no existiendo ningún experto con el índice de competencia bajo.

Al tener el número total de expertos que se utilizarán para la validación, se formulan las preguntas que no deben ser demasiadas, pero si sobre cuestiones medulares referentes a la investigación que se realizó para buscar los criterios relativos a la temática sometida a consideración.

edu.red

3.3. Desarrollo Práctico y Explotación de Resultados

A continuación se ilustran las 4 preguntas con un total de 24 aspectos (Ai) a evaluar sobre el modelo propuesto (Anexo I), realizadas a 9 expertos. Se pidió que evaluarán los pasos en las categorías de Muy Adecuada (MA), Bastante Adecuada (BA), Adecuada (A), Poco Adecuada (PA) y No Adecuada (NA).

Los resultados se recogen como se muestra en la Tabla 3.5:

edu.red

Tabla 3.5: Frecuencias Acumuladas

La Tabla 3.5 queda representada como se muestra en la gráfica de frecuencias acumuladas. Una vez tabulados todos los datos, se realizan los siguientes pasos para obtener los resultados deseados:

edu.red

Gráfica 3.2 Frecuencias Acumuladas

Los resultados mostrados en la gráfica 3.2 muestran el grado de aceptación de cada uno de los aspectos y preguntas evaluadas por los expertos.

  • Primer paso: Se construye una tabla de Frecuencias Acumuladas donde cada número en la fila (excepto el primero) se obtiene sumándole el anterior.

edu.red

Tabla 3.6: Frecuencias Absolutas Acumuladas.

Observación: En la tabla de Frecuencias Absolutas Acumulativa la última columna desaparece.

  • Segundo paso: Se copia la tabla anterior y se borran los resultados numéricos. Ahora, en esta nueva tabla, se construye la tabla de Frecuencias Relativas Acumulativas. Esta tabla se logra dividiendo por 9 (número total de expertos) cada uno de los números de la tabla anterior. En esta tabla queda eliminada una columna pues hay 5 categorías y sólo se necesitan cuatro puntos de corte (con cuatro puntos se obtienen 5 intervalos).

edu.red

Tabla 3.7: Frecuencias Relativas Acumulativas.

  • Tercer paso: Se buscan las imágenes de los elementos de la tabla anterior por medio de la función (DISTR.NORM.ESTAND.INV). La Tabla 3.8 muestra los resultados obtenidos de los pasos anteriores, donde se agregan tres nuevas columnas y una fila para colocar los valores de la suma de las columnas y de las filas (Suma); el promedio de las filas (P); el valor de N (se obtiene al dividir la suma de las sumas de todas la filas entre 200, número que se ha obtenido de multiplicar el total de categorías (5) por el de preguntas (40)); el valor N-P (valor promedio que otorgan los expertos consultados a cada pregunta propuesta).

edu.red

Tabla 3.8: Puntos de Corte.

Las sumas obtenidas en las cuatro primeras columnas nos dan los puntos de cortes (0.25, 1.68, 3.45 y 3.65). Los puntos de corte nos sirven para determinar la categoría o grado de adecuación de cada paso de la metodología según la opinión de los expertos consultados.

La gráfica de puntos de corte representa los puntos de cortes por las preguntas realizadas a los expertos, evidenciando en qué rango se encuentra la pregunta con respecto al punto de corte para determinar si la misma es muy adecuada, bastante adecuada, adecuada o poco adecuada.

edu.red

Gráfica 3.3 Puntos de Corte

Las preguntas que resultarían Muy Adecuado serían las que poseen valores menores a 0.26; Bastante Adecuado los valores entre 0.26 y 1.68; Adecuado entre 1.68 y 3.45; Poco Adecuado entre 3.45 y 3.65; y No Adecuado más de 3.65. De acuerdo a los valores de N-P se tiene:

Menos de 0.26; (0.26, 1.68); (1.68, 3.45); (3.45, 3.65); más de 3.65.

Finalmente se obtiene:

edu.red

Tabla 3.9: Categorización de Aspectos.

De acuerdo a los resultados obtenidos mostrados en la tabla 3.9 se puede resumir que la validación resulta Muy Adecuada en cuanto a su elaboración teórica, ya que los resultados arrojados fueron satisfactorios.

Se presenta a continuación un resumen gráfico con los resultados obtenidos.

edu.red

Gráfica 3.4 Categorías

La gráfica 3.3 muestra que de 24 aspectos a evaluar 23 fueron valorados de muy adecuado y 1 de bastante adecuado por lo que se concluye que la herramienta AdminSVN será un éxito para la gestión de privilegios del sistema de control de versiones utilizado en el Departamento de Soluciones para la Aduana.

3.4. Conclusiones Parciales

En este capítulo se validó la solución propuesta como AdminSVN, utilizando el método de validación Delphi. Se seleccionaron 9 expertos que categorizaron un total de 24 aspectos relacionados con el modelo planteado, los resultados obtenidos fueron satisfactoriamente evaluados de Bastante Adecuado y Muy Adecuado, por lo que se concluye que el modelo es Muy Adecuado según la opinión de los expertos encuestados.

Conclusiones

Después de haberse realizado un estudio, análisis y selección de las herramientas necesarias para la realización de este trabajo de tesis se concluye que todos los objetivos propuestos fueron vencidos, creando una solución con un alto grado de aceptación pues fue probada de muy adecuada por un grupo de expertos sobre el tema. El AdminSVN da solución a la demanda existente del Departamento de Soluciones para la Aduana y del Centro CEIGE aunque es un tema en el que se podría realizar otro tipo de trabajos.

Recomendaciones

El trabajo con Subversion es una tarea que a simple vista no parece tan compleja, pero cuando comienzas a adquirir conocimientos comprendes que hay mucho que aprender y hacer sobre el tema; es por ello que para el uso de AdminSVN recomendamos que el usuario debe tener conocimientos sobre el trabajo con Subversion y además lea el documento para obtener mayor comprensión sobre la herramienta que se presenta. Dicha herramienta cumple con las reglas establecidas y requisitos por parte del Departamento de Soluciones para la Aduana y el Centro CIEGE pero se recomienda se mantenga como un tema de tesis a continuar pues hay mucho que aún se puede hacer en este tema y que es de suma importancia no solo para Aduana y CIEGE sino también para todos los proyectos que hacen uso de un sistema de control de versiones Subversion.

Bibliografía

  • 1. The Scrum Premier. © 2009 Pete Deemer, Gabrielle Benefield, Craig Larman, Bas Vodde.

  • 2. http://svnkit.com/

  • 3. JAVA A SU ALCANCE. Francisco Becerrill C.

  • 4. Java Cookbook. Ian Darwin

  • 5. Java ™ How to program. H. M. Deitel , P. J. Deitel

  • 6. Developing java beans. Robert Englander

  • 7. Java en pocas palabras. David Flanagan

  • 8. Orient object Programming with Java. Barry J Homes y Daniel T Joyce.

  • 9. Java la programación del futuro. Ángel López.

  • 10. Java an Object-Oriented Language

  • 11. http://www.e-ducativa.com/docs/Repositorio.pdf

  • 12. http://observatorio.cnice.mec.es/modules.php?op=modload&name=News&file=article&sid=548

  • 13. Collins-Sussman, Ben; Fitzpatrick, B.W. and Pilato, C.M. (2004). Version Control with Subversion.

  • 14.  Programación Orientada A Objetos Con Java. Francisco Gutiérrez; Francisco Duran; Ernesto Pimentel.

Referencias bibliográficas

  • Microsoft. [Online] 2010. http://msdn.microsoft.com.

  • [Online] 2009. http://seguridad.internet2.ulsa.mx/congresos/2003/esime/ariesgo.pdf.

  • Sistemas de Control de Versiones. [Online] 2008. http://www.chuidiang.com/chuwiki/index.php?title=Sistema_de_control_de_versiones.

  • Collins-Sussman, Ben, Fitzpatrick, B.W and Pilato, C.M. Version Control with Subversion. . 2007.

  • "Lenguajes de Programación". Allen B. Tucker, Jr. Mexico : s.n.

  • Sun Microsystem. [Online] http://www.java.com/en/javahistory.

  • IDEE. [Online] http://www.ineter.gob.ni/sig/docs/Intro%20IDE%20-%20IDEE.pdf..

  • NetBeans. [Online] http://www.netbeans.org/.

  • SVNKit. [Online] 2009. http://svnkit.com/.

  • Pete Deemer, Gabrielle Benefield, Craig Larman, Bas Vodde. THE SCRUM PRIMER. 2009.

  • Sum. [Online] http://es.sun.com/aprender_sobre/java/.

  • Quesada, Gilberto. Método Delphi. [Online] www.download-book.net/delphide-ppt.html..

  • Competitividad Sostenible De Los Espacios Naturales Protegidos Como Destinos Turísticos. Un Análisis Comparativo De Los Parques Naturales Sierra De Aracena, Picos De Aroche, Sierras De Cazorla, Segura, Las Villas. Ruiz, David Flores. 2008.

  • [Online] 2008. http://www.eumed.net/tesis/2008/dfr/metodo%20Delphi.htm..

  • Grupo de Tecnologías de la Información y las Comunicaciones. [Online] 2006. http://www.gtic.ssr.upm.es..

  • Izquierdo Moreno, Cecilia Paula. UAM. [Online] http://www.uam.es. .

  • El método Delphi. Iglesias, Arabel Moráguez. 2007.

  • Gestiopolis. [Online] http://www.gestiopolis.com/canales6/eco/metodo-delphi-estadistica-de-investigacion-cientifica.htm.

  • Astigarraga, Eneko. EL MÉTODO DELPHI. . 2005.

  • Unalmed. [Online] http://www.unalmed.edu.co/~poboyca/documentos/documentos1/documentos-Juan%20Diego/Plnaifi_Cuencas_Pregrado/Sept_29/Metodo_delphi.pdf..

  • Rivero, Yainelys y Bueno, Karel. Propuesta de Modelo Madurez para la adopción de la Arquitectura Orientada a Servicios. Ciudad de la Habana : s.n., 2009.

  • Ecured. [Online] http://www.ecured.cu/index.php/Seguridad_Inform%C3%A1tica.

Anexos

Anexo I

  • ENCUESTA A EXPERTOS.

  • Compañero (a):

  • Deseamos someter a la valoración de un grupo de expertos la herramienta AdminSVN que gestiona usuarios y privilegios de Subversion, en el Departamento de Soluciones para la Aduana y del centro CIEGE.

  • A continuación se relacionan un conjunto de parámetros que fueron seleccionados a partir de la consulta bibliográfica, la experiencia del autor y la consulta a especialistas que nos permitirá conocer el nivel de originalidad, la necesidad existente de una herramienta de este tipo y la total funcionalidad de dicha herramienta.

  • Los indicadores se han agrupado en una clasificación general de 5 competencias generales.

  • Valore el grado de factibilidad de los mismos de acuerdo a la siguiente escala, cada indicador (filas).

  • MA-Muy Adecuado

  • BA-Bastante Adecuado

  • A-Adecuado

  • PA-Poco Adecuado

  • NA-No adecuado

edu.red

edu.red

  • Gracias por su colaboración

Anexo II

ENCUESTA DE AUTOVALORACIÓN

Compañero (a):

En la ejecución de la presente tesis, deseamos someter a la valoración de un grupo de expertos la herramienta AdminSVN que gestiona usuarios y privilegios de Subversion del Departamento de Soluciones para la Aduana y del centro CIEGE. Para ello necesitamos conocer el grado de dominio que usted posee sobre la administración de Subversion; y con ese fin deseamos que responda lo que se le pide a continuación.

Nombre y apellidos: _____________________________________________________

Centro de trabajo: _______________________________________________________

Labor que realiza: _______________________________________________________

Años de experiencia: ______________Especialidad:____________________________

Categoría docente: _____________________Categoría científica: _________________

País: _________________________________________________________________

1.- Marque con una cruz (X) el grado de conocimiento que Ud. tiene sobre la temática que se investiga:

0

1

2

3

4

5

6

7

8

9

10

2.- Marque con una cruz (X) las fuentes que le han servido para argumentar el conocimiento que tiene Ud. de la temática que se investiga. Encierre en un círculo la que más ha influido.

edu.red

Anexo III

Encuesta auxiliar a Personal Experto en la administración de Subversion.

1. Diga su cargo actual ______________________________________________

2. ¿Qué herramientas conoce para la gestión de permisos y privilegios de Subversion?

  • Editores de texto ( )

  • Otras herramientas ( )

3. ¿Cómo considera la gestión de privilegios en Subversion mediante editores de texto?

  • Buena ( )

  • Regular ( )

  • Mala ( )

4. ¿Considera que la gestión de privilegios en Subversion mediante editores de texto conlleva a un gran número de errores a la hora de asignar permisos, lo que puede provocar retrasos en la producción?

  • Si ( )

  • No ( )

5. ¿Considera un problema para todas las personas que administran Subversion que la gestión de permisos se haga de forma manual mediante editores de texto?

  • Si ( )

  • No ( )

6. ¿Cree que sería óptimo el uso de alguna herramienta que permitiera gestionar el archivo de configuración desde una interfaz que interactúe con Subversion?

  • Si ( )

  • No ( )

7. ¿Después de utilizar AdminSVN considera que gestión de privilegios en Subversion continua siendo un problema?

  • Si ( )

  • No ( )

8. ¿Considera que AdminSVN es completamente funcional para la gestión de privilegios en Subversion y que no es necesario volver a abrir ningún editor de texto?

  • Si ( )

  • No ( )

9. ¿Considera que con el uso y puesta en práctica de AdminSVN resuelve el problema existente en la gestión de privilegios de Subversion?

  • Si ( )

  • No ( )

DECLARACIÓN DE AUTORÍA

Declaramos ser autores de la presente tesis y reconocemos a la Universidad de las Ciencias Informáticas los derechos patrimoniales de la misma, con carácter exclusivo.

Para que así conste firmo la presente a los ____ días del mes de ________ del año ________.

AGRADECIMIENTOS

A mis padres que han sabido tener confianza en mí y que me han dado todo su apoyo y amor que tanto he necesitado, por estar ahí siempre disponibles.

A mis buenos y grandes amigos (José Luis, Frank, Yoan, Yasmani, Raidel, Lázaro, Yerandy, José Otilio, Yulien, Adrian, Luis Miguel, Orlando) que han sabido hacer de mí una mejor persona, por los momentos que compartimos juntos, por sus oportunos apretones de mano y abrazos, por sus sinceras palabras.

A toda mi familia y demás personas que dieron siempre de una forma u otra un aporte a este logro que gracias a todos he conseguido.

A todas las personas que han hecho mejor mi vida, dándome alegrías en los momentos que más lo he necesitado, a todo aquel que ha contribuido a la realización de este trabajo.

A mis abuelos que se han sido los más sacrificados para con este sueño; a usted señora Juana María que me ha dado el más puro amor que existe en este mundo; a usted Hilario que fuiste y eres un ejemplo de hombre y padre a seguir.

DEDICATORIA

Una vez escuche decir que era la familia la célula principal y/o fundamental de una sociedad; pero en aquel momento no sabía cuan cierto era eso. No tenía conocimiento del amor familiar, no comprendía cuán importante es la familia en la vida de una persona, por su amor incondicional, por su apoyo y dedicación les dedico este sueño de todos que he hecho realidad.

 

 

Autor:

Yosley Soto Valdés

Tutor(es): Ing. Arley Consuegra Roselló

Ciudad de la Habana, junio 2010

"Año 52 de la Revolución"

DATOS DE CONTACTO

Correo electrónico: ,

Dirección particular: Cuba, Pinar del Rio, Sandino, Ciudad Blivar, Edif #1, Apto #125.

Teléfono: 052285631

Universidad de las Ciencias Informáticas

Facultad 15

Trabajo de Diploma para optar por el título de Ingeniero en Ciencias Informáticas

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente