Desarrollo rápido de software libre de alta calidad
Ingeniería de software asistida por computadora, enfocada en tareas, para agilizar el ciclo de vida de
las aplicaciones, mediante mejora continua disciplinada a nivel personal
Mariano Alejandro Reingart
[email protected]
Universidad Abierta de Cataluña (UOC), Barcelona, España
Memoria del Trabajo final de Tesis para la Maestría en Software Libre
Año 2014 Director: Dra. Verónica Xhardez CoDirector: Dr. Ricardo Medel
Consultor Docente UOC: Alexandre Viejo Galicia <
[email protected]>
Abstract
2
1
3
4
Este trabajo de investigación abarca el estudio,
implementación y evaluación de diferentes
herramientas, metodologías y procesos para producción de Software Libre en el campo del
desarrollo rápido de aplicaciones (RAD , precursor de metodologías ágiles como Scrum ). Se
explora el estado del arte sobre interfaces enfocadas en tareas , para aumentar la productividad y
facilitar la gestión ágil del ciclo de vida de aplicaciones (ALM ). Fomentando la mejora continua,
se busca integrar y agilizar prácticas disciplinadas de la ingeniería de software al nivel de los
programadores (inspirado por los lineamientos del PSP Proceso de Software Personal), cubriendo
la gestión del tiempo y disminución de defectos, con recolección automática de métricas y análisis
de datos estadísticos. Para superar las deficiencias y problemas de adopción conocidos, se aportan
posibles mejoras al estado del arte: sensor automático de tiempos usando detección facial (vía
“cámara web”) y seguimiento de líneas de código mediante identificadores globales (UUID). Los
conceptos han sido probados inicialmente en aplicaciones reales (estrategia investigaciónacción),
pudiendo ser evaluados a futuro sobre sistemas legados de gestión administrativa/contable,
posiblemente extensible a casos generales y aplicable en ámbitos educativos. En este sentido, se
analiza una técnica de conversión basada en EBNF , para posibilitar la migración y modernización
de aplicaciones heredadas, construidas con herramientas propietarias como Visual Basic clásico,
hacia el lenguaje de programación dinámico Python y base de datos relacional PostgreSQL .
Palabras clave: ing. software libre / código abierto, métricas, calidad, python, web2py, wxwidgets
6
8
5
7
1 http://en.wikipedia.org/wiki/Rapid_application_development
2 http://www.infoq.com/minibooks/scrumxpfromthetrenches
https://en.wikipedia.org/wiki/Taskfocused_interface
3
4 http://en.wikipedia.org/wiki/Application_lifecycle_management
5 http://en.wikipedia.org/wiki/Personal_Software_Process
6 https://es.wikipedia.org/wiki/Notaci%C3%B3n_de_BackusNaur
7 http://www.python.org/
8 http://www.postgresql.org/
1
Prefacio
9
Esta tesis de maestría es el resultado de un año de trabajo, de Febrero 2014 a Enero de 2015,
formando parte del Trabajo Final de Máster de Investigación, para concluir los estudios y acceder al
título de “Magister en Software Libre” de la Universidad Abierta de Cataluña (UOC ).
Esta investigación es la continuación de mi Trabajo de Diploma (tesis de grado) sobre "Desarrollo
rápido de aplicaciones bajo un Proceso de Software Personal"
(herramientas de software libre,
10
metodologías ágiles, proceso de producción "disciplinado" con bases "estadísticas"), pero en esta
ocasión enfocado desde la perspectiva del software libre (masividad, prototipado, crecimiento
orgánico, fomento a los desarrolladores, etc.), en especial buscando su aplicación para trabajadores
independientes, grupos de colaboración adhoc voluntaria y por ende estudiantes de carreras afines.
La modalidad elegida fue “Proyecto de orientación a la investigación”, abordando un trabajo
cientìfico resultante en un desarrollo innovador a partir de la formación adquirida a lo largo del
máster; buscando que un resumen, tesina o artículos, relacionados al trabajo original desarrollado a
partir de este proyecto, puedan ser enviados para su eventual publicación a las “44º JAIIO
Jornadas Argentinas de Informática 2015” organizadas por SADIO , específicamente en el “ASSE
2015: Simposio Argentino de Ingeniería de Software” y/o "STS 2015: Simposio de Tecnología y
Sociedad", u otro congreso o revista internacional arbitrada (como el JCS&T: Journal of Computer
Science and Technology ).
El producto principal de esta investigación es un proyecto de software libre denominado “rad2py”,
disponible en rad2py.googlecode.com o https://github.com/reingart/rad2py (mirror).
Dado que se utiliza Wikipedia, cuyo uso para citaciones en ámbitos académicos puede llegar a ser
cuestionado , cabe aclarar que el enlace a dichos artículos es meramente a título informativo e
introductorio. Se ha corroborado y complementado los contenidos en referencias bibliográficas
acreditadas, incluso revisando su relevancia (en lo posible, obteniendo el número de veces que ha
sido citado, factor de impacto, etc., usando herramientas de análisis de publicaciones académicas).
También se utilizan referencias de blogs, listas de correo y sitios similares como disparadores para
contrastar los diferentes planteos.
Por último, quisiera agradecer a los directores de proyecto por su apoyo y guía para realizar el
trabajo; al consultor docente por las oportunas indagaciones y comentarios que posibilitaron realizar
las correcciones necesarias; a mi familia y amigos por el acompañamiento, y a toda la comunidad
de software libre por las herramientas libres y abiertas, sin las cuales esta investigación no podría
haberse realizado.
13
11
12
Buenos Aires, 27 de Enero de 2015
Mariano Reingart
[email protected]
9 http://www.uoc.edu
10 http://t.co/SsMfYDGJ
11 http://www.sadio.org.ar/ Sociedad Argentina de Informática e investigación Operativa
12 http://journal.info.unlp.edu.ar/journal/index.html
13 http://isites.harvard.edu/icb/icb.do?keyword=k70847&pageid=icb.page346376 : What's Wrong with Wikipedia? Harvard Guide to
Using Sources. A Publication of the Harvard College Writing Program
2
1.1. El contexto de la ingeniería de software libre
1.2. Antecedentes
1.3. Problemáticas relacionadas
1.4. Visión general
2. Estado del Arte y Marco Teórico de Trabajo
2.1. Modelo de Producción del Software Libre
2.1.1. Fomento y motivación de los desarrolladores
2.1.2. Crecimiento orgánico: modularización y gobernanza
2.1.3. Alternativa a la disyuntiva entre “construir” o “comprar”
2.1.4. Posibilidades de prototipado rápido de calidad (no descartables)
2.2. Proceso de Software Personal (PSP)
2.2.1. Recolección automática de métricas (evitar cambio de contexto)
2.2.2. Dificultades en la fase de Diseño
2.2.3. Reconciliación de los procesos disciplinados y metodologías ágiles
2.3. Desarrollo Rápido
2.3.1. Modelo de desarrollo del código abierto vs cerrado
2.3.2. Desarrollo Rápido de Aplicaciones (RAD)
2.3.3. Herramientas de desarrollo integrada (IDE)
2.4. Mantenimiento y evolución del Software
2.4.1. Migración de Aplicaciones Legadas (VB)
2.4.2. Seguimiento de líneas de código fuente
3. Metodología
3.1. Diseño de la Investigación
Contenidos
Abstract
Prefacio
Contenidos
1. Introducción
3.1.1. Action Research
3.1.2. Living theory: “¿Cómo mejoro lo que estoy haciendo?”
3.2. Definiciones del proceso de investigación
3.2.1. “Experimentos”
3.2.2. Recolección de datos
3.2.3. Ejemplo del Primer Ciclo de Planificación, Acción, Reflexión
3.2.4. Planificación
3.2.4.1. Ajustes iniciales
3.2.4.2. Ajustes intermedios
3.2.4.3. Ajustes finales a la planificación
3.3. Ajustes al Diseño de la Investigación
3.4. Referencias metodológicas
3.4.1. Trabajos Relacionados
3.4.2. Bibliografía de consulta sobre la metodología
4. Desarrollo Reporte de Avance
4.1. Objetivos alcanzados:
4.1.1. WP1: Explorar y Definir el marco de trabajo de la investigación
4.1.1.1. WP1.a. Analizar IDE (Mylyn) y herramientas PSP (ALM Ágil)
4.1.1.2 WP1.b. Relevar cambios y mejoras prototipo anterior (rad2py)
4.1.2. WP2: Implementar la solución IDE
1
2
3
5
6
7
8
9
10
10
10
11
12
13
14
14
15
16
16
16
17
17
18
18
18
19
21
21
23
23
23
25
26
27
27
28
29
30
31
31
33
34
34
34
34
36
37
3
4.1.2.1. WP2.c. Desarrollar herramienta soporte PSP (pspcam)
4.1.2.2. WP2.d. Desarrollar e integrar mejoras IDE (ide2py)
4.1.4. WP4: Prueb
Comentarios de: Desarrollo rápido de software libre de alta calidad (0)
No hay comentarios